Ver Fonte

个人面料概况

home há 2 anos atrás
pai
commit
7de845cebd

+ 11 - 0
hx-common/common-tool/src/main/java/com/fjhx/base/Condition.java

@@ -147,4 +147,15 @@ public class Condition extends HashMap<String, Object> {
     public <T> List<T> getArray(String str, Class<T> clazz) {
         return JSONObject.parseArray(this.getStr(str), clazz, ParserConfig.global);
     }
+
+    public Date getDate(String str) {
+        String dateStr = this.getStr(str);
+
+        if (dateStr != null) {
+            return DateUtil.parse(dateStr);
+        }
+
+        return null;
+
+    }
 }

+ 0 - 3
hx-service/storage/src/main/java/com/fjhx/material/controller/MaterialController.java

@@ -27,8 +27,6 @@ public class MaterialController {
 
     /**
      * 下拉物料
-     * @param condition
-     * @return
      */
     @PostMapping("/selectList")
     public R selectList(@RequestBody Map<String, Object> condition){
@@ -39,7 +37,6 @@ public class MaterialController {
 
     /**
      * 下拉物料
-     * @return
      */
     @GetMapping("/selectPurposeList")
     public R selectPurposeList(@RequestParam(required = false) String purpose){

+ 0 - 1
hx-service/storage/src/main/java/com/fjhx/material/controller/MaterialReceivingController.java

@@ -100,7 +100,6 @@ public class MaterialReceivingController {
         return R.success();
     }
 
-
     /**
      * 待出库物料
      */

+ 0 - 1
hx-service/storage/src/main/java/com/fjhx/material/mapper/impl/MaterialReceivingServiceImpl.java

@@ -178,7 +178,6 @@ public class MaterialReceivingServiceImpl extends ServiceImpl<MaterialReceivingM
             materialReceivingList.forEach(item -> issueRest(item, rfidMap.get(item.getId())));
         }
 
-
     }
 
     @Override

+ 38 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockWaterController.java

@@ -1,6 +1,8 @@
 package com.fjhx.stock.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.stock.service.StockWaterService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -136,5 +138,41 @@ public class StockWaterController {
         return R.success(result);
     }
 
+    /**
+     * 领料
+     */
+    @PostMapping("/issue")
+    public R issue(@RequestBody Condition condition) {
+        List<JSONObject> list = stockWaterService.issue(condition);
+        return R.success(list);
+    }
+
+    /**
+     * 退料
+     */
+    @PostMapping("/materialReturn")
+    public R materialReturn(@RequestBody Condition condition) {
+        List<JSONObject> list = stockWaterService.materialReturn(condition);
+        return R.success(list);
+    }
+
+    /**
+     * 转入
+     */
+    @PostMapping("/transferIn")
+    public R transferIn(@RequestBody Condition condition) {
+        List<JSONObject> list = stockWaterService.transferIn(condition);
+        return R.success(list);
+    }
+
+    /**
+     * 转出
+     */
+    @PostMapping("/transferOut")
+    public R transferOut(@RequestBody Condition condition) {
+        List<JSONObject> list = stockWaterService.transferOut(condition);
+        return R.success(list);
+    }
+
 }
 

+ 8 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterMapper.java

@@ -64,4 +64,12 @@ public interface StockWaterMapper extends BaseMapper<StockWater> {
     @TenantIgnore
     List<Map<String, Object>> receiptList(@Param("purchaseBillNo") String purchaseBillNo);
 
+    List<Map<String, Object>> getWater(@Param("ew") QueryWrapper<Object> wrapper);
+
+    List<Map<String, Object>> getMaterialReturn(@Param("ew") QueryWrapper<Object> wrapper);
+
+    List<Map<String, Object>> getTransferPickingList(@Param("ew") QueryWrapper<Object> wrapper);
+
+    List<Map<String, Object>> getTransferBackList(@Param("ew") QueryWrapper<Object> wrapper);
+
 }

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

@@ -284,5 +284,54 @@
           AND asod.BackMaterialProgress >= 4
     </select>
 
+    <select id="getWater" resultType="java.util.Map">
+        select m.Code        materialCode,
+               m.Name        materialName,
+               m.Width       width,
+               swd.ChangeNum changeNum,
+               swd.RfidCode  rfid
+        from stock_waterdetial swd
+                 left join material m on swd.MaterialCode = m.code
+                 left join u_user uu on uu.ID = swd.OperUserId
+                 left join acc_account aa on uu.ID = aa.ID
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getMaterialReturn" resultType="java.util.Map">
+        select m.Code              materialCode,
+               m.Name              materialName,
+               m.Width             width,
+               sbd.material_meters changeNum,
+               sbd.rfid            rfid
+        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
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getTransferPickingList" resultType="java.util.Map">
+        select m.Code       materialCode,
+               m.Name       materialName,
+               m.Width      width,
+               std.quantity changeNum
+        from stock_transfer st
+                 left join stock_transfer_details std on st.id = std.stock_transfer_id
+                 left join material m on st.material_id = m.id
+                 left join u_user uu on uu.ID = st.receive_user
+                 left join acc_account aa on uu.ID = aa.ID
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getTransferBackList" resultType="java.util.Map">
+        select m.Code       materialCode,
+               m.Name       materialName,
+               m.Width      width,
+               std.quantity changeNum
+        from stock_transfer st
+                 left join stock_transfer_details std on st.id = std.stock_transfer_id
+                 left join material m on st.material_id = m.id
+            ${ew.customSqlSegment}
+    </select>
+
 
 </mapper>

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

@@ -1,8 +1,12 @@
 package com.fjhx.stock.service;
 
 import com.fjhx.base.BaseService;
+import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.StockBackPlan;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 服务类
@@ -17,4 +21,5 @@ public interface StockBackPlanService extends BaseService<StockBackPlan> {
 
     void statisticsScheduleDateTask();
 
+
 }

+ 11 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockWaterService.java

@@ -1,9 +1,12 @@
 package com.fjhx.stock.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.BaseService;
+import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.StockWater;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
@@ -41,4 +44,12 @@ public interface StockWaterService extends BaseService<StockWater> {
 
     List<Map<String, Object>> receiptList(Map<String, String> condition);
 
+    List<JSONObject> issue(Condition condition);
+
+    List<JSONObject> materialReturn(Condition condition);
+
+    List<JSONObject> transferIn(Condition condition);
+
+    List<JSONObject> transferOut(Condition condition);
+
 }

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

@@ -5,6 +5,7 @@ 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;
@@ -155,6 +156,8 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
 
     }
 
