From 56dfe0d4bf81262622a1919cceb2b039fd356209 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 03 九月 2024 16:52:49 +0800
Subject: [PATCH] 代码提交 bug解决

---
 ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java |  254 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 219 insertions(+), 35 deletions(-)

diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
index 94462c6..2ae8d7b 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.management.domain.*;
@@ -11,10 +12,7 @@
 import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO;
 import com.ruoyi.management.domain.vo.*;
 import com.ruoyi.management.mapper.*;
-import com.ruoyi.management.service.SlAuditRecordService;
-import com.ruoyi.management.service.SlAuditService;
-import com.ruoyi.management.service.SlStoreManagementService;
-import com.ruoyi.management.service.SlVolumeProductionZyService;
+import com.ruoyi.management.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.management.util.UUIDUtil;
 import com.ruoyi.system.api.domain.SysUser;
@@ -25,10 +23,7 @@
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -103,9 +98,32 @@
 
     @Resource
     private ManagementGoodsMaterialsMapper managementGoodsMaterialsMapper;
-
+    @Resource
+    private SlGoodsShelfService slGoodsShelfService;
+    @Resource
+    private SlStoreManagementMapper slStoreManagementMapper;
     @Override
-    public void addSlVolumeProductionZy(ADDZYDTO addaddSlVolumeProductionZyDTO) {
+    public R addSlVolumeProductionZy(ADDZYDTO addaddSlVolumeProductionZyDTO) {
+        SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(addaddSlVolumeProductionZyDTO.getManagementId());
+        String directorId = slStoreManagement.getDirectorId();
+        String competentId = slStoreManagement.getCompetentId();
+        String administratorId = slStoreManagement.getAdministratorId();
+        List<String> list1 = Arrays.asList(administratorId.split(","));
+        List<String> list2 = Arrays.asList(competentId.split(","));
+        List<String> list3 = Arrays.asList(directorId.split(","));
+        List<AddZYIdsDTO> rkId = addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS();
+        for (AddZYIdsDTO addZYIdsDTO : rkId) {
+            Long shelfId = addZYIdsDTO.getShelfId();
+            SlGoodsShelf byId = slGoodsShelfService.getById(shelfId);
+            if (byId!=null){
+                if (byId.getImgId() == null){
+                    return R.fail("货架名称:"+byId.getGoodsShelfName()+"未配置货架");
+                }
+            }else{
+                return R.fail("货架不存在");
+            }
+
+        }
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         Long userid = SecurityUtils.getUserId();
         if (addaddSlVolumeProductionZyDTO.getId()==null){
@@ -118,12 +136,26 @@
                 slVolumeProductionZygl.setBmanagementId(addaddSlVolumeProductionZyDTO.getBmanagementId());
                 slVolumeProductionZygl.setSysId(userid);
                 slVolumeProductionZygl.setStartiTime(new Date());
+            // 如果发起人是主任 主管 或 管理员
+            if (list1.contains(userid.toString())){
+                slVolumeProductionZygl.setAuditStatus(1);
+                slVolumeProductionZygl.setPresentState(2);
+            }
+            if (list2.contains(userid.toString())){
+                slVolumeProductionZygl.setAuditStatus(1);
+                slVolumeProductionZygl.setPresentState(3);
+            }
+            if (list3.contains(userid.toString())){
+                slVolumeProductionZygl.setAuditStatus(3);
+                slVolumeProductionZygl.setPresentState(4);
+            }else{
                 slVolumeProductionZygl.setAuditStatus(1);
                 slVolumeProductionZygl.setPresentState(1);
+            }
+
             slVolumeProductionZyglMapper.insert(slVolumeProductionZygl);
             addaddSlVolumeProductionZyDTO.setId(slVolumeProductionZygl.getId());
             // 新增
-            List<AddZYIdsDTO> rkId = addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS();
             for (AddZYIdsDTO m:rkId){
                 SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId());
             Long volumeProductionRkglId = slVolumeProductionRk.getVolumeProductionRkglId();
@@ -144,7 +176,6 @@
 
                     }
                 }
-
                 this.save(slVolumeProductionZy);
             }
             LambdaQueryWrapper<SlVolumeProductionZy> wrapper1 = Wrappers.lambdaQuery();
