home 2 年 前
コミット
440a10e5fc

+ 24 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/stock/StockController.java

@@ -1,10 +1,16 @@
 package com.fjhx.controller.stock;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.service.stock.StockService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * <p>
  * 库存表 前端控制器
@@ -20,5 +26,23 @@ public class StockController {
     @Autowired
     private StockService stockService;
 
+    /**
+     * 今日剩余统计
+     */
+    @PostMapping("/statistics")
+    public R statistics() {
+        Map<String, Object> result = stockService.statistics();
+        return R.success(result);
+    }
+
+    /**
+     * 今日剩余分页
+     */
+    @PostMapping("/page")
+    public R page(Condition condition) {
+        Page<Map<String, Object>> result = stockService.getPage(condition);
+        return R.success(result);
+    }
+
 }
 

+ 12 - 5
hx-service/storage-restructure/src/main/java/com/fjhx/controller/stock/StockHouseController.java

@@ -1,16 +1,17 @@
 package com.fjhx.controller.stock;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
 import com.fjhx.entity.stock.StockHouse;
 import com.fjhx.params.stock.StockHouseVo;
 import com.fjhx.service.stock.StockHouseService;
+import org.springblade.core.tool.api.R;
 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 java.util.List;
 import java.util.Map;
 
 /**
@@ -29,28 +30,34 @@ public class StockHouseController {
     private StockHouseService stockHouseService;
 
     @PostMapping("/page")
-    public R page(@RequestBody Map<String, String> condition){
+    public R page(@RequestBody Map<String, String> condition) {
         Page<StockHouse> result = stockHouseService.getPage(condition);
         return R.success(result);
     }
 
     @PostMapping("/add")
-    public R add(@RequestBody StockHouseVo stockHouseVo){
+    public R add(@RequestBody StockHouseVo stockHouseVo) {
         stockHouseService.add(stockHouseVo);
         return R.success();
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody StockHouseVo stockHouseVo){
+    public R edit(@RequestBody StockHouseVo stockHouseVo) {
         stockHouseService.edit(stockHouseVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody StockHouseVo stockHouseVo){
+    public R delete(@RequestBody StockHouseVo stockHouseVo) {
         stockHouseService.delete(stockHouseVo);
         return R.success();
     }
 
+    @PostMapping("/list")
+    public R list(@RequestBody StockHouse stockHouse) {
+        List<StockHouse> result = stockHouseService.getList(stockHouse);
+        return R.success(result);
+    }
+
 }
 

+ 6 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/stock/StockMapper.java

@@ -3,6 +3,9 @@ package com.fjhx.mapper.stock;
 import com.fjhx.entity.stock.Stock;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 库存表 Mapper 接口
@@ -13,4 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface StockMapper extends BaseMapper<Stock> {
 
+    List<Map<String, Object>> statistics();
+
+
 }

+ 12 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/stock/StockMapper.xml

@@ -2,4 +2,16 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.stock.StockMapper">
 
+    <select id="statistics" resultType="java.util.Map">
+        select s.number,
+               s.quantity,
+               m.technology_type,
+               m.purpose,
+               ifnull(m.width, 0) width,
+               m.price
+        from stock s
+                 left join material m on s.material_id = m.id
+        where s.number > 0
+    </select>
+
 </mapper>

+ 2 - 2
hx-service/storage-restructure/src/main/java/com/fjhx/service/apply/impl/ApplyPurchaseServiceImpl.java

@@ -171,8 +171,8 @@ public class ApplyPurchaseServiceImpl extends ServiceImpl<ApplyPurchaseMapper, A
                         q.eq("ap.flow_status", status);
                     }
                 })
-                .orderByAsc("pc.PurContractState")
-                .orderByDesc("ap.CreatedTime");
+                .orderByAsc("ap.flow_status")
+                .orderByDesc("ap.create_time");
 
         Page<Map<String, Object>> page = baseMapper.getPage(createPage(condition), wrapper);
 

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

@@ -5,6 +5,7 @@ import com.fjhx.entity.stock.StockHouse;
 import com.fjhx.params.stock.StockHouseVo;
 import com.fjhx.base.StorageBaseService;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -25,4 +26,6 @@ public interface StockHouseService extends StorageBaseService<StockHouse> {
 
     void delete(StockHouseVo stockHouseVo);
 
+    List<StockHouse> getList(StockHouse stockHouse);
+
 }

+ 7 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/stock/StockService.java

@@ -1,10 +1,13 @@
 package com.fjhx.service.stock;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.base.StorageBaseService;
 import com.fjhx.entity.stock.Stock;
 import com.fjhx.entity.water.WaterTag;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -24,4 +27,8 @@ public interface StockService extends StorageBaseService<Stock> {
      */
     void edit(Enum<?> typeEnum, List<WaterTag> waterTagList);
 
