home 2 سال پیش
والد
کامیت
066799b3cf

+ 1 - 1
hx-service/storage/src/main/java/com/fjhx/stock/service/StockBackPlanService.java

@@ -19,7 +19,7 @@ public interface StockBackPlanService extends BaseService<StockBackPlan> {
 
     void getScheduleTask();
 
-    void statisticsScheduleDateTask();
+    void statisticsScheduleDateTask(int offset);
 
 
 }

+ 132 - 8
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackPlanServiceImpl.java

@@ -5,7 +5,6 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.base.Condition;
 import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.stock.StockBackPlan;
 import com.fjhx.entity.stock.StockBackPlanDetails;
@@ -110,13 +109,13 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void statisticsScheduleDateTask() {
+    public void statisticsScheduleDateTask(int offset) {
 
         synchronized (obj) {
 
-            // 统计近3天排班
+            // 统计近 offset 天排班
             Date endDate = new Date();
-            Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(endDate, -2));
+            Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(endDate, -offset));
 
             List<StockBackPlan> list = list(Wrappers.<StockBackPlan>lambdaQuery()
                     .between(StockBackPlan::getPlanTime, beginDate, endDate));
@@ -138,9 +137,15 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
             // 查询出库
             issue(beginDate, stockBackPlanMap);
 
-            // 查询回仓
+            // 转印部门出库
+            issueA008(beginDate, stockBackPlanMap);
+
+            // 回仓
             returnWarehouse(beginDate, stockBackPlanMap);
 
+            // 转印部门回仓
+            returnWarehouseA008(beginDate, stockBackPlanMap);
+
             // 物料修正
             correct(beginDate, stockBackPlanMap);
 
@@ -156,8 +161,6 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
     }
 
-
-
     private StockBackPlanDetails createStockBackPlanDetails(String jobNo, String materialName, Date planDate) {
         StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
         stockBackPlanDetails.setPlanMaterial(materialName);
@@ -234,7 +237,7 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
                 .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 7:30:00"))
                 .in("swd.StockChangeType", 20, 23)
                 .eq("uu.IsDelete", 0)
-                .in("uu.DepartmentID", "A007", "A008", "A012")
+                .in("uu.DepartmentID", "A007", "A012")
                 .likeRight("m.Code", "01.")
                 .isNotNull("uu.JobNo"));
 
@@ -287,6 +290,68 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
         }
     }
 
