24282 2 năm trước cách đây
mục cha
commit
f040f5e1e2

+ 9 - 12
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockBackController.java

@@ -3,6 +3,7 @@ package com.fjhx.stock.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.entity.material.Material;
 import com.fjhx.entity.stock.StockBack;
 import com.fjhx.entity.stock.StockBackCorrect;
@@ -239,18 +240,14 @@ public class StockBackController {
         return R.success();
     }
 
-
-    // /**
-    //  * 领料
-    //  */
-    // @PostMapping("/picking")
-    // public R picking(@RequestBody Condition condition) {
-    //
-    //     List<Map<String, Object>> result = stockBackDetailsService.picking(condition);
-    //
-    //     return R.success(result);
-    // }
-
+    /**
+     * 领料
+     */
+    @PostMapping("/picking")
+    public R picking(@RequestBody Condition condition) {
+        List<Map<String, Object>> result = stockBackDetailsService.picking(condition);
+        return R.success(result);
+    }
 
 }
 

+ 13 - 2
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackDetailsMapper.java

@@ -1,11 +1,17 @@
 package com.fjhx.stock.mapper;
 
-import com.fjhx.entity.stock.StockBackDetails;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.entity.stock.StockBackDetails;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
- *  Mapper 接口
+ * Mapper 接口
  * </p>
  *
  * @author ${author}
@@ -13,4 +19,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface StockBackDetailsMapper extends BaseMapper<StockBackDetails> {
 
+    List<Map<String, Object>> getPickingList(@Param("ew") QueryWrapper<Object> wrapper,
+                                             @Param("tech") String tech,
+                                             @Param("beginTime") Date beginTime,
+                                             @Param("endTime") Date endTime);
+
 }

+ 21 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockBackDetailsMapper.xml

@@ -2,4 +2,25 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.stock.mapper.StockBackDetailsMapper">
 