@@ -154,17 +185,23 @@
             List<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectList(wrapper1);
             for (SlVolumeProductionZy zy:page2){
                 SlVolumeProductionRk slVolumeProductionRk=new SlVolumeProductionRk();
+                SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(zy.getMaterialsId());
+                if (slGoodsMaterials!=null){
+                    slVolumeProductionRk.setRkNumber(slGoodsMaterials.getGoodsMaterialsNo()+"-"+simpleDateFormat.format(new Date())+ UUIDUtil.getNumberRandom(2));
+                }
+                SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(zy.getRkId());
+                SlVolumeProductionRkgl slVolumeProductionRkgl = slVolumeProductionRkglMapper.selectById(slVolumeProductionRk1.getVolumeProductionRkglId());
+                slVolumeProductionRk.setSupplierId(slVolumeProductionRkgl.getSupplierId());
                 slVolumeProductionRk.setMaterialsId(zy.getMaterialsId());
                 slVolumeProductionRk.setStoreManagementNumber(zy.getStoreManagementNumber());
                 slVolumeProductionRk.setManagementId(slVolumeProductionZygl.getBmanagementId());
-                slVolumeProductionRk.setRkNumber("CD-"+simpleDateFormat.format(new Date())+ UUIDUtil.getNumberRandom(2));
                 slVolumeProductionRk.setRkNum(Long.valueOf(zy.getZyNum()));
                 SlVolumeProductionRk slVolumeProductionRk2 = slVolumeProductionRkMapper.selectById(zy.getRkId());
                 if (slVolumeProductionRk2!=null){
                     slVolumeProductionRk.setRkModel(slVolumeProductionRk2.getRkModel());
                     slVolumeProductionRk.setRkPice(slVolumeProductionRk2.getRkPice());
                 }
-                slVolumeProductionRk.setShelfId(zy.getShelfId());
+                slVolumeProductionRk.setShelfId(zy.getShelfId().toString());
                 slVolumeProductionRk.setRepertoryZhai(Long.valueOf(zy.getZyNum()));
                 slVolumeProductionRk.setCreateTime(new Date());
                 slVolumeProductionRkMapper.insert(slVolumeProductionRk);
@@ -183,11 +220,28 @@
             if (addaddSlVolumeProductionZyDTO.getAuthorization()!=null){
                 byId.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization());
             }
+            // 如果发起人是主任 主管 或 管理员
+            if (list1.contains(userid.toString())){
+                byId.setAuditStatus(1);
+                byId.setPresentState(2);
+            }
+            if (list2.contains(userid.toString())){
+                byId.setAuditStatus(1);
+                byId.setPresentState(3);
+            }
+            if (list3.contains(userid.toString())){
+                byId.setAuditStatus(3);
+                byId.setPresentState(4);
+            }else{
+                byId.setAuditStatus(1);
+                byId.setPresentState(1);
+            }
             slVolumeProductionZyglMapper.updateById(byId);
             QueryWrapper<SlVolumeProductionZy> slVolumeProductionZyQueryWrapper = new QueryWrapper<>();
             slVolumeProductionZyQueryWrapper.eq("zygl_id",addaddSlVolumeProductionZyDTO.getId());
             this.remove(slVolumeProductionZyQueryWrapper);
             for (AddZYIdsDTO m:addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS()){
+
                 SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId());
                 slVolumeProductionRk.setRkPice(slVolumeProductionRk.getRkPice());
                 // todo 目前还不知道转移管理存不存供应商id
@@ -204,6 +258,29 @@
                 slVolumeProductionZy.setShelfId(m.getShelfId());
                 slVolumeProductionZy.setSysId(userid);
                 slVolumeProductionZy.setRkId(m.getRkId());
