From 81f615750dec3e3aba4b607033609a1f3c7fc7fd Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 15 三月 2024 16:03:18 +0800
Subject: [PATCH] 业务管理:检验任务(update)

---
 inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java                  |   31 +++++++
 inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java                    |    2 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java               |    8 ++
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                           |   57 ++++++++++++++
 framework/src/main/java/com/yuanchu/mom/common/AllController.java                      |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |   39 ++++++++-
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java    |   17 +++-
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java                   |   20 ++++-
 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java          |    6 +
 9 files changed, 165 insertions(+), 17 deletions(-)

diff --git a/framework/src/main/java/com/yuanchu/mom/common/AllController.java b/framework/src/main/java/com/yuanchu/mom/common/AllController.java
index 2097319..5c4c7a5 100644
--- a/framework/src/main/java/com/yuanchu/mom/common/AllController.java
+++ b/framework/src/main/java/com/yuanchu/mom/common/AllController.java
@@ -36,7 +36,7 @@
                         type = "鏌ヨ";
                     } else if(remark.contains("鍒犻櫎")){
                         type = "鍒犻櫎";
-                    } else if(remark.contains("娣诲姞")||remark.contains("鏂板")){
+                    } else if(remark.contains("娣诲姞")||remark.contains("鏂板")||remark.contains("璁ら")){
                         type = "娣诲姞";
                     } else if(remark.contains("瀵煎叆")){
                         type = "瀵煎叆";
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 2a88607..69e11cb 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
@@ -1,13 +1,16 @@
 package com.yuanchu.mom.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.mom.pojo.InsOrder;
+import com.yuanchu.mom.dto.InsOrderPlanDTO;
 import com.yuanchu.mom.service.InsOrderPlanService;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Map;
 
@@ -25,8 +28,14 @@
     @PostMapping("/selectInsOrderPlanList")
     public Result selectInsOrderPlanList(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
-        InsOrder enums = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrder.class);
-        return Result.success(insOrderPlanService.selectInsOrderPlanList(page, enums));
+        InsOrderPlanDTO insOrderPlanDTO = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrderPlanDTO.class);
+        return Result.success(insOrderPlanService.selectInsOrderPlanList(page, insOrderPlanDTO));
+    }
+
+    @ApiOperation(value = "璁ら浠诲姟璁″垝")
+    @PostMapping("/claimInsOrderPlan")
+    public Result claimInsOrderPlan(@RequestBody InsOrderPlanDTO data) {
+        return Result.success(insOrderPlanService.claimInsOrderPlan(data));
     }
 
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
new file mode 100644
index 0000000..9db96c1
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
@@ -0,0 +1,31 @@
+package com.yuanchu.mom.dto;
+
+import com.yuanchu.mom.common.OrderBy;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class InsOrderPlanDTO extends OrderBy {
+
+    @ApiModelProperty("鏄惁鍙湅鑷繁鐨勪换鍔�")
+    private Boolean viewSelf;
+
+    @ApiModelProperty("妫�楠屼换鍔′富閿甶d")
+    private Long insSampleId;
+
+    @ApiModelProperty("鐢ㄦ埛id")
+    private Long userId;
+
+    @ApiModelProperty("鐘舵��(妫�楠屽鐞�)")
+    private Integer state;
+
+    @ApiModelProperty("瀛愬疄楠屽")
+    private String childrenLaboratory;
+
+    @ApiModelProperty("鏍峰搧鍚嶇О")
+    private String sampleName;
+
+    @ApiModelProperty("妫�楠岀姸鎬�")
+    private String insState;
+
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
index b524e28..997e607 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
@@ -1,7 +1,13 @@
 package com.yuanchu.mom.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.InsOrderPlanDTO;
 import com.yuanchu.mom.pojo.InsSample;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.vo.InsOrderPlanVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
 * @author Administrator
@@ -11,6 +17,8 @@
 */
 public interface InsSampleMapper extends BaseMapper<InsSample> {
 
+    IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page, @Param("ew") InsOrderPlanDTO insOrderPlanDTO);
+
 }
 
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java
index f2321a2..ae76ec9 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java
@@ -1,12 +1,13 @@
 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 com.baomidou.mybatisplus.annotation.*;
+
 import java.io.Serializable;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * 鏍峰搧璐熻矗浜鸿褰�
@@ -14,6 +15,7 @@
  */
 @TableName(value ="ins_sample_user")
 @Data
+@NoArgsConstructor
 public class InsSampleUser implements Serializable {
     /**
      * 
@@ -34,18 +36,28 @@
     /**
      * 1锛氱‘璁� 0锛氭湭纭
      */
+
     private Integer state;
 
     /**
      * 鍒涘缓浜�
      */
+    @TableField(fill = FieldFill.INSERT)
     private Integer createUser;
 
     /**
      * 鍒涘缓鏃堕棿
      */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
+
+    public InsSampleUser(Integer insSampleId, Integer userId, Integer state) {
+        this.insSampleId = insSampleId;
+        this.userId = userId;
+        this.state = state;
+    }
 }