+    Map<String, Object> statistics();
+
+    Page<Map<String, Object>> getPage(Condition condition);
+
 }

+ 11 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/stock/impl/StockHouseServiceImpl.java

@@ -1,9 +1,11 @@
 package com.fjhx.service.stock.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.StorageBaseEntity;
 import com.fjhx.entity.stock.StockHouse;
 import com.fjhx.mapper.stock.StockHouseMapper;
 import com.fjhx.params.stock.StockHouseVo;
@@ -11,6 +13,7 @@ import com.fjhx.service.stock.StockHouseService;
 import com.fjhx.utils.WrapperUtil;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -50,4 +53,12 @@ public class StockHouseServiceImpl extends ServiceImpl<StockHouseMapper, StockHo
         removeById(stockHouseVo.getId());
     }
 
+    @Override
+    public List<StockHouse> getList(StockHouse stockHouse) {
+        return lambdaQuery()
+                .select(StorageBaseEntity::getId, StockHouse::getName)
+                .like(ObjectUtil.isNotEmpty(stockHouse.getName()), StockHouse::getName, stockHouse.getName())
+                .list();
+    }
+
 }

+ 142 - 2
hx-service/storage-restructure/src/main/java/com/fjhx/service/stock/impl/StockServiceImpl.java

@@ -1,18 +1,24 @@
 package com.fjhx.service.stock.impl;
 
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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.Stock;
 import com.fjhx.entity.water.WaterTag;
 import com.fjhx.enums.InTypeEnum;
+import com.fjhx.enums.MaterialTypeEnum;
 import com.fjhx.mapper.stock.StockMapper;
 import com.fjhx.service.stock.StockService;
 import com.fjhx.utils.BigDecimalUtil;
+import com.fjhx.utils.WrapperUtil;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -85,4 +91,138 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 
     }
 
