home vor 2 Jahren
Ursprung
Commit
cf0b4a3b9b
35 geänderte Dateien mit 1071 neuen und 30 gelöschten Zeilen
  1. 6 1
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/contract/Contract.java
  2. 5 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/contract/ContractDetails.java
  3. 82 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/water/Water.java
  4. 107 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/water/WaterBatch.java
  5. 88 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/water/WaterBill.java
  6. 49 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/enums/ContractStatusEnum.java
  7. 13 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/contract/ContractVo.java
  8. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBatchEx.java
  9. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBatchVo.java
  10. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBillEx.java
  11. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBillVo.java
  12. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterEx.java
  13. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterVo.java
  14. 3 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseController.java
  15. 5 5
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseDetailsController.java
  16. 3 18
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/common/CommonFileController.java
  17. 23 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/contract/ContractController.java
  18. 44 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterBatchController.java
  19. 56 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterBillController.java
  20. 56 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterController.java
  21. 10 6
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractMapper.xml
  22. 16 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBatchMapper.java
  23. 5 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBatchMapper.xml
  24. 16 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBillMapper.java
  25. 5 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBillMapper.xml
  26. 16 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterMapper.java
  27. 5 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterMapper.xml
  28. 6 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractServiceImpl.java
  29. 104 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/flow/ContractFlowService.java
  30. 28 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/WaterBatchService.java
  31. 28 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/WaterBillService.java
  32. 28 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/WaterService.java
  33. 54 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterBatchServiceImpl.java
  34. 54 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterBillServiceImpl.java
  35. 54 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterServiceImpl.java

+ 6 - 1
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/contract/Contract.java