\ No newline at end of file
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 478d4a3..99d63fc 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
@@ -1,7 +1,9 @@
 package com.yuanchu.mom.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.InsOrderPlanDTO;
 import com.yuanchu.mom.pojo.InsOrder;
+import com.yuanchu.mom.pojo.InsSample;
 
 import java.util.Map;
 
@@ -9,5 +11,7 @@
  * 妫�楠屼换鍔�-涓氬姟灞�
  */
 public interface InsOrderPlanService {
-    Map<String,Object> selectInsOrderPlanList(Page page, InsOrder enums);
+    Map<String,Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO);
+
+    boolean claimInsOrderPlan(InsOrderPlanDTO entity);
 }
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 669f0fd..c9a8008 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
@@ -1,22 +1,24 @@
 package com.yuanchu.mom.service.impl;
 
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.mapper.InsOrderMapper;
+import com.yuanchu.mom.mapper.InsSampleMapper;
+import com.yuanchu.mom.mapper.InsSampleUserMapper;
 import com.yuanchu.mom.pojo.InsOrder;
+import com.yuanchu.mom.pojo.InsSampleUser;
 import com.yuanchu.mom.service.InsOrderPlanService;
-import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.vo.InsOrderPlanVO;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Objects;
 
 /**
  * 妫�楠屼换鍔�-涓氬姟瀹炵幇灞�
@@ -25,12 +27,35 @@
 @AllArgsConstructor
 public class InsOrderPlanServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder> implements InsOrderPlanService {
 
-    private InsOrderMapper insOrderMapper;
+    private InsSampleMapper insSampleMapper;
+
+    private InsSampleUserMapper insSampleUserMapper;
 
     private GetLook getLook;
 
     @Override
-    public Map<String, Object> selectInsOrderPlanList(Page page, InsOrder insOrder) {
-        return null;
+    public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) {
+        //鑾峰彇琛ㄥご
+        Map<String, Object> map = new HashMap<>();
+        map.put("head", PrintChina.printChina(InsOrderPlanVO.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderPlanList");
+        Integer userId = map1.get("userId");
+        //鏌ヨ
+        insOrderPlanDTO.setUserId(userId.longValue());
+        insOrderPlanDTO.setState(1);
+        IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, insOrderPlanDTO);
+        map.put("body", insOrderPage);
+        return map;
+    }
+
+    @Override
+    public boolean claimInsOrderPlan(InsOrderPlanDTO entity) {
+        if(Objects.isNull(entity)){
+            return false;
+        }
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("claimInsOrderPlan");
+        Integer userId = map1.get("userId");
+        InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1);
+        return insSampleUserMapper.insert(insSampleUser)>0;
     }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
index 11260ae..da5facc 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
@@ -10,6 +10,8 @@
 
     private String id;
 
+    private String sampleUserId;
+
     @ValueTableShow(value = 1,name = "濮旀墭缂栧彿")
     private String entrustCode;
 
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index 7948d72..35f6dff 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -40,4 +40,61 @@
         appointed,create_user,update_user,
         create_time,update_time
     </sql>
+    <select id="findInsSampleAndOrder" resultType="com.yuanchu.mom.vo.InsOrderPlanVO">
+        SELECT DISTINCT
+            io.entrust_code,
+            io.type,
+            tempA.id,
+            tempA.sample,
+            tempA.sample_code,
+            tempA.send_time,
+            tempA.appointed,
+            tempA.ins_state,
+            tempA.ins_result,
+            tempA.user_id,
+            tempA.ins_order_id,
+            tempA.sample_user_id,
+            ipr.son_laboratory
+        FROM
+            (
+                SELECT
+                    temp.*
+                FROM
+                    (
+                        SELECT
+                            isa.id,
+                            isa.sample,
+                            isa.sample_code,
+                            isa.send_time,
+                            isa.appointed,
+                            isa.ins_state,
+                            isa.ins_result,
+                            isu.user_id,
+                            isa.ins_order_id,
+                            isu.id as sample_user_id
+                        FROM
+                            ins_sample isa
+                                LEFT JOIN ins_sample_user isu ON isa.id = isu.ins_sample_id
+                    ) AS temp
+                WHERE
+                    temp.user_id = #{ew.userId}
+                   OR ( SELECT COUNT(*) FROM ins_sample_user WHERE ins_sample_id = temp.id ) = 0
+            ) AS tempA
+                LEFT JOIN ins_order io ON tempA.ins_order_id = io.id
+                LEFT JOIN ins_product ipr ON tempA.id = ipr.ins_sample_id
+        WHERE
+          io.state = #{ew.state}
+          AND ipr.state = 1
+          AND ipr.son_laboratory = #{ew.childrenLaboratory}
+          <if test="ew.insState!=null and ew.insState!=''">
+              AND tempA.ins_state = #{ew.insState}
+          </if>
+          <if test="ew.sampleName!=null and ew.sampleName!=''">
+              AND tempA.sample like concat('%',#{ew.sampleName},'%')
+          </if>
+          <if test="ew.viewSelf==true">
+              AND tempA.sample_user_id is not null
+          </if>
+          ORDER BY io.type DESC
+    </select>
 </mapper>

--
Gitblit v1.9.3