2022年11月30日18:30:49

dev
litao 3 years ago
parent 5e83efabf3
commit 536c183fb6
  1. 4
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ContractSample.java
  2. 1
      lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ContractController.java
  3. 2
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractSampleController.java
  4. 37
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java
  5. 62
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java
  6. 16
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java
  7. 87
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java
  8. 1
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractService.java
  9. 1
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/IEntrtrustService.java
  10. 2
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/IExamineService.java
  11. 16
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractServiceImpl.java
  12. 99
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java
  13. 126
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineServiceImpl.java

@ -43,8 +43,10 @@ public class ContractSample extends BaseEntity implements Serializable {
private String recessiveNum;
// 实验编号
private String experimentNum;
// 领样人
// 领样人id
private String sampleReceiver;
// 领样人姓名
private String sampleReceiverName;
// 领样日期
private Date sampleReceiverTime;
// 备注

@ -367,6 +367,7 @@ public class ContractController extends BladeController {
contractDetailService.updateBatchById(detailList);
Contract contract = new Contract();
contract.setId(contractVO.getId());
Double goodsNum = 0.00;
Double inNum = 0.00;

@ -17,6 +17,4 @@ public class ContractSampleController extends BladeController {
private final IContractSampleService contractSampleService;
}

@ -1526,4 +1526,41 @@ public class EntrustController extends BladeController {
// }
return R.data(map);
}
/**
* 收样登记表打印
*/
@GetMapping("/sampleRegister")
public void sampleRegister(String id, HttpServletResponse response) {
service.sampleRegister(id, response);
}
/**
* 获取合同下所有委托单
*/
@GetMapping("/getEntrusts")
public R<List<Entrust>> getEntrusts(String id) {
LambdaQueryWrapper<Entrust> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Entrust::getContractId, id);
wrapper.eq(Entrust::getEntrustStatus, "7");
return R.data(service.list(wrapper));
}
/**
* 结束合同
*/
@PostMapping("/endContract")
public R endContract(@RequestBody Contract contract) throws Exception {
LambdaQueryWrapper<Entrust> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Entrust::getContractId, contract.getId());
List<Entrust> entrusts = service.list(wrapper);
if (CollectionUtils.isNotEmpty(entrusts)) {
for (Entrust entrust : entrusts) {
if (!"-1".equals(entrust.getEntrustStatus()) && !"7".equals(entrust.getEntrustStatus())) {
throw new Exception("还有实验未完成,等完成后在操作!!!");
}
}
}
return R.status(contractService.updateById(contract));
}
}

@ -1,6 +1,8 @@
package org.springblade.lims.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -56,8 +58,6 @@ public class ExamineController extends BladeController {
private final IExamineResultService examineResultService;
private final IMessageClient messageClient;
private final ISysClient sysClient;
/**
@ -415,63 +415,7 @@ public class ExamineController extends BladeController {
*/
@PostMapping("/receiveSubmit")
public void receiveSubmit(@RequestBody Examine examine) throws Exception {
examineService.receiveSubmit(examine);
// 刷新本任务书下所有检验的样品所在位置
examineService.updateSimpleCurrPlace(examine.getTempTaskId(), examine.getDeptId(), 1);
String userId = AuthUtil.getUserId().toString();
Examine examine1 = examineService.getById(examine.getId());
if (userId.equals(examine1.getLockBy())) {
if (examine.getExamineBy() == null || "".equals(examine.getExamineBy())) {
examine.setExamineBy(userId);
}
examine.setReceiveTime(new Date());
examine.setIsDistribute(1);
// examine.setIsFinished("-1");
examine.setLockBy("");
// examine.setLockTime(null);
if (examine.getSimpleReceiver() != null) {
R<User> userR = userClient.userInfoById(Long.valueOf(examine.getSimpleReceiver()));
examine.setSimpleReceiverName(userR.getData().getName());
}
examineService.updateById(examine);
} else {
throw new Exception("实验正在领取中,不可提交!");
}
// 获取本科室对应的实验
LambdaQueryWrapper<Examine> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Examine::getETaskId, examine1.getETaskId());
List<Examine> examineList = examineService.list(wrapper);
// 如果实验被全部领取,子任务状态改为1(待检测)
ETask eTask = new ETask();
eTask.setId(examine1.getETaskId());
eTask.setSimpleSource(examine.getSimpleSource());
eTask.setSimpleReceiver(examine.getSimpleReceiver());
eTask.setSimpleReceiverName(examine.getSimpleReceiverName());
eTask.setSimpleReceiveTime(examine.getReceiveTime());
int a = 0;
if (examineList != null && examineList.size() > 0) {
for (Examine examine2 : examineList) {
if (examine2.getIsDistribute() == 0) {
examine2.setSimpleSource(examine.getSimpleSource());
examine2.setSimpleReceiver(examine.getSimpleReceiver());
examine2.setSimpleReceiverName(examine.getSimpleReceiverName());
examine2.setSimpleReceiverTime(examine.getReceiveTime());
} else if (examine2.getIsDistribute() == 1) {
a += 1;
}
}
examineService.updateBatchById(examineList);
}
if (a == examineList.size()) {
eTask.setStatus(1);
}
taskService.updateById(eTask);
// 发送提示消息
User user = userClient.userInfoById(AuthUtil.getUserId()).getData();
if (!"1432876315142520834".equals(user.getRoleId())) {
messageClient.event(SysTypeEnum.INFORM.getValue(), "填写实验",
"你有新的检验数据待提交,请及时查看", 1, 5, examine.getExamineBy(),"/plugin/workflow/process/experimentcrew");
}
}
}

