From c47b351cc8e410993ed8cf1e27e3c50f7b52b371 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 08 八月 2025 18:06:47 +0800
Subject: [PATCH] 辐射试验近场生成报告优化,可以端口也可以P
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 130 ++++++++++++++++++++++++++-----------------
1 files changed, 79 insertions(+), 51 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 22d82a0..bf5c26f 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
@@ -146,7 +146,9 @@
}
String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹�
insOrderPlanDTO.setSonLaboratory(null);
- IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userName, sonLaboratory, laboratory);
+ String sampleCode = insOrderPlanDTO.getSampleCode();
+ insOrderPlanDTO.setSampleCode(null);
+ IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userName, sonLaboratory, laboratory,sampleCode);
map.put("body", insOrderPage);
return map;
}
@@ -350,7 +352,7 @@
insOrderFile.setFileUrl(pathName);
insOrderFileMapper.insert(insOrderFile);
String[] split = filename.split("\\.");
- if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("杩戝満") && split[split.length - 1].equals("csv")) {
+ if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("杩戝満") && (split[split.length - 1].equals("csv") || split[split.length - 1].equals("xlsx"))) {
fuSheUtils.getFuSheWord1(sonLaboratory, insOrderFile);
} else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("杩滃満") && split[split.length - 1].equals("xlsx")) {
fuSheUtils.getFuSheWord2(sonLaboratory, insOrderFile);
@@ -366,7 +368,7 @@
return pathName;
}
// 闇囧姩doc鏂囦欢瑙f瀽
- if(filename.contains(".doc") && sonLaboratory.equals("鎸姩")){
+ if(filename.toLowerCase().contains(".doc") && sonLaboratory.equals("鎸姩")){
return docAnalysis(urlString,orderId,sampleId,file.getOriginalFilename());
}
} catch (Exception e) {
@@ -403,10 +405,11 @@
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()
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
.eq(InsProduct::getState, 1)
- .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
- if (!collect.contains(sonLaboratory)) {
+ .eq(InsProduct::getSonLaboratory,sonLaboratory)
+ .eq(InsProduct::getInsSampleId, insSample.getId()));
+ if (insProducts.size()<=0) {
throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
}
//鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁缁撴潫璇曢獙(鍙浠讳竴浠诲姟缁撴潫璇曢獙閮戒笉鑳藉啀娆¤瘯楠�)
@@ -425,7 +428,13 @@
if (orderState.getInsState() == 6) {
orderState.setInsState(0);
orderState.setNum(orderState.getNum() + 1);//閫掑
+ orderState.setCreateTime(LocalDateTime.now());
insOrderStateMapper.updateById(orderState);
+ //杩欓噷闇�瑕佸皢鍘熸潵鐨勬楠岄」鐩殑鐘舵�侀噸缃负null(鏍规嵁鏍峰搧id鍜岃瘯楠屽鏉ュ垽鏂」鐩�)
+ insProducts.stream().forEach(insProduct -> {
+ insProduct.setInsResult(null);
+ insProductMapper.updateById(insProduct);
+ });
}
} else {
InsOrderState insOrderState = new InsOrderState();
@@ -436,10 +445,17 @@
insOrderState.setNum(1);//鍒濆鏄涓�娆�
insOrderStateMapper.insert(insOrderState);
}
+ //鍚屼竴鏍峰搧鍦ㄥ叾浠栫珯鐐瑰叆搴撲箣鍚庨渶瑕佸皢鍏朵粬绔欑偣鐨勪换鍔′笉鏄剧ず
+ insOrderStateMapper.update(null,Wrappers.<InsOrderState>lambdaUpdate()
+ .eq(InsOrderState::getInsOrderId,insSample.getInsOrderId())
+ .eq(InsOrderState::getInsSampleId,insSample.getId())
+ .eq(InsOrderState::getInsState,6)//澶嶆牳缁х画璇曢獙
+ .ne(InsOrderState::getLaboratory,sonLaboratory)
+ .set(InsOrderState::getIsOut,1));//涓嶆樉绀�
return 1;
}
- //鎵爜鍑哄簱
+ //鎵爜鍑哄簱(鍙湁澶嶆牳缁撴潫鎵嶄細璋冪敤)
@Override
public int outInsOrderState(String sonLaboratory, String sampleCode, String entrustCode) {
//鍒ゆ柇璇ユ牱鍝佺殑妫�楠屼换鍔℃槸鍚﹀凡缁忕粨鏉�(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
@@ -454,22 +470,18 @@
if (!collect.contains(sonLaboratory)) {
throw new ErrorException("璇ユ牱鍝佹病鏈�" + sonLaboratory + "绔欑偣鐨勭浉鍏抽」鐩�,璇锋煡鐪嬩笅鍗曡鎯�!");
}
+ //鍒ゆ柇璇ヤ换鍔℃槸鍚︽槸缁撴潫璇曢獙
//鍒ゆ柇璇ヨ鍗曟槸鍚︾珯鐐逛换鍔℃湁(缁х画璇曢獙鎴栬�呮槸缁撴潫璇曢獙)
- List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
- .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
- .eq(InsOrderState::getInsState, 5));//缁撴潫璇曢獙
- if (CollectionUtils.isEmpty(orderStates)) {
- 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("璇ユ牱鍝佺殑妫�楠屼换鍔¤繕娌℃湁缁撴潫璇曢獙鎴栫户缁瘯楠�,鏆傛椂鏃犳硶鍑哄簱!");
- }
+ InsOrderState orderStates = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
+ .eq(InsOrderState::getLaboratory,sonLaboratory)
+ .eq(InsOrderState::getInsSampleId, insSample.getId())
+ .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()));
+ if (orderStates.getInsState()!=5) {
+ throw new ErrorException("褰撳墠鏍峰搧鐨勭珯鐐逛换鍔″苟涓嶆槸澶嶆牳鐨勭粨鏉熻瘯楠�,鏃犻渶鎵嬪姩鍑哄簱!");
}
- boolean a = true;
- warehouseService.outWarehouse(sampleCode, a, entrustCode);
+ orderStates.setIsOut(1);
+ insOrderStateMapper.updateById(orderStates);//澶嶆牳缁撴潫鍑哄簱涔嬪悗鍒楄〃涓嶆樉绀�
+ warehouseService.outWarehouse(sampleCode, true, entrustCode);
return 0;
}
@@ -940,6 +952,9 @@
if(tableIndex == 0){
Table table = tableList.get(0);
for (int i = 0; i < table.numRows(); i++) {
+ if(table.getRow(i).numCells() < 2){
+ continue;
+ }
String columnText = ObjectUtils.isEmpty(table.getRow(i).getCell(0))? "" : table.getRow(i).getCell(0).text();
String columnValue = ObjectUtils.isEmpty(table.getRow(i).getCell(1))? "" : table.getRow(i).getCell(1).text();
if(columnValue.contains("\u0007")){
@@ -962,7 +977,7 @@
//鍙栫涓�涓〃鍗曡緭鍏ラ�氶亾鍙傛暟绗竴鏉℃暟鎹�
if(tableIndex == 1){
Table table = tableList.get(1);
- if(ObjectUtils.isNotEmpty(table)&& table.numRows() > 0){
+ if(ObjectUtils.isNotEmpty(table) && table.numRows() > 1 && table.getRow(1).numCells() >= 3){
String columnValue = ObjectUtils.isEmpty(table.getRow(1).getCell(2))? "" : table.getRow(1).getCell(2).text();
if(columnValue.contains("\u0007")){
columnValue = columnValue.replace("\u0007","");
@@ -974,6 +989,9 @@
if(tableIndex == tableList.size() - 1){
Table table = tableList.get(tableIndex);
for (int i = 0; i < table.numRows(); i++) {
+ if(table.getRow(i).numCells() < 2){
+ continue;
+ }
String columnText = ObjectUtils.isEmpty(table.getRow(i).getCell(0))? "" : table.getRow(i).getCell(0).text();
String columnValue = ObjectUtils.isEmpty(table.getRow(i).getCell(1))? "" : table.getRow(i).getCell(1).text();
if(columnValue.contains("\u0007")){
@@ -1172,6 +1190,11 @@
.set(InsOrderState::getVerifyUser, userId)
.set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1
.set(InsOrderState::getCreateTime, LocalDateTime.now()));
+ //杩欓噷闇�瑕佸皢鍘熸潵鐨勬楠岄」鐩殑鐘舵�侀噸缃负null(鏍规嵁鏍峰搧id鍜岃瘯楠屽鏉ュ垽鏂」鐩�)
+ insProducts.stream().forEach(insProduct -> {
+ insProduct.setInsResult(null);
+ insProductMapper.updateById(insProduct);
+ });
break;
case 1:
//缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛�
@@ -1182,6 +1205,15 @@
.set(InsOrderState::getInsState, 6)
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
+ //缁х画璇曢獙鑷姩鍑哄簱
+ WarehouseHistory history = new WarehouseHistory();
+ history.setState(2);
+ history.setInsSampleId(sampleId);
+ history.setCellId(insSample.getCellId());
+ history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery()
+ .eq(WarehouseHistory::getInsSampleId, sampleId).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode());
+ insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, sampleId).set(InsSample::getCellId, null));
+ warehouseHistoryMapper.insert(history);
break;
case 2:
//缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆�
@@ -1192,15 +1224,6 @@
.set(InsOrderState::getInsState, 5)
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
- //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆
- List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
- for (InsSample sample : insSamples) {
- try{
- outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
- }catch (Exception e){
-
- }
- }
/*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/
List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId());
createReport(insOrder.getId(),insReportDto1s);
@@ -1216,6 +1239,10 @@
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
InsSample insSample = insSampleMapper.selectById(sampleId);
InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getSonLaboratory, laboratory)
+ .eq(InsProduct::getState, 1));
/*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/
// 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰�
InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
@@ -1236,6 +1263,11 @@
.set(InsOrderState::getVerifyUser, userId)
.set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1
.set(InsOrderState::getCreateTime, LocalDateTime.now()));
+ //杩欓噷闇�瑕佸皢鍘熸潵鐨勬楠岄」鐩殑鐘舵�侀噸缃负null(鏍规嵁鏍峰搧id鍜岃瘯楠屽鏉ュ垽鏂」鐩�)
+ insProducts.stream().forEach(insProduct -> {
+ insProduct.setInsResult(null);
+ insProductMapper.updateById(insProduct);
+ });
break;
case 1:
//缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛�
@@ -1258,6 +1290,16 @@
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
}
+ //缁х画璇曢獙闇�瑕佸嚭搴�
+ WarehouseHistory history = new WarehouseHistory();
+ history.setState(2);
+ history.setInsSampleId(sampleId);
+ history.setCellId(insSample.getCellId());
+ history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery()
+ .eq(WarehouseHistory::getInsSampleId, sampleId).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode());
+ insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate()
+ .eq(InsSample::getId, sampleId).set(InsSample::getCellId, null));
+ warehouseHistoryMapper.insert(history);
break;
case 2:
//缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆�
@@ -1268,6 +1310,7 @@
.eq(InsOrderState::getInsSampleId, sampleId)
.eq(InsOrderState::getLaboratory, laboratory)
.set(InsOrderState::getInsState, 5)
+ .set(InsOrderState::getIsOut,1)//澶嶆牳缁撴潫鍑哄簱涔嬪悗鍒楄〃涓嶆樉绀�
.set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
@@ -1277,16 +1320,9 @@
.eq(InsOrderState::getInsSampleId, sampleId)
.eq(InsOrderState::getLaboratory, laboratory)
.set(InsOrderState::getInsState, 5)
+ .set(InsOrderState::getIsOut,1)//澶嶆牳缁撴潫鍑哄簱涔嬪悗鍒楄〃涓嶆樉绀�
.set(InsOrderState::getVerifyTell, tell)
.set(InsOrderState::getVerifyUser, userId));
- }
- //鍑哄簱
- List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId()));
- for (InsSample sample : insSamples) {
- try{
- outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode());
- }catch (Exception e){
- }
}
/*鐢熸垚瀵瑰簲鐨勬楠屾姤鍛�*/
List<InsReportDto1> insReportDto1s=insOrderUserMapper.selectInsReportDto1(insOrder.getId());
@@ -1410,11 +1446,13 @@
info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
info.setMessageType("2");
info.setTheme("澶嶆牳閫氱煡");
- info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample());
+ info.setContent("鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode()+"绔欑偣鏄細"+submitPlanDto.getLaboratory() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample());
info.setSenderId(userId);
info.setConsigneeId(submitPlanDto.getVerifyUser());
info.setViewStatus(false);
info.setJumpPath("b1-inspect-order-plan");
+ info.setEntrustCode(insOrder.getEntrustCode());//濮旀墭缂栧彿
+ info.setLaboratory(submitPlanDto.getLaboratory());//绔欑偣
informationNotificationService.addInformationNotification(info);
//澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜�
InsSampleUser insSampleUser = new InsSampleUser();
@@ -1430,16 +1468,6 @@
} 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("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!");
-// }
}
/*鐢熸垚浜ч噺宸ユ椂*/
//鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
@@ -1499,7 +1527,7 @@
map.put("msgtype", "text");//娑堟伅绫诲瀷 text:鏂囨湰
map.put("agentid", 1000517);//搴旂敤id
HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode() + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample() +
+ hashMap.put("content", "鎮ㄦ湁涓�鏉℃楠屼换鍔″緟澶嶆牳娑堟伅,璁㈠崟鍙锋槸锛�" + insOrder.getEntrustCode()+"绔欑偣鏄細"+submitPlanDto.getLaboratory() + ",鏍峰搧鍚嶇О涓猴細" + ",鏍峰搧鍚嶇О涓猴細" + insSample.getSample() +
",璇峰墠寰�LIMS绯荤粺鏌ョ湅銆傝鐐瑰嚮<a href=\"https://ztwxlims.ztt.cn:7443/enter\">涓ぉ閫氫俊LIMS绯荤粺 </a>");
map.put("text", hashMap);//娑堟伅鍐呭
map.put("safe", 0);//鏄惁淇濆瘑娑堟伅.0鍚�
--
Gitblit v1.9.3