24282 2 роки тому
батько
коміт
419634837d

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

@@ -249,5 +249,14 @@ public class StockBackController {
         return R.success(result);
     }
 
+    /**
+     * 退料
+     */
+    @PostMapping("/returnMaterial")
+    public R returnMaterial(@RequestBody Condition condition) {
+        List<Map<String, Object>> result = stockBackDetailsService.returnMaterial(condition);
+        return R.success(result);
+    }
+
 }
 

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

@@ -24,4 +24,8 @@ public interface StockBackDetailsMapper extends BaseMapper<StockBackDetails> {
                                              @Param("beginTime") Date beginTime,
                                              @Param("endTime") Date endTime);
 
+    List<Map<String, Object>> getReturnMaterialList(@Param("ew") QueryWrapper<Object> wrapper,
+                                                    @Param("tech") String tech,
+                                                    @Param("beginTime") Date beginTime,
+                                                    @Param("endTime") Date endTime);
 }

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

@@ -3,14 +3,14 @@
 <mapper namespace="com.fjhx.stock.mapper.StockBackDetailsMapper">
 
     <select id="getPickingList" resultType="java.util.Map">
-        select DISTINCT
+        select
+            <if test="tech neq null and tech neq ''">DISTINCT</if>
             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
@@ -23,4 +23,27 @@
         ${ew.customSqlSegment}
     </select>
 
+    <select id="getReturnMaterialList" resultType="java.util.Map">
+        select
+        <if test="tech neq null and tech neq ''">DISTINCT</if>
+        sb.operation_time createTime,
+        uu.RealName realName,
+        m.CODE materialCode,
+        m.NAME materialName,
+        sbd.rfid rfidCode,
+        sbd.material_meters changeNum,
+        (m.width * sbd.material_meters / 100) area
+        from stock_back sb
+        left join stock_back_details sbd on sb.id = sbd.stock_back_id
+        left join material m on sbd.material_id = m.id
+        left join acc_account aa on sb.operator_id = aa.AccountNo
+        left join u_user uu on uu.ID = aa.ID
+        <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>

+ 2 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockBackDetailsService.java

@@ -29,4 +29,6 @@ public interface StockBackDetailsService extends BaseService<StockBackDetails> {
 
     List<Map<String, Object>> picking(Condition condition);
 
+    List<Map<String, Object>> returnMaterial(Condition condition);
+
 }

+ 46 - 1
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockBackDetailsServiceImpl.java

@@ -103,11 +103,56 @@ public class StockBackDetailsServiceImpl extends ServiceImpl<StockBackDetailsMap
                 // 物料名称
                 .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(",")))
+                .eq("uu.IsDelete", 0)
                 .isNotNull("uu.JobNo");
 
         return baseMapper.getPickingList(wrapper, tech, beginTime, endTime);
     }
 
+    @Override
+    public List<Map<String, Object>> returnMaterial(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("sb.statistics_date", beginTime, endTime)
+                .eq("uu.IsDelete", 0)
+                .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("returnWarehouse").getDeptIdSet().split(",")));
+                        deptIdList.addAll(Arrays.asList(configMap.get("returnWarehouseA008").getDeptIdSet().split(",")));
+                        q.in("uu.DepartmentID", deptIdList);
+                    }
+                })
+                // 物料名称
+                .and(ObjectUtil.isNotEmpty(materialName), q ->
+                        q.eq("m.Name", materialName).or().likeRight("m.Name", materialName + "-"))
+                .notIn("m.CategoryCode", Arrays.asList(configMap.get("issue").getNotCategoryCodeSet().split(",")))
+                .isNotNull("uu.JobNo");
+
+        return baseMapper.getReturnMaterialList(wrapper, tech, beginTime, endTime);
+    }
+
 }

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

@@ -63,7 +63,7 @@ public class ScheduleTaskController {
      * 盘点
      */
     @Scheduled(cron = "0 0 1 * * ?")
-//    @PostConstruct
+    // @PostConstruct
     private void checkStart() {
         if (BladeApplication.isLocalDev()) {
             return;