From 3ce6be7849384f4ac5df334624f85d4ddc4f921f Mon Sep 17 00:00:00 2001 From: "JinLu.Yin" <411641505@qq.com> Date: Fri, 16 Sep 2022 22:20:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E5=BA=93=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=A0=B8=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ktg/common/constant/UserConstants.java | 9 +- .../wm/controller/WmRtIssueController.java | 36 ++- .../ktg/mes/wm/domain/tx/RtIssueTxBean.java | 282 ++++++++++++++++++ .../ktg/mes/wm/mapper/WmRtIssueMapper.java | 8 + .../mes/wm/service/IStorageCoreService.java | 7 + .../ktg/mes/wm/service/IWmRtIssueService.java | 9 + .../service/impl/StorageCoreServiceImpl.java | 33 ++ .../wm/service/impl/WmRtIssueServiceImpl.java | 6 + .../resources/mapper/wm/WmRtIssueMapper.xml | 47 +++ 9 files changed, 430 insertions(+), 7 deletions(-) create mode 100644 ktg-mes/src/main/java/com/ktg/mes/wm/domain/tx/RtIssueTxBean.java diff --git a/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java b/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java index 10ab41e..e26be49 100644 --- a/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java +++ b/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java @@ -122,10 +122,13 @@ public class UserConstants */ public static final String TRANSACTION_TYPE_ITEM_RECPT = "ITEM_RECPT"; //原材料接收入库 public static final String TRANSACTION_TYPE_ITEM_RTV = "ITEM_RTV"; //原材料退回供应商 - public static final String TRANSACTION_TYPE_ITEM_ISSUE_OUT = "ITEM_ISSUE_OUT"; //生产领用 - public static final String TRANSACTION_TYPE_ITEM_ISSUE_IN = "ITEM_ISSUE_IN"; - public static final String TRANSACTION_TYPE_ITEM_RS = "ITEM_RS"; //生产退库 + public static final String TRANSACTION_TYPE_ITEM_ISSUE_OUT = "ITEM_ISSUE_OUT"; //生产领用-出库事务 + public static final String TRANSACTION_TYPE_ITEM_ISSUE_IN = "ITEM_ISSUE_IN"; //生产领用-入库事务 + + public static final String TRANSACTION_TYPE_ITEM_RT_ISSUE_OUT = "ITEM_RT_ISSUE_OUT"; //生产退库-出库事务 + public static final String TRANSACTION_TYPE_ITEM_RT_ISSUE_IN = "ITEM_RT_ISSUE_IN"; //生产退库-入库事务 + public static final String TRANSACTION_TYPE_WAREHOUSE_TRANS_OUT = "TRANS_OUT"; //移库,移出 public static final String TRANSACTION_TYPE_WAREHOUSE_TRANS_IN = "TRANS_IN"; //移库,移入 public static final String TRANSACTION_TYPE_PRODUCT_ISSUE = "PRODUCT_ISSUE"; //销售出库 diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmRtIssueController.java b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmRtIssueController.java index e69edba..75cb1d5 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmRtIssueController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmRtIssueController.java @@ -3,11 +3,11 @@ package com.ktg.mes.wm.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.collection.CollUtil; import com.ktg.common.constant.UserConstants; import com.ktg.common.utils.StringUtils; -import com.ktg.mes.wm.domain.WmStorageArea; -import com.ktg.mes.wm.domain.WmStorageLocation; -import com.ktg.mes.wm.domain.WmWarehouse; +import com.ktg.mes.wm.domain.*; +import com.ktg.mes.wm.domain.tx.RtIssueTxBean; import com.ktg.mes.wm.service.*; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; @@ -24,7 +24,6 @@ import com.ktg.common.annotation.Log; import com.ktg.common.core.controller.BaseController; import com.ktg.common.core.domain.AjaxResult; import com.ktg.common.enums.BusinessType; -import com.ktg.mes.wm.domain.WmRtIssue; import com.ktg.common.utils.poi.ExcelUtil; import com.ktg.common.core.page.TableDataInfo; @@ -44,6 +43,7 @@ public class WmRtIssueController extends BaseController @Autowired private IWmRtIssueLineService wmRtIssueLineService; + @Autowired private IWmWarehouseService wmWarehouseService; @@ -166,4 +166,32 @@ public class WmRtIssueController extends BaseController } return toAjax(wmRtIssueService.deleteWmRtIssueByRtIds(rtIds)); } + + /** + * 执行退料 + * @param rtId + * @return + */ + @PreAuthorize("@ss.hasPermi('mes:wm:rtissue:edit')") + @Log(title = "生产退料单头", businessType = BusinessType.UPDATE) + @Transactional + @PutMapping("/{rtId}") + public AjaxResult execute(@PathVariable Long rtId){ + WmRtIssue rtIssue = wmRtIssueService.selectWmRtIssueByRtId(rtId); + WmRtIssueLine param = new WmRtIssueLine(); + param.setRtId(rtId); + List lines = wmRtIssueLineService.selectWmRtIssueLineList(param); + if(CollUtil.isEmpty(lines)){ + return AjaxResult.error("请选择要退料的物资"); + } + + List beans = wmRtIssueService.getTxBeans(rtId); + + + + rtIssue.setStatus(UserConstants.ORDER_STATUS_FINISHED); + wmRtIssueService.updateWmRtIssue(rtIssue); + return AjaxResult.success(); + } + } diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/domain/tx/RtIssueTxBean.java b/ktg-mes/src/main/java/com/ktg/mes/wm/domain/tx/RtIssueTxBean.java new file mode 100644 index 0000000..481e77b --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/domain/tx/RtIssueTxBean.java @@ -0,0 +1,282 @@ +package com.ktg.mes.wm.domain.tx; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ktg.common.core.domain.BaseEntity; + +import java.math.BigDecimal; +import java.util.Date; + +public class RtIssueTxBean extends BaseEntity { + + private static final long serialVersionUID = 1L; + + private Long materialStockId; + + /** 物料ID */ + private Long itemId; + + /** 物料编码 */ + private String itemCode; + + /** 物料名称 */ + private String itemName; + + /** 规格型号 */ + private String specification; + + /** 单位 */ + private String unitOfMeasure; + + /** 入库批次号 */ + private String batchCode; + + /** 仓库ID */ + private Long warehouseId; + + /** 仓库编码 */ + private String warehouseCode; + + /** 仓库名称 */ + private String warehouseName; + + /** 库区ID */ + private Long locationId; + + /** 库区编码 */ + private String locationCode; + + /** 库区名称 */ + private String locationName; + + /** 库位ID */ + private Long areaId; + + /** 库位编码 */ + private String areaCode; + + /** 库位名称 */ + private String areaName; + + /** 单据类型 */ + private String sourceDocType; + + /** 单据ID */ + private Long sourceDocId; + + /** 单据编号 */ + private String sourceDocCode; + + /** 单据行ID */ + private Long sourceDocLineId; + + /** 事务数量 */ + private BigDecimal transactionQuantity; + + /** 入库日期 */ + @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss") + private Date recptDate; + + public Long getMaterialStockId() { + return materialStockId; + } + + public void setMaterialStockId(Long materialStockId) { + this.materialStockId = materialStockId; + } + + public Long getItemId() { + return itemId; + } + + public void setItemId(Long itemId) { + this.itemId = itemId; + } + + public String getItemCode() { + return itemCode; + } + + public void setItemCode(String itemCode) { + this.itemCode = itemCode; + } + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + + public String getSpecification() { + return specification; + } + + public void setSpecification(String specification) { + this.specification = specification; + } + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public String getBatchCode() { + return batchCode; + } + + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public Long getWarehouseId() { + return warehouseId; + } + + public void setWarehouseId(Long warehouseId) { + this.warehouseId = warehouseId; + } + + public String getWarehouseCode() { + return warehouseCode; + } + + public void setWarehouseCode(String warehouseCode) { + this.warehouseCode = warehouseCode; + } + + public String getWarehouseName() { + return warehouseName; + } + + public void setWarehouseName(String warehouseName) { + this.warehouseName = warehouseName; + } + + public Long getLocationId() { + return locationId; + } + + public void setLocationId(Long locationId) { + this.locationId = locationId; + } + + public String getLocationCode() { + return locationCode; + } + + public void setLocationCode(String locationCode) { + this.locationCode = locationCode; + } + + public String getLocationName() { + return locationName; + } + + public void setLocationName(String locationName) { + this.locationName = locationName; + } + + public Long getAreaId() { + return areaId; + } + + public void setAreaId(Long areaId) { + this.areaId = areaId; + } + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getSourceDocType() { + return sourceDocType; + } + + public void setSourceDocType(String sourceDocType) { + this.sourceDocType = sourceDocType; + } + + public Long getSourceDocId() { + return sourceDocId; + } + + public void setSourceDocId(Long sourceDocId) { + this.sourceDocId = sourceDocId; + } + + public String getSourceDocCode() { + return sourceDocCode; + } + + public void setSourceDocCode(String sourceDocCode) { + this.sourceDocCode = sourceDocCode; + } + + public Long getSourceDocLineId() { + return sourceDocLineId; + } + + public void setSourceDocLineId(Long sourceDocLineId) { + this.sourceDocLineId = sourceDocLineId; + } + + public BigDecimal getTransactionQuantity() { + return transactionQuantity; + } + + public void setTransactionQuantity(BigDecimal transactionQuantity) { + this.transactionQuantity = transactionQuantity; + } + + public Date getRecptDate() { + return recptDate; + } + + public void setRecptDate(Date recptDate) { + this.recptDate = recptDate; + } + + @Override + public String toString() { + return "RtIssueTxBean{" + + "materialStockId=" + materialStockId + + ", itemId=" + itemId + + ", itemCode='" + itemCode + '\'' + + ", itemName='" + itemName + '\'' + + ", specification='" + specification + '\'' + + ", unitOfMeasure='" + unitOfMeasure + '\'' + + ", batchCode='" + batchCode + '\'' + + ", warehouseId=" + warehouseId + + ", warehouseCode='" + warehouseCode + '\'' + + ", warehouseName='" + warehouseName + '\'' + + ", locationId=" + locationId + + ", locationCode='" + locationCode + '\'' + + ", locationName='" + locationName + '\'' + + ", areaId=" + areaId + + ", areaCode='" + areaCode + '\'' + + ", areaName='" + areaName + '\'' + + ", sourceDocType='" + sourceDocType + '\'' + + ", sourceDocId=" + sourceDocId + + ", sourceDocCode='" + sourceDocCode + '\'' + + ", sourceDocLineId=" + sourceDocLineId + + ", transactionQuantity=" + transactionQuantity + + ", recptDate=" + recptDate + + '}'; + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmRtIssueMapper.java b/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmRtIssueMapper.java index 31816bd..bb6b8f7 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmRtIssueMapper.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmRtIssueMapper.java @@ -2,6 +2,7 @@ package com.ktg.mes.wm.mapper; import java.util.List; import com.ktg.mes.wm.domain.WmRtIssue; +import com.ktg.mes.wm.domain.tx.RtIssueTxBean; /** * 生产退料单头Mapper接口 @@ -27,6 +28,13 @@ public interface WmRtIssueMapper */ public List selectWmRtIssueList(WmRtIssue wmRtIssue); + /** + * + * @param rtId + * @return + */ + public List getTxBeans(Long rtId); + /** * 检查编号是否重复 * @param wmRtIssue diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IStorageCoreService.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IStorageCoreService.java index d2d9723..aa14ca8 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IStorageCoreService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IStorageCoreService.java @@ -3,6 +3,7 @@ package com.ktg.mes.wm.service; import com.ktg.mes.wm.domain.WmItemRecptLine; import com.ktg.mes.wm.domain.tx.IssueTxBean; import com.ktg.mes.wm.domain.tx.ItemRecptTxBean; +import com.ktg.mes.wm.domain.tx.RtIssueTxBean; import com.ktg.mes.wm.domain.tx.RtVendorTxBean; import org.springframework.stereotype.Service; @@ -29,4 +30,10 @@ public interface IStorageCoreService { */ public void processIssue(List lines); + /** + * 处理生产退料 + * @param lines + */ + public void processRtIssue(List lines); + } diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmRtIssueService.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmRtIssueService.java index febb16a..ee2c9e6 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmRtIssueService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmRtIssueService.java @@ -2,6 +2,7 @@ package com.ktg.mes.wm.service; import java.util.List; import com.ktg.mes.wm.domain.WmRtIssue; +import com.ktg.mes.wm.domain.tx.RtIssueTxBean; /** * 生产退料单头Service接口 @@ -65,4 +66,12 @@ public interface IWmRtIssueService * @return 结果 */ public int deleteWmRtIssueByRtId(Long rtId); + + /** + * + * @param rtId + * @return + */ + public List getTxBeans(Long rtId); + } diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/StorageCoreServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/StorageCoreServiceImpl.java index adf2827..4e516ad 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/StorageCoreServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/StorageCoreServiceImpl.java @@ -9,6 +9,7 @@ import com.ktg.mes.wm.domain.WmTransaction; import com.ktg.mes.wm.domain.WmWarehouse; import com.ktg.mes.wm.domain.tx.IssueTxBean; import com.ktg.mes.wm.domain.tx.ItemRecptTxBean; +import com.ktg.mes.wm.domain.tx.RtIssueTxBean; import com.ktg.mes.wm.domain.tx.RtVendorTxBean; import com.ktg.mes.wm.service.*; import org.springframework.beans.factory.annotation.Autowired; @@ -116,4 +117,36 @@ public class StorageCoreServiceImpl implements IStorageCoreService { wmTransactionService.processTransaction(transaction_in); } } + + @Override + public void processRtIssue(List lines) { + if(CollUtil.isEmpty(lines)){ + throw new BussinessException("没有需要处理的退料单行"); + } + + String transactionType_out = UserConstants.TRANSACTION_TYPE_ITEM_RT_ISSUE_OUT; + String transactionType_in = UserConstants.TRANSACTION_TYPE_ITEM_RT_ISSUE_IN; + for(int i=0;i getTxBeans(Long rtId) { + return wmRtIssueMapper.getTxBeans(rtId); + } } diff --git a/ktg-mes/src/main/resources/mapper/wm/WmRtIssueMapper.xml b/ktg-mes/src/main/resources/mapper/wm/WmRtIssueMapper.xml index 03c4093..d8b848a 100644 --- a/ktg-mes/src/main/resources/mapper/wm/WmRtIssueMapper.xml +++ b/ktg-mes/src/main/resources/mapper/wm/WmRtIssueMapper.xml @@ -32,6 +32,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + + + + + + + + select rt_id, rt_code, rt_name, workorder_id, workorder_code, warehouse_id, warehouse_code, warehouse_name, location_id, location_code, location_name, area_id, area_code, area_name, rt_date, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_rt_issue @@ -67,6 +92,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where rt_code = #{rtCode} + + insert into wm_rt_issue