From 8f6ffe3ec5691fe2eb1ab6caf49748ff94d8e0fb Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 07 八月 2023 08:58:51 +0800
Subject: [PATCH] 检验单

---
 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java |  231 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 164 insertions(+), 67 deletions(-)

diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
index ebfb650..444d70c 100644
--- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
+++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java
@@ -1,102 +1,199 @@
 package com.yuanchu.limslaboratory.service.impl;
 
-
+import cn.hutool.core.lang.Snowflake;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.yuanchu.limslaboratory.mapper.InspectionMaterialListMapper;
-import com.yuanchu.limslaboratory.mapper.InspectionProductListMapper;
-import com.yuanchu.limslaboratory.mapper.PlanMapper;
-import com.yuanchu.limslaboratory.pojo.Inspection;
-import com.yuanchu.limslaboratory.mapper.InspectionMapper;
-import com.yuanchu.limslaboratory.pojo.InspectionMaterialList;
-import com.yuanchu.limslaboratory.pojo.InspectionProductList;
-import com.yuanchu.limslaboratory.pojo.Plan;
-import com.yuanchu.limslaboratory.pojo.dto.InspectionDto;
-import com.yuanchu.limslaboratory.service.InspectionProductListService;
-import com.yuanchu.limslaboratory.service.InspectionService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.limslaboratory.mapper.*;
+import com.yuanchu.limslaboratory.pojo.*;
+import com.yuanchu.limslaboratory.pojo.vo.InsProductVo;
+import com.yuanchu.limslaboratory.pojo.vo.InspectDetailVo;
+import com.yuanchu.limslaboratory.pojo.vo.InspectionVo;
+import com.yuanchu.limslaboratory.service.*;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
+ * 鐢宠琛�(Inspection)琛ㄦ湇鍔″疄鐜扮被
  *
- * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
- * @since 2023-07-17
+ * @author zss
+ * @since 2023-08-03 13:03:36
  */
 @Service
 public class InspectionServiceImpl extends ServiceImpl<InspectionMapper, Inspection> implements InspectionService {
 
     @Resource
-    private InspectionMapper inspectionMapper;
+    InspectionMapper inspectionMapper;
 
     @Resource
-    private PlanMapper planMapper;
+    InspectionMaterialMapper inspectionMaterialMapper;
 
     @Resource
-    InspectionMaterialListMapper inspectionMaterialListMapper;
+    InspectionProductService inspectionProductService;
 
     @Resource
-    InspectionProductListService inspectionProductListService;
+    InspectionProductMapper inspectionProductMapper;
 
-    //娣诲姞妫�楠岀敵璇峰崟
+    @Resource
+    MaterialMapper materialMapper;
+
+    @Resource
+    StandardService standardService;
+
+    @Resource
+    SpecificationsService specificationsService;
+
+    @Resource
+    ProductMapper productMapper;
+
+    @Resource
+    InstrumentService instrumentService;
+
+    @Resource
+    UserMapper userMapper;
+
+    /**
+     * 鏌ヨ妫�楠岀敵璇峰崟鍒楄〃
+     *
+     * @param message
+     * @return
+     */
     @Override
-    public Inspection addInspection(String userName, int type) {
-        Inspection inspection = new Inspection(type, 0, 1, 1, userName);
-        int judge = inspectionMapper.insert(inspection);
-        return judge > 0 ? inspection : null;
+    public IPage<Map<String, Object>> selectInspectsList(Page<Object> page, String message) {
+        return inspectionMapper.selectInspectsList(page, message);
     }
 
-    //鏌ヨ鎵�鏈夋楠屽崟鍒楄〃
+    /**
+     * 鏂板妫�楠岀敵璇疯〃
+     *
+     * @param id
+     * @param
+     * @return
+     */
     @Override
-    public List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state) {
-        return inspectionMapper.selectAllInspection((pageSize - 1) * countSize, pageSize * countSize, state);
-    }
-
-    //浣滃簾鐢宠妫�楠屽崟
-    @Override
-    public void delInspectionByInsId(String inspectionId) {
-        /*妫�楠屽崟浣滃簾*/
-        Inspection inspection = inspectionMapper.selectById(inspectionId);
-        inspection.setState(0);
-        inspectionMapper.updateById(inspection);
-        /*妫�楠岃鍒掍綔搴�*/
-        UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("inspection_id", inspectionId).set("state", 0);
-        planMapper.update(new Plan(), updateWrapper);
-        /*妫�楠屾牱鍝佷綔搴�(鏍规嵁鎶ユ鍗昳d鍒犻櫎鏍峰搧淇℃伅)*/
-        UpdateWrapper<InspectionMaterialList> wrapper1 = new UpdateWrapper<>();
-        wrapper1.eq("inspection_id", inspectionId).set("state", 0);
-        inspectionMaterialListMapper.update(new InspectionMaterialList(), wrapper1);
-        /*妫�楠屾牱鍝佷腑鐨勬楠岄」鐩綔搴�*/
-        //鏌ュ嚭妫�楠屾牱鍝乮d
-        LambdaQueryWrapper<InspectionMaterialList> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(InspectionMaterialList::getInspectionId,inspectionId);
-        List<InspectionMaterialList> inspectionMaterialLists = inspectionMaterialListMapper.selectList(queryWrapper);
-        for (InspectionMaterialList inspectionMaterialList : inspectionMaterialLists) {
-            UpdateWrapper<InspectionProductList> wrapper = new UpdateWrapper<>();
-            wrapper.eq("inspection_material_list_id", inspectionMaterialList.getId()).set("state", 0);
-            inspectionProductListService.update(new InspectionProductList(), wrapper);
+    public Integer addInspect(Integer id, InspectionVo inspectionVo) {
+        /*鏂板妫�楠岀敵璇疯〃*/
+        Inspection inspection = Inspection.builder()
+                .startTime(inspectionVo.getStartTime())
+                .endTime(inspectionVo.getEndTime())
+                .type(inspectionVo.getType())
+                .code(new Snowflake(1, 1).nextIdStr())
+                .userId(id)
+                .build();
+        inspectionMapper.insert(inspection);
+        /*鏂板妫�楠屾牱鍝佽〃*/
+        InspectionMaterial inspectionMaterial = InspectionMaterial.builder()
+                .code(inspectionVo.getMcode())
+                .name(inspectionVo.getName())
+                .num(inspectionVo.getNum())
+                .unit(inspectionVo.getUnit())
+                .supplier(inspectionVo.getSupplier())
+                .specifications(inspectionVo.getSpecifications())
+                .formTime(inspectionVo.getFormTime())
+                .inspectionId(inspection.getId())
+                .build();
+        inspectionMaterialMapper.insert(inspectionMaterial);
+        /*鏂板妫�楠岄」鐩〃*/
+        //鑾峰彇鐗╂枡id
+        Material material = materialMapper.selectOne(Wrappers.<Material>query()
+                .eq("name", inspectionVo.getName())
+                .eq("code", inspectionVo.getMcode()));
+        //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+        String specification = inspectionVo.getSpecifications();
+        String[] split = specification.split("-");
+        String stName = split[0];
+        String spName = split[1];
+        //鑾峰彇瑙勬牸id
+        Standard standard = standardService.getOne(Wrappers.<Standard>query()
+                .eq("name", stName)
+                .eq("material_id", material.getId()));
+        //鑾峰彇鍨嬪彿id
+        Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+                .eq("name", spName)
+                .eq("standard_id", standard.getId()));
+        //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅
+        List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId()));
+        ArrayList<InspectionProduct> list = new ArrayList<>();
+        for (Product product : productList) {
+            InspectionProduct rawInsProduct = InspectionProduct.builder()
+                    .name(product.getName())
+                    .unit(product.getUnit())
+                    .required(product.getRequired())
+                    .internal(product.getInternal())
+                    .inspectionMaterialId(material.getId())
+                    .build();
+            list.add(rawInsProduct);
         }
+        //妫�楠岄」鐩壒閲忔坊鍔�
+        inspectionProductService.saveBatch(list);
+        return inspection.getId();
     }
 
-    //鎻愪氦鐢宠妫�楠屽崟
+    //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
     @Override
