MWS:仓库物料配置代码恢复,转库代码恢复
master
xins 1 year ago
parent e98701d403
commit a1a8e8b25b

@ -167,6 +167,11 @@ public class WmsConstants {
/*原材料出库任务类型*/
public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_PICKING = "1";//生产领料
public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_SPLIT = "2";//拆分出库
public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_INSTALL = "3";//组装出库
public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_OTHER = "9";//其他
public static final String WMS_RAW_OUTSTOCK_TASK_TYPE_MOVE = "2";//移库出库,暂时不用

@ -5,7 +5,9 @@ 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;
@ -41,6 +43,9 @@ public class WmsBaseWarehouseController extends BaseController
@Autowired
private IWmsBaseCategoryService wmsBaseCategoryService;
@Autowired
private IWmsWarehouseMaterialService wmsWarehouseMaterialService;
/**
*
*/
@ -57,7 +62,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)
{
@ -80,7 +85,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)
{
@ -91,7 +96,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)
{
@ -102,7 +107,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)
{
@ -121,4 +126,62 @@ public class WmsBaseWarehouseController extends BaseController
return success(list);
}
/**
*
*/
@RequiresPermissions("wms:wmswarehouse:materialallocate")
@GetMapping("/selectWmsWarehouseMaterialList")
public TableDataInfo selectWmsWarehouseMaterialList(WmsWarehouseMaterial wmsWarehouseMaterial)
{
startPage();
List<WmsWarehouseMaterial> 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<WmsWarehouseMaterial> warehouseMaterials = wmsWarehouseMaterialService.selectWmsWarehouseMaterialList(queryWarehouseMaterial);
// ajax.put("warehouse", warehouse);
// ajax.put("warehouseMaterials", warehouseMaterials);
// return ajax;
// }
}

@ -1,105 +0,0 @@
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<WmsTransfer> 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<WmsTransfer> list = wmsTransferService.selectWmsTransferList(wmsTransfer);
ExcelUtil<WmsTransfer> util = new ExcelUtil<WmsTransfer>(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));
}
}

@ -1,436 +0,0 @@
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<WmsTransferDetail> 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<WmsTransferDetail> getWmsTransferDetailList()
{
return wmsTransferDetailList;
}
public void setWmsTransferDetailList(List<WmsTransferDetail> 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();
}
}

@ -1,255 +0,0 @@
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();
}
}

@ -0,0 +1,108 @@
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();
}
}

@ -1,46 +0,0 @@
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;
}

@ -1,61 +0,0 @@
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<WmsProductOutstockDetail> 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);
}

@ -1,61 +0,0 @@
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<WmsTransferDetail> 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);
}

@ -1,99 +0,0 @@
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<WmsTransfer> 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<WmsTransferDetail> wmsTransferDetailList);
/**
* ;
*
* @param transferId ID
* @return
*/
public int deleteWmsTransferDetailByTransferId(Long transferId);
/**
* ,Join
*
* @param wmsTransfer
* @return
*/
public List<WmsTransfer> selectWmsTransferJoinList(WmsTransfer wmsTransfer);
}

@ -0,0 +1,80 @@
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<WmsWarehouseMaterial> 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<WmsWarehouseMaterial> selectWmsWarehouseMaterialJoinList(WmsWarehouseMaterial wmsWarehouseMaterial);
/**
*
*
* @param warehouseMaterialList
* @return
*/
public int batchInsertWarehouseMaterial(List<WmsWarehouseMaterial> warehouseMaterialList);
}

@ -1,61 +0,0 @@
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<WmsProductOutstockDetail> 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);
}

@ -1,25 +0,0 @@
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);
}

@ -1,97 +0,0 @@
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<WmsTransfer> 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<WmsTransfer> wmsTransfers);
/**
* Join
*
* @param wmsTransfer
* @return
*/
public List<WmsTransfer> selectWmsTransferJoinList(WmsTransfer wmsTransfer);
/**
*
* @param wmsTransferDetail
* @return
*/
public int transferOutstock(WmsTransferDetail wmsTransferDetail);
/**
*
* @param wmsTransferDetail
* @return
*/
public int transferInstock(WmsTransferDetail wmsTransferDetail);
}

@ -0,0 +1,78 @@
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<WmsWarehouseMaterial> 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<WmsWarehouseMaterial> selectWmsWarehouseMaterialJoinList(WmsWarehouseMaterial wmsWarehouseMaterial);
/**
*
*
* @param warehouseId ID
* @param materialIds
*/
public void batchInsertWarehouseMaterial(Long warehouseId, Long[] materialIds);
}