+    private void issueA008(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
+
+        List<Map<String, Object>> pickingList = baseMapper.getWater(Wrappers.query()
+                .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 9:00:00"))
+                .in("swd.StockChangeType", 20, 23)
+                .eq("uu.IsDelete", 0)
+                .eq("uu.DepartmentID", "A008")
+                .likeRight("m.Code", "01.")
+                .isNotNull("uu.JobNo"));
+
+        for (Map<String, Object> map : pickingList) {
+
+            // 出库时间
+            Date createTime = (Date) map.get("createTime");
+            // 时
+            int h = Integer.parseInt(DateUtil.format(createTime, "H"));
+            // 分
+//            int m = Integer.parseInt(DateUtil.format(createTime, "m"));
+            // 小于7点30算前一日
+//            if (h < 7 || (h == 7 && m <= 30)) {
+            if (h < 9) {
+                createTime = DateUtil.offsetDay(createTime, -1);
+            }
+
+            // 排班时间
+            Date planDate = DateUtil.beginOfDay(createTime);
+            // 工号
+            String jobNo = map.get("jobNo").toString();
+            // 物料名称
+            String materialName = map.get("materialName").toString().split("-")[0];
+            // 数量
+            BigDecimal changeNum = BigDecimalUtil.keepDecimals(map.get("changeNum"));
+            // 单价
+            BigDecimal price = BigDecimalUtil.keepDecimals(map.get("price"));
+            // 门幅
+            BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
+
+            // 排班对象
+            StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
+            if (stockBackPlanDetails == null) {
+                stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
+                stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
+            }
+
+            // 金额
+            stockBackPlanDetails.setPickingMoney(
+                    BigDecimalUtil.init(stockBackPlanDetails.getPickingMoney()).add(price.multiply(changeNum)).getValue(2));
+
+            // 数量
+            stockBackPlanDetails.setPickingNum(stockBackPlanDetails.getPickingNum() + 1);
+
+            // 米
+            stockBackPlanDetails.setPickingMeters(stockBackPlanDetails.getPickingMeters().add(changeNum));
+
+            // 面积
+            stockBackPlanDetails.setPickingArea(stockBackPlanDetails.getPickingArea().add(
+                    BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
+        }
+
+    }
+
+
     /**
      * 回仓
      */
@@ -294,6 +359,7 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
         List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
                 .ge("sb.checker_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
                 .eq("uu.IsDelete", 0)
+                .in("uu.DepartmentID", "A007", "A012")
                 .isNotNull("uu.JobNo")
                 .likeRight("m.Code", "01."));
 
@@ -344,6 +410,64 @@ 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.checker_time", DateUtil.format(beginDate, "yyyy-MM-dd 09:00:00"))
+                .eq("uu.IsDelete", 0)
+                .eq("uu.DepartmentID", "A008")
+                .isNotNull("uu.JobNo")
+                .likeRight("m.Code", "01."));
+
+        for (Map<String, Object> map : backList) {
+
+            // 出库时间
+            Date createTime = (Date) map.get("createTime");
+
+            int h = Integer.parseInt(DateUtil.format(createTime, "H"));
+            // int m = Integer.parseInt(DateUtil.format(createTime, "m"));
+            // 小于9点算前一日
+            if (h < 9) {
+                createTime = DateUtil.offsetDay(createTime, -1);
+            }
+            // 排班时间
+            Date planDate = DateUtil.beginOfDay(createTime);
+            // 工号
+            String jobNo = map.get("jobNo").toString();
+            // 物料名称
+            String materialName = map.get("materialName").toString().split("-")[0];
+            // 数量
+            BigDecimal changeNum = BigDecimalUtil.keepDecimals(map.get("changeNum"));
+            // 单价
+            BigDecimal price = BigDecimalUtil.keepDecimals(map.get("price"));
+            // 门幅
+            BigDecimal width = BigDecimalUtil.keepDecimals(map.get("width"));
+
+            // 排班对象
+            StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate);
+            if (stockBackPlanDetails == null) {
+                stockBackPlanDetails = createStockBackPlanDetails(jobNo, materialName, planDate);
+                stockBackPlanMap.put(jobNo + materialName + planDate, stockBackPlanDetails);
+            }
+
+            // 金额
+            stockBackPlanDetails.setBackMoney(
+                    BigDecimalUtil.init(stockBackPlanDetails.getBackMoney()).add(price.multiply(changeNum)).getValue(2));
+
+            // 数量
+            stockBackPlanDetails.setBackNum(stockBackPlanDetails.getBackNum() + 1);
+
+            // 米
+            stockBackPlanDetails.setBackMeters(stockBackPlanDetails.getBackMeters().add(changeNum));
+
+            // 面积
+            stockBackPlanDetails.setBackArea(stockBackPlanDetails.getBackArea().add(
+                    BigDecimalUtil.init(changeNum).multiply(width).divide(100, 2).getValue()));
+        }
+
+    }
+
+
     /**
      * 修正
      */

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

@@ -56,12 +56,12 @@ public class ScheduleTaskController {
      * 统计排班数据
      */
     @Scheduled(cron = "30 0/5 * * * ?")
-//    @Scheduled(cron = "0 03 16 * * ?")
+//    @Scheduled(cron = "0 20 10 * * ?")
     private void statisticsScheduleDateTask() {
         if (BladeApplication.isLocalDev()) {
             return;
         }
-        stockBackPlanService.statisticsScheduleDateTask();
+        stockBackPlanService.statisticsScheduleDateTask(2);
     }
 
 }