+    <select id="getPickingList" resultType="java.util.Map">
+        select DISTINCT
+            swd.CreatedTime createTime,
+            uu.RealName realName,
+            m.CODE materialCode,
+            m.NAME materialName,
+            swd.RfidCode rfidCode,
+            swd.ChangeNum changeNum,
+            m.Width width,
+            (m.width * swd.ChangeNum / 100) area
+        from stock_waterdetial swd
+        left join material m on swd.MaterialCode = m.code
+        left join u_user uu on uu.ID = swd.OperUserId
+        <if test="tech neq null and tech neq ''">
+            inner join (select distinct plan_material from stock_back_plan
+            where tech=#{tech} and create_time between #{beginTime} and #{endTime}) sbp
+            on (sbp.plan_material = m.`Name` or m.`Name` like (concat(sbp.plan_material,'-%')))
+        </if>
+        ${ew.customSqlSegment}
+    </select>
+
 </mapper>

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

@@ -2,9 +2,11 @@ package com.fjhx.stock.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
+import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.StockBackDetails;
 import com.fjhx.params.stock.StockBackDetailsVo;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,6 +27,6 @@ public interface StockBackDetailsService extends BaseService<StockBackDetails> {
 
     void delete(StockBackDetailsVo stockBackDetailsVo);
 
-    // List<Map<String, Object>> picking(Condition condition);
+    List<Map<String, Object>> picking(Condition condition);
 
 }

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

@@ -15,7 +15,4 @@ public interface StockBackPlanService extends BaseService<StockBackPlan> {
 
     void synchronousScheduling();
 
-    // void statisticsScheduleDateTask(int offset);
-
-
 }

+ 59 - 16
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackDetailsServiceImpl.java

@@ -1,17 +1,24 @@
 package com.fjhx.stock.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.Condition;
+import com.fjhx.entity.plan.PlanConfig;
 import com.fjhx.entity.stock.StockBackDetails;
 import com.fjhx.params.stock.StockBackDetailsVo;
+import com.fjhx.plan.service.PlanConfigService;
 import com.fjhx.stock.mapper.StockBackDetailsMapper;
 import com.fjhx.stock.service.StockBackDetailsService;
+import com.fjhx.utils.Assert;
 import com.fjhx.utils.WrapperUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -24,6 +31,9 @@ import java.util.Map;
 @Service
 public class StockBackDetailsServiceImpl extends ServiceImpl<StockBackDetailsMapper, StockBackDetails> implements StockBackDetailsService {
 
+    @Autowired
+    private PlanConfigService planConfigService;
+
     @Override
     public Page<StockBackDetails> getPage(Map<String, String> condition) {
 
@@ -51,20 +61,53 @@ public class StockBackDetailsServiceImpl extends ServiceImpl<StockBackDetailsMap
         removeById(stockBackDetailsVo.getId());
     }
 
-    // @Override
-    // public List<Map<String, Object>> picking(Condition condition) {
-    //
-    //     // 人员
-    //     String userId = condition.getStr("userId");
-    //     // 开始时间
-    //     Date beginTime = condition.getBeginTime();
-    //     // 结束时间
-    //     Date endTime = condition.getEndTime();
-    //     // 物料名称
-    //     String materialName = condition.getStr("materialName");
-    //
-    //
-    //     return null;
-    // }
+    @Override
+    public List<Map<String, Object>> picking(Condition condition) {
+
+        // 开始时间
+        Date beginTime = condition.getBeginTime();
+        // 结束时间
+        Date endTime = condition.getEndTime();
+
+        Assert.notEmpty(beginTime, "开始时间不能为空");
+        Assert.notEmpty(endTime, "结束时间不能为空");
+
+        // 人员
+        String userId = condition.getStr("userId");
+        // 物料名称
+        String materialName = condition.getStr("materialName");
+        // 工艺
+        String tech = condition.getStr("tech");
+
+        Map<String, PlanConfig> configMap = planConfigService.list().stream()
+                .collect(Collectors.toMap(PlanConfig::getCode, item -> item));
+
+        QueryWrapper<Object> wrapper = Wrappers.query()
+                .between("swd.statistics_date", beginTime, endTime)
+                .in("swd.StockChangeType", 20, 23)
+                .func(q -> {
+                    // 用户id不为空
+                    if (ObjectUtil.isNotEmpty(userId)) {
+                        q.eq("uu.ID", userId);
+                    }
+                    // 用户id为空,查询指定部门全部人员
+                    else {
+                        List<String> deptIdList = new ArrayList<>();
+
+                        deptIdList.addAll(Arrays.asList(configMap.get("issue").getDeptIdSet().split(",")));
+                        deptIdList.addAll(Arrays.asList(configMap.get("issueA008").getDeptIdSet().split(",")));
+
+                        q.in("uu.DepartmentID", deptIdList);
+                    }
+                })
+                // 物料名称
+                .and(ObjectUtil.isNotEmpty(materialName), q ->
+                        q.eq("m.Name", materialName).or().likeRight("m.Name", materialName + "-"))
+                .eq("uu.IsDelete", 0)
+                .notIn("m.CategoryCode", Arrays.asList(configMap.get("issue").getNotCategoryCodeSet().split(",")))
+                .isNotNull("uu.JobNo");
+
+        return baseMapper.getPickingList(wrapper, tech, beginTime, endTime);
+    }
 
 }

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

@@ -48,7 +48,7 @@ public class ScheduleTaskController {
     }
 
     /**
-     * 获取排班面积
+     * 统计排班数据
      */
     @Scheduled(cron = "0 0/5 * * * ?")
     // @PostConstruct
@@ -59,18 +59,6 @@ public class ScheduleTaskController {
         stockBackPlanService.synchronousScheduling();
     }
 
-//     /**
-//      * 统计排班数据
-//      */
-//     @Scheduled(cron = "30 0/5 * * * ?")
-// //    @PostConstruct
-//     private void statisticsScheduleDateTask() {
-//         if (BladeApplication.isLocalDev()) {
-//             return;
-//         }
-//         stockBackPlanService.statisticsScheduleDateTask(4);
-//     }
-
     /**
      * 盘点
      */