@ -1,190 +0,0 @@
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<WmsProductOutstockDetail> 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);
}
}

@ -1,70 +0,0 @@
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);
}
}

@ -1,381 +0,0 @@
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<WmsTransfer> 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<WmsTransferDetail> wmsTransferDetailList = wmsTransfer.getWmsTransferDetailList();
Long transferId = wmsTransfer.getTransferId();
if (StringUtils.isNotNull(wmsTransferDetailList)) {
List<WmsTransferDetail> list = new ArrayList<WmsTransferDetail>();
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<WmsTransfer> 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<WmsTransfer> 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<MesBaseBarcodeInfo> 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<WmsTransfer> 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<MesBaseBarcodeInfo> 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<WmsTransfer> 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;
}
}

@ -0,0 +1,134 @@
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<WmsWarehouseMaterial> 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<WmsWarehouseMaterial> 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<WmsWarehouseMaterial> list = new ArrayList<WmsWarehouseMaterial>();
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);
}
}
}

@ -1,121 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsProductOutstockDetailMapper">
<resultMap type="WmsProductOutstockDetail" id="WmsProductOutstockDetailResult">
<result property="productOutstockDetailId" column="product_outstock_detail_id" />
<result property="productOutstockId" column="product_outstock_id" />
<result property="warehouseId" column="warehouse_id" />
<result property="locationCode" column="location_code" />
<result property="productBarcode" column="product_barcode" />
<result property="productBatch" column="product_batch" />
<result property="productId" column="product_id" />
<result property="planAmount" column="plan_amount" />
<result property="outstockAmount" column="outstock_amount" />
<result property="executeStatus" column="execute_status" />
<result property="erpStatus" column="erp_status" />
<result property="updateBy" column="update_by" />
<result property="updateDate" column="update_date" />
<result property="beginTime" column="begin_time" />
<result property="endTime" column="end_time" />
</resultMap>
<sql id="selectWmsProductOutstockDetailVo">
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
</sql>
<select id="selectWmsProductOutstockDetailList" parameterType="WmsProductOutstockDetail" resultMap="WmsProductOutstockDetailResult">
<include refid="selectWmsProductOutstockDetailVo"/>
<where>
<if test="productOutstockId != null "> and product_outstock_id = #{productOutstockId}</if>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="productBarcode != null and productBarcode != ''"> and product_barcode = #{productBarcode}</if>
<if test="productBatch != null and productBatch != ''"> and product_batch = #{productBatch}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="planAmount != null "> and plan_amount = #{planAmount}</if>
<if test="outstockAmount != null "> and outstock_amount = #{outstockAmount}</if>
<if test="executeStatus != null and executeStatus != ''"> and execute_status = #{executeStatus}</if>
<if test="erpStatus != null and erpStatus != ''"> and erp_status = #{erpStatus}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="beginTime != null "> and begin_time = #{beginTime}</if>
<if test="endTime != null "> and end_time = #{endTime}</if>
</where>
order by end_time desc
</select>
<select id="selectWmsProductOutstockDetailByProductOutstockDetailId" parameterType="Long" resultMap="WmsProductOutstockDetailResult">
<include refid="selectWmsProductOutstockDetailVo"/>
where product_outstock_detail_id = #{productOutstockDetailId}
</select>
<insert id="insertWmsProductOutstockDetail" parameterType="WmsProductOutstockDetail" useGeneratedKeys="true" keyProperty="productOutstockDetailId">
insert into wms_product_outstock_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="productOutstockId != null">product_outstock_id,</if>
<if test="warehouseId != null">warehouse_id,</if>
<if test="locationCode != null and locationCode != ''">location_code,</if>
<if test="productBarcode != null and productBarcode != ''">product_barcode,</if>
<if test="productBatch != null">product_batch,</if>
<if test="productId != null">product_id,</if>
<if test="planAmount != null">plan_amount,</if>
<if test="outstockAmount != null">outstock_amount,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="erpStatus != null">erp_status,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateDate != null">update_date,</if>
<if test="beginTime != null">begin_time,</if>
<if test="endTime != null">end_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="productOutstockId != null">#{productOutstockId},</if>
<if test="warehouseId != null">#{warehouseId},</if>
<if test="locationCode != null and locationCode != ''">#{locationCode},</if>
<if test="productBarcode != null and productBarcode != ''">#{productBarcode},</if>
<if test="productBatch != null">#{productBatch},</if>
<if test="productId != null">#{productId},</if>
<if test="planAmount != null">#{planAmount},</if>
<if test="outstockAmount != null">#{outstockAmount},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="erpStatus != null">#{erpStatus},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateDate != null">#{updateDate},</if>
<if test="beginTime != null">#{beginTime},</if>
<if test="endTime != null">#{endTime},</if>
</trim>
</insert>
<update id="updateWmsProductOutstockDetail" parameterType="WmsProductOutstockDetail">
update wms_product_outstock_detail
<trim prefix="SET" suffixOverrides=",">
<if test="productOutstockId != null">product_outstock_id = #{productOutstockId},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="locationCode != null and locationCode != ''">location_code = #{locationCode},</if>
<if test="productBarcode != null and productBarcode != ''">product_barcode = #{productBarcode},</if>
<if test="productBatch != null">product_batch = #{productBatch},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="planAmount != null">plan_amount = #{planAmount},</if>
<if test="outstockAmount != null">outstock_amount = #{outstockAmount},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="erpStatus != null">erp_status = #{erpStatus},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateDate != null">update_date = #{updateDate},</if>
<if test="beginTime != null">begin_time = #{beginTime},</if>
<if test="endTime != null">end_time = #{endTime},</if>
</trim>
where product_outstock_detail_id = #{productOutstockDetailId}
</update>
<delete id="deleteWmsProductOutstockDetailByProductOutstockDetailId" parameterType="Long">
delete from wms_product_outstock_detail where product_outstock_detail_id = #{productOutstockDetailId}
</delete>
<delete id="deleteWmsProductOutstockDetailByProductOutstockDetailIds" parameterType="String">
delete from wms_product_outstock_detail where product_outstock_detail_id in
<foreach item="productOutstockDetailId" collection="array" open="(" separator="," close=")">
#{productOutstockDetailId}
</foreach>
</delete>
</mapper>

