From 476740c4330135b38be6a32f54dbe1bbcd32476a Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 13 一月 2025 13:20:56 +0800 Subject: [PATCH] Merge branch 'master' into cnas --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 179 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 144 insertions(+), 35 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 e1187dd..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 @@ -17,10 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.SubmitPlanDto; +import com.yuanchu.mom.dto.*; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; @@ -128,6 +125,9 @@ @Resource FuSheUtils fuSheUtils; + + @Resource + DianLuUtils dianLuUtils; @Override public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { @@ -310,7 +310,8 @@ } @Override - public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) { + public Object uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) { + InsOrder insOrder = insOrderMapper.selectById(orderId); String urlString; String pathName; String path; @@ -344,15 +345,20 @@ file.transferTo(new File(urlString)); insOrderFile.setFileUrl(pathName); insOrderFileMapper.insert(insOrderFile); - //濡傛灉鏄緪灏勮瘯楠�(杩戝満/杩滅▼涓婁紶鐨刢sv鏂囦欢) 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) { - System.err.println("闄勪欢涓婁紶閿欒"); + throw new ErrorException(e.getMessage()); } return 0; } @@ -762,6 +768,8 @@ .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 @@ -839,10 +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())); + 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() @@ -858,8 +869,10 @@ //濡傛灉鎵�鏈夐」鐩兘鏈夌粨璁�,閭d箞璇ユ牱鍝佺姸鎬佸凡妫� insSample.setInsState(2); } - insSampleMapper.updateById(insSample); } + insProductResult2Mapper.saveBatch(result2s); + insProductUserMapper.saveBatch(insProductUsers); + insSampleMapper.updateById(insSample); /*鍒ゆ柇璇ョ珯鐐圭殑妫�楠岄」鐩槸鍚﹀叏閮ㄥ凡妫�*/ int count = insProductMapper.selectInsProductCountByOrderId(insSample.getInsOrderId()); if (count == 0) { @@ -870,6 +883,15 @@ .set(InsOrderState::getInsState, 2)); } return list; + } + + //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹�(杩斿洖/鎻愪氦) + @Override + public int saveInsContext2s(InsProductResultDtos insProductResultDtos) { + for (InsProductResultDto insProductResultDto : insProductResultDtos.getInsProductResultDtos()) { + saveInsContext2(insProductResultDto); + } + return 1; } //娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹� @@ -1042,7 +1064,10 @@ if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) { //鍑哄簱 try { - outInsOrderState(laboratory, insSample.getSampleCode(), insOrder.getEntrustCode()); + 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) { } @@ -1093,6 +1118,7 @@ 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(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null); @@ -1157,22 +1183,6 @@ info.setViewStatus(false); info.setJumpPath("b1-inspect-order-plan"); informationNotificationService.addInformationNotification(info); - // 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); //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(submitPlanDto.getVerifyUser()); @@ -1182,15 +1192,22 @@ insSampleUserMapper.insert(insSampleUser); /*鐢熸垚鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婂苟涓婁紶鍒伴檮浠朵腑*/ if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) { - //wordUtils.generateWord(submitPlanDto.getTerm(), orderState); - //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮� - try { + if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) { wordUtils.generateWord(submitPlanDto.getTerm(), orderState); - } catch (Exception e) { - throw new ErrorException("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!"); + }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("鐢佃矾璇曢獙鐨勭珯鐐规姤鍛婄敓鎴愭湁璇�,璇疯仈绯诲紑鍙戜汉鍛樿皟鏁�!"); +// } } - /*鐢熸垚浜ч噺宸ユ椂*/ //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 @@ -1239,9 +1256,101 @@ } } } + + // 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) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { -- Gitblit v1.9.3