+    @Override
+    public Map<String, Object> statistics() {
+
+        HashMap<String, Object> result = new HashMap<>();
+
+        // 查询统计数据
+        List<Map<String, Object>> list = baseMapper.statistics();
+
+        Map<Integer, Map<String, Object>> typeCollect = list.stream().collect(Collectors.toMap(
+                item -> Convert.toInt(item.get("technologyType")),
+                item -> {
+                    Map<String, Object> map = putInfo(item);
+                    map.put("type", MaterialTypeEnum.getName(Convert.toInt(item.get("technologyType"))));
+                    return map;
+                },
+                this::addStatistics
+        ));
+
+        Map<String, Map<String, Object>> purposeCollect = list.stream()
+                .filter(item -> !MaterialTypeEnum.INK.getType().equals(Convert.toInt(item.get("technologyType"))))
+                .collect(Collectors.toMap(
+                        item -> Convert.toStr(item.get("purpose")),
+                        item -> {
+                            Map<String, Object> map = putInfo(item);
+                            map.put("materialPurpose", item.get("purpose"));
+                            return map;
+                        },
+                        this::addStatistics
+                ));
+
+        result.put("ink", typeCollect.get(MaterialTypeEnum.INK.getType()));
+        result.put("typeStatistics", Arrays.asList(
+                typeCollect.get(MaterialTypeEnum.JET_PRINT.getType()),
+                typeCollect.get(MaterialTypeEnum.TRANSFER.getType()),
+                typeCollect.get(MaterialTypeEnum.TYPING.getType()),
+                typeCollect.get(MaterialTypeEnum.OTHER.getType())
+        ));
+
+        Map<String, Object> fabric = addStatistics(
+                typeCollect.get(MaterialTypeEnum.JET_PRINT.getType()),
+                typeCollect.get(MaterialTypeEnum.TRANSFER.getType()),
+                typeCollect.get(MaterialTypeEnum.TYPING.getType()),
+                typeCollect.get(MaterialTypeEnum.OTHER.getType())
+        );
+        fabric.remove("type");
+        result.put("fabric", fabric);
+        result.put("purposeStatistics", new ArrayList<>(purposeCollect.values()));
+
+        return result;
+    }
+
+    @Override
+    public Page<Map<String, Object>> getPage(Condition condition) {
+
+        return null;
+    }
+
+    /**
+     * 赋值统计信息
+     */
+    private Map<String, Object> putInfo(Map<String, Object> map) {
+
+        HashMap<String, Object> itemMap = new HashMap<>();
+
+        // 卷数
+        Integer number = Convert.toInt(map.get("number"));
+        // 数量
+        BigDecimal quantity = Convert.toBigDecimal(map.get("quantity"));
+        // 面积
+        BigDecimal area = BigDecimalUtil.init(quantity).multiply(map.get("width")).divide(100, 2).getValue();
+        // 金额
+        BigDecimal money = BigDecimalUtil.multiply(quantity, map.get("price"), 2);
+
+        itemMap.put("number", number);
+        itemMap.put("quantity", quantity);
+        itemMap.put("area", area);
+        itemMap.put("money", money);
+
+        return itemMap;
+    }
+
+    @SafeVarargs
+    private final Map<String, Object> addStatistics(Map<String, Object>... item) {
+        Map<String, Object> v1 = new HashMap<>(item[0]);
+
+        for (int i = 1; i < item.length; i++) {
+            Map<String, Object> v2 = item[i];
+
+            v1.put("number", Convert.toInt(v1.get("number")) + Convert.toInt(v2.get("number")));
+            v1.put("quantity", BigDecimalUtil.add(v1.get("quantity"), v2.get("quantity")));
+            v1.put("area", BigDecimalUtil.add(v1.get("area"), v2.get("area")));
+            v1.put("money", BigDecimalUtil.add(v1.get("money"), v2.get("money")));
+        }
+
+        return v1;
+    }
+
+    private QueryWrapper<?> createRemainingTodayWrapper(Condition condition) {
+        QueryWrapper<?> wrapper = WrapperUtil.init(condition)
+                .keyword("m.Code", "m.Name") // 关键字查询
+                .eq("m.CategoryCode", "categoryCode") // 物料分类
+                .eq("m.Purpose", "purpose") // 用途
+                .getWrapper();
+
+        // 查询指定分类的物料
+        wrapper.and(q -> q.likeRight("m.code", "01.").or().likeRight("m.code", "03.008."));
+
+        Integer inventoryResults = condition.getInt("inventoryResults");
+        wrapper.eq(inventoryResults == 0,
+                "IF( a.CheckTagCount = a.TagQuantity AND a.CheckTagCount = a.HandTagCount, 1, 0)", inventoryResults);
+
+        // 仓库id
+//        Long houseId = condition.getLong("houseId");
+//        if (ObjectUtil.isNotEmpty(houseId)) {
+//            List<String> materialCodeList = baseMapper.selectMaterialIdByHouseId(houseId);
+//            wrapper.in("m.code", materialCodeList);
+//        }
+
+        // 工艺类型
+        Integer technologyType = condition.getInt("technologyType");
+        if (ObjectUtil.isNotEmpty(technologyType)) {
+            if (technologyType == 5) {
+                wrapper.in("m.TechnologyType", 0, 1, 2, 4);
+            } else {
+                wrapper.eq("m.TechnologyType", technologyType);
+            }
+        }
+
+        wrapper.groupBy("m.id");
+        wrapper.orderByAsc("m.Name");
+        return wrapper;
+    }
+
+
 }

+ 0 - 3
hx-service/storage/src/main/java/com/fjhx/task/service/impl/ScheduleTaskServiceImpl.java

@@ -113,9 +113,6 @@ public class ScheduleTaskServiceImpl implements ScheduleTaskService {
 
         // 请求v3接口获取所有人领料信息
         Date date = new Date();
-        if (Integer.parseInt(DateUtil.format(date, "HH")) < 5) {
-            date = DateUtil.offsetDay(date, -1);
-        }
 
         String beginDate = DateUtil.format(DateUtil.offsetDay(date, -2), "yyyy-MM-dd 00:00:00");
         // beginDate = "2022-06-01 00:00:00";