From e700e89f85e58747b57fc0d7e1fd30f3483aacca Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期六, 14 九月 2024 16:05:57 +0800 Subject: [PATCH] 检验任务历史记录 --- inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderUserService.java | 16 ++ inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderUser.java | 56 ++++++++ inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java | 2 inspect-server/src/main/resources/mapper/InsOrderUserMapper.xml | 21 +++ inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java | 1 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 216 ++++++++++++++---------------- inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 26 ++- inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderUserMapper.java | 19 ++ inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 7 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderUserServiceImpl.java | 20 ++ inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml | 33 ++-- 11 files changed, 281 insertions(+), 136 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java index b7eedcc..cf6dc1a 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java @@ -64,6 +64,7 @@ @ValueClassify("妫�楠屼笅鍗�") @ApiOperation(value = "妫�楠屽垎閰�") @PostMapping("/upInsOrder") + //鏆傛椂鍋滅敤 public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId,sonLaboratory)); } 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 724cb63..9b551c6 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 @@ -10,10 +10,7 @@ import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.pojo.InsOrderFile; import com.yuanchu.mom.pojo.InsOrderState; -import com.yuanchu.mom.service.InsOrderFileService; -import com.yuanchu.mom.service.InsOrderPlanService; -import com.yuanchu.mom.service.InsOrderStateService; -import com.yuanchu.mom.service.InsProductService; +import com.yuanchu.mom.service.*; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.vo.InsProductResultVo; import com.yuanchu.mom.vo.Result; @@ -39,6 +36,7 @@ public class InsOrderPlanController { private InsOrderPlanService insOrderPlanService; + private InsOrderUserService insOrderUserService; private InsOrderFileService insOrderFileService; @@ -117,8 +115,8 @@ @ValueClassify("妫�楠屼换鍔�") @ApiOperation(value = "妫�楠屼换鍔℃彁浜�") @PostMapping("/submitPlan") - public Result<?> submitPlan(Integer orderId,String laboratory, Integer verifyUser, String entrustCode) { - int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode); + public Result<?> submitPlan(Integer orderId,String laboratory, Integer verifyUser, String entrustCode, String note,String term) { + int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode,note,term); return num == 1 ? Result.success() : Result.fail("鎻愪氦澶辫触锛岄儴鍒嗛」鐩繕鏈繘琛屾楠�"); } @@ -212,11 +210,25 @@ return Result.success(insOrderStateService.updateById(orderState)); } - @ValueClassify("妫�楠屼换鍔�") + @ValueAuth + @PostMapping("/getInsOrderUserList") + @ApiOperation("鏌ョ湅妫�楠屽巻鍙插垪琛�") + public Result<?> getInsOrderUserList(Integer insOrderStateId) { + return Result.success(insOrderPlanService.getInsOrderUserList(insOrderStateId)); + } + + @ValueAuth @PostMapping("/getInsProduct2") @ApiOperation("鏌ョ湅妫�楠屽巻鍙�") public Result<?> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num) { return Result.success(insOrderPlanService.getInsProduct2(id, type, laboratory, request,num)); } + @ValueClassify("妫�楠屼换鍔�") + @ApiOperation(value = "鎵爜鎶ユ") + @PostMapping("/scanInsOrderState") + public Result scanInsOrderState(String sonLaboratory,String sampleCode) { + return Result.success(insOrderPlanService.scanInsOrderState(sonLaboratory,sampleCode)); + } + } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderUserMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderUserMapper.java new file mode 100644 index 0000000..d8b6f63 --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderUserMapper.java @@ -0,0 +1,19 @@ +package com.yuanchu.mom.mapper; + +import com.yuanchu.mom.pojo.InsOrderUser; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; + +/** + * <p> + * 姣忔妫�楠屼换鍔¢噸澶嶈褰� Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-14 10:08:31 + */ +public interface InsOrderUserMapper extends BaseMapper<InsOrderUser> { + + List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId); +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java index d195db4..ffacb4b 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java @@ -98,4 +98,6 @@ @TableField(exist = false,select = false) private String userName; + private List<InsOrderUser> insOrderUserList; + } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderUser.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderUser.java new file mode 100644 index 0000000..e4fad9f --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderUser.java @@ -0,0 +1,56 @@ +package com.yuanchu.mom.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import com.yuanchu.mom.common.OrderBy; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * <p> + * 姣忔妫�楠屼换鍔¢噸澶嶈褰� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-14 10:08:31 + */ +@Getter +@Setter +@TableName("ins_order_user") +@ApiModel(value = "InsOrderUser瀵硅薄", description = "姣忔妫�楠屼换鍔¢噸澶嶈褰�") +public class InsOrderUser extends OrderBy implements Serializable { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("澶栭敭锛氭楠屼换鍔d") + private Integer insOrderStateId; + + @ApiModelProperty("鎻愪氦浜�") + private Integer submitUser; + + @TableField(select = false,exist = false) + private String submitUserName; + + @ApiModelProperty("鎻愪氦鏃堕棿") + private LocalDateTime submitTime; + + @ApiModelProperty("妫�楠屾鏁�") + private Integer num; + + @ApiModelProperty("澶囨敞") + private String note; + + @ApiModelProperty("鏉′欢") + private String term; + + @ApiModelProperty("鐞嗙敱") + private String tell; +} 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 8402719..9c750eb 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 @@ -4,6 +4,7 @@ import com.yuanchu.mom.dto.InsOrderPlanDTO; import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.pojo.InsOrderFile; +import com.yuanchu.mom.pojo.InsOrderUser; import com.yuanchu.mom.pojo.InsProduct; import com.yuanchu.mom.vo.InsProductResultVo; import org.springframework.web.multipart.MultipartFile; @@ -35,7 +36,7 @@ int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException; - int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode); + int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String note,String term); List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request); List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num); @@ -50,4 +51,8 @@ int deleteInsContext(InsProductResultVo insProductResultVo); + //鎵爜鎶ユ + int scanInsOrderState(String sonLaboratory, String sampleCode); + + List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderUserService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderUserService.java new file mode 100644 index 0000000..fc4114b --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderUserService.java @@ -0,0 +1,16 @@ +package com.yuanchu.mom.service; + +import com.yuanchu.mom.pojo.InsOrderUser; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * 姣忔妫�楠屼换鍔¢噸澶嶈褰� 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-14 10:08:31 + */ +public interface InsOrderUserService extends IService<InsOrderUser> { + +} 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 ea2c45c..c769d0c 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 @@ -87,6 +87,8 @@ @Resource private InsProductMapper insProductMapper; @Resource + private InsOrderUserMapper insOrderUserMapper; + @Resource private ShiftTimeMapper shiftTimeMapper; @Resource private PerformanceShiftMapper performanceShiftMapper; @@ -179,31 +181,6 @@ public boolean claimInsOrderPlan(InsOrderPlanDTO entity) { if (Objects.isNull(entity)) { return false; - } - /*璁ら闇�瑕佸垽鏂鏍峰搧鏄惁鍦ㄥ簱*/ - //鏌ヨ鏍峰搧id(杩囨护娌℃湁妫�楠岄」鐩殑鏍峰搧) - List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() - .eq(InsSample::getInsOrderId, entity.getInsSampleId())).stream().map(InsSample::getId).collect(Collectors.toList()); - for (Integer samId : sampleIds) { - //杩囨护娌℃湁妫�楠岄」鐩殑鏍峰搧id - if (ObjectUtils.isEmpty(insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, samId) - .eq(InsProduct::getState, 1)))) { - continue; - } - //鍏ュ簱娆℃暟 - Long inCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery() - .eq(WarehouseHistory::getState, 1) - .eq(WarehouseHistory::getInsSampleId, samId)); - //鍑哄簱娆℃暟 - Long outCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery() - .eq(WarehouseHistory::getState, 2) - .eq(WarehouseHistory::getInsSampleId, samId)); - if (inCount > 0 && inCount > outCount) { - continue; - } else { - throw new ErrorException("鎵�閫夌殑鏍峰搧搴撳瓨涓嶈冻,璇锋鏌ュ叆搴撳拰鍑哄簱璁板綍!"); - } } Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); @@ -359,6 +336,54 @@ .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency()) .eq(InsProductResult2::getNum, insProductResultVo.getNum()) .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds())); + } + + //鎵爜鎶ユ + @Override + public int scanInsOrderState(String sonLaboratory, String sampleCode) { + //鍏堝垽鏂璁㈠崟鏄惁鏈夎繖涓珯鐐圭殑椤圭洰 + 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<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getState, 1) + .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList()); + 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.isNotEmpty(orderStates)) { + throw new ErrorException("璇ヨ鍗曠珯鐐圭殑浠诲姟宸茬粡缁撴潫璇曢獙,鏃犳硶鍐嶆杩涜璇曢獙!"); + } + InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId()) + .eq(InsOrderState::getLaboratory, sonLaboratory)); + if (ObjectUtils.isNotEmpty(orderState)) { + //缁х画璇曢獙 + if (orderState.getInsState() == 6) { + 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.setLaboratory(sonLaboratory); + insOrderState.setInsState(0); + insOrderState.setNum(1);//鍒濆鏄涓�娆� + insOrderStateMapper.insert(insOrderState); + } + return 1; + } + + @Override + public List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId) { + return insOrderUserMapper.getInsOrderUserList(insOrderStateId); } @@ -879,18 +904,22 @@ } insUnPassService.saveBatch(insUnPasses); /*type=0 鍐嶆璇曢獙; type=1 缁х画璇曢獙 ; type=2 缁撴潫璇曢獙*/ - switch (type) { - case 0: - /*鍐嶆璇曢獙:璇ュ崟瀛愰��鍥炲埌妫�楠岀姸鎬�(鎺掑簭鏀规垚褰撳墠鐨勬渶鍚�),娆℃暟閫掑(淇濈暀浠ュ墠鐨勬暟鎹�)锛�*/ - //鏇存柊鍘熸潵鐨勬楠屼换鍔� - // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰� - InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() - .eq(InsOrderState::getInsOrderId, orderId) - .eq(InsOrderState::getLaboratory, laboratory) - .orderByDesc(InsOrderState::getId) - .last("LIMIT 1")); // 纭繚鍙彇涓�鏉¤褰� - if (record != null) { - // 鑾峰彇鍒扮涓�鏉¤褰曠殑 id 鍚庯紝鎵ц鏇存柊鎿嶄綔 + // 鏌ヨ鏍规嵁 id 鍊掑簭鎺掑垪鐨勭涓�鏉¤褰� + InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() + .eq(InsOrderState::getInsOrderId, orderId) + .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, now) @@ -899,80 +928,34 @@ .set(InsOrderState::getVerifyUser, userId) .set(InsOrderState::getNum, record.getNum() + 1)//娆℃暟鍔�1 .set(InsOrderState::getCreateTime, LocalDateTime.now())); - } - break; - case 1: - //缁х画璇曢獙:鍒欑户缁皢妫�楠屼换鍔¤浆鎺ヨ嚦涓嬩竴绔欑偣锛� - insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() - .eq(InsOrderState::getInsOrderId, orderId) - .eq(InsOrderState::getLaboratory, laboratory) - .set(InsOrderState::getInsTime, now) - .set(InsOrderState::getInsState, 6) - .set(InsOrderState::getVerifyTell, tell) - .set(InsOrderState::getVerifyUser, userId)); - //杞帴鑷充笅涓�绔欑偣,闇�瑕佸厛鍒ゆ柇鏄惁杩樻湁鍏朵綑璇曢獙瀹�,濡傛灉鏈夊叾浣欒瘯楠屽闇�瑕佸皢璁㈠崟涓嬪彂 - 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::getState, 1)); - List<Integer> list = new ArrayList<>(); - list.add(4); - list.add(5); - list.add(6); - List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery() - .eq(InsOrderState::getInsOrderId, orderId) - .in(InsOrderState::getInsState, list)); - List<String> strings = insOrderStates.stream().map(InsOrderState::getLaboratory).distinct().collect(Collectors.toList()); - //闄ゅ幓褰撳墠澶嶆牳鐨勮瘯楠屽鍜屽凡缁忓鏍哥殑璇曢獙瀹� - List<String> collect = insProducts.stream() - .map(InsProduct::getSonLaboratory) - .distinct() - .filter(s -> !s.equals(laboratory)) - .filter(s -> !strings.contains(s)) - .collect(Collectors.toList()); - if (collect.size() > 0) { - //瑕佸垽鏂墿浣欒瘯楠屽涓摢涓渶绌洪棽灏卞畨鎺掔粰鍝釜 - Map<String, Long> dataCounts = new HashMap<>(); - for (String sonLaboratory : collect) { - Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery() - .eq(InsOrderState::getLaboratory, sonLaboratory) - .ne(InsOrderState::getInsState, 4) - .ne(InsOrderState::getInsState, 5) - .ne(InsOrderState::getInsState, 6)); - dataCounts.put(sonLaboratory, count); + break; + case 1: + //缁х画璇曢獙:鍒欑户缁皢妫�楠屼换鍔¤浆鎺ヨ嚦涓嬩竴绔欑偣锛� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, orderId) + .eq(InsOrderState::getLaboratory, laboratory) + .set(InsOrderState::getInsTime, now) + .set(InsOrderState::getInsState, 6) + .set(InsOrderState::getVerifyTell, tell) + .set(InsOrderState::getVerifyUser, userId)); + break; + case 2: + //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙锛岀洿鎺ョ敓鎴愭渶缁堟姤鍛婂拰璐圭敤缁熻銆� + insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, orderId) + .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); } - // 鏌ユ壘鏁版嵁閲忔渶灏戠殑鍏冪礌 - String minElement = null; - Long minCount = Long.MAX_VALUE; - for (Map.Entry<String, Long> entry : dataCounts.entrySet()) { - if (entry.getValue() < minCount) { - minCount = entry.getValue(); - minElement = entry.getKey(); - } - } - InsOrderState insOrderState = new InsOrderState(); - insOrderState.setInsOrderId(orderId); - insOrderState.setLaboratory(minElement); - insOrderState.setInsState(0); - insOrderState.setNum(1);//鍒濆鏄涓�娆� - insOrderStateMapper.insert(insOrderState); - } else { - //濡傛灉缁х画璇曢獙娌℃湁鍏朵粬绔欑偣鐨勬楠屼换鍔¢偅灏辩粨鏉熻瘯楠� - verifyPlan(orderId, laboratory, 2, tell); - } - break; - case 2: - //缁撴潫璇曢獙:姝ゅ鎵樺崟鍋滄璇曢獙锛岀洿鎺ョ敓鎴愭渶缁堟姤鍛婂拰璐圭敤缁熻銆� - insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate() - .eq(InsOrderState::getInsOrderId, orderId) - .eq(InsOrderState::getLaboratory, laboratory) - .set(InsOrderState::getInsTime, now) - .set(InsOrderState::getInsState, 5) - .set(InsOrderState::getVerifyTell, tell) - .set(InsOrderState::getVerifyUser, userId)); - break; + break; + } } /*澶嶆牳瀹屾垚涔嬪悗鐢熸垚浠栬嚜宸辩殑绔欑偣鎶ュ憡(浠呴檺杈愬皠璇曢獙妫�娴�(杩戝満,杩滃満)鍜岀數璺瘯楠�)*/ /*switch (laboratory) { @@ -992,7 +975,7 @@ } //鐢熸垚鐢佃矾璇曢獙鐨別xcel鏂囦欢 - private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException{ + private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException { // 鍒涘缓涓�涓猈orkbook瀵硅薄 Workbook workbook = new XSSFWorkbook(); @@ -1048,7 +1031,7 @@ } @Override - public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { + 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)); InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery() @@ -1056,6 +1039,15 @@ .eq(InsOrderState::getLaboratory, laboratory) .orderByDesc(InsOrderState::getId) .last("LIMIT 1"));// 纭繚鍙彇涓�鏉¤褰� + /*璁板綍妫�楠屼换鍔℃瘡娆$殑澶囨敞淇℃伅*/ + InsOrderUser insOrderUser = new InsOrderUser(); + insOrderUser.setInsOrderStateId(orderState.getId()); + insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId")); + insOrderUser.setSubmitTime(LocalDateTime.now()); + insOrderUser.setNum(orderState.getNum()); + insOrderUser.setNote(ObjectUtils.isNotEmpty(note) ? note : null); + insOrderUser.setTerm(ObjectUtils.isNotEmpty(term) ? term : 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) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderUserServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderUserServiceImpl.java new file mode 100644 index 0000000..f65714c --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderUserServiceImpl.java @@ -0,0 +1,20 @@ +package com.yuanchu.mom.service.impl; + +import com.yuanchu.mom.pojo.InsOrderUser; +import com.yuanchu.mom.mapper.InsOrderUserMapper; +import com.yuanchu.mom.service.InsOrderUserService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 姣忔妫�楠屼换鍔¢噸澶嶈褰� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-14 10:08:31 + */ +@Service +public class InsOrderUserServiceImpl extends ServiceImpl<InsOrderUserMapper, InsOrderUser> implements InsOrderUserService { + +} diff --git a/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml index 2530442..bd6daf3 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml @@ -4,33 +4,34 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.yuanchu.mom.mapper.InsOrderStateMapper"> <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsOrderState"> - <id property="id" column="id" jdbcType="INTEGER"/> + <id property="id" column="idd" jdbcType="INTEGER"/> <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/> <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/> <result property="insState" column="ins_state" jdbcType="INTEGER"/> <result property="sort" column="sort" jdbcType="INTEGER"/> + <result property="version" column="version" jdbcType="INTEGER"/> <result property="createUser" column="create_user" jdbcType="INTEGER"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateUser" column="update_user" jdbcType="INTEGER"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="sortTime" column="sort_time" jdbcType="TIMESTAMP"/> + <collection property="insOrderUserList" resultMap="insOrderUsers"/> </resultMap> - - <sql id="Base_Column_List"> - id,ins_order_id,laboratory, - ins_state,create_user,create_time, - update_user,update_time,sort,sort_time - </sql> - <select id="getInsOrderStateCount" resultType="com.yuanchu.mom.pojo.InsOrderState"> - select distinct ios.*,userName + <resultMap id="insOrderUsers" type="com.yuanchu.mom.pojo.InsOrderUser"> + <id column="id" property="id"/> + <result column="submit_user" property="submitUser"/> + <result column="submitUserName" property="submitUserName"/> + <result column="submit_time" property="submitTime"/> + <result column="num" property="num"/> + <result column="note" property="note"/> + <result column="term" property="term"/> + <result column="tell" property="tell"/> + </resultMap> + <select id="getInsOrderStateCount" resultMap="BaseResultMap"> + select ios.id idd,laboratory,version, iou.*,name submitUserName from ins_order_state ios - LEFT JOIN ( - SELECT ins_sample_id,GROUP_CONCAT( DISTINCT uu.name SEPARATOR ',') AS userName - FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id - WHERE u.state=0 - GROUP BY ins_sample_id - ORDER BY ins_sample_id - ) isu ON isu.ins_sample_id = ios.ins_order_id + left join ins_order_user iou on ios.id = iou.ins_order_state_id + left join user on submit_user=user.id where ios.ins_order_id = #{id} </select> </mapper> diff --git a/inspect-server/src/main/resources/mapper/InsOrderUserMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderUserMapper.xml new file mode 100644 index 0000000..2750726 --- /dev/null +++ b/inspect-server/src/main/resources/mapper/InsOrderUserMapper.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.yuanchu.mom.mapper.InsOrderUserMapper"> + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsOrderUser"> + <id column="id" property="id"/> + <result column="ins_order_state_id" property="insOrderStateId"/> + <result column="submit_user" property="submitUser"/> + <result column="submit_time" property="submitTime"/> + <result column="num" property="num"/> + <result column="note" property="note"/> + <result column="term" property="term"/> + <result column="tell" property="tell"/> + </resultMap> + + <select id="getInsOrderUserList" resultType="com.yuanchu.mom.pojo.InsOrderUser"> + select iou.*, name submitUserName + from ins_order_user iou + left join user on submit_user = user.id + </select> +</mapper> -- Gitblit v1.9.3