Browse Source

杰生迭代

home 2 years ago
parent
commit
55d9062000
17 changed files with 390 additions and 7 deletions
  1. 1 1
      hx-common/code-generator/src/main/java/com/fjhx/modular/Storage.java
  2. 5 0
      hx-common/common-tool/src/main/java/com/fjhx/base/BaseService.java
  3. 0 4
      hx-common/common-tool/src/main/java/com/fjhx/utils/wrapperUtil/IWrapper.java
  4. 117 0
      hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockWaterdetial.java
  5. 17 0
      hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockWaterdetialEx.java
  6. 17 0
      hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockWaterdetialVo.java
  7. 6 0
      hx-service/storage/src/main/java/com/fjhx/stock/controller/StockWaterController.java
  8. 56 0
      hx-service/storage/src/main/java/com/fjhx/stock/controller/StockWaterdetialController.java
  9. 2 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterMapper.java
  10. 14 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterMapper.xml
  11. 16 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterdetialMapper.java
  12. 5 0
      hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterdetialMapper.xml
  13. 2 1
      hx-service/storage/src/main/java/com/fjhx/stock/service/StockWaterService.java
  14. 28 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/StockWaterdetialService.java
  15. 55 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterServiceImpl.java
  16. 48 0
      hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterdetialServiceImpl.java
  17. 1 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/product/impl/ProductInfoServiceImpl.java

+ 1 - 1
hx-common/code-generator/src/main/java/com/fjhx/modular/Storage.java

@@ -37,7 +37,7 @@ public class Storage {
     public static String MODULAR_NAME = "storage";
 
     // 需要生成的表名称,多表用,隔开
-    public static String INCLUDE = "stock_checkrecorddetail";
+    public static String INCLUDE = "stock_waterdetial";
 
     // mysql连接
     public static String MYSQL_URL = "rm-wz9f1jcr5466b42415o.mysql.rds.aliyuncs.com:3306";

+ 5 - 0
hx-common/common-tool/src/main/java/com/fjhx/base/BaseService.java

@@ -128,6 +128,11 @@ public interface BaseService<T> extends IService<T> {
                 .stream().collect(Collectors.toMap(kFun, item -> item, (v1, v2) -> v2));
     }
 
+    default <K> Map<K, List<T>> getKGroup(SFunction<T, K> kFun, Consumer<LambdaQueryWrapper<T>> consumer) {
+        return list(Wrappers.<T>lambdaQuery().func(consumer))
+                .stream().collect(Collectors.groupingBy(kFun));
+    }
+
     default boolean update(Consumer<LambdaUpdateWrapper<T>> consumer) {
         return update(Wrappers.<T>lambdaUpdate().func(consumer));
     }

+ 0 - 4
hx-common/common-tool/src/main/java/com/fjhx/utils/wrapperUtil/IWrapper.java

@@ -101,10 +101,6 @@ public class IWrapper<T> extends AbstractWrapper<T, String, IWrapper<T>> impleme
         entityMap = map;
     }
 
-    public static <T> IWrapper<T> getWrapper() {
-        return new IWrapper<>();
-    }
-
     public static <T> IWrapper<T> getWrapper(Object obj) {
         return new IWrapper<>(obj);
     }

+ 117 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/entity/stock/StockWaterdetial.java

@@ -0,0 +1,117 @@
+package com.fjhx.entity.stock;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fjhx.base.BasicEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 出入库明细
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockWaterdetial extends BasicEntity {
+
+
+    /**
+     * 软删除
+     */
+    @TableField("IsDelete")
+    private Boolean IsDelete;
+
+    /**
+     * 出入库编号
+     */
+    @TableField("WaterId")
+    private String WaterId;
+
+    /**
+     * 操作人
+     */
+    @TableField("OperUserId")
+    private String OperUserId;
+
+    /**
+     * 物料编号
+     */
+    @TableField("MaterialCode")
+    private String MaterialCode;
+
+    /**
+     * 变更数量
+     */
+    @TableField("ChangeNum")
+    private BigDecimal ChangeNum;
+
+    /**
+     * 出入库单类型 (枚举定义:1=采购入库,2=归还入库,10=领料出库,11=退货出库,12=报损出库)
+     */
+    @TableField("ApplyType")
+    private Integer ApplyType;
+
+    /**
+     * 关联编号
+     */
+    @TableField("LinkId")
+    private String LinkId;
+
+    /**
+     * 二维码
+     */
+    @TableField("QRCode")
+    private String QRCode;
+
+    /**
+     * RFID码
+     */
+    @TableField("RfidCode")
+    private String RfidCode;
+
+    /**
+     * 单价
+     */
+    @TableField("Price")
+    private BigDecimal Price;
+
+    /**
+     * 库存变更类型 (枚举定义:6=库存初始化,10=入库,11=盘盈,12=数量添加修正,13=补入库,14=标签损坏入库,15=归还入库,16=现场回仓,17=调仓入库,20=出库,21=盘亏,22=数量减少修正,23=补出库,24=绑定错误,25=标签损坏出库,26=退货出库,27=报废出库,28=调仓出库,  29=补出库待确认,30=出库待确认)
+     */
+    @TableField("StockChangeType")
+    private Integer StockChangeType;
+
+    /**
+     * 出入库设备 (枚举定义:0=一体机,1=手持机,2=web端)
+     */
+    @TableField("InOutDevice")
+    private Integer InOutDevice;
+
+    /**
+     * 审批状态 (枚举定义:0=待审批,1=审批中,2=已审批,3=已驳回,4=已撤回)
+     */
+    @TableField("ApproveBillState")
+    private Integer ApproveBillState;
+
+    /**
+     * 审批流关联id
+     */
+    @TableField("FlowLinkId")
+    private String FlowLinkId;
+
+    /**
+     * 领料状态 1审批中 2待处理 3确认接收 4退回
+     */
+    @TableField("PickingStatus")
+    private Integer PickingStatus;
+
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockWaterdetialEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockWaterdetial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 出入库明细
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockWaterdetialEx extends StockWaterdetial {
+
+}

+ 17 - 0
hx-service-api/storage-api/src/main/java/com/fjhx/params/stock/StockWaterdetialVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.stock;
+
+import com.fjhx.entity.stock.StockWaterdetial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 出入库明细
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class StockWaterdetialVo extends StockWaterdetial {
+
+}

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

@@ -183,5 +183,11 @@ public class StockWaterController {
         return R.success(list);
     }
 
+    @PostMapping("outPage")
+    public R outPage(@RequestBody Condition condition) {
+        Page<Map<String, Object>> result = stockWaterService.outPage(condition);
+        return R.success(result);
+    }
+
 }
 