+
+                SlVolumeProductionRk slVolumeProductionRk1=new SlVolumeProductionRk();
+                SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId());
+                if (slGoodsMaterials!=null){
+                    slVolumeProductionRk1.setRkNumber(slGoodsMaterials.getGoodsMaterialsNo()+"-"+simpleDateFormat.format(new Date())+ UUIDUtil.getNumberRandom(2));
+                }
+                slVolumeProductionRk1.setMaterialsId(slVolumeProductionRk.getMaterialsId());
+                slVolumeProductionRk1.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber());
+                slVolumeProductionRk1.setManagementId(byId.getBmanagementId());
+                slVolumeProductionRk1.setRkNum(Long.valueOf(m.getZyNum()));
+                SlVolumeProductionRk slVolumeProductionRk2 = slVolumeProductionRkMapper.selectById(m.getRkId());
+                if (slVolumeProductionRk2!=null){
+                    slVolumeProductionRk1.setRkModel(slVolumeProductionRk2.getRkModel());
+                    slVolumeProductionRk1.setRkPice(slVolumeProductionRk2.getRkPice());
+                }
+                slVolumeProductionRk1.setShelfId(slVolumeProductionRk.getShelfId());
+                slVolumeProductionRk1.setRepertoryZhai(Long.valueOf(m.getZyNum()));
+                slVolumeProductionRk1.setCreateTime(new Date());
+                slVolumeProductionRkMapper.insert(slVolumeProductionRk1);
+                slVolumeProductionZy.setScrkId(slVolumeProductionRk1.getId());
+                slVolumeProductionZyMapper.updateById(slVolumeProductionZy);
+
+
                 if (slVolumeProductionRkgl!=null){
                     if (slVolumeProductionRkgl.getSupplierId()!=null){
                         slVolumeProductionZy.setSupplierId(Integer.valueOf(slVolumeProductionRkgl.getSupplierId().toString()));
@@ -257,30 +334,137 @@
             SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionZygl.getManagementId());
             slAudit.setShenhId(byId.getAdministratorId());
             slAuditService.save(slAudit);
-            SlAuditRecord slAuditRecord=new SlAuditRecord();
-            slAuditRecord.setAuditId(slAudit.getId());
-            slAuditRecord.setShenhId(byId.getAdministratorId());
-            slAuditRecord.setType(1);
-            slAuditRecord.setState(1);
-            slAuditRecord.setCreateTime(new Date());
-            slAuditRecordService.save(slAuditRecord);
+            if (list3.contains(userid.toString())){
+                slAudit.setState(4);
+                slAuditService.saveOrUpdate(slAudit);
+                slVolumeProductionZygl.setAuditStatus(4);
+                slVolumeProductionZygl.setPresentState(3);
+                slVolumeProductionZyglMapper.updateById(slVolumeProductionZygl);
+                // 主任发起 主管和管理员默认审核通过
+                SlAuditRecord slAuditRecord4=new SlAuditRecord();
+                slAuditRecord4.setAuditId(slAudit.getId());
+                slAuditRecord4.setShenhId(byId.getDirectorId());
+                slAuditRecord4.setType(3);
+                slAuditRecord4.setState(2);
+                slAuditRecord4.setShenhTime(new Date());
+                slAuditRecord4.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord4);
 
-            SlAuditRecord slAuditRecord1=new SlAuditRecord();
-            slAuditRecord1.setAuditId(slAudit.getId());
-            slAuditRecord1.setShenhId(byId.getCompetentId());
-            slAuditRecord1.setType(2);
-            slAuditRecord1.setState(1);
-            slAuditRecord1.setCreateTime(new Date());
-            slAuditRecordService.save(slAuditRecord1);
+                SlAuditRecord slAuditRecord3=new SlAuditRecord();
+                slAuditRecord3.setAuditId(slAudit.getId());
+                slAuditRecord3.setShenhId(byId.getCompetentId());
+                slAuditRecord3.setType(2);
+                slAuditRecord3.setState(2);
+                slAuditRecord3.setShenhTime(new Date());
+                slAuditRecord3.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord3);
 
