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