@ -241,6 +241,22 @@ public class ExamineItemController extends BladeController {
// }
// }
}
if (CollectionUtils.isNotEmpty(reagentList)) {
for (Reagent reagent : reagentList) {
List<Instrument> instrumentList = new ArrayList<>();
if (reagent != null && reagent.getInstrumentId() != null && !"".equals(reagent.getInstrumentId())) {
// 根据仪器id查数据
String[] split1 = reagent.getInstrumentId().split(",");
for (String s1 : split1) {
Instrument instrument = instrumentService.getById(s1);
instrumentList.add(instrument);
}
}
reagent.setInstrumentList(instrumentList);
List<TypeAndOperation> list = JSON.parseArray(reagent.getTypeAndOperation(), TypeAndOperation.class);
reagent.setOperationList(list);
}
}
return R.data(reagentList);
}
}

@ -2039,9 +2039,9 @@ public class ExamineResultController extends BladeController {
for (int i = 0; i < group; i++) {
List<Map<String, Map<String, Object>>> mapList = new ArrayList<>();
List<ExamineExcel> excels = map.get(i + 1 + "");
double code1 = Double.parseDouble(excels.get(0).getCode1());
double code2 = Double.parseDouble(excels.get(1).getCode1());
double v1 = (code1 + code2) / 2;
// double code1 = Double.parseDouble(excels.get(0).getCode1());
// double code2 = Double.parseDouble(excels.get(1).getCode1());
// double v1 = (code1 + code2) / 2;
DecimalFormat df = new DecimalFormat("#0.000");
for (int j = 0; j < excels.size(); j++) {
// 行标头:前端渲染需要A、B、C....
@ -2052,61 +2052,115 @@ public class ExamineResultController extends BladeController {
Map<String, Map<String, Object>> map2 = new HashMap<>();
String PI = "0.00";
// 一行有四组数据,一组数据对应一个样品,一个样品做三次实验,有三个结果(牛型PPD,禽型PPD,PBS抗原)
for (int n = 1; n <= filedsLength; n++) {
int num;
String code;
String code1;
String code2;
String code3;
switch (n) {
case 1:
code1 = examineExcel.getCode1();
code2 = examineExcel.getCode2();
code3 = examineExcel.getCode3();
code = examineExcel.getCode1();
num = 0;
break;
case 2:
code1 = examineExcel.getCode1();
code2 = examineExcel.getCode2();
code3 = examineExcel.getCode3();
code = examineExcel.getCode2();
num = 0;
break;
case 3:
code1 = examineExcel.getCode1();
code2 = examineExcel.getCode2();
code3 = examineExcel.getCode3();
code = examineExcel.getCode3();
num = 0;
break;
case 4:
code1 = examineExcel.getCode4();
code2 = examineExcel.getCode5();
code3 = examineExcel.getCode6();
code = examineExcel.getCode4();
num = 1;
break;
case 5:
code1 = examineExcel.getCode4();
code2 = examineExcel.getCode5();
code3 = examineExcel.getCode6();
code = examineExcel.getCode5();
num = 1;
break;
case 6:
code1 = examineExcel.getCode4();
code2 = examineExcel.getCode5();
code3 = examineExcel.getCode6();
code = examineExcel.getCode6();
num = 1;
break;
case 7:
code1 = examineExcel.getCode7();
code2 = examineExcel.getCode8();
code3 = examineExcel.getCode9();
code = examineExcel.getCode7();
num = 2;
break;
case 8:
code1 = examineExcel.getCode7();
code2 = examineExcel.getCode8();
code3 = examineExcel.getCode9();
code = examineExcel.getCode8();
num = 2;
break;
case 9:
code1 = examineExcel.getCode7();
code2 = examineExcel.getCode8();
code3 = examineExcel.getCode9();
code = examineExcel.getCode9();
num = 2;
break;
case 10:
code1 = examineExcel.getCode10();
code2 = examineExcel.getCode11();
code3 = examineExcel.getCode12();
code = examineExcel.getCode10();
num = 3;
break;
case 11:
code1 = examineExcel.getCode10();
code2 = examineExcel.getCode11();
code3 = examineExcel.getCode12();
code = examineExcel.getCode11();
num = 3;
break;
case 12:
code1 = examineExcel.getCode10();
code2 = examineExcel.getCode11();
code3 = examineExcel.getCode12();
code = examineExcel.getCode12();
num = 3;
break;
default:
code1 = "0";
code2 = "0";
code3 = "0";
code = "0";
num = 0;
}
Map<String, Object> mapResult = new HashMap<>();
int index = (n - 1) * 8 + j + 1; //n是列,j是行 ,我们定义index是一列列的定义
if (StringUtil.isNoneBlank(code)) {
if (j > 5 || n > 1) {
if (v1 != 0) {
PI = df.format((v1 - Double.parseDouble(code)) / v1);
}
if (StringUtil.isNoneBlank(code1) && StringUtil.isNoneBlank(code2) && StringUtil.isNoneBlank(code3)) {
if (j > 1 || n > 3) {
mapResult.put("originResult", code);
mapResult.put("value", df.format(Double.parseDouble(PI) * 100) + "%");
mapResult.put("num", "1");
if (Double.parseDouble(PI) >= 0.5) {
mapResult.put("value", code);
int indexNum = (i * 32) + (num * 8 + j) - ((i + 1) * 2);
mapResult.put("num", split[indexNum]);
if (Double.parseDouble(code1) - Double.parseDouble(code3) >= 0.2 && Double.parseDouble(code1) - Double.parseDouble(code2) >= 0.2) {
mapResult.put("result", "阳性");
} else {
mapResult.put("result", "阴性");
@ -2133,7 +2187,6 @@ public class ExamineResultController extends BladeController {
throw new Exception("该试剂未维护公式计算,请联系相关开发人员!");
}
// for (int i = 0; i < group; i++) {
// List<Map<String, Map<String, Object>>> mapList = new ArrayList<>();
// List<ExamineExcel> excels = map.get(i + 1 + "");
@ -2511,7 +2564,8 @@ public class ExamineResultController extends BladeController {
// }
// map1.put("g" + (i + 1), mapList);
// }
// 不是该试剂的才去赋值检测编号
if (!"1570297053211455490".equals(reagentId)) {
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
@ -2531,12 +2585,13 @@ public class ExamineResultController extends BladeController {
numIndex++;
}
}
System.out.println("split.length: " + split.length);
System.out.println("numIndex: " + numIndex);
// System.out.println("split.length: " + split.length);
// System.out.println("numIndex: " + numIndex);
// 判断分配样品数量与检测样品数量是否一致
if (split.length != numIndex) {
throw new Exception("分配样品数量与检测样品数量不一致!");
}
}
LambdaQueryWrapper<ExamineResult> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ExamineResult::getExamineId, examineId);

@ -16,4 +16,5 @@ import javax.servlet.http.HttpServletResponse;
public interface IContractService extends BaseService<Contract> {
void contractReview(String id, HttpServletResponse response);
}

@ -41,4 +41,5 @@ public interface IEntrtrustService extends BaseService<Entrust> {
void repairPrint(String id, HttpServletResponse response);
void sampleRegister(String id, HttpServletResponse response);
}

@ -14,4 +14,6 @@ import org.springblade.lims.entry.Examine;
public interface IExamineService extends BaseService<Examine> {
void updateSimpleCurrPlace(Long taskId, Long deptId, int operateType);
void receiveSubmit(Examine examine) throws Exception;
}

@ -1,28 +1,32 @@
package org.springblade.lims.service.impl;
import cn.afterturn.easypoi.word.WordExportUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.lims.entry.Contract;
import org.springblade.lims.entry.ContractSample;
import org.springblade.lims.entry.Entrust;
import org.springblade.lims.mapper.ContractMapper;
import org.springblade.lims.service.IContractSampleService;
import org.springblade.lims.service.IContractService;
import org.springblade.lims.service.IEntrtrustService;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.enums.DictBizEnum;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author swj
* @since 2022年6月2日15:53:01
*/
@Service
@AllArgsConstructor
@ -85,4 +89,6 @@ public class ContractServiceImpl extends BaseServiceImpl<ContractMapper, Contrac
}
}
}
}

@ -2675,7 +2675,6 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// arrVO1.setValue(format1);
// arrVO1.setResult(" ");
// list1.add(arrVO1);
for (int j = 0; j < 96; j++) {
ExamineDataArrVO vo = list.get((i * 96) + j);
if (vo.getNum() != null && !"".equals(vo.getNum())) {
@ -2701,7 +2700,6 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// arrVO1.setValue(format1);
// arrVO1.setResult(" ");
// list1.add(arrVO1);
for (int j = 0; j < 96; j++) {
if ((i * 96) + j > list.size() - 1) {
break;
@ -3147,9 +3145,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
// 阳性对照OD值
double b1 = Double.parseDouble(list.get((i * 96) + 2).getOriginResult());
double b2 = Double.parseDouble(list.get((i * 96) + 3).getOriginResult());
double c1 = 0.00;
double c2 = 0.00;
if (StringUtils.isNotBlank(list.get((i * 96) + 4).getOriginResult())) {
c1 = Double.parseDouble(list.get((i * 96) + 4).getOriginResult());
}
@ -3313,7 +3311,19 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
map3.put("5", "成立");
resultList3.add(map3);
}
// 牛结核病γ-干扰素ELISA检测试剂盒---武汉科前生物股份有限公司
else if ("1570297053211455490".equals(reagentId)) {
double yin1 = Double.parseDouble(list.get((i * 96)).getOriginResult());
double yin2 = Double.parseDouble(list.get((i * 96) + 8).getOriginResult());
double yin3 = Double.parseDouble(list.get((i * 96) + 16).getOriginResult());
double yang1 = Double.parseDouble(list.get((i * 96) + 1).getOriginResult());
double yang2 = Double.parseDouble(list.get((i * 96) + 9).getOriginResult());
double yang3 = Double.parseDouble(list.get((i * 96) + 17).getOriginResult());
map1.put("2", "阴性对照的平均值");
map1.put("3", df.format((yin1 + yin2 + yin3) / 3));
map2.put("2", "阳性对照的平均值");
map2.put("3", df.format((yang1 + yang2 + yang3) / 3));
}
map1.put("5", "成立");
map2.put("5", "成立");
resultList3.add(map1);
@ -3561,7 +3571,7 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
@Override
public void eTaskPrint(String id, String deptId, HttpServletResponse response) {
Map<String, Object> result = new HashMap<>();
Entrust entrust = this.getById(id);
// Entrust entrust = this.getById(id);
//任务书
LambdaQueryWrapper<TaskBlueprint> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TaskBlueprint::getEntrustId, id);
@ -3690,18 +3700,19 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
//模板地址
// String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//检测任务书(模板).docx";
String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "eTaskPrint");
// System.out.println("===============================================");
// System.out.println("url:" + url);
// System.out.println("result:" + result);
// System.out.println("===============================================");
XWPFDocument doc = null;
// FileOutputStream fos = null;
try {
doc = WordExportUtil.exportWord07(url, result);
// fos = new FileOutputStream("C://Users//AAA//Desktop//烁今//打印模板//检测任务书.docx");
// String filename = "测试.docx";
String filename = "测试.docx";
response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "attachment;filename=12344.docx");
doc.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
} finally {
@ -4331,6 +4342,76 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
}
}
@Override
public void sampleRegister(String id, HttpServletResponse response) {
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> list = new ArrayList<>();
LambdaQueryWrapper<ContractSample> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ContractSample::getEntrustId, id);
List<ContractSample> contractSamples = contractSampleService.list(wrapper);
if (CollectionUtils.isNotEmpty(contractSamples)) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
for (ContractSample contractSample : contractSamples) {
Map<String, Object> map = new HashMap<>();
map.put("1", contractSample.getCity());
map.put("2", contractSample.getFarmName());
map.put("3", contractSample.getFarmAddress());
map.put("4", contractSample.getLivestockOwnerName());
map.put("5", contractSample.getPhone());
map.put("6", format.format(contractSample.getCollectSampleTime()));
map.put("7", contractSample.getSampleName());
map.put("8", contractSample.getSampleCount());
map.put("9", contractSample.getOriginalNum());
map.put("10", contractSample.getExperimentNum());
map.put("11", contractSample.getSampleReceiverName());
map.put("12", format.format(contractSample.getSampleReceiverTime()));
list.add(map);
}
result.put("list", list);
}
//模板地址
String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "sampleRegisterPrint");
// String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//委托单(模板).docx";
XWPFDocument doc = null;
// FileOutputStream fos = null;
try {
doc = WordExportUtil.exportWord07(url, result);
// fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//委托单.docx");
String filename = "测试.docx";
response.setContentType("application/octet-stream");
response.setHeader("content-disposition", "attachment;filename=12344.docx");
doc.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
} finally {
// if (null != doc) {
//// doc.close();
// try {
// doc.write(fos);
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// if (null != fos) {
// try {
// fos.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
if (null != doc) {
try {
doc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 根据网络图片URL转成字节数组弃用
*/

@ -2,17 +2,30 @@
package org.springblade.lims.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.lims.entry.ContractSample;
import org.springblade.lims.entry.ETask;
import org.springblade.lims.entry.Examine;
import org.springblade.lims.entry.Simple;
import org.springblade.lims.mapper.ExamineMapper;
import org.springblade.lims.service.IContractSampleService;
import org.springblade.lims.service.IETaskService;
import org.springblade.lims.service.IExamineService;
import org.springblade.lims.service.ISimpleService;
import org.springblade.resource.enums.SysTypeEnum;
import org.springblade.resource.feign.IMessageClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@ -30,9 +43,16 @@ public class ExamineServiceImpl extends BaseServiceImpl<ExamineMapper, Examine>
private final IETaskService taskService;
private final ExamineMapper examineMapper;
private final IMessageClient messageClient;
private final IContractSampleService contractSampleService;
private final IUserClient userClient;
private final ISimpleService simpleService;
@Override
@Transactional(rollbackFor = Exception.class)
public void updateSimpleCurrPlace(Long taskId, Long deptId, int operateType) {
// 上上游task
@ -103,4 +123,108 @@ public class ExamineServiceImpl extends BaseServiceImpl<ExamineMapper, Examine>
updateBatchById(examineList);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void receiveSubmit(Examine examine) throws Exception {
// 刷新本任务书下所有检验的样品所在位置
this.updateSimpleCurrPlace(examine.getTempTaskId(), examine.getDeptId(), 1);
String userId = AuthUtil.getUserId().toString();
Examine examine1 = this.getById(examine.getId());
if (userId.equals(examine1.getLockBy())) {
if (examine.getExamineBy() == null || "".equals(examine.getExamineBy())) {
examine.setExamineBy(userId);
}
examine.setReceiveTime(new Date());
examine.setIsDistribute(1);
// examine.setIsFinished("-1");
examine.setLockBy("");
// examine.setLockTime(null);
if (examine.getSimpleReceiver() != null) {
R<User> userR = userClient.userInfoById(Long.valueOf(examine.getSimpleReceiver()));
examine.setSimpleReceiverName(userR.getData().getName());
}
this.updateById(examine);
} else {
throw new Exception("实验正在领取中,不可提交!");
}
// 获取本科室对应的实验
LambdaQueryWrapper<Examine> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Examine::getETaskId, examine1.getETaskId());
List<Examine> examineList = this.list(wrapper);
// 如果实验被全部领取,子任务状态改为1(待检测)
ETask eTask = new ETask();
eTask.setId(examine1.getETaskId());
eTask.setSimpleSource(examine.getSimpleSource());
eTask.setSimpleReceiver(examine.getSimpleReceiver());
eTask.setSimpleReceiverName(examine.getSimpleReceiverName());
eTask.setSimpleReceiveTime(examine.getReceiveTime());
int a = 0;
if (CollectionUtils.isNotEmpty(examineList)) {
for (Examine examine2 : examineList) {
if (examine2.getIsDistribute() == 0) {
examine2.setSimpleSource(examine.getSimpleSource());
examine2.setSimpleReceiver(examine.getSimpleReceiver());
examine2.setSimpleReceiverName(examine.getSimpleReceiverName());
examine2.setSimpleReceiverTime(examine.getReceiveTime());
} else if (examine2.getIsDistribute() == 1) {
a += 1;
}
}
this.updateBatchById(examineList);
}
if (a == examineList.size()) {
eTask.setStatus(1);
}
taskService.updateById(eTask);
// 发送提示消息
User user = userClient.userInfoById(AuthUtil.getUserId()).getData();
if (!"1432876315142520834".equals(user.getRoleId())) {
messageClient.event(SysTypeEnum.INFORM.getValue(), "填写实验",
"你有新的检验数据待提交,请及时查看", 1, 5, examine.getExamineBy(),"/plugin/workflow/process/experimentcrew");
}
// 样品收样登记表信息修改(合同评审)
LambdaQueryWrapper<ContractSample> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ContractSample::getEntrustId,examine1.getEntrustId());
List<ContractSample> contractSamples = contractSampleService.list(queryWrapper);
if (CollectionUtils.isNotEmpty(contractSamples)) {
if (StringUtils.isBlank(contractSamples.get(0).getSampleReceiver())) {
for (ContractSample contractSample : contractSamples) {
// 领样人
contractSample.setSampleReceiver(examine.getSimpleReceiver());
contractSample.setSampleReceiverName(examine.getSimpleReceiverName());
// 领样时间
contractSample.setSampleReceiverTime(examine.getSimpleReceiverTime());
// 获取第一个原始编号对应的样品
LambdaQueryWrapper<Simple> qw = new LambdaQueryWrapper<>();
qw.eq(Simple::getEntrustId, contractSample.getEntrustId());
qw.eq(Simple::getIsReagent, "0");
qw.eq(Simple::getRecessiveNum, contractSample.getRecessiveNum().split("-")[0]);
qw.orderByAsc(Simple::getSort);
List<Simple> simples1 = simpleService.list(qw);
// 获取最后一个原始编号对应的样品
qw.clear();
qw.eq(Simple::getEntrustId, contractSample.getEntrustId());
qw.eq(Simple::getIsReagent, "0");
qw.eq(Simple::getRecessiveNum, contractSample.getRecessiveNum().split("-")[1]);
qw.orderByDesc(Simple::getSort);
List<Simple> simples2 = simpleService.list(qw);
// 第一个样品编号
String experieNum = simples1.get(0).getExperieNum();
// 最后一个样品编号序号
String[] strings = simples2.get(0).getExperieNum().split("-");
// 拼接收样登记表需要样品编号
String num = experieNum + "-" + strings[strings.length - 1];
contractSample.setExperimentNum(num);
}
contractSampleService.updateBatchById(contractSamples);
}
}
}
}

Loading…
Cancel
Save