-            SlAuditRecord slAuditRecord2=new SlAuditRecord();
-            slAuditRecord2.setAuditId(slAudit.getId());
-            slAuditRecord2.setShenhId(byId.getDirectorId());
-            slAuditRecord2.setType(3);
-            slAuditRecord2.setState(1);
-            slAuditRecord2.setCreateTime(new Date());
-            slAuditRecordService.save(slAuditRecord2);
+                SlAuditRecord slAuditRecord2=new SlAuditRecord();
+                slAuditRecord2.setAuditId(slAudit.getId());
+                slAuditRecord2.setShenhId(byId.getAdministratorId());
+                slAuditRecord2.setType(1);
+                slAuditRecord2.setState(2);
+                slAuditRecord2.setShenhTime(new Date());
+                slAuditRecord2.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord2);
+            }else if (list2.contains(userid.toString())){
+                slAudit.setState(3);
+                slAuditService.saveOrUpdate(slAudit);
+                slVolumeProductionZygl.setAuditStatus(3);
+                slVolumeProductionZygl.setPresentState(1);
+                slVolumeProductionZyglMapper.updateById(slVolumeProductionZygl);
+                // 如果是主管
+                SlAuditRecord slAuditRecord3=new SlAuditRecord();
+                slAuditRecord3.setAuditId(slAudit.getId());
+                slAuditRecord3.setShenhId(byId.getCompetentId());
+                slAuditRecord3.setType(2);
+                slAuditRecord3.setState(2);
+                slAuditRecord3.setShenhTime(new Date());
+                slAuditRecord3.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord3);
+
+                SlAuditRecord slAuditRecord2=new SlAuditRecord();
+                slAuditRecord2.setAuditId(slAudit.getId());
+                slAuditRecord2.setShenhId(byId.getAdministratorId());
+                slAuditRecord2.setType(1);
+                slAuditRecord2.setState(2);
+                slAuditRecord2.setShenhTime(new Date());
+                slAuditRecord2.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord2);
+
+                SlAuditRecord slAuditRecord4=new SlAuditRecord();
+                slAuditRecord4.setAuditId(slAudit.getId());
+                slAuditRecord4.setShenhId(byId.getDirectorId());
+                slAuditRecord4.setType(3);
+                slAuditRecord4.setState(1);
+                slAuditRecord4.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord4);
+
+            }else if (list1.contains(userid.toString())){
+                // 如果是管理员
+                slAudit.setState(2);
+                slAuditService.saveOrUpdate(slAudit);
+                slVolumeProductionZygl.setAuditStatus(2);
+                slVolumeProductionZygl.setPresentState(1);
+                slVolumeProductionZyglMapper.updateById(slVolumeProductionZygl);
+                // 如果是主管
+                SlAuditRecord slAuditRecord3=new SlAuditRecord();
+                slAuditRecord3.setAuditId(slAudit.getId());
+                slAuditRecord3.setShenhId(byId.getCompetentId());
+                slAuditRecord3.setType(2);
+                slAuditRecord3.setState(1);
+                slAuditRecord3.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord3);
+
+                SlAuditRecord slAuditRecord2=new SlAuditRecord();
+                slAuditRecord2.setAuditId(slAudit.getId());
+                slAuditRecord2.setShenhId(byId.getAdministratorId());
+                slAuditRecord2.setType(1);
+                slAuditRecord2.setState(2);
+                slAuditRecord2.setShenhTime(new Date());
+                slAuditRecord2.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord2);
+
+                SlAuditRecord slAuditRecord4=new SlAuditRecord();
+                slAuditRecord4.setAuditId(slAudit.getId());
+                slAuditRecord4.setShenhId(byId.getDirectorId());
+                slAuditRecord4.setType(3);
+                slAuditRecord4.setState(1);
+                slAuditRecord4.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord4);
+            }else{
+                slAuditService.saveOrUpdate(slAudit);
+                slVolumeProductionZygl.setAuditStatus(1);
+                slVolumeProductionZygl.setPresentState(1);
+                slVolumeProductionZyglMapper.updateById(slVolumeProductionZygl);
+                // 如果是主管
+                SlAuditRecord slAuditRecord3=new SlAuditRecord();
+                slAuditRecord3.setAuditId(slAudit.getId());
+                slAuditRecord3.setShenhId(byId.getCompetentId());
+                slAuditRecord3.setType(2);
+                slAuditRecord3.setState(1);
+                slAuditRecord3.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord3);
+
+                SlAuditRecord slAuditRecord2=new SlAuditRecord();
+                slAuditRecord2.setAuditId(slAudit.getId());
+                slAuditRecord2.setShenhId(byId.getAdministratorId());
+                slAuditRecord2.setType(1);
+                slAuditRecord2.setState(1);
+                slAuditRecord2.setShenhTime(new Date());
+                slAuditRecord2.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord2);
+
+                SlAuditRecord slAuditRecord4=new SlAuditRecord();
+                slAuditRecord4.setAuditId(slAudit.getId());
+                slAuditRecord4.setShenhId(byId.getDirectorId());
+                slAuditRecord4.setType(3);
+                slAuditRecord4.setState(1);
+                slAuditRecord4.setCreateTime(new Date());
+                slAuditRecordService.save(slAuditRecord4);
+            }
         }
+        return R.ok();
     }
     public static String getLetter(int num) {
         String[] str = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};

--
Gitblit v1.7.1