1.修改显性原始编号

2.修改委托单状态(编制、审核、审批),打印生成电子签名
dev
litao 3 years ago
parent 30719c1888
commit 050be6c90f
  1. 19
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java
  2. 35
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java
  3. 38
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java
  4. 33
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java
  5. 90
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java

@ -177,4 +177,23 @@ public class Entrust extends BaseEntity implements Serializable {
// 备注(报告发送方式其他)
private String remarks;
// 编制人
private String organizationBy;
// 编制时间
private Date organizationDate;
// 审核人
private String verifyBy;
// 审核时间
private Date verifyDate;
// 审批人
private String approvalBy;
// 审批时间
private Date approvalDate;
}

@ -870,6 +870,18 @@ public class EntrustController extends BladeController {
@PostMapping("/updateEntrust")
@ApiOperation(value = "更改委托单", notes = "更改委托单")
public boolean updateEntrust(@RequestBody Entrust entry) {
if (entry.getEntrustStatus() != null && "5".equals(entry.getEntrustStatus())) {
entry.setOrganizationBy(AuthUtil.getUserId().toString());
entry.setOrganizationDate(new Date());
}
if (entry.getEntrustStatus() != null && "6".equals(entry.getEntrustStatus())) {
entry.setVerifyBy(AuthUtil.getUserId().toString());
entry.setVerifyDate(new Date());
}
if (entry.getEntrustStatus() != null && "7".equals(entry.getEntrustStatus())) {
entry.setApprovalBy(AuthUtil.getUserId().toString());
entry.setApprovalDate(new Date());
}
return service.updateById(entry);
}
@ -1175,17 +1187,17 @@ public class EntrustController extends BladeController {
if (tgNum == list.size()) {
Entrust entrust1 = service.getById(examine.getEntrustId());
if ("0".equals(entrust1.getIsGenreport())) {
entrust1.setEntrustStatus("6");
entrust1.setEntrustStatus("8");
} else {
entrust1.setEntrustStatus("4");
// 发送提示消息
List<User> userList = userClient.listDeptUserByCurrentUser("1542115329594114049").getData();
if (userList != null) {
for (User user : userList) {
messageClient.event(SysTypeEnum.INFORM.getValue(), "生成报告",
"你有新的委托单报告待生成,请及时查看", 1, 5, user.getId().toString(), "/plugin/workflow/process/entrust");
}
}
// List<User> userList = userClient.listDeptUserByCurrentUser("1542115329594114049").getData();
// if (userList != null) {
// for (User user : userList) {
// messageClient.event(SysTypeEnum.INFORM.getValue(), "生成报告",
// "你有新的委托单报告待生成,请及时查看", 1, 5, user.getId().toString(), "/plugin/workflow/process/entrust");
// }
// }
}
service.updateById(entrust1);
}
@ -1368,8 +1380,11 @@ public class EntrustController extends BladeController {
* 14.检测报告打印
*/
@GetMapping("/print")
public void print(String id, HttpServletResponse response) throws IOException {
service.print(id, response);
public void print(Entrust entrust, HttpServletResponse response) throws IOException {
if (entrust.getEntrustStatus() != null && "8".equals(entrust.getEntrustStatus())) {
service.updateById(entrust);
}
service.print(entrust.getId().toString(), response);
}

@ -186,28 +186,28 @@ public class ExamineResultController extends BladeController {
List<Map<String, Map<String, Object>>> mapList = new ArrayList<>();
List<ExamineExcel> excels = map.get(i + 1 + "");
//解析info,确定参数x的值和其它相对不变的参数
Map<String,Object> params = new HashMap<>(); //存放解析出的参数
Map<String, Object> params = new HashMap<>(); //存放解析出的参数
Integer xStart = 0;
Integer xEnd = 0;
//解析参数
Set<String> strings = info.keySet();
String x = "";
for(String s: strings){
for (String s : strings) {
String para = info.get(s);
if (para.split("-").length > 1){//可变参数
if (para.split("-").length > 1) {//可变参数
String[] xs = para.split("-");
xStart = Integer.parseInt(xs[0]);
xStart = Integer.parseInt(xs[0]);
xEnd = Integer.parseInt(xs[1]);
x = s;
}else{//相对固定的参数
} else {//相对固定的参数
Integer order = Integer.valueOf(para);
params.put(s,StringUtil.isBlank(getCode(excels,order)) ? "0" : getCode(excels,order));
params.put(s, StringUtil.isBlank(getCode(excels, order)) ? "0" : getCode(excels, order));
}
}
//按照列循环每一版的数据
for (int m = 0; m < excels.size(); m++){
for (int m = 0; m < excels.size(); m++) {
String a = "";
if (m == 0) {
a = "A";
@ -237,10 +237,10 @@ public class ExamineResultController extends BladeController {
int filedsLength = examineExcel.getClass().getDeclaredFields().length - 1;
Map<String, Map<String, Object>> map2 = new HashMap<>();
for(int n = 1; n <= filedsLength; n++){
for (int n = 1; n <= filedsLength; n++) {
System.out.println(n);
String code;
switch (n){
switch (n) {
case 1:
code = examineExcel.getCode1();
break;
@ -281,28 +281,28 @@ public class ExamineResultController extends BladeController {
code = "0";
}
Map<String, Object> mapResult = new HashMap<>();
int index = (n -1) * 8 + m + 1; //n是列,m是行 ,我们定义index是一列列的定义
System.out.println("code的值==" + code + ",列n ==" + n+",行m="+m);
int index = (n - 1) * 8 + m + 1; //n是列,m是行 ,我们定义index是一列列的定义
System.out.println("code的值==" + code + ",列n ==" + n + ",行m=" + m);
System.out.println("-------------------");
if (StringUtil.isNoneBlank(code)){
if(xStart <= index && index <= xEnd){
params.put(x,code);
if (StringUtil.isNoneBlank(code)) {
if (xStart <= index && index <= xEnd) {
params.put(x, code);
String value = FormulaTool.getResult(reg, params);
mapResult.put("originResult", examineExcel.getCode1());
mapResult.put("value", "0E-10".equals(value) ? "0": value);
mapResult.put("value", "0E-10".equals(value) ? "0" : value);
if (Double.parseDouble(value) >= 0.4) {
mapResult.put("result", "阳性");
} else {
mapResult.put("result", "阴性");
}
}
}else {
if(xStart <= index && index <= xEnd){
} else {
if (xStart <= index && index <= xEnd) {
mapResult.put("originResult", "");
mapResult.put("num", "");
}
}
mapResult.put("order",index + i*96);
mapResult.put("order", index + i * 96);
map2.put(a + n, mapResult);
list.add(mapResult);
mapList.add(map2);
@ -350,7 +350,7 @@ public class ExamineResultController extends BladeController {
return R.data(map1);
} catch (ArrayIndexOutOfBoundsException e) {
throw new RuntimeException("分配样品数量与检测样品数量不一致!");
}catch(Exception e1){
} catch (Exception e1) {
throw new RuntimeException("算术异常,请检查实验数据!");
}
}

@ -1,6 +1,7 @@
package org.springblade.lims.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
@ -152,7 +153,7 @@ public class SimpleRelController extends BladeController {
LambdaQueryWrapper<SimpleRel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId());
List<SimpleRel> rels = simpleRelService.list(wrapper);
if (rels != null && rels.size() > 0) {
if (CollectionUtils.isNotEmpty(rels)) {
for (SimpleRel rel : rels) {
String[] split = rel.getOriginalNum().split("-");
rel.setOriginalNum(simpleRel.getName() + "-" + split[split.length - 1]);
@ -161,4 +162,34 @@ public class SimpleRelController extends BladeController {
return R.status(simpleRelService.updateBatchById(rels));
}
/**
* 修改显性原始编号
*/
@PostMapping("/updateOriginal")
public R updateOriginal(@RequestBody SimpleRel simpleRel) throws Exception {
// 判断要修改的显性原始编号不能和其他现有的显性原始编号重复
LambdaQueryWrapper<SimpleRel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId());
wrapper.eq(SimpleRel::getOriginalNum, simpleRel.getOriginalNum());
int count = simpleRelService.count(wrapper);
// 如果有相同的,抛异常提示
if (count > 0) {
throw new Exception("目标原始编号和现有原始编号重复,请检查!");
}
// 先查所有要修改的这条原始编号相同的样品数据
wrapper.clear();
wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId());
wrapper.eq(SimpleRel::getRecessiveNum, simpleRel.getRecessiveNum());
List<SimpleRel> simpleRelList = simpleRelService.list(wrapper);
// 如果不为空,修改所有显性原始编号
if (CollectionUtils.isNotEmpty(simpleRelList)) {
for (SimpleRel rel : simpleRelList) {
rel.setOriginalNum(simpleRel.getOriginalNum());
}
}
return R.status(simpleRelService.updateBatchById(simpleRelList));
}
}

@ -12,6 +12,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springblade.common.utils.ZipCompressUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.lims.entry.*;
import org.springblade.lims.excel.ExamineTemplate2Excel;
import org.springblade.lims.excel.PCR2Excel;
@ -895,8 +896,8 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "attachment;filename=12344.docx");
doc.write(response.getOutputStream());
entrust.setEntrustStatus("6");
this.updateById(entrust);
// entrust.setEntrustStatus("8");
// this.updateById(entrust);
} catch (Exception e) {
e.printStackTrace();
} finally {
@ -971,23 +972,78 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
result1.put("experieDate", format3.format(taskBlueprint.getCreateTime()));
result1.put("remark", entrust.getRemark());
result1.put("resultList1", ItemAndAllList);
// 盖章图片
ImageEntity farView = new ImageEntity();
farView.setHeight(80);//设置高度
farView.setWidth(80);//设置宽度
farView.setType(ImageEntity.Data);//类型
// 图片路劲
String path = sysClient.getParamValue("electronic_signature_real_path").getData();
String pictureName = sysClient.getParamValue("seal_picture_path").getData();
String s1 = path + pictureName;
FileInputStream fis = null;
try {
fis = new FileInputStream(new File(s1));
byte[] bytes = readInputStream(fis);
farView.setData(bytes);
} catch (Exception e) {
e.printStackTrace();
// 编制人签名
if (StringUtil.isBlank(entrust.getOrganizationBy())) {
User user = userClient.userInfoById(Long.parseLong(entrust.getOrganizationBy())).getData();
ImageEntity farView = new ImageEntity();
farView.setHeight(50);//设置高度
farView.setWidth(90);//设置宽度
farView.setType(ImageEntity.Data);//类型
String s1 = path + user.getElectronicSignature();
FileInputStream fis = null;
try {
fis = new FileInputStream(new File(s1));
byte[] bytes = readInputStream(fis);
farView.setData(bytes);
} catch (Exception e) {
e.printStackTrace();
}
result1.put("1", farView);
}
result1.put("11", farView);
// 审核人签名
if (StringUtil.isBlank(entrust.getVerifyBy())) {
User user = userClient.userInfoById(Long.parseLong(entrust.getVerifyBy())).getData();
ImageEntity farView = new ImageEntity();
farView.setHeight(50);//设置高度
farView.setWidth(90);//设置宽度
farView.setType(ImageEntity.Data);//类型
String s1 = path + user.getElectronicSignature();
FileInputStream fis = null;
try {
fis = new FileInputStream(new File(s1));
byte[] bytes = readInputStream(fis);
farView.setData(bytes);
} catch (Exception e) {
e.printStackTrace();
}
result1.put("2", farView);
}
// 审批人签名
if (StringUtil.isBlank(entrust.getApprovalBy())) {
User user = userClient.userInfoById(Long.parseLong(entrust.getApprovalBy())).getData();
ImageEntity farView = new ImageEntity();
farView.setHeight(50);//设置高度
farView.setWidth(90);//设置宽度
farView.setType(ImageEntity.Data);//类型
String s1 = path + user.getElectronicSignature();
FileInputStream fis = null;
try {
fis = new FileInputStream(new File(s1));
byte[] bytes = readInputStream(fis);
farView.setData(bytes);
} catch (Exception e) {
e.printStackTrace();
}
result1.put("3", farView);
}
// 盖章图片
// ImageEntity farView = new ImageEntity();
// farView.setHeight(80);//设置高度
// farView.setWidth(80);//设置宽度
// farView.setType(ImageEntity.Data);//类型
// String pictureName = sysClient.getParamValue("seal_picture_path").getData();
// String s1 = path + pictureName;
// FileInputStream fis = null;
// try {
// fis = new FileInputStream(new File(s1));
// byte[] bytes = readInputStream(fis);
// farView.setData(bytes);
// } catch (Exception e) {
// e.printStackTrace();
// }
// result1.put("11", farView);
return result1;
}

Loading…
Cancel
Save