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/InventoriesSuppliesServiceImpl.java |  183 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 163 insertions(+), 20 deletions(-)

diff --git a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
index 7d02b3b..166cad3 100644
--- a/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
+++ b/ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
@@ -1,6 +1,9 @@
 package com.ruoyi.management.service.impl;
+import java.math.BigDecimal;
+import java.util.Date;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.fasterxml.jackson.core.JsonProcessingException;
@@ -9,11 +12,10 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.ClientTypeEnum;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.management.domain.InventoriesSupplies;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.management.domain.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.management.domain.SlGoodsShelf;
-import com.ruoyi.management.domain.SlStoreManagement;
-import com.ruoyi.management.domain.SlVolumeProductionRk;
 import com.ruoyi.management.domain.dto.InventoriesSuppDTO;
 import com.ruoyi.management.domain.dto.InventoriesSuppliesQuery;
 import com.ruoyi.management.domain.dto.ScanCodesDTO;
@@ -21,15 +23,21 @@
 import com.ruoyi.management.domain.vo.SlGoodsMaterialsVO;
 import com.ruoyi.management.domain.vo.SlGoodsShelfVO;
 import com.ruoyi.management.mapper.InventoriesSuppliesMapper;
+import com.ruoyi.management.mapper.SlEquipmentMapper;
 import com.ruoyi.management.mapper.SlStoreManagementMapper;
 import com.ruoyi.management.mapper.SlVolumeProductionRkMapper;
 import com.ruoyi.management.service.InventoriesSuppliesService;
+import com.ruoyi.management.service.SlGoodsMaterialsService;
+import com.ruoyi.management.service.SlGoodsShelfService;
 import com.ruoyi.management.service.SlVolumeProductionRkService;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
 import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.domain.WebsocketMessageDTO;
 import com.ruoyi.system.api.feignClient.SysUserClient;
+import com.ruoyi.system.api.model.LoginUser;
 import io.swagger.models.auth.In;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -56,16 +64,49 @@
 
     @Resource
     private SlVolumeProductionRkMapper slVolumeProductionRkMapper;