@ -1,134 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsTransferDetailMapper">
<resultMap type="WmsTransferDetail" id="WmsTransferDetailResult">
<result property="transferDetailId" column="transfer_detail_id" />
<result property="transferId" column="transfer_id" />
<result property="locationCode" column="location_code" />
<result property="materialBarcode" column="material_barcode" />
<result property="instockBatch" column="instock_batch" />
<result property="materialId" column="material_id" />
<result property="planAmount" column="plan_amount" />
<result property="realAmount" column="real_amount" />
<result property="executeStatus" column="execute_status" />
<result property="executePerson" column="execute_person" />
<result property="executeTime" column="execute_time" />
<result property="transferDetailType" column="transfer_detail_type" />
<result property="machineName" column="machine_name" />
<result property="createBy" column="create_by" />
<result property="createDate" column="create_date" />
<result property="updateBy" column="update_by" />
<result property="updateDate" column="update_date" />
<result property="activeFlag" column="active_flag" />
</resultMap>
<sql id="selectWmsTransferDetailVo">
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
</sql>
<select id="selectWmsTransferDetailList" parameterType="WmsTransferDetail" resultMap="WmsTransferDetailResult">
<include refid="selectWmsTransferDetailVo"/>
<where>
<if test="transferId != null "> and transfer_id = #{transferId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="materialBarcode != null and materialBarcode != ''"> and material_barcode = #{materialBarcode}</if>
<if test="instockBatch != null and instockBatch != ''"> and instock_batch = #{instockBatch}</if>
<if test="materialId != null "> and material_id = #{materialId}</if>
<if test="planAmount != null "> and plan_amount = #{planAmount}</if>
<if test="realAmount != null "> and real_amount = #{realAmount}</if>
<if test="executeStatus != null and executeStatus != ''"> and execute_status = #{executeStatus}</if>
<if test="executePerson != null and executePerson != ''"> and execute_person = #{executePerson}</if>
<if test="executeTime != null "> and execute_time = #{executeTime}</if>
<if test="transferDetailType != null and transferDetailType != ''"> and transfer_detail_type = #{transferDetailType}</if>
<if test="machineName != null and machineName != ''"> and machine_name like concat('%', #{machineName}, '%')</if>
<if test="createDate != null "> and create_date = #{createDate}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="activeFlag != null and activeFlag != ''"> and active_flag = #{activeFlag}</if>
</where>
</select>
<select id="selectWmsTransferDetailByTransferDetailId" parameterType="Long" resultMap="WmsTransferDetailResult">
<include refid="selectWmsTransferDetailVo"/>
where transfer_detail_id = #{transferDetailId}
</select>
<insert id="insertWmsTransferDetail" parameterType="WmsTransferDetail" useGeneratedKeys="true" keyProperty="transferDetailId">
insert into wms_transfer_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="transferId != null">transfer_id,</if>
<if test="locationCode != null and locationCode != ''">location_code,</if>
<if test="materialBarcode != null and materialBarcode != ''">material_barcode,</if>
<if test="instockBatch != null">instock_batch,</if>
<if test="materialId != null">material_id,</if>
<if test="planAmount != null">plan_amount,</if>
<if test="realAmount != null">real_amount,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="executePerson != null">execute_person,</if>
<if test="executeTime != null">execute_time,</if>
<if test="transferDetailType != null and transferDetailType != ''">transfer_detail_type,</if>
<if test="machineName != null">machine_name,</if>
<if test="createBy != null">create_by,</if>
<if test="createDate != null">create_date,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateDate != null">update_date,</if>
<if test="activeFlag != null">active_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="transferId != null">#{transferId},</if>
<if test="locationCode != null and locationCode != ''">#{locationCode},</if>
<if test="materialBarcode != null and materialBarcode != ''">#{materialBarcode},</if>
<if test="instockBatch != null">#{instockBatch},</if>
<if test="materialId != null">#{materialId},</if>
<if test="planAmount != null">#{planAmount},</if>
<if test="realAmount != null">#{realAmount},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="executePerson != null">#{executePerson},</if>
<if test="executeTime != null">#{executeTime},</if>
<if test="transferDetailType != null and transferDetailType != ''">#{transferDetailType},</if>
<if test="machineName != null">#{machineName},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createDate != null">#{createDate},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateDate != null">#{updateDate},</if>
<if test="activeFlag != null">#{activeFlag},</if>
</trim>
</insert>
<update id="updateWmsTransferDetail" parameterType="WmsTransferDetail">
update wms_transfer_detail
<trim prefix="SET" suffixOverrides=",">
<if test="transferId != null">transfer_id = #{transferId},</if>
<if test="locationCode != null and locationCode != ''">location_code = #{locationCode},</if>
<if test="materialBarcode != null and materialBarcode != ''">material_barcode = #{materialBarcode},</if>
<if test="instockBatch != null">instock_batch = #{instockBatch},</if>
<if test="materialId != null">material_id = #{materialId},</if>
<if test="planAmount != null">plan_amount = #{planAmount},</if>
<if test="realAmount != null">real_amount = #{realAmount},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="executePerson != null">execute_person = #{executePerson},</if>
<if test="executeTime != null">execute_time = #{executeTime},</if>
<if test="transferDetailType != null and transferDetailType != ''">transfer_detail_type = #{transferDetailType},</if>
<if test="machineName != null">machine_name = #{machineName},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createDate != null">create_date = #{createDate},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateDate != null">update_date = #{updateDate},</if>
<if test="activeFlag != null">active_flag = #{activeFlag},</if>
</trim>
where transfer_detail_id = #{transferDetailId}
</update>
<delete id="deleteWmsTransferDetailByTransferDetailId" parameterType="Long">
delete from wms_transfer_detail where transfer_detail_id = #{transferDetailId}
</delete>
<delete id="deleteWmsTransferDetailByTransferDetailIds" parameterType="String">
delete from wms_transfer_detail where transfer_detail_id in
<foreach item="transferDetailId" collection="array" open="(" separator="," close=")">
#{transferDetailId}
</foreach>
</delete>
</mapper>

@ -1,270 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsTransferMapper">
<resultMap type="WmsTransfer" id="WmsTransferResult">
<result property="transferId" column="transfer_id" />
<result property="taskCode" column="task_code" />
<result property="oriWarehouseId" column="ori_warehouse_id" />
<result property="oriLocationCode" column="ori_location_code" />
<result property="targetWarehouseId" column="target_warehouse_id" />
<result property="targetLocationCode" column="target_location_code" />
<result property="materialId" column="material_id" />
<result property="productBatch" column="product_batch" />
<result property="planCode" column="plan_code" />
<result property="applyQty" column="apply_qty" />
<result property="outstockQty" column="outstock_qty" />
<result property="instockQty" column="instock_qty" />
<result property="operationType" column="operation_type" />
<result property="transferType" column="transfer_type" />
<result property="applyReason" column="apply_reason" />
<result property="auditReason" column="audit_reason" />
<result property="auditStatus" column="audit_status" />
<result property="executeStatus" column="execute_status" />
<result property="applyBy" column="apply_by" />
<result property="applyDate" column="apply_date" />
<result property="auditBy" column="audit_by" />
<result property="auditDate" column="audit_date" />
<result property="updateBy" column="update_by" />
<result property="updateDate" column="update_date" />
<result property="beginTime" column="begin_time" />
<result property="endTime" column="end_time" />
<result property="oriWarehouseName" column="ori_warehouse_name" />
<result property="targetWarehouseName" column="target_warehouse_name" />
<result property="materialCode" column="material_code" />
<result property="materialName" column="material_name" />
</resultMap>
<resultMap id="WmsTransferWmsTransferDetailResult" type="WmsTransfer" extends="WmsTransferResult">
<collection property="wmsTransferDetailList" notNullColumn="sub_transfer_detail_id" javaType="java.util.List" resultMap="WmsTransferDetailResult" />
</resultMap>
<resultMap type="WmsTransferDetail" id="WmsTransferDetailResult">
<result property="transferDetailId" column="sub_transfer_detail_id" />
<result property="transferId" column="sub_transfer_id" />
<result property="locationCode" column="sub_location_code" />
<result property="materialBarcode" column="sub_material_barcode" />
<result property="instockBatch" column="sub_instock_batch" />
<result property="materialId" column="sub_material_id" />
<result property="planAmount" column="sub_plan_amount" />
<result property="realAmount" column="sub_real_amount" />
<result property="executeStatus" column="sub_execute_status" />
<result property="executePerson" column="sub_execute_person" />
<result property="executeTime" column="sub_execute_time" />
<result property="transferDetailType" column="sub_transfer_detail_type" />
<result property="machineName" column="sub_machine_name" />
<result property="createBy" column="sub_create_by" />
<result property="createDate" column="sub_create_date" />
<result property="updateBy" column="sub_update_by" />
<result property="updateDate" column="sub_update_date" />
<result property="activeFlag" column="sub_active_flag" />
</resultMap>
<sql id="selectWmsTransferVo">
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
</sql>
<select id="selectWmsTransferList" parameterType="WmsTransfer" resultMap="WmsTransferResult">
<include refid="selectWmsTransferVo"/>
<where>
<if test="taskCode != null and taskCode != ''"> and task_code = #{taskCode}</if>
<if test="oriWarehouseId != null "> and ori_warehouse_id = #{oriWarehouseId}</if>
<if test="oriLocationCode != null and oriLocationCode != ''"> and ori_location_code = #{oriLocationCode}</if>
<if test="targetWarehouseId != null "> and target_warehouse_id = #{targetWarehouseId}</if>
<if test="targetLocationCode != null and targetLocationCode != ''"> and target_location_code = #{targetLocationCode}</if>
<if test="materialId != null "> and material_id = #{materialId}</if>
<if test="productBatch != null and productBatch != ''"> and product_batch = #{productBatch}</if>
<if test="planCode != null and planCode != ''"> and plan_code = #{planCode}</if>
<if test="applyQty != null "> and apply_qty = #{applyQty}</if>
<if test="outstockQty != null "> and outstock_qty = #{outstockQty}</if>
<if test="instockQty != null "> and instock_qty = #{instockQty}</if>
<if test="operationType != null and operationType != ''"> and operation_type = #{operationType}</if>
<if test="transferType != null and transferType != ''"> and transfer_type = #{transferType}</if>
<if test="applyReason != null and applyReason != ''"> and apply_reason = #{applyReason}</if>
<if test="auditReason != null and auditReason != ''"> and audit_reason = #{auditReason}</if>
<if test="auditStatus != null and auditStatus != ''"> and audit_status = #{auditStatus}</if>
<if test="executeStatus != null and executeStatus != '' and executeStatus != 'notFinish'"> and execute_status = #{executeStatus}</if>
<if test="executeStatus != null and executeStatus != '' and executeStatus == 'notFinish'"> and (execute_status = '0' or execute_status = '1')</if>
<if test="applyBy != null and applyBy != ''"> and apply_by = #{applyBy}</if>
<if test="applyDate != null "> and apply_date = #{applyDate}</if>
<if test="auditBy != null and auditBy != ''"> and audit_by = #{auditBy}</if>
<if test="auditDate != null "> and audit_date = #{auditDate}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="beginTime != null "> and begin_time = #{beginTime}</if>
<if test="endTime != null "> and end_time = #{endTime}</if>
</where>
</select>
<select id="selectWmsTransferByTransferId" parameterType="Long" resultMap="WmsTransferWmsTransferDetailResult">
select a.transfer_id, a.task_code, a.ori_warehouse_id, a.ori_location_code, a.target_warehouse_id, a.target_location_code, a.material_id, a.product_batch, a.plan_code, a.apply_qty, a.outstock_qty, a.instock_qty, a.operation_type, a.transfer_type, a.apply_reason, a.audit_reason, a.audit_status, a.execute_status, a.apply_by, a.apply_date, a.audit_by, a.audit_date, a.update_by, a.update_date, a.begin_time, a.end_time,
b.transfer_detail_id as sub_transfer_detail_id, b.transfer_id as sub_transfer_id, b.location_code as sub_location_code, b.material_barcode as sub_material_barcode, b.instock_batch as sub_instock_batch, b.material_id as sub_material_id, b.plan_amount as sub_plan_amount, b.real_amount as sub_real_amount, b.execute_status as sub_execute_status, b.execute_person as sub_execute_person, b.execute_time as sub_execute_time, b.transfer_detail_type as sub_transfer_detail_type, b.machine_name as sub_machine_name, b.create_by as sub_create_by, b.create_date as sub_create_date, b.update_by as sub_update_by, b.update_date as sub_update_date, b.active_flag as sub_active_flag
from wms_transfer a
left join wms_transfer_detail b on b.transfer_id = a.transfer_id
where a.transfer_id = #{transferId}
</select>
<insert id="insertWmsTransfer" parameterType="WmsTransfer" useGeneratedKeys="true" keyProperty="transferId">
insert into wms_transfer
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="taskCode != null">task_code,</if>
<if test="oriWarehouseId != null">ori_warehouse_id,</if>
<if test="oriLocationCode != null and oriLocationCode != ''">ori_location_code,</if>
<if test="targetWarehouseId != null">target_warehouse_id,</if>
<if test="targetLocationCode != null">target_location_code,</if>
<if test="materialId != null">material_id,</if>
<if test="productBatch != null and productBatch != ''">product_batch,</if>
<if test="planCode != null and planCode != ''">plan_code,</if>
<if test="applyQty != null">apply_qty,</if>
<if test="outstockQty != null">outstock_qty,</if>
<if test="instockQty != null">instock_qty,</if>
<if test="operationType != null and operationType != ''">operation_type,</if>
<if test="transferType != null and transferType != ''">transfer_type,</if>
<if test="applyReason != null">apply_reason,</if>
<if test="auditReason != null">audit_reason,</if>
<if test="auditStatus != null and auditStatus != ''">audit_status,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="applyBy != null">apply_by,</if>
<if test="applyDate != null">apply_date,</if>
<if test="auditBy != null">audit_by,</if>
<if test="auditDate != null">audit_date,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateDate != null">update_date,</if>
<if test="beginTime != null">begin_time,</if>
<if test="endTime != null">end_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="taskCode != null">#{taskCode},</if>
<if test="oriWarehouseId != null">#{oriWarehouseId},</if>
<if test="oriLocationCode != null and oriLocationCode != ''">#{oriLocationCode},</if>
<if test="targetWarehouseId != null">#{targetWarehouseId},</if>
<if test="targetLocationCode != null">#{targetLocationCode},</if>
<if test="materialId != null">#{materialId},</if>
<if test="productBatch != null and productBatch != ''">#{productBatch},</if>
<if test="planCode != null and planCode != ''">#{planCode},</if>
<if test="applyQty != null">#{applyQty},</if>
<if test="outstockQty != null">#{outstockQty},</if>
<if test="instockQty != null">#{instockQty},</if>
<if test="operationType != null and operationType != ''">#{operationType},</if>
<if test="transferType != null and transferType != ''">#{transferType},</if>
<if test="applyReason != null">#{applyReason},</if>
<if test="auditReason != null">#{auditReason},</if>
<if test="auditStatus != null and auditStatus != ''">#{auditStatus},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="applyBy != null">#{applyBy},</if>
<if test="applyDate != null">#{applyDate},</if>
<if test="auditBy != null">#{auditBy},</if>
<if test="auditDate != null">#{auditDate},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateDate != null">#{updateDate},</if>
<if test="beginTime != null">#{beginTime},</if>
<if test="endTime != null">#{endTime},</if>
</trim>
</insert>
<update id="updateWmsTransfer" parameterType="WmsTransfer">
update wms_transfer
<trim prefix="SET" suffixOverrides=",">
<if test="taskCode != null">task_code = #{taskCode},</if>
<if test="oriWarehouseId != null">ori_warehouse_id = #{oriWarehouseId},</if>
<if test="oriLocationCode != null and oriLocationCode != ''">ori_location_code = #{oriLocationCode},</if>
<if test="targetWarehouseId != null">target_warehouse_id = #{targetWarehouseId},</if>
<if test="targetLocationCode != null">target_location_code = #{targetLocationCode},</if>
<if test="materialId != null">material_id = #{materialId},</if>
<if test="productBatch != null and productBatch != ''">product_batch = #{productBatch},</if>
<if test="planCode != null and planCode != ''">plan_code = #{planCode},</if>
<if test="applyQty != null">apply_qty = #{applyQty},</if>
<if test="outstockQty != null">outstock_qty = #{outstockQty},</if>
<if test="instockQty != null">instock_qty = #{instockQty},</if>
<if test="operationType != null and operationType != ''">operation_type = #{operationType},</if>
<if test="transferType != null and transferType != ''">transfer_type = #{transferType},</if>
<if test="applyReason != null">apply_reason = #{applyReason},</if>
<if test="auditReason != null">audit_reason = #{auditReason},</if>
<if test="auditStatus != null and auditStatus != ''">audit_status = #{auditStatus},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="applyBy != null">apply_by = #{applyBy},</if>
<if test="applyDate != null">apply_date = #{applyDate},</if>
<if test="auditBy != null">audit_by = #{auditBy},</if>
<if test="auditDate != null">audit_date = #{auditDate},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateDate != null">update_date = #{updateDate},</if>
<if test="beginTime != null">begin_time = #{beginTime},</if>
<if test="endTime != null">end_time = #{endTime},</if>
</trim>
where transfer_id = #{transferId}
</update>
<delete id="deleteWmsTransferByTransferId" parameterType="Long">
delete from wms_transfer where transfer_id = #{transferId}
</delete>
<delete id="deleteWmsTransferByTransferIds" parameterType="String">
delete from wms_transfer where transfer_id in
<foreach item="transferId" collection="array" open="(" separator="," close=")">
#{transferId}
</foreach>
</delete>
<delete id="deleteWmsTransferDetailByTransferIds" parameterType="String">
delete from wms_transfer_detail where transfer_id in
<foreach item="transferId" collection="array" open="(" separator="," close=")">
#{transferId}
</foreach>
</delete>
<delete id="deleteWmsTransferDetailByTransferId" parameterType="Long">
delete from wms_transfer_detail where transfer_id = #{transferId}
</delete>
<insert id="batchWmsTransferDetail">
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
<foreach item="item" index="index" collection="list" separator=",">
( #{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})
</foreach>
</insert>
<select id="selectWmsTransferJoinList" parameterType="WmsTransfer" resultMap="WmsTransferResult">
select wt.transfer_id, wt.task_code, wt.ori_warehouse_id, wt.ori_location_code, wt.target_warehouse_id, wt.target_location_code, wt.material_id, wt.product_batch,
wt.plan_code, wt.apply_qty, wt.outstock_qty, wt.instock_qty, wt.operation_type, wt.transfer_type,
wt.audit_status, wt.execute_status, wt.apply_by, wt.apply_date,
wbw.warehouse_name ori_warehouse_name,wbw2.warehouse_name target_warehouse_name,mbmi.material_code,mbmi.material_name
from wms_transfer wt
left join wms_base_warehouse wbw on wbw.warehouse_id = wt.ori_warehouse_id
left join wms_base_warehouse wbw2 on wbw2.warehouse_id = wt.target_warehouse_id
left join mes_base_material_info mbmi on mbmi.material_id=wt.material_id
<where>
<if test="taskCode != null and taskCode != ''"> and wt.task_code = #{taskCode}</if>
<if test="oriWarehouseId != null "> and wt.ori_warehouse_id = #{oriWarehouseId}</if>
<if test="oriLocationCode != null and oriLocationCode != ''"> and wt.ori_location_code = #{oriLocationCode}</if>
<if test="targetWarehouseId != null "> and wt.target_warehouse_id = #{targetWarehouseId}</if>
<if test="targetLocationCode != null and targetLocationCode != ''"> and wt.target_location_code = #{targetLocationCode}</if>
<if test="materialId != null "> and wt.material_id = #{materialId}</if>
<if test="productBatch != null and productBatch != ''"> and wt.product_batch = #{productBatch}</if>
<if test="planCode != null and planCode != ''"> and wt.plan_code = #{planCode}</if>
<if test="applyQty != null "> and wt.apply_qty = #{applyQty}</if>
<if test="outstockQty != null "> and wt.outstock_qty = #{outstockQty}</if>
<if test="instockQty != null "> and wt.instock_qty = #{instockQty}</if>
<if test="operationType != null and operationType != ''"> and wt.operation_type = #{operationType}</if>
<if test="transferType != null and transferType != ''"> and wt.transfer_type = #{transferType}</if>
<if test="auditStatus != null and auditStatus != ''"> and wt.audit_status = #{auditStatus}</if>
<if test="executeStatus != null and executeStatus != '' and executeStatus != 'notFinish'"> and wt.execute_status = #{executeStatus}</if>
<if test="executeStatus != null and executeStatus != '' and executeStatus = 'notFinish'"> and (wt.execute_status = '0' or wt.execute_status = '1')</if>
<if test="applyBy != null and applyBy != ''"> and wt.apply_by = #{applyBy}</if>
<if test="applyDate != null "> and wt.apply_date = #{applyDate}</if>
<if test="auditBy != null and auditBy != ''"> and wt.audit_by = #{auditBy}</if>
</where>
</select>
</mapper>

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsWarehouseMaterialMapper">
<resultMap type="WmsWarehouseMaterial" id="WmsWarehouseMaterialResult">
<result property="warehouseMaterialId" column="warehouse_material_id" />
<result property="warehouseId" column="warehouse_id" />
<result property="locationCode" column="location_code" />
<result property="storageType" column="storage_type" />
<result property="storageId" column="storage_id" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="materialCode" column="material_code" />
<result property="materialName" column="material_name" />
</resultMap>
<sql id="selectWmsWarehouseMaterialVo">
select warehouse_id, location_code, storage_type, storage_id, create_time, create_by from wms_warehouse_material
</sql>
<select id="selectWmsWarehouseMaterialList" parameterType="WmsWarehouseMaterial" resultMap="WmsWarehouseMaterialResult">
<include refid="selectWmsWarehouseMaterialVo"/>
<where>
</where>
</select>
<select id="selectWmsWarehouseMaterialByWarehouseId" parameterType="Long" resultMap="WmsWarehouseMaterialResult">
<include refid="selectWmsWarehouseMaterialVo"/>
where warehouse_id = #{warehouseId}
</select>
<insert id="insertWmsWarehouseMaterial" parameterType="WmsWarehouseMaterial">
insert into wms_warehouse_material
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="warehouseId != null">warehouse_id,</if>
<if test="locationCode != null">location_code,</if>
<if test="storageType != null">storage_type,</if>
<if test="storageId != null">storage_id,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="warehouseId != null">#{warehouseId},</if>
<if test="locationCode != null">#{locationCode},</if>
<if test="storageType != null">#{storageType},</if>
<if test="storageId != null">#{storageId},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
</trim>
</insert>
<update id="updateWmsWarehouseMaterial" parameterType="WmsWarehouseMaterial">
update wms_warehouse_material
<trim prefix="SET" suffixOverrides=",">
<if test="locationCode != null">location_code = #{locationCode},</if>
<if test="storageType != null">storage_type = #{storageType},</if>
<if test="storageId != null">storage_id = #{storageId},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
</trim>
where warehouse_id = #{warehouseId}
</update>
<delete id="deleteWmsWarehouseMaterialByWarehouseMaterialId" parameterType="Long">
delete from wms_warehouse_material where warehouse_material_id = #{warehouseMaterialId}
</delete>
<delete id="deleteWmsWarehouseMaterialByWarehouseMaterialIds" parameterType="String">
delete from wms_warehouse_material where warehouse_material_id in
<foreach item="warehouseMaterialId" collection="array" open="(" separator="," close=")">
#{warehouseMaterialId}
</foreach>
</delete>
<select id="selectWmsWarehouseMaterialJoinList" parameterType="WmsWarehouseMaterial" resultMap="WmsWarehouseMaterialResult">
select wwm.warehouse_material_id,wwm.warehouse_id, wwm.location_code, wwm.storage_type, wwm.storage_id, wwm.create_time, wwm.create_by,
mbm.material_code,mbm.material_name
from wms_warehouse_material wwm left join mes_base_material_info mbm on wwm.storage_id=mbm.material_id and wwm.storage_type='1'
<where>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
</where>
</select>
<insert id="batchInsertWarehouseMaterial">
insert into wms_warehouse_material(warehouse_id, storage_type,storage_id,create_time,create_by) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.warehouseId},#{item.storageType},#{item.storageId},#{item.createTime},#{item.createBy})
</foreach>
</insert>
</mapper>
Loading…
Cancel
Save