+ 56 - 0
hx-service/storage/src/main/java/com/fjhx/stock/controller/StockWaterdetialController.java

@@ -0,0 +1,56 @@
+package com.fjhx.stock.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.stock.StockWaterdetial;
+import com.fjhx.params.stock.StockWaterdetialVo;
+import com.fjhx.stock.service.StockWaterdetialService;
+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.Map;
+
+/**
+ * <p>
+ * 出入库明细 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+@RestController
+@RequestMapping("/stockWaterdetial")
+public class StockWaterdetialController {
+
+    @Autowired
+    private StockWaterdetialService stockWaterdetialService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, Object> condition){
+        Page<StockWaterdetial> result = stockWaterdetialService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody StockWaterdetialVo stockWaterdetialVo){
+        stockWaterdetialService.add(stockWaterdetialVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody StockWaterdetialVo stockWaterdetialVo){
+        stockWaterdetialService.edit(stockWaterdetialVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody StockWaterdetialVo stockWaterdetialVo){
+        stockWaterdetialService.delete(stockWaterdetialVo);
+        return R.success();
+    }
+
+}
+

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
 import com.fjhx.entity.stock.StockWater;
+import com.fjhx.utils.wrapperUtil.IWrapper;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tenant.annotation.TenantIgnore;
 
@@ -75,4 +76,5 @@ public interface StockWaterMapper extends BaseMapper<StockWater> {
 
     List<Map<String, Object>> getInventoryDetails(@Param("condition") Condition condition);
 
+    Page<Map<String, Object>> outPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Object> wrapper);
 }

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

@@ -394,5 +394,19 @@
         ORDER BY scrd.MaterialCode
     </select>
 
+    <select id="outPage" resultType="java.util.LinkedHashMap">
+        SELECT sw.WaterId,
+               m.`Name`,
+               m.`Code`,
+               uu.RealName,
+               sw.StockChangeType,
+               sw.CreatedTime,
+               sw.Remark
+        FROM stock_water sw
+                 LEFT JOIN material m ON sw.MaterialCode = m.`Code`
+                 LEFT JOIN u_user uu ON sw.OperUserId = uu.ID
+            ${ew.customSqlSegment}
+    </select>
+
 
 </mapper>

+ 16 - 0
hx-service/storage/src/main/java/com/fjhx/stock/mapper/StockWaterdetialMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.stock.mapper;
+
+import com.fjhx.entity.stock.StockWaterdetial;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 出入库明细 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+public interface StockWaterdetialMapper extends BaseMapper<StockWaterdetial> {
+
+}

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.stock.mapper.StockWaterdetialMapper">
+
+</mapper>

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

@@ -6,7 +6,6 @@ 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;
 
@@ -54,4 +53,6 @@ public interface StockWaterService extends BaseService<StockWater> {
 
     List<Map<String, Object>> inventoryDetails(Condition condition);
 
+    Page<Map<String, Object>> outPage(Condition condition);
+
 }

+ 28 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/StockWaterdetialService.java

@@ -0,0 +1,28 @@
+package com.fjhx.stock.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockWaterdetial;
+import com.fjhx.params.stock.StockWaterdetialVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 出入库明细 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+public interface StockWaterdetialService extends BaseService<StockWaterdetial> {
+
+    Page<StockWaterdetial> getPage(Map<String, Object> condition);
+
+    void add(StockWaterdetialVo stockWaterdetialVo);
+
+    void edit(StockWaterdetialVo stockWaterdetialVo);
+
+    void delete(StockWaterdetialVo stockWaterdetialVo);
+
+}

+ 55 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fjhx.stock.service.impl;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -11,11 +12,16 @@ 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.entity.stock.StockWaterdetial;
 import com.fjhx.stock.mapper.StockWaterMapper;
 import com.fjhx.stock.service.StockWaterService;
+import com.fjhx.stock.service.StockWaterdetialService;
 import com.fjhx.utils.Assert;
 import com.fjhx.utils.BigDecimalUtil;
 import com.fjhx.utils.WrapperUtil;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import com.fjhx.utils.wrapperUtil.KeywordData;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -34,6 +40,10 @@ import java.util.stream.Collectors;
 @Service
 public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWater> implements StockWaterService {
 
+    @Autowired
+    private StockWaterdetialService stockWaterdetialService;
+
+
     @Override
     public Map<String, Object> getPickingStatistics(Map<String, String> condition) {
 
@@ -603,6 +613,51 @@ public class StockWaterServiceImpl extends ServiceImpl<StockWaterMapper, StockWa
         return baseMapper.getInventoryDetails(condition);
     }
 
+    @Override
+    public Page<Map<String, Object>> outPage(Condition condition) {
+
+        String beginTime = condition.getStr("beginTime");
+        String endTime = condition.getStr("endTime");
+
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
+        wrapper.func(q -> {
+                    if (ObjectUtil.isEmpty(condition.getInt("stockChangeType"))) {
+                        q.in("sw.StockChangeType", 20, 26, 27);
+                    } else {
+                        q.eq("sw.StockChangeType", condition.getInt("stockChangeType"));
+                    }
+                })
+                .keyword(new KeywordData("m.name"), new KeywordData("m.code"))
+                .eq("sw.OperUserId", condition.getStr("operUserId"))
+                .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), "sw.CreatedTime", beginTime, endTime)
+                .orderByDesc("sw.CreatedTime");
+
+        Page<Map<String, Object>> page = baseMapper.outPage(condition.getPage(), wrapper);
+
+        List<Map<String, Object>> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+        // 查询出库明细
+        List<String> waterIdList = records.stream().map(item -> Convert.toStr(item.get("WaterId")))
+                .collect(Collectors.toList());
+
+        Map<String, List<StockWaterdetial>> waterIdGroup = stockWaterdetialService.getKGroup(
+                StockWaterdetial::getWaterId,
+                q -> q.in(StockWaterdetial::getWaterId, waterIdList)
+                        .select(StockWaterdetial::getWaterId, StockWaterdetial::getChangeNum, StockWaterdetial::getRfidCode)
+                        .eq(StockWaterdetial::getIsDelete, 0));
+
+        records.forEach(item -> {
+            String waterId = Convert.toStr(item.get("WaterId"));
+            List<StockWaterdetial> stockWaterdetials = waterIdGroup.get(waterId);
+            item.put("detailsList", stockWaterdetials);
+        });
+
+        return page;
+    }
+
     private List<JSONObject> format(List<Map<String, Object>> list) {
         Map<String, JSONObject> collect = list.stream().collect(Collectors.toMap(
                 item -> item.get("materialCode").toString(),

+ 48 - 0
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockWaterdetialServiceImpl.java

@@ -0,0 +1,48 @@
+package com.fjhx.stock.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.stock.StockWaterdetial;
+import com.fjhx.params.stock.StockWaterdetialVo;
+import com.fjhx.stock.mapper.StockWaterdetialMapper;
+import com.fjhx.stock.service.StockWaterdetialService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 出入库明细 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-12
+ */
+@Service
+public class StockWaterdetialServiceImpl extends ServiceImpl<StockWaterdetialMapper, StockWaterdetial> implements StockWaterdetialService {
+
+    @Override
+    public Page<StockWaterdetial> getPage(Map<String, Object> condition) {
+
+        IWrapper<StockWaterdetial> wrapper = IWrapper.getWrapper(condition);
+
+        return page(condition, wrapper);
+    }
+
+    @Override
+    public void add(StockWaterdetialVo stockWaterdetialVo) {
+        save(stockWaterdetialVo);
+    }
+
+    @Override
+    public void edit(StockWaterdetialVo stockWaterdetialVo) {
+        updateById(stockWaterdetialVo);
+    }
+
+    @Override
+    public void delete(StockWaterdetialVo stockWaterdetialVo) {
+        removeById(stockWaterdetialVo.getId());
+    }
+
+}

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/product/impl/ProductInfoServiceImpl.java

@@ -195,7 +195,7 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         Long id = condition.getLong("id");
         Assert.notEmpty(id, "产品id不能为空");
 
-        IWrapper<Object> wrapper = IWrapper.getWrapper();
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition);
         wrapper.eq("pc", ProductCombination::getProductId, id);
 
         return baseMapper.getCombinationPage(createPage(condition), wrapper);