From bcc80a6833abe9f24abdb978f7c7f01b664a574f Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 18 二月 2025 14:48:45 +0800 Subject: [PATCH] 优化调整 --- cnas-server/src/main/resources/mapper/DeviceMapper.xml | 19 +++ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java | 29 +++-- cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java | 3 inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java | 6 inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java | 10 + inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java | 12 + inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 132 +++++++++++++++++++++---- inspect-server/src/main/resources/mapper/WarehouseMapper.xml | 39 ++++++- inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 9 + inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 3 10 files changed, 203 insertions(+), 59 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java index 2295cbf..e140fc0 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceDto.java @@ -43,4 +43,7 @@ @ValueTableShow(value = 16, name = "涓嬫鏍″噯鏃ユ湡") @ApiModelProperty(value = "涓嬫鏍″噯鏃ユ湡") private LocalDateTime nextCalibrationDateTwo; + + @ApiModelProperty(value = "鏍″噯鎻愰啋") + private String status; } diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml index 6d1de4a..4a8ddca 100644 --- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml +++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml @@ -102,12 +102,25 @@ SEPARATOR ';' ) AS insProductItem, u.name , - l.laboratory_name + l.laboratory_name, + cmr.next_calibration_date nextCalibrationDateTwo, + CASE + WHEN cmr.next_calibration_date IS NULL THEN 0 + WHEN cmr.next_calibration_date BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 45 DAY) THEN 1 + ELSE 0 + END AS status FROM device d LEFT JOIN `user` u ON u.id = d.equipment_manager LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id - LEFT JOIN device_metric_record cmr ON d.id = cmr.device_id + LEFT JOIN (SELECT + device_id, + type, + MAX(next_calibration_date) AS next_calibration_date + FROM + device_metric_record + GROUP BY + device_id )cmr ON d.id = cmr.device_id LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids) <where> <if test="laboratoryNameIsNull != null and laboratoryNameIsNull == true"> @@ -117,7 +130,7 @@ </where> GROUP BY d.id, - u.name, l.laboratory_name + u.name, l.laboratory_name,cmr.next_calibration_date,status ) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java index 339e4e6..d171ba1 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java @@ -109,6 +109,13 @@ return Result.success(insOrderPlanService.verifyPlan(sampleId, laboratory, type, tell)); } + @ValueClassify("妫�楠屼换鍔�") + @ApiOperation(value = "绾犳澶嶆牳") + @PostMapping("/verifyPlan2") + public Result<?> verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException { + return Result.success(insOrderPlanService.verifyPlan2(sampleId, laboratory, type, tell)); + } + @ValueAuth @ApiOperation(value = "鏍¢獙妫�楠屼换鍔℃彁浜�") @PostMapping("/checkSubmitPlan") @@ -245,7 +252,6 @@ @ValueAuth @PostMapping("/getInsProduct2") @ApiOperation("鏌ョ湅妫�楠屽巻鍙�") - //杩欓噷鐨刬d鏄牱鍝乮d public Result<?> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request, Integer num) { return Result.success(insOrderPlanService.getInsProduct2(id, type, laboratory, request, num)); } @@ -274,7 +280,6 @@ @ValueAuth @PostMapping("/getCheckUser") @ApiOperation("鑾峰彇褰撳墠妫�楠屼换鍔$殑鎵�鏈夋楠屽憳淇℃伅") - //杩欓噷鐨勪紶鍙傛槸鏍峰搧id,绛夋楠屼换鍔¢偅鍧楀叏鏀逛簡涔嬪悗杩欓噷灏辨病闂 public Result<?> getCheckUser(Integer id,String sonLaboratory) { List<InsSampleUser> insSampleUsers = insSampleUserMapper.selectList(Wrappers.<InsSampleUser>lambdaQuery() .eq(InsSampleUser::getState, 0) //妫�楠屼汉 diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java index 3a2a4b2..1265f2f 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/WarehouseController.java @@ -29,10 +29,12 @@ @ValueClassify("鏍峰搧绠$悊") @GetMapping("/selectWarehouse") - @ApiOperation("鏌ヨ浠撳簱") + @ApiOperation("鏌ヨ浠撳簱---浠呮煡璇负绌鸿揣鏋�") public Result selectWarehouse() { return Result.success(warehouseService.selectWarehouse()); } + + @ValueClassify("鏍峰搧绠$悊") @PostMapping("/addShelf") @ApiOperation("娣诲姞璐ф灦") @@ -95,4 +97,4 @@ public Result getSampleRecord(Integer id) { return Result.success(warehouseService.getSampleRecord(id)); } -} \ No newline at end of file +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java index 15f5597..3f142cd 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/WarehouseShelf.java @@ -6,6 +6,7 @@ import java.io.Serializable; import java.time.LocalDateTime; +import java.util.List; /** * 璐ф灦 @@ -15,7 +16,7 @@ @Data public class WarehouseShelf implements Serializable { /** - * + * */ @TableId(type = IdType.AUTO) private Integer id; @@ -38,7 +39,7 @@ private Integer col; /** - * + * */ @TableField(fill = FieldFill.INSERT) private Integer createUser; @@ -58,4 +59,7 @@ * 澶栭敭锛氫粨搴搃d */ private Integer warehouseId; -} \ No newline at end of file + + @TableField(select = false,exist = false) + List<WarehouseCell> warehouseCellList; +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java index e76c725..20e5f5e 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java @@ -39,6 +39,9 @@ int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException; + //绾犳澶嶆牳閿欒鐨勬儏鍐� + int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException; + int submitPlan(SubmitPlanDto submitPlanDto); //鎾ら攢鎻愪氦 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 3a32619..bac2940 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 @@ -354,7 +354,7 @@ 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("鏃犳簮鍣ㄤ欢")) { + } else if (ObjectUtils.isNotEmpty(sonLaboratory) && sonLaboratory.equals("鐢佃矾璇曢獙") && split[split.length - 1].equals("csv") && insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) { dianLuUtils.readDianLuFile3(sampleId, insOrderFile); } } catch (Exception e) { @@ -891,7 +891,7 @@ for (InsProductResultDto insProductResultDto : insProductResultDtos.getInsProductResultDtos()) { saveInsContext2(insProductResultDto); } - return 1; + return 1; } //娓╂箍搴﹁瘯楠�+鍔熺巼璇曢獙鐨勪繚瀛樻楠屽唴瀹� @@ -1061,16 +1061,9 @@ .set(InsOrderState::getVerifyTell, tell) .set(InsOrderState::getVerifyUser, userId)); //濡傛灉璁㈠崟绫诲瀷鏄師鐞嗘牱鏈�,鍒欒璁㈠崟鐩存帴闂幆 - if (insOrder.getFormType().equals("鍘熺悊鏍锋満")) { - //鍑哄簱 - 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) { - - } + List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insSample.getInsOrderId())); + for (InsSample sample : insSamples) { + outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); } insOrder.setState(4); insOrderMapper.updateById(insOrder); @@ -1080,7 +1073,98 @@ return 1; } - private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { + @Override + @Transactional(rollbackFor = Exception.class) + public int verifyPlan2(Integer sampleId, String laboratory, Integer type, String tell) throws IOException { + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + InsSample insSample = insSampleMapper.selectById(sampleId); + InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId()); + /*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/ + // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰� + InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .orderByDesc(InsOrderState::getId) + .last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰� + if (record != null) { + //鏇存柊璁板綍 + insOrderUserMapper.update(null, Wrappers.<InsOrderUser>lambdaUpdate() + .eq(InsOrderUser::getInsOrderStateId, record.getId()) + .eq(InsOrderUser::getNum, record.getNum()) + .set(InsOrderUser::getTell, tell)); + switch (type) { + case 0: + //鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getId, record.getId()) + .set(InsOrderState::getInsTime, LocalDateTime.now()) + .set(InsOrderState::getInsState, 4) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId) + .set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1 + .set(InsOrderState::getCreateTime, LocalDateTime.now())); + insOrder.setState(3); + break; + case 1: + //缁х画璇曢獙:璇ユ牱鍝佽绔欑偣浠诲姟缁撴潫(鍙互鍐嶆鎵爜妫�楠�)锛� + //鍏堝垽鏂笂涓�涓鏍告槸浠�涔堢粨璁� + if (record.getInsState()==4){ + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 6) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1 + .set(InsOrderState::getVerifyUser, userId)); + }else { + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 6) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + } + insOrder.setState(3); + break; + case 2: + //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙(鏃犳硶鍐嶆妫�楠�)銆� + //鍏堝垽鏂笂涓�涓鏍告槸浠�涔堢粨璁� + if (record.getInsState()==4){ + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsState, 5) + .set(InsOrderState::getNum, record.getNum() - 1)//娆℃暟-1 + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + }else { + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getInsSampleId, sampleId) + .eq(InsOrderState::getLaboratory, laboratory) + .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) { + outInsOrderState(laboratory, sample.getSampleCode(), insOrder.getEntrustCode()); + } + insOrder.setState(4); + break; + } + insOrderMapper.updateById(insOrder); + } + return 1; + } + + private void getTemplateThing + (Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { for (InsProduct product : insProducts) { if (product.getTemplateId() == null) { product.setTemplate(new ArrayList<>()); @@ -1194,7 +1278,7 @@ if (submitPlanDto.getLaboratory().equals("鐢佃矾璇曢獙")) { if (!insOrder.getSampleType().equals("鏃犳簮鍣ㄤ欢")) { wordUtils.generateWord(submitPlanDto.getTerm(), orderState); - }else { + } else { wordUtils.generateWord2(submitPlanDto.getTerm(), orderState); } //todo 鐢佃矾绔欑偣鎶ュ憡 姝e紡搴撻儴缃叉斁寮� @@ -1283,8 +1367,8 @@ InsSample insSample = insSampleMapper.selectById(orderState.getInsSampleId()); /*鍒犻櫎璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/ insOrderUserMapper.delete(Wrappers.<InsOrderUser>lambdaQuery() - .eq(InsOrderUser::getInsOrderStateId,orderState.getId()) - .eq(InsOrderUser::getNum,orderState.getNum())); + .eq(InsOrderUser::getInsOrderStateId, orderState.getId()) + .eq(InsOrderUser::getNum, orderState.getNum())); //鎾ら攢鎻愪氦 insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderState.getInsOrderId()) @@ -1305,15 +1389,15 @@ 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())); + .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") + .like(InsOrderFile::getFileName, "鐢佃矾鍙傛暟.docx") .eq(InsOrderFile::getInsOrderId, insOrder.getId()) .eq(InsOrderFile::getInsSampleId, orderState.getInsSampleId()) .eq(InsOrderFile::getSonLaboratory, orderState.getLaboratory())); @@ -1328,9 +1412,9 @@ 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())); + .eq(AuxiliaryOutputWorkingHours::getSample, insSample.getSampleCode()) + .in(AuxiliaryOutputWorkingHours::getInsProductId, productIds) + .eq(AuxiliaryOutputWorkingHours::getNum, orderState.getNum())); // todo 浼佷笟寰俊娑堟伅鎺ㄩ�丂zss HashMap<String, Object> map = new HashMap<>(); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java index d4123f0..f4c5291 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java @@ -11,9 +11,11 @@ import com.yuanchu.mom.mapper.InsOrderMapper; import com.yuanchu.mom.mapper.InsProductMapper; import com.yuanchu.mom.mapper.InsSampleMapper; +import com.yuanchu.mom.mapper.WarehouseHistoryMapper; import com.yuanchu.mom.pojo.InsOrder; import com.yuanchu.mom.pojo.InsProduct; import com.yuanchu.mom.pojo.InsSample; +import com.yuanchu.mom.pojo.WarehouseHistory; import com.yuanchu.mom.service.InsProductService; import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.vo.InsOrderPlanVO; @@ -33,6 +35,8 @@ private InsOrderMapper insOrderMapper; private InsSampleMapper insSampleMapper; + + private WarehouseHistoryMapper warehouseHistoryMapper; @Override public int selectOrderManDay(Integer orderId) { @@ -83,6 +87,7 @@ @Override public void checkUpdate(Integer orderId, Integer state) { InsOrder insOrder = insOrderMapper.selectById(orderId); + //閫氳繃 if (state == 1) { List<String> list = new ArrayList<>(); try { @@ -99,29 +104,29 @@ if (insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()).equals(ids)) { //濡傛灉璇ユ楠屽崟涓嬬殑鎵�鏈夐」鐩叏閮ㄩ兘鎾ら攢,閭d箞杩欎釜鍗曞瓙涔熼渶瑕佹挙閿� insOrder.setState(3); - } - else { + //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺� + warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().in(WarehouseHistory::getInsSampleId, collect)); + //鍏ㄩ儴鎾ら攢,鏍峰搧鍜岄」鐩笉鑳藉垹鎺�,涓嶇劧妫�楠屼笅鍗曠殑鎾ら攢娌℃湁鏁版嵁 + } else { List<InsProduct> products = insProductMapper.selectBatchIds(ids); - //棣栧厛鏍规嵁閫夋嫨鐨勯」鐩甶d杩涜鎾ら攢椤圭洰 - updateBatchById(products.stream().map(insProduct -> { - insProduct.setState(0); - return insProduct; - }).collect(Collectors.toList())); - //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧涔熼渶瑕佸垹鎺� + //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧鐨勫嚭鍏ュ簱璁板綍涔熼渶瑕佸垹鎺� List<Integer> sampleIds = products.stream().map(InsProduct::getInsSampleId).distinct().collect(Collectors.toList()); + //椤圭洰鍒犳帀 + insProductMapper.deleteBatchIds(ids); for (Integer sampleId : sampleIds) { Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, sampleId) .eq(InsProduct::getState, 1)); - if(count<=0){ + if (count <= 0) { + //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺� + warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, sampleId)); + //瀵瑰簲鐨勬牱鍝佸垹鎺� insSampleMapper.deleteById(sampleId); } } } - //insProductMapper.updateInspected(id); } - //涓嶉�氳繃 - insOrder.setIsRevocation(0); + insOrder.setIsRevocation(state); insOrderMapper.updateById(insOrder); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java index 8d2ab9d..4c41723 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/WarehouseServiceImpl.java @@ -151,9 +151,11 @@ if(tree.length < 4){ throw new ErrorException("搴撲綅閫夋嫨閿欒"); } - List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode)); + List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery() + .ne(InsOrder::getState,3)//鎺掗櫎鎾ら攢鐨勮鍗� + .eq(InsOrder::getEntrustCode, entrustCode)); if(insOrders.size()!=1){ - throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎"); + throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎,鎴栬�呰璁㈠崟缂栧彿宸茬粡鎾ら攢"); } List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getSampleCode, sampleCode) @@ -180,9 +182,11 @@ @Override public int outWarehouse(String sampleCode, boolean a,String entrustCode) { - List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery().eq(InsOrder::getEntrustCode, entrustCode)); + List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery() + .ne(InsOrder::getState,3)//鎺掗櫎鎾ら攢鐨勮鍗� + .eq(InsOrder::getEntrustCode, entrustCode)); if(insOrders.size()!=1){ - throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎"); + throw new ErrorException("璁㈠崟缂栧彿杈撳叆鏈夎,鎴栬�呰璁㈠崟缂栧彿宸茬粡鎾ら攢"); } List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getSampleCode, sampleCode) diff --git a/inspect-server/src/main/resources/mapper/WarehouseMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml index 0be1e14..0a64ac5 100644 --- a/inspect-server/src/main/resources/mapper/WarehouseMapper.xml +++ b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml @@ -3,14 +3,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.mom.mapper.WarehouseMapper"> - <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.Warehouse"> - <id property="id" column="id" jdbcType="INTEGER"/> - <result property="name" column="name" jdbcType="VARCHAR"/> - <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> - <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> - <result property="createUser" column="create_user" jdbcType="INTEGER"/> - <result property="updateUser" column="update_user" jdbcType="INTEGER"/> + <id property="id" column="id" jdbcType="INTEGER"/> + <result property="name" column="name" jdbcType="VARCHAR"/> + <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> + <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> + <result property="createUser" column="create_user" jdbcType="INTEGER"/> + <result property="updateUser" column="update_user" jdbcType="INTEGER"/> </resultMap> <resultMap id="Warehouse" type="com.yuanchu.mom.dto.WarehouseDto"> @@ -24,10 +23,32 @@ <result property="name" column="sName" jdbcType="VARCHAR"/> <result property="row" column="row" jdbcType="INTEGER"/> <result property="col" column="col" jdbcType="INTEGER"/> + <collection property="warehouseCellList" resultMap="cell"/> + </resultMap> + + <resultMap id="cell" type="com.yuanchu.mom.pojo.WarehouseCell"> + <id property="id" column="cId" jdbcType="INTEGER"/> + <result property="row" column="crow" jdbcType="INTEGER"/> + <result property="col" column="ccol" jdbcType="INTEGER"/> </resultMap> <select id="selectWarehouseList" resultMap="Warehouse"> - select w.id,w.name,ws.id sId,ws.name sName,ws.row,ws.col,ws.warehouse_id from warehouse w - left join warehouse_shelf ws on w.id = ws.warehouse_id + select w.id, + w.name, + ws.id sId, + ws.name sName, + ws.row, + ws.col, + wc.id cId, + wc.row crow, + wc.col ccol + from warehouse w + left join warehouse_shelf ws on w.id = ws.warehouse_id + left join warehouse_cell wc on shelf_id = ws.id + left join + (select cell_id, count(*) num from warehouse_history group by cell_id) a on cell_id = wc.id + where num is null + or num % 2 = 0 + order by id, sId, crow, ccol </select> </mapper> -- Gitblit v1.9.3