WMS:PDA接口入库、PDA接口审核出库、PDA接口出库完善
master
xins 1 year ago
parent 552138b94b
commit e83aa2985b

@ -212,6 +212,17 @@ public class Seq {
// 物料合库记录标识
public static final String wmsMergeSeqCode = "ME";
// 原材料入库记录序列类型
public static final String rawInstockSeqType = "RAWINSTOCK";
// 原材料入库记录接口序列数
private static AtomicInteger rawInstockSeq = new AtomicInteger(1);
// 原材料入库记录标识
public static final String rawInstockSeqCode = "RI";
/**
*
*
@ -312,6 +323,8 @@ public class Seq {
atomicInt = wmsMoveSeq;
}else if(wmsMergeSeqType.equals(type)) {
atomicInt = wmsMergeSeq;
}else if(rawInstockSeqType.equals(type)) {
atomicInt = rawInstockSeq;
}
return getId(atomicInt, 3, code);
}

@ -106,7 +106,7 @@ public class WmsMobileController extends BaseController {
startPage();
WmsRawOutstock wmsRawOutstock = new WmsRawOutstock();
wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT);
List<WmsRawOutstock> list = wmsRawOutstockService.selectWmsRawOutstockJoinList(wmsRawOutstock);
List<WmsRawOutstock> list = wmsRawOutstockService.selectWmsRawOutstockJoinList4Audit(wmsRawOutstock);
return getDataTable(list);
}
@ -114,9 +114,14 @@ public class WmsMobileController extends BaseController {
*
*/
// @RequiresPermissions("wms:rawoutstock:query")
@GetMapping(value = "/getRawOutstockByOutstockId/{rawOutstockId}")
public AjaxResult getRawOutstockByOutstockId(@PathVariable("rawOutstockId") Long rawOutstockId) {
return success(wmsRawOutstockService.selectWmsRawOutstockByRawOutstockId(rawOutstockId));
// @GetMapping(value = "/getRawOutstockByOutstockId/{rawOutstockId}")
// public AjaxResult getRawOutstockByOutstockId(@PathVariable("rawOutstockId") Long rawOutstockId) {
// return success(wmsRawOutstockService.selectWmsRawOutstockByRawOutstockId(rawOutstockId));
// }
@GetMapping(value = "/getRawOutstockByTaskCode/{taskCode}")
public AjaxResult getRawOutstockByTaskCode(@PathVariable("taskCode") String taskCode) {
return success(wmsRawOutstockService.selectWmsRawOutstockByTaskCode(taskCode));
}
/**
@ -133,11 +138,11 @@ public class WmsMobileController extends BaseController {
*/
// @RequiresPermissions("wms:rawoutstock:list")
@GetMapping("/getAuditPassRawOutstockDetails")
public TableDataInfo getAuditPassRawOutstockDetails(WmsRawOutstockDetail wmsRawOutstockDetail) {
public TableDataInfo getAuditPassRawOutstocks(WmsRawOutstock wmsRawOutstock) {
startPage();
// WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail();
// wmsRawOutstockDetail.setApplyBy(request.getParameter("applyBy"));
List<WmsRawOutstockDetail> list = wmsRawOutstockService.selectAuditPassRawOutstockDetails(wmsRawOutstockDetail);
List<WmsRawOutstock> list = wmsRawOutstockService.selectAuditPassRawOutstocks(wmsRawOutstock);
return getDataTable(list);
}

@ -1,6 +1,6 @@
package com.hw.wms.domain;
import java.util.List;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -10,9 +10,9 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_raw_instock
*
*
* @author xs
* @date 2023-12-21
* @date 2024-03-27
*/
public class WmsRawInstock extends BaseEntity
{
@ -37,47 +37,62 @@ public class WmsRawInstock extends BaseEntity
@Excel(name = "采购订单号,入库扫描条码时获取唯一条码")
private String poNo;
/** 操作类型(0自动,1手动,2强制,3调度) */
@Excel(name = "操作类型(0自动,1手动,2强制,3调度)")
/** 操作类型(0自动,1人工,2强制,3调度) */
@Excel(name = "操作类型(0自动,1人工,2强制,3调度)")
private String operationType;
/** 入库类型(1采购入库,2移库入库,3合库入库,9其他入库) */
@Excel(name = "入库类型(1采购入库,2移库入库,3合库入库,9其他入库)")
/** 入库类型(1采购入库,2返库入库,9其他入库) */
@Excel(name = "入库类型(1采购入库,2返库入库,9其他入库)")
private String instockType;
/** 申请原因 */
@Excel(name = "申请原因")
private String applyReason;
/** 物料ID关联物料信息主键 */
@Excel(name = "物料ID关联物料信息主键")
private Long materialId;
/** 审核原因 */
@Excel(name = "审核原因")
private String auditReason;
/** 物料条码,人工存放 */
@Excel(name = "物料条码,人工存放")
private String materialBarcode;
/** 审核状态(0待审核,1审核通过,2审核未通过) */
@Excel(name = "审核状态(0待审核,1审核通过,2审核未通过)")
private String auditStatus;
/** agv的存批次条码 */
@Excel(name = "agv的存批次条码")
private String materialBatchCode;
/** 托盘RFID代码如果是五楼辅料库存放料箱编码 */
@Excel(name = "托盘RFID代码", readConverterExp = "如=果是五楼辅料库存放料箱编码")
private String palletInfoCode;
/** 入库数量 */
@Excel(name = "入库数量")
private BigDecimal instockAmount;
/** 执行状态(0待执行,1执行中,2执行完成) */
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
/** 申请人 */
@Excel(name = "申请人")
/** 同步ERP状态(0:失败,1成功) */
@Excel(name = "同步ERP状态(0:失败,1成功)")
private String erpStatus;
/** 同步给ERP的数量 */
@Excel(name = "同步给ERP的数量")
private String erpAmount;
/** 入库人 */
@Excel(name = "入库人")
private String applyBy;
/** 申请时间 */
/** 入库时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
@Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyDate;
/** 审核人 */
@Excel(name = "审核人")
private String auditBy;
/** 机台名称 */
@Excel(name = "机台名称")
private String machineName;
/** 审核时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/** 质检状态(0:待质检,1:合格,2:NG) */
@Excel(name = "质检状态(0:待质检,1:合格,2:NG)")
private String qualityStatus;
/** 最后更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ -94,205 +109,231 @@ public class WmsRawInstock extends BaseEntity
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
/** 原材料入库记录明细信息 */
private List<WmsRawInstockDetail> wmsRawInstockDetailList;
public void setRawInstockId(Long rawInstockId)
public void setRawInstockId(Long rawInstockId)
{
this.rawInstockId = rawInstockId;
}
public Long getRawInstockId()
public Long getRawInstockId()
{
return rawInstockId;
}
public void setTaskCode(String taskCode)
public void setTaskCode(String taskCode)
{
this.taskCode = taskCode;
}
public String getTaskCode()
public String getTaskCode()
{
return taskCode;
}
public void setWarehouseId(Long warehouseId)
public void setWarehouseId(Long warehouseId)
{
this.warehouseId = warehouseId;
}
public Long getWarehouseId()
public Long getWarehouseId()
{
return warehouseId;
}
public void setLocationCode(String locationCode)
public void setLocationCode(String locationCode)
{
this.locationCode = locationCode;
}
public String getLocationCode()
public String getLocationCode()
{
return locationCode;
}
public void setPoNo(String poNo)
public void setPoNo(String poNo)
{
this.poNo = poNo;
}
public String getPoNo()
public String getPoNo()
{
return poNo;
}
public void setOperationType(String operationType)
public void setOperationType(String operationType)
{
this.operationType = operationType;
}
public String getOperationType()
public String getOperationType()
{
return operationType;
}
public void setInstockType(String instockType)
public void setInstockType(String instockType)
{
this.instockType = instockType;
}
public String getInstockType()
public String getInstockType()
{
return instockType;
}
public void setApplyReason(String applyReason)
public void setMaterialId(Long materialId)
{
this.applyReason = applyReason;
this.materialId = materialId;
}
public String getApplyReason()
public Long getMaterialId()
{
return applyReason;
return materialId;
}
public void setAuditReason(String auditReason)
public void setMaterialBarcode(String materialBarcode)
{
this.auditReason = auditReason;
this.materialBarcode = materialBarcode;
}
public String getAuditReason()
public String getMaterialBarcode()
{
return auditReason;
return materialBarcode;
}
public void setAuditStatus(String auditStatus)
public void setMaterialBatchCode(String materialBatchCode)
{
this.auditStatus = auditStatus;
this.materialBatchCode = materialBatchCode;
}
public String getAuditStatus()
public String getMaterialBatchCode()
{
return auditStatus;
return materialBatchCode;
}
public void setExecuteStatus(String executeStatus)
public void setPalletInfoCode(String palletInfoCode)
{
this.palletInfoCode = palletInfoCode;
}
public String getPalletInfoCode()
{
return palletInfoCode;
}
public void setInstockAmount(BigDecimal instockAmount)
{
this.instockAmount = instockAmount;
}
public BigDecimal getInstockAmount()
{
return instockAmount;
}
public void setExecuteStatus(String executeStatus)
{
this.executeStatus = executeStatus;
}
public String getExecuteStatus()
public String getExecuteStatus()
{
return executeStatus;
}
public void setApplyBy(String applyBy)
public void setErpStatus(String erpStatus)
{
this.erpStatus = erpStatus;
}
public String getErpStatus()
{
return erpStatus;
}
public void setErpAmount(String erpAmount)
{
this.erpAmount = erpAmount;
}
public String getErpAmount()
{
return erpAmount;
}
public void setApplyBy(String applyBy)
{
this.applyBy = applyBy;
}
public String getApplyBy()
public String getApplyBy()
{
return applyBy;
}
public void setApplyDate(Date applyDate)
public void setApplyDate(Date applyDate)
{
this.applyDate = applyDate;
}
public Date getApplyDate()
public Date getApplyDate()
{
return applyDate;
}
public void setAuditBy(String auditBy)
public void setMachineName(String machineName)
{
this.auditBy = auditBy;
this.machineName = machineName;
}
public String getAuditBy()
public String getMachineName()
{
return auditBy;
return machineName;
}
public void setAuditDate(Date auditDate)
public void setQualityStatus(String qualityStatus)
{
this.auditDate = auditDate;
this.qualityStatus = qualityStatus;
}
public Date getAuditDate()
public String getQualityStatus()
{
return auditDate;
return qualityStatus;
}
public void setUpdateDate(Date updateDate)
public void setUpdateDate(Date updateDate)
{
this.updateDate = updateDate;
}
public Date getUpdateDate()
public Date getUpdateDate()
{
return updateDate;
}
public void setBeginTime(Date beginTime)
public void setBeginTime(Date beginTime)
{
this.beginTime = beginTime;
}
public Date getBeginTime()
public Date getBeginTime()
{
return beginTime;
}
public void setEndTime(Date endTime)
public void setEndTime(Date endTime)
{
this.endTime = endTime;
}
public Date getEndTime()
public Date getEndTime()
{
return endTime;
}
public List<WmsRawInstockDetail> getWmsRawInstockDetailList()
{
return wmsRawInstockDetailList;
}
public void setWmsRawInstockDetailList(List<WmsRawInstockDetail> wmsRawInstockDetailList)
{
this.wmsRawInstockDetailList = wmsRawInstockDetailList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("rawInstockId", getRawInstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("poNo", getPoNo())
.append("operationType", getOperationType())
.append("instockType", getInstockType())
.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("wmsRawInstockDetailList", getWmsRawInstockDetailList())
.toString();
.append("rawInstockId", getRawInstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("poNo", getPoNo())
.append("operationType", getOperationType())
.append("instockType", getInstockType())
.append("materialId", getMaterialId())
.append("materialBarcode", getMaterialBarcode())
.append("materialBatchCode", getMaterialBatchCode())
.append("palletInfoCode", getPalletInfoCode())
.append("instockAmount", getInstockAmount())
.append("executeStatus", getExecuteStatus())
.append("erpStatus", getErpStatus())
.append("erpAmount", getErpAmount())
.append("applyBy", getApplyBy())
.append("applyDate", getApplyDate())
.append("machineName", getMachineName())
.append("qualityStatus", getQualityStatus())
.append("updateBy", getUpdateBy())
.append("updateDate", getUpdateDate())
.append("beginTime", getBeginTime())
.append("endTime", getEndTime())
.toString();
}
}

@ -1,336 +1,336 @@
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_raw_instock_detail
*
* @author xs
* @date 2023-12-21
*/
public class WmsRawInstockDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 原材料入库记录明细ID */
private Long rawInstockDetailId;
/** 原材料入库ID */
@Excel(name = "原材料入库ID")
private Long rawInstockId;
/** 库位编码 */
@Excel(name = "库位编码")
private String locationCode;
/** 存放物料条码 */
@Excel(name = "存放物料条码")
private String materialBarcode;
/** 物料ID */
@Excel(name = "物料ID")
private Long materialId;
/** 批次;入库扫描条码时,从打印条码记录表中获取 */
@Excel(name = "批次;入库扫描条码时,从打印条码记录表中获取")
private String instockBatch;
/** 生产日期;入库扫描条码时,从打印条码记录表中获取 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生产日期;入库扫描条码时,从打印条码记录表中获取", width = 30, dateFormat = "yyyy-MM-dd")
private Date materialProductionDate;
/** 入库数量 */
@Excel(name = "计划数量")
private BigDecimal planAmount;
/** 入库数量 */
@Excel(name = "入库数量")
private BigDecimal instockAmount;
/** 执行状态(0待执行,1执行中,2执行完成) */
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
/** 同步ERP状态(0:失败,1成功) */
@Excel(name = "同步ERP状态(0:失败,1成功)")
private String erpStatus;
/** 入库人 */
@Excel(name = "入库人")
private String instockPerson;
/** 入库时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date instockTime;
/** 入库方式( 0PC入库 1手持入库 2AGV入库 */
@Excel(name = "入库方式", readConverterExp = "0=PC入库,1=:手持入库,2=AGV入库")
private String instockWay;
/** 使用机台名称;入库扫描条码时,从打印条码记录表中获取 */
@Excel(name = "使用机台名称;入库扫描条码时,从打印条码记录表中获取")
private String machineName;
/** 质检状态(0:待质检,1:合格,2:NG) */
@Excel(name = "质检状态(0:待质检,1:合格,2:NG)")
private String qualityStatus;
/** 每托数量 */
@Excel(name = "每托数量")
private BigDecimal stackAmount;
/** 创建时间 */
@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;
//采购订单号
private String poNo;
/** 采购订单行项目 */
@Excel(name = "采购订单行项目")
private String poLine;
public void setRawInstockDetailId(Long rawInstockDetailId)
{
this.rawInstockDetailId = rawInstockDetailId;
}
public Long getRawInstockDetailId()
{
return rawInstockDetailId;
}
public void setRawInstockId(Long rawInstockId)
{
this.rawInstockId = rawInstockId;
}
public Long getRawInstockId()
{
return rawInstockId;
}
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 setMaterialId(Long materialId)
{
this.materialId = materialId;
}
public Long getMaterialId()
{
return materialId;
}
public void setInstockBatch(String instockBatch)
{
this.instockBatch = instockBatch;
}
public String getInstockBatch()
{
return instockBatch;
}
public void setMaterialProductionDate(Date materialProductionDate)
{
this.materialProductionDate = materialProductionDate;
}
public Date getMaterialProductionDate()
{
return materialProductionDate;
}
public BigDecimal getPlanAmount() {
return planAmount;
}
public void setPlanAmount(BigDecimal planAmount) {
this.planAmount = planAmount;
}
public void setInstockAmount(BigDecimal instockAmount)
{
this.instockAmount = instockAmount;
}
public BigDecimal getInstockAmount()
{
return instockAmount;
}
public void setExecuteStatus(String executeStatus)
{
this.executeStatus = executeStatus;
}
public String getExecuteStatus()
{
return executeStatus;
}
public void setErpStatus(String erpStatus)
{
this.erpStatus = erpStatus;
}
public String getErpStatus()
{
return erpStatus;
}
public void setInstockPerson(String instockPerson)
{
this.instockPerson = instockPerson;
}
public String getInstockPerson()
{
return instockPerson;
}
public void setInstockTime(Date instockTime)
{
this.instockTime = instockTime;
}
public Date getInstockTime()
{
return instockTime;
}
public void setInstockWay(String instockWay)
{
this.instockWay = instockWay;
}
public String getInstockWay()
{
return instockWay;
}
public void setMachineName(String machineName)
{
this.machineName = machineName;
}
public String getMachineName()
{
return machineName;
}
public void setQualityStatus(String qualityStatus)
{
this.qualityStatus = qualityStatus;
}
public String getQualityStatus()
{
return qualityStatus;
}
public void setStackAmount(BigDecimal stackAmount)
{
this.stackAmount = stackAmount;
}
public BigDecimal getStackAmount()
{
return stackAmount;
}
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;
}
public String getPoNo() {
return poNo;
}
public void setPoNo(String poNo) {
this.poNo = poNo;
}
public void setPoLine(String poLine)
{
this.poLine = poLine;
}
public String getPoLine()
{
return poLine;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("rawInstockDetailId", getRawInstockDetailId())
.append("rawInstockId", getRawInstockId())
.append("locationCode", getLocationCode())
.append("materialBarcode", getMaterialBarcode())
.append("materialId", getMaterialId())
.append("instockBatch", getInstockBatch())
.append("materialProductionDate", getMaterialProductionDate())
.append("instockAmount", getInstockAmount())
.append("executeStatus", getExecuteStatus())
.append("erpStatus", getErpStatus())
.append("instockPerson", getInstockPerson())
.append("instockTime", getInstockTime())
.append("instockWay", getInstockWay())
.append("machineName", getMachineName())
.append("qualityStatus", getQualityStatus())
.append("stackAmount", getStackAmount())
.append("createBy", getCreateBy())
.append("createDate", getCreateDate())
.append("updateBy", getUpdateBy())
.append("updateDate", getUpdateDate())
.append("activeFlag", getActiveFlag())
.append("poLine", getPoLine())
.toString();
}
}
//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_raw_instock_detail
// *
// * @author xs
// * @date 2023-12-21
// */
//public class WmsRawInstockDetail extends BaseEntity
//{
// private static final long serialVersionUID = 1L;
//
// /** 原材料入库记录明细ID */
// private Long rawInstockDetailId;
//
// /** 原材料入库ID */
// @Excel(name = "原材料入库ID")
// private Long rawInstockId;
//
// /** 库位编码 */
// @Excel(name = "库位编码")
// private String locationCode;
//
// /** 存放物料条码 */
// @Excel(name = "存放物料条码")
// private String materialBarcode;
//
// /** 物料ID */
// @Excel(name = "物料ID")
// private Long materialId;
//
// /** 批次;入库扫描条码时,从打印条码记录表中获取 */
// @Excel(name = "批次;入库扫描条码时,从打印条码记录表中获取")
// private String instockBatch;
//
// /** 生产日期;入库扫描条码时,从打印条码记录表中获取 */
// @JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "生产日期;入库扫描条码时,从打印条码记录表中获取", width = 30, dateFormat = "yyyy-MM-dd")
// private Date materialProductionDate;
//
// /** 入库数量 */
// @Excel(name = "计划数量")
// private BigDecimal planAmount;
//
// /** 入库数量 */
// @Excel(name = "入库数量")
// private BigDecimal instockAmount;
//
// /** 执行状态(0待执行,1执行中,2执行完成) */
// @Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
// private String executeStatus;
//
// /** 同步ERP状态(0:失败,1成功) */
// @Excel(name = "同步ERP状态(0:失败,1成功)")
// private String erpStatus;
//
// /** 入库人 */
// @Excel(name = "入库人")
// private String instockPerson;
//
// /** 入库时间 */
// @JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
// private Date instockTime;
//
// /** 入库方式( 0PC入库 1手持入库 2AGV入库 */
// @Excel(name = "入库方式", readConverterExp = "0=PC入库,1=:手持入库,2=AGV入库")
// private String instockWay;
//
// /** 使用机台名称;入库扫描条码时,从打印条码记录表中获取 */
// @Excel(name = "使用机台名称;入库扫描条码时,从打印条码记录表中获取")
// private String machineName;
//
// /** 质检状态(0:待质检,1:合格,2:NG) */
// @Excel(name = "质检状态(0:待质检,1:合格,2:NG)")
// private String qualityStatus;
//
// /** 每托数量 */
// @Excel(name = "每托数量")
// private BigDecimal stackAmount;
//
// /** 创建时间 */
// @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;
//
// //采购订单号
// private String poNo;
// /** 采购订单行项目 */
// @Excel(name = "采购订单行项目")
// private String poLine;
//
// public void setRawInstockDetailId(Long rawInstockDetailId)
// {
// this.rawInstockDetailId = rawInstockDetailId;
// }
//
// public Long getRawInstockDetailId()
// {
// return rawInstockDetailId;
// }
// public void setRawInstockId(Long rawInstockId)
// {
// this.rawInstockId = rawInstockId;
// }
//
// public Long getRawInstockId()
// {
// return rawInstockId;
// }
// 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 setMaterialId(Long materialId)
// {
// this.materialId = materialId;
// }
//
// public Long getMaterialId()
// {
// return materialId;
// }
// public void setInstockBatch(String instockBatch)
// {
// this.instockBatch = instockBatch;
// }
//
// public String getInstockBatch()
// {
// return instockBatch;
// }
// public void setMaterialProductionDate(Date materialProductionDate)
// {
// this.materialProductionDate = materialProductionDate;
// }
//
// public Date getMaterialProductionDate()
// {
// return materialProductionDate;
// }
//
// public BigDecimal getPlanAmount() {
// return planAmount;
// }
//
// public void setPlanAmount(BigDecimal planAmount) {
// this.planAmount = planAmount;
// }
//
// public void setInstockAmount(BigDecimal instockAmount)
// {
// this.instockAmount = instockAmount;
// }
//
// public BigDecimal getInstockAmount()
// {
// return instockAmount;
// }
// public void setExecuteStatus(String executeStatus)
// {
// this.executeStatus = executeStatus;
// }
//
// public String getExecuteStatus()
// {
// return executeStatus;
// }
// public void setErpStatus(String erpStatus)
// {
// this.erpStatus = erpStatus;
// }
//
// public String getErpStatus()
// {
// return erpStatus;
// }
// public void setInstockPerson(String instockPerson)
// {
// this.instockPerson = instockPerson;
// }
//
// public String getInstockPerson()
// {
// return instockPerson;
// }
// public void setInstockTime(Date instockTime)
// {
// this.instockTime = instockTime;
// }
//
// public Date getInstockTime()
// {
// return instockTime;
// }
// public void setInstockWay(String instockWay)
// {
// this.instockWay = instockWay;
// }
//
// public String getInstockWay()
// {
// return instockWay;
// }
// public void setMachineName(String machineName)
// {
// this.machineName = machineName;
// }
//
// public String getMachineName()
// {
// return machineName;
// }
// public void setQualityStatus(String qualityStatus)
// {
// this.qualityStatus = qualityStatus;
// }
//
// public String getQualityStatus()
// {
// return qualityStatus;
// }
// public void setStackAmount(BigDecimal stackAmount)
// {
// this.stackAmount = stackAmount;
// }
//
// public BigDecimal getStackAmount()
// {
// return stackAmount;
// }
// 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;
// }
//
// public String getPoNo() {
// return poNo;
// }
//
// public void setPoNo(String poNo) {
// this.poNo = poNo;
// }
//
// public void setPoLine(String poLine)
// {
// this.poLine = poLine;
// }
//
// public String getPoLine()
// {
// return poLine;
// }
//
// @Override
// public String toString() {
// return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
// .append("rawInstockDetailId", getRawInstockDetailId())
// .append("rawInstockId", getRawInstockId())
// .append("locationCode", getLocationCode())
// .append("materialBarcode", getMaterialBarcode())
// .append("materialId", getMaterialId())
// .append("instockBatch", getInstockBatch())
// .append("materialProductionDate", getMaterialProductionDate())
// .append("instockAmount", getInstockAmount())
// .append("executeStatus", getExecuteStatus())
// .append("erpStatus", getErpStatus())
// .append("instockPerson", getInstockPerson())
// .append("instockTime", getInstockTime())
// .append("instockWay", getInstockWay())
// .append("machineName", getMachineName())
// .append("qualityStatus", getQualityStatus())
// .append("stackAmount", getStackAmount())
// .append("createBy", getCreateBy())
// .append("createDate", getCreateDate())
// .append("updateBy", getUpdateBy())
// .append("updateDate", getUpdateDate())
// .append("activeFlag", getActiveFlag())
// .append("poLine", getPoLine())
// .toString();
// }
//}

@ -24,6 +24,10 @@ public class WmsRawOutstock extends BaseEntity {
*/
private Long rawOutstockId;
/**
* ID,PDA使raw_outstock_id
*/
private Long rawOutstockDetailId;
/**
* ;
*/
@ -73,17 +77,25 @@ public class WmsRawOutstock extends BaseEntity {
private Long productId;
/** 物料批次 */
@Excel(name = "物料条码")
@Excel(name = "物料批次")
private String materialBatch;
/** 物料批次转换兼容PDA使用 */
@Excel(name = "物料批次")
private String instockBatch;
/** 托盘RFID代码 */
@Excel(name = "托盘RFID代码")
private String palletInfoCode;
/** 出库数量 */
@Excel(name = "出库数量")
/** 计划出库数量 */
@Excel(name = "计划出库数量")
private BigDecimal outstockAmount;
/** 出库数量 */
@Excel(name = "已出库数量")
private BigDecimal realOutstockAmount;
/** 出库目的地 */
@Excel(name = "出库目的地")
private String endStationCode;
@ -173,6 +185,17 @@ public class WmsRawOutstock extends BaseEntity {
private String warehouseName;
private String materialCode;
private String materialName;
private BigDecimal planAmount;
/**
* (0,1,2)使,
*/
private String executeStatusStr;
/**
*
*/
@ -186,6 +209,14 @@ public class WmsRawOutstock extends BaseEntity {
return rawOutstockId;
}
public Long getRawOutstockDetailId() {
return rawOutstockDetailId;
}
public void setRawOutstockDetailId(Long rawOutstockDetailId) {
this.rawOutstockDetailId = rawOutstockDetailId;
}
public void setTaskCode(String taskCode) {
this.taskCode = taskCode;
}
@ -258,6 +289,14 @@ public class WmsRawOutstock extends BaseEntity {
this.materialBatch = materialBatch;
}
public String getInstockBatch() {
return instockBatch;
}
public void setInstockBatch(String instockBatch) {
this.instockBatch = instockBatch;
}
public String getPalletInfoCode() {
return palletInfoCode;
}
@ -274,6 +313,14 @@ public class WmsRawOutstock extends BaseEntity {
this.outstockAmount = outstockAmount;
}
public BigDecimal getRealOutstockAmount() {
return realOutstockAmount;
}
public void setRealOutstockAmount(BigDecimal realOutstockAmount) {
this.realOutstockAmount = realOutstockAmount;
}
public String getEndStationCode() {
return endStationCode;
}
@ -402,6 +449,38 @@ public class WmsRawOutstock extends BaseEntity {
this.warehouseName = warehouseName;
}
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;
}
public BigDecimal getPlanAmount() {
return planAmount;
}
public void setPlanAmount(BigDecimal planAmount) {
this.planAmount = planAmount;
}
public String getExecuteStatusStr() {
return executeStatusStr;
}
public void setExecuteStatusStr(String executeStatusStr) {
this.executeStatusStr = executeStatusStr;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

@ -0,0 +1,24 @@
package com.hw.wms.domain.vo;
import com.hw.wms.domain.WmsRawOutstock;
import lombok.Data;
import java.util.List;
/**
* @Description: VO
* @ClassName: WmsAuditRawOutstockVo
* @Author : xins
* @Date :2024-03-28 8:37
* @Version :1.0
*/
@Data
public class WmsRawOutstockAuditReturnVo {
private String taskCode;
/**
*
*/
private List<WmsRawOutstock> wmsRawOutstockDetailList;
}

@ -16,8 +16,12 @@ import javax.validation.constraints.NotNull;
public class WmsRawOutstockAuditVo {
//原材料出库记录ID
@NotNull(message = "原材料出库记录ID必须输入")
private Long rawOutstockId;
// @NotNull(message = "原材料出库记录ID必须输入")
// private Long rawOutstockId;
//审核状态
@NotBlank(message = "任务编号必须输入")
private String taskCode;
//审核状态
@NotBlank(message = "审核状态必须输入")

@ -1,61 +1,61 @@
package com.hw.wms.mapper;
import java.util.List;
import com.hw.wms.domain.WmsRawInstockDetail;
/**
* Mapper
*
* @author xins
* @date 2023-12-25
*/
public interface WmsRawInstockDetailMapper
{
/**
*
*
* @param rawInstockDetailId
* @return
*/
public WmsRawInstockDetail selectWmsRawInstockDetailByRawInstockDetailId(Long rawInstockDetailId);
/**
*
*
* @param wmsRawInstockDetail
* @return
*/
public List<WmsRawInstockDetail> selectWmsRawInstockDetailList(WmsRawInstockDetail wmsRawInstockDetail);
/**
*
*
* @param wmsRawInstockDetail
* @return
*/
public int insertWmsRawInstockDetail(WmsRawInstockDetail wmsRawInstockDetail);
/**
*
*
* @param wmsRawInstockDetail
* @return
*/
public int updateWmsRawInstockDetail(WmsRawInstockDetail wmsRawInstockDetail);
/**
*
*
* @param rawInstockDetailId
* @return
*/
public int deleteWmsRawInstockDetailByRawInstockDetailId(Long rawInstockDetailId);
/**
*
*
* @param rawInstockDetailIds
* @return
*/
public int deleteWmsRawInstockDetailByRawInstockDetailIds(Long[] rawInstockDetailIds);
}
//package com.hw.wms.mapper;
//
//import java.util.List;
//import com.hw.wms.domain.WmsRawInstockDetail;
//
///**
// * 原材料入库记录明细Mapper接口
// *
// * @author xins
// * @date 2023-12-25
// */
//public interface WmsRawInstockDetailMapper
//{
// /**
// * 查询原材料入库记录明细
// *
// * @param rawInstockDetailId 原材料入库记录明细主键
// * @return 原材料入库记录明细
// */
// public WmsRawInstockDetail selectWmsRawInstockDetailByRawInstockDetailId(Long rawInstockDetailId);
//
// /**
// * 查询原材料入库记录明细列表
// *
// * @param wmsRawInstockDetail 原材料入库记录明细
// * @return 原材料入库记录明细集合
// */
// public List<WmsRawInstockDetail> selectWmsRawInstockDetailList(WmsRawInstockDetail wmsRawInstockDetail);
//
// /**
// * 新增原材料入库记录明细
// *
// * @param wmsRawInstockDetail 原材料入库记录明细
// * @return 结果
// */
// public int insertWmsRawInstockDetail(WmsRawInstockDetail wmsRawInstockDetail);
//
// /**
// * 修改原材料入库记录明细
// *
// * @param wmsRawInstockDetail 原材料入库记录明细
// * @return 结果
// */
// public int updateWmsRawInstockDetail(WmsRawInstockDetail wmsRawInstockDetail);
//
// /**
// * 删除原材料入库记录明细
// *
// * @param rawInstockDetailId 原材料入库记录明细主键
// * @return 结果
// */
// public int deleteWmsRawInstockDetailByRawInstockDetailId(Long rawInstockDetailId);
//
// /**
// * 批量删除原材料入库记录明细
// *
// * @param rawInstockDetailIds 需要删除的数据主键集合
// * @return 结果
// */
// public int deleteWmsRawInstockDetailByRawInstockDetailIds(Long[] rawInstockDetailIds);
//}

@ -2,7 +2,6 @@ package com.hw.wms.mapper;
import java.util.List;
import com.hw.wms.domain.WmsRawInstock;
import com.hw.wms.domain.WmsRawInstockDetail;
/**
* Mapper
@ -60,29 +59,14 @@ public interface WmsRawInstockMapper
*/
public int deleteWmsRawInstockByRawInstockIds(Long[] rawInstockIds);
/**
*
*
* @param rawInstockIds
* @return
*/
public int deleteWmsRawInstockDetailByRawInstockIds(Long[] rawInstockIds);
/**
*
*
* @param wmsRawInstockDetailList
* @return
*/
public int batchWmsRawInstockDetail(List<WmsRawInstockDetail> wmsRawInstockDetailList);
/**
*
*
*
* @param rawInstockId ID
* @return
* @param materialBarcode
* @return
*/
public int deleteWmsRawInstockDetailByRawInstockId(Long rawInstockId);
public WmsRawInstock selectWmsRawInstockByBarcode(String materialBarcode);
}

@ -82,4 +82,14 @@ public interface WmsRawOutstockDetailMapper {
*/
public List<WmsRawOutstockDetail> selectAuditPassRawOutstockDetails(WmsRawOutstockDetail wmsRawOutstockDetail);
/**
*
*
* @param wmsRawOutstockDetail
* @return
*/
public int selectCountOfWmsRawOutstockDetail(WmsRawOutstockDetail wmsRawOutstockDetail);
}

@ -102,4 +102,32 @@ public interface WmsRawOutstockMapper
* @return
*/
public int batchWmsRawOutstock(List<WmsRawOutstock> wmsRawOutstockList);
/**
* ,join
*
* @param wmsRawOutstock
* @return
*/
public List<WmsRawOutstock> selectWmsRawOutstockJoinList4Audit(WmsRawOutstock wmsRawOutstock);
/**
* ,join material
*
* @param wmsRawOutstock
* @return
*/
public List<WmsRawOutstock> selectWmsRawOutstockJoinMaterialList(WmsRawOutstock wmsRawOutstock);
/**
*
*
* @param wmsRawOutstock
* @return
*/
public int auditWmsRawOutstockByTaskCode(WmsRawOutstock wmsRawOutstock);
}

@ -24,6 +24,14 @@ public interface IWmsRawOutstockService
*/
public WmsRawOutstock selectWmsRawOutstockByRawOutstockId(Long rawOutstockId);
/**
*
*
* @param taskCode
* @return VO
*/
public WmsRawOutstockAuditReturnVo selectWmsRawOutstockByTaskCode(String taskCode);
/**
*
*
@ -68,7 +76,7 @@ public interface IWmsRawOutstockService
*
* @param wmsRawOutstockAuditVo
*/
public JSONObject auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo);
public int auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo);
/**
*
@ -78,12 +86,12 @@ public interface IWmsRawOutstockService
public int confirmWmsRawOutstock(WmsRawOutstockConfirmVo wmsRawOutstockConfirmVo);
/**
* 使
* 使
*
* @param wmsRawOutstockDetail
* @return
* @param wmsRawOutstock
* @return
*/
public List<WmsRawOutstockDetail> selectAuditPassRawOutstockDetails(WmsRawOutstockDetail wmsRawOutstockDetail);
public List<WmsRawOutstock> selectAuditPassRawOutstocks(WmsRawOutstock wmsRawOutstock);
/**
*
@ -103,6 +111,14 @@ public interface IWmsRawOutstockService
*/
public List<WmsRawOutstock> selectWmsRawOutstockJoinList(WmsRawOutstock wmsRawOutstock);
/**
* ,join warehouse
*
* @param wmsRawOutstock
* @return
*/
public List<WmsRawOutstock> selectWmsRawOutstockJoinList4Audit(WmsRawOutstock wmsRawOutstock);
/**
*
* @param wmsAssembleOutstockVo

@ -9,6 +9,7 @@ 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.core.utils.uuid.Seq;
import com.hw.common.security.utils.SecurityUtils;
import com.hw.mes.api.RemoteMesService;
import com.hw.mes.api.domain.MesBaseBarcodeInfo;
@ -16,22 +17,16 @@ import com.hw.wms.domain.WmsBaseLocation;
import com.hw.wms.domain.WmsRawStock;
import com.hw.wms.domain.vo.WmsRawInstockVo;
import com.hw.wms.mapper.WmsBaseLocationMapper;
import com.hw.wms.mapper.WmsRawInstockDetailMapper;
import com.hw.wms.mapper.WmsRawStockMapper;
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.WmsRawInstockDetail;
import com.hw.wms.mapper.WmsRawInstockMapper;
import com.hw.wms.domain.WmsRawInstock;
import com.hw.wms.service.IWmsRawInstockService;
import javax.annotation.Resource;
import javax.annotation.Resources;
/**
* Service
@ -44,9 +39,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Autowired
private WmsRawInstockMapper wmsRawInstockMapper;
@Autowired
private WmsRawInstockDetailMapper wmsRawInstockDetailMapper;
@Autowired
private WmsBaseLocationMapper wmsBaseLocationMapper;
@ -90,7 +82,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Override
public int insertWmsRawInstock(WmsRawInstock wmsRawInstock) {
int rows = wmsRawInstockMapper.insertWmsRawInstock(wmsRawInstock);
insertWmsRawInstockDetail(wmsRawInstock);
return rows;
}
@ -103,8 +94,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Transactional(rollbackFor = Exception.class)
@Override
public int updateWmsRawInstock(WmsRawInstock wmsRawInstock) {
wmsRawInstockMapper.deleteWmsRawInstockDetailByRawInstockId(wmsRawInstock.getRawInstockId());
insertWmsRawInstockDetail(wmsRawInstock);
return wmsRawInstockMapper.updateWmsRawInstock(wmsRawInstock);
}
@ -117,7 +106,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Transactional
@Override
public int deleteWmsRawInstockByRawInstockIds(Long[] rawInstockIds) {
wmsRawInstockMapper.deleteWmsRawInstockDetailByRawInstockIds(rawInstockIds);
return wmsRawInstockMapper.deleteWmsRawInstockByRawInstockIds(rawInstockIds);
}
@ -130,30 +118,9 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Transactional
@Override
public int deleteWmsRawInstockByRawInstockId(Long rawInstockId) {
wmsRawInstockMapper.deleteWmsRawInstockDetailByRawInstockId(rawInstockId);
return wmsRawInstockMapper.deleteWmsRawInstockByRawInstockId(rawInstockId);
}
/**
*
*
* @param wmsRawInstock
*/
public void insertWmsRawInstockDetail(WmsRawInstock wmsRawInstock) {
List<WmsRawInstockDetail> wmsRawInstockDetailList = wmsRawInstock.getWmsRawInstockDetailList();
Long rawInstockId = wmsRawInstock.getRawInstockId();
if (StringUtils.isNotNull(wmsRawInstockDetailList)) {
List<WmsRawInstockDetail> list = new ArrayList<WmsRawInstockDetail>();
for (WmsRawInstockDetail wmsRawInstockDetail : wmsRawInstockDetailList) {
wmsRawInstockDetail.setRawInstockId(rawInstockId);
list.add(wmsRawInstockDetail);
}
if (list.size() > 0) {
wmsRawInstockMapper.batchWmsRawInstockDetail(list);
}
}
}
/**
* ()
@ -164,7 +131,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Transactional(rollbackFor = Exception.class)
@Override
public int insertWmsRawInstock(WmsRawInstockVo wmsRawInstockVo) {
String materialBarcode = wmsRawInstockVo.getMaterialBarcode();
R<MesBaseBarcodeInfo> baseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER);
MesBaseBarcodeInfo baseBarcodeInfo = baseBarcodeInfoR.getData();
@ -190,25 +156,31 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
}
}
WmsRawInstock existedRawInstock = wmsRawInstockMapper.selectWmsRawInstockByBarcode(wmsRawInstockVo.getMaterialBarcode());
if (existedRawInstock != null) {
throw new ServiceException("此物料已经入库,不需重复入库");
}
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
WmsRawInstock wmsRawInstock = new WmsRawInstock();
wmsRawInstock.setTaskCode(Seq.getId(Seq.rawInstockSeqType,Seq.rawInstockSeqCode));
wmsRawInstock.setWarehouseId(baseLocation.getWarehouseId());
wmsRawInstock.setLocationCode(locationCode);
wmsRawInstock.setPoNo(baseBarcodeInfo.getPoNo());
wmsRawInstock.setOperationType(WmsConstants.WMS_OPERATION_TYPE_MANUAL);
wmsRawInstock.setInstockType(WmsConstants.RAW_INSTOCK_INSTOCK_TYPE_PURCHASE);
wmsRawInstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawInstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
wmsRawInstock.setApplyBy(userName);
wmsRawInstock.setApplyDate(currentDate);
wmsRawInstock.setMaterialBarcode(wmsRawInstockVo.getMaterialBarcode());
wmsRawInstock.setMaterialBatchCode(baseBarcodeInfo.getBatchCode());
wmsRawInstock.setMaterialId(baseBarcodeInfo.getMaterialId());
wmsRawInstock.setInstockAmount(wmsRawInstockVo.getInstockAmount());
//插入记录
int rows = wmsRawInstockMapper.insertWmsRawInstock(wmsRawInstock);
//插入明细
insertWmsRawInstockDetail(wmsRawInstock, wmsRawInstockVo, baseBarcodeInfo);
//更新库位库存
updateRawStock(wmsRawInstock, wmsRawInstockVo, baseLocation, baseBarcodeInfo, userName, currentDate);
@ -216,30 +188,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
}
/**
* 使
*
* @param wmsRawInstock
* @param wmsRawInstockVo
* @param baseBarcodeInfo
*/
public void insertWmsRawInstockDetail(WmsRawInstock wmsRawInstock, WmsRawInstockVo wmsRawInstockVo, MesBaseBarcodeInfo baseBarcodeInfo) {
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail();
wmsRawInstockDetail.setRawInstockId(wmsRawInstock.getRawInstockId());
wmsRawInstockDetail.setLocationCode(wmsRawInstock.getLocationCode());
wmsRawInstockDetail.setMaterialBarcode(wmsRawInstockVo.getMaterialBarcode());
wmsRawInstockDetail.setInstockBatch(baseBarcodeInfo.getBatchCode());
wmsRawInstockDetail.setMaterialId(baseBarcodeInfo.getMaterialId());
wmsRawInstockDetail.setPoNo(wmsRawInstock.getPoNo());
wmsRawInstockDetail.setPlanAmount(wmsRawInstockVo.getInstockAmount());
wmsRawInstockDetail.setInstockAmount(wmsRawInstockVo.getInstockAmount());
wmsRawInstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawInstockDetail.setInstockPerson(wmsRawInstock.getApplyBy());
wmsRawInstockDetail.setInstockTime(wmsRawInstock.getApplyDate());
wmsRawInstockDetail.setInstockWay(WmsConstants.RWA_INSTOCK_DETAIL_INSTOCK_WAY_MOBILE);
wmsRawInstockDetailMapper.insertWmsRawInstockDetail(wmsRawInstockDetail);
}
/**
*
*

@ -43,9 +43,6 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
@Autowired
private WmsRawInstockMapper wmsRawInstockMapper;
@Autowired
private WmsRawInstockDetailMapper wmsRawInstockDetailMapper;
@Autowired
private WmsRawStockMapper wmsRawStockMapper;
@ -94,6 +91,23 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
return wmsRawOutstock;
}
/**
*
*
* @param taskCode
* @return VO
*/
@Override
public WmsRawOutstockAuditReturnVo selectWmsRawOutstockByTaskCode(String taskCode) {
WmsRawOutstock queryRawOutstock = new WmsRawOutstock();
queryRawOutstock.setTaskCode(taskCode);
queryRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT);
List<WmsRawOutstock> wmsRawOutstocks = wmsRawOutstockMapper.selectWmsRawOutstockJoinMaterialList(queryRawOutstock);
WmsRawOutstockAuditReturnVo wmsRawOutstockAuditReturnVo = new WmsRawOutstockAuditReturnVo();
wmsRawOutstockAuditReturnVo.setWmsRawOutstockDetailList(wmsRawOutstocks);
return wmsRawOutstockAuditReturnVo;
}
/**
*
*
@ -189,29 +203,30 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
*/
@Transactional(rollbackFor = Exception.class)
@Override
public JSONObject auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo) {
public int auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo) {
String auditStatus = wmsRawOutstockAuditVo.getAuditStatus();
String auditReason = wmsRawOutstockAuditVo.getAuditReason();
String taskCode = wmsRawOutstockAuditVo.getTaskCode();
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
WmsRawOutstock wmsRawOutstock = wmsRawOutstockMapper.selectWmsRawOutstockByRawOutstockId(wmsRawOutstockAuditVo.getRawOutstockId());
wmsRawOutstock.setAuditStatus(auditStatus);
wmsRawOutstock.setAuditReason(auditReason);
wmsRawOutstock.setAuditBy(SecurityUtils.getUsername());
wmsRawOutstock.setAuditDate(new Date());
JSONObject returnJson = new JSONObject();
returnJson.put("auditStatus", auditStatus);
WmsRawOutstock queryRawOutstock = new WmsRawOutstock();
queryRawOutstock.setTaskCode(taskCode);
queryRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT);
List<WmsRawOutstock> wmsRawOutstocks = wmsRawOutstockMapper.selectWmsRawOutstockList(queryRawOutstock);
if (wmsRawOutstocks == null || wmsRawOutstocks.isEmpty()) {
throw new ServiceException("无待审核原材料出库记录");
}
//审核不通过,需要有审核意见,并且需要更新库位占用数量(解除之前占用的数量)。
if (auditStatus.equalsIgnoreCase(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_FAIL)) {
if (StringUtils.isEmpty(auditReason)) {
throw new ServiceException("请输入审核意见");
}
List<WmsRawOutstockDetail> wmsRawOutstockDetails = wmsRawOutstock.getWmsRawOutstockDetailList();
wmsRawOutstockDetails.forEach(wmsRawOutstockDetail -> {
String locationCode = wmsRawOutstockDetail.getLocationCode();
String instockBatch = wmsRawOutstockDetail.getInstockBatch();
BigDecimal planAmount = wmsRawOutstockDetail.getPlanAmount();
wmsRawOutstocks.forEach(wmsRawOutstock -> {
String locationCode = wmsRawOutstock.getLocationCode();
String instockBatch = wmsRawOutstock.getMaterialBatch();
BigDecimal planAmount = wmsRawOutstock.getOutstockAmount();
WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, instockBatch);
if (wmsRawStock != null) {
BigDecimal occupyAmount = wmsRawStock.getOccupyAmount() == null ?
@ -228,27 +243,22 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
}
});
} else {
//如果操作类型是agv需要WCS轮询获取任务去调度agv
// if (wmsRawOutstock.getOperationType().equals(WmsConstants.WMS_OPERATION_TYPE_AUTO)) {
// JSONArray agvTasks = new JSONArray();
// List<WmsRawOutstockDetail> wmsRawOutstockDetails = wmsRawOutstock.getWmsRawOutstockDetailList();
// wmsRawOutstockDetails.forEach(wmsRawOutstockDetail -> {
// //todo:双排库,先出前排,再出后排,如果前排有挡住的需要移库锁库等,按顺序下发任务
// JSONObject agvTask = new JSONObject();
// agvTask.put("stationId", wmsRawOutstock.getStationId());
// agvTask.put("locationCode", wmsRawOutstockDetail.getLocationCode());
// agvTask.put("planAmount", wmsRawOutstockDetail.getPlanAmount());
// agvTasks.add(agvTask);
// });
// returnJson.put("agvTasks", agvTasks.toString());
// }
}
wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock);
return returnJson;
WmsRawOutstock wmsRawOutstock = new WmsRawOutstock();
wmsRawOutstock.setAuditStatus(auditStatus);
wmsRawOutstock.setAuditReason(auditReason);
wmsRawOutstock.setAuditBy(SecurityUtils.getUsername());
wmsRawOutstock.setAuditDate(new Date());
wmsRawOutstock.setTaskCode(taskCode);
int rows = wmsRawOutstockMapper.auditWmsRawOutstockByTaskCode(wmsRawOutstock);
// JSONObject returnJson = new JSONObject();
// returnJson.put("auditStatus", auditStatus);
return rows;
}
@ -261,19 +271,20 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
@Transactional(rollbackFor = Exception.class)
@Override
public int confirmWmsRawOutstock(WmsRawOutstockConfirmVo wmsRawOutstockConfirmVo) {
Long rawOutstockDetailId = wmsRawOutstockConfirmVo.getRawOutstockDetailId();
Long rawOutstockId = wmsRawOutstockConfirmVo.getRawOutstockDetailId();
String locationCode = wmsRawOutstockConfirmVo.getLocationCode();
String materialBarcode = wmsRawOutstockConfirmVo.getInstockBatch();//在此是物料条码,不是批次码
BigDecimal outstockAmount = wmsRawOutstockConfirmVo.getOutstockAmount();
if (outstockAmount.compareTo(BigDecimal.ZERO) <= 0) {
throw new ServiceException("数量需大于0");
}
R<MesBaseBarcodeInfo> baseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER);
MesBaseBarcodeInfo baseBarcodeInfo = baseBarcodeInfoR.getData();
if (baseBarcodeInfo == null) {
throw new ServiceException("物料编码有误");
}
BigDecimal outstockAmount = wmsRawOutstockConfirmVo.getOutstockAmount();
if (outstockAmount.compareTo(BigDecimal.ZERO) <= 0) {
throw new ServiceException("数量需大于0");
}
String batchFlag = baseBarcodeInfo.getBatchFlag();
if (!batchFlag.equals(MesConstants.IS_BATCH)) {//如果不是批次
if (outstockAmount.compareTo(BigDecimal.ONE) != 0) {
@ -281,24 +292,34 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
}
}
String batchCode = baseBarcodeInfo.getBatchCode();
//判断是否有此出库任务,人工出库的同一个出库记录同一个库位、同一个物料对应一个明细agv的有可能是多个
WmsRawOutstock queryRawOutstock = new WmsRawOutstock();
queryRawOutstock.setLocationCode(locationCode);
queryRawOutstock.setInstockBatch(batchCode);
queryRawOutstock.setExecuteStatusStr(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE + "," + WmsConstants.WMS_EXECUTE_STATUS_EXECUTING);
queryRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
queryRawOutstock.setRawOutstockId(rawOutstockId);
List<WmsRawOutstock> wmsRawOutstocks = wmsRawOutstockMapper.selectWmsRawOutstockList(queryRawOutstock);
if (wmsRawOutstocks == null || wmsRawOutstocks.isEmpty()) {
throw new ServiceException("无此出库任务");
}
if (wmsRawOutstocks.size() > 1) {
throw new ServiceException("请选择具体出库任务后点击确认");
}
WmsRawOutstock wmsRawOutstock = wmsRawOutstocks.get(0);
WmsRawOutstockDetail queryRawOutstockDetail = new WmsRawOutstockDetail();
queryRawOutstockDetail.setRawOutstockId(wmsRawOutstock.getRawOutstockId());
queryRawOutstockDetail.setLocationCode(locationCode);
queryRawOutstockDetail.setInstockBatch(baseBarcodeInfo.getBatchCode());
queryRawOutstockDetail.setExecuteStatusStr(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE + "," + WmsConstants.WMS_EXECUTE_STATUS_EXECUTING);
queryRawOutstockDetail.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
List<WmsRawOutstockDetail> wmsRawOutstockDetails = wmsRawOutstockDetailMapper.selectWmsRawOutstockDetailList(queryRawOutstockDetail);
WmsRawOutstockDetail wmsRawOutstockDetail;
if (wmsRawOutstockDetails == null || wmsRawOutstockDetails.isEmpty()) {
throw new ServiceException("没有此出库任务");
} else if (wmsRawOutstockDetails.size() > 1) {//如果有同一库位同一批次多次领料申请比方说张三领料批次A库位A3个李四领取批次A库位A4个此时就需要选择
if (rawOutstockDetailId == null) {
throw new ServiceException("请选择具体出库任务后点击确认");
} else {
wmsRawOutstockDetail = wmsRawOutstockDetails.stream().filter(wro -> wro.getRawOutstockDetailId().equals(rawOutstockDetailId)).findFirst().get();
}
} else {
wmsRawOutstockDetail = wmsRawOutstockDetails.get(0);
queryRawOutstockDetail.setMaterialBarcode(materialBarcode);
int rawOutstockDetailCount = wmsRawOutstockDetailMapper.selectCountOfWmsRawOutstockDetail(queryRawOutstockDetail);
if (rawOutstockDetailCount > 0) {
throw new ServiceException("此物料已经出库,不能重复出库");
}
//todo 判断质检状态
@ -308,41 +329,62 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
// }
// 判断本次出库数量+已出库数量是否大于计划出库数量
BigDecimal hadOutstockAmount = wmsRawOutstockDetail.getOutstockAmount() == null ? BigDecimal.ZERO : wmsRawOutstockDetail.getOutstockAmount();
BigDecimal planOutstockAmount = wmsRawOutstockDetail.getPlanAmount();
BigDecimal hadOutstockAmount = wmsRawOutstock.getRealOutstockAmount() == null ? BigDecimal.ZERO : wmsRawOutstock.getRealOutstockAmount();
BigDecimal planOutstockAmount = wmsRawOutstock.getOutstockAmount();
BigDecimal updatedOutstockAmount = hadOutstockAmount.add(outstockAmount);
if (updatedOutstockAmount.compareTo(planOutstockAmount) > 0) {
throw new ServiceException("出库数量不能大于" + planOutstockAmount.subtract(hadOutstockAmount));
}
wmsRawOutstockDetail.setOutstockAmount(updatedOutstockAmount);
String executeStatus = "";
if (updatedOutstockAmount.compareTo(planOutstockAmount) == 0) {//如果已出完
executeStatus = WmsConstants.WMS_EXECUTE_STATUS_FINISH;
//更新出库记录执行状态
this.updateRawOutstockDetailExecuteStatus(wmsRawOutstockDetail.getRawOutstockId(),
wmsRawOutstockDetail.getRawOutstockDetailId());
} else {
executeStatus = WmsConstants.WMS_EXECUTE_STATUS_EXECUTING;
}
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
wmsRawOutstockDetail.setExecuteStatus(executeStatus);
if (wmsRawOutstockDetail.getOutstockTime() == null) {
wmsRawOutstockDetail.setOutstockTime(currentDate);
} else {
wmsRawOutstockDetail.setUpdateDate(currentDate);
}
if (wmsRawOutstockDetail.getOutstockPerson() == null) {
wmsRawOutstockDetail.setOutstockPerson(userName);
} else {
wmsRawOutstockDetail.setUpdateBy(userName);
}
//更新原材料库存占用数量和总数量
WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, baseBarcodeInfo.getBatchCode());
wmsRawOutstock.setRealOutstockAmount(updatedOutstockAmount);
if (updatedOutstockAmount.compareTo(planOutstockAmount) == 0) {//如果已出完
wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawOutstock.setEndTime(currentDate);
} else {
wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_EXECUTING);
if (wmsRawOutstock.getBeginTime() == null) {
wmsRawOutstock.setBeginTime(currentDate);
}
}
wmsRawOutstock.setUpdateDate(currentDate);
wmsRawOutstock.setUpdateBy(userName);
wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock);
insertRawOutstockDetail(wmsRawOutstock, materialBarcode, batchCode,userName, currentDate);
updateRawStock(locationCode, batchCode, outstockAmount, userName, currentDate);
return 1;
}
public void insertRawOutstockDetail(WmsRawOutstock wmsRawOutstock, String materialBarcode, String batchCode,
String userName, Date currentDate) {
WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail();
wmsRawOutstockDetail.setRawOutstockId(wmsRawOutstock.getRawOutstockId());
wmsRawOutstockDetail.setWarehouseId(wmsRawOutstock.getWarehouseId());
wmsRawOutstockDetail.setLocationCode(wmsRawOutstock.getLocationCode());
wmsRawOutstockDetail.setMaterialId(wmsRawOutstock.getProductId());
wmsRawOutstockDetail.setMaterialBarcode(materialBarcode);
wmsRawOutstockDetail.setInstockBatch(batchCode);
wmsRawOutstockDetail.setPlanAmount(BigDecimal.ONE);
wmsRawOutstockDetail.setOutstockAmount(BigDecimal.ONE);
wmsRawOutstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawOutstockDetail.setOutstockPerson(userName);
wmsRawOutstockDetail.setOutstockTime(currentDate);
wmsRawOutstockDetail.setOutstockWay(WmsConstants.WMS_STOCK_WAY_MANUAL);
wmsRawOutstockDetailMapper.insertWmsRawOutstockDetail(wmsRawOutstockDetail);
}
public void updateRawStock(String locationCode, String batchCode, BigDecimal outstockAmount, String userName, Date currentDate) {
//更新原材料库存占用数量和总数量
WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, batchCode);
if (wmsRawStock == null) {
throw new ServiceException("没找到库存信息");
} else {
@ -351,6 +393,9 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
BigDecimal updatedOccupyAmount = occupyAmount.subtract(outstockAmount);
BigDecimal updatedTotalAmount = totalAmount.subtract(outstockAmount);
updatedOccupyAmount = updatedOccupyAmount.compareTo(BigDecimal.ZERO) >= 0 ? updatedOccupyAmount : BigDecimal.ZERO;
if (updatedTotalAmount.compareTo(BigDecimal.ZERO) < 0) {
throw new ServiceException("库存不足");
}
updatedTotalAmount = updatedTotalAmount.compareTo(BigDecimal.ZERO) >= 0 ? updatedTotalAmount : BigDecimal.ZERO;
wmsRawStock.setOccupyAmount(updatedOccupyAmount);
wmsRawStock.setTotalAmount(updatedTotalAmount);
@ -358,21 +403,19 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
wmsRawStock.setUpdateBy(userName);
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
}
wmsRawOutstockDetailMapper.updateWmsRawOutstockDetail(wmsRawOutstockDetail);
return 1;
}
/**
* 使
* 使
*
* @param wmsRawOutstockDetail
* @return
* @param wmsRawOutstock
* @return
*/
@Override
public List<WmsRawOutstockDetail> selectAuditPassRawOutstockDetails(WmsRawOutstockDetail wmsRawOutstockDetail) {
return wmsRawOutstockDetailMapper.selectAuditPassRawOutstockDetails(wmsRawOutstockDetail);
public List<WmsRawOutstock> selectAuditPassRawOutstocks(WmsRawOutstock wmsRawOutstock) {
wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
List<WmsRawOutstock> wmsRawOutstocks = wmsRawOutstockMapper.selectWmsRawOutstockJoinMaterialList(wmsRawOutstock);
return wmsRawOutstocks;
}
@ -420,15 +463,17 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
// .collect(Collectors.groupingBy(WmsRawOutstockDetail::getMaterialId, HashMap::new, Collectors.reducing(BigDecimal.ZERO, WmsRawOutstockDetail::getPlanAmount, BigDecimal::add)));
//判断仓库类型,出库记录保存对应操作类型,出库记录明细保存对应出库方式
WmsBaseWarehouse warehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId);
String warehouseType = warehouse.getWarehouseType();
String outstockWay = WmsConstants.OUTSTOCK_WAY_MAP.get(warehouseType);
WmsBaseWarehouse baseWarehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId);
String warehouseType = baseWarehouse.getWarehouseType();
String queryQualityStatus = WmsConstants.WMS_QUALITY_STATUS_PASS;
String planCode = wmsRawOutstock.getPlanCode();
String planDetailCode = wmsRawOutstock.getPlanDetailCode();
List<WmsRawOutstockDetail> toUpdatedRawOutstockDetails = new ArrayList<>();
List<WmsRawOutstock> toInsertedRawOutstocks = new ArrayList<>();
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
String taskCode = Seq.getId(Seq.rawOutstockSeqType, Seq.rawOutstockSeqCode);
//传入的申请领料list遍历
rawOutstockDetails.forEach(rawOutstockDetail -> {
BigDecimal planAmount = rawOutstockDetail.getPlanAmount() == null ?
@ -463,10 +508,10 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
//提前更新(主要是更新数量等信息,避免在下一次判断中还使用上次的数量),放在事务中
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
//原材料出库记录明细(有break以下方法需要写在下面)
WmsRawOutstockDetail wmsRawOutstockDetail = getWmsRawOutstockDetail(wmsRawStock, materialId,
planAmount, currentDate, userName, outstockWay);
toUpdatedRawOutstockDetails.add(wmsRawOutstockDetail);
//原材料出库记录(有break以下方法需要写在此处)
WmsRawOutstock toInsertedRawOutstock = getWmsRawOutstock(wmsRawStock, baseWarehouse, planCode, planDetailCode, materialId, taskCode,
planAmount, currentDate, userName);
toInsertedRawOutstocks.add(toInsertedRawOutstock);
planAmount = planAmount.subtract(availableAmount);
} else if (planAmount.compareTo(availableAmount) == 0) {//计划数量等于可出库数量
@ -477,10 +522,10 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
//如果同一个物料有多条记录的处理,提前更新(主要是更新数量等信息,避免在下一次判断中还使用上次的数量),放在事务中
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
//原材料出库记录明细(有break以下方法需要写在下面)
WmsRawOutstockDetail wmsRawOutstockDetail = getWmsRawOutstockDetail(wmsRawStock, materialId,
planAmount, currentDate, userName, outstockWay);
toUpdatedRawOutstockDetails.add(wmsRawOutstockDetail);
//原材料出库记录(有break以下方法需要写在此处)
WmsRawOutstock toInsertedRawOutstock = getWmsRawOutstock(wmsRawStock, baseWarehouse, planCode, planDetailCode, materialId, taskCode,
planAmount, currentDate, userName);
toInsertedRawOutstocks.add(toInsertedRawOutstock);
planAmount = BigDecimal.ZERO;
break;
@ -492,10 +537,10 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
//如果同一个物料有多条记录的处理,提前更新(主要是更新数量等信息,避免在下一次判断中还使用上次的数量),放在事务中
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
//原材料出库记录明细(有break以下方法需要写在下面)
WmsRawOutstockDetail wmsRawOutstockDetail = getWmsRawOutstockDetail(wmsRawStock, materialId,
planAmount, currentDate, userName, outstockWay);
toUpdatedRawOutstockDetails.add(wmsRawOutstockDetail);
//原材料出库记录(有break以下方法需要写在此处)
WmsRawOutstock toInsertedRawOutstock = getWmsRawOutstock(wmsRawStock, baseWarehouse, planCode, planDetailCode, materialId, taskCode,
planAmount, currentDate, userName);
toInsertedRawOutstocks.add(toInsertedRawOutstock);
planAmount = BigDecimal.ZERO;
break;
@ -511,43 +556,74 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
}
});
handleRawOutstock(wmsRawOutstock,warehouse,userName,currentDate,toUpdatedRawOutstockDetails);
wmsRawOutstockMapper.batchWmsRawOutstock(toInsertedRawOutstocks);
return 1;
}
/**
*
*
*
* @param wmsRawStock
* @param baseWarehouse
* @param planCode
* @param planDetailCode
* @param materialId
* @param availableAmount
* @param taskCode
* @param planAmount
* @param currentDate
* @param userName
* @return
*/
private WmsRawOutstockDetail getWmsRawOutstockDetail(WmsRawStock wmsRawStock, Long materialId,
BigDecimal availableAmount, Date currentDate, String userName, String outstockWay) {
WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail();
wmsRawOutstockDetail.setWarehouseId(wmsRawStock.getWarehouseId());
wmsRawOutstockDetail.setLocationCode(wmsRawStock.getLocationCode());
wmsRawOutstockDetail.setMaterialId(materialId);
wmsRawOutstockDetail.setInstockBatch(wmsRawStock.getInstockBatch());
wmsRawOutstockDetail.setPlanAmount(availableAmount);
wmsRawOutstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
wmsRawOutstockDetail.setOutstockWay(outstockWay);
wmsRawOutstockDetail.setPalletInfoCode(wmsRawStock.getPalletInfoCode());
wmsRawOutstockDetail.setQualityStatus(wmsRawStock.getQualityStatus());
wmsRawOutstockDetail.setCreateDate(currentDate);
wmsRawOutstockDetail.setCreateBy(userName);
private WmsRawOutstock getWmsRawOutstock(WmsRawStock wmsRawStock, WmsBaseWarehouse baseWarehouse, String planCode, String planDetailCode, Long materialId, String taskCode,
BigDecimal planAmount, Date currentDate, String userName) {
//出库要求 0申请出库1申请审核出库2直接出库
String outRequirement = baseWarehouse.getOutRequirement();
String warehouseType = baseWarehouse.getWarehouseType();
String operationType = WmsConstants.OPERATION_TYPE_MAP.get(warehouseType);
return wmsRawOutstockDetail;
WmsRawOutstock toInsertedRawOutstock = new WmsRawOutstock();
if (warehouseType.equals(WmsConstants.WMS_WAREHOUSE_TYPE_NORMAL)) {//如果是普通仓库,需要校验审核标识
if (outRequirement.equals(WmsConstants.WMS_WAREHOUSE_OUT_REQUIREMENT_APPLY_AUDIT)) {
toInsertedRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT);
toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
} else {
toInsertedRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
}
} else {
toInsertedRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
toInsertedRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
}
toInsertedRawOutstock.setTaskCode(taskCode);
toInsertedRawOutstock.setWarehouseId(wmsRawStock.getWarehouseId());
toInsertedRawOutstock.setLocationCode(wmsRawStock.getLocationCode());
toInsertedRawOutstock.setStationId(SecurityUtils.getStationId());
toInsertedRawOutstock.setPalletInfoCode(wmsRawStock.getPalletInfoCode());
toInsertedRawOutstock.setOperationType(operationType);
toInsertedRawOutstock.setApplyBy(userName);
toInsertedRawOutstock.setApplyDate(currentDate);
toInsertedRawOutstock.setEndStationCode(SecurityUtils.getStationCode());
toInsertedRawOutstock.setProductId(materialId);
toInsertedRawOutstock.setOutstockAmount(planAmount);
toInsertedRawOutstock.setPlanCode(planCode);
toInsertedRawOutstock.setPlanDetailCode(planDetailCode);
toInsertedRawOutstock.setMaterialBatch(wmsRawStock.getInstockBatch());
toInsertedRawOutstock.setTaskType(WmsConstants.WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_PICKING);
toInsertedRawOutstock.setCreateTime(currentDate);
toInsertedRawOutstock.setCreateBy(userName);
return toInsertedRawOutstock;
}
public void handleRawOutstock(WmsRawOutstock wmsRawOutstock, WmsBaseWarehouse warehouse,
String userName, Date currentDate,List<WmsRawOutstockDetail> toUpdatedRawOutstockDetails) {
String userName, Date currentDate, List<WmsRawOutstockDetail> toUpdatedRawOutstockDetails) {
//出库要求 0申请出库1申请审核出库2直接出库
String outRequirement = warehouse.getOutRequirement();
String warehouseType = warehouse.getWarehouseType();
@ -769,24 +845,24 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
rawInstock.setWarehouseId(wmsAgvRawOutstockVo.getWarehouseId());
rawInstock.setOperationType(WmsConstants.WMS_OPERATION_TYPE_AUTO);
// rawInstock.setInstockType(WmsConstants.RAW_INSTOCK_INSTOCK_TYPE_MOVE);
rawInstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
rawInstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
rawInstock.setApplyDate(currentDate);
rawInstock.setApplyBy(userName);
rawInstock.setCreateBy(userName);
rawInstock.setCreateTime(currentDate);
wmsRawInstockMapper.insertWmsRawInstock(rawInstock);
WmsRawInstockDetail rawInstockDetail = new WmsRawInstockDetail();
rawInstockDetail.setRawInstockId(rawInstock.getRawInstockId());
rawInstockDetail.setLocationCode(targetBaseLocation.getLocationCode());
rawInstockDetail.setMaterialBarcode(moveMaterialBarcode);
rawInstockDetail.setMaterialId(moveMaterialId);
rawInstockDetail.setPlanAmount(new BigDecimal(1));//todo agv数量默认1
rawInstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
rawInstockDetail.setInstockWay(WmsConstants.WMS_STOCK_WAY_AGV);
wmsRawInstockDetailMapper.insertWmsRawInstockDetail(rawInstockDetail);
// rawInstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
// rawInstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
// rawInstock.setApplyDate(currentDate);
// rawInstock.setApplyBy(userName);
// rawInstock.setCreateBy(userName);
// rawInstock.setCreateTime(currentDate);
//
// wmsRawInstockMapper.insertWmsRawInstock(rawInstock);
//
// WmsRawInstockDetail rawInstockDetail = new WmsRawInstockDetail();
// rawInstockDetail.setRawInstockId(rawInstock.getRawInstockId());
// rawInstockDetail.setLocationCode(targetBaseLocation.getLocationCode());
// rawInstockDetail.setMaterialBarcode(moveMaterialBarcode);
// rawInstockDetail.setMaterialId(moveMaterialId);
// rawInstockDetail.setPlanAmount(new BigDecimal(1));//todo agv数量默认1
// rawInstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
// rawInstockDetail.setInstockWay(WmsConstants.WMS_STOCK_WAY_AGV);
// wmsRawInstockDetailMapper.insertWmsRawInstockDetail(rawInstockDetail);
return rawInstock;
}
@ -831,6 +907,18 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
}
/**
* ,join warehouse
*
* @param wmsRawOutstock
* @return
*/
@Override
public List<WmsRawOutstock> selectWmsRawOutstockJoinList4Audit(WmsRawOutstock wmsRawOutstock) {
return wmsRawOutstockMapper.selectWmsRawOutstockJoinList4Audit(wmsRawOutstock);
}
/**
*
*

@ -1,164 +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.WmsRawInstockDetailMapper">
<resultMap type="WmsRawInstockDetail" id="WmsRawInstockDetailResult">
<result property="rawInstockDetailId" column="raw_instock_detail_id" />
<result property="rawInstockId" column="raw_instock_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="poNo" column="po_no" />
<result property="materialProductionDate" column="material_production_date" />
<result property="planAmount" column="plan_amount" />
<result property="instockAmount" column="instock_amount" />
<result property="executeStatus" column="execute_status" />
<result property="erpStatus" column="erp_status" />
<result property="instockPerson" column="instock_person" />
<result property="instockTime" column="instock_time" />
<result property="instockWay" column="instock_way" />
<result property="machineName" column="machine_name" />
<result property="qualityStatus" column="quality_status" />
<result property="stackAmount" column="stack_amount" />
<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" />
<result property="poLine" column="po_line" />
</resultMap>
<sql id="selectWmsRawInstockDetailVo">
select raw_instock_detail_id, raw_instock_id, location_code, material_barcode, instock_batch, material_id, po_no, material_production_date, plan_amount, instock_amount, execute_status, erp_status, instock_person, instock_time, instock_way, machine_name, quality_status, stack_amount, create_by, create_date, update_by, update_date, active_flag, po_line from wms_raw_instock_detail
</sql>
<select id="selectWmsRawInstockDetailList" parameterType="WmsRawInstockDetail" resultMap="WmsRawInstockDetailResult">
<include refid="selectWmsRawInstockDetailVo"/>
<where>
<if test="rawInstockId != null "> and raw_instock_id = #{rawInstockId}</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="poNo != null and poNo != ''"> and po_no = #{poNo}</if>
<if test="materialProductionDate != null "> and material_production_date = #{materialProductionDate}</if>
<if test="planAmount != null "> and plan_amount = #{planAmount}</if>
<if test="instockAmount != null "> and instock_amount = #{instockAmount}</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="instockPerson != null and instockPerson != ''"> and instock_person = #{instockPerson}</if>
<if test="instockTime != null "> and instock_time = #{instockTime}</if>
<if test="instockWay != null and instockWay != ''"> and instock_way = #{instockWay}</if>
<if test="machineName != null and machineName != ''"> and machine_name like concat('%', #{machineName}, '%')</if>
<if test="qualityStatus != null and qualityStatus != ''"> and quality_status = #{qualityStatus}</if>
<if test="stackAmount != null "> and stack_amount = #{stackAmount}</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>
<if test="poLine != null and poLine != ''"> and po_line = #{poLine}</if>
</where>
</select>
<select id="selectWmsRawInstockDetailByRawInstockDetailId" parameterType="Long" resultMap="WmsRawInstockDetailResult">
<include refid="selectWmsRawInstockDetailVo"/>
where raw_instock_detail_id = #{rawInstockDetailId}
</select>
<insert id="insertWmsRawInstockDetail" parameterType="WmsRawInstockDetail" useGeneratedKeys="true" keyProperty="rawInstockDetailId">
insert into wms_raw_instock_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="rawInstockId != null">raw_instock_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="poNo != null">po_no,</if>
<if test="materialProductionDate != null">material_production_date,</if>
<if test="planAmount != null">plan_amount,</if>
<if test="instockAmount != null">instock_amount,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="erpStatus != null">erp_status,</if>
<if test="instockPerson != null">instock_person,</if>
<if test="instockTime != null">instock_time,</if>
<if test="instockWay != null and instockWay != ''">instock_way,</if>
<if test="machineName != null">machine_name,</if>
<if test="qualityStatus != null">quality_status,</if>
<if test="stackAmount != null">stack_amount,</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>
<if test="poLine != null">po_line,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="rawInstockId != null">#{rawInstockId},</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="poNo != null">#{poNo},</if>
<if test="materialProductionDate != null">#{materialProductionDate},</if>
<if test="planAmount != null">#{planAmount},</if>
<if test="instockAmount != null">#{instockAmount},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="erpStatus != null">#{erpStatus},</if>
<if test="instockPerson != null">#{instockPerson},</if>
<if test="instockTime != null">#{instockTime},</if>
<if test="instockWay != null and instockWay != ''">#{instockWay},</if>
<if test="machineName != null">#{machineName},</if>
<if test="qualityStatus != null">#{qualityStatus},</if>
<if test="stackAmount != null">#{stackAmount},</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>
<if test="poLine != null">#{poLine},</if>
</trim>
</insert>
<update id="updateWmsRawInstockDetail" parameterType="WmsRawInstockDetail">
update wms_raw_instock_detail
<trim prefix="SET" suffixOverrides=",">
<if test="rawInstockId != null">raw_instock_id = #{rawInstockId},</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="poNo != null">po_no = #{poNo},</if>
<if test="materialProductionDate != null">material_production_date = #{materialProductionDate},</if>
<if test="planAmount != null">plan_amount = #{planAmount},</if>
<if test="instockAmount != null">instock_amount = #{instockAmount},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="erpStatus != null">erp_status = #{erpStatus},</if>
<if test="instockPerson != null">instock_person = #{instockPerson},</if>
<if test="instockTime != null">instock_time = #{instockTime},</if>
<if test="instockWay != null and instockWay != ''">instock_way = #{instockWay},</if>
<if test="machineName != null">machine_name = #{machineName},</if>
<if test="qualityStatus != null">quality_status = #{qualityStatus},</if>
<if test="stackAmount != null">stack_amount = #{stackAmount},</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>
<if test="poLine != null">po_line = #{poLine},</if>
</trim>
where raw_instock_detail_id = #{rawInstockDetailId}
</update>
<delete id="deleteWmsRawInstockDetailByRawInstockDetailId" parameterType="Long">
delete from wms_raw_instock_detail where raw_instock_detail_id = #{rawInstockDetailId}
</delete>
<delete id="deleteWmsRawInstockDetailByRawInstockDetailIds" parameterType="String">
delete from wms_raw_instock_detail where raw_instock_detail_id in
<foreach item="rawInstockDetailId" collection="array" open="(" separator="," close=")">
#{rawInstockDetailId}
</foreach>
</delete>
</mapper>

@ -12,53 +12,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="poNo" column="po_no" />
<result property="operationType" column="operation_type" />
<result property="instockType" column="instock_type" />
<result property="applyReason" column="apply_reason" />
<result property="auditReason" column="audit_reason" />
<result property="auditStatus" column="audit_status" />
<result property="materialId" column="material_id" />
<result property="materialBarcode" column="material_barcode" />
<result property="materialBatchCode" column="material_batch_code" />
<result property="palletInfoCode" column="pallet_info_code" />
<result property="instockAmount" column="instock_amount" />
<result property="executeStatus" column="execute_status" />
<result property="erpStatus" column="erp_status" />
<result property="erpAmount" column="erp_amount" />
<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="machineName" column="machine_name" />
<result property="qualityStatus" column="quality_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>
<resultMap id="WmsRawInstockWmsRawInstockDetailResult" type="WmsRawInstock" extends="WmsRawInstockResult">
<collection property="wmsRawInstockDetailList" notNullColumn="sub_raw_instock_detail_id" javaType="java.util.List" resultMap="WmsRawInstockDetailResult" />
</resultMap>
<resultMap type="WmsRawInstockDetail" id="WmsRawInstockDetailResult">
<result property="rawInstockDetailId" column="sub_raw_instock_detail_id" />
<result property="rawInstockId" column="sub_raw_instock_id" />
<result property="locationCode" column="sub_location_code" />
<result property="materialBarcode" column="sub_material_barcode" />
<result property="materialId" column="sub_material_id" />
<result property="poNo" column="po_no" />
<result property="instockBatch" column="sub_instock_batch" />
<result property="materialProductionDate" column="sub_material_production_Date" />
<result property="planAmount" column="sub_plan_amount" />
<result property="instockAmount" column="sub_instock_amount" />
<result property="executeStatus" column="sub_execute_status" />
<result property="erpStatus" column="sub_erp_status" />
<result property="instockPerson" column="sub_instock_person" />
<result property="instockTime" column="sub_instock_time" />
<result property="instockWay" column="sub_instock_way" />
<result property="machineName" column="sub_machine_name" />
<result property="qualityStatus" column="sub_quality_status" />
<result property="stackAmount" column="sub_stack_amount" />
<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" />
<result property="poLine" column="sub_po_line" />
</resultMap>
<sql id="selectWmsRawInstockVo">
select raw_instock_id, task_code, warehouse_id, location_code, po_no, operation_type, instock_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_raw_instock
select raw_instock_id, task_code, warehouse_id, location_code, po_no, operation_type, instock_type, material_id, material_barcode, material_batch_code, pallet_info_code, instock_amount, execute_status, erp_status, erp_amount, apply_by, apply_date, machine_name, quality_status, update_by, update_date, begin_time, end_time from wms_raw_instock
</sql>
<select id="selectWmsRawInstockList" parameterType="WmsRawInstock" resultMap="WmsRawInstockResult">
@ -84,12 +57,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="selectWmsRawInstockByRawInstockId" parameterType="Long" resultMap="WmsRawInstockWmsRawInstockDetailResult">
select a.raw_instock_id, a.task_code, a.warehouse_id, a.location_code, a.po_no, a.operation_type, a.instock_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.raw_instock_detail_id as sub_raw_instock_detail_id, b.raw_instock_id as sub_raw_instock_id, b.location_code as sub_location_code, b.material_barcode as sub_material_barcode, b.material_id as sub_material_id, b.instock_batch as sub_instock_batch, b.material_production_Date as sub_material_production_Date, b.instock_amount as sub_instock_amount, b.execute_status as sub_execute_status, b.erp_status as sub_erp_status, b.instock_person as sub_instock_person, b.instock_time as sub_instock_time, b.instock_way as sub_instock_way, b.machine_name as sub_machine_name, b.quality_status as sub_quality_status, b.stack_amount as sub_stack_amount, 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, b.po_line as sub_po_line
from wms_raw_instock a
left join wms_raw_instock_detail b on b.raw_instock_id = a.raw_instock_id
where a.raw_instock_id = #{rawInstockId}
<select id="selectWmsRawInstockByRawInstockId" parameterType="Long" resultMap="WmsRawInstockResult">
<include refid="selectWmsRawInstockVo"/>
where raw_instock_id = #{rawInstockId}
</select>
<insert id="insertWmsRawInstock" parameterType="WmsRawInstock" useGeneratedKeys="true" keyProperty="rawInstockId">
@ -101,19 +71,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="poNo != null">po_no,</if>
<if test="operationType != null and operationType != ''">operation_type,</if>
<if test="instockType != null and instockType != ''">instock_type,</if>
<if test="applyReason != null">apply_reason,</if>
<if test="auditReason != null">audit_reason,</if>
<if test="auditStatus != null">audit_status,</if>
<if test="executeStatus != null">execute_status,</if>
<if test="materialId != null">material_id,</if>
<if test="materialBarcode != null">material_barcode,</if>
<if test="materialBatchCode != null">material_batch_code,</if>
<if test="palletInfoCode != null">pallet_info_code,</if>
<if test="instockAmount != null">instock_amount,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="erpStatus != null">erp_status,</if>
<if test="erpAmount != null">erp_amount,</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="machineName != null">machine_name,</if>
<if test="qualityStatus != null">quality_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>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="taskCode != null">#{taskCode},</if>
<if test="warehouseId != null">#{warehouseId},</if>
@ -121,19 +95,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="poNo != null">#{poNo},</if>
<if test="operationType != null and operationType != ''">#{operationType},</if>
<if test="instockType != null and instockType != ''">#{instockType},</if>
<if test="applyReason != null">#{applyReason},</if>
<if test="auditReason != null">#{auditReason},</if>
<if test="auditStatus != null">#{auditStatus},</if>
<if test="executeStatus != null">#{executeStatus},</if>
<if test="materialId != null">#{materialId},</if>
<if test="materialBarcode != null">#{materialBarcode},</if>
<if test="materialBatchCode != null">#{materialBatchCode},</if>
<if test="palletInfoCode != null">#{palletInfoCode},</if>
<if test="instockAmount != null">#{instockAmount},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="erpStatus != null">#{erpStatus},</if>
<if test="erpAmount != null">#{erpAmount},</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="machineName != null">#{machineName},</if>
<if test="qualityStatus != null">#{qualityStatus},</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>
</trim>
</insert>
<update id="updateWmsRawInstock" parameterType="WmsRawInstock">
@ -145,14 +123,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="poNo != null">po_no = #{poNo},</if>
<if test="operationType != null and operationType != ''">operation_type = #{operationType},</if>
<if test="instockType != null and instockType != ''">instock_type = #{instockType},</if>
<if test="applyReason != null">apply_reason = #{applyReason},</if>
<if test="auditReason != null">audit_reason = #{auditReason},</if>
<if test="auditStatus != null">audit_status = #{auditStatus},</if>
<if test="executeStatus != null">execute_status = #{executeStatus},</if>
<if test="materialId != null">material_id = #{materialId},</if>
<if test="materialBarcode != null">material_barcode = #{materialBarcode},</if>
<if test="materialBatchCode != null">material_batch_code = #{materialBatchCode},</if>
<if test="palletInfoCode != null">pallet_info_code = #{palletInfoCode},</if>
<if test="instockAmount != null">instock_amount = #{instockAmount},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="erpStatus != null">erp_status = #{erpStatus},</if>
<if test="erpAmount != null">erp_amount = #{erpAmount},</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="machineName != null">machine_name = #{machineName},</if>
<if test="qualityStatus != null">quality_status = #{qualityStatus},</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>
@ -172,21 +154,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<delete id="deleteWmsRawInstockDetailByRawInstockIds" parameterType="String">
delete from wms_raw_instock_detail where raw_instock_id in
<foreach item="rawInstockId" collection="array" open="(" separator="," close=")">
#{rawInstockId}
</foreach>
</delete>
<delete id="deleteWmsRawInstockDetailByRawInstockId" parameterType="Long">
delete from wms_raw_instock_detail where raw_instock_id = #{rawInstockId}
</delete>
<insert id="batchWmsRawInstockDetail">
insert into wms_raw_instock_detail( raw_instock_detail_id, raw_instock_id, location_code, material_barcode, material_id, po_no, instock_batch, material_production_Date, plan_amount,instock_amount, execute_status, erp_status, instock_person, instock_time, instock_way, machine_name, quality_status, stack_amount, create_by, create_date, update_by, update_date, active_flag, po_line) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.rawInstockDetailId}, #{item.rawInstockId}, #{item.locationCode}, #{item.materialBarcode}, #{item.materialId}, #{item.poNo}, #{item.instockBatch}, #{item.materialProductionDate}, #{item.planAmount},#{item.instockAmount}, #{item.executeStatus}, #{item.erpStatus}, #{item.instockPerson}, #{item.instockTime}, #{item.instockWay}, #{item.machineName}, #{item.qualityStatus}, #{item.stackAmount}, #{item.createBy}, #{item.createDate}, #{item.updateBy}, #{item.updateDate}, #{item.activeFlag}, #{item.poLine})
</foreach>
</insert>
<select id="selectWmsRawInstockByBarcode" parameterType="String" resultMap="WmsRawInstockResult">
<include refid="selectWmsRawInstockVo"/>
where material_barcode = #{materialBarcode}
</select>
</mapper>

@ -183,5 +183,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="selectCountOfWmsRawOutstockDetail" parameterType="WmsRawOutstockDetail">
select count(1) from wms_raw_outstock_detail
<where>
<if test="rawOutstockId != null "> and raw_outstock_id = #{rawOutstockId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="executeStatus != null and executeStatus != ''"> and execute_status = #{executeStatus}</if>
<if test="auditStatus != null and auditStatus != ''"> and exists (select 1 from wms_raw_outstock wro where wro.raw_outstock_id=wrod.raw_outstock_id and wro.audit_status=#{auditStatus})</if>
<if test="materialBarcode != null and materialBarcode != ''"> and material_barcode = #{materialBarcode}</if>
<if test="materialId != null "> and material_id = #{materialId}</if>
<if test="instockBatch != null and instockBatch != ''"> and instock_batch = #{instockBatch}</if>
<if test="materialProductionDate != null "> and material_production_Date = #{materialProductionDate}</if>
<if test="planAmount != null "> and plan_amount = #{planAmount}</if>
<if test="executeStatusStr != null and executeStatusStr != ''"> and execute_status in (${executeStatusStr})</if>
<if test="erpStatus != null and erpStatus != ''"> and erp_status = #{erpStatus}</if>
<if test="outstockPerson != null and outstockPerson != ''"> and outstock_person = #{outstockPerson}</if>
<if test="outstockTime != null "> and outstock_time = #{outstockTime}</if>
<if test="outstockWay != null and outstockWay != ''"> and outstock_way = #{outstockWay}</if>
<if test="machineName != null and machineName != ''"> and machine_name like concat('%', #{machineName}, '%')</if>
<if test="qualityStatus != null and qualityStatus != ''"> and quality_status = #{qualityStatus}</if>
<if test="createDate != null "> and create_date = #{createDate}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
</where>
</select>
</mapper>

@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="materialBatch" column="material_batch" />
<result property="palletInfoCode" column="pallet_info_code" />
<result property="outstockAmount" column="outstock_amount" />
<result property="realOutstockAmount" column="real_outstock_amount" />
<result property="endStationCode" column="end_station_code" />
<result property="operationType" column="operation_type" />
<result property="taskType" column="task_type" />
@ -33,6 +34,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="beginTime" column="begin_time" />
<result property="endTime" column="end_time" />
<result property="warehouseName" column="warehouse_name" />
<result property="materialCode" column="material_code" />
<result property="materialName" column="material_name" />
<result property="planAmount" column="plan_amount" />
<result property="instockBatch" column="instock_batch" />
<result property="rawOutstockDetailId" column="raw_outstock_detail_id" />
</resultMap>
<resultMap id="WmsRawOutstockWmsRawOutstockDetailResult" type="WmsRawOutstock" extends="WmsRawOutstockResult">
@ -64,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWmsRawOutstockVo">
select raw_outstock_id, task_code, warehouse_id, location_code, order_id, plan_code, plan_detail_code, station_id, product_id, material_batch, pallet_info_code, outstock_amount, end_station_code, operation_type, task_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_raw_outstock
select raw_outstock_id, task_code, warehouse_id, location_code, order_id, plan_code, plan_detail_code, station_id, product_id, material_batch, pallet_info_code, outstock_amount,real_outstock_amount, end_station_code, operation_type, task_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_raw_outstock
</sql>
<select id="selectWmsRawOutstockList" parameterType="WmsRawOutstock" resultMap="WmsRawOutstockResult">
@ -84,6 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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 execute_status = #{executeStatus}</if>
<if test="executeStatusStr != null and executeStatusStr != ''"> and execute_status in (${executeStatusStr})</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>
@ -176,6 +183,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialBatch != null">material_batch = #{materialBatch},</if>
<if test="palletInfoCode != null">pallet_info_code = #{palletInfoCode},</if>
<if test="outstockAmount != null">outstock_amount = #{outstockAmount},</if>
<if test="realOutstockAmount != null">real_outstock_amount = #{realOutstockAmount},</if>
<if test="endStationCode != null">end_station_code = #{endStationCode},</if>
<if test="operationType != null and operationType != ''">operation_type = #{operationType},</if>
<if test="taskType != null and taskType != ''">task_type = #{taskType},</if>
@ -236,6 +244,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="selectWmsRawOutstockJoinList4Audit" parameterType="WmsRawOutstock" resultMap="WmsRawOutstockResult">
select wro.task_code, wro.warehouse_id, wro.apply_reason, wro.apply_by, wro.apply_date,wro.plan_code,wro.plan_detail_code,
wbw.warehouse_name
from wms_raw_outstock wro left join wms_base_warehouse wbw on wro.warehouse_id = wbw.warehouse_id
<where>
<if test="auditStatus != null and auditStatus != ''"> and wro.audit_status = #{auditStatus}</if>
</where>
group by wro.task_code,wro.warehouse_id, wro.apply_reason, wro.apply_by, wro.apply_date,wro.plan_code,wro.plan_detail_code
</select>
<!--as转换是为了兼容PDA转换-->
<select id="selectWmsRawOutstockJoinMaterialList" parameterType="WmsRawOutstock" resultMap="WmsRawOutstockResult">
select wro.raw_outstock_id as raw_outstock_detail_id, wro.task_code,wro.location_code,wro.material_batch as instock_batch,wro.outstock_amount as plan_amount,wro.real_outstock_amount as outstock_amount,wro.apply_by,wro.apply_date,
mbmi.material_code,mbmi.material_name
from wms_raw_outstock wro left join mes_base_material_info mbmi on wro.product_id = mbmi.material_id
<where>
<if test="taskCode != null and taskCode != ''"> and wro.task_code = #{taskCode}</if>
<if test="auditStatus != null and auditStatus != ''"> and wro.audit_status = #{auditStatus}</if>
<if test="applyBy != null and applyBy != ''"> and wro.apply_by like concat('%', #{applyBy}, '%')</if>
</where>
</select>
<insert id="batchWmsRawOutstock">
insert into wms_raw_outstock(raw_outstock_id, task_code,warehouse_id,location_code,order_id,plan_code,plan_detail_code,station_id,product_id,material_batch,pallet_info_code,outstock_amount,end_station_code,operation_type,task_type,audit_status,execute_status,apply_by,apply_date) values
@ -244,5 +273,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</insert>
<update id="auditWmsRawOutstockByTaskCode" parameterType="WmsRawOutstock">
update wms_raw_outstock
<trim prefix="SET" suffixOverrides=",">
<if test="auditReason != null">audit_reason = #{auditReason},</if>
<if test="auditStatus != null and auditStatus != ''">audit_status = #{auditStatus},</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>
</trim>
where task_code = #{taskCode}
</update>
</mapper>

Loading…
Cancel
Save