huanglizhi 1 anno fa
parent
commit
a223ed1c93
22 ha cambiato i file con 257 aggiunte e 521 eliminazioni
  1. 5 8
      module-erp/src/main/java/com/hys/app/controller/erp/warehouse/StockDamageReportManagerController.java
  2. 0 3
      module-erp/src/main/java/com/hys/app/controller/erp/warehouse/StockInventoryManagerController.java
  3. 13 198
      module-erp/src/main/java/com/hys/app/model/erp/dos/StockDamageReport.java
  4. 12 6
      module-erp/src/main/java/com/hys/app/model/erp/dos/StockInventory.java
  5. 2 1
      module-erp/src/main/java/com/hys/app/model/erp/dos/WarehouseEntryDO.java
  6. 7 6
      module-erp/src/main/java/com/hys/app/model/erp/dto/StockDamageReportDTO.java
  7. 11 69
      module-erp/src/main/java/com/hys/app/model/erp/dto/StockDamageReportParam.java
  8. 3 0
      module-erp/src/main/java/com/hys/app/model/erp/dto/StockDamageReportProductDTO.java
  9. 9 2
      module-erp/src/main/java/com/hys/app/model/erp/dto/StockInventoryParam.java
  10. 2 1
      module-erp/src/main/java/com/hys/app/model/erp/dto/WarehouseEntryDTO.java
  11. 25 0
      module-erp/src/main/java/com/hys/app/model/erp/enums/DamageinventoryEnum.java
  12. 25 0
      module-erp/src/main/java/com/hys/app/model/erp/enums/WarehouseEntyrTypeEnum.java
  13. 2 65
      module-erp/src/main/java/com/hys/app/model/erp/vo/StockDamageReportAllowable.java
  14. 38 19
      module-erp/src/main/java/com/hys/app/model/erp/vo/StockDamageReportVO.java
  15. 2 66
      module-erp/src/main/java/com/hys/app/model/erp/vo/StockInventoryAllowable.java
  16. 4 0
      module-erp/src/main/java/com/hys/app/model/erp/vo/StockInventoryVO.java
  17. 3 0
      module-erp/src/main/java/com/hys/app/service/erp/StockDamageReportManager.java
  18. 4 4
      module-erp/src/main/java/com/hys/app/service/erp/impl/OrderManagerImpl.java
  19. 62 55
      module-erp/src/main/java/com/hys/app/service/erp/impl/StockDamageReportManagerImpl.java
  20. 23 13
      module-erp/src/main/java/com/hys/app/service/erp/impl/StockInventoryManagerImpl.java
  21. 4 4
      module-erp/src/main/java/com/hys/app/service/erp/impl/WarehouseEntryManagerImpl.java
  22. 1 1
      server/src/main/resources/application.yml

+ 5 - 8
module-erp/src/main/java/com/hys/app/controller/erp/warehouse/StockDamageReportManagerController.java

@@ -78,14 +78,11 @@ public class StockDamageReportManagerController {
 
 
 
 
 
 
-    @ApiOperation(value = "批量提交审核库存报损单")
-    @PostMapping("/submit/{ids}")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "ids", value = "要提交审核的库存报损单ID集合", required = true, dataType = "int", paramType = "path", allowMultiple = true)
-    })
-    @Log(client = LogClient.admin, detail = "提交审核ID为[${ids}]的库存报损单")
-    public void submit(@PathVariable List<Long> ids) {
-        this.stockDamageReportManager.submit(ids);
+    @ApiOperation(value = "处理报损单")
+    @PostMapping("/syncStock/{id}")
+    @Log(client = LogClient.admin, detail = "同步ID为[${ids}]的库存报损单")
+    public void syncStock(@PathVariable Long id) {
+        this.stockDamageReportManager.syncStock(id);
     }
     }
 
 
     @ApiOperation(value = "批量撤销提交审核的库存报损单")
     @ApiOperation(value = "批量撤销提交审核的库存报损单")

+ 0 - 3
module-erp/src/main/java/com/hys/app/controller/erp/warehouse/StockInventoryManagerController.java

@@ -58,9 +58,6 @@ public class StockInventoryManagerController {
          stockInventoryManager.syncStock(id);
          stockInventoryManager.syncStock(id);
     }
     }
 
 
-
-
-
     @ApiOperation(value = "修改库存盘点单")
     @ApiOperation(value = "修改库存盘点单")
     @PostMapping("/{id}")
     @PostMapping("/{id}")
     @Log(client = LogClient.admin, detail = "修改id为[${id}]的库存盘点单")
     @Log(client = LogClient.admin, detail = "修改id为[${id}]的库存盘点单")

+ 13 - 198
module-erp/src/main/java/com/hys/app/model/erp/dos/StockDamageReport.java

@@ -4,12 +4,18 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.hys.app.model.erp.enums.DamageinventoryEnum;
 import com.hys.app.model.erp.enums.StockDamageReportTypeEnum;
 import com.hys.app.model.erp.enums.StockDamageReportTypeEnum;
 import com.hys.app.model.erp.vo.StockDamageReportAllowable;
 import com.hys.app.model.erp.vo.StockDamageReportAllowable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.Objects;
 import java.util.Objects;
 
 
 /**
 /**
@@ -20,6 +26,7 @@ import java.util.Objects;
  */
  */
 @TableName("es_stock_damage_report")
 @TableName("es_stock_damage_report")
 @ApiModel
 @ApiModel
