From 3adcc36797b576b6c6f793e0eeac41068b6dd717 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 14 一月 2025 11:26:00 +0800
Subject: [PATCH] 1.14调整
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 811 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 477 insertions(+), 334 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 7a7057f..3a32619 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -15,33 +15,21 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.deepoove.poi.XWPFTemplate;
-import com.deepoove.poi.config.Configure;
-import com.deepoove.poi.config.ConfigureBuilder;
-import com.deepoove.poi.data.*;
-import com.deepoove.poi.data.style.*;
-import com.deepoove.poi.util.TableTools;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
-import com.yuanchu.mom.dto.InsOrderPlanDTO;
-import com.yuanchu.mom.dto.InsProductResultDto;
-import com.yuanchu.mom.dto.SampleProductDto;
+import com.yuanchu.mom.dto.*;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.*;
import com.yuanchu.mom.vo.*;
-import org.apache.commons.io.IOUtils;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.CellValue;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -50,7 +38,6 @@
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.nio.file.Files;
-import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -58,8 +45,6 @@
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -102,11 +87,8 @@
@Value("${wordUrl}")
private String wordUrl;
- @Value("${twoCode}")
- private String twoCode;
-
@Resource
- WordUtils wordUtils;
+ WordUtils wordUtils;
@Resource
private InsReportMapper insReportMapper;
@@ -135,14 +117,17 @@
@Resource
private UserMapper userMapper;
- @Resource
- private CustomMapper customMapper;
-
@Value("${file.path}")
private String imgUrl;
@Resource
private InsOrderFileMapper insOrderFileMapper;
+
+ @Resource
+ FuSheUtils fuSheUtils;
+
+ @Resource
+ DianLuUtils dianLuUtils;
@Override
public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) {
@@ -192,16 +177,29 @@
}
@Override
- public Map<String, Object> doInsOrder(Integer id, String laboratory) {
+ public Map<String, Object> doInsOrder(Integer sampleId, String laboratory) {
+ InsSample insSample = insSampleMapper.selectById(sampleId);
InsOrder insOrder = new InsOrder();
- insOrder.setId(id);
- InsOrder order = insOrderMapper.selectById(id);
+ insOrder.setId(insSample.getInsOrderId());
+ InsOrder order = insOrderMapper.selectById(insSample.getInsOrderId());
if (BeanUtil.isEmpty(order.getInsTime())) {
- insOrder.setInsTime(LocalDateTime.now());
+ insOrder.setInsTime(LocalDateTime.now());//璁㈠崟鐨勬楠屾椂闂�
insOrderMapper.updateById(insOrder);
- insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, id).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, LocalDateTime.now()).set(InsOrderState::getInsState, 1));
}
- Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory);
+ InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory));
+ if (ObjectUtils.isEmpty(orderState.getInsTime())) {
+ //鏇存柊妫�楠屼换鍔¤〃鐨勬楠屾椂闂�
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
+ .eq(InsOrderState::getLaboratory, laboratory)
+ .set(InsOrderState::getInsTime, LocalDateTime.now())
+ .set(InsOrderState::getInsState, 1));
+ }
+ Map<String, Object> map = insOrderService.getInsOrderAndSample(sampleId, laboratory);
List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class);
map.put("sampleProduct", list);
return map;
@@ -215,7 +213,18 @@
//鏍峰搧
insProducts = insSampleMapper.getInsProduct1(id, laboratory);
if (insProducts.size() == 0) {
- insProducts = insSampleMapper.getIns2Product1(id, laboratory);
+ insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getInsSampleId, id)
+ .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getSonLaboratory, laboratory));
+ for (InsProduct insProduct : insProducts) {
+ List<InsProductResult2> insProductResult2List = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
+ .eq(InsProductResult2::getInsProductId, insProduct.getId()).isNull(InsProductResult2::getNum));
+ insProduct.setInsProductResult2(insProductResult2List);
+ InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery()
+ .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum));
+ insProduct.setInsProductResult(insProductResult);
+ }
}
break;
case 1:
@@ -264,12 +273,10 @@
}
@Override
- public List<String> checkSubmitPlan(Integer orderId, String laboratory) {
+ public List<String> checkSubmitPlan(Integer sampleId, String laboratory) {
List<String> collect = new ArrayList<>();
- List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
- List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
- .in(InsProduct::getInsSampleId, ids)
+ .eq(InsProduct::getInsSampleId, sampleId)
.eq(InsProduct::getSonLaboratory, laboratory)
.eq(InsProduct::getState, 1)
.eq(InsProduct::getInsResult, 0));
@@ -285,13 +292,26 @@
public Map<String, Object> getFileList(Page page, InsOrderFile insOrderFile) {
Map<String, Object> map = new HashMap<>();
map.put("head", PrintChina.printChina(InsOrderFile.class));
- IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile));
+ Integer insOrderId = insOrderFile.getInsOrderId();
+ insOrderFile.setInsOrderId(null);
+ String sonLaboratory = null;
+ Integer sampleId = null;
+ if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) {
+ sonLaboratory = insOrderFile.getSonLaboratory();
+ insOrderFile.setSonLaboratory(null);
+ }
+ if (ObjectUtils.isNotEmpty(insOrderFile.getInsSampleId())) {
+ sampleId = insOrderFile.getInsSampleId();
+ insOrderFile.setInsSampleId(null);
+ }
+ IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory, sampleId);
map.put("body", insOrderFileIPage);
return map;
}
@Override
- public int uploadFile(Integer orderId, MultipartFile file) {
+ public Object uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) {
+ InsOrder insOrder = insOrderMapper.selectById(orderId);
String urlString;
String pathName;
String path;
@@ -299,6 +319,12 @@
String contentType = file.getContentType();
InsOrderFile insOrderFile = new InsOrderFile();
insOrderFile.setInsOrderId(orderId);
+ if (ObjectUtils.isNotEmpty(sampleId)) {
+ insOrderFile.setInsSampleId(sampleId);
+ }
+ if (ObjectUtils.isNotEmpty(sonLaboratory)) {
+ insOrderFile.setSonLaboratory(sonLaboratory);
+ }
insOrderFile.setFileName(filename);
if (contentType != null && contentType.startsWith("image/")) {
// 鏄浘鐗�
@@ -314,22 +340,35 @@
if (!realpath.exists()) {
realpath.mkdirs();
}
- pathName = UUID.randomUUID() + "_" + file.getOriginalFilename();
+ pathName = UUID.randomUUID() + "_" + file.getOriginalFilename().replace("#", "&");
urlString = realpath + "/" + pathName;
file.transferTo(new File(urlString));
insOrderFile.setFileUrl(pathName);
- return insOrderFileMapper.insert(insOrderFile);
+ insOrderFileMapper.insert(insOrderFile);
+ String[] split = filename.split("\\.");
+ if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("杩戝満") && split[split.length - 1].equals("csv")) {
+ fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile);
+ } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("杩滃満") && split[split.length - 1].equals("xlsx")) {
+ fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile);
+ } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("xlsx") && filename.contains("浜よ皟")) {
+ dianLuUtils.readDianLuFile1(sampleId, insOrderFile);
+ } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && filename.contains("椹绘尝")) {
+ dianLuUtils.readDianLuFile2(sampleId, insOrderFile);
+ }else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
+ dianLuUtils.readDianLuFile3(sampleId, insOrderFile);
+ }
} catch (Exception e) {
- e.printStackTrace();
- System.err.println("闄勪欢涓婁紶閿欒");
- return 0;
+ throw new ErrorException(e.getMessage());
}
+ return 0;
}
@Override
- public List<String> upPlanUser2(Integer orderId) {
- List<Integer> sampleId = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList());
- List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, sampleId)).stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
+ public List<String> upPlanUser2(Integer sampleId) {
+ List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getInsSampleId, sampleId))
+ .stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
return sonLaboratory;
}
@@ -343,21 +382,22 @@
//鎵爜鎶ユ
@Override
- public int scanInsOrderState(String sonLaboratory, String sampleCode, String trees) {
+ public int scanInsOrderState(String sonLaboratory, String sampleCode, String trees, String entrustCode) {
/*鏍峰搧鍏ュ簱*/
- warehouseService.inWarehouse(trees, sampleCode);
+ warehouseService.inWarehouse(trees, sampleCode, entrustCode);
/*鏂板妫�楠屼换鍔�*/
- //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
- InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode));
- List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
- .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList());
+ //鍏堝垽鏂鏍峰搧鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
+ List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode));
+ InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
+ .eq(InsSample::getSampleCode, sampleCode)
+ .eq(InsSample::getInsOrderId, insOrders.get(0).getId()));
List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getState, 1)
- .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
+ .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
if (!collect.contains(sonLaboratory)) {
- throw new ErrorException("璇ヨ鍗曟病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
+ throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
}
- //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁缁撴潫璇曢獙
+ //鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁缁撴潫璇曢獙(鍙浠讳竴浠诲姟缁撴潫璇曢獙閮戒笉鑳藉啀娆¤瘯楠�)
List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
.eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
.eq(InsOrderState::getInsState, 5));
@@ -366,6 +406,7 @@
}
InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
.eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, insSample.getId())
.eq(InsOrderState::getLaboratory, sonLaboratory));
if (ObjectUtils.isNotEmpty(orderState)) {
//缁х画璇曢獙
@@ -373,12 +414,11 @@
orderState.setInsState(0);
orderState.setNum(orderState.getNum() + 1);//閫掑
insOrderStateMapper.updateById(orderState);
- } /*else {
- throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸插垱寤�,鏃犳硶鍐嶆鍒涘缓!");
- }*/
+ }
} else {
InsOrderState insOrderState = new InsOrderState();
insOrderState.setInsOrderId(insSample.getInsOrderId());
+ insOrderState.setInsSampleId(insSample.getId());
insOrderState.setLaboratory(sonLaboratory);
insOrderState.setInsState(0);
insOrderState.setNum(1);//鍒濆鏄涓�娆�
@@ -389,30 +429,35 @@
//鎵爜鍑哄簱
@Override
- public int outInsOrderState(String sonLaboratory, String sampleCode) {
+ public int outInsOrderState(String sonLaboratory, String sampleCode, String entrustCode) {
//鍒ゆ柇璇ユ牱鍝佺殑妫�楠屼换鍔℃槸鍚﹀凡缁忕粨鏉�(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
- //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
- InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode));
- List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
- .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList());
+ //鍏堝垽鏂鏍峰搧鏄惁鏈夎繖涓珯鐐圭殑椤圭洰
+ List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode));
+ InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
+ .eq(InsSample::getSampleCode, sampleCode)
+ .eq(InsSample::getInsOrderId, insOrders.get(0).getId()));
List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getState, 1)
- .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
+ .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
if (!collect.contains(sonLaboratory)) {
- throw new ErrorException("璇ヨ鍗曟病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
+ throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
}
//鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
.eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
- .and(wrapper -> wrapper
- .eq(InsOrderState::getInsState, 5)
- .or()
- .eq(InsOrderState::getInsState, 6)
- ));
+ .eq(InsOrderState::getInsState, 5));//缁撴潫璇曢獙
if (CollectionUtils.isEmpty(orderStates)) {
- throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙,鏆傛椂鏃犳硶鍑哄簱!");
+ List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, insSample.getId())
+ .eq(InsOrderState::getLaboratory, sonLaboratory)
+ .eq(InsOrderState::getInsState, 6));//缁х画璇曢獙
+ if (CollectionUtils.isEmpty(orderStates1)) {
+ throw new ErrorException("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!");
+ }
}
- warehouseService.outWarehouse(sampleCode);
+ boolean a = true;
+ warehouseService.outWarehouse(sampleCode, a, entrustCode);
return 0;
}
@@ -455,11 +500,60 @@
//鑾峰彇鏈�鍚庝竴琛岀殑num锛屽嵆鎬昏鏁般�傛澶勪粠0寮�濮�
int maxRow = sheet.getLastRowNum();
for (int row = 0; row <= maxRow; row++) {
+ XSSFRow xssfRow = sheet.getRow(row);
//鑾峰彇鏈�鍚庡崟鍏冩牸num锛屽嵆鎬诲崟鍏冩牸鏁� ***娉ㄦ剰锛氭澶勪粠1寮�濮嬭鏁�***
int maxRol = sheet.getRow(row).getLastCellNum();
StringBuilder aLine = new StringBuilder();
- for (int rol = 0; rol < maxRol; rol++) {
+ /*for (int rol = 0; rol < maxRol; rol++) {
aLine.append(sheet.getRow(row).getCell(rol)).append(",");
+ }*/
+ for (int rol = 0; rol < maxRol; rol++) {
+ XSSFCell cell = xssfRow.getCell(rol);
+ if (cell == null) {
+ aLine.append(",");
+ } else {
+ switch (cell.getCellType()) {
+ case FORMULA:
+ // 璁$畻鍏紡骞惰幏鍙栫粨鏋�
+ CellValue cellValue = xssfWorkbook.getCreationHelper().createFormulaEvaluator().evaluate(cell);
+ switch (cellValue.getCellType()) {
+ case NUMERIC:
+ String formattedValue = String.format("%.4f", cellValue.getNumberValue());
+ aLine.append(formattedValue);
+ break;
+ case STRING:
+ aLine.append(cellValue.getStringValue());
+ break;
+ case BOOLEAN:
+ aLine.append(cellValue.getBooleanValue());
+ break;
+ case ERROR:
+ aLine.append("#ERR!");
+ break;
+ default:
+ aLine.append("");
+ break;
+ }
+ break;
+ case NUMERIC:
+ String formattedValue = String.format("%.4f", cell.getNumericCellValue());
+ aLine.append(formattedValue);
+ break;
+ case STRING:
+ aLine.append(cell.getStringCellValue());
+ break;
+ case BOOLEAN:
+ aLine.append(cell.getBooleanCellValue());
+ break;
+ case ERROR:
+ aLine.append("#ERR!");
+ break;
+ default:
+ aLine.append("");
+ break;
+ }
+ aLine.append(",");
+ }
}
String substring = aLine.substring(0, aLine.length() - 1);
result.append(substring).append("\n");
@@ -473,7 +567,7 @@
return stringBuilder.toString();
}
-
+ //妯$増淇濆瓨妫�楠屽唴瀹�
@Override
public void saveInsContext(Map<String, Object> insContext, Integer num) {
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
@@ -538,6 +632,26 @@
} catch (Exception e) {
insProduct.setLastValue("");//''
}
+ //璇曢獙鍓嶆牱鍝佹鏌�
+ try {
+ JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("beforeCheck")));
+ if (resValue.get("v") != null) {
+ Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v");
+ result.setBeforeCheck(o.equals("") ? null : (o.toString()));
+ }
+ } catch (Exception e) {
+ result.setBeforeCheck("");//''
+ }
+ //璇曢獙鍚庢牱鍝佹鏌�
+ try {
+ JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("afterCheck")));
+ if (resValue.get("v") != null) {
+ Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v");
+ result.setAfterCheck(o.equals("") ? null : (o.toString()));
+ }
+ } catch (Exception e) {
+ result.setAfterCheck("");//''
+ }
//璁惧缂栧彿
if (jo.get("equipValue") != null) {
JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipValue")));
@@ -583,67 +697,6 @@
insProductMapper.updateById(insProduct);
insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId()));
insProduct = insProductMapper.selectById(insProduct);
- /*鐢熸垚浜ч噺宸ユ椂*/
- //鏌ヨ妫�楠屽崟淇℃伅
- InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId());
- //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
- //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮
- LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT);
- PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery()
- .eq(PerformanceShift::getUserId, userId)
- .eq(PerformanceShift::getWorkTime, today));
- if (ObjectUtils.isNotEmpty(performanceShift)) {
- ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift()));
- if (ObjectUtils.isNotEmpty(shiftTime)) {
- DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm");
- LocalTime now = LocalTime.now();
- LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma);
- LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma);
- // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛�
- boolean isWithinRange;
- if (endTime.isAfter(startTime)) {
- // 涓嶈法澶╃殑鎯呭喌
- isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime);
- } else {
- // 璺ㄥぉ鐨勬儏鍐�
- isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime);
- }
- if (ObjectUtils.isNotEmpty(insProduct.getManHour())) {
- //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿)
- auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
- .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId()));
- AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
- if (isWithinRange) {
- //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮
- auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
- auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃�
- auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
- auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂
-
- } else {
- //鍔犵彮
- auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿
- auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂
- auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺
- auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂
- }
- auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤�
- auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤�
- auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿
- auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
- LocalDateTime localDateTime = LocalDateTime.now();
- DateTime parse = DateUtil.parse(localDateTime.format(formatter));
- auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
- auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
- auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉
- auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d
- auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
- }
- }
- }
InsSample insSample = insSampleMapper.selectById(insProductMapper.selectById(insProduct.getId()).getInsSampleId());
insSample.setInsState(1);
Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
@@ -676,11 +729,13 @@
int pId = Integer.parseInt(res.replaceAll("\\D+", ""));
InsProduct insProduct = insProductMapper.selectById(pId);
// 閫氳繃鏍锋湰id鑾峰彇璁㈠崟id
- int orderId = insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId();
- int count = insProductMapper.selectInsProductCountByOrderId(orderId);
+ InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId());
+ int orderId = insSample.getInsOrderId();
+ int count = insProductMapper.selectInsProductCountByOrderId(insSample.getId());
if (count == 0) {
insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
.eq(InsOrderState::getInsOrderId, orderId)
+ .eq(InsOrderState::getInsSampleId, insSample.getId())
.eq(InsOrderState::getLaboratory, insProduct.getSonLaboratory())
.set(InsOrderState::getInsState, 2));
}
@@ -698,21 +753,23 @@
throw new ErrorException("棰戠巼涓嶈兘涓虹┖");
}
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+ //鏌ヨ鏍峰搧淇℃伅
+ InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId());
//鏌ヨ妫�楠屽崟淇℃伅
- InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId());
InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
- .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId())
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId())
.eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory())
.orderByDesc(InsOrderState::getId)
.last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰�
- //鏌ヨ鏍峰搧淇℃伅
- InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId());
List<Integer> list = new ArrayList<>();
/*鏂板妫�楠岄」鐩楠屽�艰褰曡〃(閲囧彇鍏堝垹鍚庡)*/
insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery()
.in(InsProductResult2::getInsProductId, insProductResultDtos.getInsProductResult2s().stream().map(InsProductResult2::getInsProductId).distinct().collect(Collectors.toList()))
.eq(InsProductResult2::getNum, orderState.getNum())
.eq(InsProductResult2::getFrequency, insProductResultDtos.getFrequency()));
+ List<InsProductResult2> result2s = new ArrayList<>();
+ List<InsProductUser> insProductUsers = new ArrayList<>();
for (InsProductResult2 insProductResult2 : insProductResultDtos.getInsProductResult2s()) {
InsProduct insProduct = new InsProduct();
insProduct.setId(insProductResult2.getInsProductId());//椤圭洰id
@@ -748,11 +805,11 @@
//缁撹
int ressult = 1;
String valueStr = insProductResult2.getValue();
+ String regex = "[\u4e00-\u9fa5]";
if (!insProduct.getAsk().contains(",")) {
- if (insProduct.getAsk().equals("/")) {
+ if (insProduct.getAsk().equals("/") || Pattern.compile(regex).matcher(insProduct.getAsk()).find()) {
ressult = 3; //涓嶅垽瀹�
- }
- if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) {
+ } else if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) {
ressult = 0; //涓嶅悎鏍�
}
} else {
@@ -790,69 +847,13 @@
}
result2.setCreateUser(userId);
result2.setUpdateUser(userId);
- insProductResult2Mapper.insert(result2);
- insProduct.setUpdateUser(userId);
- insProductMapper.updateById(insProduct);
- insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId()));
- /*鐢熸垚浜ч噺宸ユ椂*/
- //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
- //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮
- LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT);
- PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery()
- .eq(PerformanceShift::getUserId, userId)
- .eq(PerformanceShift::getWorkTime, today));
- if (ObjectUtils.isNotEmpty(performanceShift)) {
- ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift()));
- if (ObjectUtils.isNotEmpty(shiftTime)) {
- DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm");
- LocalTime now = LocalTime.now();
- LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma);
- LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma);
- // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛�
- boolean isWithinRange;
- if (endTime.isAfter(startTime)) {
- // 涓嶈法澶╃殑鎯呭喌
- isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime);
- } else {
- // 璺ㄥぉ鐨勬儏鍐�
- isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime);
- }
- if (ObjectUtils.isNotEmpty(insProduct.getManHour())) {
- //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿)
- auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
- .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId()));
- AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
- if (isWithinRange) {
- //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮
- auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
- auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃�
- auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
- auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂
-
- } else {
- //鍔犵彮
- auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿
- auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂
- auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺
- auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂
- }
- auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤�
- auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤�
- auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿
- auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
- LocalDateTime localDateTime = LocalDateTime.now();
- DateTime parse = DateUtil.parse(localDateTime.format(formatter));
- auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
- auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
- auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉
- auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d
- auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
- }
- }
- }
+ result2s.add(result2);
+ //insProductResult2Mapper.insert(result2);
+ //insProduct.setUpdateUser(userId);
+ //insProducts.add(insProduct);
+ //insProductMapper.updateById(insProduct);
+ insProductUsers.add(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId()));
+ //insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId()));
/*鏇存柊鏍峰搧鐨勬楠岀姸鎬�*/
insSample.setInsState(1);
Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
@@ -868,17 +869,42 @@
//濡傛灉鎵�鏈夐」鐩兘鏈夌粨璁�,閭d箞璇ユ牱鍝佺姸鎬佸凡妫�
insSample.setInsState(2);
}
- insSampleMapper.updateById(insSample);
}
+ insProductResult2Mapper.saveBatch(result2s);
+ insProductUserMapper.saveBatch(insProductUsers);
+ insSampleMapper.updateById(insSample);
/*鍒ゆ柇璇ョ珯鐐圭殑妫�楠岄」鐩槸鍚﹀叏閮ㄥ凡妫�*/
- int count = insProductMapper.selectInsProductCountByOrderId(insProductResultDtos.getOrderId());
+ int count = insProductMapper.selectInsProductCountByOrderId(insSample.getInsOrderId());
if (count == 0) {
insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
- .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId())
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId())
.eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory())
.set(InsOrderState::getInsState, 2));
}
return list;
+ }
+
+ //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹�(杩斿洖/鎻愪氦)
+ @Override
+ public int saveInsContext2s(InsProductResultDtos insProductResultDtos) {
+ for (InsProductResultDto insProductResultDto : insProductResultDtos.getInsProductResultDtos()) {
+ saveInsContext2(insProductResultDto);
+ }
+ return 1;
+ }
+
+ //娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹�
+ @Override
+ public int saveInsContext3(InsProductResult insProductResult) {
+ //鍏堝垹鍚庡姞
+ insProductResultMapper.delete(Wrappers.<InsProductResult>lambdaQuery()
+ .eq(InsProductResult::getInsProductId, insProductResult.getInsProductId())
+ .eq(InsProductResult::getNum, insProductResult.getNum()));
+ insProductResult.setEquipValue("[{\"v\":\"" + insProductResult.getEquipValue() + "\"}]");
+ insProductResult.setEquipName("[{\"v\":\"" + insProductResult.getEquipName() + "\"}]");
+ insProductResultMapper.insert(insProductResult);
+ return 0;
}
//瑙f瀽瑕佹眰鍊肩殑鏍煎紡
@@ -930,7 +956,7 @@
if (ObjectUtils.isEmpty(s)) {
continue;
}
- double numericValue = Double.parseDouble(s);
+ double numericValue = Math.abs(Double.parseDouble(s));
boolean valid = Arrays.stream(valuesToCheck)
.allMatch(v -> getResult(numericValue, v));
if (!valid) {
@@ -942,10 +968,10 @@
//浜ゆ帴
@Override
- public int upPlanUser(Integer userId, Integer orderId, String sonLaboratory) {
+ public int upPlanUser(Integer userId, Integer sampleId, String sonLaboratory) {
InsSampleUser insSampleUser = new InsSampleUser();
insSampleUser.setUserId(userId);
- insSampleUser.setInsSampleId(orderId);
+ insSampleUser.setInsSampleId(sampleId);
insSampleUser.setState(0);
insSampleUser.setSonLaboratory(sonLaboratory);
return insSampleUserMapper.insert(insSampleUser);
@@ -953,48 +979,47 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException {
+ public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
LocalDateTime now = LocalDateTime.now();
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
List<InsUnPass> insUnPasses = new ArrayList<>();
/*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/
- //杩欓噷鐨刬nsSamples鏄鍗曚笅鐨勬墍鏈夋牱鍝佸寘鎷�("/")
- List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
- for (InsSample insSample : samples) {
- List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
- .eq(InsProduct::getInsSampleId, insSample.getId())
- .eq(InsProduct::getSonLaboratory, laboratory)
- .eq(InsProduct::getState, 1));
- List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
- if (results.contains(0)) {
- insSample.setInsResult(0);
- } else {
- insSample.setInsResult(1);
- }
- insSampleMapper.updateById(insSample);
- /*澶嶆牳鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/
- for (InsProduct insProduct : insProducts) {
- if (insProduct.getInsResult() == 0) {
- InsUnPass insUnPass = new InsUnPass();
- insUnPass.setId(null);
- insUnPass.setModel(insSample.getModel());
- insUnPass.setSample(insSample.getSample());
- insUnPass.setInspectionItem(insProduct.getInspectionItem());
- insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
- insUnPass.setLastValue(insProduct.getLastValue());
- insUnPass.setEntrustCode(insOrderMapper.selectById(orderId).getEntrustCode());
- List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList());
- String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
- insUnPass.setName(name);
- insUnPasses.add(insUnPass);
- }
+ InsSample insSample = insSampleMapper.selectById(sampleId);
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getSonLaboratory, laboratory)
+ .eq(InsProduct::getState, 1));
+ List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
+ if (results.contains(0)) {
+ insSample.setInsResult(0);
+ } else {
+ insSample.setInsResult(1);
+ }
+ insSampleMapper.updateById(insSample);
+ /*澶嶆牳鍚庯紝灏嗕笉鍚堟牸鐨勯」鐩俊鎭坊鍔犲埌ins_un_pass琛ㄤ腑*/
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ for (InsProduct insProduct : insProducts) {
+ if (insProduct.getInsResult() == 0) {
+ InsUnPass insUnPass = new InsUnPass();
+ insUnPass.setId(null);
+ insUnPass.setModel(insSample.getModel());
+ insUnPass.setSample(insSample.getSample());
+ insUnPass.setInspectionItem(insProduct.getInspectionItem());
+ insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
+ insUnPass.setLastValue(insProduct.getLastValue());
+ insUnPass.setEntrustCode(insOrder.getEntrustCode());
+ List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList());
+ String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
+ insUnPass.setName(name);
+ insUnPasses.add(insUnPass);
}
}
insUnPassService.saveBatch(insUnPasses);
/*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/
// 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰�
InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
- .eq(InsOrderState::getInsOrderId, orderId)
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
.eq(InsOrderState::getLaboratory, laboratory)
.orderByDesc(InsOrderState::getId)
.last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰�
@@ -1017,11 +1042,11 @@
.set(InsOrderState::getCreateTime, LocalDateTime.now()));
break;
case 1:
- //缁х画璇曢獙:璇ョ珯鐐逛换鍔$粨鏉�(鍙互鍐嶆鎵爜妫�楠�)锛�
+ //缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛�
insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
- .eq(InsOrderState::getInsOrderId, orderId)
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
.eq(InsOrderState::getLaboratory, laboratory)
- .set(InsOrderState::getInsTime, now)
.set(InsOrderState::getInsState, 6)
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
@@ -1029,18 +1054,26 @@
case 2:
//缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆�
insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
- .eq(InsOrderState::getInsOrderId, orderId)
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, sampleId)
.eq(InsOrderState::getLaboratory, laboratory)
- .set(InsOrderState::getInsTime, now)
.set(InsOrderState::getInsState, 5)
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
//濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆
- InsOrder insOrder = insOrderMapper.selectById(orderId);
if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) {
- insOrder.setState(4);
- insOrderMapper.updateById(insOrder);
+ //鍑哄簱
+ try {
+ List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
+ for (InsSample sample : insSamples) {
+ outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
+ }
+ } catch (Exception e) {
+
+ }
}
+ insOrder.setState(4);
+ insOrderMapper.updateById(insOrder);
break;
}
}
@@ -1073,39 +1106,39 @@
}
@Override
- public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String note, String term) {
- List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
- .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
+ public int submitPlan(SubmitPlanDto submitPlanDto) {
+ InsSample insSample = insSampleMapper.selectById(submitPlanDto.getSampleId());
InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
- .eq(InsOrderState::getInsOrderId, orderId)
- .eq(InsOrderState::getLaboratory, laboratory)
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId())
+ .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
.orderByDesc(InsOrderState::getId)
.last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰�
/*璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/
InsOrderUser insOrderUser = new InsOrderUser();
insOrderUser.setInsOrderStateId(orderState.getId());
insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId"));
+ insOrderUser.setInsTime(orderState.getInsTime());
insOrderUser.setSubmitTime(LocalDateTime.now());
insOrderUser.setNum(orderState.getNum());
- insOrderUser.setNote(ObjectUtils.isNotEmpty(note) ? note : null);
- insOrderUser.setTerm(ObjectUtils.isNotEmpty(term) ? term : null);
+ insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null);
+ insOrderUser.setTerm(ObjectUtils.isNotEmpty(submitPlanDto.getTerm()) ? submitPlanDto.getTerm() : null);
insOrderUserMapper.insert(insOrderUser);
- List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
- .in(InsProduct::getInsSampleId, ids)
- .eq(InsProduct::getSonLaboratory, laboratory)
- .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getSonLaboratory, submitPlanDto.getLaboratory())
.and(wrapper -> wrapper
.isNull(InsProduct::getInsResult)
.or()
.eq(InsProduct::getInsResult, 2)
- ));
+ )
+ .eq(InsProduct::getState, 1));
if (insProducts.size() > 0) {
String str = "";
int count = 0;
for (InsProduct product : insProducts) {
- //杈愬皠璇曢獙妫�娴嬬殑妫�楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩�
- if (product.getInspectionItem().equals("杈愬皠璇曢獙妫�娴�")) {
+ //杈愬皠璇曢獙,娓╂箍搴﹁瘯楠�,鍔熺巼璇曢獙鐨勬楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩�
+ if (product.getInspectionItem().equals("杈愬皠璇曢獙") || product.getInspectionItem().equals("娓╂箍搴﹁瘯楠�") || product.getInspectionItem().equals("鍔熺巼璇曢獙")) {
product.setInsResult(3);//涓嶅垽瀹�
insProductMapper.updateById(product);
continue;
@@ -1131,79 +1164,191 @@
}
}
insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
- .eq(InsOrderState::getInsOrderId, orderId)
- .eq(InsOrderState::getLaboratory, laboratory)
- .set(InsOrderState::getInsTime, LocalDateTime.now())
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId())
+ .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
.set(InsOrderState::getInsState, 3)
- .set(InsOrderState::getVerifyUser, verifyUser));
- /*杩欎釜鎯呭喌鍏堝叧闂�----濡傛灉鏄疌绫昏鍗曚笖鏄笅鍙戝埌璐ㄩ噺閮�,鍒欑洿鎺ュ鏍搁�氳繃(缁撴潫璇曢獙)*/
-// InsOrder insOrder = insOrderMapper.selectById(orderId);
-// if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) {
-// try {
-// verifyPlan(orderId, laboratory, 2, null);
-// } catch (IOException e) {
-// e.printStackTrace();
-// }
-// } else {
- Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
- //LIMS绯荤粺娑堟伅鎺ㄩ��
- InformationNotification info = new InformationNotification();
- info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
- info.setMessageType("2");
- info.setTheme("澶嶆牳閫氱煡");
- info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅");
- info.setSenderId(userId);
- info.setConsigneeId(verifyUser);
- info.setViewStatus(false);
- info.setJumpPath("b1-inspect-order-plan");
- informationNotificationService.addInformationNotification(info);
- //todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
- /* HashMap<String, Object> map = new HashMap<>();
- String account = userMapper.selectById(userId).getAccount();
- map.put("touser", *//*account*//*"ZT-012117");//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
- map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
- map.put("totag", "");//娑堟伅鏍囩id
- map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
- map.put("agentid", 1000513);//搴旂敤id
- HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璇峰墠寰�LIMS绯荤粺鏌ョ湅銆�<a href=\"http://10.1.13.77/enter\"> </a>");
- map.put("text", JSONArray.toJSONString(hashMap));//娑堟伅鍐呭
- map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
- map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
- map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
- qywxApi.send(map);*/
-// }
+ .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser()));
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+
+ Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+ //LIMS绯荤粺娑堟伅鎺ㄩ��
+ InformationNotification info = new InformationNotification();
+ info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
+ info.setMessageType("2");
+ info.setTheme("澶嶆牳閫氱煡");
+ info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample());
+ info.setSenderId(userId);
+ info.setConsigneeId(submitPlanDto.getVerifyUser());
+ info.setViewStatus(false);
+ info.setJumpPath("b1-inspect-order-plan");
+ informationNotificationService.addInformationNotification(info);
//澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
InsSampleUser insSampleUser = new InsSampleUser();
- insSampleUser.setUserId(verifyUser);
- insSampleUser.setInsSampleId(orderId);
+ insSampleUser.setUserId(submitPlanDto.getVerifyUser());
+ insSampleUser.setInsSampleId(submitPlanDto.getSampleId());
insSampleUser.setState(1);
- insSampleUser.setSonLaboratory(laboratory);
+ insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory());
insSampleUserMapper.insert(insSampleUser);
- /*鏍¢獙涓�涓媟esult琛�*/
- CompletableFuture.supplyAsync(() -> {
- List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
- for (Integer ip : ips) {
- List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery()
- .eq(InsProductResult::getNum, orderState.getNum())
- .eq(InsProductResult::getInsProductId, ip));
- if (insProductResults.size() > 1) {
- for (int i = 1; i < insProductResults.size(); i++) {
- insProductResultMapper.deleteById(insProductResults.get(i));
+ /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/
+ if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) {
+ if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
+ wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
+ }else {
+ wordUtils.generateWord2(submitPlanDto.getTerm(), orderState);
+ }
+ //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮�
+// try {
+// if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) {
+// wordUtils.generateWord(submitPlanDto.getTerm(), orderState);
+// }else {
+// wordUtils.generateWord2(submitPlanDto.getTerm(), orderState);
+// }
+// } catch (Exception e) {
+// throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!");
+// }
+ }
+ /*鐢熸垚浜ч噺宸ユ椂*/
+ //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
+ //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮
+ LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT);
+ PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery()
+ .eq(PerformanceShift::getUserId, userId)
+ .eq(PerformanceShift::getWorkTime, today));
+ if (ObjectUtils.isNotEmpty(performanceShift)) {
+ ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift()));
+ if (ObjectUtils.isNotEmpty(shiftTime)) {
+ DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm");
+ LocalTime now = LocalTime.now();
+ LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma);
+ LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma);
+ // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛�
+ boolean isWithinRange;
+ if (endTime.isAfter(startTime)) {
+ // 涓嶈法澶╃殑鎯呭喌
+ isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime);
+ } else {
+ // 璺ㄥぉ鐨勬儏鍐�
+ isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime);
+ }
+ for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours : submitPlanDto.getAuxiliaryOutputWorkingHoursList()) {
+ InsProduct insProduct = insProductMapper.selectById(auxiliaryOutputWorkingHours.getInsProductId());
+ if (isWithinRange) {
+ //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮
+ auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
+ auxiliaryOutputWorkingHours.setWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//闈炲姞鐝伐鏃�
+ auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
+ } else {
+ //鍔犵彮
+ auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿
+ auxiliaryOutputWorkingHours.setOvertimeWorkTime(auxiliaryOutputWorkingHours.getOutputWorkTime());//鍔犵彮宸ユ椂
+ auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺
}
+ auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
+ LocalDateTime localDateTime = LocalDateTime.now();
+ DateTime parse = DateUtil.parse(localDateTime.format(formatter));
+ auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
+ auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
+ auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
}
}
- return null;
- });
- /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/
- /*if (laboratory.equals("鐢佃矾璇曢獙")) {
- MultipartFile file = wordUtils.generateWord(note, term, orderState);
- uploadFile(orderId,file);
- }*/
- // 鍒犻櫎鏁伴噰閲囬泦娆℃暟
- String key = "frequency" + ":" + entrustCode + ":*";
- RedisUtil.delsLike(key);
+ }
+
+ // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
+ HashMap<String, Object> map = new HashMap<>();
+ String account = userMapper.selectById(submitPlanDto.getVerifyUser()).getAccount();
+ map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
+ map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
+ map.put("totag", "");//娑堟伅鏍囩id
+ map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
+ map.put("agentid", 1000517);//搴旂敤id
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample() +
+ ",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傝鐐瑰嚮<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+ map.put("text", hashMap);//娑堟伅鍐呭
+ map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
+ map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
+ map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
+ qywxApi.send(map);
return 1;
+ }
+
+ @Override
+ public int cancelSubmitPlan(Integer orderStateId) {
+ InsOrderState orderState = insOrderStateMapper.selectById(orderStateId);
+ InsOrder insOrder = insOrderMapper.selectById(orderState.getInsOrderId());
+ InsSample insSample = insSampleMapper.selectById(orderState.getInsSampleId());
+ /*鍒犻櫎璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/
+ insOrderUserMapper.delete(Wrappers.<InsOrderUser>lambdaQuery()
+ .eq(InsOrderUser::getInsOrderStateId,orderState.getId())
+ .eq(InsOrderUser::getNum,orderState.getNum()));
+ //鎾ら攢鎻愪氦
+ insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId, orderState.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId, orderState.getInsSampleId())
+ .eq(InsOrderState::getLaboratory, orderState.getLaboratory())
+ .set(InsOrderState::getInsState, 2));
+ Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+ //LIMS绯荤粺娑堟伅鎺ㄩ��
+ InformationNotification info = new InformationNotification();
+ info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
+ info.setMessageType("2");
+ info.setTheme("澶嶆牳鎾ら攢閫氱煡");
+ info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳宸叉挙閿�鐨勬秷鎭�,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample());
+ info.setSenderId(userId);
+ info.setConsigneeId(orderState.getVerifyUser());
+ info.setViewStatus(false);
+ info.setJumpPath("b1-inspect-order-plan");
+ informationNotificationService.addInformationNotification(info);
+ //鍒犻櫎澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
+ insSampleUserMapper.delete(Wrappers.<InsSampleUser>lambdaQuery()
+ .eq(InsSampleUser::getState,1)
+ .eq(InsSampleUser::getSonLaboratory,orderState.getLaboratory())
+ .eq(InsSampleUser::getUserId,orderState.getVerifyUser())
+ .eq(InsSampleUser::getInsSampleId,orderState.getInsSampleId()));
+ //鍒犻櫎鐢熸垚鐨勬姤鍛�
+ if (orderState.getLaboratory().equals("鐢佃矾璇曢獙")) {
+ List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
+ .eq(InsOrderFile::getType, 2)
+ .like(InsOrderFile::getFileName,"鐢佃矾鍙傛暟.docx")
+ .eq(InsOrderFile::getInsOrderId, insOrder.getId())
+ .eq(InsOrderFile::getInsSampleId, orderState.getInsSampleId())
+ .eq(InsOrderFile::getSonLaboratory, orderState.getLaboratory()));
+ for (InsOrderFile insOrderFile : insOrderFiles) {
+ File file = new File(wordUrl + "/" + insOrderFile.getFileUrl());
+ file.delete();
+ insOrderFileMapper.deleteById(insOrderFile.getId());
+ }
+ }
+
+ /*鍒犻櫎鐢熸垚浜ч噺宸ユ椂*/
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()));
+ List<Integer> productIds = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList());
+ auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
+ .eq(AuxiliaryOutputWorkingHours::getSample,insSample.getSampleCode())
+ .in(AuxiliaryOutputWorkingHours::getInsProductId,productIds)
+ .eq(AuxiliaryOutputWorkingHours::getNum,orderState.getNum()));
+
+ // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss
+ HashMap<String, Object> map = new HashMap<>();
+ String account = userMapper.selectById(orderState.getVerifyUser()).getAccount();
+ map.put("touser", account);//鎺ユ敹娑堟伅鎴愬憳鐨勮处鍙�'ZT-031292'杩欑绫诲瀷(濡傛灉鏈夊涓敤'|'鍒嗛殧)
+ map.put("toparty", "");//鎺ユ敹閮ㄩ棬id
+ map.put("totag", "");//娑堟伅鏍囩id
+ map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
+ map.put("agentid", 1000517);//搴旂敤id
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("content", "鎮ㄦ湁涓�鏉″鏍哥殑娑堟伅宸叉挙閿�,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample() +
+ ",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傝鐐瑰嚮<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
+ map.put("text", hashMap);//娑堟伅鍐呭
+ map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
+ map.put("enable_id_trans", 0);//鏄惁寮�鍚痠d杞瘧.0鍚�
+ map.put("enable_duplicate_check", 0);//鏄惁寮�鍚噸澶嶆秷鎭鏌�.0鍚�
+ qywxApi.send(map);
+ return 0;
}
public static String getWeek(String dayStr) {
@@ -1241,6 +1386,4 @@
return "鏈煡";
}
}
-
-
}
--
Gitblit v1.9.3