@@ -89,6 +89,11 @@ public class Contract extends StorageBaseEntity {
     private Integer invoiceType;
 
     /**
+     * 合同状态 (0待确认,1审批中,2进行中,3已完成)
+     */
+    private Integer status;
+
+    /**
      * 合同审批状态(0待审批,1审批中,2已审批,3已驳回,4已撤回)
      */
     private Integer flowStatus;
@@ -104,7 +109,7 @@ public class Contract extends StorageBaseEntity {
     private Integer payStatus;
 
     /**
-     * 处理(1是 0否)
+     * 是否处理(1是 0否)
      * 此条合同不能删除
      */
     private Integer processed;

+ 5 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/contract/ContractDetails.java

@@ -63,6 +63,11 @@ public class ContractDetails extends StorageBaseEntity {
     private BigDecimal quantity;
 
     /**
+     * 出货数量
+     */
+    private BigDecimal shipmentQuantity;
+
+    /**
      * 在途数量
      */
     private BigDecimal afloatQuantity;

+ 82 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/water/Water.java

@@ -0,0 +1,82 @@
+package com.fjhx.entity.water;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.fjhx.base.StorageBaseEntity;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 流水表
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class Water extends StorageBaseEntity {
+
+
+    /**
+     * 仓库id
+     */
+    private Long stockHouseId;
+
+    /**
+     * 批次id
+     */
+    private Long contractBatchId;
+
+    /**
+     * 操作人
+     */
+    private Long operUserId;
+
+    /**
+     * 物料id
+     */
+    private Long materialId;
+
+    /**
+     * 库存变更类型 (6库存初始化,10入库,11盘盈,12数量添加修正,13补入库,14标签损坏入库,15归还入库,16现场回仓,17调仓入库,20出库,21盘亏,22数量减少修正,23补出库,24绑定错误,25标签损坏出库,26退货出库,27报废出库,28调仓出库)
+     */
+    private Integer type;
+
+    /**
+     * 合计数量
+     */
+    private BigDecimal totalQuantity;
+
+    /**
+     * 异常出库是否已处理 (0否,1是)
+     */
+    private Integer errorOutStatus;
+
+    /**
+     * 异常出库处理备注
+     */
+    private String errorOutRemark;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+    private String oldId;
+
+
+}

+ 107 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/water/WaterBatch.java

@@ -0,0 +1,107 @@
+package com.fjhx.entity.water;
+
+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.FieldFill;
+import com.fjhx.base.StorageBaseEntity;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 批次
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterBatch extends StorageBaseEntity {
+
+
+    /**
+     * 批次号
+     */
+    private String code;
+
+    /**
+     * 申购id
+     */
+    private Long applyPurchaseId;
+
+    /**
+     * 申购明细id
+     */
+    private Long applyPurchaseDetailsId;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 合同明细id
+     */
+    private Long contractDetailsId;
+
+    /**
+     * 合同批次出货状态 (0未出货,1已出货)
+     */
+    private Integer shipStatus;
+
+    /**
+     * 出货时间
+     */
+    private Date shipTime;
+
+    /**
+     * 出货方式 (0物流公司,1包车)
+     */
+    private Integer shipOutWay;
+
+    /**
+     * 物流名称
+     */
+    private String expressName;
+
+    /**
+     * 物流单号
+     */
+    private String expressCode;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 车牌号
+     */
+    private String plateNumber;
+
+    /**
+     * 联系电话
+     */
+    private String contactTel;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+    private String oldId;
+
+
+}

+ 88 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/water/WaterBill.java

@@ -0,0 +1,88 @@
+package com.fjhx.entity.water;
+
+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.FieldFill;
+import com.fjhx.base.StorageBaseEntity;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 出入库单
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterBill extends StorageBaseEntity {
+
+
+    /**
+     * 入库单号
+     */
+    private String code;
+
+    /**
+     * 申购id
+     */
+    private Long applyPurchaseId;
+
+    /**
+     * 申购明细id
+     */
+    private Long applyPurchaseDetailsId;
+
+    /**
+     * 合同id
+     */
+    private Long contractId;
+
+    /**
+     * 合同明细id
+     */
+    private Long contractDetailsId;
+
+    /**
+     * 物料id
+     */
+    private Long materialId;
+
+    /**
+     * 供应商id
+     */
+    private Long supplierId;
+
+    /**
+     * 采购数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 入库数量
+     */
+    private BigDecimal changeQuantity;
+
+    /**
+     * 完成时间
+     */
+    private Date completeTime;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+    private String oldId;
+
+
+}

+ 49 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/enums/ContractStatusEnum.java

@@ -0,0 +1,49 @@
+package com.fjhx.enums;
+
+import lombok.Getter;
+
+import java.util.HashMap;
+
+/**
+ * 合同状态
+ */
+@Getter
+public enum ContractStatusEnum {
+
+    TO_BE_CONFIRMED(0, "待确认"),
+    UNDER_APPROVAL(1, "审批中"),
+    HAVE_IN_HAND(2, "进行中"),
+    COMPLETED(3, "已完成");
+
+    private final Integer type;
+    private final String name;
+
+    private static final HashMap<Integer, ContractStatusEnum> map = new HashMap<>();
+
+    ContractStatusEnum(Integer type, String name) {
+        this.type = type;
+        this.name = name;
+    }
+
+    static {
+        for (ContractStatusEnum value : ContractStatusEnum.values()) {
+            map.put(value.getType(), value);
+        }
+    }
+
+    /**
+     * 根据type获取枚举
+     */
+    public static ContractStatusEnum get(Integer type) {
+        return map.get(type);
+    }
+
+    /**
+     * 根据type值获取枚举
+     */
+    public static String getName(Integer type) {
+        return map.get(type).getName();
+    }
+
+
+}

+ 13 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/contract/ContractVo.java

@@ -4,6 +4,8 @@ import com.fjhx.entity.contract.Contract;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.math.BigDecimal;
+
 /**
  * 采购合同
  *
@@ -14,4 +16,15 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class ContractVo extends Contract {
 
+    /**
+     * 单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 采购数量
+     */
+    private BigDecimal quantity;
+
+
 }

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBatchEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.water;
+
+import com.fjhx.entity.water.WaterBatch;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 批次
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterBatchEx extends WaterBatch {
+
+}

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBatchVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.water;
+
+import com.fjhx.entity.water.WaterBatch;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 批次
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterBatchVo extends WaterBatch {
+
+}

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBillEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.water;
+
+import com.fjhx.entity.water.WaterBill;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 出入库单
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterBillEx extends WaterBill {
+
+}

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterBillVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.water;
+
+import com.fjhx.entity.water.WaterBill;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 出入库单
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterBillVo extends WaterBill {
+
+}

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.water;
+
+import com.fjhx.entity.water.Water;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 流水表
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterEx extends Water {
+
+}

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/water/WaterVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.water;
+
+import com.fjhx.entity.water.Water;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 流水表
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class WaterVo extends Water {
+
+}

+ 3 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseController.java

@@ -1,11 +1,13 @@
 package com.fjhx.controller.apply;
 
+import cn.hutool.http.HttpUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
 import com.fjhx.params.JumpVo;
 import com.fjhx.params.apply.ApplyPurchaseVo;
 import com.fjhx.service.apply.ApplyPurchaseService;
 import com.fjhx.service.flow.InitiateApplyFlowService;
+import lombok.SneakyThrows;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.FileOutputStream;
 import java.util.List;
 import java.util.Map;
 

+ 5 - 5
hx-service/storage-restructure/src/main/java/com/fjhx/controller/apply/ApplyPurchaseDetailsController.java

@@ -1,10 +1,10 @@
 package com.fjhx.controller.apply;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
 import com.fjhx.entity.apply.ApplyPurchaseDetails;
 import com.fjhx.params.apply.ApplyPurchaseDetailsVo;
 import com.fjhx.service.apply.ApplyPurchaseDetailsService;
+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;
@@ -29,25 +29,25 @@ public class ApplyPurchaseDetailsController {
     private ApplyPurchaseDetailsService applyPurchaseDetailsService;
 
     @PostMapping("/page")
-    public R page(@RequestBody Map<String, String> condition){
+    public R page(@RequestBody Map<String, String> condition) {
         Page<ApplyPurchaseDetails> result = applyPurchaseDetailsService.getPage(condition);
         return R.success(result);
     }
 
     @PostMapping("/add")
-    public R add(@RequestBody ApplyPurchaseDetailsVo applyPurchaseDetailsVo){
+    public R add(@RequestBody ApplyPurchaseDetailsVo applyPurchaseDetailsVo) {
         applyPurchaseDetailsService.add(applyPurchaseDetailsVo);
         return R.success();
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody ApplyPurchaseDetailsVo applyPurchaseDetailsVo){
+    public R edit(@RequestBody ApplyPurchaseDetailsVo applyPurchaseDetailsVo) {
         applyPurchaseDetailsService.edit(applyPurchaseDetailsVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody ApplyPurchaseDetailsVo applyPurchaseDetailsVo){
+    public R delete(@RequestBody ApplyPurchaseDetailsVo applyPurchaseDetailsVo) {
         applyPurchaseDetailsService.delete(applyPurchaseDetailsVo);
         return R.success();
     }

+ 3 - 18
hx-service/storage-restructure/src/main/java/com/fjhx/controller/common/CommonFileController.java

@@ -11,7 +11,6 @@ import com.fjhx.utils.FlowConstructor;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DigestUtil;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -50,7 +49,6 @@ public class CommonFileController {
 
     private FlowConstructor flowConstructor() {
         return FlowConstructor.init(
-
                 new ExampleAbstract() {
                     @Override
                     public String getCode() {
@@ -61,8 +59,6 @@ public class CommonFileController {
                     public void end() {
                         ExampleInfo cacheData = getCacheData(ExampleInfo.class);
                         System.err.println("缓存     " + cacheData);
-
-
                         System.err.println("流程结束了");
                     }
 
@@ -84,36 +80,25 @@ public class CommonFileController {
         );
     }
 
-
-    @Transactional
-    @GetMapping("test")
+    @GetMapping("create")
     public R test() {
         HashMap<String, String> map = new HashMap<>();
         map.put("processInfoId", "1111111111111111111111");
         map.put("processTenantId", "222222222222222222222");
-
         ExampleResult result = flowConstructor().create(123456L, "测试流程", "测试开始流程", map);
-
         return R.success(result);
     }
 
-
     @GetMapping("jump")
     public R jump(@RequestParam("buttonId") Long buttonId) {
-        flowConstructor().jump(123456L, buttonId, "测试流程运行").after(() -> {
-
-        });
+        flowConstructor().jump(123456L, buttonId, "测试流程运行");
         return R.success();
     }
 
-
     @GetMapping("/getPassword")
     public String getPassword(@RequestParam("password") String password) {
-        String s = MD5.create().digestHex(password);
-        String hex = DigestUtil.hex(s);
-        return hex;
+        return DigestUtil.hex(MD5.create().digestHex(password));
     }
 
-
 }
 

+ 23 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/contract/ContractController.java

@@ -2,8 +2,10 @@ package com.fjhx.controller.contract;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
+import com.fjhx.params.JumpVo;
 import com.fjhx.params.contract.ContractVo;
 import com.fjhx.service.contract.ContractService;
+import com.fjhx.service.flow.ContractFlowService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -29,6 +31,9 @@ public class ContractController {
     @Autowired
     private ContractService contractService;
 
+    @Autowired
+    private ContractFlowService contractFlowService;
+
     @PostMapping("/add")
     public R add(@RequestBody ContractVo contractVo) {
         contractService.add(contractVo);
@@ -74,5 +79,23 @@ public class ContractController {
         return R.success(result);
     }
 
+    /**
+     * 发起合同审批
+     */
+    @PostMapping("/flowCreate")
+    public R flowCreate(@RequestBody ContractVo contractVo) {
+        contractFlowService.create(contractVo);
+        return R.success();
+    }
+
+    /**
+     * 合同审批跳转
+     */
+    @PostMapping("/flowJump")
+    public R flowJump(@RequestBody JumpVo jumpVo) {
+        contractFlowService.jump(jumpVo);
+        return R.success();
+    }
+
 }
 

+ 44 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterBatchController.java

@@ -0,0 +1,44 @@
+package com.fjhx.controller.water;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.water.WaterBatch;
+import com.fjhx.params.water.WaterBatchVo;
+import com.fjhx.service.water.WaterBatchService;
+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-09-20
+ */
+@RestController
+@RequestMapping("/waterBatch")
+public class WaterBatchController {
+
+    @Autowired
+    private WaterBatchService waterBatchService;
+
+    @PostMapping("/add")
+    public R add(@RequestBody WaterBatchVo waterBatchVo){
+        waterBatchService.add(waterBatchVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody WaterBatchVo waterBatchVo){
+        waterBatchService.delete(waterBatchVo);
+        return R.success();
+    }
+
+}
+

+ 56 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterBillController.java

@@ -0,0 +1,56 @@
+package com.fjhx.controller.water;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.water.WaterBill;
+import com.fjhx.params.water.WaterBillVo;
+import com.fjhx.service.water.WaterBillService;
+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-09-20
+ */
+@RestController
+@RequestMapping("/waterBill")
+public class WaterBillController {
+
+    @Autowired
+    private WaterBillService waterBillService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition){
+        Page<WaterBill> result = waterBillService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody WaterBillVo waterBillVo){
+        waterBillService.add(waterBillVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody WaterBillVo waterBillVo){
+        waterBillService.edit(waterBillVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody WaterBillVo waterBillVo){
+        waterBillService.delete(waterBillVo);
+        return R.success();
+    }
+
+}
+

+ 56 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/water/WaterController.java

@@ -0,0 +1,56 @@
+package com.fjhx.controller.water;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.water.Water;
+import com.fjhx.params.water.WaterVo;
+import com.fjhx.service.water.WaterService;
+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-09-20
+ */
+@RestController
+@RequestMapping("/water")
+public class WaterController {
+
+    @Autowired
+    private WaterService waterService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition){
+        Page<Water> result = waterService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody WaterVo waterVo){
+        waterService.add(waterVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody WaterVo waterVo){
+        waterService.edit(waterVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody WaterVo waterVo){
+        waterService.delete(waterVo);
+        return R.success();
+    }
+
+}
+

+ 10 - 6
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractMapper.xml

@@ -21,10 +21,12 @@
     </select>
 
     <sql id="select">
-        select cd.contract_code,
-               cd.apply_purchase_code,
+        select cd.contract_id,
+               cd.contract_code,
                cd.apply_purchase_id,
+               cd.apply_purchase_code,
                c.supplier_id,
+               now()                                          signTime,
                adddate(now(), interval m.safety_warn_day day) deliverTime,
                m.code                                         materialCode,
                m.name                                         materialName,
@@ -32,13 +34,15 @@
                m.unit                                         materialUnit,
                s.name                                         supplierName,
                st.quantity                                    stockQuantity,
-               cd.price                                       materialPrice,
                cd.quantity                                    buyQuantity,
-               cd.afloat_quantity,
-               cd.price,
-               c.amount_money,
+               cd.afloat_quantity                             afloatQuantity,
+               cd.price                                       materialPrice,
+               (cd.quantity * cd.price)                       amountMoney,
                c.flow_status,
                c.processed,
+               cd.shipment_quantity,
+               (cd.shipment_quantity * cd.price)              shipmentAmount,
+               c.status,
                c.shipment_status
         from contract c
                  left join contract_details cd on c.id = cd.contract_id

+ 16 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBatchMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.water;
+
+import com.fjhx.entity.water.WaterBatch;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 批次 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+public interface WaterBatchMapper extends BaseMapper<WaterBatch> {
+
+}

+ 5 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBatchMapper.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.mapper.water.WaterBatchMapper">
+
+</mapper>

+ 16 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBillMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.water;
+
+import com.fjhx.entity.water.WaterBill;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 出入库单 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+public interface WaterBillMapper extends BaseMapper<WaterBill> {
+
+}

+ 5 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterBillMapper.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.mapper.water.WaterBillMapper">
+
+</mapper>

+ 16 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.water;
+
+import com.fjhx.entity.water.Water;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 流水表 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+public interface WaterMapper extends BaseMapper<Water> {
+
+}

+ 5 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/water/WaterMapper.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.mapper.water.WaterMapper">
+
+</mapper>

+ 6 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractServiceImpl.java

@@ -9,9 +9,11 @@ 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.ConfigConstant;
+import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.apply.ApplyPurchaseDetails;
 import com.fjhx.entity.contract.Contract;
 import com.fjhx.entity.contract.ContractDetails;
+import com.fjhx.enums.ContractStatusEnum;
 import com.fjhx.enums.FlowStatusEnum;
 import com.fjhx.enums.MaterialTypeEnum;
 import com.fjhx.mapper.contract.ContractMapper;
@@ -85,7 +87,10 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
             contract.setHadPayAmount(BigDecimal.ZERO);
             contract.setTaxValue(commonConfigService.getValueToBigDecimal(ConfigConstant.TAX_RATE));
             contract.setInvoiceType(0);
+            contract.setStatus(ContractStatusEnum.TO_BE_CONFIRMED.getType());
             contract.setFlowStatus(FlowStatusEnum.WAIT.getType());
+            contract.setShipmentStatus(StatusConstant.NO);
+            contract.setProcessed(StatusConstant.NO);
             save(contract);
 
             Long contractId = contract.getId();
@@ -105,6 +110,7 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
             contractDetails.setPrice(BigDecimal.ZERO);
             contractDetails.setQuantity(quantity);
             contractDetails.setArrivalQuantity(BigDecimal.ZERO);
+            contractDetails.setShipmentQuantity(BigDecimal.ZERO);
             contractDetails.setAfloatQuantity(quantity);
             contractDetails.setAdjustQuantity(quantity);
             contractDetails.setBackQuantity(BigDecimal.ZERO);

+ 104 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/flow/ContractFlowService.java

@@ -0,0 +1,104 @@
+package com.fjhx.service.flow;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.entity.contract.Contract;
+import com.fjhx.entity.contract.ContractDetails;
+import com.fjhx.enums.ContractStatusEnum;
+import com.fjhx.enums.FlowStatusEnum;
+import com.fjhx.params.JumpVo;
+import com.fjhx.params.contract.ContractVo;
+import com.fjhx.service.contract.ContractDetailsService;
+import com.fjhx.service.contract.ContractService;
+import com.fjhx.utils.Assert;
+import com.fjhx.utils.ExampleAbstract;
+import com.fjhx.utils.FlowConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+
+/**
+ * 合同审批
+ */
+@Service
+public class ContractFlowService {
+
+    @Autowired
+    private ContractService contractService;
+
+    @Autowired
+    private ContractDetailsService contractDetailsService;
+
+
+    private final FlowConstructor flowConstructor = FlowConstructor.init(new ExampleAbstract() {
+
+        @Override
+        public String getCode() {
+            return "js_contract";
+        }
+
+        @Override
+        public void end() {
+            Contract contract = getCacheData(Contract.class);
+            contract.setStatus(ContractStatusEnum.HAVE_IN_HAND.getType());
+            contract.setFlowStatus(FlowStatusEnum.ADOPT.getType());
+            contractService.updateById(contract);
+        }
+
+        @Override
+        public void adopt() {
+            Contract contract = getCacheData(Contract.class);
+            contract.setFlowStatus(FlowStatusEnum.UNDER_WAY.getType());
+            contractService.updateById(contract);
+        }
+
+        @Override
+        public void reject() {
+            Contract contract = getCacheData(Contract.class);
+            contract.setFlowStatus(FlowStatusEnum.REJECT.getType());
+            contractService.updateById(contract);
+        }
+
+    });
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public void create(ContractVo contractVo) {
+
+        BigDecimal price = contractVo.getPrice();
+        BigDecimal quantity = contractVo.getQuantity();
+        Long id = contractVo.getId();
+
+        Assert.notEmpty(id, "合同id不能为空");
+        Assert.notEmpty(contractVo.getSupplierId(), "供应商id不能为空");
+        Assert.notEmpty(contractVo.getAccountDate(), "账期不能为空");
+        Assert.notEmpty(contractVo.getSignTime(), "签约日期不能为空");
+        Assert.notEmpty(contractVo.getDeliverTime(), "交付日期不能为空");
+        Assert.notEmpty(price, "单价不能为空");
+        Assert.notEmpty(quantity, "采购数量不能为空");
+
+        BigDecimal amountMoney = price.multiply(quantity);
+
+        contractVo.setAmountMoney(amountMoney);
+        contractVo.setAdjustAmount(amountMoney);
+        contractVo.setStatus(ContractStatusEnum.UNDER_APPROVAL.getType());
+        contractVo.setFlowStatus(FlowStatusEnum.UNDER_WAY.getType());
+
+        contractService.updateById(contractVo);
+
+        contractDetailsService.update(Wrappers.<ContractDetails>lambdaUpdate()
+                .eq(ContractDetails::getContractId, id)
+                .set(ContractDetails::getPrice, price));
+
+
+        flowConstructor.create(id, "合同审批", contractVo.getRemark(), contractVo);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void jump(JumpVo jumpVo) {
+        flowConstructor.jump(jumpVo);
+    }
+
+
+}

+ 28 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/WaterBatchService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.water;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.water.WaterBatch;
+import com.fjhx.params.water.WaterBatchVo;
+import com.fjhx.base.StorageBaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 批次 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+public interface WaterBatchService extends StorageBaseService<WaterBatch> {
+
+    Page<WaterBatch> getPage(Map<String, String> condition);
+
+    void add(WaterBatchVo waterBatchVo);
+
+    void edit(WaterBatchVo waterBatchVo);
+
+    void delete(WaterBatchVo waterBatchVo);
+
+}

+ 28 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/WaterBillService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.water;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.water.WaterBill;
+import com.fjhx.params.water.WaterBillVo;
+import com.fjhx.base.StorageBaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 出入库单 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+public interface WaterBillService extends StorageBaseService<WaterBill> {
+
+    Page<WaterBill> getPage(Map<String, String> condition);
+
+    void add(WaterBillVo waterBillVo);
+
+    void edit(WaterBillVo waterBillVo);
+
+    void delete(WaterBillVo waterBillVo);
+
+}

+ 28 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/WaterService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.water;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.water.Water;
+import com.fjhx.params.water.WaterVo;
+import com.fjhx.base.StorageBaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 流水表 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+public interface WaterService extends StorageBaseService<Water> {
+
+    Page<Water> getPage(Map<String, String> condition);
+
+    void add(WaterVo waterVo);
+
+    void edit(WaterVo waterVo);
+
+    void delete(WaterVo waterVo);
+
+}

+ 54 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterBatchServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.service.water.impl;
+
+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.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.water.WaterBatch;
+import com.fjhx.params.water.WaterBatchVo;
+import com.fjhx.mapper.water.WaterBatchMapper;
+import com.fjhx.service.water.WaterBatchService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 批次 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Service
+public class WaterBatchServiceImpl extends ServiceImpl<WaterBatchMapper, WaterBatch> implements WaterBatchService {
+
+    @Override
+    public Page<WaterBatch> getPage(Map<String, String> condition) {
+
+        QueryWrapper<WaterBatch> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<WaterBatch> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(WaterBatchVo waterBatchVo) {
+        save(waterBatchVo);
+    }
+
+    @Override
+    public void edit(WaterBatchVo waterBatchVo) {
+        updateById(waterBatchVo);
+    }
+
+    @Override
+    public void delete(WaterBatchVo waterBatchVo) {
+        removeById(waterBatchVo.getId());
+    }
+
+}

+ 54 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterBillServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.service.water.impl;
+
+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.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.water.WaterBill;
+import com.fjhx.params.water.WaterBillVo;
+import com.fjhx.mapper.water.WaterBillMapper;
+import com.fjhx.service.water.WaterBillService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 出入库单 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Service
+public class WaterBillServiceImpl extends ServiceImpl<WaterBillMapper, WaterBill> implements WaterBillService {
+
+    @Override
+    public Page<WaterBill> getPage(Map<String, String> condition) {
+
+        QueryWrapper<WaterBill> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<WaterBill> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(WaterBillVo waterBillVo) {
+        save(waterBillVo);
+    }
+
+    @Override
+    public void edit(WaterBillVo waterBillVo) {
+        updateById(waterBillVo);
+    }
+
+    @Override
+    public void delete(WaterBillVo waterBillVo) {
+        removeById(waterBillVo.getId());
+    }
+
+}

+ 54 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/water/impl/WaterServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.service.water.impl;
+
+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.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.water.Water;
+import com.fjhx.params.water.WaterVo;
+import com.fjhx.mapper.water.WaterMapper;
+import com.fjhx.service.water.WaterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 流水表 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-09-20
+ */
+@Service
+public class WaterServiceImpl extends ServiceImpl<WaterMapper, Water> implements WaterService {
+
+    @Override
+    public Page<Water> getPage(Map<String, String> condition) {
+
+        QueryWrapper<Water> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<Water> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(WaterVo waterVo) {
+        save(waterVo);
+    }
+
+    @Override
+    public void edit(WaterVo waterVo) {
+        updateById(waterVo);
+    }
+
+    @Override
+    public void delete(WaterVo waterVo) {
+        removeById(waterVo.getId());
+    }
+
+}