home il y a 2 ans
Parent
commit
81cd343592

+ 46 - 27
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackPlanServiceImpl.java

@@ -36,6 +36,13 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
     private static final Object obj = new Object();
 
+    private static final List<String> materialNameList = Arrays.asList(
+            "黑色 170克100%精梳棉",
+            "灰色 170克100%精梳棉",
+            "空白鼠标垫+密锁边",
+            "法兰绒"
+    );
+
     @Autowired
     private StockBackPlanDetailsService stockBackPlanDetailsService;
 
@@ -81,6 +88,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
                 // 排班时间
                 String planDate = item.get("planDate").toString();
 
+                if (materialNameList.contains(material)) {
+                    return;
+                }
+
                 // 喷印人员工号添加领料记录标记
                 addOrEditFlagMap(flagMap, distributor, plantotalsquare, planDate, material, newDate);
 
@@ -242,8 +253,9 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
                 .in("swd.StockChangeType", 20, 23)
                 .eq("uu.IsDelete", 0)
                 .in("uu.DepartmentID", "A007", "A012", "A017")
-                .likeRight("m.Code", "01.")
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+//                .likeRight("m.Code", "01.")
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                .ne("m.CategoryCode", "99.999.")
                 .isNotNull("uu.JobNo"));
 
         for (Map<String, Object> map : pickingList) {
@@ -302,8 +314,9 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
                 .in("swd.StockChangeType", 20, 23)
                 .eq("uu.IsDelete", 0)
                 .eq("uu.DepartmentID", "A008")
-                .likeRight("m.Code", "01.")
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+//                .likeRight("m.Code", "01.")
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                .ne("m.CategoryCode", "99.999.")
                 .isNotNull("uu.JobNo"));
 
         for (Map<String, Object> map : pickingList) {
@@ -363,12 +376,14 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
      */
     private void returnWarehouse(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
         List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
-                .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
-                .eq("uu.IsDelete", 0)
-                .in("uu.DepartmentID", "A007", "A012", "A017")
-                .isNotNull("uu.JobNo")
-                .likeRight("m.Code", "01.")
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
+                        .eq("uu.IsDelete", 0)
+                        .in("uu.DepartmentID", "A007", "A012", "A017")
+                        .isNotNull("uu.JobNo")
+                        .ne("m.CategoryCode", "99.999.")
+//                .likeRight("m.Code", "01.")
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+
         );
 
         for (Map<String, Object> map : backList) {
@@ -421,12 +436,13 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
     private void returnWarehouseA008(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
         List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
-                .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
-                .eq("uu.IsDelete", 0)
-                .eq("uu.DepartmentID", "A008")
-                .isNotNull("uu.JobNo")
-                .likeRight("m.Code", "01.")
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
+                        .eq("uu.IsDelete", 0)
+                        .eq("uu.DepartmentID", "A008")
+                        .isNotNull("uu.JobNo")
+                        .ne("m.CategoryCode", "99.999.")
+//                .likeRight("m.Code", "01.")
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
         );
 
         for (Map<String, Object> map : backList) {
@@ -483,9 +499,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
      */
     private void correct(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
         List<Map<String, Object>> correctList = baseMapper.getCorrect(Wrappers.query()
-                .gt("sbc.correct_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
-                .isNotNull("uu.JobNo")
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .gt("sbc.correct_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
+                        .isNotNull("uu.JobNo")
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ne("m.CategoryCode", "99.999.")
         );
         for (Map<String, Object> map : correctList) {
             // 出库时间
@@ -515,10 +532,11 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
      */
     private void transferIn(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
         List<Map<String, Object>> transferPickingList = baseMapper.getTransferPickingList(Wrappers.query()
-                .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
-                .eq("st.status", StatusConstant.YES)
-                .eq("st.del_flag", 0)
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
+                        .eq("st.status", StatusConstant.YES)
+                        .eq("st.del_flag", 0)
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ne("m.CategoryCode", "99.999.")
         );
 
         for (Map<String, Object> map : transferPickingList) {
@@ -577,10 +595,11 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
     private void transferOut(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
 
         List<Map<String, Object>> transferBackList = baseMapper.getTransferBackList(Wrappers.query()
-                .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
-                .eq("st.status", StatusConstant.YES)
-                .eq("st.del_flag", 0)
-                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
+                        .eq("st.status", StatusConstant.YES)
+                        .eq("st.del_flag", 0)
+//                .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
+                        .ne("m.CategoryCode", "99.999.")
         );
 
         for (Map<String, Object> map : transferBackList) {

+ 29 - 3
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockCheckrecordServiceImpl.java

@@ -15,6 +15,7 @@ import com.fjhx.stock.service.StockCheckrecordService;
 import com.fjhx.stock.service.StockCheckrecorddetailService;
 import com.fjhx.stock.service.StockDetailService;
 import com.fjhx.stock.service.StockTagService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -33,6 +34,7 @@ import java.util.stream.Collectors;
  * @since 2022-12-05
  */
 @Service
+@Slf4j
 public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMapper, StockCheckrecord> implements StockCheckrecordService {
 
     /**
@@ -58,7 +60,7 @@ public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMap
         data.put("instructions", instructions);
         // 开启rfid扫描type
         data.put("type", "2");
-        // 盘点
+        // 盘点业务类型
         data.put("businessType", "3");
         // 盘点仓库id  一楼仓库'c185883dba22478cb593d33f6b66cc53' 四楼仓库'0b8f584250bb4b40b72d641ce4849d15'
         data.put("stockHouseId", stockHouseId);
@@ -82,6 +84,7 @@ public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMap
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void checkEnd(String instructions, String stockHouseId) {
+        Date date = new Date();
 
         JSONObject data = new JSONObject();
         // 盘点指令
@@ -91,9 +94,32 @@ public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMap
         // 关闭扫描
         WebSocketServer.sendInfo(WebSocketEventListener.WEB_STOCK_PROGRAM, WebSocketEventListener.OPERATING_UPPER_COMPUTER, data);
 
+        // 盘点到的rfid
         List<String> rfidList = map.remove(stockHouseId);
 
-        Date date = new Date();
+        ArrayList<String> copyRfidList = new ArrayList<>(rfidList);
+        List<String> excludeRfidCodeList = new ArrayList<>();
+
+        if (rfidList.size() > 0) {
+            List<Map<String, Object>> list = stockDetailService.listMaps(Wrappers.<StockDetail>query()
+                    .in("RfidCode", rfidList)
+                    .ge("ExpiredDt", date)
+                    .select("RfidCode rfidCode")
+            );
+
+            excludeRfidCodeList = list.stream().map(item -> Convert.toStr(item.get("rfidCode"))).collect(Collectors.toList());
+
+            for (Map<String, Object> map : list) {
+                rfidList.remove(Convert.toStr(map.get("rfidCode")));
+            }
+        }
+
+        log.error("\r\n盘点结束:\r\n扫描仓库:{}\r\n扫描到的rfid:{},\r\n排除的rfid:{},\r\n排除之后的rfid:{}",
+                stockHouseId.equals("c185883dba22478cb593d33f6b66cc53") ? "一楼仓库" : "四楼仓库",
+                JSONObject.toJSONString(copyRfidList),
+                JSONObject.toJSONString(excludeRfidCodeList),
+                rfidList
+        );
 
         // 添加盘点记录
         StockCheckrecord stockCheckrecord = new StockCheckrecord();
@@ -110,7 +136,6 @@ public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMap
 
         String recordId = stockCheckrecord.getId();
 
-
         // 获取所有在库物料
         List<Map<String, Object>> stockList = stockDetailService.listMaps(Wrappers.<StockDetail>query()
                 .select(
@@ -119,6 +144,7 @@ public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMap
                         "sum(Quantity) quantity" // 库存数量
                 )
                 .eq("StockHouseId", stockHouseId) // 对应仓库id
+                .lt("ExpiredDt", date) // 排除确认在库的标签
                 .eq("IsDelete", "0") // 未删除
                 .groupBy("MaterialCode") // 物料编码分组
         );

+ 20 - 20
hx-service/storage/src/main/java/com/fjhx/task/controller/ScheduleTaskController.java

@@ -3,7 +3,9 @@ package com.fjhx.task.controller;
 import com.fjhx.stock.service.StockBackPlanService;
 import com.fjhx.stock.service.StockCheckrecordService;
 import com.fjhx.task.service.ScheduleTaskService;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.tool.utils.ThreadUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
@@ -11,6 +13,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 
 @Configuration
 @EnableScheduling
+@Slf4j
 public class ScheduleTaskController {
 
     @Autowired
@@ -71,26 +74,23 @@ public class ScheduleTaskController {
     /**
      * 盘点
      */
-//    @Scheduled(cron = "0 0 1 * * ?")
-//    @PostConstruct
-    private void checkStart() {
-        if (BladeApplication.isLocalDev()) {
-            return;
-        }
-
-        stockCheckrecordService.checkStart("check1", "c185883dba22478cb593d33f6b66cc53");
-        stockCheckrecordService.checkStart("check4", "0b8f584250bb4b40b72d641ce4849d15");
-    }
+////    @Scheduled(cron = "0 0 1 * * ?")
+//    @Scheduled(cron = "0 50 12 * * ?")
+////    @PostConstruct
+//    private void checkStart() {
+////        if (BladeApplication.isLocalDev()) {
+////            return;
+////        }
+//        log.error("开始扫描");
+//
+//        stockCheckrecordService.checkStart("check1", "c185883dba22478cb593d33f6b66cc53");
+//        stockCheckrecordService.checkStart("check4", "0b8f584250bb4b40b72d641ce4849d15");
+//
+//        ThreadUtil.sleep(1000 * 60 * 5);
+//
+//        stockCheckrecordService.checkEnd("check1", "c185883dba22478cb593d33f6b66cc53");
+//        stockCheckrecordService.checkEnd("check4", "0b8f584250bb4b40b72d641ce4849d15");
+//    }
 
-    //    @Scheduled(cron = "0 10 1 * * ?")
-    //    @PostConstruct
-    private void checkEnd() {
-        if (BladeApplication.isLocalDev()) {
-            return;
-        }
-
-        stockCheckrecordService.checkEnd("check1", "c185883dba22478cb593d33f6b66cc53");
-        stockCheckrecordService.checkEnd("check4", "0b8f584250bb4b40b72d641ce4849d15");
-    }
 
 }

+ 29 - 4
hx-service/storage/src/main/java/com/fjhx/u/controller/UUserController.java

@@ -1,12 +1,11 @@
 package com.fjhx.u.controller;
 
+import com.fjhx.stock.service.StockCheckrecordService;
 import com.fjhx.u.service.UUserService;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ThreadUtil;
 import org.springframework.beans.factory.annotation.Autowired;
-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 org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
@@ -26,6 +25,32 @@ public class UUserController {
     @Autowired
     private UUserService uUserService;
 
+    @Autowired
+    private StockCheckrecordService stockCheckrecordService;
+
+    @GetMapping("/test")
+    public R test() {
+        new Thread(() -> {
+            stockCheckrecordService.checkStart("check1", "c185883dba22478cb593d33f6b66cc53");
+            ThreadUtil.sleep(1000 * 60 * 5);
+            stockCheckrecordService.checkEnd("check1", "c185883dba22478cb593d33f6b66cc53");
+        }).start();
+
+        return R.success();
+    }
+
+    @GetMapping("/test4")
+    public R test4() {
+        new Thread(() -> {
+            stockCheckrecordService.checkStart("check4", "0b8f584250bb4b40b72d641ce4849d15");
+            ThreadUtil.sleep(1000 * 60 * 5);
+            stockCheckrecordService.checkEnd("check4", "0b8f584250bb4b40b72d641ce4849d15");
+        }).start();
+
+        return R.success();
+    }
+
+
 //    @PostMapping("/page")
 //    public R page(@RequestBody Map<String, Object> condition){
 //        Page<UUser> result = uUserService.getPage(condition);