diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsBaseWarehouseController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsBaseWarehouseController.java index 34e91df3..b457bff7 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsBaseWarehouseController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsBaseWarehouseController.java @@ -5,9 +5,7 @@ import java.io.IOException; import javax.servlet.http.HttpServletResponse; import com.hw.wms.domain.WmsBaseCategory; -import com.hw.wms.domain.WmsWarehouseMaterial; import com.hw.wms.service.IWmsBaseCategoryService; -import com.hw.wms.service.IWmsWarehouseMaterialService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -43,9 +41,6 @@ public class WmsBaseWarehouseController extends BaseController @Autowired private IWmsBaseCategoryService wmsBaseCategoryService; - @Autowired - private IWmsWarehouseMaterialService wmsWarehouseMaterialService; - /** * 查询仓库列表 */ @@ -62,7 +57,7 @@ public class WmsBaseWarehouseController extends BaseController * 导出仓库列表 */ @RequiresPermissions("wms:wmswarehouse:export") - @Log(title = "仓库管理", businessType = BusinessType.EXPORT) + @Log(title = "仓库", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, WmsBaseWarehouse wmsBaseWarehouse) { @@ -85,7 +80,7 @@ public class WmsBaseWarehouseController extends BaseController * 新增仓库 */ @RequiresPermissions("wms:wmswarehouse:add") - @Log(title = "仓库管理", businessType = BusinessType.INSERT) + @Log(title = "仓库", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody WmsBaseWarehouse wmsBaseWarehouse) { @@ -96,7 +91,7 @@ public class WmsBaseWarehouseController extends BaseController * 修改仓库 */ @RequiresPermissions("wms:wmswarehouse:edit") - @Log(title = "仓库管理", businessType = BusinessType.UPDATE) + @Log(title = "仓库", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WmsBaseWarehouse wmsBaseWarehouse) { @@ -107,7 +102,7 @@ public class WmsBaseWarehouseController extends BaseController * 删除仓库 */ @RequiresPermissions("wms:wmswarehouse:remove") - @Log(title = "仓库管理", businessType = BusinessType.DELETE) + @Log(title = "仓库", businessType = BusinessType.DELETE) @DeleteMapping("/{warehouseIds}") public AjaxResult remove(@PathVariable Long[] warehouseIds) { @@ -126,62 +121,4 @@ public class WmsBaseWarehouseController extends BaseController return success(list); } - /** - * 查询已分配物料 - */ - @RequiresPermissions("wms:wmswarehouse:materialallocate") - @GetMapping("/selectWmsWarehouseMaterialList") - public TableDataInfo selectWmsWarehouseMaterialList(WmsWarehouseMaterial wmsWarehouseMaterial) - { - startPage(); - List warehouseMaterials = wmsWarehouseMaterialService.selectWmsWarehouseMaterialJoinList(wmsWarehouseMaterial); - return getDataTable(warehouseMaterials); - } - - /** - * 分配仓库可入物料 - */ - @RequiresPermissions("wms:wmswarehouse:materialallocate") - @Log(title = "仓库管理", businessType = BusinessType.ALLOCATE) - @PutMapping("/allocateMaterials") - public AjaxResult allocateMaterials(Long warehouseId, Long[] materialIds) - { - wmsWarehouseMaterialService.batchInsertWarehouseMaterial(warehouseId, materialIds); - return success(); - } - - - /** - * 删除仓库配置的物料信息 - */ - @RequiresPermissions("wms:wmswarehouse:materialallocate") - @Log(title = "仓库管理", businessType = BusinessType.UNALLOCATE) - @PostMapping("/unallocateMaterials") - public AjaxResult unallocateMaterials(Long[] warehouseMaterialIds) - { - return toAjax(wmsWarehouseMaterialService.deleteWmsWarehouseMaterialByWarehouseMaterialIds(warehouseMaterialIds)); - } - - -// /** -// * 根据仓库分配可入库物料信息 -// */ -// @RequiresPermissions("wms:wmswarehouse:materialallocate") -// @GetMapping("/allocateMaterial/{warehouseId}") -// public AjaxResult allocateMaterial(@PathVariable("warehouseId") Long warehouseId) -// { -// AjaxResult ajax = AjaxResult.success(); -// WmsBaseWarehouse warehouse = wmsBaseWarehouseService.selectWmsBaseWarehouseByWarehouseId(warehouseId); -// -// WmsWarehouseMaterial queryWarehouseMaterial = new WmsWarehouseMaterial(); -// queryWarehouseMaterial.setWarehouseId(warehouseId); -// queryWarehouseMaterial.setStorageType(WmsConstants.WMS_WAREHOUSE_MATERIAL_STORAGE_TYPE_MATERIAL); -// -// List warehouseMaterials = wmsWarehouseMaterialService.selectWmsWarehouseMaterialList(queryWarehouseMaterial); -// ajax.put("warehouse", warehouse); -// ajax.put("warehouseMaterials", warehouseMaterials); -// return ajax; -// } - - } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsTransferController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsTransferController.java new file mode 100644 index 00000000..61a3ac26 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsTransferController.java @@ -0,0 +1,105 @@ +package com.hw.wms.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.hw.common.log.annotation.Log; +import com.hw.common.log.enums.BusinessType; +import com.hw.common.security.annotation.RequiresPermissions; +import com.hw.wms.domain.WmsTransfer; +import com.hw.wms.service.IWmsTransferService; +import com.hw.common.core.web.controller.BaseController; +import com.hw.common.core.web.domain.AjaxResult; +import com.hw.common.core.utils.poi.ExcelUtil; +import com.hw.common.core.web.page.TableDataInfo; + +/** + * 转库记录Controller + * + * @author xins + * @date 2024-01-12 + */ +@RestController +@RequestMapping("/transfer") +public class WmsTransferController extends BaseController +{ + @Autowired + private IWmsTransferService wmsTransferService; + + /** + * 查询转库记录列表 + */ + @RequiresPermissions("wms:transfer:list") + @GetMapping("/list") + public TableDataInfo list(WmsTransfer wmsTransfer) + { + startPage(); + List list = wmsTransferService.selectWmsTransferList(wmsTransfer); + return getDataTable(list); + } + + /** + * 导出转库记录列表 + */ + @RequiresPermissions("wms:transfer:export") + @Log(title = "转库记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WmsTransfer wmsTransfer) + { + List list = wmsTransferService.selectWmsTransferList(wmsTransfer); + ExcelUtil util = new ExcelUtil(WmsTransfer.class); + util.exportExcel(response, list, "转库记录数据"); + } + + /** + * 获取转库记录详细信息 + */ + @RequiresPermissions("wms:transfer:query") + @GetMapping(value = "/{transferId}") + public AjaxResult getInfo(@PathVariable("transferId") Long transferId) + { + return success(wmsTransferService.selectWmsTransferByTransferId(transferId)); + } + + /** + * 新增转库记录 + */ + @RequiresPermissions("wms:transfer:add") + @Log(title = "转库记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WmsTransfer wmsTransfer) + { + return toAjax(wmsTransferService.insertWmsTransfer(wmsTransfer)); + } + + /** + * 修改转库记录 + */ + @RequiresPermissions("wms:transfer:edit") + @Log(title = "转库记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WmsTransfer wmsTransfer) + { + return toAjax(wmsTransferService.updateWmsTransfer(wmsTransfer)); + } + + /** + * 删除转库记录 + */ + @RequiresPermissions("wms:transfer:remove") + @Log(title = "转库记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{transferIds}") + public AjaxResult remove(@PathVariable Long[] transferIds) + { + return toAjax(wmsTransferService.deleteWmsTransferByTransferIds(transferIds)); + } +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsTransfer.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsTransfer.java new file mode 100644 index 00000000..b570a5d5 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsTransfer.java @@ -0,0 +1,436 @@ +package com.hw.wms.domain; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.hw.common.core.annotation.Excel; +import com.hw.common.core.web.domain.BaseEntity; + +/** + * 转库记录对象 wms_transfer + * + * @author xins + * @date 2024-01-12 + */ +public class WmsTransfer extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 转库记录ID */ + private Long transferId; + + /** 任务编号 */ + @Excel(name = "任务编号") + private String taskCode; + + /** 原仓库ID */ + @Excel(name = "原仓库ID") + private Long oriWarehouseId; + + /** 原库位编码 */ + @Excel(name = "原库位编码") + private String oriLocationCode; + + /** 目标仓库ID */ + @Excel(name = "目标仓库ID") + private Long targetWarehouseId; + + /** 目标库位编码 */ + @Excel(name = "目标库位编码") + private String targetLocationCode; + + /** 物料ID */ + @Excel(name = "物料ID") + private Long materialId; + + /** 产品批次号 */ + @Excel(name = "产品批次号") + private String productBatch; + + /** 计划编号,关联pd_base_plan_info的plan_code */ + @Excel(name = "计划编号,关联pd_base_plan_info的plan_code") + private String planCode; + + /** 申请数量 */ + @Excel(name = "申请数量") + private BigDecimal applyQty; + + /** 已出数量 */ + @Excel(name = "已出数量") + private BigDecimal outstockQty; + + /** 已入数量 */ + @Excel(name = "已入数量") + private BigDecimal instockQty; + + /** 操作类型(0自动,1人工,2强制,3调度) */ + @Excel(name = "操作类型(0自动,1人工,2强制,3调度)") + private String operationType; + + /** 转库类型(1、出半成品库入成品库) */ + @Excel(name = "转库类型(1、出半成品库入成品库)") + private String transferType; + + /** 申请原因 */ + @Excel(name = "申请原因") + private String applyReason; + + /** 审核原因 */ + @Excel(name = "审核原因") + private String auditReason; + + /** 审核状态(0待审核,1审核通过,2审核未通过) */ + @Excel(name = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** 执行状态(0待执行,1待执行,2已完成) */ + @Excel(name = "执行状态(0待执行,1待执行,2已完成)") + private String executeStatus; + + /** 申请人 */ + @Excel(name = "申请人") + private String applyBy; + + /** 申请时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date applyDate; + + /** 审核人 */ + @Excel(name = "审核人") + private String auditBy; + + /** 审核时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date auditDate; + + /** 最后更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date updateDate; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date beginTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + + + private String oriWarehouseName; + private String targetWarehouseName; + private String materialCode; + private String materialName; + + /** 转库记录明细;移库合库记录对应的明细信息信息 */ + private List wmsTransferDetailList; + + public void setTransferId(Long transferId) + { + this.transferId = transferId; + } + + public Long getTransferId() + { + return transferId; + } + public void setTaskCode(String taskCode) + { + this.taskCode = taskCode; + } + + public String getTaskCode() + { + return taskCode; + } + public void setOriWarehouseId(Long oriWarehouseId) + { + this.oriWarehouseId = oriWarehouseId; + } + + public Long getOriWarehouseId() + { + return oriWarehouseId; + } + public void setOriLocationCode(String oriLocationCode) + { + this.oriLocationCode = oriLocationCode; + } + + public String getOriLocationCode() + { + return oriLocationCode; + } + public void setTargetWarehouseId(Long targetWarehouseId) + { + this.targetWarehouseId = targetWarehouseId; + } + + public Long getTargetWarehouseId() + { + return targetWarehouseId; + } + public void setTargetLocationCode(String targetLocationCode) + { + this.targetLocationCode = targetLocationCode; + } + + public String getTargetLocationCode() + { + return targetLocationCode; + } + public void setMaterialId(Long materialId) + { + this.materialId = materialId; + } + + public Long getMaterialId() + { + return materialId; + } + public void setProductBatch(String productBatch) + { + this.productBatch = productBatch; + } + + public String getProductBatch() + { + return productBatch; + } + public void setPlanCode(String planCode) + { + this.planCode = planCode; + } + + public String getPlanCode() + { + return planCode; + } + public void setApplyQty(BigDecimal applyQty) + { + this.applyQty = applyQty; + } + + public BigDecimal getApplyQty() + { + return applyQty; + } + public void setOutstockQty(BigDecimal outstockQty) + { + this.outstockQty = outstockQty; + } + + public BigDecimal getOutstockQty() + { + return outstockQty; + } + public void setInstockQty(BigDecimal instockQty) + { + this.instockQty = instockQty; + } + + public BigDecimal getInstockQty() + { + return instockQty; + } + public void setOperationType(String operationType) + { + this.operationType = operationType; + } + + public String getOperationType() + { + return operationType; + } + public void setTransferType(String transferType) + { + this.transferType = transferType; + } + + public String getTransferType() + { + return transferType; + } + public void setApplyReason(String applyReason) + { + this.applyReason = applyReason; + } + + public String getApplyReason() + { + return applyReason; + } + public void setAuditReason(String auditReason) + { + this.auditReason = auditReason; + } + + public String getAuditReason() + { + return auditReason; + } + public void setAuditStatus(String auditStatus) + { + this.auditStatus = auditStatus; + } + + public String getAuditStatus() + { + return auditStatus; + } + public void setExecuteStatus(String executeStatus) + { + this.executeStatus = executeStatus; + } + + public String getExecuteStatus() + { + return executeStatus; + } + public void setApplyBy(String applyBy) + { + this.applyBy = applyBy; + } + + public String getApplyBy() + { + return applyBy; + } + public void setApplyDate(Date applyDate) + { + this.applyDate = applyDate; + } + + public Date getApplyDate() + { + return applyDate; + } + public void setAuditBy(String auditBy) + { + this.auditBy = auditBy; + } + + public String getAuditBy() + { + return auditBy; + } + public void setAuditDate(Date auditDate) + { + this.auditDate = auditDate; + } + + public Date getAuditDate() + { + return auditDate; + } + public void setUpdateDate(Date updateDate) + { + this.updateDate = updateDate; + } + + public Date getUpdateDate() + { + return updateDate; + } + public void setBeginTime(Date beginTime) + { + this.beginTime = beginTime; + } + + public Date getBeginTime() + { + return beginTime; + } + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + + public List getWmsTransferDetailList() + { + return wmsTransferDetailList; + } + + public void setWmsTransferDetailList(List wmsTransferDetailList) + { + this.wmsTransferDetailList = wmsTransferDetailList; + } + + public String getOriWarehouseName() { + return oriWarehouseName; + } + + public void setOriWarehouseName(String oriWarehouseName) { + this.oriWarehouseName = oriWarehouseName; + } + + public String getTargetWarehouseName() { + return targetWarehouseName; + } + + public void setTargetWarehouseName(String targetWarehouseName) { + this.targetWarehouseName = targetWarehouseName; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("transferId", getTransferId()) + .append("taskCode", getTaskCode()) + .append("oriWarehouseId", getOriWarehouseId()) + .append("oriLocationCode", getOriLocationCode()) + .append("targetWarehouseId", getTargetWarehouseId()) + .append("targetLocationCode", getTargetLocationCode()) + .append("materialId", getMaterialId()) + .append("productBatch", getProductBatch()) + .append("planCode", getPlanCode()) + .append("applyQty", getApplyQty()) + .append("outstockQty", getOutstockQty()) + .append("instockQty", getInstockQty()) + .append("operationType", getOperationType()) + .append("transferType", getTransferType()) + .append("applyReason", getApplyReason()) + .append("auditReason", getAuditReason()) + .append("auditStatus", getAuditStatus()) + .append("executeStatus", getExecuteStatus()) + .append("applyBy", getApplyBy()) + .append("applyDate", getApplyDate()) + .append("auditBy", getAuditBy()) + .append("auditDate", getAuditDate()) + .append("updateBy", getUpdateBy()) + .append("updateDate", getUpdateDate()) + .append("beginTime", getBeginTime()) + .append("endTime", getEndTime()) + .append("wmsTransferDetailList", getWmsTransferDetailList()) + .toString(); + } +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsTransferDetail.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsTransferDetail.java new file mode 100644 index 00000000..57a179f1 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsTransferDetail.java @@ -0,0 +1,255 @@ +package com.hw.wms.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.hw.common.core.annotation.Excel; +import com.hw.common.core.web.domain.BaseEntity; + +/** + * 转库记录明细;移库合库记录对应的明细信息对象 wms_transfer_detail + * + * @author xins + * @date 2024-01-12 + */ +public class WmsTransferDetail extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 转库记录明细ID */ + private Long transferDetailId; + + /** 转库ID,关联wms_transfer的transfer_id */ + @Excel(name = "转库ID,关联wms_transfer的transfer_id") + private Long transferId; + + /** 库位编码 */ + @Excel(name = "库位编码") + private String locationCode; + + /** 存放物料条码,入库扫描条码时,从打印条码记录表中获取,关联条码信息的barcode_info */ + @Excel(name = "存放物料条码,入库扫描条码时,从打印条码记录表中获取,关联条码信息的barcode_info") + private String materialBarcode; + + /** 批次;入库扫描条码时,从打印条码记录表中获取,关联条码信息的batch_code */ + @Excel(name = "批次;入库扫描条码时,从打印条码记录表中获取,关联条码信息的batch_code") + private String instockBatch; + + /** 物料ID */ + @Excel(name = "物料ID") + private Long materialId; + + /** 计划数量 */ + @Excel(name = "计划数量") + private BigDecimal planAmount; + + /** 实际数量 */ + @Excel(name = "实际数量") + private BigDecimal realAmount; + + /** 执行状态(0待执行,1执行中,2执行完成) */ + @Excel(name = "执行状态(0待执行,1执行中,2执行完成)") + private String executeStatus; + + /** 执行人 */ + @Excel(name = "执行人") + private String executePerson; + + /** 执行时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "执行时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date executeTime; + + /** 转明细类型(1出库2入库) */ + @Excel(name = "转明细类型(1出库2入库)") + private String transferDetailType; + + /** 使用机台名称;入库扫描条码时,从打印条码记录表中获取 */ + @Excel(name = "使用机台名称;入库扫描条码时,从打印条码记录表中获取") + private String machineName; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createDate; + + /** 最后更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date updateDate; + + /** 有效标记 */ + @Excel(name = "有效标记") + private String activeFlag; + + public void setTransferDetailId(Long transferDetailId) + { + this.transferDetailId = transferDetailId; + } + + public Long getTransferDetailId() + { + return transferDetailId; + } + public void setTransferId(Long transferId) + { + this.transferId = transferId; + } + + public Long getTransferId() + { + return transferId; + } + public void setLocationCode(String locationCode) + { + this.locationCode = locationCode; + } + + public String getLocationCode() + { + return locationCode; + } + public void setMaterialBarcode(String materialBarcode) + { + this.materialBarcode = materialBarcode; + } + + public String getMaterialBarcode() + { + return materialBarcode; + } + public void setInstockBatch(String instockBatch) + { + this.instockBatch = instockBatch; + } + + public String getInstockBatch() + { + return instockBatch; + } + public void setMaterialId(Long materialId) + { + this.materialId = materialId; + } + + public Long getMaterialId() + { + return materialId; + } + public void setPlanAmount(BigDecimal planAmount) + { + this.planAmount = planAmount; + } + + public BigDecimal getPlanAmount() + { + return planAmount; + } + public void setRealAmount(BigDecimal realAmount) + { + this.realAmount = realAmount; + } + + public BigDecimal getRealAmount() + { + return realAmount; + } + public void setExecuteStatus(String executeStatus) + { + this.executeStatus = executeStatus; + } + + public String getExecuteStatus() + { + return executeStatus; + } + public void setExecutePerson(String executePerson) + { + this.executePerson = executePerson; + } + + public String getExecutePerson() + { + return executePerson; + } + public void setExecuteTime(Date executeTime) + { + this.executeTime = executeTime; + } + + public Date getExecuteTime() + { + return executeTime; + } + public void setTransferDetailType(String transferDetailType) + { + this.transferDetailType = transferDetailType; + } + + public String getTransferDetailType() + { + return transferDetailType; + } + public void setMachineName(String machineName) + { + this.machineName = machineName; + } + + public String getMachineName() + { + return machineName; + } + public void setCreateDate(Date createDate) + { + this.createDate = createDate; + } + + public Date getCreateDate() + { + return createDate; + } + public void setUpdateDate(Date updateDate) + { + this.updateDate = updateDate; + } + + public Date getUpdateDate() + { + return updateDate; + } + public void setActiveFlag(String activeFlag) + { + this.activeFlag = activeFlag; + } + + public String getActiveFlag() + { + return activeFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("transferDetailId", getTransferDetailId()) + .append("transferId", getTransferId()) + .append("locationCode", getLocationCode()) + .append("materialBarcode", getMaterialBarcode()) + .append("instockBatch", getInstockBatch()) + .append("materialId", getMaterialId()) + .append("planAmount", getPlanAmount()) + .append("realAmount", getRealAmount()) + .append("executeStatus", getExecuteStatus()) + .append("executePerson", getExecutePerson()) + .append("executeTime", getExecuteTime()) + .append("transferDetailType", getTransferDetailType()) + .append("machineName", getMachineName()) + .append("createBy", getCreateBy()) + .append("createDate", getCreateDate()) + .append("updateBy", getUpdateBy()) + .append("updateDate", getUpdateDate()) + .append("activeFlag", getActiveFlag()) + .toString(); + } +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsWarehouseMaterial.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsWarehouseMaterial.java deleted file mode 100644 index 05783810..00000000 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsWarehouseMaterial.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hw.wms.domain; - -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; -import com.hw.common.core.annotation.Excel; -import com.hw.common.core.web.domain.BaseEntity; - -/** - * 仓库可储存物料信息对象 wms_warehouse_material - * - * @author xins - * @date 2024-01-09 - */ -public class WmsWarehouseMaterial extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - private Long warehouseMaterialId; - - /** 仓库ID */ - private Long warehouseId; - - /** 库位编码;单独需要针对库位设置的,后续扩展使用 */ - private String locationCode; - - /** 存储类型(1、物料,2、物料类型);先支持物料 */ - private String storageType; - - /** 根据存储类型对应各自表的主键 */ - private Long storageId; - - private String materialCode; - - private String materialName; - - public Long getWarehouseMaterialId() { - return warehouseMaterialId; - } - - public void setWarehouseMaterialId(Long warehouseMaterialId) { - this.warehouseMaterialId = warehouseMaterialId; - } - - public void setWarehouseId(Long warehouseId) - { - this.warehouseId = warehouseId; - } - - public Long getWarehouseId() - { - return warehouseId; - } - public void setLocationCode(String locationCode) - { - this.locationCode = locationCode; - } - - public String getLocationCode() - { - return locationCode; - } - public void setStorageType(String storageType) - { - this.storageType = storageType; - } - - public String getStorageType() - { - return storageType; - } - public void setStorageId(Long storageId) - { - this.storageId = storageId; - } - - public Long getStorageId() - { - return storageId; - } - - public String getMaterialCode() { - return materialCode; - } - - public void setMaterialCode(String materialCode) { - this.materialCode = materialCode; - } - - public String getMaterialName() { - return materialName; - } - - public void setMaterialName(String materialName) { - this.materialName = materialName; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("warehouseId", getWarehouseId()) - .append("locationCode", getLocationCode()) - .append("storageType", getStorageType()) - .append("storageId", getStorageId()) - .append("createTime", getCreateTime()) - .append("createBy", getCreateBy()) - .toString(); - } -} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsProductTransferVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsProductTransferVo.java new file mode 100644 index 00000000..9fa8ea32 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsProductTransferVo.java @@ -0,0 +1,46 @@ +package com.hw.wms.domain.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @Description: 转库记录对象VO + * @ClassName: WmsProductTransferVo + * @Author : xins + * @Date :2024-01-15 8:51 + * @Version :1.0 + */ +@Data +public class WmsProductTransferVo { + + //原仓库ID + @NotNull(message="原仓库必须输入") + private Long oriWarehouseId; + + //目标仓库ID + @NotNull(message="目标仓库ID必须输入") + private Long targetWarehouseId; + + //原库位编号 + @NotBlank(message="原库位编号必须输入") + private String oriLocationCode; + + //产品ID + @NotNull(message="成品ID必须输入") + private Long productId; + + //产品批次 + @NotBlank(message="产品批次必须输入") + private String productBatch; + + //生产计划Code + @NotBlank(message="生产计划编号必须输入") + private String planCode; + + private BigDecimal applyCount; + + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockDetailMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockDetailMapper.java new file mode 100644 index 00000000..dc460e38 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductOutstockDetailMapper.java @@ -0,0 +1,61 @@ +package com.hw.wms.mapper; + +import java.util.List; +import com.hw.wms.domain.WmsProductOutstockDetail; + +/** + * 成品出库记录明细Mapper接口 + * + * @author xins + * @date 2024-01-16 + */ +public interface WmsProductOutstockDetailMapper +{ + /** + * 查询成品出库记录明细 + * + * @param productOutstockDetailId 成品出库记录明细主键 + * @return 成品出库记录明细 + */ + public WmsProductOutstockDetail selectWmsProductOutstockDetailByProductOutstockDetailId(Long productOutstockDetailId); + + /** + * 查询成品出库记录明细列表 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 成品出库记录明细集合 + */ + public List selectWmsProductOutstockDetailList(WmsProductOutstockDetail wmsProductOutstockDetail); + + /** + * 新增成品出库记录明细 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 结果 + */ + public int insertWmsProductOutstockDetail(WmsProductOutstockDetail wmsProductOutstockDetail); + + /** + * 修改成品出库记录明细 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 结果 + */ + public int updateWmsProductOutstockDetail(WmsProductOutstockDetail wmsProductOutstockDetail); + + /** + * 删除成品出库记录明细 + * + * @param productOutstockDetailId 成品出库记录明细主键 + * @return 结果 + */ + public int deleteWmsProductOutstockDetailByProductOutstockDetailId(Long productOutstockDetailId); + + /** + * 批量删除成品出库记录明细 + * + * @param productOutstockDetailIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWmsProductOutstockDetailByProductOutstockDetailIds(Long[] productOutstockDetailIds); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsTransferDetailMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsTransferDetailMapper.java new file mode 100644 index 00000000..94647144 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsTransferDetailMapper.java @@ -0,0 +1,61 @@ +package com.hw.wms.mapper; + +import java.util.List; +import com.hw.wms.domain.WmsTransferDetail; + +/** + * 转库记录明细Mapper接口 + * + * @author xins + * @date 2024-01-15 + */ +public interface WmsTransferDetailMapper +{ + /** + * 查询转库记录明细 + * + * @param transferDetailId 转库记录明细主键 + * @return 转库记录明细 + */ + public WmsTransferDetail selectWmsTransferDetailByTransferDetailId(Long transferDetailId); + + /** + * 查询转库记录明细列表 + * + * @param wmsTransferDetail 转库记录明细 + * @return 转库记录明细集合 + */ + public List selectWmsTransferDetailList(WmsTransferDetail wmsTransferDetail); + + /** + * 新增转库记录明细 + * + * @param wmsTransferDetail 转库记录明细 + * @return 结果 + */ + public int insertWmsTransferDetail(WmsTransferDetail wmsTransferDetail); + + /** + * 修改转库记录明细 + * + * @param wmsTransferDetail 转库记录明细 + * @return 结果 + */ + public int updateWmsTransferDetail(WmsTransferDetail wmsTransferDetail); + + /** + * 删除转库记录明细 + * + * @param transferDetailId 转库记录明细主键 + * @return 结果 + */ + public int deleteWmsTransferDetailByTransferDetailId(Long transferDetailId); + + /** + * 批量删除转库记录明细 + * + * @param transferDetailIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWmsTransferDetailByTransferDetailIds(Long[] transferDetailIds); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsTransferMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsTransferMapper.java new file mode 100644 index 00000000..1b7a4434 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsTransferMapper.java @@ -0,0 +1,99 @@ +package com.hw.wms.mapper; + +import java.util.List; +import com.hw.wms.domain.WmsTransfer; +import com.hw.wms.domain.WmsTransferDetail; + +/** + * 转库记录Mapper接口 + * + * @author xins + * @date 2024-01-12 + */ +public interface WmsTransferMapper +{ + /** + * 查询转库记录 + * + * @param transferId 转库记录主键 + * @return 转库记录 + */ + public WmsTransfer selectWmsTransferByTransferId(Long transferId); + + /** + * 查询转库记录列表 + * + * @param wmsTransfer 转库记录 + * @return 转库记录集合 + */ + public List selectWmsTransferList(WmsTransfer wmsTransfer); + + /** + * 新增转库记录 + * + * @param wmsTransfer 转库记录 + * @return 结果 + */ + public int insertWmsTransfer(WmsTransfer wmsTransfer); + + /** + * 修改转库记录 + * + * @param wmsTransfer 转库记录 + * @return 结果 + */ + public int updateWmsTransfer(WmsTransfer wmsTransfer); + + /** + * 删除转库记录 + * + * @param transferId 转库记录主键 + * @return 结果 + */ + public int deleteWmsTransferByTransferId(Long transferId); + + /** + * 批量删除转库记录 + * + * @param transferIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWmsTransferByTransferIds(Long[] transferIds); + + /** + * 批量删除转库记录明细;移库合库记录对应的明细信息 + * + * @param transferIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWmsTransferDetailByTransferIds(Long[] transferIds); + + /** + * 批量新增转库记录明细;移库合库记录对应的明细信息 + * + * @param wmsTransferDetailList 转库记录明细;移库合库记录对应的明细信息列表 + * @return 结果 + */ + public int batchWmsTransferDetail(List wmsTransferDetailList); + + + /** + * 通过转库记录主键删除转库记录明细;移库合库记录对应的明细信息信息 + * + * @param transferId 转库记录ID + * @return 结果 + */ + public int deleteWmsTransferDetailByTransferId(Long transferId); + + + + + /** + * 查询转库记录列表,Join原仓库,目标仓库和物料 + * + * @param wmsTransfer 转库记录 + * @return 转库记录集合 + */ + public List selectWmsTransferJoinList(WmsTransfer wmsTransfer); + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsWarehouseMaterialMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsWarehouseMaterialMapper.java deleted file mode 100644 index d6e31579..00000000 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsWarehouseMaterialMapper.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.hw.wms.mapper; - -import java.util.List; - -import com.hw.wms.domain.WmsWarehouseMaterial; - -/** - * 仓库可储存物料信息Mapper接口 - * - * @author xins - * @date 2024-01-09 - */ -public interface WmsWarehouseMaterialMapper { - /** - * 查询仓库可储存物料信息 - * - * @param warehouseId 仓库可储存物料信息主键 - * @return 仓库可储存物料信息 - */ - public WmsWarehouseMaterial selectWmsWarehouseMaterialByWarehouseId(Long warehouseId); - - /** - * 查询仓库可储存物料信息列表 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 仓库可储存物料信息集合 - */ - public List selectWmsWarehouseMaterialList(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 新增仓库可储存物料信息 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 结果 - */ - public int insertWmsWarehouseMaterial(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 修改仓库可储存物料信息 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 结果 - */ - public int updateWmsWarehouseMaterial(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 删除仓库可储存物料信息 - * - * @param warehouseId 仓库可储存物料信息主键 - * @return 结果 - */ - public int deleteWmsWarehouseMaterialByWarehouseMaterialId(Long warehouseId); - - /** - * 批量删除仓库可储存物料信息 - * - * @param warehouseIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteWmsWarehouseMaterialByWarehouseMaterialIds(Long[] warehouseIds); - - - - /** - * 查询仓库可储存物料信息列表,Join material - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 仓库可储存物料信息集合 - */ - public List selectWmsWarehouseMaterialJoinList(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 批量新增仓库物料配置信息 - * - * @param warehouseMaterialList 仓库物料列表 - * @return 结果 - */ - public int batchInsertWarehouseMaterial(List warehouseMaterialList); - -} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductOutstockDetailService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductOutstockDetailService.java new file mode 100644 index 00000000..29968a10 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductOutstockDetailService.java @@ -0,0 +1,61 @@ +package com.hw.wms.service; + +import java.util.List; +import com.hw.wms.domain.WmsProductOutstockDetail; + +/** + * 成品出库记录明细Service接口 + * + * @author xins + * @date 2024-01-16 + */ +public interface IWmsProductOutstockDetailService +{ + /** + * 查询成品出库记录明细 + * + * @param productOutstockDetailId 成品出库记录明细主键 + * @return 成品出库记录明细 + */ + public WmsProductOutstockDetail selectWmsProductOutstockDetailByProductOutstockDetailId(Long productOutstockDetailId); + + /** + * 查询成品出库记录明细列表 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 成品出库记录明细集合 + */ + public List selectWmsProductOutstockDetailList(WmsProductOutstockDetail wmsProductOutstockDetail); + + /** + * 新增成品出库记录明细 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 结果 + */ + public int insertWmsProductOutstockDetail(WmsProductOutstockDetail wmsProductOutstockDetail); + + /** + * 修改成品出库记录明细 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 结果 + */ + public int updateWmsProductOutstockDetail(WmsProductOutstockDetail wmsProductOutstockDetail); + + /** + * 批量删除成品出库记录明细 + * + * @param productOutstockDetailIds 需要删除的成品出库记录明细主键集合 + * @return 结果 + */ + public int deleteWmsProductOutstockDetailByProductOutstockDetailIds(Long[] productOutstockDetailIds); + + /** + * 删除成品出库记录明细信息 + * + * @param productOutstockDetailId 成品出库记录明细主键 + * @return 结果 + */ + public int deleteWmsProductOutstockDetailByProductOutstockDetailId(Long productOutstockDetailId); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsTransactionalService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsTransactionalService.java new file mode 100644 index 00000000..ed5a8d7b --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsTransactionalService.java @@ -0,0 +1,25 @@ +package com.hw.wms.service; + +import com.hw.wms.domain.WmsTransfer; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +/** + * @Description: 用来循环内执行事务的服务接口 + * @ClassName: IWmsTransactionalService + * @Author : xins + * @Date :2024-01-15 10:29 + * @Version :1.0 + */ +public interface IWmsTransactionalService { + + /** + * @Description: 申请转库(适合五楼半成品出半成品库入成品库) + * @ClassName: WmsTransactionalServiceImpl + * @Author : xins + * @Date :2024-01-15 10:37 + * @Version :1.0 + */ + public void applyTransfer(WmsTransfer wmsTransfer, String userName, Date currentDate); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsTransferService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsTransferService.java new file mode 100644 index 00000000..1be8e246 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsTransferService.java @@ -0,0 +1,97 @@ +package com.hw.wms.service; + +import java.util.List; +import com.hw.wms.domain.WmsTransfer; +import com.hw.wms.domain.WmsTransferDetail; +import org.springframework.transaction.annotation.Transactional; + +/** + * 转库记录Service接口 + * + * @author xins + * @date 2024-01-12 + */ +public interface IWmsTransferService +{ + /** + * 查询转库记录 + * + * @param transferId 转库记录主键 + * @return 转库记录 + */ + public WmsTransfer selectWmsTransferByTransferId(Long transferId); + + /** + * 查询转库记录列表 + * + * @param wmsTransfer 转库记录 + * @return 转库记录集合 + */ + public List selectWmsTransferList(WmsTransfer wmsTransfer); + + /** + * 新增转库记录 + * + * @param wmsTransfer 转库记录 + * @return 结果 + */ + public int insertWmsTransfer(WmsTransfer wmsTransfer); + + /** + * 修改转库记录 + * + * @param wmsTransfer 转库记录 + * @return 结果 + */ + public int updateWmsTransfer(WmsTransfer wmsTransfer); + + /** + * 批量删除转库记录 + * + * @param transferIds 需要删除的转库记录主键集合 + * @return 结果 + */ + public int deleteWmsTransferByTransferIds(Long[] transferIds); + + /** + * 删除转库记录信息 + * + * @param transferId 转库记录主键 + * @return 结果 + */ + public int deleteWmsTransferByTransferId(Long transferId); + + + + + + /** + * 申请转库(适合五楼半成品库入成品库) + * + * @param wmsTransfers + * @return + */ + public int applyTransfers(List wmsTransfers); + + /** + * 查询转库记录列表,Join原仓库,目标仓库和物料 + * + * @param wmsTransfer 转库记录 + * @return 转库记录 + */ + public List selectWmsTransferJoinList(WmsTransfer wmsTransfer); + + /** + * 转库出库,适合五楼半成品出半成品库 + * @param wmsTransferDetail + * @return + */ + public int transferOutstock(WmsTransferDetail wmsTransferDetail); + + /** + * 转库入库,适合五楼半成品入成品库 + * @param wmsTransferDetail + * @return + */ + public int transferInstock(WmsTransferDetail wmsTransferDetail); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsWarehouseMaterialService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsWarehouseMaterialService.java deleted file mode 100644 index 0459b9fb..00000000 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsWarehouseMaterialService.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hw.wms.service; - -import java.util.List; -import com.hw.wms.domain.WmsWarehouseMaterial; - -/** - * 仓库可储存物料信息Service接口 - * - * @author xins - * @date 2024-01-09 - */ -public interface IWmsWarehouseMaterialService -{ - /** - * 查询仓库可储存物料信息 - * - * @param warehouseId 仓库可储存物料信息主键 - * @return 仓库可储存物料信息 - */ - public WmsWarehouseMaterial selectWmsWarehouseMaterialByWarehouseId(Long warehouseId); - - /** - * 查询仓库可储存物料信息列表 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 仓库可储存物料信息集合 - */ - public List selectWmsWarehouseMaterialList(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 新增仓库可储存物料信息 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 结果 - */ - public int insertWmsWarehouseMaterial(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 修改仓库可储存物料信息 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 结果 - */ - public int updateWmsWarehouseMaterial(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 批量删除仓库可储存物料信息 - * - * @param warehouseMaterialIds 需要删除的仓库可储存物料信息主键集合 - * @return 结果 - */ - public int deleteWmsWarehouseMaterialByWarehouseMaterialIds(Long[] warehouseMaterialIds); - - /** - * 删除仓库可储存物料信息信息 - * - * @param warehouseMaterialId 仓库可储存物料信息主键 - * @return 结果 - */ - public int deleteWmsWarehouseMaterialByWarehouseMaterialId(Long warehouseMaterialId); - - - /** - * 查询仓库可储存物料信息列表,join material - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 仓库可储存物料信息 - */ - public List selectWmsWarehouseMaterialJoinList(WmsWarehouseMaterial wmsWarehouseMaterial); - - /** - * 批量新增仓库配置物料信息 - * - * @param warehouseId 仓库ID - * @param materialIds 物料组 - */ - public void batchInsertWarehouseMaterial(Long warehouseId, Long[] materialIds); -} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockDetailServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockDetailServiceImpl.java new file mode 100644 index 00000000..190e29cd --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockDetailServiceImpl.java @@ -0,0 +1,190 @@ +package com.hw.wms.service.impl; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import com.hw.common.core.constant.WmsConstants; +import com.hw.common.core.exception.ServiceException; +import com.hw.common.security.utils.SecurityUtils; +import com.hw.wms.domain.WmsBaseLocation; +import com.hw.wms.domain.WmsProductOutstock; +import com.hw.wms.domain.WmsProductStock; +import com.hw.wms.mapper.WmsBaseLocationMapper; +import com.hw.wms.mapper.WmsProductOutstockMapper; +import com.hw.wms.mapper.WmsProductStockMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.hw.wms.mapper.WmsProductOutstockDetailMapper; +import com.hw.wms.domain.WmsProductOutstockDetail; +import com.hw.wms.service.IWmsProductOutstockDetailService; +import org.springframework.transaction.annotation.Transactional; + +/** + * 成品出库记录明细Service业务层处理 + * + * @author xins + * @date 2024-01-16 + */ +@Service +public class WmsProductOutstockDetailServiceImpl implements IWmsProductOutstockDetailService { + @Autowired + private WmsProductOutstockDetailMapper wmsProductOutstockDetailMapper; + + @Autowired + private WmsProductOutstockMapper wmsProductOutstockMapper; + + @Autowired + private WmsProductStockMapper wmsProductStockMapper; + + @Autowired + private WmsBaseLocationMapper wmsBaseLocationMapper; + + + /** + * 查询成品出库记录明细 + * + * @param productOutstockDetailId 成品出库记录明细主键 + * @return 成品出库记录明细 + */ + @Override + public WmsProductOutstockDetail selectWmsProductOutstockDetailByProductOutstockDetailId(Long productOutstockDetailId) { + return wmsProductOutstockDetailMapper.selectWmsProductOutstockDetailByProductOutstockDetailId(productOutstockDetailId); + } + + /** + * 查询成品出库记录明细列表 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 成品出库记录明细 + */ + @Override + public List selectWmsProductOutstockDetailList(WmsProductOutstockDetail wmsProductOutstockDetail) { + return wmsProductOutstockDetailMapper.selectWmsProductOutstockDetailList(wmsProductOutstockDetail); + } + + /** + * 新增成品出库记录明细 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertWmsProductOutstockDetail(WmsProductOutstockDetail wmsProductOutstockDetail) { + String locationCode = wmsProductOutstockDetail.getLocationCode(); + String productBarcode = wmsProductOutstockDetail.getProductBarcode(); + String productBatch = wmsProductOutstockDetail.getProductBatch(); + Long productOutstockId = wmsProductOutstockDetail.getProductOutstockId(); + + WmsBaseLocation location = wmsBaseLocationMapper.selectWmsBaseLocationByLocationCode(locationCode); + if (location == null) { + throw new ServiceException(String.format("库位编码%1$s错误", locationCode)); + } + + WmsProductOutstock productOutstock = wmsProductOutstockMapper.selectOnlyWmsProductOutstockByOutstockId(productOutstockId); + if (productOutstock == null) { + throw new ServiceException("没有此成品出库任务信息"); + } + + if (!productOutstock.getWarehouseId().equals(location.getWarehouseId())) { + throw new ServiceException("没有此仓库出库任务"); + } + + if (productOutstock.getExecuteStatus().equals(WmsConstants.WMS_EXECUTE_STATUS_FINISH)) { + throw new ServiceException("此出库申请已完成,不能再出库"); + } + + WmsProductStock productStock = wmsProductStockMapper.selectProductStockByLocationAndBatch(locationCode, productBatch, WmsConstants.PRODUCT_STOCK_STOCK_TYPE_PRODUCT); + if (productStock == null) { + throw new ServiceException("此库位没有库存"); + } + BigDecimal totalAmount = productStock.getTotalAmount(); + BigDecimal frozenAmount = productStock.getFrozenAmount() == null ? BigDecimal.ZERO : productStock.getFrozenAmount(); + BigDecimal occupyAmount = productStock.getOccupyAmount() == null ? BigDecimal.ZERO : productStock.getOccupyAmount(); + + BigDecimal availableAmount = totalAmount.subtract(frozenAmount).subtract(occupyAmount); + if (availableAmount.compareTo(BigDecimal.ZERO) <= 0) { + throw new ServiceException("此库位没有可出库存"); + } + + BigDecimal applyQty = productOutstock.getApplyQty() == null ? BigDecimal.ZERO : productOutstock.getApplyQty(); + BigDecimal outstockQty = productOutstock.getOutstockQty() == null ? BigDecimal.ZERO : productOutstock.getOutstockQty(); + + BigDecimal currentOutstockQty = outstockQty.add(BigDecimal.ONE); + if (applyQty.compareTo(currentOutstockQty) < 0) { + throw new ServiceException(String.format("出库申请数量为%1$s,不能再出库", applyQty)); + } + + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + //更新出库记录 + if (applyQty.compareTo(currentOutstockQty) == 0) { + productOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + productOutstock.setEndTime(currentDate); + } else if (applyQty.compareTo(currentOutstockQty) > 0) { + productOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_EXECUTING); + } + + productOutstock.setOutstockQty(currentOutstockQty); + if(productOutstock.getBeginTime()==null) { + productOutstock.setBeginTime(currentDate); + } + productOutstock.setUpdateDate(currentDate); + productOutstock.setUpdateBy(userName); + wmsProductOutstockMapper.updateWmsProductOutstock(productOutstock); + + //更新库存 + productStock.setTotalAmount(totalAmount.subtract(BigDecimal.ONE)); + productStock.setUpdateBy(userName); + productStock.setUpdateDate(currentDate); + wmsProductStockMapper.updateWmsProductStock(productStock); + + //插入出库记录明细 + wmsProductOutstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + wmsProductOutstockDetail.setBeginTime(currentDate); + wmsProductOutstockDetail.setEndTime(currentDate); + wmsProductOutstockDetail.setWarehouseId(location.getWarehouseId()); + wmsProductOutstockDetail.setPlanAmount(BigDecimal.ONE); + wmsProductOutstockDetail.setOutstockAmount(BigDecimal.ONE); + + wmsProductOutstockDetailMapper.insertWmsProductOutstockDetail(wmsProductOutstockDetail); + + //todo:同步erp + + return 1; + } + + /** + * 修改成品出库记录明细 + * + * @param wmsProductOutstockDetail 成品出库记录明细 + * @return 结果 + */ + @Override + public int updateWmsProductOutstockDetail(WmsProductOutstockDetail wmsProductOutstockDetail) { + return wmsProductOutstockDetailMapper.updateWmsProductOutstockDetail(wmsProductOutstockDetail); + } + + /** + * 批量删除成品出库记录明细 + * + * @param productOutstockDetailIds 需要删除的成品出库记录明细主键 + * @return 结果 + */ + @Override + public int deleteWmsProductOutstockDetailByProductOutstockDetailIds(Long[] productOutstockDetailIds) { + return wmsProductOutstockDetailMapper.deleteWmsProductOutstockDetailByProductOutstockDetailIds(productOutstockDetailIds); + } + + /** + * 删除成品出库记录明细信息 + * + * @param productOutstockDetailId 成品出库记录明细主键 + * @return 结果 + */ + @Override + public int deleteWmsProductOutstockDetailByProductOutstockDetailId(Long productOutstockDetailId) { + return wmsProductOutstockDetailMapper.deleteWmsProductOutstockDetailByProductOutstockDetailId(productOutstockDetailId); + } +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransactionalServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransactionalServiceImpl.java new file mode 100644 index 00000000..a05bdcd8 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransactionalServiceImpl.java @@ -0,0 +1,70 @@ +package com.hw.wms.service.impl; + +import com.hw.common.core.constant.WmsConstants; +import com.hw.common.core.exception.ServiceException; +import com.hw.wms.domain.WmsProductStock; +import com.hw.wms.domain.WmsTransfer; +import com.hw.wms.mapper.WmsProductStockMapper; +import com.hw.wms.mapper.WmsTransferMapper; +import com.hw.wms.service.IWmsTransactionalService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Description:用来在循环内执行事务时调用 + * @ProjectName:HwMes + * @Author:xins + * @Date:2024-01-15 10:29 + * @Version:1.0 + */ +@Service +public class WmsTransactionalServiceImpl implements IWmsTransactionalService { + @Autowired + private WmsProductStockMapper wmsProductStockMapper; + + @Autowired + private WmsTransferMapper wmsTransferMapper; + + + /** + * @Description: 申请转库(适合五楼半成品出半成品库入成品库) + * @ClassName: WmsTransactionalServiceImpl + * @Author : xins + * @Date :2024-01-15 10:37 + * @Version :1.0 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void applyTransfer(WmsTransfer wmsTransfer, String userName, Date currentDate) { + BigDecimal applyQty = wmsTransfer.getApplyQty(); + String productBatch = wmsTransfer.getProductBatch(); + String oriLocationCode = wmsTransfer.getOriLocationCode(); + WmsProductStock wmsProductStock = wmsProductStockMapper.selectProductStockByLocationAndBatch(oriLocationCode, productBatch,WmsConstants.PRODUCT_STOCK_STOCK_TYPE_SEMI); + if (wmsProductStock == null) { + throw new ServiceException("库位["+oriLocationCode+"]没有此批次["+productBatch+"]的库存"); + } + BigDecimal totalAmount = wmsProductStock.getTotalAmount() == null ? BigDecimal.ZERO : wmsProductStock.getTotalAmount(); + BigDecimal frozenAmount = wmsProductStock.getFrozenAmount() == null ? BigDecimal.ZERO : wmsProductStock.getFrozenAmount(); + BigDecimal occupyAmount = wmsProductStock.getOccupyAmount() == null ? BigDecimal.ZERO : wmsProductStock.getOccupyAmount(); + BigDecimal avaialableAmount = totalAmount.subtract(frozenAmount).subtract(occupyAmount); + if (avaialableAmount.compareTo(applyQty) < 0) { + throw new ServiceException("库位["+oriLocationCode+"],批次["+productBatch+"]的申请数量不能大于" + avaialableAmount); + } + + wmsProductStock.setOccupyAmount(occupyAmount.add(applyQty)); + + wmsProductStockMapper.updateWmsProductStock(wmsProductStock); + + wmsTransfer.setApplyBy(userName); + wmsTransfer.setApplyDate(currentDate); + wmsTransfer.setOperationType(WmsConstants.WMS_OPERATION_TYPE_MANUAL); + wmsTransfer.setTransferType(WmsConstants.WMS_TRANSFER_TYPE_OUT_TO_PRODUCT_STOCK); + wmsTransfer.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS); + wmsTransfer.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE); + wmsTransferMapper.insertWmsTransfer(wmsTransfer); + } +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java new file mode 100644 index 00000000..407fb7d4 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java @@ -0,0 +1,381 @@ +package com.hw.wms.service.impl; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import com.hw.common.core.constant.SecurityConstants; +import com.hw.common.core.constant.WmsConstants; +import com.hw.common.core.domain.R; +import com.hw.common.core.exception.ServiceException; +import com.hw.common.security.utils.SecurityUtils; +import com.hw.mes.api.RemoteMesService; +import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import com.hw.wms.domain.WmsBaseLocation; +import com.hw.wms.domain.WmsProductStock; +import com.hw.wms.mapper.WmsBaseLocationMapper; +import com.hw.wms.mapper.WmsProductStockMapper; +import com.hw.wms.mapper.WmsTransferDetailMapper; +import com.hw.wms.service.IWmsTransactionalService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; + +import com.hw.common.core.utils.StringUtils; +import org.springframework.transaction.annotation.Transactional; +import com.hw.wms.domain.WmsTransferDetail; +import com.hw.wms.mapper.WmsTransferMapper; +import com.hw.wms.domain.WmsTransfer; +import com.hw.wms.service.IWmsTransferService; + +import javax.annotation.Resource; + +/** + * 转库记录Service业务层处理 + * + * @author xins + * @date 2024-01-12 + */ +@Service +public class WmsTransferServiceImpl implements IWmsTransferService { + @Autowired + private WmsTransferMapper wmsTransferMapper; + + @Autowired + private WmsTransferDetailMapper wmsTransferDetailMapper; + + @Autowired + private WmsBaseLocationMapper wmsBaseLocationMapper; + + @Autowired + private WmsProductStockMapper wmsProductStockMapper; + + @Autowired + private IWmsTransactionalService wmsTransactionalService; + + @Resource + private RemoteMesService remoteMesService; + + /** + * 查询转库记录 + * + * @param transferId 转库记录主键 + * @return 转库记录 + */ + @Override + public WmsTransfer selectWmsTransferByTransferId(Long transferId) { + return wmsTransferMapper.selectWmsTransferByTransferId(transferId); + } + + /** + * 查询转库记录列表 + * + * @param wmsTransfer 转库记录 + * @return 转库记录 + */ + @Override + public List selectWmsTransferList(WmsTransfer wmsTransfer) { + return wmsTransferMapper.selectWmsTransferList(wmsTransfer); + } + + /** + * 新增转库记录 + * + * @param wmsTransfer 转库记录 + * @return 结果 + */ + @Transactional + @Override + public int insertWmsTransfer(WmsTransfer wmsTransfer) { + int rows = wmsTransferMapper.insertWmsTransfer(wmsTransfer); + insertWmsTransferDetail(wmsTransfer); + return rows; + } + + /** + * 修改转库记录 + * + * @param wmsTransfer 转库记录 + * @return 结果 + */ + @Transactional + @Override + public int updateWmsTransfer(WmsTransfer wmsTransfer) { + wmsTransferMapper.deleteWmsTransferDetailByTransferId(wmsTransfer.getTransferId()); + insertWmsTransferDetail(wmsTransfer); + return wmsTransferMapper.updateWmsTransfer(wmsTransfer); + } + + /** + * 批量删除转库记录 + * + * @param transferIds 需要删除的转库记录主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteWmsTransferByTransferIds(Long[] transferIds) { + wmsTransferMapper.deleteWmsTransferDetailByTransferIds(transferIds); + return wmsTransferMapper.deleteWmsTransferByTransferIds(transferIds); + } + + /** + * 删除转库记录信息 + * + * @param transferId 转库记录主键 + * @return 结果 + */ + @Transactional + @Override + public int deleteWmsTransferByTransferId(Long transferId) { + wmsTransferMapper.deleteWmsTransferDetailByTransferId(transferId); + return wmsTransferMapper.deleteWmsTransferByTransferId(transferId); + } + + /** + * 新增转库记录明细;移库合库记录对应的明细信息信息 + * + * @param wmsTransfer 转库记录对象 + */ + public void insertWmsTransferDetail(WmsTransfer wmsTransfer) { + List wmsTransferDetailList = wmsTransfer.getWmsTransferDetailList(); + Long transferId = wmsTransfer.getTransferId(); + if (StringUtils.isNotNull(wmsTransferDetailList)) { + List list = new ArrayList(); + for (WmsTransferDetail wmsTransferDetail : wmsTransferDetailList) { + wmsTransferDetail.setTransferId(transferId); + list.add(wmsTransferDetail); + } + if (list.size() > 0) { + wmsTransferMapper.batchWmsTransferDetail(list); + } + } + } + + + /** + * 申请转库(适合五楼半成品库入成品库) + * + * @param wmsTransfers + * @return + */ + @Override + public int applyTransfers(List wmsTransfers) { + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + //todo:生成任务编号 + //需要在循环内执行事务,不能用this调用,需要新建一个Service + wmsTransfers.forEach(wmsTransfer -> { + wmsTransactionalService.applyTransfer(wmsTransfer, userName, currentDate); + }); + + return 1; + } + + /** + * 查询转库记录列表,Join原仓库,目标仓库和物料 + * + * @param wmsTransfer 转库记录 + * @return 转库记录 + */ + @Override + public List selectWmsTransferJoinList(WmsTransfer wmsTransfer) { + return wmsTransferMapper.selectWmsTransferJoinList(wmsTransfer); + } + + + /** + * 转库出库,适合五楼半成品出半成品库 + * + * @param wmsTransferDetail + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int transferOutstock(WmsTransferDetail wmsTransferDetail) { + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + String locationCode = wmsTransferDetail.getLocationCode(); + String materialBarcode = wmsTransferDetail.getMaterialBarcode(); + + R mesBaseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER); + if (mesBaseBarcodeInfoR == null) { + throw new ServiceException("物料编码错误"); + } + MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoR.getData(); + if (mesBaseBarcodeInfo == null) { + throw new ServiceException("物料编码错误"); + } + + String productBatch = mesBaseBarcodeInfo.getBatchCode(); + + Long transferId = wmsTransferDetail.getTransferId(); + WmsTransfer wmsTransfer; + + if (transferId == null) { + WmsTransfer queryTransfer = new WmsTransfer(); + queryTransfer.setOriLocationCode(locationCode); + queryTransfer.setProductBatch(productBatch); + queryTransfer.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_NOT_FINISH); + List wmsTransfers = wmsTransferMapper.selectWmsTransferList(queryTransfer); + if (wmsTransfers == null || wmsTransfers.isEmpty()) { + throw new ServiceException("没有此任务"); + } + if (wmsTransfers.size() > 1) { + throw new ServiceException("有多条此库位任务,请选择具体任务后点击出库"); + } + + wmsTransfer = wmsTransfers.get(0); + } else { + wmsTransfer = wmsTransferMapper.selectWmsTransferByTransferId(transferId); + } + + BigDecimal applyQty = wmsTransfer.getApplyQty(); + BigDecimal outstockQty = wmsTransfer.getOutstockQty() == null ? BigDecimal.ZERO : wmsTransfer.getOutstockQty(); + BigDecimal currentOutstockQty = outstockQty.add(BigDecimal.ONE); + if (applyQty.compareTo(currentOutstockQty) < 0) { + throw new ServiceException("已出库完成,不能多次出库"); + } + + //插入转库任务明细 + wmsTransferDetail.setTransferId(wmsTransfer.getTransferId()); + wmsTransferDetail.setInstockBatch(productBatch); + wmsTransferDetail.setMaterialId(mesBaseBarcodeInfo.getMaterialId()); + wmsTransferDetail.setRealAmount(BigDecimal.ONE); + wmsTransferDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + wmsTransferDetail.setTransferDetailType(WmsConstants.WMS_TRANSFER_DETAIL_TYPE_OUTSTOCK); + wmsTransferDetail.setCreateBy(userName); + wmsTransferDetail.setCreateDate(currentDate); + wmsTransferDetail.setExecutePerson(userName); + wmsTransferDetail.setExecuteTime(currentDate); + wmsTransferDetailMapper.insertWmsTransferDetail(wmsTransferDetail); + + //更新转库任务 + wmsTransfer.setOutstockQty(currentOutstockQty); + wmsTransfer.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_EXECUTING); + wmsTransfer.setUpdateDate(currentDate); + wmsTransfer.setUpdateBy(userName); + wmsTransferMapper.updateWmsTransfer(wmsTransfer); + + //更新成品库存 + WmsProductStock productStock = wmsProductStockMapper.selectProductStockByLocationAndBatch(locationCode, productBatch,WmsConstants.PRODUCT_STOCK_STOCK_TYPE_SEMI); + productStock.setTotalAmount(productStock.getTotalAmount().subtract(BigDecimal.ONE)); + productStock.setOccupyAmount(productStock.getOccupyAmount().subtract(BigDecimal.ONE)); + productStock.setUpdateDate(currentDate); + productStock.setUpdateBy(userName); + wmsProductStockMapper.updateWmsProductStock(productStock); + + return 1; + } + + /** + * 转库入库,适合五楼半成品入成品库 + * + * @param wmsTransferDetail + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public int transferInstock(WmsTransferDetail wmsTransferDetail) { + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + String locationCode = wmsTransferDetail.getLocationCode(); + String materialBarcode = wmsTransferDetail.getMaterialBarcode(); + + R mesBaseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER); + if (mesBaseBarcodeInfoR == null) { + throw new ServiceException("物料编码错误"); + } + MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoR.getData(); + if (mesBaseBarcodeInfo == null) { + throw new ServiceException("物料编码错误"); + } + String productBatch = mesBaseBarcodeInfo.getBatchCode(); + + WmsBaseLocation location = wmsBaseLocationMapper.selectWmsBaseLocationByLocationCode(locationCode); + Long warehouseId = location.getWarehouseId(); + + Long transferId = wmsTransferDetail.getTransferId(); + WmsTransfer wmsTransfer; + if (transferId == null) { + WmsTransfer queryTransfer = new WmsTransfer(); + queryTransfer.setTargetWarehouseId(warehouseId); + queryTransfer.setProductBatch(productBatch); + queryTransfer.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_EXECUTING); + List wmsTransfers = wmsTransferMapper.selectWmsTransferList(queryTransfer); + if (wmsTransfers == null || wmsTransfers.isEmpty()) { + throw new ServiceException("没有此任务或者还未出库"); + } + if (wmsTransfers.size() > 1) { + throw new ServiceException("有多条此库位任务,请选择具体任务后点击出库"); + } + + wmsTransfer = wmsTransfers.get(0); + } else { + wmsTransfer = wmsTransferMapper.selectWmsTransferByTransferId(transferId); + } + + BigDecimal applyQty = wmsTransfer.getApplyQty(); + BigDecimal outstockQty = wmsTransfer.getOutstockQty() == null ? BigDecimal.ZERO : wmsTransfer.getOutstockQty(); + BigDecimal instockQty = wmsTransfer.getInstockQty(); + BigDecimal currentInstockQty = instockQty.add(BigDecimal.ONE); + + if (outstockQty.compareTo(currentInstockQty) < 0) { + throw new ServiceException("请先出库再入库"); + } + + //插入转库任务明细 + wmsTransferDetail.setTransferId(wmsTransfer.getTransferId()); + wmsTransferDetail.setInstockBatch(productBatch); + wmsTransferDetail.setMaterialId(mesBaseBarcodeInfo.getMaterialId()); + wmsTransferDetail.setRealAmount(BigDecimal.ONE); + wmsTransferDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + wmsTransferDetail.setTransferDetailType(WmsConstants.WMS_TRANSFER_DETAIL_TYPE_INSTOCK); + wmsTransferDetail.setCreateBy(userName); + wmsTransferDetail.setCreateDate(currentDate); + wmsTransferDetail.setExecutePerson(userName); + wmsTransferDetail.setExecuteTime(currentDate); + wmsTransferDetailMapper.insertWmsTransferDetail(wmsTransferDetail); + + //更新转库任务 + wmsTransfer.setInstockQty(currentInstockQty); + if (applyQty.compareTo(currentInstockQty) == 0) {//出库和入库都已完成 + wmsTransfer.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + } + + wmsTransfer.setUpdateDate(currentDate); + wmsTransfer.setUpdateBy(userName); + wmsTransferMapper.updateWmsTransfer(wmsTransfer); + + //更新成品库存 + WmsProductStock productStock = wmsProductStockMapper.selectProductStockByLocationAndBatch(locationCode, productBatch,WmsConstants.PRODUCT_STOCK_STOCK_TYPE_PRODUCT); + if (productStock == null) { + productStock = new WmsProductStock(); + productStock.setTotalAmount(BigDecimal.ONE); + productStock.setWarehouseId(warehouseId); + productStock.setLocationCode(locationCode); + productStock.setStockType(WmsConstants.PRODUCT_STOCK_STOCK_TYPE_PRODUCT); + productStock.setProductBatch(productBatch); + // productStock.setQualityStatus();//todo: 获取质检状态 + productStock.setProductId(mesBaseBarcodeInfo.getMaterialId()); + productStock.setPlanCode(mesBaseBarcodeInfo.getPlanCode()); + productStock.setPlanDetailCode(mesBaseBarcodeInfo.getPlanDetailCode()); + productStock.setSaleorderCode(mesBaseBarcodeInfo.getSaleorderCode()); + productStock.setCreateDate(currentDate); + productStock.setCreateBy(userName); + wmsProductStockMapper.insertWmsProductStock(productStock); + } else { + productStock.setTotalAmount(productStock.getTotalAmount().add(BigDecimal.ONE)); + productStock.setUpdateDate(currentDate); + productStock.setUpdateBy(userName); + wmsProductStockMapper.updateWmsProductStock(productStock); + } + + + //TODO:同步ERP库存 + return 1; + } + + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java deleted file mode 100644 index 7fd5ae53..00000000 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.hw.wms.service.impl; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import com.hw.common.core.constant.WmsConstants; -import com.hw.common.core.utils.DateUtils; -import com.hw.common.core.utils.StringUtils; -import com.hw.common.security.utils.SecurityUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.hw.wms.mapper.WmsWarehouseMaterialMapper; -import com.hw.wms.domain.WmsWarehouseMaterial; -import com.hw.wms.service.IWmsWarehouseMaterialService; - -/** - * 仓库可储存物料信息Service业务层处理 - * - * @author xins - * @date 2024-01-09 - */ -@Service -public class WmsWarehouseMaterialServiceImpl implements IWmsWarehouseMaterialService { - @Autowired - private WmsWarehouseMaterialMapper wmsWarehouseMaterialMapper; - - /** - * 查询仓库可储存物料信息 - * - * @param warehouseId 仓库可储存物料信息主键 - * @return 仓库可储存物料信息 - */ - @Override - public WmsWarehouseMaterial selectWmsWarehouseMaterialByWarehouseId(Long warehouseId) { - return wmsWarehouseMaterialMapper.selectWmsWarehouseMaterialByWarehouseId(warehouseId); - } - - /** - * 查询仓库可储存物料信息列表 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 仓库可储存物料信息 - */ - @Override - public List selectWmsWarehouseMaterialList(WmsWarehouseMaterial wmsWarehouseMaterial) { - return wmsWarehouseMaterialMapper.selectWmsWarehouseMaterialList(wmsWarehouseMaterial); - } - - /** - * 新增仓库可储存物料信息 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 结果 - */ - @Override - public int insertWmsWarehouseMaterial(WmsWarehouseMaterial wmsWarehouseMaterial) { - wmsWarehouseMaterial.setCreateTime(DateUtils.getNowDate()); - return wmsWarehouseMaterialMapper.insertWmsWarehouseMaterial(wmsWarehouseMaterial); - } - - /** - * 修改仓库可储存物料信息 - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 结果 - */ - @Override - public int updateWmsWarehouseMaterial(WmsWarehouseMaterial wmsWarehouseMaterial) { - return wmsWarehouseMaterialMapper.updateWmsWarehouseMaterial(wmsWarehouseMaterial); - } - - /** - * 批量删除仓库可储存物料信息 - * - * @param wmsWarehouseMaterialIds 需要删除的仓库可储存物料信息主键 - * @return 结果 - */ - @Override - public int deleteWmsWarehouseMaterialByWarehouseMaterialIds(Long[] wmsWarehouseMaterialIds) { - return wmsWarehouseMaterialMapper.deleteWmsWarehouseMaterialByWarehouseMaterialIds(wmsWarehouseMaterialIds); - } - - /** - * 删除仓库可储存物料信息信息 - * - * @param warehouseMaterialId 仓库可储存物料信息主键 - * @return 结果 - */ - @Override - public int deleteWmsWarehouseMaterialByWarehouseMaterialId(Long warehouseMaterialId) { - return wmsWarehouseMaterialMapper.deleteWmsWarehouseMaterialByWarehouseMaterialId(warehouseMaterialId); - } - - - /** - * 查询仓库可储存物料信息列表,join material - * - * @param wmsWarehouseMaterial 仓库可储存物料信息 - * @return 仓库可储存物料信息 - */ - @Override - public List selectWmsWarehouseMaterialJoinList(WmsWarehouseMaterial wmsWarehouseMaterial) { - return wmsWarehouseMaterialMapper.selectWmsWarehouseMaterialJoinList(wmsWarehouseMaterial); - } - - /** - * 批量新增仓库配置物料信息 - * - * @param warehouseId 仓库ID - * @param materialIds 物料组 - */ - @Override - public void batchInsertWarehouseMaterial(Long warehouseId, Long[] materialIds) { - if (StringUtils.isNotEmpty(materialIds)) { - String userName = SecurityUtils.getUsername(); - Date currentDate = new Date(); - // 新增仓库的物料配置信息 - List list = new ArrayList(); - for (Long materialId : materialIds) { - WmsWarehouseMaterial warehouseMaterial = new WmsWarehouseMaterial(); - warehouseMaterial.setWarehouseId(warehouseId); - warehouseMaterial.setStorageType(WmsConstants.WMS_WAREHOUSE_MATERIAL_STORAGE_TYPE_MATERIAL); - warehouseMaterial.setStorageId(materialId); - warehouseMaterial.setCreateBy(userName); - warehouseMaterial.setCreateTime(currentDate); - list.add(warehouseMaterial); - } - wmsWarehouseMaterialMapper.batchInsertWarehouseMaterial(list); - } - } - - -} diff --git a/hw-modules/hw-wms/src/main/resources/bootstrap.yml b/hw-modules/hw-wms/src/main/resources/bootstrap.yml index 900e86ba..15fc8b2a 100644 --- a/hw-modules/hw-wms/src/main/resources/bootstrap.yml +++ b/hw-modules/hw-wms/src/main/resources/bootstrap.yml @@ -15,12 +15,12 @@ spring: discovery: # 服务注册地址 server-addr: 175.27.215.92:8848 - namespace: jyhb + namespace: jyhb-test group: DEFAULT_GROUP config: # 配置中心地址 server-addr: 175.27.215.92:8848 - namespace: jyhb + namespace: jyhb-test group: DEFAULT_GROUP # 配置文件格式 file-extension: yml diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockDetailMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockDetailMapper.xml new file mode 100644 index 00000000..5e78951a --- /dev/null +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockDetailMapper.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + select product_outstock_detail_id, product_outstock_id, warehouse_id, location_code, product_barcode, product_batch, product_id, plan_amount, outstock_amount, execute_status, erp_status, update_by, update_date, begin_time, end_time from wms_product_outstock_detail + + + + + + + + insert into wms_product_outstock_detail + + product_outstock_id, + warehouse_id, + location_code, + product_barcode, + product_batch, + product_id, + plan_amount, + outstock_amount, + execute_status, + erp_status, + update_by, + update_date, + begin_time, + end_time, + + + #{productOutstockId}, + #{warehouseId}, + #{locationCode}, + #{productBarcode}, + #{productBatch}, + #{productId}, + #{planAmount}, + #{outstockAmount}, + #{executeStatus}, + #{erpStatus}, + #{updateBy}, + #{updateDate}, + #{beginTime}, + #{endTime}, + + + + + update wms_product_outstock_detail + + product_outstock_id = #{productOutstockId}, + warehouse_id = #{warehouseId}, + location_code = #{locationCode}, + product_barcode = #{productBarcode}, + product_batch = #{productBatch}, + product_id = #{productId}, + plan_amount = #{planAmount}, + outstock_amount = #{outstockAmount}, + execute_status = #{executeStatus}, + erp_status = #{erpStatus}, + update_by = #{updateBy}, + update_date = #{updateDate}, + begin_time = #{beginTime}, + end_time = #{endTime}, + + where product_outstock_detail_id = #{productOutstockDetailId} + + + + delete from wms_product_outstock_detail where product_outstock_detail_id = #{productOutstockDetailId} + + + + delete from wms_product_outstock_detail where product_outstock_detail_id in + + #{productOutstockDetailId} + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsTransferDetailMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsTransferDetailMapper.xml new file mode 100644 index 00000000..ca3b4ad2 --- /dev/null +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsTransferDetailMapper.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select transfer_detail_id, transfer_id, location_code, material_barcode, instock_batch, material_id, plan_amount, real_amount, execute_status, execute_person, execute_time, transfer_detail_type, machine_name, create_by, create_date, update_by, update_date, active_flag from wms_transfer_detail + + + + + + + + insert into wms_transfer_detail + + transfer_id, + location_code, + material_barcode, + instock_batch, + material_id, + plan_amount, + real_amount, + execute_status, + execute_person, + execute_time, + transfer_detail_type, + machine_name, + create_by, + create_date, + update_by, + update_date, + active_flag, + + + #{transferId}, + #{locationCode}, + #{materialBarcode}, + #{instockBatch}, + #{materialId}, + #{planAmount}, + #{realAmount}, + #{executeStatus}, + #{executePerson}, + #{executeTime}, + #{transferDetailType}, + #{machineName}, + #{createBy}, + #{createDate}, + #{updateBy}, + #{updateDate}, + #{activeFlag}, + + + + + update wms_transfer_detail + + transfer_id = #{transferId}, + location_code = #{locationCode}, + material_barcode = #{materialBarcode}, + instock_batch = #{instockBatch}, + material_id = #{materialId}, + plan_amount = #{planAmount}, + real_amount = #{realAmount}, + execute_status = #{executeStatus}, + execute_person = #{executePerson}, + execute_time = #{executeTime}, + transfer_detail_type = #{transferDetailType}, + machine_name = #{machineName}, + create_by = #{createBy}, + create_date = #{createDate}, + update_by = #{updateBy}, + update_date = #{updateDate}, + active_flag = #{activeFlag}, + + where transfer_detail_id = #{transferDetailId} + + + + delete from wms_transfer_detail where transfer_detail_id = #{transferDetailId} + + + + delete from wms_transfer_detail where transfer_detail_id in + + #{transferDetailId} + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsTransferMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsTransferMapper.xml new file mode 100644 index 00000000..c20ada95 --- /dev/null +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsTransferMapper.xml @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select transfer_id, task_code, ori_warehouse_id, ori_location_code, target_warehouse_id, target_location_code, material_id, product_batch, plan_code, apply_qty, outstock_qty, instock_qty, operation_type, transfer_type, apply_reason, audit_reason, audit_status, execute_status, apply_by, apply_date, audit_by, audit_date, update_by, update_date, begin_time, end_time from wms_transfer + + + + + + + + insert into wms_transfer + + task_code, + ori_warehouse_id, + ori_location_code, + target_warehouse_id, + target_location_code, + material_id, + product_batch, + plan_code, + apply_qty, + outstock_qty, + instock_qty, + operation_type, + transfer_type, + apply_reason, + audit_reason, + audit_status, + execute_status, + apply_by, + apply_date, + audit_by, + audit_date, + update_by, + update_date, + begin_time, + end_time, + + + #{taskCode}, + #{oriWarehouseId}, + #{oriLocationCode}, + #{targetWarehouseId}, + #{targetLocationCode}, + #{materialId}, + #{productBatch}, + #{planCode}, + #{applyQty}, + #{outstockQty}, + #{instockQty}, + #{operationType}, + #{transferType}, + #{applyReason}, + #{auditReason}, + #{auditStatus}, + #{executeStatus}, + #{applyBy}, + #{applyDate}, + #{auditBy}, + #{auditDate}, + #{updateBy}, + #{updateDate}, + #{beginTime}, + #{endTime}, + + + + + update wms_transfer + + task_code = #{taskCode}, + ori_warehouse_id = #{oriWarehouseId}, + ori_location_code = #{oriLocationCode}, + target_warehouse_id = #{targetWarehouseId}, + target_location_code = #{targetLocationCode}, + material_id = #{materialId}, + product_batch = #{productBatch}, + plan_code = #{planCode}, + apply_qty = #{applyQty}, + outstock_qty = #{outstockQty}, + instock_qty = #{instockQty}, + operation_type = #{operationType}, + transfer_type = #{transferType}, + apply_reason = #{applyReason}, + audit_reason = #{auditReason}, + audit_status = #{auditStatus}, + execute_status = #{executeStatus}, + apply_by = #{applyBy}, + apply_date = #{applyDate}, + audit_by = #{auditBy}, + audit_date = #{auditDate}, + update_by = #{updateBy}, + update_date = #{updateDate}, + begin_time = #{beginTime}, + end_time = #{endTime}, + + where transfer_id = #{transferId} + + + + delete from wms_transfer where transfer_id = #{transferId} + + + + delete from wms_transfer where transfer_id in + + #{transferId} + + + + + delete from wms_transfer_detail where transfer_id in + + #{transferId} + + + + + delete from wms_transfer_detail where transfer_id = #{transferId} + + + + insert into wms_transfer_detail( transfer_detail_id, transfer_id, location_code, material_barcode, instock_batch, material_id, plan_amount, real_amount, execute_status, execute_person, execute_time, transfer_detail_type, machine_name, create_by, create_date, update_by, update_date, active_flag) values + + ( #{item.transferDetailId}, #{item.transferId}, #{item.locationCode}, #{item.materialBarcode}, #{item.instockBatch}, #{item.materialId}, #{item.planAmount}, #{item.realAmount}, #{item.executeStatus}, #{item.executePerson}, #{item.executeTime}, #{item.transferDetailType}, #{item.machineName}, #{item.createBy}, #{item.createDate}, #{item.updateBy}, #{item.updateDate}, #{item.activeFlag}) + + + + + + + + + + + + + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsWarehouseMaterialMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsWarehouseMaterialMapper.xml deleted file mode 100644 index 85025480..00000000 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsWarehouseMaterialMapper.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - select warehouse_id, location_code, storage_type, storage_id, create_time, create_by from wms_warehouse_material - - - - - - - - insert into wms_warehouse_material - - warehouse_id, - location_code, - storage_type, - storage_id, - create_time, - create_by, - - - #{warehouseId}, - #{locationCode}, - #{storageType}, - #{storageId}, - #{createTime}, - #{createBy}, - - - - - update wms_warehouse_material - - location_code = #{locationCode}, - storage_type = #{storageType}, - storage_id = #{storageId}, - create_time = #{createTime}, - create_by = #{createBy}, - - where warehouse_id = #{warehouseId} - - - - delete from wms_warehouse_material where warehouse_material_id = #{warehouseMaterialId} - - - - delete from wms_warehouse_material where warehouse_material_id in - - #{warehouseMaterialId} - - - - - - - - - - insert into wms_warehouse_material(warehouse_id, storage_type,storage_id,create_time,create_by) values - - (#{item.warehouseId},#{item.storageType},#{item.storageId},#{item.createTime},#{item.createBy}) - - - - -