-    public void subInspectionByInsId(String inspectionId) {
-        Inspection inspection = inspectionMapper.selectById(inspectionId);
-        //鐘舵�佹敼涓哄凡鎻愪氦2
-        inspection.setState(2);
+    public InspectDetailVo selectInspectsListById(Integer id) {
+        /*灏嗘楠屽崟鍩烘湰淇℃伅鏌ヨ鍑烘潵骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�*/
+        Inspection inspection = inspectionMapper.selectById(id);
+        InspectDetailVo inspectDetailVo = new InspectDetailVo();
+        //鎶ユ浜�
+        User user = userMapper.selectById(inspection.getUserId());
+        inspectDetailVo.setUserName(user.getName());
+        //鎶ユ寮�濮嬫椂闂村拰缁撴潫鏃堕棿
+        inspectDetailVo.setStartTime(inspection.getStartTime());
+        inspectDetailVo.setEndTime(inspection.getEndTime());
+        //妫�楠岀粨璁�
+        inspectDetailVo.setInspectionStatus(inspection.getInspectionStatus());
+        //鏌ヨ妫�楠岀墿鏂�
+        InspectionMaterial inspectionMaterial = inspectionMaterialMapper.selectOne(Wrappers.<InspectionMaterial>query().eq("inspection_id", id));
+        //鏉ユ枡鏃ユ湡,渚涘簲鍟嗗悕绉�,鍘熸潗鏂欑紪鐮�,鍘熸潗鏂欏悕绉�,瑙勬牸鍨嬪彿,鍗曚綅,鏁伴噺
+        BeanUtils.copyProperties(inspectionMaterial, inspectDetailVo);
+        /*鏌ヨ妫�楠屽崟閲岄潰鐨勬楠岄」鐩�,骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�*/
+        LambdaQueryWrapper<InspectionProduct> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(InspectionProduct::getInspectionMaterialId, inspectionMaterial.getId());
+        List<InspectionProduct> inspectionProducts = inspectionProductMapper.selectList(queryWrapper);
+        //杩欓噷鏌ュ埌鐨勮澶噄d鍜屾楠屽憳id瑕佹煡璇㈠悕绉�
+        List<InsProductVo> insProductVos = inspectionProducts.stream().map(insProduct -> {
+            //灏嗕竴涓璞$殑鍊艰祴鍊肩粰鍙︿竴涓璞�
+            InsProductVo insProductVo = new InsProductVo();
+            BeanUtils.copyProperties(insProduct, insProductVo);
+            //鑾峰彇璁惧鍚�(鍓嶆彁鏄鏋滃瓨鍦�)
+            if (insProduct.getInstrumentId() != null) {
+                String equipmentName = instrumentService.getById(insProduct.getInstrumentId()).getEquipmentName();
+                insProductVo.setInstrumentName(equipmentName);
+            }
+            //鑾峰彇鐢ㄦ埛鍚�(鍓嶆彁鏄鏋滃瓨鍦�)
+            if (insProduct.getUserId() != null) {
+                String userName = userMapper.selectById(insProduct.getUserId()).getName();
+                insProductVo.setUserName(userName);
+            }
+            //椤圭洰鍏宠仈鐗╂枡id
+            insProductVo.setInspectionMaterialId(inspectionMaterial.getId());
+            return insProductVo;
+        }).collect(Collectors.toList());
+        inspectDetailVo.setInsProducts(insProductVos);
+        return inspectDetailVo;
+    }
+
+    //鏇存柊妫�楠屽崟妫�楠岀粨鏋�
+    @Override
+    public boolean updateInspectsById(Integer id) {
+        //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀姸鎬佸拰妫�楠岀粨璁�
+        InspectDetailVo inspectDetailVo = selectInspectsListById(id);
+        Inspection inspection = Inspection.builder()
+                .id(id)
+                .inspectionStatus(inspectDetailVo.getInspectionStatus())
+                .build();
         inspectionMapper.updateById(inspection);
-        //璁″垝琛ㄦ柊澧�
-        Plan plan = Plan.builder().inspectionId(inspectionId).state(1).userId(inspection.getInspectUserId()).createTime(new Date()).build();
-        planMapper.insert(plan);
+        //鐢熸垚鎶ュ憡鍗�
+
+        return true;
     }
 }
+

--
Gitblit v1.9.3