+
+
     private StockBackPlanDetails createStockBackPlanDetails(String jobNo, String materialName, Date planDate) {
         StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
         stockBackPlanDetails.setPlanMaterial(materialName);

+ 101 - 1
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterServiceImpl.java

@@ -3,14 +3,18 @@ package com.fjhx.stock.service.impl;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 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.constants.StatusConstant;
 import com.fjhx.entity.stock.StockWater;
 import com.fjhx.stock.mapper.StockWaterMapper;
 import com.fjhx.stock.service.StockWaterService;
 import com.fjhx.utils.Assert;
+import com.fjhx.utils.BigDecimalUtil;
 import com.fjhx.utils.WrapperUtil;
 import org.springframework.stereotype.Service;
 
@@ -535,6 +539,102 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
         return baseMapper.receiptList(purchaseBillNo);
     }
 
+    @Override
+    public List<JSONObject> issue(Condition condition) {
+        Date date = condition.getDate("date");
+        String account = condition.getStr("account", "账号不能为空");
+
+        List<Map<String, Object>> list = baseMapper.getWater(Wrappers.query()
+                .between("swd.CreatedTime", date, DateUtil.offsetDay(date, 1))
+                .in("swd.StockChangeType", 20, 23)
+                .eq("aa.AccountNo", account)
+                .likeRight("m.Code", "01.")
+        );
+
+        return format(list);
+    }
+
+    @Override
+    public List<JSONObject> materialReturn(Condition condition) {
+        Date date = condition.getDate("date");
+        String account = condition.getStr("account", "账号不能为空");
+
+        List<Map<String, Object>> list = baseMapper.getMaterialReturn(Wrappers.query()
+                .between("sb.checker_time", date, DateUtil.offsetDay(date, 1))
+                .eq("sb.operator_id", account)
+                .likeRight("m.Code", "01."));
+
+        return format(list);
+    }
+
+    @Override
+    public List<JSONObject> transferIn(Condition condition) {
+        Date date = condition.getDate("date");
+        String account = condition.getStr("account", "账号不能为空");
+
+        List<Map<String, Object>> list = baseMapper.getTransferPickingList(Wrappers.query()
+                .between("st.submit_time", date, DateUtil.offsetDay(date, 1))
+                .eq("st.status", StatusConstant.YES)
+                .eq("st.del_flag", 0)
+                .eq("aa.AccountNo", account)
+        );
+
+        return format(list);
+    }
+
+    @Override
+    public List<JSONObject> transferOut(Condition condition) {
+        Date date = condition.getDate("date");
+        String account = condition.getStr("account", "账号不能为空");
+
+        List<Map<String, Object>> list = baseMapper.getTransferBackList(Wrappers.query()
+                .between("st.submit_time", date, DateUtil.offsetDay(date, 1))
+                .eq("st.status", StatusConstant.YES)
+                .eq("st.del_flag", 0)
+                .eq("st.submit_user", account)
+        );
+
+        return format(list);
+    }
+
+    private List<JSONObject> format(List<Map<String, Object>> list) {
+        Map<String, JSONObject> collect = list.stream().collect(Collectors.toMap(
+                item -> item.get("materialCode").toString(),
+                item -> {
+                    Object changeNum = item.get("changeNum");
+
+                    JSONObject map = new JSONObject();
+                    map.put("materialCode", item.get("materialCode"));
+                    map.put("materialName", item.get("materialName"));
+                    map.put("count", 1);
+                    map.put("quantity", changeNum);
+                    map.put("area", BigDecimalUtil.init(changeNum)
+                            .multiply(item.get("width")).divideTry(100, 2).getValue());
+
+                    JSONObject materialMap = new JSONObject();
+                    materialMap.put("quantity", changeNum);
+                    materialMap.put("rfid", item.get("rfid"));
+                    map.put("materialList", Collections.singletonList(materialMap));
+
+                    return map;
+                },
+                (v1, v2) -> {
+                    v1.put("count", v1.getInteger("count") + v2.getInteger("count"));
+                    v1.put("quantity", v1.getBigDecimal("quantity").add(v2.getBigDecimal("quantity")));
+                    v1.put("area", v1.getBigDecimal("area").add(v2.getBigDecimal("area")));
+
+                    List<JSONObject> newList = new ArrayList<>();
+                    newList.addAll((List<JSONObject>) v1.get("materialList"));
+                    newList.addAll((List<JSONObject>) v2.get("materialList"));
+
+                    v1.put("materialList", newList);
+                    return v1;
+                }
+        ));
+
+        return new ArrayList<>(collect.values());
+    }
+
 
     private QueryWrapper<?> createRemainingTodayWrapper(Map<String, String> condition) {
         QueryWrapper<?> wrapper = WrapperUtil.init(condition)
@@ -547,7 +647,7 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
         wrapper.and(q -> q.likeRight("m.code", "01.").or().likeRight("m.code", "03.008."));
 
         String inventoryResults = condition.get("inventoryResults");
-        if ("0".equals(inventoryResults)) {
+        if ("0" .equals(inventoryResults)) {
             wrapper.eq("IF( a.CheckTagCount = a.TagQuantity AND a.CheckTagCount = a.HandTagCount, 1, 0)", inventoryResults);
         }