-
+    @Autowired
+    private SlGoodsMaterialsService slGoodsMaterialsService;
+    @Autowired
+    private SlGoodsShelfService slGoodsShelfService;
+    @Autowired
+    private SlEquipmentMapper slEquipmentMapper;
+    @Autowired
+    private InventoriesSuppliesMapper inventoriesSuppliesMapper;
     private static final ObjectMapper objectMapper = new ObjectMapper();
 
     @Override
     public PageDTO<InventoriesSuppliesVO> getInventoriesSuppliesList(InventoriesSuppliesQuery inventoriesSuppliesQuery) {
         LambdaQueryWrapper<SlStoreManagement> wrapper= Wrappers.lambdaQuery();
-        if (inventoriesSuppliesQuery.getStoreManagementName()!=null){
+        Long userId = SecurityUtils.getUserId();
+        if (userId!=1){
+            SysUser data = sysUserClient.getSysUser(userId).getData();
+            if (!data.getUserType().equals("00")){
+                // 如果不是平台
+                switch (data.getRoleType()){
+                    case 3:
+                        wrapper.ge(SlStoreManagement::getStoreManagementGrade,3);
+                        wrapper.eq(SlStoreManagement::getCityCode,data.getCityCode());
+
+                        break;
+                    case 4:
+                        wrapper.ge(SlStoreManagement::getStoreManagementGrade,4);
+                        wrapper.eq(SlStoreManagement::getCountyCode,data.getCountyCode());
+                        break;
+                    case 5:
+                        wrapper.ge(SlStoreManagement::getStoreManagementGrade,5);
+                        wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
+                        break;
+                    case 6:
+                        wrapper.ge(SlStoreManagement::getStoreManagementGrade,6);
+                        wrapper.eq(SlStoreManagement::getTownCode,data.getTownCode());
+                        break;
+                }
+            }
+        }
+        if (inventoriesSuppliesQuery.getStoreManagementName()!=null&&inventoriesSuppliesQuery.getStoreManagementName()!=""){
             wrapper.eq(SlStoreManagement::getStoreManagementName,inventoriesSuppliesQuery.getStoreManagementName());
         }
-        if (inventoriesSuppliesQuery.getStoreManagementNo()!=null){
+        if (inventoriesSuppliesQuery.getStoreManagementNo()!=null&&inventoriesSuppliesQuery.getStoreManagementNo()!=""){
         wrapper.eq(SlStoreManagement::getStoreManagementNo,inventoriesSuppliesQuery.getStoreManagementNo());
         }
         List<SlStoreManagement> slStoreManagements = slStoreManagementMapper.selectList(wrapper);
@@ -76,7 +117,9 @@
 
         Page<InventoriesSupplies> page = new Page<>(inventoriesSuppliesQuery.getPageCurr(), inventoriesSuppliesQuery.getPageSize());
         LambdaQueryWrapper< InventoriesSupplies> wrapper1= Wrappers.lambdaQuery();
-        wrapper1.like(InventoriesSupplies::getPdrName,inventoriesSuppliesQuery.getPdrName());
+        if (inventoriesSuppliesQuery.getPdrName()!=null&&inventoriesSuppliesQuery.getPdrName()!=""){
+            wrapper1.like(InventoriesSupplies::getPdrName,inventoriesSuppliesQuery.getPdrName());
+        }
         if (slStoreManagementIdList.size()>0){
             wrapper1.in(InventoriesSupplies::getMaterialsId,slStoreManagementIdList);
         }else {
@@ -88,7 +131,7 @@
 
             wrapper1.gt(InventoriesSupplies::getPdTime, inventoriesSuppliesQuery.getStartpdTime());
         }
-        if (inventoriesSuppliesQuery.getEndpdTime()!=null){
+        if (inventoriesSuppliesQuery.getEndpdTime()!=null&&inventoriesSuppliesQuery.getPdrName()!=""){
             wrapper1.le(InventoriesSupplies::getPdTime, inventoriesSuppliesQuery.getEndpdTime());
        }
 
@@ -112,34 +155,134 @@
         InventoriesSupplies inventoriesSupplies=new InventoriesSupplies();
         inventoriesSupplies.setMaterialsId(inventoriesSuppDTO.getMaterialsId());
         inventoriesSupplies.setPdTime(new Date());
+        inventoriesSupplies.setCreateTime(new Date());
         inventoriesSupplies.setPdrId(inventoriesSuppDTO.getPdrId());
         R<SysUser> sysUser = sysUserClient.getSysUser(inventoriesSuppDTO.getPdrId());
         inventoriesSupplies.setPdrName(sysUser.getData().getNickName());
         this.save(inventoriesSupplies);
     }
 
+    @Resource
+    private TokenService tokenService;
     @Override
-    public void scanCodes(ScanCodesDTO scanCodesDTO) {
+    public R scanCodes(String rkNumber,String code) {
+        LoginUser loginUserDevice = tokenService.getLoginUserDevice();
+        Map<String, Object> map1 = new ConcurrentHashMap<>();
+        String message1 = null;
+        SlVolumeProductionRkVO slVolumeProductionRkVO1 = new SlVolumeProductionRkVO();
+        slVolumeProductionRkVO1.setId("");
+        slVolumeProductionRkVO1.setVolumeProductionRkglId("");
+        slVolumeProductionRkVO1.setMaterialsId("");
+        slVolumeProductionRkVO1.setRkNum(0L);
+        slVolumeProductionRkVO1.setRkNumber("");
+        slVolumeProductionRkVO1.setRkModel("");
+        slVolumeProductionRkVO1.setRkPice(new BigDecimal("0"));
+        slVolumeProductionRkVO1.setRepertoryZhai(0L);
+        slVolumeProductionRkVO1.setStoreManagementNumber(0);
+        slVolumeProductionRkVO1.setShelfId("");
+        slVolumeProductionRkVO1.setDelFlag("");
+        slVolumeProductionRkVO1.setCreateBy("");
+        slVolumeProductionRkVO1.setCreateTime(new Date());
+        slVolumeProductionRkVO1.setUpdateBy("");
+        slVolumeProductionRkVO1.setUpdateTime(new Date());
+        slVolumeProductionRkVO1.setErwmNum(0);
+        slVolumeProductionRkVO1.setSmerwmNum(0);
+        slVolumeProductionRkVO1.setManagementId("");
+        slVolumeProductionRkVO1.setNewAddTime("");
+        slVolumeProductionRkVO1.setGoodsMaterialsName("");
+        slVolumeProductionRkVO1.setIsConsume(0);
+        slVolumeProductionRkVO1.setManagementNumber(0);
+        slVolumeProductionRkVO1.setShelfName("");
+        slVolumeProductionRkVO1.setIsError("");
+
+        try {
+            slVolumeProductionRkVO1.setIsError("1");
+            map1.put("SlVolumeProductionRk",slVolumeProductionRkVO1);
+            message1 = objectMapper.writeValueAsString(map1);
+        } catch (JsonProcessingException e) {
+        }
+        // todo 重写一套登录鉴权
+        sysUserClient.pushAll(message1, "1",SecurityConstants.INNER);
+        if (true){
+            return R.ok();
+        }
         LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery();
-        wrapper1.like(SlVolumeProductionRk::getRkNumber,scanCodesDTO.getRkNumber());
-        wrapper1.eq( SlVolumeProductionRk::getDelFlag,0);
+        wrapper1.eq(SlVolumeProductionRk::getRkNumber,rkNumber);
+        wrapper1.eq(SlVolumeProductionRk::getDelFlag,"0");
         wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime);
         SlVolumeProductionRk page2 = slVolumeProductionRkMapper.selectOne(wrapper1);
-        if (page2.getSmerwmNum()>0){
-            Integer i=page2.getSmerwmNum()-1;
-            page2.setSmerwmNum(i);
-            slVolumeProductionRkMapper.updateById(page2);
-        }
+        List<SlEquipment> slEquipments = slEquipmentMapper.selectList(new QueryWrapper<SlEquipment>()
+                .eq("management_id", page2.getManagementId())
+                .eq("del_flag", "0")
+                .eq("type", 2));
+        SlEquipment slEquipment1 = slEquipmentMapper.selectOne(new QueryWrapper<SlEquipment>()
+                .eq("equipment_num", code)
+                .eq("del_flag", "0")
+                .eq("type", 2));
+//        if (slEquipments.isEmpty()){
+//            // 这个仓库没有扫码枪
+//            sysUserClient.pushAll("501", SecurityConstants.INNER);
+//            return R.ok();
+//        }
+//        // 判断当前扫码枪编号是否匹配于入库记录使用的扫码枪编号
+//        for (SlEquipment slEquipment : slEquipments) {
+//            if (!slEquipment.getEquipmentNum().equals(code)){
+//                // 扫码枪
+//                sysUserClient.pushAll("501", SecurityConstants.INNER);
+//                return R.ok();
+//            }
+//        }
+//        if (page2.getSmerwmNum()<page2.getErwmNum()){
+//            Integer i=page2.getSmerwmNum()+1;
+//            page2.setSmerwmNum(i);
+//            slVolumeProductionRkMapper.updateById(page2);
+//        }
+        SlGoodsMaterials byId = slGoodsMaterialsService.getById(page2.getMaterialsId());
+
+        page2.setGoodsMaterialsName(byId.getGoodsMaterialsName());
+        page2.setIsConsume(byId.getIsConsume());
+        page2.setManagementNumber(page2.getStoreManagementNumber());
+        page2.setShelfName(slGoodsShelfService.getById(page2.getShelfId()).getGoodsShelfName());
+        SlVolumeProductionRkVO slVolumeProductionRkVO = new SlVolumeProductionRkVO();
+        BeanUtils.copyProperties(page2,slVolumeProductionRkVO);
+        slVolumeProductionRkVO.setId(page2.getId().toString());
+//        slVolumeProductionRkVO.setVolumeProductionRkglId(page2.getVolumeProductionRkglId().toString());
+        slVolumeProductionRkVO.setMaterialsId(page2.getMaterialsId().toString());
+        slVolumeProductionRkVO.setManagementId(slEquipment1.getManagementId().toString());
+        slVolumeProductionRkVO.setShelfId(page2.getShelfId().toString());
+        slVolumeProductionRkVO.setIsError("0");
+        String msg = null;
+
         Map<String, Object> map = new ConcurrentHashMap<>();
         map.put("notification_type", NotificationTypeConstant.SCANCODES);
-        map.put("SlVolumeProductionRk",page2);
-        String msg = null;
+        Long managementId = slEquipment1.getManagementId();
+        Long managementId1 = page2.getManagementId();
+        if (!managementId.equals(managementId1)){
+            // 二维码错误
+            try {
+                slVolumeProductionRkVO.setIsError("1");
+                map.put("SlVolumeProductionRk",slVolumeProductionRkVO);
+                msg = objectMapper.writeValueAsString(map);
+            } catch (JsonProcessingException e) {
+            }
+            // todo 重写一套登录鉴权
+            sysUserClient.pushAll(msg, "1",SecurityConstants.INNER);
+            // 扫码枪
+            return R.ok();
+        }else{
+            map.put("SlVolumeProductionRk",slVolumeProductionRkVO);
+        }
         try {
             msg = objectMapper.writeValueAsString(map);
         } catch (JsonProcessingException e) {
         }
-        sysUserClient.pushAll(msg, SecurityConstants.INNER);
+        // todo 重写一套登录鉴权
+        sysUserClient.pushAll(msg, "1",SecurityConstants.INNER);
+        return R.ok();
     }
 
 
+    public InventoriesSupplies getById1(Long suppliesId) {
+        return inventoriesSuppliesMapper.getById1(suppliesId);
+    }
 }

--
Gitblit v1.7.1