+@Data
 public class StockDamageReport implements Serializable {
 public class StockDamageReport implements Serializable {
 
 
     private static final long serialVersionUID = -2812668888351646009L;
     private static final long serialVersionUID = -2812668888351646009L;
@@ -65,11 +72,11 @@ public class StockDamageReport implements Serializable {
      */
      */
     @ApiModelProperty(name = "creator", value = "制单人")
     @ApiModelProperty(name = "creator", value = "制单人")
     private String creator;
     private String creator;
-    /**
-     * 报损时间
-     */
-    @ApiModelProperty(name = "report_time", value = "报损时间")
-    private Long reportTime;
+    @ApiModelProperty(name = "report_time", value = "报损时间", required = true)
+    @NotNull(message = "报损时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reportTime;
     /**
     /**
      * 报损类型(键)
      * 报损类型(键)
      */
      */
@@ -95,7 +102,7 @@ public class StockDamageReport implements Serializable {
      * @see com.hys.app.model.erp.enums.StockDamageReportStatusEnum
      * @see com.hys.app.model.erp.enums.StockDamageReportStatusEnum
      */
      */
     @ApiModelProperty(name = "status", value = "状态")
     @ApiModelProperty(name = "status", value = "状态")
-    private String status;
+    private DamageinventoryEnum status = DamageinventoryEnum.NOT_HANDLE;
     /**
     /**
      * 审核驳回原因
      * 审核驳回原因
      */
      */
@@ -112,196 +119,4 @@ public class StockDamageReport implements Serializable {
     @TableField(exist = false)
     @TableField(exist = false)
     @ApiModelProperty(name = "allowable", value = "库存报损单允许进行的操作")
     @ApiModelProperty(name = "allowable", value = "库存报损单允许进行的操作")
     private StockDamageReportAllowable allowable;
     private StockDamageReportAllowable allowable;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getSn() {
-        return sn;
-    }
-
-    public void setSn(String sn) {
-        this.sn = sn;
-    }
-
-    public Long getDeptId() {
-        return deptId;
-    }
-
-    public void setDeptId(Long deptId) {
-        this.deptId = deptId;
-    }
-
-    public String getDeptName() {
-        return deptName;
-    }
-
-    public void setDeptName(String deptName) {
-        this.deptName = deptName;
-    }
-
-    public Long getWarehouseId() {
-        return warehouseId;
-    }
-
-    public void setWarehouseId(Long warehouseId) {
-        this.warehouseId = warehouseId;
-    }
-
-    public String getWarehouseName() {
-        return warehouseName;
-    }
-
-    public void setWarehouseName(String warehouseName) {
-        this.warehouseName = warehouseName;
-    }
-
-    public Long getCreatorId() {
-        return creatorId;
-    }
-
-    public void setCreatorId(Long creatorId) {
-        this.creatorId = creatorId;
-    }
-
-    public String getCreator() {
-        return creator;
-    }
-
-    public void setCreator(String creator) {
-        this.creator = creator;
-    }
-
-    public Long getReportTime() {
-        return reportTime;
-    }
-
-    public void setReportTime(Long reportTime) {
-        this.reportTime = reportTime;
-    }
-
-    public String getDamageTypeKey() {
-        return damageTypeKey;
-    }
-
-    public void setDamageTypeKey(String damageTypeKey) {
-        this.damageTypeKey = damageTypeKey;
-    }
-
-    public String getDamageTypeValue() {
-        return damageTypeValue;
-    }
-
-    public void setDamageTypeValue(String damageTypeValue) {
-        this.damageTypeValue = damageTypeValue;
-    }
-
-    public String getReportDesc() {
-        return reportDesc;
-    }
-
-    public void setReportDesc(String reportDesc) {
-        this.reportDesc = reportDesc;
-    }
-
-    public Long getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Long createTime) {
-        this.createTime = createTime;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getRejectReason() {
-        return rejectReason;
-    }
-
-    public void setRejectReason(String rejectReason) {
-        this.rejectReason = rejectReason;
-    }
-
-    public Long getAuditTime() {
-        return auditTime;
-    }
-
-    public void setAuditTime(Long auditTime) {
-        this.auditTime = auditTime;
-    }
-
-    public StockDamageReportAllowable getAllowable() {
-        return allowable;
-    }
-
-    public void setAllowable(StockDamageReportAllowable allowable) {
-        this.allowable = allowable;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-        StockDamageReport that = (StockDamageReport) o;
-        return Objects.equals(id, that.id) &&
-                Objects.equals(sn, that.sn) &&
-                Objects.equals(deptId, that.deptId) &&
-                Objects.equals(deptName, that.deptName) &&
-                Objects.equals(warehouseId, that.warehouseId) &&
-                Objects.equals(warehouseName, that.warehouseName) &&
-                Objects.equals(creatorId, that.creatorId) &&
-                Objects.equals(creator, that.creator) &&
-                Objects.equals(reportTime, that.reportTime) &&
-                Objects.equals(damageTypeKey, that.damageTypeKey) &&
-                Objects.equals(damageTypeValue, that.damageTypeValue) &&
-                Objects.equals(reportDesc, that.reportDesc) &&
-                Objects.equals(createTime, that.createTime) &&
-                Objects.equals(status, that.status) &&
-                Objects.equals(rejectReason, that.rejectReason) &&
-                Objects.equals(auditTime, that.auditTime) &&
-                Objects.equals(allowable, that.allowable);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(id, sn, deptId, deptName, warehouseId, warehouseName, creatorId, creator, reportTime, damageTypeKey, damageTypeValue, reportDesc, createTime, status, rejectReason, auditTime, allowable);
-    }
-
-    @Override
-    public String toString() {
-        return "StockDamageReport{" +
-                "id=" + id +
-                ", sn='" + sn + '\'' +
-                ", deptId=" + deptId +
-                ", deptName='" + deptName + '\'' +
-                ", warehouseId=" + warehouseId +
-                ", warehouseName='" + warehouseName + '\'' +
-                ", creatorId=" + creatorId +
-                ", creator='" + creator + '\'' +
-                ", reportTime=" + reportTime +
-                ", damageTypeKey='" + damageTypeKey + '\'' +
-                ", damageTypeValue='" + damageTypeValue + '\'' +
-                ", reportDesc='" + reportDesc + '\'' +
-                ", createTime=" + createTime +
-                ", status='" + status + '\'' +
-                ", rejectReason='" + rejectReason + '\'' +
-                ", auditTime=" + auditTime +
-                ", allowable=" + allowable +
-                '}';
-    }
 }
 }

+ 12 - 6
module-erp/src/main/java/com/hys/app/model/erp/dos/StockInventory.java

@@ -4,12 +4,17 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.hys.app.model.erp.enums.DamageinventoryEnum;
 import com.hys.app.model.erp.vo.StockInventoryAllowable;
 import com.hys.app.model.erp.vo.StockInventoryAllowable;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.Objects;
 import java.util.Objects;
 
 
 /**
 /**
@@ -76,11 +81,12 @@ public class StockInventory implements Serializable {
      */
      */
     @ApiModelProperty(name = "creator", value = "制单人")
     @ApiModelProperty(name = "creator", value = "制单人")
     private String creator;
     private String creator;
-    /**
-     * 盘点时间
-     */
-    @ApiModelProperty(name = "inventory_time", value = "盘点时间")
-    private Long inventoryTime;
+
+    @ApiModelProperty(name = "inventory_time", value = "盘点时间", required = true)
+    @NotNull(message = "盘点时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date inventoryTime;
     /**
     /**
      * 盘点说明
      * 盘点说明
      */
      */
@@ -97,7 +103,7 @@ public class StockInventory implements Serializable {
      * @see com.hys.app.model.erp.enums.StockInventoryStatusEnum
      * @see com.hys.app.model.erp.enums.StockInventoryStatusEnum
      */
      */
     @ApiModelProperty(name = "status", value = "状态")
     @ApiModelProperty(name = "status", value = "状态")
-    private String status;
+    private DamageinventoryEnum status = DamageinventoryEnum.NOT_HANDLE;
     /**
     /**
      * 审核驳回原因
      * 审核驳回原因
      */
      */

+ 2 - 1
module-erp/src/main/java/com/hys/app/model/erp/dos/WarehouseEntryDO.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.hys.app.framework.database.mybatisplus.base.BaseDO;
 import com.hys.app.framework.database.mybatisplus.base.BaseDO;
 import com.hys.app.model.erp.enums.WarehouseEntryStatusEnum;
 import com.hys.app.model.erp.enums.WarehouseEntryStatusEnum;
+import com.hys.app.model.erp.enums.WarehouseEntyrTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
@@ -45,7 +46,7 @@ public class WarehouseEntryDO extends BaseDO {
 
 
 
 
     @ApiModelProperty(name = "type", value = "入库类型")
     @ApiModelProperty(name = "type", value = "入库类型")
-    private String type;
+    private WarehouseEntyrTypeEnum type;
 
 
 
 
 
 

+ 7 - 6
module-erp/src/main/java/com/hys/app/model/erp/dto/StockDamageReportDTO.java

@@ -1,12 +1,15 @@
 package com.hys.app.model.erp.dto;
 package com.hys.app.model.erp.dto;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -20,12 +23,10 @@ public class StockDamageReportDTO implements Serializable {
 
 
     private static final long serialVersionUID = -2146175467517339422L;
     private static final long serialVersionUID = -2146175467517339422L;
 
 
-    /**
-     * 报损时间
-     */
-    @ApiModelProperty(name = "report_time", value = "报损时间", required = true)
-    @NotNull(message = "报损时间不能为空")
-    private Long reportTime;
+    @ApiModelProperty(name = "start_time", value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
 
 
     /**
     /**
      * 仓库ID
      * 仓库ID

+ 11 - 69
module-erp/src/main/java/com/hys/app/model/erp/dto/StockDamageReportParam.java

@@ -1,10 +1,14 @@
 package com.hys.app.model.erp.dto;
 package com.hys.app.model.erp.dto;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.hys.app.framework.database.BaseQueryParam;
 import com.hys.app.framework.database.BaseQueryParam;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 
 
 /**
 /**
  * 库存报损单查询参数实体
  * 库存报损单查询参数实体
@@ -13,85 +17,23 @@ import java.io.Serializable;
  * 2023-12-05
  * 2023-12-05
  */
  */
 @ApiModel
 @ApiModel
+@Data
 public class StockDamageReportParam extends BaseQueryParam implements Serializable {
 public class StockDamageReportParam extends BaseQueryParam implements Serializable {
 
 
     private static final long serialVersionUID = 8262063047050222023L;
     private static final long serialVersionUID = 8262063047050222023L;
 
 
-    @ApiModelProperty(name = "sn", value = "库存报损单编号")
-    private String sn;
-
-    @ApiModelProperty(name = "dept_id", value = "部门ID")
-    private Long deptId;
-
     @ApiModelProperty(name = "start_time", value = "开始时间")
     @ApiModelProperty(name = "start_time", value = "开始时间")
-    private Long startTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
 
 
     @ApiModelProperty(name = "end_time", value = "结束时间")
     @ApiModelProperty(name = "end_time", value = "结束时间")
-    private Long endTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
 
 
     @ApiModelProperty(name = "warehouse_id", value = "仓库ID")
     @ApiModelProperty(name = "warehouse_id", value = "仓库ID")
     private Long warehouseId;
     private Long warehouseId;
 
 
-    @ApiModelProperty(name = "status", value = "状态", allowableValues = "NEW,WAIT,PASS,REJECT")
-    private String status;
-
-    public String getSn() {
-        return sn;
-    }
-
-    public void setSn(String sn) {
-        this.sn = sn;
-    }
-
-    public Long getDeptId() {
-        return deptId;
-    }
-
-    public void setDeptId(Long deptId) {
-        this.deptId = deptId;
-    }
-
-    public Long getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Long startTime) {
-        this.startTime = startTime;
-    }
-
-    public Long getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Long endTime) {
-        this.endTime = endTime;
-    }
-
-    public Long getWarehouseId() {
-        return warehouseId;
-    }
-
-    public void setWarehouseId(Long warehouseId) {
-        this.warehouseId = warehouseId;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
 
 
-    @Override
-    public String toString() {
-        return "StockDamageReportParam{" +
-                "sn='" + sn + '\'' +
-                ", deptId=" + deptId +
-                ", startTime=" + startTime +
-                ", endTime=" + endTime +
-                ", warehouseId=" + warehouseId +
-                ", status='" + status + '\'' +
-                '}';
-    }
 }
 }

+ 3 - 0
module-erp/src/main/java/com/hys/app/model/erp/dto/StockDamageReportProductDTO.java

@@ -1,5 +1,6 @@
 package com.hys.app.model.erp.dto;
 package com.hys.app.model.erp.dto;
 
 
+import com.hys.app.model.erp.vo.GoodsVO;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -24,4 +25,6 @@ public class StockDamageReportProductDTO implements Serializable {
     @ApiModelProperty(name = "report_num", value = "报损数量", required = true)
     @ApiModelProperty(name = "report_num", value = "报损数量", required = true)
     @NotNull(message = "报损数量不能为空")
     @NotNull(message = "报损数量不能为空")
     private Integer reportNum;
     private Integer reportNum;
+
+    private GoodsVO goodsVO;
 }
 }

+ 9 - 2
module-erp/src/main/java/com/hys/app/model/erp/dto/StockInventoryParam.java

@@ -1,12 +1,15 @@
 package com.hys.app.model.erp.dto;
 package com.hys.app.model.erp.dto;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.hys.app.framework.database.BaseQueryParam;
 import com.hys.app.framework.database.BaseQueryParam;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 
 
 /**
 /**
  * 库存盘点单查询参数实体
  * 库存盘点单查询参数实体
@@ -20,10 +23,14 @@ public class StockInventoryParam extends BaseQueryParam implements Serializable
     private static final long serialVersionUID = 8262063047050222023L;
     private static final long serialVersionUID = 8262063047050222023L;
 
 
     @ApiModelProperty(name = "start_time", value = "开始时间")
     @ApiModelProperty(name = "start_time", value = "开始时间")
-    private Long startTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
 
 
     @ApiModelProperty(name = "end_time", value = "结束时间")
     @ApiModelProperty(name = "end_time", value = "结束时间")
-    private Long endTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
 
 
     @ApiModelProperty(name = "warehouse_id", value = "仓库ID")
     @ApiModelProperty(name = "warehouse_id", value = "仓库ID")
     private Long warehouseId;
     private Long warehouseId;

+ 2 - 1
module-erp/src/main/java/com/hys/app/model/erp/dto/WarehouseEntryDTO.java

@@ -5,6 +5,7 @@ import com.hys.app.model.erp.dos.ProcurementContractProduct;
 import com.hys.app.model.erp.dos.ProcurementPlan;
 import com.hys.app.model.erp.dos.ProcurementPlan;
 import com.hys.app.model.erp.dos.SupplierDO;
 import com.hys.app.model.erp.dos.SupplierDO;
 import com.hys.app.model.erp.dos.WarehouseDO;
 import com.hys.app.model.erp.dos.WarehouseDO;
+import com.hys.app.model.erp.enums.WarehouseEntyrTypeEnum;
 import com.hys.app.model.erp.vo.AdminUserVO1;
 import com.hys.app.model.erp.vo.AdminUserVO1;
 import com.hys.app.model.system.dos.AdminUser;
 import com.hys.app.model.system.dos.AdminUser;
 import com.hys.app.model.system.dos.DeptDO;
 import com.hys.app.model.system.dos.DeptDO;
@@ -32,7 +33,7 @@ public class WarehouseEntryDTO {
     private Long id;
     private Long id;
 
 
     @ApiModelProperty(name = "type", value = "入库类型")
     @ApiModelProperty(name = "type", value = "入库类型")
-    private String type;
+    private WarehouseEntyrTypeEnum type;
 
 
 
 
     @ApiModelProperty(name = "memo", value = "订单备注")
     @ApiModelProperty(name = "memo", value = "订单备注")

+ 25 - 0
module-erp/src/main/java/com/hys/app/model/erp/enums/DamageinventoryEnum.java

@@ -0,0 +1,25 @@
+package com.hys.app.model.erp.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 入库单状态枚举
+ *
+ * @author 张崧
+ * @since 2023-12-05
+ */
+@Getter
+public enum DamageinventoryEnum {
+
+    NOT_HANDLE("NOT_HANDLE", "未处理"),
+    HAS_HANDLE("HAS_HANDLE", "已处理");
+
+    private final String value;
+    private final String label;
+
+    DamageinventoryEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+}

+ 25 - 0
module-erp/src/main/java/com/hys/app/model/erp/enums/WarehouseEntyrTypeEnum.java

@@ -0,0 +1,25 @@
+package com.hys.app.model.erp.enums;
+
+import lombok.Getter;
+
+/**
+ * 入库单状态枚举
+ *
+ * @author 张崧
+ * @since 2023-12-05
+ */
+@Getter
+public enum WarehouseEntyrTypeEnum {
+
+    SALE_ENTRY("SALE_ENTRY", "采购入库"),
+    HAIL_ENTRY("HAIL_ENTRY", "租赁返回"),
+    OTHER_ENTRY("OTHER_ENTRY", "其它入库");
+
+    private final String value;
+    private final String label;
+
+    WarehouseEntyrTypeEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+}

+ 2 - 65
module-erp/src/main/java/com/hys/app/model/erp/vo/StockDamageReportAllowable.java

@@ -3,6 +3,7 @@ package com.hys.app.model.erp.vo;
 import com.hys.app.model.erp.dos.StockDamageReport;
 import com.hys.app.model.erp.dos.StockDamageReport;
 import com.hys.app.model.erp.enums.StockDamageReportStatusEnum;
 import com.hys.app.model.erp.enums.StockDamageReportStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 
 
@@ -12,6 +13,7 @@ import java.io.Serializable;
  * @author dmy
  * @author dmy
  * 2023-12-06
  * 2023-12-06
  */
  */
+@Data
 public class StockDamageReportAllowable implements Serializable {
 public class StockDamageReportAllowable implements Serializable {
 
 
     private static final long serialVersionUID = 1587843350210854370L;
     private static final long serialVersionUID = 1587843350210854370L;
@@ -31,69 +33,4 @@ public class StockDamageReportAllowable implements Serializable {
     @ApiModelProperty(name = "allow_cancel", value = "是否允许撤销")
     @ApiModelProperty(name = "allow_cancel", value = "是否允许撤销")
     private Boolean allowCancel;
     private Boolean allowCancel;
 
 
-    public Boolean getAllowEdit() {
-        return allowEdit;
-    }
-
-    public void setAllowEdit(Boolean allowEdit) {
-        this.allowEdit = allowEdit;
-    }
-
-    public Boolean getAllowDelete() {
-        return allowDelete;
-    }
-
-    public void setAllowDelete(Boolean allowDelete) {
-        this.allowDelete = allowDelete;
-    }
-
-    public Boolean getAllowSubmit() {
-        return allowSubmit;
-    }
-
-    public void setAllowSubmit(Boolean allowSubmit) {
-        this.allowSubmit = allowSubmit;
-    }
-
-    public Boolean getAllowAudit() {
-        return allowAudit;
-    }
-
-    public void setAllowAudit(Boolean allowAudit) {
-        this.allowAudit = allowAudit;
-    }
-
-    public Boolean getAllowCancel() {
-        return allowCancel;
-    }
-
-    public void setAllowCancel(Boolean allowCancel) {
-        this.allowCancel = allowCancel;
-    }
-
-    @Override
-    public String toString() {
-        return "StockDamageReportAllowable{" +
-                "allowEdit=" + allowEdit +
-                ", allowDelete=" + allowDelete +
-                ", allowSubmit=" + allowSubmit +
-                ", allowAudit=" + allowAudit +
-                ", allowCancel=" + allowCancel +
-                '}';
-    }
-
-    public StockDamageReportAllowable(StockDamageReport stockDamageReport) {
-        //获取库存报损单状态
-        String status = stockDamageReport.getStatus();
-        //只有状态为未提交(待审核)或审核驳回的库存报损单才可编辑
-        this.setAllowEdit(StockDamageReportStatusEnum.NEW.name().equals(status) || StockDamageReportStatusEnum.REJECT.name().equals(status));
-        //只有状态为未提交(待审核)或审核驳回的库存报损单才可删除
-        this.setAllowDelete(StockDamageReportStatusEnum.NEW.name().equals(status) || StockDamageReportStatusEnum.REJECT.name().equals(status));
-        //只有状态为未提交(待审核)的库存报损单才可提交审核
-        this.setAllowSubmit(StockDamageReportStatusEnum.NEW.name().equals(status));
-        //只有状态为待审核的库存报损单才可进行审核
-        this.setAllowAudit(StockDamageReportStatusEnum.WAIT.name().equals(status));
-        //只有状态为已提交(待审核)的库存报损单才可进行撤销操作
-        this.setAllowCancel(StockDamageReportStatusEnum.WAIT.name().equals(status));
-    }
 }
 }

+ 38 - 19
module-erp/src/main/java/com/hys/app/model/erp/vo/StockDamageReportVO.java

@@ -1,11 +1,20 @@
 package com.hys.app.model.erp.vo;
 package com.hys.app.model.erp.vo;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.hys.app.model.erp.dos.StockDamageReport;
 import com.hys.app.model.erp.dos.StockDamageReport;
 import com.hys.app.model.erp.dos.StockDamageReportProduct;
 import com.hys.app.model.erp.dos.StockDamageReportProduct;
+import com.hys.app.model.erp.dto.StockDamageReportProductDTO;
+import com.hys.app.model.erp.enums.DamageinventoryEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -15,28 +24,38 @@ import java.util.List;
  * 2023-12-05
  * 2023-12-05
  */
  */
 @ApiModel
 @ApiModel
-public class StockDamageReportVO extends StockDamageReport implements Serializable {
+@Data
+public class StockDamageReportVO implements Serializable {
 
 
     private static final long serialVersionUID = -5851214268014240143L;
     private static final long serialVersionUID = -5851214268014240143L;
 
 
+    private Long id;
+
+    /**
+     * 报损时间
+     */
+    @ApiModelProperty(name = "report_time", value = "报损时间", required = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reportTime;
+
+    /**
+     * 仓库ID
+     */
+    @ApiModelProperty(name = "warehouse_id", value = "仓库ID", required = true)
+    private Long warehouseId;
+
     /**
     /**
-     * 库存报损单商品信息集合
+     * 报损说明
      */
      */
-    @ApiModelProperty(name = "product_list", value = "库存报损单商品信息集合")
-    private List<StockDamageReportProduct> productList;
-
-    public List<StockDamageReportProduct> getProductList() {
-        return productList;
-    }
-
-    public void setProductList(List<StockDamageReportProduct> productList) {
-        this.productList = productList;
-    }
-
-    @Override
-    public String toString() {
-        return "StockDamageReportVO{" +
-                "productList=" + productList +
-                '}';
-    }
+    @ApiModelProperty(name = "report_desc", value = "报损说明", required = true)
+    private String reportDesc;
+    /**
+     * 库存报损单产品集合
+     */
+    @ApiModelProperty(name = "product_list", value = "库存报损单产品集合", required = true)
+    private List<StockDamageReportProductDTO> productList;
+
+    @ApiModelProperty(name = "status", value = "状态")
+    private DamageinventoryEnum status = DamageinventoryEnum.NOT_HANDLE;
 }
 }

+ 2 - 66
module-erp/src/main/java/com/hys/app/model/erp/vo/StockInventoryAllowable.java

@@ -3,6 +3,7 @@ package com.hys.app.model.erp.vo;
 import com.hys.app.model.erp.dos.StockInventory;
 import com.hys.app.model.erp.dos.StockInventory;
 import com.hys.app.model.erp.enums.StockInventoryStatusEnum;
 import com.hys.app.model.erp.enums.StockInventoryStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 
 
@@ -12,6 +13,7 @@ import java.io.Serializable;
  * @author dmy
  * @author dmy
  * 2023-12-06
  * 2023-12-06
  */
  */
+@Data
 public class StockInventoryAllowable implements Serializable {
 public class StockInventoryAllowable implements Serializable {
 
 
     private static final long serialVersionUID = 3969479363772175894L;
     private static final long serialVersionUID = 3969479363772175894L;
@@ -30,70 +32,4 @@ public class StockInventoryAllowable implements Serializable {
 
 
     @ApiModelProperty(name = "allow_cancel", value = "是否允许撤销")
     @ApiModelProperty(name = "allow_cancel", value = "是否允许撤销")
     private Boolean allowCancel;
     private Boolean allowCancel;
-
-    public Boolean getAllowEdit() {
-        return allowEdit;
-    }
-
-    public void setAllowEdit(Boolean allowEdit) {
-        this.allowEdit = allowEdit;
-    }
-
-    public Boolean getAllowDelete() {
-        return allowDelete;
-    }
-
-    public void setAllowDelete(Boolean allowDelete) {
-        this.allowDelete = allowDelete;
-    }
-
-    public Boolean getAllowSubmit() {
-        return allowSubmit;
-    }
-
-    public void setAllowSubmit(Boolean allowSubmit) {
-        this.allowSubmit = allowSubmit;
-    }
-
-    public Boolean getAllowAudit() {
-        return allowAudit;
-    }
-
-    public void setAllowAudit(Boolean allowAudit) {
-        this.allowAudit = allowAudit;
-    }
-
-    public Boolean getAllowCancel() {
-        return allowCancel;
-    }
-
-    public void setAllowCancel(Boolean allowCancel) {
-        this.allowCancel = allowCancel;
-    }
-
-    @Override
-    public String toString() {
-        return "StockDamageReportAllowable{" +
-                "allowEdit=" + allowEdit +
-                ", allowDelete=" + allowDelete +
-                ", allowSubmit=" + allowSubmit +
-                ", allowAudit=" + allowAudit +
-                ", allowCancel=" + allowCancel +
-                '}';
-    }
-
-    public StockInventoryAllowable(StockInventory stockInventory) {
-        //获取库存盘点单状态
-        String status = stockInventory.getStatus();
-        //只有状态为未提交(待审核)或审核驳回的库存盘点单才可编辑
-        this.setAllowEdit(StockInventoryStatusEnum.NEW.name().equals(status) || StockInventoryStatusEnum.REJECT.name().equals(status));
-        //只有状态为未提交(待审核)或审核驳回的库存盘点单才可删除
-        this.setAllowDelete(StockInventoryStatusEnum.NEW.name().equals(status) || StockInventoryStatusEnum.REJECT.name().equals(status));
-        //只有状态为未提交(待审核)的库存盘点单才可提交审核
-        this.setAllowSubmit(StockInventoryStatusEnum.NEW.name().equals(status));
-        //只有状态为待审核的库存盘点单才可进行审核
-        this.setAllowAudit(StockInventoryStatusEnum.WAIT.name().equals(status));
-        //只有状态为已提交(待审核)的库存盘点单才可进行撤销操作
-        this.setAllowCancel(StockInventoryStatusEnum.WAIT.name().equals(status));
-    }
 }
 }

+ 4 - 0
module-erp/src/main/java/com/hys/app/model/erp/vo/StockInventoryVO.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.hys.app.model.erp.dos.StockInventory;
 import com.hys.app.model.erp.dos.StockInventory;
 import com.hys.app.model.erp.dos.StockInventoryProduct;
 import com.hys.app.model.erp.dos.StockInventoryProduct;
 import com.hys.app.model.erp.dto.StockInventoryProductDTO;
 import com.hys.app.model.erp.dto.StockInventoryProductDTO;
+import com.hys.app.model.erp.enums.DamageinventoryEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
@@ -69,4 +70,7 @@ public class StockInventoryVO implements Serializable {
     @ApiModelProperty(name = "inventory_type", value = "盘点类型", required = true)
     @ApiModelProperty(name = "inventory_type", value = "盘点类型", required = true)
     private String inventoryType;
     private String inventoryType;
 
 
+    @ApiModelProperty(name = "status", value = "状态")
+    private DamageinventoryEnum status = DamageinventoryEnum.NOT_HANDLE;
+
 }
 }

+ 3 - 0
module-erp/src/main/java/com/hys/app/service/erp/StockDamageReportManager.java

@@ -93,4 +93,7 @@ public interface StockDamageReportManager {
      * @param params 查询参数
      * @param params 查询参数
      */
      */
     void export(HttpServletResponse response, StockDamageReportStatisticsParam params);
     void export(HttpServletResponse response, StockDamageReportStatisticsParam params);
+
+    void syncStock(Long id);
+
 }
 }

+ 4 - 4
module-erp/src/main/java/com/hys/app/service/erp/impl/OrderManagerImpl.java

@@ -91,7 +91,9 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
             if (dto.getNum() > stockDO.getUsableStock()) {
             if (dto.getNum() > stockDO.getUsableStock()) {
                 throw new ServiceException(dto.getGoodsId() + "的可用库存数量不足");
                 throw new ServiceException(dto.getGoodsId() + "的可用库存数量不足");
             }
             }
+            stockDO.setUsableStock(stockDO.getUsableStock()-dto.getNum());
         }
         }
+        productStockManager.updateBatchById(stockDOList);
     }
     }
 
 
     @Override
     @Override
@@ -208,8 +210,6 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         OrderDO aDo = getById(orderId);
         OrderDO aDo = getById(orderId);
         //根据订单查找到这个订单的所有货物扣减库存
         //根据订单查找到这个订单的所有货物扣减库存
         List<OrderItemDO> goosList = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderId));
         List<OrderItemDO> goosList = orderItemManager.list(new LambdaQueryWrapper<OrderItemDO>().eq(OrderItemDO::getOrderId, orderId));
-        //校验库存
-        checkStock(aDo.getWarehouseId(), goosList);
         List<Long> goodsId = goosList.stream().map(OrderItemDO::getGoodsId).collect(Collectors.toList());
         List<Long> goodsId = goosList.stream().map(OrderItemDO::getGoodsId).collect(Collectors.toList());
         //查找这些商品在指定仓库的库存,减去对应数量
         //查找这些商品在指定仓库的库存,减去对应数量
         List<ProductStockDO> stockDOList = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
         List<ProductStockDO> stockDOList = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
@@ -219,12 +219,12 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
             if (num < stockDO.getUsableStock()) {
             if (num < stockDO.getUsableStock()) {
                 if (OrderTypeEnum.TO_B.equals(aDo.getType())) {
                 if (OrderTypeEnum.TO_B.equals(aDo.getType())) {
                     //扣减可用库存
                     //扣减可用库存
-                    stockDO.setUsableStock(stockDO.getUsableStock() - num);
+//                    stockDO.setUsableStock(stockDO.getUsableStock() - num);
                     //扣减实际库存
                     //扣减实际库存
                     stockDO.setActualStock(stockDO.getActualStock() - num);
                     stockDO.setActualStock(stockDO.getActualStock() - num);
                 } else if (OrderTypeEnum.TO_C.equals(aDo.getType())) {
                 } else if (OrderTypeEnum.TO_C.equals(aDo.getType())) {
                     //扣减可用库存
                     //扣减可用库存
-                    stockDO.setUsableStock(stockDO.getUsableStock() - num);
+                    stockDO.setActualStock(stockDO.getUsableStock() - num);
                     //增加在途库存
                     //增加在途库存
                     stockDO.setTransitStock(stockDO.getTransitStock() + num);
                     stockDO.setTransitStock(stockDO.getTransitStock() + num);
                 }
                 }

+ 62 - 55
module-erp/src/main/java/com/hys/app/service/erp/impl/StockDamageReportManagerImpl.java

@@ -3,6 +3,7 @@ package com.hys.app.service.erp.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
 import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -13,26 +14,21 @@ import com.hys.app.framework.database.WebPage;
 import com.hys.app.framework.exception.ServiceException;
 import com.hys.app.framework.exception.ServiceException;
 import com.hys.app.framework.rabbitmq.MessageSender;
 import com.hys.app.framework.rabbitmq.MessageSender;
 import com.hys.app.framework.rabbitmq.MqMessage;
 import com.hys.app.framework.rabbitmq.MqMessage;
+import com.hys.app.framework.util.BeanUtils;
 import com.hys.app.framework.util.DateUtil;
 import com.hys.app.framework.util.DateUtil;
 import com.hys.app.framework.util.PageConvert;
 import com.hys.app.framework.util.PageConvert;
 import com.hys.app.framework.util.StringUtil;
 import com.hys.app.framework.util.StringUtil;
 import com.hys.app.mapper.erp.StockDamageReportMapper;
 import com.hys.app.mapper.erp.StockDamageReportMapper;
 import com.hys.app.model.base.rabbitmq.AmqpExchange;
 import com.hys.app.model.base.rabbitmq.AmqpExchange;
-import com.hys.app.model.erp.dos.ProductStockDO;
-import com.hys.app.model.erp.dos.StockDamageReport;
-import com.hys.app.model.erp.dos.StockDamageReportProduct;
+import com.hys.app.model.erp.dos.*;
 import com.hys.app.model.erp.dto.*;
 import com.hys.app.model.erp.dto.*;
 import com.hys.app.model.erp.dto.message.StockDamageAuditPassMessage;
 import com.hys.app.model.erp.dto.message.StockDamageAuditPassMessage;
-import com.hys.app.model.erp.enums.NoBusinessTypeEnum;
-import com.hys.app.model.erp.enums.StockChangeSourceEnum;
-import com.hys.app.model.erp.enums.StockDamageReportStatusEnum;
-import com.hys.app.model.erp.enums.StockOperateEnum;
-import com.hys.app.model.erp.vo.StockDamageReportAllowable;
+import com.hys.app.model.erp.enums.*;
+import com.hys.app.model.erp.vo.GoodsVO;
 import com.hys.app.model.erp.vo.StockDamageReportStatistics;
 import com.hys.app.model.erp.vo.StockDamageReportStatistics;
 import com.hys.app.model.erp.vo.StockDamageReportVO;
 import com.hys.app.model.erp.vo.StockDamageReportVO;
 import com.hys.app.service.erp.*;
 import com.hys.app.service.erp.*;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
@@ -62,6 +58,7 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
     private MessageSender messageSender;
     private MessageSender messageSender;
     private WarehouseEntryBatchManager warehouseEntryBatchManager;
     private WarehouseEntryBatchManager warehouseEntryBatchManager;
     private ProductStockManager productStockManager;
     private ProductStockManager productStockManager;
+    private GoodsManager goodsManager;
 
 
     /**
     /**
      * 查询库存报损单分页列表数据
      * 查询库存报损单分页列表数据
@@ -71,21 +68,10 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
      */
      */
     @Override
     @Override
     public WebPage list(StockDamageReportParam params) {
     public WebPage list(StockDamageReportParam params) {
-        IPage<StockDamageReport> iPage = this.lambdaQuery()
-                .like(StringUtil.notEmpty(params.getSn()), StockDamageReport::getSn, params.getSn())
-                .eq(params.getWarehouseId() != null, StockDamageReport::getWarehouseId, params.getWarehouseId())
-                .eq(StringUtil.notEmpty(params.getStatus()), StockDamageReport::getStatus, params.getStatus())
-                .eq(params.getDeptId() != null, StockDamageReport::getDeptId, params.getDeptId())
-                .gt(params.getStartTime() != null, StockDamageReport::getReportTime, params.getStartTime())
-                .lt(params.getEndTime() != null, StockDamageReport::getReportTime, params.getEndTime())
-                .orderByDesc(StockDamageReport::getCreateTime)
-                .page(new Page<>(params.getPageNo(), params.getPageSize()));
-
-        for (StockDamageReport record : iPage.getRecords()) {
-            StockDamageReportAllowable allowable = new StockDamageReportAllowable(record);
-            record.setAllowable(allowable);
-        }
-        return PageConvert.convert(iPage);
+        Page<StockDamageReport> page = page(new Page<>(params.getPageNo(), params.getPageSize()), new LambdaQueryWrapper<StockDamageReport>()
+                .eq(ObjectUtil.isNotNull(params.getWarehouseId()), StockDamageReport::getWarehouseId, params.getWarehouseId())
+                .between(ObjectUtil.isNotNull(params.getStartTime()) && ObjectUtil.isNotNull(params.getEndTime()), StockDamageReport::getReportTime, params.getStartTime(), params.getEndTime()));
+        return PageConvert.convert(page);
     }
     }
 
 
     /**
     /**
@@ -112,24 +98,63 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
         String sn = noGenerateManager.generate(NoBusinessTypeEnum.StockDamageReport);
         String sn = noGenerateManager.generate(NoBusinessTypeEnum.StockDamageReport);
         report.setSn(sn);
         report.setSn(sn);
         this.save(report);
         this.save(report);
+        //保存库存报损单商品信息
+        this.stockDamageReportProductManager.saveProduct(report.getId(), stockDamageReportDTO.getProductList());
+    }
 
 
 
 
+    /**
+     * 获取库存报损单详情
+     *
+     * @param id 主键ID
+     * @return
+     */
+    @Override
+    public StockDamageReportVO getDetail(Long id) {
+        StockDamageReport report = this.getById(id);
+        StockDamageReportVO reportVO = BeanUtil.copyProperties(report, StockDamageReportVO.class);
+        //获取库存盘点单商品信息
+        List<StockDamageReportProduct> goodsList = this.stockDamageReportProductManager.list(id);
+        List<Long> collect = goodsList.stream().map(StockDamageReportProduct::getGoodsId).collect(Collectors.toList());
+        List<ProductStockDO> page = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
+                .eq(ProductStockDO::getWarehouseId, report.getWarehouseId())
+                .in(ProductStockDO::getGoodsId, collect));
+        List<StockDamageReportProductDTO> beanList = BeanUtils.toBean(goodsList, StockDamageReportProductDTO.class);
+        for (StockDamageReportProductDTO dto : beanList) {
+            ProductStockDO aDo = page.stream().filter(item -> item.getGoodsId().equals(dto.getGoodsId())).findFirst().get();
+            dto.getGoodsVO().setUsableStock(aDo.getUsableStock());
+        }
+        beanList.forEach(item -> item.setGoodsVO(BeanUtil.copyProperties(goodsManager.getById(item.getGoodsId()), GoodsVO.class)));
+        reportVO.setProductList(beanList);
+        return reportVO;
+    }
 
 
 
 
+    /**
+     * 更改原订单状态
+     *
+     * @param id
+     */
+    @Override
+    public void syncStock(Long id) {
+        StockDamageReport report = getById(id);
+        report.setStatus(DamageinventoryEnum.HAS_HANDLE);
+        updateById(report);
+        List<StockDamageReportProduct> productList = stockDamageReportProductManager.list(id);
+        List<Long> collect = productList.stream().map(StockDamageReportProduct::getGoodsId).collect(Collectors.toList());
+        List<ProductStockDO> list = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
+                .eq(ProductStockDO::getWarehouseId, report.getWarehouseId())
+                .in(ProductStockDO::getGoodsId, collect));
 
 
-
-        //设置创建时间
-//        stockDamageReport.setCreateTime(DateUtil.getDateline());
-//        //设置状态默认为未提交(待审核)
-//        stockDamageReport.setStatus(StockDamageReportStatusEnum.NEW.name());
-//        //入库
-//
-//        //获取主键ID
-//        Long id = stockDamageReport.getId();
-        //保存库存报损单商品信息
-//        this.stockDamageReportProductManager.saveProduct(id, stockDamageReportDTO.getProductList());
+        for (ProductStockDO stockDO : list) {
+            StockDamageReportProduct product = productList.stream().filter(item -> item.getGoodsId().equals(stockDO.getGoodsId())).findFirst().get();
+            stockDO.setActualStock(stockDO.getActualStock() - product.getReportNum());
+            stockDO.setUsableStock(stockDO.getUsableStock() - product.getReportNum());
+        }
+        productStockManager.updateBatchById(list);
     }
     }
 
 
+
     /**
     /**
      * 编辑库存报损单
      * 编辑库存报损单
      *
      *
@@ -146,9 +171,6 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
             throw new ServiceException("只有状态为未提交或审核驳回的库存报损单才可以进行编辑操作");
             throw new ServiceException("只有状态为未提交或审核驳回的库存报损单才可以进行编辑操作");
         }
         }
         //复制修改后的数据
         //复制修改后的数据
-        BeanUtil.copyProperties(stockDamageReportDTO, stockDamageReport);
-        //编辑后默认库存报损单状态为未提交(待审核)
-        stockDamageReport.setStatus(StockDamageReportStatusEnum.NEW.name());
         //修改库存报损单信息
         //修改库存报损单信息
         this.updateById(stockDamageReport);
         this.updateById(stockDamageReport);
         //入库库存报损单商品
         //入库库存报损单商品
@@ -182,23 +204,6 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
         this.stockDamageReportProductManager.deleteProduct(ids);
         this.stockDamageReportProductManager.deleteProduct(ids);
     }
     }
 
 
-    /**
-     * 获取库存报损单详情
-     *
-     * @param id 主键ID
-     * @return
-     */
-    @Override
-    public StockDamageReportVO getDetail(Long id) {
-        StockDamageReport stockDamageReport = this.getById(id);
-        StockDamageReportVO stockDamageReportVO = new StockDamageReportVO();
-        BeanUtil.copyProperties(stockDamageReport, stockDamageReportVO);
-
-        //获取库存报损单商品信息
-        List<StockDamageReportProduct> goodsList = this.stockDamageReportProductManager.list(id);
-        stockDamageReportVO.setProductList(goodsList);
-        return stockDamageReportVO;
-    }
 
 
     /**
     /**
      * 库存报损单提交审核
      * 库存报损单提交审核
@@ -376,4 +381,6 @@ public class StockDamageReportManagerImpl extends ServiceImpl<StockDamageReportM
         writer.close();
         writer.close();
         IoUtil.close(out);
         IoUtil.close(out);
     }
     }
+
+
 }
 }

+ 23 - 13
module-erp/src/main/java/com/hys/app/service/erp/impl/StockInventoryManagerImpl.java

@@ -20,15 +20,14 @@ import com.hys.app.model.erp.dos.StockInventoryProduct;
 import com.hys.app.model.erp.dto.StockInventoryDTO;
 import com.hys.app.model.erp.dto.StockInventoryDTO;
 import com.hys.app.model.erp.dto.StockInventoryParam;
 import com.hys.app.model.erp.dto.StockInventoryParam;
 import com.hys.app.model.erp.dto.StockInventoryProductDTO;
 import com.hys.app.model.erp.dto.StockInventoryProductDTO;
+import com.hys.app.model.erp.enums.DamageinventoryEnum;
 import com.hys.app.model.erp.enums.NoBusinessTypeEnum;
 import com.hys.app.model.erp.enums.NoBusinessTypeEnum;
 import com.hys.app.model.erp.enums.StockInventoryStatusEnum;
 import com.hys.app.model.erp.enums.StockInventoryStatusEnum;
+import com.hys.app.model.erp.vo.GoodsVO;
 import com.hys.app.model.erp.vo.StockInventoryAllowable;
 import com.hys.app.model.erp.vo.StockInventoryAllowable;
 import com.hys.app.model.erp.vo.StockInventoryVO;
 import com.hys.app.model.erp.vo.StockInventoryVO;
 import com.hys.app.model.system.dos.AdminUser;
 import com.hys.app.model.system.dos.AdminUser;
-import com.hys.app.service.erp.NoGenerateManager;
-import com.hys.app.service.erp.ProductStockManager;
-import com.hys.app.service.erp.StockInventoryManager;
-import com.hys.app.service.erp.StockInventoryProductManager;
+import com.hys.app.service.erp.*;
 import com.hys.app.service.system.AdminUserManager;
 import com.hys.app.service.system.AdminUserManager;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +52,7 @@ public class StockInventoryManagerImpl extends ServiceImpl<StockInventoryMapper,
     private StockInventoryProductManager stockInventoryProductManager;
     private StockInventoryProductManager stockInventoryProductManager;
     private AdminUserManager adminUserManager;
     private AdminUserManager adminUserManager;
     private ProductStockManager productStockManager;
     private ProductStockManager productStockManager;
+    private GoodsManager goodsManager;
 
 
 
 
     /**
     /**
@@ -65,9 +65,9 @@ public class StockInventoryManagerImpl extends ServiceImpl<StockInventoryMapper,
     public WebPage list(StockInventoryParam params) {
     public WebPage list(StockInventoryParam params) {
         Page<StockInventory> page = page(new Page<>(params.getPageNo(), params.getPageSize()), new LambdaQueryWrapper<StockInventory>()
         Page<StockInventory> page = page(new Page<>(params.getPageNo(), params.getPageSize()), new LambdaQueryWrapper<StockInventory>()
                 .eq(ObjectUtil.isNotNull(params.getWarehouseId()), StockInventory::getWarehouseId, params.getWarehouseId())
                 .eq(ObjectUtil.isNotNull(params.getWarehouseId()), StockInventory::getWarehouseId, params.getWarehouseId())
-                .eq(ObjectUtil.isNotNull(params.getInventoryPersonId()), StockInventory::getInventoryPersonId, params.getWarehouseId()));
-        Page<StockInventory> page1 = page;
-        return PageConvert.convert(page1);
+                .eq(ObjectUtil.isNotNull(params.getInventoryPersonId()), StockInventory::getInventoryPersonId, params.getWarehouseId())
+                .between(ObjectUtil.isNotNull(params.getStartTime()) && ObjectUtil.isNotNull(params.getEndTime()), StockInventory::getInventoryTime, params.getStartTime(), params.getEndTime()));
+        return PageConvert.convert(page);
     }
     }
 
 
     /**
     /**
@@ -92,14 +92,17 @@ public class StockInventoryManagerImpl extends ServiceImpl<StockInventoryMapper,
     @Transactional
     @Transactional
     public void syncStock(Long id) {
     public void syncStock(Long id) {
         StockInventory stockInventory = getById(id);
         StockInventory stockInventory = getById(id);
+        stockInventory.setStatus(DamageinventoryEnum.HAS_HANDLE);
+        updateById(stockInventory);
         List<StockInventoryProduct> goodsList = this.stockInventoryProductManager.list(id);
         List<StockInventoryProduct> goodsList = this.stockInventoryProductManager.list(id);
         List<Long> collect = goodsList.stream().map(StockInventoryProduct::getGoodsId).collect(Collectors.toList());
         List<Long> collect = goodsList.stream().map(StockInventoryProduct::getGoodsId).collect(Collectors.toList());
         List<ProductStockDO> list = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
         List<ProductStockDO> list = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
                 .eq(ProductStockDO::getWarehouseId, stockInventory.getWarehouseId())
                 .eq(ProductStockDO::getWarehouseId, stockInventory.getWarehouseId())
                 .in(ProductStockDO::getGoodsId, collect));
                 .in(ProductStockDO::getGoodsId, collect));
         for (ProductStockDO aDo : list) {
         for (ProductStockDO aDo : list) {
-            Integer inventoryNum = goodsList.stream().filter(item -> item.getGoodsId().equals(aDo.getGoodsId())).findAny().get().getInventoryNum();
-            aDo.setActualStock(inventoryNum);
+            StockInventoryProduct product = goodsList.stream().filter(item -> item.getGoodsId().equals(aDo.getGoodsId())).findAny().get();
+            aDo.setActualStock(aDo.getActualStock()+product.getDiffNum());
+            aDo.setUsableStock(aDo.getUsableStock()+product.getDiffNum());
         }
         }
         productStockManager.updateBatchById(list);
         productStockManager.updateBatchById(list);
     }
     }
@@ -117,13 +120,24 @@ public class StockInventoryManagerImpl extends ServiceImpl<StockInventoryMapper,
         StockInventoryVO stockInventoryVO = BeanUtil.copyProperties(stockInventory, StockInventoryVO.class);
         StockInventoryVO stockInventoryVO = BeanUtil.copyProperties(stockInventory, StockInventoryVO.class);
         //获取库存盘点单商品信息
         //获取库存盘点单商品信息
         List<StockInventoryProduct> goodsList = this.stockInventoryProductManager.list(id);
         List<StockInventoryProduct> goodsList = this.stockInventoryProductManager.list(id);
+        List<Long> collect = goodsList.stream().map(StockInventoryProduct::getGoodsId).collect(Collectors.toList());
+        List<ProductStockDO> page = productStockManager.list(new LambdaQueryWrapper<ProductStockDO>()
+                .eq(ProductStockDO::getWarehouseId, stockInventory.getWarehouseId())
+                .in(ProductStockDO::getGoodsId, collect));
         List<StockInventoryProductDTO> beanList = BeanUtils.toBean(goodsList, StockInventoryProductDTO.class);
         List<StockInventoryProductDTO> beanList = BeanUtils.toBean(goodsList, StockInventoryProductDTO.class);
+        for (StockInventoryProductDTO dto : beanList) {
+            ProductStockDO aDo = page.stream().filter(item -> item.getGoodsId().equals(dto.getGoodsId())).findFirst().get();
+            dto.getGoodsVO().setUsableStock(aDo.getUsableStock());
+        }
+        beanList.forEach(item ->item.setGoodsVO(BeanUtil.copyProperties(goodsManager.getById(item.getGoodsId()), GoodsVO.class)));
         stockInventoryVO.setProductList(beanList);
         stockInventoryVO.setProductList(beanList);
         return stockInventoryVO;
         return stockInventoryVO;
     }
     }
 
 
 
 
 
 
+
+
     /**
     /**
      * 编辑库存盘点单
      * 编辑库存盘点单
      *
      *
@@ -140,9 +154,6 @@ public class StockInventoryManagerImpl extends ServiceImpl<StockInventoryMapper,
             throw new ServiceException("只有状态为未提交或审核驳回的库存盘点单才可以进行编辑操作");
             throw new ServiceException("只有状态为未提交或审核驳回的库存盘点单才可以进行编辑操作");
         }
         }
         //复制修改后的数据
         //复制修改后的数据
-        BeanUtil.copyProperties(stockInventoryDTO, stockInventory);
-        //编辑后默认库存盘点单状态为未提交(待审核)
-        stockInventory.setStatus(StockInventoryStatusEnum.NEW.name());
         //修改库存盘点单信息
         //修改库存盘点单信息
         this.updateById(stockInventory);
         this.updateById(stockInventory);
         //入库库存报损单商品
         //入库库存报损单商品
@@ -177,7 +188,6 @@ public class StockInventoryManagerImpl extends ServiceImpl<StockInventoryMapper,
     }
     }
 
 
 
 
-
     /**
     /**
      * 库存盘点单提交审核
      * 库存盘点单提交审核
      *
      *

+ 4 - 4
module-erp/src/main/java/com/hys/app/service/erp/impl/WarehouseEntryManagerImpl.java

@@ -31,10 +31,7 @@ import com.hys.app.model.erp.dto.WarehouseEntryProductDTO;
 import com.hys.app.model.erp.dto.WarehouseEntryQueryParams;
 import com.hys.app.model.erp.dto.WarehouseEntryQueryParams;
 import com.hys.app.model.erp.dto.WarehouseEntryStatisticsParam;
 import com.hys.app.model.erp.dto.WarehouseEntryStatisticsParam;
 import com.hys.app.model.erp.dto.message.WarehouseEntryAuditPassMessage;
 import com.hys.app.model.erp.dto.message.WarehouseEntryAuditPassMessage;
-import com.hys.app.model.erp.enums.FinanceExpandTypeEnum;
-import com.hys.app.model.erp.enums.NoBusinessTypeEnum;
-import com.hys.app.model.erp.enums.StockChangeSourceEnum;
-import com.hys.app.model.erp.enums.WarehouseEntryStatusEnum;
+import com.hys.app.model.erp.enums.*;
 import com.hys.app.model.erp.vo.WarehouseEntryAllowable;
 import com.hys.app.model.erp.vo.WarehouseEntryAllowable;
 import com.hys.app.model.erp.vo.WarehouseEntryStatistics;
 import com.hys.app.model.erp.vo.WarehouseEntryStatistics;
 import com.hys.app.model.erp.vo.WarehouseEntryVO;
 import com.hys.app.model.erp.vo.WarehouseEntryVO;
@@ -189,6 +186,9 @@ public class WarehouseEntryManagerImpl extends BaseServiceImpl<WarehouseEntryMap
             WarehouseEntryProductDTO productDO = warehouseEntryDTO.getProductList().stream().filter(item -> item.getProductId().equals(aDo.getGoodsId())).findFirst().get();
             WarehouseEntryProductDTO productDO = warehouseEntryDTO.getProductList().stream().filter(item -> item.getProductId().equals(aDo.getGoodsId())).findFirst().get();
             aDo.setUsableStock(aDo.getUsableStock()+productDO.getNum());
             aDo.setUsableStock(aDo.getUsableStock()+productDO.getNum());
             aDo.setActualStock(aDo.getActualStock()+productDO.getNum());
             aDo.setActualStock(aDo.getActualStock()+productDO.getNum());
+            if (WarehouseEntyrTypeEnum.HAIL_ENTRY.equals(warehouseEntryDTO.getType())){
+                aDo.setTransitStock(aDo.getTransitStock()-productDO.getNum());
+            }
         }
         }
         productStockManager.updateBatchById(stockDOList);
         productStockManager.updateBatchById(stockDOList);
         //入库之后数据不能被操作
         //入库之后数据不能被操作

+ 1 - 1
server/src/main/resources/application.yml

@@ -4,7 +4,7 @@ spring:
   application:
   application:
     name: erp-server
     name: erp-server
   profiles:
   profiles:
-    active: local
+    active: test
   jackson:
   jackson:
     property-naming-strategy: SNAKE_CASE
     property-naming-strategy: SNAKE_CASE
   servlet:
   servlet: