mes
增加成品条码信息以及接口
wms
柜体出库
master
xins 2 years ago
parent 9e23408e0a
commit 0f20bd8189

@ -29,7 +29,7 @@ public interface RemoteMesService {
/**
* ID
*
* @param materialIds ID
* @param mesBaseMaterialInfo
* @param source
* @return
*/

@ -0,0 +1,105 @@
package com.hw.mes.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.hw.common.log.annotation.Log;
import com.hw.common.log.enums.BusinessType;
import com.hw.common.security.annotation.RequiresPermissions;
import com.hw.mes.domain.MesBindBarcode;
import com.hw.mes.service.IMesBindBarcodeService;
import com.hw.common.core.web.controller.BaseController;
import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.core.utils.poi.ExcelUtil;
import com.hw.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2023-12-28
*/
@RestController
@RequestMapping("/bindbarcode")
public class MesBindBarcodeController extends BaseController
{
@Autowired
private IMesBindBarcodeService mesBindBarcodeService;
/**
*
*/
@RequiresPermissions("mes:bindbarcode:list")
@GetMapping("/list")
public TableDataInfo list(MesBindBarcode mesBindBarcode)
{
startPage();
List<MesBindBarcode> list = mesBindBarcodeService.selectMesBindBarcodeList(mesBindBarcode);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("mes:bindbarcode:export")
@Log(title = "条码绑定信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, MesBindBarcode mesBindBarcode)
{
List<MesBindBarcode> list = mesBindBarcodeService.selectMesBindBarcodeList(mesBindBarcode);
ExcelUtil<MesBindBarcode> util = new ExcelUtil<MesBindBarcode>(MesBindBarcode.class);
util.exportExcel(response, list, "条码绑定信息数据");
}
/**
*
*/
@RequiresPermissions("mes:bindbarcode:query")
@GetMapping(value = "/{bindBarcodeId}")
public AjaxResult getInfo(@PathVariable("bindBarcodeId") Long bindBarcodeId)
{
return success(mesBindBarcodeService.selectMesBindBarcodeByBindBarcodeId(bindBarcodeId));
}
/**
*
*/
@RequiresPermissions("mes:bindbarcode:add")
@Log(title = "条码绑定信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody MesBindBarcode mesBindBarcode)
{
return toAjax(mesBindBarcodeService.insertMesBindBarcode(mesBindBarcode));
}
/**
*
*/
@RequiresPermissions("mes:bindbarcode:edit")
@Log(title = "条码绑定信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody MesBindBarcode mesBindBarcode)
{
return toAjax(mesBindBarcodeService.updateMesBindBarcode(mesBindBarcode));
}
/**
*
*/
@RequiresPermissions("mes:bindbarcode:remove")
@Log(title = "条码绑定信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{bindBarcodeIds}")
public AjaxResult remove(@PathVariable Long[] bindBarcodeIds)
{
return toAjax(mesBindBarcodeService.deleteMesBindBarcodeByBindBarcodeIds(bindBarcodeIds));
}
}

@ -0,0 +1,242 @@
package com.hw.mes.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;
/**
* mes_bind_barcode
*
* @author xins
* @date 2023-12-28
*/
public class MesBindBarcode extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键标识 */
private Long bindBarcodeId;
/** 打印时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "打印时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date printTime;
/** 打印人 */
@Excel(name = "打印人")
private String printPerson;
/** 批次标识(0否1是) */
@Excel(name = "批次标识(0否1是)")
private String batchFlag;
/** 条码内容,可用在背板条码 */
@Excel(name = "条码内容,可用在背板条码")
private String bindBarcodeInfo;
/** 条码内容关联原材料条码信息的barcode_info */
@Excel(name = "条码内容关联原材料条码信息的barcode_info")
private String barcodeInfo;
/** 重量 */
@Excel(name = "重量")
private BigDecimal weight;
/** 数量 */
@Excel(name = "数量")
private BigDecimal amount;
/** 打印机台名称,打印时获取 */
@Excel(name = "打印机台名称,打印时获取")
private String machineName;
/** 项目号 */
@Excel(name = "项目号")
private String projectNo;
/** 销售订单编号 */
@Excel(name = "销售订单编号")
private String saleorderCode;
/** 生产计划ID关联mes_pd_product_plan的plan_id */
@Excel(name = "生产计划ID关联mes_pd_product_plan的plan_id")
private Long planId;
/** 生产计划明细ID关联mes_product_plan_detail的plan_detail_id */
@Excel(name = "生产计划明细ID关联mes_product_plan_detail的plan_detail_id")
private Long planDetailId;
/** 流水号 */
@Excel(name = "流水号")
private String serialNumber;
/** 是否启用 */
@Excel(name = "是否启用")
private Long activeFlag;
public void setBindBarcodeId(Long bindBarcodeId)
{
this.bindBarcodeId = bindBarcodeId;
}
public Long getBindBarcodeId()
{
return bindBarcodeId;
}
public void setPrintTime(Date printTime)
{
this.printTime = printTime;
}
public Date getPrintTime()
{
return printTime;
}
public void setPrintPerson(String printPerson)
{
this.printPerson = printPerson;
}
public String getPrintPerson()
{
return printPerson;
}
public void setBatchFlag(String batchFlag)
{
this.batchFlag = batchFlag;
}
public String getBatchFlag()
{
return batchFlag;
}
public void setBindBarcodeInfo(String bindBarcodeInfo)
{
this.bindBarcodeInfo = bindBarcodeInfo;
}
public String getBindBarcodeInfo()
{
return bindBarcodeInfo;
}
public void setBarcodeInfo(String barcodeInfo)
{
this.barcodeInfo = barcodeInfo;
}
public String getBarcodeInfo()
{
return barcodeInfo;
}
public void setWeight(BigDecimal weight)
{
this.weight = weight;
}
public BigDecimal getWeight()
{
return weight;
}
public void setAmount(BigDecimal amount)
{
this.amount = amount;
}
public BigDecimal getAmount()
{
return amount;
}
public void setMachineName(String machineName)
{
this.machineName = machineName;
}
public String getMachineName()
{
return machineName;
}
public void setProjectNo(String projectNo)
{
this.projectNo = projectNo;
}
public String getProjectNo()
{
return projectNo;
}
public void setSaleorderCode(String saleorderCode)
{
this.saleorderCode = saleorderCode;
}
public String getSaleorderCode()
{
return saleorderCode;
}
public void setPlanId(Long planId)
{
this.planId = planId;
}
public Long getPlanId()
{
return planId;
}
public void setPlanDetailId(Long planDetailId)
{
this.planDetailId = planDetailId;
}
public Long getPlanDetailId()
{
return planDetailId;
}
public void setSerialNumber(String serialNumber)
{
this.serialNumber = serialNumber;
}
public String getSerialNumber()
{
return serialNumber;
}
public void setActiveFlag(Long activeFlag)
{
this.activeFlag = activeFlag;
}
public Long getActiveFlag()
{
return activeFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("bindBarcodeId", getBindBarcodeId())
.append("printTime", getPrintTime())
.append("printPerson", getPrintPerson())
.append("batchFlag", getBatchFlag())
.append("bindBarcodeInfo", getBindBarcodeInfo())
.append("barcodeInfo", getBarcodeInfo())
.append("weight", getWeight())
.append("amount", getAmount())
.append("machineName", getMachineName())
.append("projectNo", getProjectNo())
.append("saleorderCode", getSaleorderCode())
.append("planId", getPlanId())
.append("planDetailId", getPlanDetailId())
.append("serialNumber", getSerialNumber())
.append("remark", getRemark())
.append("activeFlag", getActiveFlag())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

@ -0,0 +1,61 @@
package com.hw.mes.mapper;
import java.util.List;
import com.hw.mes.domain.MesBindBarcode;
/**
* Mapper
*
* @author xins
* @date 2023-12-28
*/
public interface MesBindBarcodeMapper
{
/**
*
*
* @param bindBarcodeId
* @return
*/
public MesBindBarcode selectMesBindBarcodeByBindBarcodeId(Long bindBarcodeId);
/**
*
*
* @param mesBindBarcode
* @return
*/
public List<MesBindBarcode> selectMesBindBarcodeList(MesBindBarcode mesBindBarcode);
/**
*
*
* @param mesBindBarcode
* @return
*/
public int insertMesBindBarcode(MesBindBarcode mesBindBarcode);
/**
*
*
* @param mesBindBarcode
* @return
*/
public int updateMesBindBarcode(MesBindBarcode mesBindBarcode);
/**
*
*
* @param bindBarcodeId
* @return
*/
public int deleteMesBindBarcodeByBindBarcodeId(Long bindBarcodeId);
/**
*
*
* @param bindBarcodeIds
* @return
*/
public int deleteMesBindBarcodeByBindBarcodeIds(Long[] bindBarcodeIds);
}

@ -0,0 +1,61 @@
package com.hw.mes.service;
import java.util.List;
import com.hw.mes.domain.MesBindBarcode;
/**
* Service
*
* @author xins
* @date 2023-12-28
*/
public interface IMesBindBarcodeService
{
/**
*
*
* @param bindBarcodeId
* @return
*/
public MesBindBarcode selectMesBindBarcodeByBindBarcodeId(Long bindBarcodeId);
/**
*
*
* @param mesBindBarcode
* @return
*/
public List<MesBindBarcode> selectMesBindBarcodeList(MesBindBarcode mesBindBarcode);
/**
*
*
* @param mesBindBarcode
* @return
*/
public int insertMesBindBarcode(MesBindBarcode mesBindBarcode);
/**
*
*
* @param mesBindBarcode
* @return
*/
public int updateMesBindBarcode(MesBindBarcode mesBindBarcode);
/**
*
*
* @param bindBarcodeIds
* @return
*/
public int deleteMesBindBarcodeByBindBarcodeIds(Long[] bindBarcodeIds);
/**
*
*
* @param bindBarcodeId
* @return
*/
public int deleteMesBindBarcodeByBindBarcodeId(Long bindBarcodeId);
}

@ -0,0 +1,96 @@
package com.hw.mes.service.impl;
import java.util.List;
import com.hw.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hw.mes.mapper.MesBindBarcodeMapper;
import com.hw.mes.domain.MesBindBarcode;
import com.hw.mes.service.IMesBindBarcodeService;
/**
* Service
*
* @author xins
* @date 2023-12-28
*/
@Service
public class MesBindBarcodeServiceImpl implements IMesBindBarcodeService
{
@Autowired
private MesBindBarcodeMapper mesBindBarcodeMapper;
/**
*
*
* @param bindBarcodeId
* @return
*/
@Override
public MesBindBarcode selectMesBindBarcodeByBindBarcodeId(Long bindBarcodeId)
{
return mesBindBarcodeMapper.selectMesBindBarcodeByBindBarcodeId(bindBarcodeId);
}
/**
*
*
* @param mesBindBarcode
* @return
*/
@Override
public List<MesBindBarcode> selectMesBindBarcodeList(MesBindBarcode mesBindBarcode)
{
return mesBindBarcodeMapper.selectMesBindBarcodeList(mesBindBarcode);
}
/**
*
*
* @param mesBindBarcode
* @return
*/
@Override
public int insertMesBindBarcode(MesBindBarcode mesBindBarcode)
{
mesBindBarcode.setCreateTime(DateUtils.getNowDate());
return mesBindBarcodeMapper.insertMesBindBarcode(mesBindBarcode);
}
/**
*
*
* @param mesBindBarcode
* @return
*/
@Override
public int updateMesBindBarcode(MesBindBarcode mesBindBarcode)
{
mesBindBarcode.setUpdateTime(DateUtils.getNowDate());
return mesBindBarcodeMapper.updateMesBindBarcode(mesBindBarcode);
}
/**
*
*
* @param bindBarcodeIds
* @return
*/
@Override
public int deleteMesBindBarcodeByBindBarcodeIds(Long[] bindBarcodeIds)
{
return mesBindBarcodeMapper.deleteMesBindBarcodeByBindBarcodeIds(bindBarcodeIds);
}
/**
*
*
* @param bindBarcodeId
* @return
*/
@Override
public int deleteMesBindBarcodeByBindBarcodeId(Long bindBarcodeId)
{
return mesBindBarcodeMapper.deleteMesBindBarcodeByBindBarcodeId(bindBarcodeId);
}
}

@ -0,0 +1,141 @@
<?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.mes.mapper.MesBindBarcodeMapper">
<resultMap type="MesBindBarcode" id="MesBindBarcodeResult">
<result property="bindBarcodeId" column="bind_barcode_id" />
<result property="printTime" column="print_time" />
<result property="printPerson" column="print_person" />
<result property="batchFlag" column="batch_flag" />
<result property="bindBarcodeInfo" column="bind_barcode_info" />
<result property="barcodeInfo" column="barcode_info" />
<result property="weight" column="weight" />
<result property="amount" column="amount" />
<result property="machineName" column="machine_name" />
<result property="projectNo" column="project_no" />
<result property="saleorderCode" column="saleorder_code" />
<result property="planId" column="plan_id" />
<result property="planDetailId" column="plan_detail_id" />
<result property="serialNumber" column="serial_number" />
<result property="remark" column="remark" />
<result property="activeFlag" column="active_flag" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectMesBindBarcodeVo">
select bind_barcode_id, print_time, print_person, batch_flag, bind_barcode_info, barcode_info, weight, amount, machine_name, project_no, saleorder_code, plan_id, plan_detail_id, serial_number, remark, active_flag, create_by, create_time, update_by, update_time from mes_bind_barcode
</sql>
<select id="selectMesBindBarcodeList" parameterType="MesBindBarcode" resultMap="MesBindBarcodeResult">
<include refid="selectMesBindBarcodeVo"/>
<where>
<if test="printTime != null "> and print_time = #{printTime}</if>
<if test="printPerson != null and printPerson != ''"> and print_person = #{printPerson}</if>
<if test="batchFlag != null and batchFlag != ''"> and batch_flag = #{batchFlag}</if>
<if test="bindBarcodeInfo != null and bindBarcodeInfo != ''"> and bind_barcode_info = #{bindBarcodeInfo}</if>
<if test="barcodeInfo != null and barcodeInfo != ''"> and barcode_info = #{barcodeInfo}</if>
<if test="weight != null "> and weight = #{weight}</if>
<if test="amount != null "> and amount = #{amount}</if>
<if test="machineName != null and machineName != ''"> and machine_name like concat('%', #{machineName}, '%')</if>
<if test="projectNo != null and projectNo != ''"> and project_no = #{projectNo}</if>
<if test="saleorderCode != null and saleorderCode != ''"> and saleorder_code = #{saleorderCode}</if>
<if test="planId != null "> and plan_id = #{planId}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
<if test="serialNumber != null and serialNumber != ''"> and serial_number = #{serialNumber}</if>
<if test="activeFlag != null "> and active_flag = #{activeFlag}</if>
</where>
</select>
<select id="selectMesBindBarcodeByBindBarcodeId" parameterType="Long" resultMap="MesBindBarcodeResult">
<include refid="selectMesBindBarcodeVo"/>
where bind_barcode_id = #{bindBarcodeId}
</select>
<insert id="insertMesBindBarcode" parameterType="MesBindBarcode" useGeneratedKeys="true" keyProperty="bindBarcodeId">
insert into mes_bind_barcode
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="printTime != null">print_time,</if>
<if test="printPerson != null">print_person,</if>
<if test="batchFlag != null and batchFlag != ''">batch_flag,</if>
<if test="bindBarcodeInfo != null and bindBarcodeInfo != ''">bind_barcode_info,</if>
<if test="barcodeInfo != null and barcodeInfo != ''">barcode_info,</if>
<if test="weight != null">weight,</if>
<if test="amount != null">amount,</if>
<if test="machineName != null">machine_name,</if>
<if test="projectNo != null">project_no,</if>
<if test="saleorderCode != null">saleorder_code,</if>
<if test="planId != null">plan_id,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="serialNumber != null">serial_number,</if>
<if test="remark != null">remark,</if>
<if test="activeFlag != null">active_flag,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="printTime != null">#{printTime},</if>
<if test="printPerson != null">#{printPerson},</if>
<if test="batchFlag != null and batchFlag != ''">#{batchFlag},</if>
<if test="bindBarcodeInfo != null and bindBarcodeInfo != ''">#{bindBarcodeInfo},</if>
<if test="barcodeInfo != null and barcodeInfo != ''">#{barcodeInfo},</if>
<if test="weight != null">#{weight},</if>
<if test="amount != null">#{amount},</if>
<if test="machineName != null">#{machineName},</if>
<if test="projectNo != null">#{projectNo},</if>
<if test="saleorderCode != null">#{saleorderCode},</if>
<if test="planId != null">#{planId},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="serialNumber != null">#{serialNumber},</if>
<if test="remark != null">#{remark},</if>
<if test="activeFlag != null">#{activeFlag},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateMesBindBarcode" parameterType="MesBindBarcode">
update mes_bind_barcode
<trim prefix="SET" suffixOverrides=",">
<if test="printTime != null">print_time = #{printTime},</if>
<if test="printPerson != null">print_person = #{printPerson},</if>
<if test="batchFlag != null and batchFlag != ''">batch_flag = #{batchFlag},</if>
<if test="bindBarcodeInfo != null and bindBarcodeInfo != ''">bind_barcode_info = #{bindBarcodeInfo},</if>
<if test="barcodeInfo != null and barcodeInfo != ''">barcode_info = #{barcodeInfo},</if>
<if test="weight != null">weight = #{weight},</if>
<if test="amount != null">amount = #{amount},</if>
<if test="machineName != null">machine_name = #{machineName},</if>
<if test="projectNo != null">project_no = #{projectNo},</if>
<if test="saleorderCode != null">saleorder_code = #{saleorderCode},</if>
<if test="planId != null">plan_id = #{planId},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="serialNumber != null">serial_number = #{serialNumber},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="activeFlag != null">active_flag = #{activeFlag},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where bind_barcode_id = #{bindBarcodeId}
</update>
<delete id="deleteMesBindBarcodeByBindBarcodeId" parameterType="Long">
delete from mes_bind_barcode where bind_barcode_id = #{bindBarcodeId}
</delete>
<delete id="deleteMesBindBarcodeByBindBarcodeIds" parameterType="String">
delete from mes_bind_barcode where bind_barcode_id in
<foreach item="bindBarcodeId" collection="array" open="(" separator="," close=")">
#{bindBarcodeId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,59 @@
package com.hw.wms.controller;
import com.hw.common.core.constant.WmsConstants;
import com.hw.common.core.web.controller.BaseController;
import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.log.annotation.Log;
import com.hw.common.log.enums.BusinessType;
import com.hw.wms.domain.WmsRawOutstock;
import com.hw.wms.domain.WmsRawOutstockDetail;
import com.hw.wms.domain.WmsRawReturn;
import com.hw.wms.domain.WmsRawReturnDetail;
import com.hw.wms.domain.vo.*;
import com.hw.wms.service.IWmsRawInstockService;
import com.hw.wms.service.IWmsRawOutstockService;
import com.hw.wms.service.IWmsRawReturnService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Api Controller,Module使
*
* @author xins
* @date 2023-12-26
*/
@RestController
@RequestMapping("/wms/api")
public class WmsApiController extends BaseController {
@Autowired
private IWmsRawOutstockService wmsRawOutstockService;
@Autowired
private IWmsRawReturnService wmsRawReturnService;
/**
*
*/
// @RequiresPermissions("wms:mobile:addrawinstock")
@Log(title = "原材料出库记录", businessType = BusinessType.APPLY)
@PostMapping(("/applyRawOutstock"))
public AjaxResult applyRawOutstock(@Validated @RequestBody WmsRawOutstock wmsRawOutstock) {
return toAjax(wmsRawOutstockService.applyRawOutstock(wmsRawOutstock));
}
/**
* 退
*/
@Log(title = "原材料退库记录", businessType = BusinessType.APPLY)
@PostMapping(("/applyRawReturn"))
public AjaxResult applyRawReturn(@Validated @RequestBody WmsRawReturn wmsRawReturn) {
return toAjax(wmsRawReturnService.applyRawReturn(wmsRawReturn));
}
}

@ -2,6 +2,7 @@ package com.hw.wms.controller;
import com.hw.common.core.constant.WmsConstants;
import com.hw.common.core.utils.poi.ExcelUtil;
import com.hw.common.core.utils.uuid.Seq;
import com.hw.common.core.web.controller.BaseController;
import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.core.web.page.TableDataInfo;
@ -10,10 +11,7 @@ import com.hw.common.log.enums.BusinessType;
import com.hw.common.security.annotation.RequiresPermissions;
import com.hw.wms.domain.*;
import com.hw.wms.domain.vo.*;
import com.hw.wms.service.IWmsRawInstockService;
import com.hw.wms.service.IWmsRawOutstockDetailService;
import com.hw.wms.service.IWmsRawOutstockService;
import com.hw.wms.service.IWmsRawReturnService;
import com.hw.wms.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -28,7 +26,7 @@ import java.util.List;
* @date 2023-12-20
*/
@RestController
@RequestMapping("/mobile")
@RequestMapping("/wms/mobile")
public class WmsMobileController extends BaseController {
@Autowired
private IWmsRawInstockService wmsRawInstockService;
@ -39,6 +37,11 @@ public class WmsMobileController extends BaseController {
@Autowired
private IWmsRawReturnService wmsRawReturnService;
@Autowired
private IWmsProductInstockService wmsProductInstockService;
@Autowired
private IWmsMoveMergeService wmsMoveMergeService;
/**
*
@ -59,7 +62,7 @@ public class WmsMobileController extends BaseController {
public AjaxResult getToAuditedRawOutstocks() {
startPage();
WmsRawOutstock wmsRawOutstock = new WmsRawOutstock();
wmsRawOutstock.setAuditStatus(WmsConstants.RAW_INSTOCK_AUDIT_STATUS_TOAUDIT);
wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT);
List<WmsRawOutstock> list = wmsRawOutstockService.selectWmsRawOutstockList(wmsRawOutstock);
return success(list);
}
@ -79,7 +82,7 @@ public class WmsMobileController extends BaseController {
@Log(title = "原材料出库记录", businessType = BusinessType.AUDIT)
@PostMapping(("/auditRawOutstock"))
public AjaxResult auditRawOutstock(@Validated @RequestBody WmsRawOutstockAuditVo wmsRawOutstockAuditVo) {
return toAjax(wmsRawOutstockService.auditWmsRawOutstock(wmsRawOutstockAuditVo));
return success(wmsRawOutstockService.auditWmsRawOutstock(wmsRawOutstockAuditVo));
}
/**
@ -119,17 +122,17 @@ public class WmsMobileController extends BaseController {
public AjaxResult getToAuditedRawReturns() {
startPage();
WmsRawReturn wmsRawReturn = new WmsRawReturn();
wmsRawReturn.setAuditStatus(WmsConstants.RAW_RETURN_AUDIT_STATUS_TOAUDIT);
wmsRawReturn.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT);
List<WmsRawReturn> list = wmsRawReturnService.selectWmsRawReturnJoinList(wmsRawReturn);
return success(list);
}
/**
* 退
* 退,使
*/
// @RequiresPermissions("wms:rawoutstock:query")
@GetMapping(value = "/getRawReturnByReturnId/{returnId}")
public AjaxResult getRawOutstockByReturnId(@PathVariable("returnId") Long returnId) {
public AjaxResult getRawReturnByReturnId(@PathVariable("returnId") Long returnId) {
return success(wmsRawReturnService.selectWmsRawReturnByRawReturnId(returnId));
}
@ -155,6 +158,15 @@ public class WmsMobileController extends BaseController {
return success(list);
}
/**
* 退,退使
*/
// @RequiresPermissions("wms:rawoutstock:query")
@GetMapping(value = "/getRawReturnByReturnId4Confirm/{returnId}")
public AjaxResult getRawReturnByReturnId4Confirm(@PathVariable("returnId") Long returnId) {
return success(wmsRawReturnService.selectWmsRawReturnByRawReturnId4Confirm(returnId));
}
/**
* 退
*/
@ -164,4 +176,24 @@ public class WmsMobileController extends BaseController {
return toAjax(wmsRawReturnService.confirmWmsRawReturn(wmsRawReturnConfirmVo));
}
/**
*
*/
@Log(title = "成品入库记录", businessType = BusinessType.INSERT)
@PostMapping(("/addProductInstock"))
public AjaxResult addProductInstock(@Validated @RequestBody WmsProductInstockVo wmsProductInstockVo) {
return toAjax(wmsProductInstockService.insertWmsProductInstock(wmsProductInstockVo));
}
/**
*
*/
@Log(title = "原材料移库", businessType = BusinessType.INSERT)
@PostMapping(("/moveRaw"))
public AjaxResult moveRaw(@Validated @RequestBody WmsMoveMergeVo wmsMoveMergeVo) {
return toAjax(wmsMoveMergeService.manualMove(wmsMoveMergeVo, WmsConstants.WMS_MOVEMERGE_TYPE_MOVE));
}
}

@ -23,10 +23,10 @@ import com.hw.common.core.utils.poi.ExcelUtil;
import com.hw.common.core.web.page.TableDataInfo;
/**
* Controller
* ;Controller
*
* @author xs
* @date 2023-12-20
* @author xins
* @date 2023-12-25
*/
@RestController
@RequestMapping("/productinstock")
@ -36,7 +36,7 @@ public class WmsProductInstockController extends BaseController
private IWmsProductInstockService wmsProductInstockService;
/**
*
* ;
*/
@RequiresPermissions("wms:productinstock:list")
@GetMapping("/list")
@ -48,20 +48,20 @@ public class WmsProductInstockController extends BaseController
}
/**
*
* ;
*/
@RequiresPermissions("wms:productinstock:export")
@Log(title = "成品入库记录", businessType = BusinessType.EXPORT)
@Log(title = "成品入库记录;成品入库记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, WmsProductInstock wmsProductInstock)
{
List<WmsProductInstock> list = wmsProductInstockService.selectWmsProductInstockList(wmsProductInstock);
ExcelUtil<WmsProductInstock> util = new ExcelUtil<WmsProductInstock>(WmsProductInstock.class);
util.exportExcel(response, list, "成品入库记录数据");
util.exportExcel(response, list, "成品入库记录;成品入库记录数据");
}
/**
*
* ;
*/
@RequiresPermissions("wms:productinstock:query")
@GetMapping(value = "/{productInstockId}")
@ -71,10 +71,10 @@ public class WmsProductInstockController extends BaseController
}
/**
*
* ;
*/
@RequiresPermissions("wms:productinstock:add")
@Log(title = "成品入库记录", businessType = BusinessType.INSERT)
@Log(title = "成品入库记录;成品入库记录", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WmsProductInstock wmsProductInstock)
{
@ -82,10 +82,10 @@ public class WmsProductInstockController extends BaseController
}
/**
*
* ;
*/
@RequiresPermissions("wms:productinstock:edit")
@Log(title = "成品入库记录", businessType = BusinessType.UPDATE)
@Log(title = "成品入库记录;成品入库记录", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WmsProductInstock wmsProductInstock)
{
@ -93,10 +93,10 @@ public class WmsProductInstockController extends BaseController
}
/**
*
* ;
*/
@RequiresPermissions("wms:productinstock:remove")
@Log(title = "成品入库记录", businessType = BusinessType.DELETE)
@Log(title = "成品入库记录;成品入库记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{productInstockIds}")
public AjaxResult remove(@PathVariable Long[] productInstockIds)
{

@ -0,0 +1,105 @@
package com.hw.wms.controller;
import com.hw.common.core.constant.WmsConstants;
import com.hw.common.core.web.controller.BaseController;
import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.log.annotation.Log;
import com.hw.common.log.enums.BusinessType;
import com.hw.wms.domain.WmsRawOutstock;
import com.hw.wms.domain.WmsRawOutstockDetail;
import com.hw.wms.domain.WmsRawReturn;
import com.hw.wms.domain.WmsRawReturnDetail;
import com.hw.wms.domain.vo.*;
import com.hw.wms.service.IWmsRawInstockService;
import com.hw.wms.service.IWmsRawOutstockService;
import com.hw.wms.service.IWmsRawReturnService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* scada Controller,
*
* @author xins
* @date 2023-12-26
*/
@RestController
@RequestMapping("/wms/scada")
public class WmsScadaController extends BaseController {
@Autowired
private IWmsRawOutstockService wmsRawOutstockService;
@Autowired
private IWmsRawReturnService wmsRawReturnService;
/**
*
*/
// @RequiresPermissions("wms:mobile:addrawinstock")
@Log(title = "原材料出库记录", businessType = BusinessType.APPLY)
@PostMapping(("/applyRawOutstock"))
public AjaxResult applyRawOutstock(@Validated @RequestBody WmsRawOutstock wmsRawOutstock) {
return toAjax(wmsRawOutstockService.applyRawOutstock(wmsRawOutstock));
//如果申请时不审核需要agv输送的需要上位机调度WCS调度AGV
}
/**
*
*/
// @RequiresPermissions("wms:rawoutstock:list")
@GetMapping("/getToAuditedRawOutstocks")
public AjaxResult getToAuditedRawOutstocks() {
startPage();
WmsRawOutstock wmsRawOutstock = new WmsRawOutstock();
wmsRawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT);
List<WmsRawOutstock> list = wmsRawOutstockService.selectWmsRawOutstockList(wmsRawOutstock);
return success(list);
}
/**
*
*/
// @RequiresPermissions("wms:rawoutstock:query")
@GetMapping(value = "/getRawOutstockByOutstockId/{rawOutstockId}")
public AjaxResult getRawOutstockByOutstockId(@PathVariable("rawOutstockId") Long rawOutstockId) {
return success(wmsRawOutstockService.selectWmsRawOutstockByRawOutstockId(rawOutstockId));
}
/**
*
*/
@Log(title = "原材料出库记录", businessType = BusinessType.AUDIT)
@PostMapping(("/auditRawOutstock"))
public AjaxResult auditRawOutstock(@Validated @RequestBody WmsRawOutstockAuditVo wmsRawOutstockAuditVo) {
return success(wmsRawOutstockService.auditWmsRawOutstock(wmsRawOutstockAuditVo));
//审核通过后如果是需要agv出库则由上位机通知WCS进行调度AGV
}
@Log(title = "原材料出库记录", businessType = BusinessType.AUDIT)
@PostMapping(("/applyAgvRawOutstock"))
public AjaxResult applyAgvRawOutstock(@Validated @RequestBody WmsAgvRawOutstockVo wmsAgvRawOutstockVo) {
return success(wmsRawOutstockService.applyAgvRawOutstock(wmsAgvRawOutstockVo));
//审核通过后如果是需要agv出库则由上位机通知WCS进行调度AGV
}
/**
* 退
*/
@Log(title = "原材料退库记录", businessType = BusinessType.APPLY)
@PostMapping(("/applyRawReturn"))
public AjaxResult applyRawReturn(@Validated @RequestBody WmsRawReturn wmsRawReturn) {
return toAjax(wmsRawReturnService.applyRawReturn(wmsRawReturn));
}
}

@ -8,7 +8,7 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_base_location
*
*
* @author xs
* @date 2023-12-20
*/
@ -52,11 +52,11 @@ public class WmsBaseLocation extends BaseEntity
private BigDecimal qtyLimit;
/** 入库过度库位标识(1:是,2:否) */
@Excel(name = "入库过度库位标识(1:是,2:否)")
@Excel(name = "入库过度库位标识(1:是,0:否)")
private String instockFlag;
/** 出库过度库位标识(1:是,2:否) */
@Excel(name = "出库过度库位标识(1:是,2:否)")
@Excel(name = "出库过度库位标识(1:是,0:否)")
private String outstockFlag;
/** 库位状态(1:正常,2:自动锁定,3:人工锁定);在正常时,库位可以使用,如果是自动锁定则需要自动解锁变成正常,如果是人工锁定需要人工解锁变成正常 */
@ -170,354 +170,354 @@ public class WmsBaseLocation extends BaseEntity
@Excel(name = "允许混放产品 1是 0否")
private String productMix;
public void setLocationId(Long locationId)
public void setLocationId(Long locationId)
{
this.locationId = locationId;
}
public Long getLocationId()
public Long getLocationId()
{
return locationId;
}
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 setLocRow(Long locRow)
public void setLocRow(Long locRow)
{
this.locRow = locRow;
}
public Long getLocRow()
public Long getLocRow()
{
return locRow;
}
public void setLayerNum(Long layerNum)
public void setLayerNum(Long layerNum)
{
this.layerNum = layerNum;
}
public Long getLayerNum()
public Long getLayerNum()
{
return layerNum;
}
public void setLocColumn(Long locColumn)
public void setLocColumn(Long locColumn)
{
this.locColumn = locColumn;
}
public Long getLocColumn()
public Long getLocColumn()
{
return locColumn;
}
public void setActiveFlag(String activeFlag)
public void setActiveFlag(String activeFlag)
{
this.activeFlag = activeFlag;
}
public String getActiveFlag()
public String getActiveFlag()
{
return activeFlag;
}
public void setMaterialTypeId(Long materialTypeId)
public void setMaterialTypeId(Long materialTypeId)
{
this.materialTypeId = materialTypeId;
}
public Long getMaterialTypeId()
public Long getMaterialTypeId()
{
return materialTypeId;
}
public void setQtyLimit(BigDecimal qtyLimit)
public void setQtyLimit(BigDecimal qtyLimit)
{
this.qtyLimit = qtyLimit;
}
public BigDecimal getQtyLimit()
public BigDecimal getQtyLimit()
{
return qtyLimit;
}
public void setInstockFlag(String instockFlag)
public void setInstockFlag(String instockFlag)
{
this.instockFlag = instockFlag;
}
public String getInstockFlag()
public String getInstockFlag()
{
return instockFlag;
}
public void setOutstockFlag(String outstockFlag)
public void setOutstockFlag(String outstockFlag)
{
this.outstockFlag = outstockFlag;
}
public String getOutstockFlag()
public String getOutstockFlag()
{
return outstockFlag;
}
public void setLocationStatus(String locationStatus)
public void setLocationStatus(String locationStatus)
{
this.locationStatus = locationStatus;
}
public String getLocationStatus()
public String getLocationStatus()
{
return locationStatus;
}
public void setBatchMix(String batchMix)
public void setBatchMix(String batchMix)
{
this.batchMix = batchMix;
}
public String getBatchMix()
public String getBatchMix()
{
return batchMix;
}
public void setxCoordinate(BigDecimal xCoordinate)
public void setxCoordinate(BigDecimal xCoordinate)
{
this.xCoordinate = xCoordinate;
}
public BigDecimal getxCoordinate()
public BigDecimal getxCoordinate()
{
return xCoordinate;
}
public void setyCoordinate(BigDecimal yCoordinate)
public void setyCoordinate(BigDecimal yCoordinate)
{
this.yCoordinate = yCoordinate;
}
public BigDecimal getyCoordinate()
public BigDecimal getyCoordinate()
{
return yCoordinate;
}
public void setzCoordinate(BigDecimal zCoordinate)
public void setzCoordinate(BigDecimal zCoordinate)
{
this.zCoordinate = zCoordinate;
}
public BigDecimal getzCoordinate()
public BigDecimal getzCoordinate()
{
return zCoordinate;
}
public void setDelFlag(String delFlag)
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
public String getDelFlag()
{
return delFlag;
}
public void setShelfOrder(String shelfOrder)
public void setShelfOrder(String shelfOrder)
{
this.shelfOrder = shelfOrder;
}
public String getShelfOrder()
public String getShelfOrder()
{
return shelfOrder;
}
public void setCheckOrder(String checkOrder)
public void setCheckOrder(String checkOrder)
{
this.checkOrder = checkOrder;
}
public String getCheckOrder()
public String getCheckOrder()
{
return checkOrder;
}
public void setPickOrder(String pickOrder)
public void setPickOrder(String pickOrder)
{
this.pickOrder = pickOrder;
}
public String getPickOrder()
public String getPickOrder()
{
return pickOrder;
}
public void setPickFlag(String pickFlag)
public void setPickFlag(String pickFlag)
{
this.pickFlag = pickFlag;
}
public String getPickFlag()
public String getPickFlag()
{
return pickFlag;
}
public void setIsOpenKnFlag(String isOpenKnFlag)
public void setIsOpenKnFlag(String isOpenKnFlag)
{
this.isOpenKnFlag = isOpenKnFlag;
}
public String getIsOpenKnFlag()
public String getIsOpenKnFlag()
{
return isOpenKnFlag;
}
public void setLocationScrapType(String locationScrapType)
public void setLocationScrapType(String locationScrapType)
{
this.locationScrapType = locationScrapType;
}
public String getLocationScrapType()
public String getLocationScrapType()
{
return locationScrapType;
}
public void setLocationAttr(String locationAttr)
public void setLocationAttr(String locationAttr)
{
this.locationAttr = locationAttr;
}
public String getLocationAttr()
public String getLocationAttr()
{
return locationAttr;
}
public void setTurnDemand(String turnDemand)
public void setTurnDemand(String turnDemand)
{
this.turnDemand = turnDemand;
}
public String getTurnDemand()
public String getTurnDemand()
{
return turnDemand;
}
public void setCheckCode(String checkCode)
public void setCheckCode(String checkCode)
{
this.checkCode = checkCode;
}
public String getCheckCode()
public String getCheckCode()
{
return checkCode;
}
public void setWorkArea(String workArea)
public void setWorkArea(String workArea)
{
this.workArea = workArea;
}
public String getWorkArea()
public String getWorkArea()
{
return workArea;
}
public void setVolumeLimit(BigDecimal volumeLimit)
public void setVolumeLimit(BigDecimal volumeLimit)
{
this.volumeLimit = volumeLimit;
}
public BigDecimal getVolumeLimit()
public BigDecimal getVolumeLimit()
{
return volumeLimit;
}
public void setWeightLimit(BigDecimal weightLimit)
public void setWeightLimit(BigDecimal weightLimit)
{
this.weightLimit = weightLimit;
}
public BigDecimal getWeightLimit()
public BigDecimal getWeightLimit()
{
return weightLimit;
}
public void setBoxLimit(Long boxLimit)
public void setBoxLimit(Long boxLimit)
{
this.boxLimit = boxLimit;
}
public Long getBoxLimit()
public Long getBoxLimit()
{
return boxLimit;
}
public void setPalletLimit(Long palletLimit)
public void setPalletLimit(Long palletLimit)
{
this.palletLimit = palletLimit;
}
public Long getPalletLimit()
public Long getPalletLimit()
{
return palletLimit;
}
public void setLength(BigDecimal length)
public void setLength(BigDecimal length)
{
this.length = length;
}
public BigDecimal getLength()
public BigDecimal getLength()
{
return length;
}
public void setWidth(BigDecimal width)
public void setWidth(BigDecimal width)
{
this.width = width;
}
public BigDecimal getWidth()
public BigDecimal getWidth()
{
return width;
}
public void setHeight(BigDecimal height)
public void setHeight(BigDecimal height)
{
this.height = height;
}
public BigDecimal getHeight()
public BigDecimal getHeight()
{
return height;
}
public void setxPixels(BigDecimal xPixels)
public void setxPixels(BigDecimal xPixels)
{
this.xPixels = xPixels;
}
public BigDecimal getxPixels()
public BigDecimal getxPixels()
{
return xPixels;
}
public void setyPixels(BigDecimal yPixels)
public void setyPixels(BigDecimal yPixels)
{
this.yPixels = yPixels;
}
public BigDecimal getyPixels()
public BigDecimal getyPixels()
{
return yPixels;
}
public void setzPixels(BigDecimal zPixels)
public void setzPixels(BigDecimal zPixels)
{
this.zPixels = zPixels;
}
public BigDecimal getzPixels()
public BigDecimal getzPixels()
{
return zPixels;
}
public void setBord(String bord)
public void setBord(String bord)
{
this.bord = bord;
}
public String getBord()
public String getBord()
{
return bord;
}
public void setProductMix(String productMix)
public void setProductMix(String productMix)
{
this.productMix = productMix;
}
public String getProductMix()
public String getProductMix()
{
return productMix;
}

@ -1,5 +1,6 @@
package com.hw.wms.domain;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hw.common.core.annotation.Excel;
@ -9,7 +10,7 @@ import com.hw.common.core.web.domain.BaseEntity;
* wms_base_warehouse
*
* @author xs
* @date 2023-12-20
* @date 2023-12-28
*/
public class WmsBaseWarehouse extends BaseEntity
{
@ -77,6 +78,9 @@ public class WmsBaseWarehouse extends BaseEntity
@Excel(name = "是否按照线体入库 0否 1是")
private String lineFlag;
/** 库位信息 */
private List<WmsBaseLocation> wmsBaseLocationList;
public void setWarehouseId(Long warehouseId)
{
this.warehouseId = warehouseId;
@ -222,6 +226,16 @@ public class WmsBaseWarehouse extends BaseEntity
return lineFlag;
}
public List<WmsBaseLocation> getWmsBaseLocationList()
{
return wmsBaseLocationList;
}
public void setWmsBaseLocationList(List<WmsBaseLocation> wmsBaseLocationList)
{
this.wmsBaseLocationList = wmsBaseLocationList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -246,6 +260,7 @@ public class WmsBaseWarehouse extends BaseEntity
.append("dataSource", getDataSource())
.append("schame", getSchame())
.append("lineFlag", getLineFlag())
.append("wmsBaseLocationList", getWmsBaseLocationList())
.toString();
}
}

@ -2,6 +2,7 @@ package com.hw.wms.domain;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -9,318 +10,336 @@ import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_product_instock
*
* @author xs
* @date 2023-12-20
* ; wms_product_instock
*
* @author xins
* @date 2023-12-25
*/
public class WmsProductInstock extends BaseEntity
{
public class WmsProductInstock extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 成品入库记录ID */
/**
* ID
*/
private Long productInstockId;
/** 任务编号;移库时必须 */
/**
* ;
*/
@Excel(name = "任务编号;移库时必须")
private String taskCode;
/** 仓库ID */
/**
* ID
*/
@Excel(name = "仓库ID")
private Long warehouseId;
/** 库位编码 */
/**
*
*/
@Excel(name = "库位编码")
private String locationCode;
/** 成品类型2半成品,3成品 */
/**
* 2,3
*/
@Excel(name = "成品类型", readConverterExp = "2=半成品,3成品")
private String productType;
/** 操作类型(0自动,1手动,2强制,3调度);调度,适合双排库自动移库时 */
/**
* (0,1,2,3);
*/
@Excel(name = "操作类型(0自动,1手动,2强制,3调度);调度,适合双排库自动移库时")
private String operationType;
/** 计划ID,关联pd_base_plan_info的plan_id */
@Excel(name = "计划ID,关联pd_base_plan_info的plan_id")
private Long planId;
/**
* ,pd_base_plan_infoplan_id
*/
@Excel(name = "计划编号,关联pd_base_plan_info的plan_code")
private String planCode;
/** 计划明细ID,关联pd_base_plan_detail的plan_detail_id */
@Excel(name = "计划明细ID,关联pd_base_plan_detail的plan_detail_id")
private Long planDetailId;
/**
* ID,pd_base_plan_detailplan_detail_id
*/
@Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code")
private String planDetailCode;
/** 入库类型(1生产入库,2移库入库,3合库入库,4出半成品库,9其他入库) */
/**
* (1,2,3,4,9)
*/
@Excel(name = "入库类型(1生产入库,2移库入库,3合库入库,4出半成品库,9其他入库)")
private String instockType;
/** 申请原因 */
/**
*
*/
@Excel(name = "申请原因")
private String applyReason;
/** 审核原因 */
/**
*
*/
@Excel(name = "审核原因")
private String auditReason;
/** 审核状态(0待审核,1审核通过,2审核未通过) */
/**
* (0,1,2)
*/
@Excel(name = "审核状态(0待审核,1审核通过,2审核未通过)")
private String auditStatus;
/** 执行状态(0待执行,1执行中,2执行完成) */
/**
* (0,1,2)
*/
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
/** 申请人 */
/**
*
*/
@Excel(name = "申请人")
private String applyBy;
/** 申请时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyDate;
/** 审核人 */
/**
*
*/
@Excel(name = "审核人")
private String auditBy;
/** 审核时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/** 最后更新时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updateDate;
/** 开始时间;AGV处理开始时间 */
/**
* ;AGV
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "开始时间;AGV处理开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date beginTime;
/** 结束时间;agv处理结束时间 */
/**
* ;agv
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "结束时间;agv处理结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
/** 成品入库记录明细信息 */
/**
*
*/
private List<WmsProductInstockDetail> wmsProductInstockDetailList;
public void setProductInstockId(Long productInstockId)
{
public void setProductInstockId(Long productInstockId) {
this.productInstockId = productInstockId;
}
public Long getProductInstockId()
{
public Long getProductInstockId() {
return productInstockId;
}
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 setProductType(String productType)
{
public void setProductType(String productType) {
this.productType = productType;
}
public String getProductType()
{
public String getProductType() {
return productType;
}
public void setOperationType(String operationType)
{
public void setOperationType(String operationType) {
this.operationType = operationType;
}
public String getOperationType()
{
public String getOperationType() {
return operationType;
}
public void setPlanId(Long planId)
{
this.planId = planId;
public String getPlanCode() {
return planCode;
}
public Long getPlanId()
{
return planId;
}
public void setPlanDetailId(Long planDetailId)
{
this.planDetailId = planDetailId;
public void setPlanCode(String planCode) {
this.planCode = planCode;
}
public Long getPlanDetailId()
{
return planDetailId;
public String getPlanDetailCode() {
return planDetailCode;
}
public void setInstockType(String instockType)
{
public void setPlanDetailCode(String planDetailCode) {
this.planDetailCode = planDetailCode;
}
public void setInstockType(String instockType) {
this.instockType = instockType;
}
public String getInstockType()
{
public String getInstockType() {
return instockType;
}
public void setApplyReason(String applyReason)
{
public void setApplyReason(String applyReason) {
this.applyReason = applyReason;
}
public String getApplyReason()
{
public String getApplyReason() {
return applyReason;
}
public void setAuditReason(String auditReason)
{
public void setAuditReason(String auditReason) {
this.auditReason = auditReason;
}
public String getAuditReason()
{
public String getAuditReason() {
return auditReason;
}
public void setAuditStatus(String auditStatus)
{
public void setAuditStatus(String auditStatus) {
this.auditStatus = auditStatus;
}
public String getAuditStatus()
{
public String getAuditStatus() {
return auditStatus;
}
public void setExecuteStatus(String executeStatus)
{
public void setExecuteStatus(String executeStatus) {
this.executeStatus = executeStatus;
}
public String getExecuteStatus()
{
public String getExecuteStatus() {
return executeStatus;
}
public void setApplyBy(String applyBy)
{
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 setAuditBy(String auditBy) {
this.auditBy = auditBy;
}
public String getAuditBy()
{
public String getAuditBy() {
return auditBy;
}
public void setAuditDate(Date auditDate)
{
public void setAuditDate(Date auditDate) {
this.auditDate = auditDate;
}
public Date getAuditDate()
{
public Date getAuditDate() {
return auditDate;
}
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<WmsProductInstockDetail> getWmsProductInstockDetailList()
{
public List<WmsProductInstockDetail> getWmsProductInstockDetailList() {
return wmsProductInstockDetailList;
}
public void setWmsProductInstockDetailList(List<WmsProductInstockDetail> wmsProductInstockDetailList)
{
public void setWmsProductInstockDetailList(List<WmsProductInstockDetail> wmsProductInstockDetailList) {
this.wmsProductInstockDetailList = wmsProductInstockDetailList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("productInstockId", getProductInstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("productType", getProductType())
.append("operationType", getOperationType())
.append("planId", getPlanId())
.append("planDetailId", getPlanDetailId())
.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("wmsProductInstockDetailList", getWmsProductInstockDetailList())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("productInstockId", getProductInstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("productType", getProductType())
.append("operationType", getOperationType())
.append("planCode", getPlanCode())
.append("planDetailCode", getPlanDetailCode())
.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("wmsProductInstockDetailList", getWmsProductInstockDetailList())
.toString();
}
}

@ -11,8 +11,8 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_product_instock_detail
*
* @author xs
* @date 2023-12-20
* @author xins
* @date 2023-12-25
*/
public class WmsProductInstockDetail extends BaseEntity
{
@ -33,6 +33,14 @@ public class WmsProductInstockDetail extends BaseEntity
@Excel(name = "成品ID")
private Long productId;
/** 成品条码 */
@Excel(name = "成品条码")
private String productBarcode;
/** 成品批次 */
@Excel(name = "成品批次")
private String productBatch;
/** 执行状态(0待执行,1执行中,2执行完成) */
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
@ -41,6 +49,10 @@ public class WmsProductInstockDetail extends BaseEntity
@Excel(name = "同步ERP状态(0:失败,1成功)")
private String erpStatus;
/** 计划数量 */
@Excel(name = "计划数量")
private BigDecimal planAmount;
/** 入库数量 */
@Excel(name = "入库数量")
private BigDecimal instockAmount;
@ -54,8 +66,8 @@ public class WmsProductInstockDetail extends BaseEntity
@Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date instockDate;
/** 入库方式( 0PC入库 1手持入库 2AGV入库 */
@Excel(name = "入库方式", readConverterExp = "0=PC入库,1=:手持入库,2=AGV入库")
/** 入库方式(1人工入库 2AGV入库 */
@Excel(name = "入库方式", readConverterExp = "1=:人工入库,2=AGV入库")
private String instockWay;
/** 最后更新时间 */
@ -99,6 +111,24 @@ public class WmsProductInstockDetail extends BaseEntity
{
return productId;
}
public void setProductBarcode(String productBarcode)
{
this.productBarcode = productBarcode;
}
public String getProductBarcode()
{
return productBarcode;
}
public void setProductBatch(String productBatch)
{
this.productBatch = productBatch;
}
public String getProductBatch()
{
return productBatch;
}
public void setExecuteStatus(String executeStatus)
{
this.executeStatus = executeStatus;
@ -117,6 +147,15 @@ public class WmsProductInstockDetail extends BaseEntity
{
return erpStatus;
}
public void setPlanAmount(BigDecimal planAmount)
{
this.planAmount = planAmount;
}
public BigDecimal getPlanAmount()
{
return planAmount;
}
public void setInstockAmount(BigDecimal instockAmount)
{
this.instockAmount = instockAmount;
@ -170,8 +209,11 @@ public class WmsProductInstockDetail extends BaseEntity
.append("productInstockId", getProductInstockId())
.append("locationCode", getLocationCode())
.append("productId", getProductId())
.append("productBarcode", getProductBarcode())
.append("productBatch", getProductBatch())
.append("executeStatus", getExecuteStatus())
.append("erpStatus", getErpStatus())
.append("planAmount", getPlanAmount())
.append("instockAmount", getInstockAmount())
.append("instockBy", getInstockBy())
.append("instockDate", getInstockDate())

@ -2,6 +2,7 @@ package com.hw.wms.domain;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -10,303 +11,333 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_product_outstock
*
*
* @author xs
* @date 2023-12-20
*/
public class WmsProductOutstock extends BaseEntity
{
public class WmsProductOutstock extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 成品出库记录ID */
/**
* ID
*/
private Long productOutstockId;
/** 任务编号;移库时必须 */
/**
* ;
*/
@Excel(name = "任务编号;移库时必须")
private String taskCode;
/** 仓库ID;领料时需要保存 */
/**
* ID;
*/
@Excel(name = "仓库ID;领料时需要保存")
private Long warehouseId;
/** 库位编码;移库时需要保存 */
/**
* ;
*/
@Excel(name = "库位编码;移库时需要保存")
private String locationCode;
/** 操作类型(0自动,1手动,2强制,3调度) */
/**
* 2,3
*/
private String productType;
/**
* (0,1,2,3)
*/
@Excel(name = "操作类型(0自动,1手动,2强制,3调度)")
private String operationType;
/** 出库类型(1销售出库 9其他出库) */
/**
* (1 9)
*/
@Excel(name = "出库类型(1销售出库 9其他出库)")
private String outstockType;
/** 计划ID,关联pd_base_plan_info的plan_id */
@Excel(name = "计划ID,关联pd_base_plan_info的plan_id")
private Long planId;
/**
* ,pd_base_plan_infoplan_id
*/
@Excel(name = "计划编号,关联pd_base_plan_info的plan_code")
private String planCode;
/** 计划明细ID,关联pd_base_plan_detail的plan_detail_id */
@Excel(name = "计划明细ID,关联pd_base_plan_detail的plan_detail_id")
private Long planDetailId;
/**
* ID,pd_base_plan_detailplan_detail_id
*/
@Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code")
private String planDetailCode;
/** 申请原因 */
/**
*
*/
@Excel(name = "申请原因")
private String applyReason;
/** 审核原因 */
/**
*
*/
@Excel(name = "审核原因")
private String auditReason;
/** 审核状态(0待审核,1审核通过,2审核未通过) */
/**
* (0,1,2)
*/
@Excel(name = "审核状态(0待审核,1审核通过,2审核未通过)")
private String auditStatus;
/** 执行状态(0待执行,1执行中,2执行完成) */
/**
* (0,1,2)
*/
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
/** 申请人 */
/**
*
*/
@Excel(name = "申请人")
private String applyBy;
/** 申请时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyDate;
/** 审核人 */
/**
*
*/
@Excel(name = "审核人")
private String auditBy;
/** 审核时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/** 最后更新时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updateDate;
/** 执行开始时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "执行开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date beginTime;
/** 执行结束时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "执行结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
/** 成品出库记录明细信息 */
/**
*
*/
private List<WmsProductOutstockDetail> wmsProductOutstockDetailList;
public void setProductOutstockId(Long productOutstockId)
{
public void setProductOutstockId(Long productOutstockId) {
this.productOutstockId = productOutstockId;
}
public Long getProductOutstockId()
{
public Long getProductOutstockId() {
return productOutstockId;
}
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 setOperationType(String operationType)
{
public String getProductType() {
return productType;
}
public void setProductType(String productType) {
this.productType = productType;
}
public void setOperationType(String operationType) {
this.operationType = operationType;
}
public String getOperationType()
{
public String getOperationType() {
return operationType;
}
public void setOutstockType(String outstockType)
{
public void setOutstockType(String outstockType) {
this.outstockType = outstockType;
}
public String getOutstockType()
{
public String getOutstockType() {
return outstockType;
}
public void setPlanId(Long planId)
{
this.planId = planId;
public String getPlanCode() {
return planCode;
}
public Long getPlanId()
{
return planId;
}
public void setPlanDetailId(Long planDetailId)
{
this.planDetailId = planDetailId;
public void setPlanCode(String planCode) {
this.planCode = planCode;
}
public Long getPlanDetailId()
{
return planDetailId;
public String getPlanDetailCode() {
return planDetailCode;
}
public void setApplyReason(String applyReason)
{
public void setPlanDetailCode(String planDetailCode) {
this.planDetailCode = planDetailCode;
}
public void setApplyReason(String applyReason) {
this.applyReason = applyReason;
}
public String getApplyReason()
{
public String getApplyReason() {
return applyReason;
}
public void setAuditReason(String auditReason)
{
public void setAuditReason(String auditReason) {
this.auditReason = auditReason;
}
public String getAuditReason()
{
public String getAuditReason() {
return auditReason;
}
public void setAuditStatus(String auditStatus)
{
public void setAuditStatus(String auditStatus) {
this.auditStatus = auditStatus;
}
public String getAuditStatus()
{
public String getAuditStatus() {
return auditStatus;
}
public void setExecuteStatus(String executeStatus)
{
public void setExecuteStatus(String executeStatus) {
this.executeStatus = executeStatus;
}
public String getExecuteStatus()
{
public String getExecuteStatus() {
return executeStatus;
}
public void setApplyBy(String applyBy)
{
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 setAuditBy(String auditBy) {
this.auditBy = auditBy;
}
public String getAuditBy()
{
public String getAuditBy() {
return auditBy;
}
public void setAuditDate(Date auditDate)
{
public void setAuditDate(Date auditDate) {
this.auditDate = auditDate;
}
public Date getAuditDate()
{
public Date getAuditDate() {
return auditDate;
}
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<WmsProductOutstockDetail> getWmsProductOutstockDetailList()
{
public List<WmsProductOutstockDetail> getWmsProductOutstockDetailList() {
return wmsProductOutstockDetailList;
}
public void setWmsProductOutstockDetailList(List<WmsProductOutstockDetail> wmsProductOutstockDetailList)
{
public void setWmsProductOutstockDetailList(List<WmsProductOutstockDetail> wmsProductOutstockDetailList) {
this.wmsProductOutstockDetailList = wmsProductOutstockDetailList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("productOutstockId", getProductOutstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("operationType", getOperationType())
.append("outstockType", getOutstockType())
.append("planId", getPlanId())
.append("planDetailId", getPlanDetailId())
.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("wmsProductOutstockDetailList", getWmsProductOutstockDetailList())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("productOutstockId", getProductOutstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("operationType", getOperationType())
.append("outstockType", getOutstockType())
.append("planCode", getPlanCode())
.append("planDetailCode", getPlanDetailCode())
.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("wmsProductOutstockDetailList", getWmsProductOutstockDetailList())
.toString();
}
}

@ -10,7 +10,7 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_product_stock
*
*
* @author xs
* @date 2023-12-21
*/
@ -45,13 +45,17 @@ public class WmsProductStock extends BaseEntity
@Excel(name = "产品ID")
private Long productId;
/** 计划ID,关联pd_base_plan_info的plan_id */
@Excel(name = "计划ID,关联pd_base_plan_info的plan_id")
private Long planId;
/**
* ,pd_base_plan_infoplan_id
*/
@Excel(name = "计划编号,关联pd_base_plan_info的plan_code")
private String planCode;
/** 计划明细ID,关联pd_base_plan_detail的plan_detail_id */
@Excel(name = "计划明细ID,关联pd_base_plan_detail的plan_detail_id")
private Long planDetailId;
/**
* ID,pd_base_plan_detailplan_detail_id
*/
@Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code")
private String planDetailCode;
/** 总数量 */
@Excel(name = "总数量")
@ -83,147 +87,146 @@ public class WmsProductStock extends BaseEntity
@Excel(name = "入库时间", readConverterExp = "预=留")
private Date instockDate;
public void setProductStockId(Long productStockId)
public void setProductStockId(Long productStockId)
{
this.productStockId = productStockId;
}
public Long getProductStockId()
public Long getProductStockId()
{
return productStockId;
}
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 setStockType(String stockType)
public void setStockType(String stockType)
{
this.stockType = stockType;
}
public String getStockType()
public String getStockType()
{
return stockType;
}
public void setProductBatch(String productBatch)
public void setProductBatch(String productBatch)
{
this.productBatch = productBatch;
}
public String getProductBatch()
public String getProductBatch()
{
return productBatch;
}
public void setQualityStatus(String qualityStatus)
public void setQualityStatus(String qualityStatus)
{
this.qualityStatus = qualityStatus;
}
public String getQualityStatus()
public String getQualityStatus()
{
return qualityStatus;
}
public void setProductId(Long productId)
public void setProductId(Long productId)
{
this.productId = productId;
}
public Long getProductId()
public Long getProductId()
{
return productId;
}
public void setPlanId(Long planId)
{
this.planId = planId;
public String getPlanCode() {
return planCode;
}
public Long getPlanId()
{
return planId;
}
public void setPlanDetailId(Long planDetailId)
{
this.planDetailId = planDetailId;
public void setPlanCode(String planCode) {
this.planCode = planCode;
}
public Long getPlanDetailId()
{
return planDetailId;
public String getPlanDetailCode() {
return planDetailCode;
}
public void setTotalAmount(BigDecimal totalAmount)
public void setPlanDetailCode(String planDetailCode) {
this.planDetailCode = planDetailCode;
}
public void setTotalAmount(BigDecimal totalAmount)
{
this.totalAmount = totalAmount;
}
public BigDecimal getTotalAmount()
public BigDecimal getTotalAmount()
{
return totalAmount;
}
public void setFrozenAmount(BigDecimal frozenAmount)
public void setFrozenAmount(BigDecimal frozenAmount)
{
this.frozenAmount = frozenAmount;
}
public BigDecimal getFrozenAmount()
public BigDecimal getFrozenAmount()
{
return frozenAmount;
}
public void setOccupyAmount(BigDecimal occupyAmount)
public void setOccupyAmount(BigDecimal occupyAmount)
{
this.occupyAmount = occupyAmount;
}
public BigDecimal getOccupyAmount()
public BigDecimal getOccupyAmount()
{
return occupyAmount;
}
public void setCreateDate(Date createDate)
public void setCreateDate(Date createDate)
{
this.createDate = createDate;
}
public Date getCreateDate()
public Date getCreateDate()
{
return createDate;
}
public void setUpdateDate(Date updateDate)
public void setUpdateDate(Date updateDate)
{
this.updateDate = updateDate;
}
public Date getUpdateDate()
public Date getUpdateDate()
{
return updateDate;
}
public void setActiveFlag(String activeFlag)
public void setActiveFlag(String activeFlag)
{
this.activeFlag = activeFlag;
}
public String getActiveFlag()
public String getActiveFlag()
{
return activeFlag;
}
public void setInstockDate(Date instockDate)
public void setInstockDate(Date instockDate)
{
this.instockDate = instockDate;
}
public Date getInstockDate()
public Date getInstockDate()
{
return instockDate;
}
@ -238,8 +241,8 @@ public class WmsProductStock extends BaseEntity
.append("productBatch", getProductBatch())
.append("qualityStatus", getQualityStatus())
.append("productId", getProductId())
.append("planId", getPlanId())
.append("planDetailId", getPlanDetailId())
.append("planCode", getPlanCode())
.append("planDetailCode", getPlanDetailCode())
.append("totalAmount", getTotalAmount())
.append("frozenAmount", getFrozenAmount())
.append("occupyAmount", getOccupyAmount())

@ -46,6 +46,10 @@ public class WmsRawInstockDetail extends BaseEntity
@Excel(name = "生产日期;入库扫描条码时,从打印条码记录表中获取", width = 30, dateFormat = "yyyy-MM-dd")
private Date materialProductionDate;
/** 入库数量 */
@Excel(name = "计划数量")
private BigDecimal planAmount;
/** 入库数量 */
@Excel(name = "入库数量")
private BigDecimal instockAmount;
@ -166,6 +170,15 @@ public class WmsRawInstockDetail extends BaseEntity
{
return materialProductionDate;
}
public BigDecimal getPlanAmount() {
return planAmount;
}
public void setPlanAmount(BigDecimal planAmount) {
this.planAmount = planAmount;
}
public void setInstockAmount(BigDecimal instockAmount)
{
this.instockAmount = instockAmount;

@ -2,6 +2,7 @@ package com.hw.wms.domain;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -14,313 +15,333 @@ import com.hw.common.core.web.domain.BaseEntity;
* @author xs
* @date 2023-12-20
*/
public class WmsRawOutstock extends BaseEntity
{
public class WmsRawOutstock extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 原材料出库记录ID */
/**
* ID
*/
private Long rawOutstockId;
/** 任务编号;移库时必须 */
/**
* ;
*/
@Excel(name = "任务编号;移库时必须")
private String taskCode;
/** 仓库ID;领料时需要保存 */
/**
* ID;
*/
@Excel(name = "仓库ID;领料时需要保存")
private Long warehouseId;
/** 库位编码;移库和合库时需要保存 */
/**
* ;
*/
@Excel(name = "库位编码;移库和合库时需要保存")
private String locationCode;
/** 工单ID,关联pd_base_order_info的order_id */
/**
* ID,pd_base_order_infoorder_id
*/
@Excel(name = "工单ID,关联pd_base_order_info的order_id")
private Long orderId;
/** 计划ID,关联pd_base_plan_info的plan_id */
@Excel(name = "计划ID,关联pd_base_plan_info的plan_id")
private Long planId;
/**
* ,pd_base_plan_infoplan_id
*/
@Excel(name = "计划编号,关联pd_base_plan_info的plan_code")
private String planCode;
/** 计划明细ID,关联pd_base_plan_detail的plan_detail_id */
@Excel(name = "计划明细ID,关联pd_base_plan_detail的plan_detail_id")
private Long planDetailId;
/**
* ID,pd_base_plan_detailplan_detail_id
*/
@Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code")
private String planDetailCode;
/** 所属工位关联pd_base_station_info的station_id */
/**
* pd_base_station_infostation_id
*/
@Excel(name = "所属工位关联pd_base_station_info的station_id")
private Long stationId;
/** 成品ID,关联物料表物料id */
/**
* ID,id
*/
@Excel(name = "成品ID,关联物料表物料id")
private Long productId;
/** 操作类型(0自动,1手动,2强制,3调度) */
/**
* (0,1,2,3)
*/
@Excel(name = "操作类型(0自动,1手动,2强制,3调度)")
private String operationType;
/** 任务类型(1生产领料,2移库出库,3合库出库,9其他领料) */
/**
* (1,2,3,9)
*/
@Excel(name = "任务类型(1生产领料,2移库出库,3合库出库,9其他领料)")
private String taskType;
/** 申请原因 */
/**
*
*/
@Excel(name = "申请原因")
private String applyReason;
/** 审核原因 */
/**
*
*/
@Excel(name = "审核原因")
private String auditReason;
/** 审核状态(0待审核,1审核通过,2审核未通过) */
/**
* (0,1,2)
*/
@Excel(name = "审核状态(0待审核,1审核通过,2审核未通过)")
private String auditStatus;
/** 执行状态(0待执行,1执行中,2执行完成) */
/**
* (0,1,2)
*/
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
/** 申请人 */
/**
*
*/
@Excel(name = "申请人")
private String applyBy;
/** 申请时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyDate;
/** 审核人 */
/**
*
*/
@Excel(name = "审核人")
private String auditBy;
/** 审核时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/** 最后更新时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updateDate;
/** 执行开始时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "执行开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date beginTime;
/** 执行结束时间 */
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "执行结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
private String warehouseName;
/** 原材料出库记录明细信息 */
/**
*
*/
private List<WmsRawOutstockDetail> wmsRawOutstockDetailList;
public void setRawOutstockId(Long rawOutstockId)
{
public void setRawOutstockId(Long rawOutstockId) {
this.rawOutstockId = rawOutstockId;
}
public Long getRawOutstockId()
{
public Long getRawOutstockId() {
return rawOutstockId;
}
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 setOrderId(Long orderId)
{
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public Long getOrderId()
{
public Long getOrderId() {
return orderId;
}
public void setPlanId(Long planId)
{
this.planId = planId;
public String getPlanCode() {
return planCode;
}
public Long getPlanId()
{
return planId;
}
public void setPlanDetailId(Long planDetailId)
{
this.planDetailId = planDetailId;
public void setPlanCode(String planCode) {
this.planCode = planCode;
}
public Long getPlanDetailId()
{
return planDetailId;
public String getPlanDetailCode() {
return planDetailCode;
}
public void setStationId(Long stationId)
{
public void setPlanDetailCode(String planDetailCode) {
this.planDetailCode = planDetailCode;
}
public void setStationId(Long stationId) {
this.stationId = stationId;
}
public Long getStationId()
{
public Long getStationId() {
return stationId;
}
public void setProductId(Long productId)
{
public void setProductId(Long productId) {
this.productId = productId;
}
public Long getProductId()
{
public Long getProductId() {
return productId;
}
public void setOperationType(String operationType)
{
public void setOperationType(String operationType) {
this.operationType = operationType;
}
public String getOperationType()
{
public String getOperationType() {
return operationType;
}
public void setTaskType(String taskType)
{
public void setTaskType(String taskType) {
this.taskType = taskType;
}
public String getTaskType()
{
public String getTaskType() {
return taskType;
}
public void setApplyReason(String applyReason)
{
public void setApplyReason(String applyReason) {
this.applyReason = applyReason;
}
public String getApplyReason()
{
public String getApplyReason() {
return applyReason;
}
public void setAuditReason(String auditReason)
{
public void setAuditReason(String auditReason) {
this.auditReason = auditReason;
}
public String getAuditReason()
{
public String getAuditReason() {
return auditReason;
}
public void setAuditStatus(String auditStatus)
{
public void setAuditStatus(String auditStatus) {
this.auditStatus = auditStatus;
}
public String getAuditStatus()
{
public String getAuditStatus() {
return auditStatus;
}
public void setExecuteStatus(String executeStatus)
{
public void setExecuteStatus(String executeStatus) {
this.executeStatus = executeStatus;
}
public String getExecuteStatus()
{
public String getExecuteStatus() {
return executeStatus;
}
public void setApplyBy(String applyBy)
{
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 setAuditBy(String auditBy) {
this.auditBy = auditBy;
}
public String getAuditBy()
{
public String getAuditBy() {
return auditBy;
}
public void setAuditDate(Date auditDate)
{
public void setAuditDate(Date auditDate) {
this.auditDate = auditDate;
}
public Date getAuditDate()
{
public Date getAuditDate() {
return auditDate;
}
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<WmsRawOutstockDetail> getWmsRawOutstockDetailList()
{
public List<WmsRawOutstockDetail> getWmsRawOutstockDetailList() {
return wmsRawOutstockDetailList;
}
public void setWmsRawOutstockDetailList(List<WmsRawOutstockDetail> wmsRawOutstockDetailList)
{
public void setWmsRawOutstockDetailList(List<WmsRawOutstockDetail> wmsRawOutstockDetailList) {
this.wmsRawOutstockDetailList = wmsRawOutstockDetailList;
}
@ -334,31 +355,31 @@ public class WmsRawOutstock extends BaseEntity
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("rawOutstockId", getRawOutstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("orderId", getOrderId())
.append("planId", getPlanId())
.append("planDetailId", getPlanDetailId())
.append("stationId", getStationId())
.append("productId", getProductId())
.append("operationType", getOperationType())
.append("taskType", getTaskType())
.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("wmsRawOutstockDetailList", getWmsRawOutstockDetailList())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("rawOutstockId", getRawOutstockId())
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("orderId", getOrderId())
.append("planCode", getPlanCode())
.append("planDetailCode", getPlanDetailCode())
.append("stationId", getStationId())
.append("productId", getProductId())
.append("operationType", getOperationType())
.append("taskType", getTaskType())
.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("wmsRawOutstockDetailList", getWmsRawOutstockDetailList())
.toString();
}
}

@ -1,5 +1,6 @@
package com.hw.wms.domain;
import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -33,18 +34,24 @@ public class WmsRawReturn extends BaseEntity
@Excel(name = "库位编码")
private String locationCode;
/** 计划ID,关联pd_base_plan_info的plan_id */
@Excel(name = "计划ID,关联pd_base_plan_info的plan_id")
private Long planId;
/** 计划编号,关联pd_base_plan_info的plan_id */
@Excel(name = "计划编号,关联pd_base_plan_info的plan_code")
private String planCode;
/** 计划明细ID,关联pd_base_plan_detail的plan_detail_id */
@Excel(name = "计划明细ID,关联pd_base_plan_detail的plan_detail_id")
private Long planDetailId;
@Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code")
private String planDetailCode;
/** 成品ID */
@Excel(name = "成品ID")
private Long productId;
private Long materialId;
private BigDecimal planAmount;
private BigDecimal returnAmount;
/** 操作类型(0自动,1手动,2强制,3调度) */
@Excel(name = "操作类型(0自动,1手动,2强制,3调度)")
private String operationType;
@ -104,6 +111,10 @@ public class WmsRawReturn extends BaseEntity
private String warehouseName;
private String materialName;
private String productName;
/** 原材料退库记录明细信息 */
private List<WmsRawReturnDetail> wmsRawReturnDetailList;
@ -143,24 +154,23 @@ public class WmsRawReturn extends BaseEntity
{
return locationCode;
}
public void setPlanId(Long planId)
{
this.planId = planId;
public String getPlanCode() {
return planCode;
}
public Long getPlanId()
{
return planId;
}
public void setPlanDetailId(Long planDetailId)
{
this.planDetailId = planDetailId;
public void setPlanCode(String planCode) {
this.planCode = planCode;
}
public Long getPlanDetailId()
{
return planDetailId;
public String getPlanDetailCode() {
return planDetailCode;
}
public void setPlanDetailCode(String planDetailCode) {
this.planDetailCode = planDetailCode;
}
public void setProductId(Long productId)
{
this.productId = productId;
@ -170,6 +180,31 @@ public class WmsRawReturn extends BaseEntity
{
return productId;
}
public Long getMaterialId() {
return materialId;
}
public void setMaterialId(Long materialId) {
this.materialId = materialId;
}
public BigDecimal getPlanAmount() {
return planAmount;
}
public void setPlanAmount(BigDecimal planAmount) {
this.planAmount = planAmount;
}
public BigDecimal getReturnAmount() {
return returnAmount;
}
public void setReturnAmount(BigDecimal returnAmount) {
this.returnAmount = returnAmount;
}
public void setOperationType(String operationType)
{
this.operationType = operationType;
@ -306,6 +341,22 @@ public class WmsRawReturn extends BaseEntity
this.warehouseName = warehouseName;
}
public String getMaterialName() {
return materialName;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -313,8 +364,8 @@ public class WmsRawReturn extends BaseEntity
.append("taskCode", getTaskCode())
.append("warehouseId", getWarehouseId())
.append("locationCode", getLocationCode())
.append("planId", getPlanId())
.append("planDetailId", getPlanDetailId())
.append("planCode", getPlanCode())
.append("planDetailCode", getPlanDetailCode())
.append("productId", getProductId())
.append("operationType", getOperationType())
.append("taskType", getTaskType())

@ -10,7 +10,7 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_raw_stock
*
*
* @author xs
* @date 2023-12-21
*/
@ -55,6 +55,10 @@ public class WmsRawStock extends BaseEntity
@Excel(name = "质检状态(1检验中,2质检通过,3质检不通过)")
private String qualityStatus;
/** 质检状态(1检验中,2质检通过,3质检不通过) */
@Excel(name = "完整标识(1是0否)拆分后为0")
private String completeFlag;
/** 总数量 */
@Excel(name = "总数量")
private BigDecimal totalAmount;
@ -101,183 +105,192 @@ public class WmsRawStock extends BaseEntity
@Excel(name = "有效标记")
private String activeFlag;
public void setRawStockId(Long rawStockId)
public void setRawStockId(Long rawStockId)
{
this.rawStockId = rawStockId;
}
public Long getRawStockId()
public Long getRawStockId()
{
return rawStockId;
}
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 setStockType(String stockType)
public void setStockType(String stockType)
{
this.stockType = stockType;
}
public String getStockType()
public String getStockType()
{
return stockType;
}
public void setMaterialId(Long materialId)
public void setMaterialId(Long materialId)
{
this.materialId = materialId;
}
public Long getMaterialId()
public Long getMaterialId()
{
return materialId;
}
public void setInstockBatch(String instockBatch)
public void setInstockBatch(String instockBatch)
{
this.instockBatch = instockBatch;
}
public String getInstockBatch()
public String getInstockBatch()
{
return instockBatch;
}
public void setInstockDate(Date instockDate)
public void setInstockDate(Date instockDate)
{
this.instockDate = instockDate;
}
public Date getInstockDate()
public Date getInstockDate()
{
return instockDate;
}
public void setLastOutstockTime(Date lastOutstockTime)
public void setLastOutstockTime(Date lastOutstockTime)
{
this.lastOutstockTime = lastOutstockTime;
}
public Date getLastOutstockTime()
public Date getLastOutstockTime()
{
return lastOutstockTime;
}
public void setQualityStatus(String qualityStatus)
public void setQualityStatus(String qualityStatus)
{
this.qualityStatus = qualityStatus;
}
public String getQualityStatus()
public String getQualityStatus()
{
return qualityStatus;
}
public void setTotalAmount(BigDecimal totalAmount)
public String getCompleteFlag() {
return completeFlag;
}
public void setCompleteFlag(String completeFlag) {
this.completeFlag = completeFlag;
}
public void setTotalAmount(BigDecimal totalAmount)
{
this.totalAmount = totalAmount;
}
public BigDecimal getTotalAmount()
public BigDecimal getTotalAmount()
{
return totalAmount;
}
public void setFrozenAmount(BigDecimal frozenAmount)
public void setFrozenAmount(BigDecimal frozenAmount)
{
this.frozenAmount = frozenAmount;
}
public BigDecimal getFrozenAmount()
public BigDecimal getFrozenAmount()
{
return frozenAmount;
}
public void setOccupyAmount(BigDecimal occupyAmount)
public void setOccupyAmount(BigDecimal occupyAmount)
{
this.occupyAmount = occupyAmount;
}
public BigDecimal getOccupyAmount()
public BigDecimal getOccupyAmount()
{
return occupyAmount;
}
public void setSupplierId(Long supplierId)
public void setSupplierId(Long supplierId)
{
this.supplierId = supplierId;
}
public Long getSupplierId()
public Long getSupplierId()
{
return supplierId;
}
public void setCreateDate(Date createDate)
public void setCreateDate(Date createDate)
{
this.createDate = createDate;
}
public Date getCreateDate()
public Date getCreateDate()
{
return createDate;
}
public void setUpdateDate(Date updateDate)
public void setUpdateDate(Date updateDate)
{
this.updateDate = updateDate;
}
public Date getUpdateDate()
public Date getUpdateDate()
{
return updateDate;
}
public void setMaterialGroup1(String materialGroup1)
public void setMaterialGroup1(String materialGroup1)
{
this.materialGroup1 = materialGroup1;
}
public String getMaterialGroup1()
public String getMaterialGroup1()
{
return materialGroup1;
}
public void setMaterialGroup2(String materialGroup2)
public void setMaterialGroup2(String materialGroup2)
{
this.materialGroup2 = materialGroup2;
}
public String getMaterialGroup2()
public String getMaterialGroup2()
{
return materialGroup2;
}
public void setMaterialGroup3(String materialGroup3)
public void setMaterialGroup3(String materialGroup3)
{
this.materialGroup3 = materialGroup3;
}
public String getMaterialGroup3()
public String getMaterialGroup3()
{
return materialGroup3;
}
public void setDefAmount(BigDecimal defAmount)
public void setDefAmount(BigDecimal defAmount)
{
this.defAmount = defAmount;
}
public BigDecimal getDefAmount()
public BigDecimal getDefAmount()
{
return defAmount;
}
public void setActiveFlag(String activeFlag)
public void setActiveFlag(String activeFlag)
{
this.activeFlag = activeFlag;
}
public String getActiveFlag()
public String getActiveFlag()
{
return activeFlag;
}

@ -0,0 +1,31 @@
package com.hw.wms.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @Description: AGVVO
* @ClassName: WmsAgvRawOutstockVo
* @Author : xins
* @Date :2023-12-22 16:56
* @Version :1.0
*/
@Data
public class WmsAgvRawOutstockVo {
//仓库ID
@NotNull(message = "仓库ID必须输入")
private Long warehouseId;
//成品批次
@NotNull(message = "物料ID必须输入")
private Long materialId;
//成品批次
@NotBlank(message = "生产计划编号必须输入")
private String planCode;
}

@ -0,0 +1,22 @@
package com.hw.wms.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Description: AGVVO
* @ClassName: WmsAgvRawReturnVo
* @Author : xins
* @Date :2023-12-28 18:32
* @Version :1.0
*/
@Data
public class WmsAgvRawReturnAssignVo {
//仓库ID
@NotNull(message="仓库ID必须输入")
private Long warehouseId;
}

@ -0,0 +1,25 @@
package com.hw.wms.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @Description: AGVVO
* @ClassName: WmsAgvRawReturnVo
* @Author : xins
* @Date :2023-12-28 18:32
* @Version :1.0
*/
@Data
public class WmsAgvRawReturnVo {
//物料条码
@NotBlank(message = "物料条码必须输入")
private String materialBarcode;
@NotBlank(message = "库位编码必须输入")
private String locationCode;
}

@ -0,0 +1,21 @@
package com.hw.wms.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
public class WmsMoveMergeVo {
//仓库ID
@NotNull(message="仓库ID必须输入")
private Long warehouseId;
@NotBlank(message="原库位必须输入")
private String oriLocationCode;
@NotBlank(message="目标库位必须输入")
private String targetLocationCode;
}

@ -0,0 +1,42 @@
package com.hw.wms.domain.vo;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @Description: VO
* @ClassName: WmsRawInstockVo
* @Author : xins
* @Date :2023-12-20 17:12
* @Version :1.0
*/
@Data
public class WmsProductInstockVo {
//成品条码
@NotBlank(message="成品条码必须输入")
private String materialBarcode;
//成品批次
@NotBlank(message="成品批次必须输入")
private String productBatch;
//成品批次
@NotNull(message="成品ID必须输入")
private Long productId;
//生产计划ID
@NotBlank(message="生产计划编号必须输入")
private String planCode;
//生产计划明细编号
private String planDetailCode;
//库位编码
@NotBlank(message="库位编码必须输入")
private String locationCode;
}

@ -28,8 +28,15 @@ public class WmsRawInstockVo {
@NotNull(message="数量必须输入")
private BigDecimal instockAmount;
//质量状态
@NotNull(message="质量状态必须输入")
private String qualityStatus;
//采购订单号
@NotBlank(message="采购订单号必须输入")
private String poNo;
//批次号必须输入
@NotBlank(message="批次号必须输入")
private String batchCode;
//数量
@NotNull(message="物料ID必须输入")
private Long materialId;
}

@ -15,16 +15,17 @@ import java.math.BigDecimal;
*/
@Data
public class WmsRawReturnConfirmVo {
//原材料退库记录明细ID
private Long rawReturnDetailId;
//原材料退库记录ID
@NotNull(message = "原材料退库记录ID必须输入")
private Long rawReturnId;
//库位编码
@NotBlank(message = "库位编码必须输入")
private String locationCode;
//物料条码
@NotBlank(message = "批次号必须输入")
private String instockBatch;
@NotBlank(message = "物料条码必须输入")
private String materialBarcode;
//原材料出库数量
@NotNull(message = "原材料退库数量必须输入")

@ -0,0 +1,22 @@
package com.hw.wms.domain.vo;
import lombok.Data;
/**
* @Description: WmsWcsVovo
* @ClassName: WmsWcsVo
* @Author : xins
* @Date :2023-12-28 17:29
* @Version :1.0
*/
@Data
public class WmsWcsVo {
//任务顺序
private int orderNumer;
//调度类型1原材料入库2原材料出库3原材料退库4成品入库5成品出库
private String wcsType;
//任务ID根据调度类型保存原材料入库记录ID还是。。。。。。
private Long taskId;
}

@ -68,4 +68,13 @@ public interface WmsBaseLocationMapper
*/
public WmsBaseLocation selectWmsBaseLocationByLocationCode(String locationCode);
/**
*
*
* @param wmsBaseLocation
* @return
*/
public List<WmsBaseLocation> selectEmptyWmsBaseLocationList(WmsBaseLocation wmsBaseLocation);
}

@ -0,0 +1,61 @@
package com.hw.wms.mapper;
import java.util.List;
import com.hw.wms.domain.WmsProductInstockDetail;
/**
* Mapper
*
* @author xins
* @date 2023-12-25
*/
public interface WmsProductInstockDetailMapper
{
/**
*
*
* @param productInstockDetailId
* @return
*/
public WmsProductInstockDetail selectWmsProductInstockDetailByProductInstockDetailId(Long productInstockDetailId);
/**
*
*
* @param wmsProductInstockDetail
* @return
*/
public List<WmsProductInstockDetail> selectWmsProductInstockDetailList(WmsProductInstockDetail wmsProductInstockDetail);
/**
*
*
* @param wmsProductInstockDetail
* @return
*/
public int insertWmsProductInstockDetail(WmsProductInstockDetail wmsProductInstockDetail);
/**
*
*
* @param wmsProductInstockDetail
* @return
*/
public int updateWmsProductInstockDetail(WmsProductInstockDetail wmsProductInstockDetail);
/**
*
*
* @param productInstockDetailId
* @return
*/
public int deleteWmsProductInstockDetailByProductInstockDetailId(Long productInstockDetailId);
/**
*
*
* @param productInstockDetailIds
* @return
*/
public int deleteWmsProductInstockDetailByProductInstockDetailIds(Long[] productInstockDetailIds);
}

@ -5,55 +5,55 @@ import com.hw.wms.domain.WmsProductInstock;
import com.hw.wms.domain.WmsProductInstockDetail;
/**
* Mapper
* ;Mapper
*
* @author xs
* @date 2023-12-20
* @author xins
* @date 2023-12-25
*/
public interface WmsProductInstockMapper
{
/**
*
* ;
*
* @param productInstockId
* @return
* @param productInstockId ;
* @return ;
*/
public WmsProductInstock selectWmsProductInstockByProductInstockId(Long productInstockId);
/**
*
* ;
*
* @param wmsProductInstock
* @return
* @param wmsProductInstock ;
* @return ;
*/
public List<WmsProductInstock> selectWmsProductInstockList(WmsProductInstock wmsProductInstock);
/**
*
* ;
*
* @param wmsProductInstock
* @param wmsProductInstock ;
* @return
*/
public int insertWmsProductInstock(WmsProductInstock wmsProductInstock);
/**
*
* ;
*
* @param wmsProductInstock
* @param wmsProductInstock ;
* @return
*/
public int updateWmsProductInstock(WmsProductInstock wmsProductInstock);
/**
*
* ;
*
* @param productInstockId
* @param productInstockId ;
* @return
*/
public int deleteWmsProductInstockByProductInstockId(Long productInstockId);
/**
*
* ;
*
* @param productInstockIds
* @return
@ -78,9 +78,9 @@ public interface WmsProductInstockMapper
/**
*
* ;
*
* @param productInstockId ID
* @param productInstockId ;ID
* @return
*/
public int deleteWmsProductInstockDetailByProductInstockId(Long productInstockId);

@ -1,19 +1,22 @@
package com.hw.wms.mapper;
import java.math.BigDecimal;
import java.util.List;
import com.hw.wms.domain.WmsProductStock;
import com.hw.wms.domain.WmsRawStock;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
*
*
* @author xs
* @date 2023-12-20
*/
public interface WmsProductStockMapper
public interface WmsProductStockMapper
{
/**
*
*
*
* @param productStockId
* @return
*/
@ -21,7 +24,7 @@ public interface WmsProductStockMapper
/**
*
*
*
* @param wmsProductStock
* @return
*/
@ -29,7 +32,7 @@ public interface WmsProductStockMapper
/**
*
*
*
* @param wmsProductStock
* @return
*/
@ -37,7 +40,7 @@ public interface WmsProductStockMapper
/**
*
*
*
* @param wmsProductStock
* @return
*/
@ -45,7 +48,7 @@ public interface WmsProductStockMapper
/**
*
*
*
* @param productStockId
* @return
*/
@ -53,9 +56,35 @@ public interface WmsProductStockMapper
/**
*
*
*
* @param productStockIds
* @return
*/
public int deleteWmsProductStockByProductStockIds(Long[] productStockIds);
/**
*
* @param wmsProductStock
* @return
*/
public BigDecimal getProductStockTotalAmount(WmsProductStock wmsProductStock);
/**
*
* @param locationCode
* @param productBatch
* @return WmsRawStock
*/
public WmsProductStock selectProductStockByLocationAndBatch(@Param("locationCode") String locationCode,
@Param("productBatch") String productBatch);
/**
* totalAmount>0
*
* @param wmsProductStock
* @return
*/
public List<WmsProductStock> selectWmsProductStockInList(WmsProductStock wmsProductStock);
}

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

@ -85,14 +85,4 @@ public interface WmsRawInstockMapper
*/
public int deleteWmsRawInstockDetailByRawInstockId(Long rawInstockId);
/**
*
*
* @param wmsRawInstockDetail
* @return
*/
public int insertWmsRawInstockDetail(WmsRawInstockDetail wmsRawInstockDetail);
}

@ -95,4 +95,12 @@ public interface WmsRawReturnMapper
*/
public List<WmsRawReturn> selectWmsRawReturnJoinList(WmsRawReturn wmsRawReturn);
/**
* 退,without details
*
* @param rawReturnId 退
* @return 退
*/
public WmsRawReturn selectOnlyWmsRawReturnByRawReturnId(Long rawReturnId);
}

@ -86,5 +86,13 @@ public interface WmsRawStockMapper {
*/
public List<WmsRawStock> selectWmsRawStocks4Apply(WmsRawStock wmsRawStock);
/**
* totalAmount>0
*
* @param wmsRawStock
* @return
*/
public List<WmsRawStock> selectWmsRawStockInList(WmsRawStock wmsRawStock);
}

@ -0,0 +1,20 @@
package com.hw.wms.service;
import com.hw.wms.domain.vo.WmsMoveMergeVo;
/**
* @Description: Service
* @ClassName: IWmsMoveService
* @Author : xins
* @Date :2023-12-27 10:53
* @Version :1.0
*/
public interface IWmsMoveMergeService {
/**
*
* @param wmsMoveMergeVo
* @return
*/
public int manualMove(WmsMoveMergeVo wmsMoveMergeVo, String manualMergeType);
}

@ -2,60 +2,71 @@ package com.hw.wms.service;
import java.util.List;
import com.hw.wms.domain.WmsProductInstock;
import com.hw.wms.domain.vo.WmsProductInstockVo;
import org.springframework.transaction.annotation.Transactional;
/**
* Service
*
* @author xs
* @date 2023-12-20
* ;Service
*
* @author xins
* @date 2023-12-25
*/
public interface IWmsProductInstockService
public interface IWmsProductInstockService
{
/**
*
*
* @param productInstockId
* @return
* ;
*
* @param productInstockId ;
* @return ;
*/
public WmsProductInstock selectWmsProductInstockByProductInstockId(Long productInstockId);
/**
*
*
* @param wmsProductInstock
* @return
* ;
*
* @param wmsProductInstock ;
* @return ;
*/
public List<WmsProductInstock> selectWmsProductInstockList(WmsProductInstock wmsProductInstock);
/**
*
*
* @param wmsProductInstock
* ;
*
* @param wmsProductInstock ;
* @return
*/
public int insertWmsProductInstock(WmsProductInstock wmsProductInstock);
/**
*
*
* @param wmsProductInstock
* ;
*
* @param wmsProductInstock ;
* @return
*/
public int updateWmsProductInstock(WmsProductInstock wmsProductInstock);
/**
*
*
* @param productInstockIds
* ;
*
* @param productInstockIds ;
* @return
*/
public int deleteWmsProductInstockByProductInstockIds(Long[] productInstockIds);
/**
*
*
* @param productInstockId
* ;
*
* @param productInstockId ;
* @return
*/
public int deleteWmsProductInstockByProductInstockId(Long productInstockId);
/**
* ()
*
* @param wmsProductInstockVo
* @return
*/
public int insertWmsProductInstock(WmsProductInstockVo wmsProductInstockVo);
}

@ -3,6 +3,7 @@ package com.hw.wms.service;
import java.util.List;
import com.hw.wms.domain.WmsRawInstock;
import com.hw.wms.domain.vo.WmsRawInstockVo;
import org.springframework.transaction.annotation.Transactional;
/**
* Service
@ -12,14 +13,6 @@ import com.hw.wms.domain.vo.WmsRawInstockVo;
*/
public interface IWmsRawInstockService
{
/**
*
*
* @param wmsRawInstockVo
* @return
*/
public int insertWmsRawInstock(WmsRawInstockVo wmsRawInstockVo);
/**
*
*
@ -67,4 +60,16 @@ public interface IWmsRawInstockService
* @return
*/
public int deleteWmsRawInstockByRawInstockId(Long rawInstockId);
/**
* ()
*
* @param wmsRawInstockVo
* @return
*/
public int insertWmsRawInstock(WmsRawInstockVo wmsRawInstockVo);
}

@ -1,10 +1,14 @@
package com.hw.wms.service;
import java.util.List;
import com.alibaba.fastjson2.JSONObject;
import com.hw.wms.domain.WmsRawOutstock;
import com.hw.wms.domain.WmsRawOutstockDetail;
import com.hw.wms.domain.vo.WmsAgvRawOutstockVo;
import com.hw.wms.domain.vo.WmsRawOutstockAuditVo;
import com.hw.wms.domain.vo.WmsRawOutstockConfirmVo;
import com.hw.wms.domain.vo.WmsWcsVo;
import org.springframework.transaction.annotation.Transactional;
/**
@ -67,7 +71,7 @@ public interface IWmsRawOutstockService
*
* @param wmsRawOutstockAuditVo
*/
public int auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo);
public JSONObject auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo);
/**
*
@ -91,4 +95,6 @@ public interface IWmsRawOutstockService
* @return
*/
public int applyRawOutstock(WmsRawOutstock wmsRawOutstock);
public List<WmsWcsVo> applyAgvRawOutstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo);
}

@ -23,6 +23,13 @@ public interface IWmsRawReturnService
*/
public WmsRawReturn selectWmsRawReturnByRawReturnId(Long rawReturnId);
/**
* 退退使
*
* @param rawReturnId 退
* @return 退
*/
public WmsRawReturn selectWmsRawReturnByRawReturnId4Confirm(Long rawReturnId);
/**
* 退
*
@ -94,4 +101,13 @@ public interface IWmsRawReturnService
* @return 退
*/
public List<WmsRawReturnDetail> selectAuditPassRawReturnDetails(WmsRawReturnDetail wmsRawReturnDetail);
/**
* 退
*
* @param wmsRawReturn 退
* @return
*/
public int applyRawReturn(WmsRawReturn wmsRawReturn);
}

@ -0,0 +1,97 @@
package com.hw.wms.service.impl;
import com.hw.common.core.constant.WmsConstants;
import com.hw.wms.domain.WmsBaseWarehouse;
import com.hw.wms.domain.WmsProductStock;
import com.hw.wms.domain.WmsRawStock;
import com.hw.wms.domain.vo.WmsMoveMergeVo;
import com.hw.wms.mapper.*;
import com.hw.wms.service.IWmsMoveMergeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Description: Service
* @ClassName: WmsMoveServiceImpl
* @Author : xins
* @Date :2023-12-27 10:54
* @Version :1.0
*/
@Service
public class WmsMoveMergeServiceImpl implements IWmsMoveMergeService {
@Autowired
private WmsRawStockMapper wmsRawStockMapper;
@Autowired
private WmsRawInstockMapper wmsRawInstockMapper;
@Autowired
private WmsRawOutstockMapper wmsRawOutstockMapper;
@Autowired
private WmsProductStockMapper wmsProductStockMapper;
@Autowired
private WmsProductInstockMapper wmsProductInstockMapper;
@Autowired
private WmsProductOutstockMapper wmsProductOutstockMapper;
@Autowired
private WmsBaseWarehouseMapper wmsBaseWarehouseMapper;
/**
*
* @param wmsMoveMergeVo
* @return
*/
@Override
public int manualMove(WmsMoveMergeVo wmsMoveMergeVo,String manualMergeType){
Long warehouseId = wmsMoveMergeVo.getWarehouseId();
String oriLocationCode = wmsMoveMergeVo.getOriLocationCode();
String targetLocationCode = wmsMoveMergeVo.getTargetLocationCode();
WmsBaseWarehouse warehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId);
String warehouseInstockType = warehouse.getWarehouseInstockType();
//仓库类型为人工仓库
//原库位需要有库存,没有占用数量和冻结数量
WmsRawStock queryRawStock = new WmsRawStock();
WmsProductStock queryProductStock = new WmsProductStock();
//移库时目标库位为空
//合库是目标库位不为空
//移库中,锁库位,移库结束解锁库位
return 1;
}
/**
*
* @param wmsMoveMergeVo
* @return
*/
public int manualMerge(WmsMoveMergeVo wmsMoveMergeVo){
Long warehouseId = wmsMoveMergeVo.getWarehouseId();
String oriLocationCode = wmsMoveMergeVo.getOriLocationCode();
String targetLocationCode = wmsMoveMergeVo.getTargetLocationCode();
WmsBaseWarehouse warehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId);
String warehouseInstockType = warehouse.getWarehouseInstockType();
return 1;
}
private void manualRawMoveMerge(){
}
}

@ -1,131 +1,276 @@
package com.hw.wms.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.hw.common.core.constant.SecurityConstants;
import com.hw.common.core.constant.WmsConstants;
import com.hw.common.core.domain.R;
import com.hw.common.core.exception.ServiceException;
import com.hw.common.security.utils.SecurityUtils;
import com.hw.mes.api.domain.MesBaseBarcodeInfo;
import com.hw.wms.domain.*;
import com.hw.wms.domain.vo.WmsProductInstockVo;
import com.hw.wms.domain.vo.WmsRawInstockVo;
import com.hw.wms.mapper.WmsBaseLocationMapper;
import com.hw.wms.mapper.WmsProductInstockDetailMapper;
import com.hw.wms.mapper.WmsProductStockMapper;
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.WmsProductInstockDetail;
import com.hw.wms.mapper.WmsProductInstockMapper;
import com.hw.wms.domain.WmsProductInstock;
import com.hw.wms.service.IWmsProductInstockService;
/**
* Service
*
* @author xs
* @date 2023-12-20
* ;Service
*
* @author xins
* @date 2023-12-25
*/
@Service
public class WmsProductInstockServiceImpl implements IWmsProductInstockService
{
public class WmsProductInstockServiceImpl implements IWmsProductInstockService {
@Autowired
private WmsProductInstockMapper wmsProductInstockMapper;
@Autowired
private WmsProductInstockDetailMapper wmsProductInstockDetailMapper;
@Autowired
private WmsProductStockMapper wmsProductStockMapper;
@Autowired
private WmsBaseLocationMapper wmsBaseLocationMapper;
/**
*
*
* @param productInstockId
* @return
* ;
*
* @param productInstockId ;
* @return ;
*/
@Override
public WmsProductInstock selectWmsProductInstockByProductInstockId(Long productInstockId)
{
public WmsProductInstock selectWmsProductInstockByProductInstockId(Long productInstockId) {
return wmsProductInstockMapper.selectWmsProductInstockByProductInstockId(productInstockId);
}
/**
*
*
* @param wmsProductInstock
* @return
* ;
*
* @param wmsProductInstock ;
* @return ;
*/
@Override
public List<WmsProductInstock> selectWmsProductInstockList(WmsProductInstock wmsProductInstock)
{
public List<WmsProductInstock> selectWmsProductInstockList(WmsProductInstock wmsProductInstock) {
return wmsProductInstockMapper.selectWmsProductInstockList(wmsProductInstock);
}
/**
*
*
* @param wmsProductInstock
* ;
*
* @param wmsProductInstock ;
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int insertWmsProductInstock(WmsProductInstock wmsProductInstock)
{
public int insertWmsProductInstock(WmsProductInstock wmsProductInstock) {
int rows = wmsProductInstockMapper.insertWmsProductInstock(wmsProductInstock);
insertWmsProductInstockDetail(wmsProductInstock);
return rows;
}
/**
*
*
* @param wmsProductInstock
* ;
*
* @param wmsProductInstock ;
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int updateWmsProductInstock(WmsProductInstock wmsProductInstock)
{
public int updateWmsProductInstock(WmsProductInstock wmsProductInstock) {
wmsProductInstockMapper.deleteWmsProductInstockDetailByProductInstockId(wmsProductInstock.getProductInstockId());
insertWmsProductInstockDetail(wmsProductInstock);
return wmsProductInstockMapper.updateWmsProductInstock(wmsProductInstock);
}
/**
*
*
* @param productInstockIds
* ;
*
* @param productInstockIds ;
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteWmsProductInstockByProductInstockIds(Long[] productInstockIds)
{
public int deleteWmsProductInstockByProductInstockIds(Long[] productInstockIds) {
wmsProductInstockMapper.deleteWmsProductInstockDetailByProductInstockIds(productInstockIds);
return wmsProductInstockMapper.deleteWmsProductInstockByProductInstockIds(productInstockIds);
}
/**
*
*
* @param productInstockId
* ;
*
* @param productInstockId ;
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteWmsProductInstockByProductInstockId(Long productInstockId)
{
public int deleteWmsProductInstockByProductInstockId(Long productInstockId) {
wmsProductInstockMapper.deleteWmsProductInstockDetailByProductInstockId(productInstockId);
return wmsProductInstockMapper.deleteWmsProductInstockByProductInstockId(productInstockId);
}
/**
*
*
* @param wmsProductInstock
*
* @param wmsProductInstock ;
*/
public void insertWmsProductInstockDetail(WmsProductInstock wmsProductInstock)
{
public void insertWmsProductInstockDetail(WmsProductInstock wmsProductInstock) {
List<WmsProductInstockDetail> wmsProductInstockDetailList = wmsProductInstock.getWmsProductInstockDetailList();
Long productInstockId = wmsProductInstock.getProductInstockId();
if (StringUtils.isNotNull(wmsProductInstockDetailList))
{
if (StringUtils.isNotNull(wmsProductInstockDetailList)) {
List<WmsProductInstockDetail> list = new ArrayList<WmsProductInstockDetail>();
for (WmsProductInstockDetail wmsProductInstockDetail : wmsProductInstockDetailList)
{
for (WmsProductInstockDetail wmsProductInstockDetail : wmsProductInstockDetailList) {
wmsProductInstockDetail.setProductInstockId(productInstockId);
list.add(wmsProductInstockDetail);
}
if (list.size() > 0)
{
if (list.size() > 0) {
wmsProductInstockMapper.batchWmsProductInstockDetail(list);
}
}
}
/**
* ()
*
* @param wmsProductInstockVo
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public int insertWmsProductInstock(WmsProductInstockVo wmsProductInstockVo) {
String materialBarcode = wmsProductInstockVo.getMaterialBarcode();
String productBatch = wmsProductInstockVo.getProductBatch();
Long productId = wmsProductInstockVo.getProductId();
String locationCode = wmsProductInstockVo.getLocationCode();
WmsBaseLocation baseLocation = wmsBaseLocationMapper.selectWmsBaseLocationByLocationCode(locationCode);
if (baseLocation == null) {
throw new ServiceException("库位编码有误");
}
//todo 入库人权限判断;物料类型判断是否可以入此库位
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();//todo 是否改成nickname
WmsProductInstock wmsProductInstock = new WmsProductInstock();
wmsProductInstock.setWarehouseId(baseLocation.getWarehouseId());
wmsProductInstock.setLocationCode(locationCode);
wmsProductInstock.setProductType(WmsConstants.PRODUCT_INSTOCK_STOCK_TYPE_PRODUCT);
wmsProductInstock.setOperationType(WmsConstants.WMS_OPERATION_TYPE_MANUAL);
wmsProductInstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsProductInstock.setPlanCode(wmsProductInstockVo.getPlanCode());
wmsProductInstock.setPlanDetailCode(wmsProductInstockVo.getPlanDetailCode());
wmsProductInstock.setInstockType(WmsConstants.PRODUCT_INSTOCK_INSTOCK_TYPE_PRODUCT);
wmsProductInstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
wmsProductInstock.setApplyBy(userName);
wmsProductInstock.setApplyDate(currentDate);
//插入记录
int rows = wmsProductInstockMapper.insertWmsProductInstock(wmsProductInstock);
//插入明细
insertWmsProductInstockDetail(wmsProductInstock, materialBarcode, productBatch, productId, wmsProductInstockVo);
//更新库存
updateProductStock(wmsProductInstock, wmsProductInstockVo, baseLocation,
productBatch, productId, userName, currentDate);
//todo判断质检状态同步erp
return rows;
}
/**
* 使4
*
* @param wmsProductInstock
* @param materialBarcode
* @param productBatch
* @param productId
* @param wmsProductInstockVo
*/
public void insertWmsProductInstockDetail(WmsProductInstock wmsProductInstock, String materialBarcode, String productBatch, Long productId, WmsProductInstockVo wmsProductInstockVo) {
WmsProductInstockDetail wmsProductInstockDetail = new WmsProductInstockDetail();
wmsProductInstockDetail.setProductInstockId(wmsProductInstock.getProductInstockId());
wmsProductInstockDetail.setLocationCode(wmsProductInstock.getLocationCode());
wmsProductInstockDetail.setProductBarcode(materialBarcode);
wmsProductInstockDetail.setProductBatch(productBatch);
wmsProductInstockDetail.setProductId(productId);
wmsProductInstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsProductInstockDetail.setInstockBy(wmsProductInstock.getApplyBy());
wmsProductInstockDetail.setInstockDate(wmsProductInstock.getApplyDate());
wmsProductInstockDetail.setInstockWay(WmsConstants.PRODUCT_INSTOCK_INSTOCK_WAY_MANUAL);
wmsProductInstockDetail.setPlanAmount(new BigDecimal(1));
wmsProductInstockDetail.setInstockAmount(new BigDecimal(1));
wmsProductInstockDetailMapper.insertWmsProductInstockDetail(wmsProductInstockDetail);
}
/**
*
*
* @param wmsProductInstock
* @param wmsProductInstockVo
* @param baseLocation
* @param productBatch
* @param productId
* @param userName
* @param currentDate
*/
public void updateProductStock(WmsProductInstock wmsProductInstock, WmsProductInstockVo wmsProductInstockVo, WmsBaseLocation baseLocation,
String productBatch, Long productId, String userName, Date currentDate) {
String locationCode = wmsProductInstock.getLocationCode();
BigDecimal instockAmount = new BigDecimal(1);
//判断此库位的数量限制,是否还能入库
WmsProductStock queryProductStock = new WmsProductStock();
queryProductStock.setLocationCode(locationCode);
BigDecimal totalAmount = wmsProductStockMapper.getProductStockTotalAmount(queryProductStock);
totalAmount = totalAmount == null ? BigDecimal.ZERO : totalAmount;
if (totalAmount.add(instockAmount).compareTo(baseLocation.getQtyLimit()) > 0) {
throw new ServiceException("已超出库位数量限制,请重新选择库位");
}
//如果是同一库位入同一批次,则更新数量
WmsProductStock wmsProductStock = wmsProductStockMapper.selectProductStockByLocationAndBatch(locationCode, productBatch);
if (wmsProductStock != null) {
// wmsProductStock.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsProductStock.setTotalAmount(wmsProductStock.getTotalAmount().add(instockAmount));
wmsProductStock.setUpdateBy(userName);
wmsProductStock.setUpdateDate(currentDate);
wmsProductStockMapper.updateWmsProductStock(wmsProductStock);
} else {
wmsProductStock = new WmsProductStock();
wmsProductStock.setWarehouseId(wmsProductInstock.getWarehouseId());
wmsProductStock.setLocationCode(locationCode);
wmsProductStock.setStockType(WmsConstants.PRODUCT_STOCK_STOCK_TYPE_PRODUCT);
wmsProductStock.setProductId(productId);
wmsProductStock.setProductBatch(productBatch);
wmsProductStock.setPlanCode(wmsProductInstockVo.getPlanCode());
wmsProductStock.setPlanDetailCode(wmsProductInstockVo.getPlanDetailCode());
// wmsProductStock.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsProductStock.setTotalAmount(instockAmount);
wmsProductStock.setCreateBy(userName);
wmsProductStock.setCreateDate(currentDate);
wmsProductStock.setInstockDate(currentDate);
wmsProductStockMapper.insertWmsProductStock(wmsProductStock);
}
}
public void syncToErp() {
//todo 根据质检状态是通过的同步给ERP
}
}

@ -13,19 +13,19 @@ import com.hw.wms.service.IWmsProductOutstockService;
/**
* Service
*
*
* @author xs
* @date 2023-12-20
*/
@Service
public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
{
@Autowired
private WmsProductOutstockMapper wmsProductOutstockMapper;
/**
*
*
*
* @param productOutstockId
* @return
*/
@ -37,7 +37,7 @@ public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
/**
*
*
*
* @param wmsProductOutstock
* @return
*/
@ -49,11 +49,11 @@ public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
/**
*
*
*
* @param wmsProductOutstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int insertWmsProductOutstock(WmsProductOutstock wmsProductOutstock)
{
@ -64,11 +64,11 @@ public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
/**
*
*
*
* @param wmsProductOutstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int updateWmsProductOutstock(WmsProductOutstock wmsProductOutstock)
{
@ -79,11 +79,11 @@ public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
/**
*
*
*
* @param productOutstockIds
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteWmsProductOutstockByProductOutstockIds(Long[] productOutstockIds)
{
@ -93,11 +93,11 @@ public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
/**
*
*
*
* @param productOutstockId
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteWmsProductOutstockByProductOutstockId(Long productOutstockId)
{
@ -107,7 +107,7 @@ public class WmsProductOutstockServiceImpl implements IWmsProductOutstockService
/**
*
*
*
* @param wmsProductOutstock
*/
public void insertWmsProductOutstockDetail(WmsProductOutstock wmsProductOutstock)

@ -15,6 +15,7 @@ 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;
@ -42,6 +43,9 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
@Autowired
private WmsRawInstockMapper wmsRawInstockMapper;
@Autowired
private WmsRawInstockDetailMapper wmsRawInstockDetailMapper;
@Autowired
private WmsBaseLocationMapper wmsBaseLocationMapper;
@ -52,137 +56,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
private RemoteMesService remoteMesService;
/**
* ()
*
* @param wmsRawInstockVo
* @return
*/
@Transactional
@Override
public int insertWmsRawInstock(WmsRawInstockVo wmsRawInstockVo) {
String materialBarcode = wmsRawInstockVo.getMaterialBarcode();
R<MesBaseBarcodeInfo> baseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER);
MesBaseBarcodeInfo baseBarcodeInfo = baseBarcodeInfoR.getData();
if (baseBarcodeInfo == null) {
throw new ServiceException("物料编码有误");
}
String locationCode = wmsRawInstockVo.getLocationCode();
WmsBaseLocation baseLocation = wmsBaseLocationMapper.selectWmsBaseLocationByLocationCode(locationCode);
if (baseLocation == null) {
throw new ServiceException("库位编码有误");
}
//todo 入库人权限判断
//todo 物料类型判断是否可以入此库位
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();//todo 是否改成nickname
WmsRawInstock wmsRawInstock = new WmsRawInstock();
wmsRawInstock.setWarehouseId(baseLocation.getWarehouseId());
wmsRawInstock.setLocationCode(locationCode);
wmsRawInstock.setPoNo(baseBarcodeInfo.getPoNo());
wmsRawInstock.setOperationType(WmsConstants.RAW_INSTOCK_OPERATION_TYPE_MANUAL);
wmsRawInstock.setInstockType(WmsConstants.RAW_INSTOCK_INSTOCK_TYPE_PURCHASE);
wmsRawInstock.setExecuteStatus(WmsConstants.RAW_INSTOCK_EXECUTE_STATUS_FINISH);
wmsRawInstock.setApplyBy(userName);
wmsRawInstock.setApplyDate(currentDate);
//插入记录
int rows = wmsRawInstockMapper.insertWmsRawInstock(wmsRawInstock);
//插入明细
insertWmsRawInstockDetail(wmsRawInstock, baseBarcodeInfo, wmsRawInstockVo);
//更新库存
updateRawStock(wmsRawInstock, baseBarcodeInfo, wmsRawInstockVo, baseLocation, userName, currentDate);
//todo同步erp
return rows;
}
/**
* 使
*
* @param wmsRawInstock
* @param baseBarcodeInfo
*/
public void insertWmsRawInstockDetail(WmsRawInstock wmsRawInstock, MesBaseBarcodeInfo baseBarcodeInfo, WmsRawInstockVo wmsRawInstockVo) {
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail();
wmsRawInstockDetail.setRawInstockId(wmsRawInstock.getRawInstockId());
wmsRawInstockDetail.setLocationCode(wmsRawInstock.getLocationCode());
wmsRawInstockDetail.setMaterialBarcode(baseBarcodeInfo.getBarcodeInfo());
wmsRawInstockDetail.setInstockBatch(baseBarcodeInfo.getBatchCode());
wmsRawInstockDetail.setMaterialId(baseBarcodeInfo.getMaterialId());
wmsRawInstockDetail.setPoNo(wmsRawInstock.getPoNo());
wmsRawInstockDetail.setMaterialProductionDate(baseBarcodeInfo.getProductionDate());
wmsRawInstockDetail.setInstockAmount(wmsRawInstockVo.getInstockAmount());
wmsRawInstockDetail.setExecuteStatus(WmsConstants.RAW_INSTOCK_EXECUTE_STATUS_FINISH);
wmsRawInstockDetail.setInstockPerson(wmsRawInstock.getApplyBy());
wmsRawInstockDetail.setInstockTime(wmsRawInstock.getApplyDate());
wmsRawInstockDetail.setInstockWay(WmsConstants.RWA_INSTOCK_DETAIL_INSTOCK_WAY_MOBILE);
wmsRawInstockDetail.setMachineName(baseBarcodeInfo.getMachineName());
wmsRawInstockDetail.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsRawInstockMapper.insertWmsRawInstockDetail(wmsRawInstockDetail);
}
/**
*
* @param wmsRawInstock
* @param baseBarcodeInfo
* @param wmsRawInstockVo
* @param baseLocation
* @param userName
* @param currentDate
*/
public void updateRawStock(WmsRawInstock wmsRawInstock, MesBaseBarcodeInfo baseBarcodeInfo,
WmsRawInstockVo wmsRawInstockVo, WmsBaseLocation baseLocation,
String userName, Date currentDate) {
String barcodeInfo = baseBarcodeInfo.getBarcodeInfo();
String locationCode = wmsRawInstock.getLocationCode();
//判断此库位的数量限制,是否还能入库
WmsRawStock queryRawStock = new WmsRawStock();
queryRawStock.setLocationCode(locationCode);
BigDecimal totalAmount = wmsRawStockMapper.getRawStockTotalAmount(queryRawStock);
if (totalAmount != null && totalAmount.compareTo(BigDecimal.ZERO) > 0 &&
(totalAmount.add(wmsRawInstockVo.getInstockAmount()).compareTo(baseLocation.getQtyLimit()) > 0)
) {
throw new ServiceException("已超出库位数量限制,请重新选择库位");
}
//如果是同一库位入同一批次,则更新数量
WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, barcodeInfo);
if (wmsRawStock != null) {
wmsRawStock.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsRawStock.setTotalAmount(wmsRawStock.getTotalAmount().add(wmsRawInstockVo.getInstockAmount()));
wmsRawStock.setUpdateBy(userName);
wmsRawStock.setUpdateDate(currentDate);
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
} else {
wmsRawStock = new WmsRawStock();
wmsRawStock.setWarehouseId(wmsRawInstock.getWarehouseId());
wmsRawStock.setLocationCode(locationCode);
wmsRawStock.setStockType(WmsConstants.RWA_STOCK_STOCK_TYPE_RAW);
wmsRawStock.setMaterialId(baseBarcodeInfo.getMaterialId());
wmsRawStock.setInstockBatch(barcodeInfo);
wmsRawStock.setLastOutstockTime(baseBarcodeInfo.getLastOutstockDate());
wmsRawStock.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsRawStock.setTotalAmount(wmsRawInstockVo.getInstockAmount());
wmsRawStock.setCreateBy(userName);
wmsRawStock.setCreateDate(currentDate);
wmsRawStockMapper.insertWmsRawStock(wmsRawStock);
}
}
public void syncToErp() {
//todo 根据质检状态是通过的同步给ERP
}
/**
*
*
@ -212,7 +85,7 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
* @param wmsRawInstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int insertWmsRawInstock(WmsRawInstock wmsRawInstock) {
int rows = wmsRawInstockMapper.insertWmsRawInstock(wmsRawInstock);
@ -226,7 +99,7 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
* @param wmsRawInstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int updateWmsRawInstock(WmsRawInstock wmsRawInstock) {
wmsRawInstockMapper.deleteWmsRawInstockDetailByRawInstockId(wmsRawInstock.getRawInstockId());
@ -279,4 +152,133 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
}
}
}
/**
* ()
*
* @param wmsRawInstockVo
* @return
*/
@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();
// if (baseBarcodeInfo == null) {
// throw new ServiceException("物料编码有误");
// }
String locationCode = wmsRawInstockVo.getLocationCode();
WmsBaseLocation baseLocation = wmsBaseLocationMapper.selectWmsBaseLocationByLocationCode(locationCode);
if (baseLocation == null) {
throw new ServiceException("库位编码有误");
}
//todo 入库人权限判断
//todo 物料类型判断是否可以入此库位
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();//todo 是否改成nickname
WmsRawInstock wmsRawInstock = new WmsRawInstock();
wmsRawInstock.setWarehouseId(baseLocation.getWarehouseId());
wmsRawInstock.setLocationCode(locationCode);
wmsRawInstock.setPoNo(wmsRawInstockVo.getPoNo());
wmsRawInstock.setOperationType(WmsConstants.WMS_OPERATION_TYPE_MANUAL);
wmsRawInstock.setInstockType(WmsConstants.RAW_INSTOCK_INSTOCK_TYPE_PURCHASE);
wmsRawInstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
//todo根据系统参数判断保存审核状态
wmsRawInstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_TOAUDIT);
wmsRawInstock.setApplyBy(userName);
wmsRawInstock.setApplyDate(currentDate);
//插入记录
int rows = wmsRawInstockMapper.insertWmsRawInstock(wmsRawInstock);
//插入明细
insertWmsRawInstockDetail(wmsRawInstock, wmsRawInstockVo);
//更新库存
updateRawStock(wmsRawInstock, wmsRawInstockVo, baseLocation, userName, currentDate);
//todo同步erp
return rows;
}
/**
* 使
* @param wmsRawInstock
* @param wmsRawInstockVo
*/
public void insertWmsRawInstockDetail(WmsRawInstock wmsRawInstock, WmsRawInstockVo wmsRawInstockVo) {
WmsRawInstockDetail wmsRawInstockDetail = new WmsRawInstockDetail();
wmsRawInstockDetail.setRawInstockId(wmsRawInstock.getRawInstockId());
wmsRawInstockDetail.setLocationCode(wmsRawInstock.getLocationCode());
wmsRawInstockDetail.setMaterialBarcode(wmsRawInstockVo.getMaterialBarcode());
wmsRawInstockDetail.setInstockBatch(wmsRawInstockVo.getBatchCode());
wmsRawInstockDetail.setMaterialId(wmsRawInstockVo.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);
}
/**
*
*
* @param wmsRawInstock
* @param wmsRawInstockVo
* @param baseLocation
* @param userName
* @param currentDate
*/
public void updateRawStock(WmsRawInstock wmsRawInstock, WmsRawInstockVo wmsRawInstockVo, WmsBaseLocation baseLocation,
String userName, Date currentDate) {
String instockBatch = wmsRawInstockVo.getBatchCode();
String locationCode = wmsRawInstock.getLocationCode();
//判断此库位的数量限制,是否还能入库
WmsRawStock queryRawStock = new WmsRawStock();
queryRawStock.setLocationCode(locationCode);
BigDecimal totalAmount = wmsRawStockMapper.getRawStockTotalAmount(queryRawStock);
totalAmount = totalAmount == null ? BigDecimal.ZERO : totalAmount;
if (totalAmount.add(wmsRawInstockVo.getInstockAmount()).compareTo(baseLocation.getQtyLimit()) > 0) {
throw new ServiceException("已超出库位数量限制,请重新选择库位");
}
//如果是同一库位入同一批次,则更新数量
WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, instockBatch);
if (wmsRawStock != null) {
// wmsRawStock.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsRawStock.setTotalAmount(wmsRawStock.getTotalAmount().add(wmsRawInstockVo.getInstockAmount()));
wmsRawStock.setUpdateBy(userName);
wmsRawStock.setUpdateDate(currentDate);
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
} else {
wmsRawStock = new WmsRawStock();
wmsRawStock.setWarehouseId(wmsRawInstock.getWarehouseId());
wmsRawStock.setLocationCode(locationCode);
wmsRawStock.setStockType(WmsConstants.RWA_STOCK_STOCK_TYPE_RAW);
wmsRawStock.setMaterialId(wmsRawInstockVo.getMaterialId());
wmsRawStock.setInstockBatch(instockBatch);
// wmsRawStock.setLastOutstockTime(baseBarcodeInfo.getLastOutstockDate());
// wmsRawStock.setQualityStatus(wmsRawInstockVo.getQualityStatus());
wmsRawStock.setTotalAmount(wmsRawInstockVo.getInstockAmount());
wmsRawStock.setCreateBy(userName);
wmsRawStock.setCreateDate(currentDate);
wmsRawStockMapper.insertWmsRawStock(wmsRawStock);
}
}
public void syncToErp() {
//todo 根据质检状态是通过的同步给ERP
}
}

@ -1,36 +1,27 @@
package com.hw.wms.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
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.StringUtils;
import com.hw.common.security.utils.SecurityUtils;
import com.hw.mes.api.RemoteMesService;
import com.hw.mes.api.domain.MesBaseMaterialInfo;
import com.hw.mes.api.domain.vo.MesBaseMaterialInfoVo;
import com.hw.wms.domain.WmsRawStock;
import com.hw.wms.domain.vo.WmsRawOutstockAuditVo;
import com.hw.wms.domain.vo.WmsRawOutstockConfirmVo;
import com.hw.wms.mapper.WmsRawOutstockDetailMapper;
import com.hw.wms.mapper.WmsRawStockMapper;
import com.hw.wms.domain.*;
import com.hw.wms.domain.vo.*;
import com.hw.wms.mapper.*;
import com.hw.wms.service.IWmsRawOutstockService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import com.hw.common.core.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.hw.wms.domain.WmsRawOutstockDetail;
import com.hw.wms.mapper.WmsRawOutstockMapper;
import com.hw.wms.domain.WmsRawOutstock;
import com.hw.wms.service.IWmsRawOutstockService;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* Service
@ -46,9 +37,21 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
@Autowired
private WmsRawOutstockDetailMapper wmsRawOutstockDetailMapper;
@Autowired
private WmsRawInstockMapper wmsRawInstockMapper;
@Autowired
private WmsRawInstockDetailMapper wmsRawInstockDetailMapper;
@Autowired
private WmsRawStockMapper wmsRawStockMapper;
@Autowired
private WmsBaseWarehouseMapper wmsBaseWarehouseMapper;
@Autowired
private WmsBaseLocationMapper wmsBaseLocationMapper;
@Autowired
private RemoteMesService remoteMesService;
@ -101,7 +104,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param wmsRawOutstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int insertWmsRawOutstock(WmsRawOutstock wmsRawOutstock) {
int rows = wmsRawOutstockMapper.insertWmsRawOutstock(wmsRawOutstock);
@ -115,7 +118,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param wmsRawOutstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int updateWmsRawOutstock(WmsRawOutstock wmsRawOutstock) {
wmsRawOutstockMapper.deleteWmsRawOutstockDetailByRawOutstockId(wmsRawOutstock.getRawOutstockId());
@ -129,7 +132,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param rawOutstockIds
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteWmsRawOutstockByRawOutstockIds(Long[] rawOutstockIds) {
wmsRawOutstockMapper.deleteWmsRawOutstockDetailByRawOutstockIds(rawOutstockIds);
@ -142,7 +145,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param rawOutstockId
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteWmsRawOutstockByRawOutstockId(Long rawOutstockId) {
wmsRawOutstockMapper.deleteWmsRawOutstockDetailByRawOutstockId(rawOutstockId);
@ -176,9 +179,9 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param wmsRawOutstockAuditVo
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo) {
public JSONObject auditWmsRawOutstock(WmsRawOutstockAuditVo wmsRawOutstockAuditVo) {
String auditStatus = wmsRawOutstockAuditVo.getAuditStatus();
String auditReason = wmsRawOutstockAuditVo.getAuditReason();
Date currentDate = new Date();
@ -189,6 +192,8 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
wmsRawOutstock.setAuditBy(SecurityUtils.getUsername());
wmsRawOutstock.setAuditDate(new Date());
JSONObject returnJson = new JSONObject();
returnJson.put("auditStatus", auditStatus);
//审核不通过,需要有审核意见,并且需要更新库位占用数量。
if (auditStatus.equalsIgnoreCase(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_FAIL)) {
if (StringUtils.isEmpty(auditReason)) {
@ -216,9 +221,26 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
}
});
} 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());
}
}
return wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock);
wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock);
return returnJson;
}
@ -228,7 +250,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param wmsRawOutstockConfirmVo
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int confirmWmsRawOutstock(WmsRawOutstockConfirmVo wmsRawOutstockConfirmVo) {
Long rawOutstockDetailId = wmsRawOutstockConfirmVo.getRawOutstockDetailId();
@ -255,7 +277,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
//判断质检状态
if (wmsRawOutstockDetail.getQualityStatus() != null
&& !wmsRawOutstockDetail.getQualityStatus().equals(WmsConstants.RAW_OUTSTOCK_DETAIL_QUALITY_STATUS_PASS)) {
&& !wmsRawOutstockDetail.getQualityStatus().equals(WmsConstants.WMS_QUALITY_STATUS_PASS)) {
throw new ServiceException("质检通过才能出库");
}
@ -271,12 +293,12 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
wmsRawOutstockDetail.setOutstockAmount(updatedOutstockAmount);
String executeStatus = "";
if (updatedOutstockAmount.compareTo(planOutstockAmount) == 0) {
executeStatus = WmsConstants.RAW_INSTOCK_EXECUTE_STATUS_FINISH;
executeStatus = WmsConstants.WMS_EXECUTE_STATUS_FINISH;
//更新出库记录执行状态
this.updateRawOutstockDetailExecuteStatus(wmsRawOutstockDetail.getRawOutstockId(),
wmsRawOutstockDetail.getRawOutstockDetailId());
} else {
executeStatus = WmsConstants.RAW_INSTOCK_EXECUTE_STATUS_EXECUTING;
executeStatus = WmsConstants.WMS_EXECUTE_STATUS_EXECUTING;
}
Date currentDate = new Date();
@ -343,14 +365,14 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
boolean isExecuteFinish = true;
for (WmsRawOutstockDetail wmsRawOutstockDetail : wmsRawOutstockDetails) {
if (!wmsRawOutstockDetail.getRawOutstockDetailId().equals(rawOutStockDetailId)
&& !wmsRawOutstockDetail.getExecuteStatus().equals(WmsConstants.RAW_OUTSTOCK_EXECUTE_STATUS_FINISH)) {
&& !wmsRawOutstockDetail.getExecuteStatus().equals(WmsConstants.WMS_EXECUTE_STATUS_FINISH)) {
isExecuteFinish = false;
}
}
if (isExecuteFinish) {
WmsRawOutstock wmsRawOutstock = wmsRawOutstockMapper.selectWmsRawOutstockByRawOutstockId(rawOutstockId);
wmsRawOutstock.setExecuteStatus(WmsConstants.RAW_OUTSTOCK_EXECUTE_STATUS_FINISH);
wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawOutstockMapper.updateWmsRawOutstock(wmsRawOutstock);
}
}
@ -362,25 +384,33 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @param wmsRawOutstock
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int applyRawOutstock(WmsRawOutstock wmsRawOutstock) {
Long warehouseId = wmsRawOutstock.getWarehouseId();
List<WmsRawOutstockDetail> rawOutstockDetails = wmsRawOutstock.getWmsRawOutstockDetailList();
//如果同一个物料有多条记录的处理,提前更新,放在事务中
//判断库位和可用数量(总数量减冻结数量和占用数量),按先进先出(按入库时间排序获取)
String queryQualityStatus = WmsConstants.RWA_STOCK_QUALITY_STATUS_PASS;
//根据物料ID分组获取总申请数量
Map<Long, BigDecimal> rawOutstockDetailMap = rawOutstockDetails.stream()
.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 operationType = WmsConstants.OPERATION_TYPE_MAP.get(warehouseType);
String outstockWay = WmsConstants.OUTSTOCK_WAY_MAP.get(warehouseType);
String queryQualityStatus = WmsConstants.WMS_QUALITY_STATUS_PASS;
List<WmsRawOutstockDetail> toUpdatedRawOutstockDetails = new ArrayList<>();
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
rawOutstockDetails.forEach(rawOutstockDetail -> {
BigDecimal planAmount = rawOutstockDetail.getPlanAmount();
for (Long materialId : rawOutstockDetailMap.keySet()) {
BigDecimal planAmount = rawOutstockDetailMap.get(materialId);
BigDecimal realRawStock = BigDecimal.ZERO;//实际库存总量
Long materialId = rawOutstockDetail.getMaterialId();
WmsRawStock queryRawStock = new WmsRawStock();
queryRawStock.setWarehouseId(warehouseId);
queryRawStock.setMaterialId(materialId);
queryRawStock.setQualityStatus(queryQualityStatus);
// queryRawStock.setQualityStatus(queryQualityStatus);//todo先不过滤质检状态
//判断库位和可用数量(总数量减冻结数量和占用数量),按先进先出(按入库时间排序获取)
List<WmsRawStock> wmsRawStocks = wmsRawStockMapper.selectWmsRawStocks4Apply(queryRawStock);
if (wmsRawStocks != null && !wmsRawStocks.isEmpty()) {
@ -394,63 +424,65 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
if (availableAmount.compareTo(BigDecimal.ZERO) > 0) {
//如果申请数量大于此库位可出库的数量则继续进行下一库位判断
if (planAmount.compareTo(availableAmount) > 0) {
//库存信息更改
//占用数量更改
wmsRawStock.setOccupyAmount(occupyAmount.add(availableAmount));
wmsRawStock.setUpdateDate(currentDate);
wmsRawStock.setUpdateBy(userName);
//如果同一个物料有多条记录的处理(最好避免前端可以传多条同一个物料的申请),提前更新(主要是更新数量等信息,避免在下一次判断中还使用上次的数量),放在事务中
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
//原材料出库记录明细
WmsRawOutstockDetail wmsRawOutstockDetail = getWmsRawOutstockDetail(wmsRawStock, materialId,
availableAmount, currentDate, userName);
availableAmount, currentDate, userName, outstockWay);
toUpdatedRawOutstockDetails.add(wmsRawOutstockDetail);
planAmount = planAmount.subtract(availableAmount);
continue;
} else if (planAmount.compareTo(availableAmount) == 0) {//计划数量等于可出库数量
//库存信息更改
//占用数量更改
wmsRawStock.setOccupyAmount(occupyAmount.add(availableAmount));
wmsRawStock.setUpdateDate(currentDate);
wmsRawStock.setUpdateBy(userName);
//如果同一个物料有多条记录的处理,提前更新(主要是更新数量等信息,避免在下一次判断中还使用上次的数量),放在事务中
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
//原材料出库记录明细
WmsRawOutstockDetail wmsRawOutstockDetail = getWmsRawOutstockDetail(wmsRawStock, materialId,
availableAmount, currentDate, userName);
availableAmount, currentDate, userName, outstockWay);
toUpdatedRawOutstockDetails.add(wmsRawOutstockDetail);
planAmount = BigDecimal.ZERO;
break;
} else if (planAmount.compareTo(availableAmount) < 0) {
//库存信息更改
//占用数量更改
wmsRawStock.setOccupyAmount(occupyAmount.add(planAmount));
wmsRawStock.setUpdateDate(currentDate);
wmsRawStock.setUpdateBy(userName);
//如果同一个物料有多条记录的处理,提前更新(主要是更新数量等信息,避免在下一次判断中还使用上次的数量),放在事务中
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
//原材料出库记录明细
WmsRawOutstockDetail wmsRawOutstockDetail = getWmsRawOutstockDetail(wmsRawStock, materialId,
planAmount, currentDate, userName);
planAmount, currentDate, userName, outstockWay);
toUpdatedRawOutstockDetails.add(wmsRawOutstockDetail);
planAmount = BigDecimal.ZERO;
break;
}
}
}
}
if (planAmount.compareTo(BigDecimal.ZERO) > 0) {
throw new ServiceException("物料[" + rawOutstockDetail.getMaterialName() + "]库存不足,只有" + realRawStock);
throw new ServiceException("物料编号为[" + materialId + "]库存不足,只有" + realRawStock);
}
});
}
//todo 审核状态默认为待审核,后续可根据系统参数判断保存是待审核还是直接审核通过
wmsRawOutstock.setOperationType(operationType);
wmsRawOutstock.setApplyBy(userName);
wmsRawOutstock.setApplyDate(currentDate);
wmsRawOutstock.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT);
wmsRawOutstock.setExecuteStatus(WmsConstants.RAW_OUTSTOCK_EXECUTE_STATUS_TO_EXECUTUTE);
wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
int rows = wmsRawOutstockMapper.insertWmsRawOutstock(wmsRawOutstock);
wmsRawOutstock.setWmsRawOutstockDetailList(toUpdatedRawOutstockDetails);
@ -471,14 +503,14 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
* @return
*/
private WmsRawOutstockDetail getWmsRawOutstockDetail(WmsRawStock wmsRawStock, Long materialId,
BigDecimal availableAmount, Date currentDate, String userName) {
BigDecimal availableAmount, Date currentDate, String userName, String outstockWay) {
WmsRawOutstockDetail wmsRawOutstockDetail = new WmsRawOutstockDetail();
wmsRawOutstockDetail.setLocationCode(wmsRawStock.getLocationCode());
wmsRawOutstockDetail.setMaterialId(materialId);
wmsRawOutstockDetail.setInstockBatch(wmsRawStock.getInstockBatch());
wmsRawOutstockDetail.setPlanAmount(availableAmount);
wmsRawOutstockDetail.setExecuteStatus(WmsConstants.RAW_OUTSTOCK_EXECUTE_STATUS_TO_EXECUTUTE);
wmsRawOutstockDetail.setOutstockWay(WmsConstants.RAW_OUTSTOCK_OUTSTOCK_WAY_MANUAL);
wmsRawOutstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
wmsRawOutstockDetail.setOutstockWay(outstockWay);
wmsRawOutstockDetail.setQualityStatus(wmsRawStock.getQualityStatus());
wmsRawOutstockDetail.setCreateDate(currentDate);
wmsRawOutstockDetail.setCreateBy(userName);
@ -487,4 +519,221 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService {
}
/**
* AGV
*
* @param wmsAgvRawOutstockVo
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public List<WmsWcsVo> applyAgvRawOutstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo) {
List<WmsWcsVo> wmsWcsVos = new ArrayList<>();
Long warehouseId = wmsAgvRawOutstockVo.getWarehouseId();
Long materialId = wmsAgvRawOutstockVo.getMaterialId();
WmsBaseWarehouse warehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId);
List<WmsBaseLocation> baseLocations = warehouse.getWmsBaseLocationList();
Map<String, WmsBaseLocation> baseLocationsMap = baseLocations.stream().collect(Collectors.toMap(WmsBaseLocation::getLocationCode, baseLocation -> baseLocation));
WmsRawStock queryRawStock = new WmsRawStock();
queryRawStock.setWarehouseId(warehouseId);
queryRawStock.setMaterialId(materialId);
queryRawStock.setCompleteFlag(WmsConstants.WMS_RAW_STOCK_COMPLETE_FLAG_YES);
List<WmsRawStock> rawStockList = wmsRawStockMapper.selectWmsRawStockInList(queryRawStock);
Map<String, List<WmsRawStock>> rawStockListMap = rawStockList.stream()
.collect(Collectors.groupingBy(WmsRawStock::getLocationCode));
String userName = SecurityUtils.getUsername();
Date currentDate = new Date();
//选择出库库位
WmsBaseLocation outstockLocation = null;//出库库位
String moveMaterialBarcode = "";
Long moveMaterialId = null;
for (WmsRawStock wmsRawStock : rawStockList) {
BigDecimal occupyAmount = wmsRawStock.getOccupyAmount() == null ? BigDecimal.ZERO : wmsRawStock.getOccupyAmount();
BigDecimal frozenAmount = wmsRawStock.getFrozenAmount() == null ? BigDecimal.ZERO : wmsRawStock.getFrozenAmount();
WmsBaseLocation wmsBaseLocation = baseLocationsMap.get(wmsRawStock.getLocationCode());
//先确认出库库位,可用数量>=1库位状态是正常的
if (occupyAmount.compareTo(BigDecimal.ZERO) <= 0 && frozenAmount.compareTo(BigDecimal.ZERO) <= 0
&& wmsBaseLocation.getLocationStatus().equals(WmsConstants.WMS_BASE_LOCATION_STATUS_NORMAL)
) {
outstockLocation = wmsBaseLocation;
moveMaterialBarcode = wmsRawStock.getInstockBatch();
moveMaterialId = wmsRawStock.getMaterialId();
break;
}
}
if (outstockLocation == null) {
throw new ServiceException("没有可出库库位");
}
Long outstockLocRow = outstockLocation.getLocRow();//出库库位排
if (outstockLocRow > 1) { //如果是后排
//先判断对应的前排库位有没有库存,如果没有库存,则锁定库位;如果有库存则需要移库
Long outstockColumn = outstockLocation.getLocColumn();
WmsBaseLocation frontLocation = new WmsBaseLocation();//前排库位
WmsBaseLocation outExcessLocation = null;//出库过度库位
for (WmsBaseLocation location : baseLocations) {
String instockFlag = location.getInstockFlag() == null ? "0" : location.getInstockFlag();
Long instockLocRow = location.getLocRow() == null ? 1L : location.getLocRow();
if (location.getLocColumn().equals(outstockColumn) && location.getLocRow().equals(1L)) {
frontLocation = location;
}
//如果是入库过度库位,并且是第一排
if (instockFlag.equals(WmsConstants.WMS_BASE_LOCATION_INSTOCK_FLAG_YES) && instockLocRow.equals(1L)) {
outExcessLocation = location;
}
}
List<WmsRawStock> frontLocationRawStocks = rawStockListMap.get(frontLocation.getLocationCode());
//如果是后排,则判断前排是否有库存,如果有库存则需要移库,移库还要选择没锁定的,然后锁定
if (frontLocationRawStocks != null && !frontLocationRawStocks.isEmpty()) {//移库位
if (outExcessLocation == null) {
throw new ServiceException("需设置入库过度库位");
}
if (outExcessLocation.getLocationId().equals(frontLocation.getLocationId())) {
throw new ServiceException("前排库位为入库过度库位,但是过度库位有库存");
}
WmsRawStock forntWmsRawStock = frontLocationRawStocks.get(0);
//锁入库过度库位
outExcessLocation.setLocationStatus(WmsConstants.WMS_BASE_LOCATION_STATUS_AUTO_LOCK);
outExcessLocation.setInstockFlag(WmsConstants.WMS_BASE_LOCATION_INSTOCK_FLAG_NO);//需设置为非入库过度库位
outExcessLocation.setUpdateBy(userName);
outExcessLocation.setUpdateTime(currentDate);
wmsBaseLocationMapper.updateWmsBaseLocation(outExcessLocation);
//移库出库任务
agvRawOutstock(wmsAgvRawOutstockVo, frontLocation, moveMaterialBarcode, moveMaterialId, WmsConstants.WMS_RAW_OUTSTOCK_TASK_TYPE_MOVE,
userName, currentDate);
WmsWcsVo moveOutWcsVo = new WmsWcsVo();
moveOutWcsVo.setOrderNumer(1);
wmsWcsVos.add(moveOutWcsVo);
//移库入库任务
agvRawInstock(wmsAgvRawOutstockVo, outExcessLocation, moveMaterialBarcode, moveMaterialId,
userName, currentDate);
WmsWcsVo moveInWcsVo = new WmsWcsVo();
moveInWcsVo.setOrderNumer(2);
wmsWcsVos.add(moveInWcsVo);
frontLocation.setInstockFlag(WmsConstants.WMS_BASE_LOCATION_INSTOCK_FLAG_YES);//需设置此库位已入库过度库位
}
//锁前排库位(自动锁定的库位可以不用更新库存中的占用数量)
frontLocation.setLocationStatus(WmsConstants.WMS_BASE_LOCATION_STATUS_AUTO_LOCK);
frontLocation.setUpdateBy(userName);
frontLocation.setUpdateTime(currentDate);
wmsBaseLocationMapper.updateWmsBaseLocation(frontLocation);
//锁出库库位
outstockLocation.setLocationStatus(WmsConstants.WMS_BASE_LOCATION_STATUS_AUTO_LOCK);
outstockLocation.setUpdateBy(userName);
outstockLocation.setUpdateTime(currentDate);
wmsBaseLocationMapper.updateWmsBaseLocation(outstockLocation);
}
WmsRawOutstock agvRawOutstock = agvRawOutstock(wmsAgvRawOutstockVo, outstockLocation, moveMaterialBarcode, moveMaterialId,
WmsConstants.WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_PICKING, userName, currentDate);
WmsWcsVo outWcsVo = new WmsWcsVo();
outWcsVo.setOrderNumer(3);
outWcsVo.setTaskId(agvRawOutstock.getRawOutstockId());
wmsWcsVos.add(outWcsVo);
return wmsWcsVos;
}
private WmsRawOutstock agvRawOutstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo, WmsBaseLocation oriBaseLocation, String moveMaterialBarcode, Long moveMaterialId,
String taskType, String userName, Date currentDate) {
WmsRawOutstock rawOutstock = new WmsRawOutstock();
rawOutstock.setWarehouseId(oriBaseLocation.getWarehouseId());
rawOutstock.setPlanCode(wmsAgvRawOutstockVo.getPlanCode());
rawOutstock.setOperationType(WmsConstants.WMS_OPERATION_TYPE_AUTO);
rawOutstock.setTaskType(taskType);
rawOutstock.setAuditStatus(WmsConstants.WMS_AUDIT_STATUS_PASS);
rawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
rawOutstock.setApplyDate(currentDate);
rawOutstock.setApplyBy(userName);
rawOutstock.setCreateBy(userName);
rawOutstock.setCreateTime(currentDate);
wmsRawOutstockMapper.insertWmsRawOutstock(rawOutstock);
WmsRawOutstockDetail rawOutstockDetail = new WmsRawOutstockDetail();
rawOutstockDetail.setRawOutstockId(rawOutstock.getRawOutstockId());
rawOutstockDetail.setLocationCode(oriBaseLocation.getLocationCode());
rawOutstockDetail.setMaterialBarcode(moveMaterialBarcode);
rawOutstockDetail.setMaterialId(moveMaterialId);
rawOutstockDetail.setPlanAmount(new BigDecimal(1));//todo agv数量默认1
rawOutstockDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
rawOutstockDetail.setOutstockWay(WmsConstants.WMS_STOCK_WAY_AGV);
wmsRawOutstockDetailMapper.insertWmsRawOutstockDetail(rawOutstockDetail);
return rawOutstock;
}
private WmsRawInstock agvRawInstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo, WmsBaseLocation targetBaseLocation, String moveMaterialBarcode, Long moveMaterialId,
String userName, Date currentDate) {
WmsRawInstock rawInstock = new WmsRawInstock();
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);
return rawInstock;
}
/**
*
* @param warehouseId
* @return
*/
public List<WmsBaseLocation> agvReturnAssignLocations(Long warehouseId) {
WmsBaseLocation queryLocation = new WmsBaseLocation();
queryLocation.setWarehouseId(warehouseId);
List<WmsBaseLocation> baseLocations = wmsBaseLocationMapper.selectEmptyWmsBaseLocationList(queryLocation);
return baseLocations;
}
/**
* agv
* @param wmsAgvRawReturnVo
*/
public void agvReturn(WmsAgvRawReturnVo wmsAgvRawReturnVo) {
String materialBarcode = wmsAgvRawReturnVo.getMaterialBarcode();
String locationCode = wmsAgvRawReturnVo.getLocationCode();
// WmsConstants.WMS_RAW_STOCK_COMPLETE_FLAG_NO;
}
}

@ -1,15 +1,16 @@
package com.hw.wms.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.*;
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;
import com.hw.mes.api.domain.MesBaseMaterialInfo;
import com.hw.mes.api.domain.vo.MesBaseMaterialInfoVo;
import com.hw.wms.domain.*;
@ -19,11 +20,10 @@ import com.hw.wms.domain.vo.WmsRawReturnAuditVo;
import com.hw.wms.domain.vo.WmsRawReturnConfirmVo;
import com.hw.wms.mapper.WmsRawReturnDetailMapper;
import com.hw.wms.mapper.WmsRawStockMapper;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
import java.util.stream.Collectors;
import com.hw.common.core.utils.StringUtils;
@ -54,32 +54,84 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService {
private RemoteMesService remoteMesService;
/**
* 退
* 退退使
*
* @param rawReturnId 退
* @return 退
*/
@Override
public WmsRawReturn selectWmsRawReturnByRawReturnId(Long rawReturnId) {
WmsRawReturn rawReturn = wmsRawReturnMapper.selectWmsRawReturnByRawReturnId(rawReturnId);
List<WmsRawReturnDetail> wmsRawReturnDetailList = rawReturn.getWmsRawReturnDetailList();
Long[] materialIds = wmsRawReturnDetailList.stream().map(o -> o.getMaterialId()).toArray(Long[]::new);
WmsRawReturn rawReturn = wmsRawReturnMapper.selectOnlyWmsRawReturnByRawReturnId(rawReturnId);
Long materialId = rawReturn.getMaterialId() == null ? 0L : rawReturn.getMaterialId();
Long productId = rawReturn.getProductId() == null ? 0L : rawReturn.getProductId();
Long[] materialIds = {materialId, productId};
MesBaseMaterialInfoVo mesBaseMaterialInfoVo = new MesBaseMaterialInfoVo();
mesBaseMaterialInfoVo.setMaterialIds(materialIds);
R<List<MesBaseMaterialInfo>> materialInfosR = remoteMesService.getMaterialsByMaterialIds(mesBaseMaterialInfoVo, SecurityConstants.INNER);
if (materialInfosR != null) {
List<MesBaseMaterialInfo> materialInfos = materialInfosR.getData();
Map<Long, MesBaseMaterialInfo> MesBaseMaterialInfoMap = materialInfos.stream()
Map<Long, MesBaseMaterialInfo> mesBaseMaterialInfoMap = materialInfos.stream()
.collect(Collectors.toMap(MesBaseMaterialInfo::getMaterialId, mesBaseMaterialInfo -> mesBaseMaterialInfo));
wmsRawReturnDetailList.forEach(wmsRawReturnDetail -> {
MesBaseMaterialInfo materialInfo = MesBaseMaterialInfoMap.get(wmsRawReturnDetail.getMaterialId());
MesBaseMaterialInfo materialInfo = mesBaseMaterialInfoMap.get(materialId);
if (materialInfo != null) {
rawReturn.setMaterialName(materialInfo.getMaterialName());
}
MesBaseMaterialInfo productInfo = mesBaseMaterialInfoMap.get(productId);
if (productInfo != null) {
rawReturn.setProductName(productInfo.getMaterialName());
}
}
return rawReturn;
}
/**
* 退退使
*
* @param rawReturnId 退
* @return 退
*/
@Override
public WmsRawReturn selectWmsRawReturnByRawReturnId4Confirm(Long rawReturnId) {
WmsRawReturn rawReturn = wmsRawReturnMapper.selectWmsRawReturnByRawReturnId(rawReturnId);
Long materialId = rawReturn.getMaterialId() == null ? 0L : rawReturn.getMaterialId();
Long productId = rawReturn.getProductId() == null ? 0L : rawReturn.getProductId();
Long[] rawReturnMaterialIds = {materialId, productId};
List<WmsRawReturnDetail> wmsRawReturnDetailList = rawReturn.getWmsRawReturnDetailList();
Long[] rawReturnDetailMaterialIds = wmsRawReturnDetailList.stream().map(o -> o.getMaterialId()).toArray(Long[]::new);
Long[] materialIds = ArrayUtils.addAll(rawReturnMaterialIds, rawReturnDetailMaterialIds);
if (materialIds.length > 0) {
MesBaseMaterialInfoVo mesBaseMaterialInfoVo = new MesBaseMaterialInfoVo();
mesBaseMaterialInfoVo.setMaterialIds(materialIds);
R<List<MesBaseMaterialInfo>> materialInfosR = remoteMesService.getMaterialsByMaterialIds(mesBaseMaterialInfoVo, SecurityConstants.INNER);
if (materialInfosR != null) {
List<MesBaseMaterialInfo> materialInfos = materialInfosR.getData();
Map<Long, MesBaseMaterialInfo> mesBaseMaterialInfoMap = materialInfos.stream()
.collect(Collectors.toMap(MesBaseMaterialInfo::getMaterialId, mesBaseMaterialInfo -> mesBaseMaterialInfo));
MesBaseMaterialInfo materialInfo = mesBaseMaterialInfoMap.get(materialId);
if (materialInfo != null) {
wmsRawReturnDetail.setMaterialCode(materialInfo.getMaterialCode());
wmsRawReturnDetail.setMaterialName(materialInfo.getMaterialName());
rawReturn.setMaterialName(materialInfo.getMaterialName());
}
});
MesBaseMaterialInfo productInfo = mesBaseMaterialInfoMap.get(productId);
if (productInfo != null) {
rawReturn.setProductName(productInfo.getMaterialName());
}
wmsRawReturnDetailList.forEach(wmsRawReturnDetail -> {
MesBaseMaterialInfo detailMaterialInfo = mesBaseMaterialInfoMap.get(wmsRawReturnDetail.getMaterialId());
if (materialInfo != null) {
wmsRawReturnDetail.setMaterialCode(detailMaterialInfo.getMaterialCode());
wmsRawReturnDetail.setMaterialName(detailMaterialInfo.getMaterialName());
}
});
}
}
return rawReturn;
@ -193,7 +245,7 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService {
public int auditWmsRawReturn(WmsRawReturnAuditVo wmsRawReturnAuditVo) {
String auditStatus = wmsRawReturnAuditVo.getAuditStatus();
String auditReason = wmsRawReturnAuditVo.getAuditReason();
if (WmsConstants.RAW_RETURN_AUDIT_STATUS_FAIL.equals(auditStatus) && StringUtils.isEmpty(auditReason)) {
if (WmsConstants.WMS_AUDIT_STATUS_FAIL.equals(auditStatus) && StringUtils.isEmpty(auditReason)) {
throw new ServiceException("请输入审核意见");
}
@ -211,90 +263,107 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService {
* @param wmsRawReturnConfirmVo
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override
public int confirmWmsRawReturn(WmsRawReturnConfirmVo wmsRawReturnConfirmVo) {
Long rawReturnDetailId = wmsRawReturnConfirmVo.getRawReturnDetailId();
String locationCode = wmsRawReturnConfirmVo.getLocationCode();
String instockBatch = wmsRawReturnConfirmVo.getInstockBatch();
Long rawReturnId = wmsRawReturnConfirmVo.getRawReturnId();
String materialBarcode = wmsRawReturnConfirmVo.getMaterialBarcode();
BigDecimal returnAmount = wmsRawReturnConfirmVo.getReturnAmount();
//判断是否有此退库任务,人工退库的同一个退库记录同一个库位、同一个物料对应一个明细agv的有可能是多个
WmsRawReturnDetail queryRawReturnDetail = new WmsRawReturnDetail();
queryRawReturnDetail.setLocationCode(locationCode);
queryRawReturnDetail.setInstockBatch(instockBatch);
List<WmsRawReturnDetail> wmsRawReturnDetails = wmsRawReturnDetailMapper.selectWmsRawReturnDetailList(queryRawReturnDetail);
WmsRawReturnDetail wmsRawReturnDetail = new WmsRawReturnDetail();
if (wmsRawReturnDetails == null || wmsRawReturnDetails.isEmpty()) {
throw new ServiceException("没有此退库任务");
} else if (wmsRawReturnDetails.size() > 1) {
if (rawReturnDetailId == null) {
throw new ServiceException("请选择具体退库任务后点击确认");
} else {
wmsRawReturnDetail = wmsRawReturnDetails.stream().filter(wrr -> wrr.getRawReturnDetailId().equals(rawReturnDetailId)).findFirst().get();
}
} else {
wmsRawReturnDetail = wmsRawReturnDetails.get(0);
}
//判断质检状态
if (wmsRawReturnDetail.getQualityStatus() != null
&& !wmsRawReturnDetail.getQualityStatus().equals(WmsConstants.RAW_RETURN_DETAIL_QUALITY_STATUS_PASS)) {
throw new ServiceException("质检通过才能出库");
//todo: 判断质检状态,超出库位数量限制,超期判断
// if (wmsRawReturnDetail.getQualityStatus() != null
// && !wmsRawReturnDetail.getQualityStatus().equals(WmsConstants.RAW_RETURN_DETAIL_QUALITY_STATUS_PASS)) {
// throw new ServiceException("质检通过才能出库");
// }
R<MesBaseBarcodeInfo> mesBaseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER);
if (mesBaseBarcodeInfoR == null) {
throw new ServiceException("物料编码错误");
}
MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoR.getData();
if (mesBaseBarcodeInfo == null) {
throw new ServiceException("物料编码错误");
}
WmsRawReturn wmsRawReturn = wmsRawReturnMapper.selectOnlyWmsRawReturnByRawReturnId(rawReturnId);
if (!wmsRawReturn.getAuditStatus().equals(WmsConstants.WMS_AUDIT_STATUS_PASS)) {
throw new ServiceException("审核未通过,不能出库");
}
// 判断本次退库数量+已退库数量是否大于计划退库数量
BigDecimal hadReturnAmount = wmsRawReturnDetail.getReturnAmount() == null ? BigDecimal.ZERO : wmsRawReturnDetail.getReturnAmount();
BigDecimal planReturnAmount = wmsRawReturnDetail.getPlanAmount();
BigDecimal planAmount = wmsRawReturn.getPlanAmount();
BigDecimal hadReturnAmount = wmsRawReturn.getReturnAmount() == null ? BigDecimal.ZERO : wmsRawReturn.getReturnAmount();
BigDecimal updatedReturnAmount = hadReturnAmount.add(returnAmount);
if (updatedReturnAmount.compareTo(planReturnAmount) > 0) {
throw new ServiceException("退库数量不能大于" + planReturnAmount);
if (updatedReturnAmount.compareTo(planAmount) > 0) {
throw new ServiceException("退库数量不能大于" + planAmount);
}
wmsRawReturnDetail.setReturnAmount(updatedReturnAmount);
String executeStatus = "";
if (updatedReturnAmount.compareTo(planReturnAmount) == 0) {
executeStatus = WmsConstants.RAW_RETURN_EXECUTE_STATUS_FINISH;
//更新退库记录执行状态
this.updateRawReturnDetailExecuteStatus(wmsRawReturnDetail.getRawReturnId(),
wmsRawReturnDetail.getRawReturnDetailId());
if (updatedReturnAmount.compareTo(planAmount) == 0) {
executeStatus = WmsConstants.WMS_EXECUTE_STATUS_FINISH;
} else {
executeStatus = WmsConstants.RAW_INSTOCK_EXECUTE_STATUS_EXECUTING;
executeStatus = WmsConstants.WMS_EXECUTE_STATUS_EXECUTING;
}
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
wmsRawReturnDetail.setExecuteStatus(executeStatus);
if (wmsRawReturnDetail.getReturnTime() == null) {
wmsRawReturnDetail.setReturnTime(currentDate);
} else {
wmsRawReturnDetail.setUpdateDate(currentDate);
}
if (wmsRawReturnDetail.getReturnPerson() == null) {
wmsRawReturnDetail.setReturnPerson(userName);
} else {
wmsRawReturnDetail.setUpdateBy(userName);
}
//更新退库记录执行状态
wmsRawReturn.setExecuteStatus(executeStatus);
wmsRawReturn.setReturnAmount(updatedReturnAmount);
wmsRawReturn.setUpdateDate(currentDate);
wmsRawReturn.setUpdateBy(userName);
wmsRawReturnMapper.updateWmsRawReturn(wmsRawReturn);
wmsRawReturnDetailMapper.updateWmsRawReturnDetail(wmsRawReturnDetail);
//插入退库记录明细
this.insertRawReturnDetails(wmsRawReturnConfirmVo, wmsRawReturn,
mesBaseBarcodeInfo, userName, currentDate);
//更新原材料库存
this.updateRawStock(wmsRawReturnConfirmVo, mesBaseBarcodeInfo, userName, currentDate);
//todo 同步erp
return 1;
}
private void insertRawReturnDetails(WmsRawReturnConfirmVo wmsRawReturnConfirmVo, WmsRawReturn wmsRawReturn,
MesBaseBarcodeInfo mesBaseBarcodeInfo, String userName, Date currentDate) {
WmsRawReturnDetail wmsRawReturnDetail = new WmsRawReturnDetail();
wmsRawReturnDetail.setRawReturnId(wmsRawReturn.getRawReturnId());
wmsRawReturnDetail.setLocationCode(wmsRawReturnConfirmVo.getLocationCode());
wmsRawReturnDetail.setMaterialBarcode(wmsRawReturnConfirmVo.getMaterialBarcode());
wmsRawReturnDetail.setMaterialId(mesBaseBarcodeInfo.getMaterialId());
wmsRawReturnDetail.setInstockBatch(mesBaseBarcodeInfo.getBatchCode());
wmsRawReturnDetail.setPlanAmount(wmsRawReturnConfirmVo.getReturnAmount());
wmsRawReturnDetail.setReturnAmount(wmsRawReturnConfirmVo.getReturnAmount());
wmsRawReturnDetail.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawReturnDetail.setReturnPerson(userName);
wmsRawReturnDetail.setReturnTime(currentDate);
wmsRawReturnDetail.setReturnWay(WmsConstants.RAW_RETURN_RETURN_WAY_MANUAL);
wmsRawReturnDetailMapper.insertWmsRawReturnDetail(wmsRawReturnDetail);
}
private void updateRawStock(WmsRawReturnConfirmVo wmsRawReturnConfirmVo, MesBaseBarcodeInfo mesBaseBarcodeInfo, String userName, Date currentDate) {
String locationCode = wmsRawReturnConfirmVo.getLocationCode();
String instockBatch = mesBaseBarcodeInfo.getBatchCode();
//更新原材料库存总数量
WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, instockBatch);
if (wmsRawStock == null) {
throw new ServiceException("数据异常");
} else {
BigDecimal totalAmount = wmsRawStock.getTotalAmount() == null ? BigDecimal.ZERO : wmsRawStock.getTotalAmount();
BigDecimal updatedTotalAmount = totalAmount.add(returnAmount);
BigDecimal updatedTotalAmount = totalAmount.add(wmsRawReturnConfirmVo.getReturnAmount());
wmsRawStock.setTotalAmount(updatedTotalAmount);
wmsRawStock.setUpdateDate(currentDate);
wmsRawStock.setUpdateBy(userName);
wmsRawStockMapper.updateWmsRawStock(wmsRawStock);
}
//todo 同步erp
return 1;
}
/**
* 退使
*
@ -321,16 +390,60 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService {
boolean isExecuteFinish = true;
for (WmsRawReturnDetail wmsRawReturnDetail : wmsRawReturnDetails) {
if (!wmsRawReturnDetail.getRawReturnDetailId().equals(rawReturnDetailId)
&& !wmsRawReturnDetail.getExecuteStatus().equals(WmsConstants.RAW_RETURN_EXECUTE_STATUS_FINISH)) {
&& !wmsRawReturnDetail.getExecuteStatus().equals(WmsConstants.WMS_EXECUTE_STATUS_FINISH)) {
isExecuteFinish = false;
}
}
if (isExecuteFinish) {
WmsRawReturn wmsRawReturn = wmsRawReturnMapper.selectWmsRawReturnByRawReturnId(rawReturnId);
wmsRawReturn.setExecuteStatus(WmsConstants.RAW_OUTSTOCK_EXECUTE_STATUS_FINISH);
wmsRawReturn.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH);
wmsRawReturnMapper.updateWmsRawReturn(wmsRawReturn);
}
}
/**
* 退
*
* @param wmsRawReturn 退
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public int applyRawReturn(WmsRawReturn wmsRawReturn) {
List<WmsRawReturnDetail> rawReturnDetails = wmsRawReturn.getWmsRawReturnDetailList();
//根据物料ID分组获取总申请数量
Map<Long, BigDecimal> rawReturnDetailMap = rawReturnDetails.stream()
.collect(Collectors.groupingBy(WmsRawReturnDetail::getMaterialId, HashMap::new, Collectors.reducing(BigDecimal.ZERO, WmsRawReturnDetail::getPlanAmount, BigDecimal::add)));
String queryQualityStatus = WmsConstants.WMS_QUALITY_STATUS_PASS;
List<WmsRawOutstockDetail> toUpdatedRawOutstockDetails = new ArrayList<>();
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
for (Long materialId : rawReturnDetailMap.keySet()) {
BigDecimal planAmount = rawReturnDetailMap.get(materialId);
WmsRawReturn toUpdatedWmsRawReturn = new WmsRawReturn();
toUpdatedWmsRawReturn.setWarehouseId(wmsRawReturn.getWarehouseId());
toUpdatedWmsRawReturn.setPlanCode(wmsRawReturn.getPlanCode());
toUpdatedWmsRawReturn.setPlanDetailCode(wmsRawReturn.getPlanDetailCode());
toUpdatedWmsRawReturn.setTaskType(wmsRawReturn.getTaskType());
toUpdatedWmsRawReturn.setTaskCode(Seq.getId());
// toUpdatedWmsRawReturn.setProductId();
toUpdatedWmsRawReturn.setApplyReason(wmsRawReturn.getApplyReason());
toUpdatedWmsRawReturn.setMaterialId(materialId);
toUpdatedWmsRawReturn.setPlanAmount(planAmount);
//todo 审核状态默认为待审核,后续可根据系统参数判断保存是待审核还是直接审核通过
toUpdatedWmsRawReturn.setApplyBy(userName);
toUpdatedWmsRawReturn.setApplyDate(currentDate);
toUpdatedWmsRawReturn.setAuditStatus(WmsConstants.RAW_OUTSTOCK_AUDIT_STATUS_TOAUDIT);
toUpdatedWmsRawReturn.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE);
// queryRawStock.setQualityStatus(queryQualityStatus);//todo先不过滤质检状态
int rows = wmsRawReturnMapper.insertWmsRawReturn(toUpdatedWmsRawReturn);
}
return 1;
}
}

@ -266,4 +266,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where location_code = #{locationCode}
</select>
<select id="selectEmptyWmsBaseLocationList" parameterType="WmsBaseLocation" resultMap="WmsBaseLocationResult">
select location_id, warehouse_id, location_code, loc_row, layer_num, loc_column, active_flag,
material_type_id, qty_limit, instock_flag, outstock_flag, location_status,
batch_mix, x_coordinate, y_coordinate, z_coordinate from wms_base_location wbl
<where>
and not exists (select 1 from wms_raw_stock wrs where wrs.location_code = wbl.location_code and wrs.total_amount>0 )
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="locRow != null "> and loc_row = #{locRow}</if>
<if test="layerNum != null "> and layer_num = #{layerNum}</if>
<if test="locColumn != null "> and loc_column = #{locColumn}</if>
<if test="activeFlag != null and activeFlag != ''"> and active_flag = #{activeFlag}</if>
<if test="materialTypeId != null "> and material_type_id = #{materialTypeId}</if>
<if test="qtyLimit != null "> and qty_limit = #{qtyLimit}</if>
<if test="instockFlag != null and instockFlag != ''"> and instock_flag = #{instockFlag}</if>
<if test="outstockFlag != null and outstockFlag != ''"> and outstock_flag = #{outstockFlag}</if>
<if test="locationStatus != null and locationStatus != ''"> and location_status = #{locationStatus}</if>
<if test="batchMix != null and batchMix != ''"> and batch_mix = #{batchMix}</if>
<if test="xCoordinate != null "> and x_coordinate = #{xCoordinate}</if>
<if test="yCoordinate != null "> and y_coordinate = #{yCoordinate}</if>
<if test="zCoordinate != null "> and z_coordinate = #{zCoordinate}</if>
<if test="shelfOrder != null and shelfOrder != ''"> and shelf_order = #{shelfOrder}</if>
<if test="checkOrder != null and checkOrder != ''"> and check_order = #{checkOrder}</if>
<if test="pickOrder != null and pickOrder != ''"> and pick_order = #{pickOrder}</if>
<if test="pickFlag != null and pickFlag != ''"> and pick_flag = #{pickFlag}</if>
<if test="isOpenKnFlag != null and isOpenKnFlag != ''"> and is_open_kn_flag = #{isOpenKnFlag}</if>
<if test="locationScrapType != null and locationScrapType != ''"> and location_scrap_type = #{locationScrapType}</if>
<if test="locationAttr != null and locationAttr != ''"> and location_attr = #{locationAttr}</if>
<if test="turnDemand != null and turnDemand != ''"> and turn_demand = #{turnDemand}</if>
<if test="checkCode != null and checkCode != ''"> and check_code = #{checkCode}</if>
<if test="workArea != null and workArea != ''"> and work_area = #{workArea}</if>
<if test="volumeLimit != null "> and volume_limit = #{volumeLimit}</if>
<if test="weightLimit != null "> and weight_limit = #{weightLimit}</if>
<if test="boxLimit != null "> and box_limit = #{boxLimit}</if>
<if test="palletLimit != null "> and pallet_limit = #{palletLimit}</if>
<if test="length != null "> and length = #{length}</if>
<if test="width != null "> and width = #{width}</if>
<if test="height != null "> and height = #{height}</if>
<if test="xPixels != null "> and x_pixels = #{xPixels}</if>
<if test="yPixels != null "> and y_pixels = #{yPixels}</if>
<if test="zPixels != null "> and z_pixels = #{zPixels}</if>
<if test="bord != null and bord != ''"> and bord = #{bord}</if>
<if test="productMix != null and productMix != ''"> and product_mix = #{productMix}</if>
</where>
</select>
</mapper>

@ -1,9 +1,9 @@
<?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">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsBaseWarehouseMapper">
<resultMap type="WmsBaseWarehouse" id="WmsBaseWarehouseResult">
<result property="warehouseId" column="warehouse_id" />
<result property="warehouseInstockType" column="warehouse_instock_type" />
@ -28,13 +28,64 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="lineFlag" column="line_flag" />
</resultMap>
<resultMap id="WmsBaseWarehouseWmsBaseLocationResult" type="WmsBaseWarehouse" extends="WmsBaseWarehouseResult">
<collection property="wmsBaseLocationList" notNullColumn="sub_location_id" javaType="java.util.List" resultMap="WmsBaseLocationResult" />
</resultMap>
<resultMap type="WmsBaseLocation" id="WmsBaseLocationResult">
<result property="locationId" column="sub_location_id" />
<result property="warehouseId" column="sub_warehouse_id" />
<result property="locationCode" column="sub_location_code" />
<result property="locRow" column="sub_loc_row" />
<result property="layerNum" column="sub_layer_num" />
<result property="locColumn" column="sub_loc_column" />
<result property="activeFlag" column="sub_active_flag" />
<result property="materialTypeId" column="sub_material_type_id" />
<result property="qtyLimit" column="sub_qty_limit" />
<result property="instockFlag" column="sub_instock_flag" />
<result property="outstockFlag" column="sub_outstock_flag" />
<result property="locationStatus" column="sub_location_status" />
<result property="batchMix" column="sub_batch_mix" />
<result property="xCoordinate" column="sub_x_coordinate" />
<result property="yCoordinate" column="sub_y_coordinate" />
<result property="zCoordinate" column="sub_z_coordinate" />
<result property="createBy" column="sub_create_by" />
<result property="createTime" column="sub_create_time" />
<result property="updateBy" column="sub_update_by" />
<result property="updateTime" column="sub_update_time" />
<result property="remark" column="sub_remark" />
<result property="delFlag" column="sub_del_flag" />
<result property="shelfOrder" column="sub_shelf_order" />
<result property="checkOrder" column="sub_check_order" />
<result property="pickOrder" column="sub_pick_order" />
<result property="pickFlag" column="sub_pick_flag" />
<result property="isOpenKnFlag" column="sub_is_open_kn_flag" />
<result property="locationScrapType" column="sub_location_scrap_type" />
<result property="locationAttr" column="sub_location_attr" />
<result property="turnDemand" column="sub_turn_demand" />
<result property="checkCode" column="sub_check_code" />
<result property="workArea" column="sub_work_area" />
<result property="volumeLimit" column="sub_volume_limit" />
<result property="weightLimit" column="sub_weight_limit" />
<result property="boxLimit" column="sub_box_limit" />
<result property="palletLimit" column="sub_pallet_limit" />
<result property="length" column="sub_length" />
<result property="width" column="sub_width" />
<result property="height" column="sub_height" />
<result property="xPixels" column="sub_x_pixels" />
<result property="yPixels" column="sub_y_pixels" />
<result property="zPixels" column="sub_z_pixels" />
<result property="bord" column="sub_bord" />
<result property="productMix" column="sub_product_mix" />
</resultMap>
<sql id="selectWmsBaseWarehouseVo">
select warehouse_id, warehouse_instock_type, warehouse_type, warehouse_code, warehouse_name, warehouse_category_id, post_id, multi_row_type, workbin_flag, warehouse_location, active_flag, remark, create_by, create_time, update_by, update_time, del_flag, factory_id, data_source, schame, line_flag from wms_base_warehouse
</sql>
<select id="selectWmsBaseWarehouseList" parameterType="WmsBaseWarehouse" resultMap="WmsBaseWarehouseResult">
<include refid="selectWmsBaseWarehouseVo"/>
<where>
<where>
<if test="warehouseInstockType != null and warehouseInstockType != ''"> and warehouse_instock_type = #{warehouseInstockType}</if>
<if test="warehouseType != null and warehouseType != ''"> and warehouse_type = #{warehouseType}</if>
<if test="warehouseCode != null and warehouseCode != ''"> and warehouse_code = #{warehouseCode}</if>
@ -51,12 +102,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="lineFlag != null and lineFlag != ''"> and line_flag = #{lineFlag}</if>
</where>
</select>
<select id="selectWmsBaseWarehouseByWarehouseId" parameterType="Long" resultMap="WmsBaseWarehouseResult">
<include refid="selectWmsBaseWarehouseVo"/>
where warehouse_id = #{warehouseId}
<select id="selectWmsBaseWarehouseByWarehouseId" parameterType="Long" resultMap="WmsBaseWarehouseWmsBaseLocationResult">
select a.warehouse_id, a.warehouse_instock_type, a.warehouse_type, a.warehouse_code, a.warehouse_name, a.warehouse_category_id, a.post_id, a.multi_row_type, a.workbin_flag, a.warehouse_location, a.active_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.del_flag, a.factory_id, a.data_source, a.schame, a.line_flag,
b.location_id as sub_location_id, b.warehouse_id as sub_warehouse_id, b.location_code as sub_location_code, b.loc_row as sub_loc_row, b.layer_num as sub_layer_num, b.loc_column as sub_loc_column, b.active_flag as sub_active_flag, b.material_type_id as sub_material_type_id, b.qty_limit as sub_qty_limit, b.instock_flag as sub_instock_flag, b.outstock_flag as sub_outstock_flag, b.location_status as sub_location_status, b.batch_mix as sub_batch_mix, b.x_coordinate as sub_x_coordinate, b.y_coordinate as sub_y_coordinate, b.z_coordinate as sub_z_coordinate, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time, b.remark as sub_remark, b.del_flag as sub_del_flag, b.shelf_order as sub_shelf_order, b.check_order as sub_check_order, b.pick_order as sub_pick_order, b.pick_flag as sub_pick_flag, b.is_open_kn_flag as sub_is_open_kn_flag, b.location_scrap_type as sub_location_scrap_type, b.location_attr as sub_location_attr, b.turn_demand as sub_turn_demand, b.check_code as sub_check_code, b.work_area as sub_work_area, b.volume_limit as sub_volume_limit, b.weight_limit as sub_weight_limit, b.box_limit as sub_box_limit, b.pallet_limit as sub_pallet_limit, b.length as sub_length, b.width as sub_width, b.height as sub_height, b.x_pixels as sub_x_pixels, b.y_pixels as sub_y_pixels, b.z_pixels as sub_z_pixels, b.bord as sub_bord, b.product_mix as sub_product_mix
from wms_base_warehouse a
left join wms_base_location b on b.warehouse_id = a.warehouse_id
where a.warehouse_id = #{warehouseId}
</select>
<insert id="insertWmsBaseWarehouse" parameterType="WmsBaseWarehouse" useGeneratedKeys="true" keyProperty="warehouseId">
insert into wms_base_warehouse
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -80,7 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="dataSource != null">data_source,</if>
<if test="schame != null">schame,</if>
<if test="lineFlag != null">line_flag,</if>
</trim>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="warehouseInstockType != null and warehouseInstockType != ''">#{warehouseInstockType},</if>
<if test="warehouseType != null and warehouseType != ''">#{warehouseType},</if>
@ -102,7 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="dataSource != null">#{dataSource},</if>
<if test="schame != null">#{schame},</if>
<if test="lineFlag != null">#{lineFlag},</if>
</trim>
</trim>
</insert>
<update id="updateWmsBaseWarehouse" parameterType="WmsBaseWarehouse">
@ -137,9 +191,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteWmsBaseWarehouseByWarehouseIds" parameterType="String">
delete from wms_base_warehouse where warehouse_id in
delete from wms_base_warehouse where warehouse_id in
<foreach item="warehouseId" collection="array" open="(" separator="," close=")">
#{warehouseId}
</foreach>
</delete>
</mapper>
<delete id="deleteWmsBaseLocationByWarehouseIds" parameterType="String">
delete from wms_base_location where warehouse_id in
<foreach item="warehouseId" collection="array" open="(" separator="," close=")">
#{warehouseId}
</foreach>
</delete>
<delete id="deleteWmsBaseLocationByWarehouseId" parameterType="Long">
delete from wms_base_location where warehouse_id = #{warehouseId}
</delete>
<insert id="batchWmsBaseLocation">
insert into wms_base_location( location_id, warehouse_id, location_code, loc_row, layer_num, loc_column, active_flag, material_type_id, qty_limit, instock_flag, outstock_flag, location_status, batch_mix, x_coordinate, y_coordinate, z_coordinate, create_by, create_time, update_by, update_time, remark, del_flag, shelf_order, check_order, pick_order, pick_flag, is_open_kn_flag, location_scrap_type, location_attr, turn_demand, check_code, work_area, volume_limit, weight_limit, box_limit, pallet_limit, length, width, height, x_pixels, y_pixels, z_pixels, bord, product_mix) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.locationId}, #{item.warehouseId}, #{item.locationCode}, #{item.locRow}, #{item.layerNum}, #{item.locColumn}, #{item.activeFlag}, #{item.materialTypeId}, #{item.qtyLimit}, #{item.instockFlag}, #{item.outstockFlag}, #{item.locationStatus}, #{item.batchMix}, #{item.xCoordinate}, #{item.yCoordinate}, #{item.zCoordinate}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark}, #{item.delFlag}, #{item.shelfOrder}, #{item.checkOrder}, #{item.pickOrder}, #{item.pickFlag}, #{item.isOpenKnFlag}, #{item.locationScrapType}, #{item.locationAttr}, #{item.turnDemand}, #{item.checkCode}, #{item.workArea}, #{item.volumeLimit}, #{item.weightLimit}, #{item.boxLimit}, #{item.palletLimit}, #{item.length}, #{item.width}, #{item.height}, #{item.xPixels}, #{item.yPixels}, #{item.zPixels}, #{item.bord}, #{item.productMix})
</foreach>
</insert>
</mapper>

@ -0,0 +1,120 @@
<?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.WmsProductInstockDetailMapper">
<resultMap type="WmsProductInstockDetail" id="WmsProductInstockDetailResult">
<result property="productInstockDetailId" column="product_instock_detail_id" />
<result property="productInstockId" column="product_instock_id" />
<result property="locationCode" column="location_code" />
<result property="productId" column="product_id" />
<result property="productBarcode" column="product_barcode" />
<result property="productBatch" column="product_batch" />
<result property="executeStatus" column="execute_status" />
<result property="erpStatus" column="erp_status" />
<result property="planAmount" column="plan_amount" />
<result property="instockAmount" column="instock_amount" />
<result property="instockBy" column="instock_by" />
<result property="instockDate" column="instock_date" />
<result property="instockWay" column="instock_way" />
<result property="updateBy" column="update_by" />
<result property="updateDate" column="update_date" />
</resultMap>
<sql id="selectWmsProductInstockDetailVo">
select product_instock_detail_id, product_instock_id, location_code, product_id, product_barcode, product_batch, execute_status, erp_status, plan_amount, instock_amount, instock_by, instock_date, instock_way, update_by, update_date from wms_product_instock_detail
</sql>
<select id="selectWmsProductInstockDetailList" parameterType="WmsProductInstockDetail" resultMap="WmsProductInstockDetailResult">
<include refid="selectWmsProductInstockDetailVo"/>
<where>
<if test="productInstockId != null "> and product_instock_id = #{productInstockId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="productBarcode != null and productBarcode != ''"> and product_barcode = #{productBarcode}</if>
<if test="productBatch != null and productBatch != ''"> and product_batch = #{productBatch}</if>
<if test="executeStatus != null and executeStatus != ''"> and execute_status = #{executeStatus}</if>
<if test="erpStatus != null and erpStatus != ''"> and erp_status = #{erpStatus}</if>
<if test="planAmount != null "> and plan_amount = #{planAmount}</if>
<if test="instockAmount != null "> and instock_amount = #{instockAmount}</if>
<if test="instockBy != null and instockBy != ''"> and instock_by = #{instockBy}</if>
<if test="instockDate != null "> and instock_date = #{instockDate}</if>
<if test="instockWay != null and instockWay != ''"> and instock_way = #{instockWay}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
</where>
</select>
<select id="selectWmsProductInstockDetailByProductInstockDetailId" parameterType="Long" resultMap="WmsProductInstockDetailResult">
<include refid="selectWmsProductInstockDetailVo"/>
where product_instock_detail_id = #{productInstockDetailId}
</select>
<insert id="insertWmsProductInstockDetail" parameterType="WmsProductInstockDetail" useGeneratedKeys="true" keyProperty="productInstockDetailId">
insert into wms_product_instock_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="productInstockId != null">product_instock_id,</if>
<if test="locationCode != null and locationCode != ''">location_code,</if>
<if test="productId != null">product_id,</if>
<if test="productBarcode != null and productBarcode != ''">product_barcode,</if>
<if test="productBatch != null">product_batch,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="erpStatus != null">erp_status,</if>
<if test="planAmount != null">plan_amount,</if>
<if test="instockAmount != null">instock_amount,</if>
<if test="instockBy != null">instock_by,</if>
<if test="instockDate != null">instock_date,</if>
<if test="instockWay != null and instockWay != ''">instock_way,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateDate != null">update_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="productInstockId != null">#{productInstockId},</if>
<if test="locationCode != null and locationCode != ''">#{locationCode},</if>
<if test="productId != null">#{productId},</if>
<if test="productBarcode != null and productBarcode != ''">#{productBarcode},</if>
<if test="productBatch != null">#{productBatch},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="erpStatus != null">#{erpStatus},</if>
<if test="planAmount != null">#{planAmount},</if>
<if test="instockAmount != null">#{instockAmount},</if>
<if test="instockBy != null">#{instockBy},</if>
<if test="instockDate != null">#{instockDate},</if>
<if test="instockWay != null and instockWay != ''">#{instockWay},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateDate != null">#{updateDate},</if>
</trim>
</insert>
<update id="updateWmsProductInstockDetail" parameterType="WmsProductInstockDetail">
update wms_product_instock_detail
<trim prefix="SET" suffixOverrides=",">
<if test="productInstockId != null">product_instock_id = #{productInstockId},</if>
<if test="locationCode != null and locationCode != ''">location_code = #{locationCode},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="productBarcode != null and productBarcode != ''">product_barcode = #{productBarcode},</if>
<if test="productBatch != null">product_batch = #{productBatch},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="erpStatus != null">erp_status = #{erpStatus},</if>
<if test="planAmount != null">plan_amount = #{planAmount},</if>
<if test="instockAmount != null">instock_amount = #{instockAmount},</if>
<if test="instockBy != null">instock_by = #{instockBy},</if>
<if test="instockDate != null">instock_date = #{instockDate},</if>
<if test="instockWay != null and instockWay != ''">instock_way = #{instockWay},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateDate != null">update_date = #{updateDate},</if>
</trim>
where product_instock_detail_id = #{productInstockDetailId}
</update>
<delete id="deleteWmsProductInstockDetailByProductInstockDetailId" parameterType="Long">
delete from wms_product_instock_detail where product_instock_detail_id = #{productInstockDetailId}
</delete>
<delete id="deleteWmsProductInstockDetailByProductInstockDetailIds" parameterType="String">
delete from wms_product_instock_detail where product_instock_detail_id in
<foreach item="productInstockDetailId" collection="array" open="(" separator="," close=")">
#{productInstockDetailId}
</foreach>
</delete>
</mapper>

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsProductInstockMapper">
<resultMap type="WmsProductInstock" id="WmsProductInstockResult">
<result property="productInstockId" column="product_instock_id" />
<result property="taskCode" column="task_code" />
@ -11,8 +11,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="locationCode" column="location_code" />
<result property="productType" column="product_type" />
<result property="operationType" column="operation_type" />
<result property="planId" column="plan_id" />
<result property="planDetailId" column="plan_detail_id" />
<result property="planCode" column="plan_code" />
<result property="planDetailCode" column="plan_detail_code" />
<result property="instockType" column="instock_type" />
<result property="applyReason" column="apply_reason" />
<result property="auditReason" column="audit_reason" />
@ -37,8 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="productInstockId" column="sub_product_instock_id" />
<result property="locationCode" column="sub_location_code" />
<result property="productId" column="sub_product_id" />
<result property="productBarcode" column="sub_product_barcode" />
<result property="productBatch" column="sub_product_batch" />
<result property="executeStatus" column="sub_execute_status" />
<result property="erpStatus" column="sub_erp_status" />
<result property="planAmount" column="sub_plan_amount" />
<result property="instockAmount" column="sub_instock_amount" />
<result property="instockBy" column="sub_instock_by" />
<result property="instockDate" column="sub_instock_date" />
@ -48,19 +51,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWmsProductInstockVo">
select product_instock_id, task_code, warehouse_id, location_code, product_type, operation_type, plan_id, plan_detail_id, 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_product_instock
select product_instock_id, task_code, warehouse_id, location_code, product_type, operation_type, plan_code, plan_detail_code, 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_product_instock
</sql>
<select id="selectWmsProductInstockList" parameterType="WmsProductInstock" resultMap="WmsProductInstockResult">
<include refid="selectWmsProductInstockVo"/>
<where>
<where>
<if test="taskCode != null and taskCode != ''"> and task_code = #{taskCode}</if>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="productType != null and productType != ''"> and product_type = #{productType}</if>
<if test="operationType != null and operationType != ''"> and operation_type = #{operationType}</if>
<if test="planId != null "> and plan_id = #{planId}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
<if test="planCode != null "> and plan_code = #{planCode}</if>
<if test="planDetailCode != null "> and plan_detail_code = #{planDetailCode}</if>
<if test="instockType != null and instockType != ''"> and instock_type = #{instockType}</if>
<if test="applyReason != null and applyReason != ''"> and apply_reason = #{applyReason}</if>
<if test="auditReason != null and auditReason != ''"> and audit_reason = #{auditReason}</if>
@ -75,15 +78,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="endTime != null "> and end_time = #{endTime}</if>
</where>
</select>
<select id="selectWmsProductInstockByProductInstockId" parameterType="Long" resultMap="WmsProductInstockWmsProductInstockDetailResult">
select a.product_instock_id, a.task_code, a.warehouse_id, a.location_code, a.product_type, a.operation_type, a.plan_id, a.plan_detail_id, 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.product_instock_detail_id as sub_product_instock_detail_id, b.product_instock_id as sub_product_instock_id, b.location_code as sub_location_code, b.product_id as sub_product_id, b.execute_status as sub_execute_status, b.erp_status as sub_erp_status, b.instock_amount as sub_instock_amount, b.instock_by as sub_instock_by, b.instock_date as sub_instock_date, b.instock_way as sub_instock_way, b.update_by as sub_update_by, b.update_date as sub_update_date
select a.product_instock_id, a.task_code, a.warehouse_id, a.location_code, a.product_type, a.operation_type, a.plan_code, a.plan_detail_code, 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.product_instock_detail_id as sub_product_instock_detail_id, b.product_instock_id as sub_product_instock_id, b.location_code as sub_location_code, b.product_id as sub_product_id, b.product_barcode as sub_product_barcode, b.product_batch as sub_product_batch, b.execute_status as sub_execute_status, b.erp_status as sub_erp_status, b.plan_amount as sub_plan_amount, b.instock_amount as sub_instock_amount, b.instock_by as sub_instock_by, b.instock_date as sub_instock_date, b.instock_way as sub_instock_way, b.update_by as sub_update_by, b.update_date as sub_update_date
from wms_product_instock a
left join wms_product_instock_detail b on b.product_instock_id = a.product_instock_id
where a.product_instock_id = #{productInstockId}
</select>
<insert id="insertWmsProductInstock" parameterType="WmsProductInstock" useGeneratedKeys="true" keyProperty="productInstockId">
insert into wms_product_instock
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -92,13 +95,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="locationCode != null">location_code,</if>
<if test="productType != null and productType != ''">product_type,</if>
<if test="operationType != null and operationType != ''">operation_type,</if>
<if test="planId != null">plan_id,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="planCode != null">plan_code,</if>
<if test="planDetailCode != null">plan_detail_code,</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="auditStatus != null and auditStatus != ''">audit_status,</if>
<if test="executeStatus != null and executeStatus != ''">execute_status,</if>
<if test="applyBy != null">apply_by,</if>
<if test="applyDate != null">apply_date,</if>
<if test="auditBy != null">audit_by,</if>
@ -114,13 +117,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="locationCode != null">#{locationCode},</if>
<if test="productType != null and productType != ''">#{productType},</if>
<if test="operationType != null and operationType != ''">#{operationType},</if>
<if test="planId != null">#{planId},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="planCode != null">#{planCode},</if>
<if test="planDetailCode != null">#{planDetailCode},</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="auditStatus != null and auditStatus != ''">#{auditStatus},</if>
<if test="executeStatus != null and executeStatus != ''">#{executeStatus},</if>
<if test="applyBy != null">#{applyBy},</if>
<if test="applyDate != null">#{applyDate},</if>
<if test="auditBy != null">#{auditBy},</if>
@ -140,13 +143,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="locationCode != null">location_code = #{locationCode},</if>
<if test="productType != null and productType != ''">product_type = #{productType},</if>
<if test="operationType != null and operationType != ''">operation_type = #{operationType},</if>
<if test="planId != null">plan_id = #{planId},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="planCode != null">plan_code = #{planCode},</if>
<if test="planDetailCode != null">plan_detail_code = #{planDetailCode},</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="auditStatus != null and auditStatus != ''">audit_status = #{auditStatus},</if>
<if test="executeStatus != null and executeStatus != ''">execute_status = #{executeStatus},</if>
<if test="applyBy != null">apply_by = #{applyBy},</if>
<if test="applyDate != null">apply_date = #{applyDate},</if>
<if test="auditBy != null">audit_by = #{auditBy},</if>
@ -164,14 +167,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteWmsProductInstockByProductInstockIds" parameterType="String">
delete from wms_product_instock where product_instock_id in
delete from wms_product_instock where product_instock_id in
<foreach item="productInstockId" collection="array" open="(" separator="," close=")">
#{productInstockId}
</foreach>
</delete>
<delete id="deleteWmsProductInstockDetailByProductInstockIds" parameterType="String">
delete from wms_product_instock_detail where product_instock_id in
delete from wms_product_instock_detail where product_instock_id in
<foreach item="productInstockId" collection="array" open="(" separator="," close=")">
#{productInstockId}
</foreach>
@ -182,9 +185,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<insert id="batchWmsProductInstockDetail">
insert into wms_product_instock_detail( product_instock_detail_id, product_instock_id, location_code, product_id, execute_status, erp_status, instock_amount, instock_by, instock_date, instock_way, update_by, update_date) values
insert into wms_product_instock_detail( product_instock_detail_id, product_instock_id, location_code, product_id, product_barcode, product_batch, execute_status, erp_status, plan_amount, instock_amount, instock_by, instock_date, instock_way, update_by, update_date) values
<foreach item="item" index="index" collection="list" separator=",">
( #{item.productInstockDetailId}, #{item.productInstockId}, #{item.locationCode}, #{item.productId}, #{item.executeStatus}, #{item.erpStatus}, #{item.instockAmount}, #{item.instockBy}, #{item.instockDate}, #{item.instockWay}, #{item.updateBy}, #{item.updateDate})
( #{item.productInstockDetailId}, #{item.productInstockId}, #{item.locationCode}, #{item.productId}, #{item.productBarcode}, #{item.productBatch}, #{item.executeStatus}, #{item.erpStatus}, #{item.planAmount}, #{item.instockAmount}, #{item.instockBy}, #{item.instockDate}, #{item.instockWay}, #{item.updateBy}, #{item.updateDate})
</foreach>
</insert>
</mapper>
</mapper>

@ -3,16 +3,17 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsProductOutstockMapper">
<resultMap type="WmsProductOutstock" id="WmsProductOutstockResult">
<result property="productOutstockId" column="product_outstock_id" />
<result property="taskCode" column="task_code" />
<result property="warehouseId" column="warehouse_id" />
<result property="locationCode" column="location_code" />
<result property="productType" column="product_type" />
<result property="operationType" column="operation_type" />
<result property="outstockType" column="outstock_type" />
<result property="planId" column="plan_id" />
<result property="planDetailId" column="plan_detail_id" />
<result property="planCode" column="plan_code" />
<result property="planDetailCode" column="plan_detail_code" />
<result property="applyReason" column="apply_reason" />
<result property="auditReason" column="audit_reason" />
<result property="auditStatus" column="audit_status" />
@ -49,19 +50,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWmsProductOutstockVo">
select product_outstock_id, task_code, warehouse_id, location_code, operation_type, outstock_type, plan_id, plan_detail_id, 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_product_outstock
select product_outstock_id, task_code, warehouse_id, location_code, product_type,operation_type, outstock_type, plan_code, plan_detail_code, 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_product_outstock
</sql>
<select id="selectWmsProductOutstockList" parameterType="WmsProductOutstock" resultMap="WmsProductOutstockResult">
<include refid="selectWmsProductOutstockVo"/>
<where>
<where>
<if test="taskCode != null and taskCode != ''"> and task_code = #{taskCode}</if>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="productType != null and productType != ''"> and product_type = #{productType}</if>
<if test="operationType != null and operationType != ''"> and operation_type = #{operationType}</if>
<if test="outstockType != null and outstockType != ''"> and outstock_type = #{outstockType}</if>
<if test="planId != null "> and plan_id = #{planId}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
<if test="planCode != null "> and plan_code = #{planCode}</if>
<if test="planDetailCode != null "> and plan_detail_code = #{planDetailCode}</if>
<if test="applyReason != null and applyReason != ''"> and apply_reason = #{applyReason}</if>
<if test="auditReason != null and auditReason != ''"> and audit_reason = #{auditReason}</if>
<if test="auditStatus != null and auditStatus != ''"> and audit_status = #{auditStatus}</if>
@ -75,25 +77,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="endTime != null "> and end_time = #{endTime}</if>
</where>
</select>
<select id="selectWmsProductOutstockByProductOutstockId" parameterType="Long" resultMap="WmsProductOutstockWmsProductOutstockDetailResult">
select a.product_outstock_id, a.task_code, a.warehouse_id, a.location_code, a.operation_type, a.outstock_type, a.plan_id, a.plan_detail_id, 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,
select a.product_outstock_id, a.task_code, a.warehouse_id, a.location_code, a.product_type, a.operation_type, a.outstock_type, a.plan_code, a.plan_detail_code, 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.product_outstock_detail_id as sub_product_outstock_detail_id, b.product_outstock_id as sub_product_outstock_id, b.warehouse_id as sub_warehouse_id, b.location_code as sub_location_code, b.sales_order as sub_sales_order, b.project_no as sub_project_no, b.product_id as sub_product_id, b.outstock_amount as sub_outstock_amount, b.execute_status as sub_execute_status, b.erp_status as sub_erp_status, b.update_by as sub_update_by, b.update_date as sub_update_date, b.begin_time as sub_begin_time, b.end_time as sub_end_time
from wms_product_outstock a
left join wms_product_outstock_detail b on b.product_outstock_id = a.product_outstock_id
where a.product_outstock_id = #{productOutstockId}
</select>
<insert id="insertWmsProductOutstock" parameterType="WmsProductOutstock" useGeneratedKeys="true" keyProperty="productOutstockId">
insert into wms_product_outstock
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="taskCode != null">task_code,</if>
<if test="warehouseId != null">warehouse_id,</if>
<if test="locationCode != null">location_code,</if>
<if test="productType != null and productType != ''">product_type,</if>
<if test="operationType != null and operationType != ''">operation_type,</if>
<if test="outstockType != null and outstockType != ''">outstock_type,</if>
<if test="planId != null">plan_id,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="planCode != null">plan_code,</if>
<if test="planDetailCode != null">plan_detail_code,</if>
<if test="applyReason != null">apply_reason,</if>
<if test="auditReason != null">audit_reason,</if>
<if test="auditStatus != null">audit_status,</if>
@ -111,10 +114,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskCode != null">#{taskCode},</if>
<if test="warehouseId != null">#{warehouseId},</if>
<if test="locationCode != null">#{locationCode},</if>
<if test="productType != null and productType != ''">#{productType},</if>
<if test="operationType != null and operationType != ''">#{operationType},</if>
<if test="outstockType != null and outstockType != ''">#{outstockType},</if>
<if test="planId != null">#{planId},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="planCode != null">#{planCode},</if>
<if test="planDetailCode != null">#{planDetailCode},</if>
<if test="applyReason != null">#{applyReason},</if>
<if test="auditReason != null">#{auditReason},</if>
<if test="auditStatus != null">#{auditStatus},</if>
@ -136,10 +140,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskCode != null">task_code = #{taskCode},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="locationCode != null">location_code = #{locationCode},</if>
<if test="productType != null and productType != ''">product_type = #{productType},</if>
<if test="operationType != null and operationType != ''">operation_type = #{operationType},</if>
<if test="outstockType != null and outstockType != ''">outstock_type = #{outstockType},</if>
<if test="planId != null">plan_id = #{planId},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="planCode != null">plan_code = #{planCode},</if>
<if test="planDetailCode != null">plan_detail_code = #{planDetailCode},</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>
@ -161,14 +166,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteWmsProductOutstockByProductOutstockIds" parameterType="String">
delete from wms_product_outstock where product_outstock_id in
delete from wms_product_outstock where product_outstock_id in
<foreach item="productOutstockId" collection="array" open="(" separator="," close=")">
#{productOutstockId}
</foreach>
</delete>
<delete id="deleteWmsProductOutstockDetailByProductOutstockIds" parameterType="String">
delete from wms_product_outstock_detail where product_outstock_id in
delete from wms_product_outstock_detail where product_outstock_id in
<foreach item="productOutstockId" collection="array" open="(" separator="," close=")">
#{productOutstockId}
</foreach>
@ -184,4 +189,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
( #{item.productOutstockDetailId}, #{item.productOutstockId}, #{item.warehouseId}, #{item.locationCode}, #{item.salesOrder}, #{item.projectNo}, #{item.productId}, #{item.outstockAmount}, #{item.executeStatus}, #{item.erpStatus}, #{item.updateBy}, #{item.updateDate}, #{item.beginTime}, #{item.endTime})
</foreach>
</insert>
</mapper>
</mapper>

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.wms.mapper.WmsProductStockMapper">
<resultMap type="WmsProductStock" id="WmsProductStockResult">
<result property="productStockId" column="product_stock_id" />
<result property="warehouseId" column="warehouse_id" />
@ -12,8 +12,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="productBatch" column="product_batch" />
<result property="qualityStatus" column="quality_status" />
<result property="productId" column="product_id" />
<result property="planId" column="plan_id" />
<result property="planDetailId" column="plan_detail_id" />
<result property="planCode" column="plan_code" />
<result property="planDetailCode" column="plan_detail_code" />
<result property="totalAmount" column="total_amount" />
<result property="frozenAmount" column="frozen_amount" />
<result property="occupyAmount" column="occupy_amount" />
@ -26,20 +26,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWmsProductStockVo">
select product_stock_id, warehouse_id, location_code, stock_type, product_batch, quality_status, product_id, plan_id, plan_detail_id, total_amount, frozen_amount, occupy_amount, create_by, create_date, update_by, update_date, active_flag, instock_date from wms_product_stock
select product_stock_id, warehouse_id, location_code, stock_type, product_batch, quality_status, product_id, plan_code, plan_detail_code, total_amount, frozen_amount, occupy_amount, create_by, create_date, update_by, update_date, active_flag, instock_date from wms_product_stock
</sql>
<select id="selectWmsProductStockList" parameterType="WmsProductStock" resultMap="WmsProductStockResult">
<include refid="selectWmsProductStockVo"/>
<where>
<where>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="stockType != null and stockType != ''"> and stock_type = #{stockType}</if>
<if test="productBatch != null and productBatch != ''"> and product_batch = #{productBatch}</if>
<if test="qualityStatus != null and qualityStatus != ''"> and quality_status = #{qualityStatus}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="planId != null "> and plan_id = #{planId}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
<if test="planCode != null "> and plan_code = #{planCode}</if>
<if test="planDetailCode != null "> and plan_detail_code = #{planDetailCode}</if>
<if test="totalAmount != null "> and total_amount = #{totalAmount}</if>
<if test="frozenAmount != null "> and frozen_amount = #{frozenAmount}</if>
<if test="occupyAmount != null "> and occupy_amount = #{occupyAmount}</if>
@ -49,12 +49,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="instockDate != null "> and instock_date = #{instockDate}</if>
</where>
</select>
<select id="selectWmsProductStockByProductStockId" parameterType="Long" resultMap="WmsProductStockResult">
<include refid="selectWmsProductStockVo"/>
where product_stock_id = #{productStockId}
</select>
<insert id="insertWmsProductStock" parameterType="WmsProductStock" useGeneratedKeys="true" keyProperty="productStockId">
insert into wms_product_stock
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -64,8 +64,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productBatch != null">product_batch,</if>
<if test="qualityStatus != null and qualityStatus != ''">quality_status,</if>
<if test="productId != null">product_id,</if>
<if test="planId != null">plan_id,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="planCode != null">plan_code,</if>
<if test="planDetailCode != null">plan_detail_code,</if>
<if test="totalAmount != null">total_amount,</if>
<if test="frozenAmount != null">frozen_amount,</if>
<if test="occupyAmount != null">occupy_amount,</if>
@ -83,8 +83,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productBatch != null">#{productBatch},</if>
<if test="qualityStatus != null and qualityStatus != ''">#{qualityStatus},</if>
<if test="productId != null">#{productId},</if>
<if test="planId != null">#{planId},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="planCode != null">#{planCode},</if>
<if test="planDetailCode != null">#{planDetailCode},</if>
<if test="totalAmount != null">#{totalAmount},</if>
<if test="frozenAmount != null">#{frozenAmount},</if>
<if test="occupyAmount != null">#{occupyAmount},</if>
@ -106,8 +106,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="productBatch != null">product_batch = #{productBatch},</if>
<if test="qualityStatus != null and qualityStatus != ''">quality_status = #{qualityStatus},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="planId != null">plan_id = #{planId},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="planCode != null">plan_code = #{planCode},</if>
<if test="planDetailCode != null">plan_detail_code = #{planDetailCode},</if>
<if test="totalAmount != null">total_amount = #{totalAmount},</if>
<if test="frozenAmount != null">frozen_amount = #{frozenAmount},</if>
<if test="occupyAmount != null">occupy_amount = #{occupyAmount},</if>
@ -126,9 +126,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteWmsProductStockByProductStockIds" parameterType="String">
delete from wms_product_stock where product_stock_id in
delete from wms_product_stock where product_stock_id in
<foreach item="productStockId" collection="array" open="(" separator="," close=")">
#{productStockId}
</foreach>
</delete>
</mapper>
<select id="getProductStockTotalAmount" resultType="BigDecimal" parameterType="WmsProductStock">
select sum(total_amount) from wms_product_stock
<where>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
and total_amount > 0
</where>
</select>
<select id="selectProductStockByLocationAndBatch" resultMap="WmsProductStockResult">
<include refid="selectWmsProductStockVo"/>
where location_code = #{locationCode} and product_batch = #{productBatch}
</select>
<select id="selectWmsProductStockInList" parameterType="WmsProductStock" resultMap="WmsProductStockResult">
<include refid="selectWmsProductStockVo"/>
<where>
<if test="warehouseId != null ">and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''">and location_code = #{locationCode}</if>
<if test="stockType != null and stockType != ''">and stock_type = #{stockType}</if>
<if test="productBatch != null and productBatch != ''">and product_batch = #{productBatch}</if>
<if test="qualityStatus != null and qualityStatus != ''">and quality_status = #{qualityStatus}</if>
<if test="productId != null ">and product_id = #{productId}</if>
<if test="planCode != null ">and plan_code = #{planCode}</if>
<if test="planDetailCode != null ">and plan_detail_code = #{planDetailCode}</if>
<if test="frozenAmount != null ">and frozen_amount = #{frozenAmount}</if>
<if test="occupyAmount != null ">and occupy_amount = #{occupyAmount}</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="instockDate != null ">and instock_date = #{instockDate}</if>
and totalAmoun>0
</where>
</select>
</mapper>

@ -0,0 +1,164 @@
<?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>

@ -39,6 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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" />
@ -183,62 +184,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</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, 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
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.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})
( #{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>
<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="materialId != null">material_id,</if>
<if test="instockBatch != null">instock_batch,</if>
<if test="materialProductionDate != null">material_production_Date,</if>
<if test="instockAmount != null">instock_amount,</if>
<if test="executeStatus != null">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">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="materialId != null">#{materialId},</if>
<if test="instockBatch != null">#{instockBatch},</if>
<if test="materialProductionDate != null">#{materialProductionDate},</if>
<if test="instockAmount != null">#{instockAmount},</if>
<if test="executeStatus != null">#{executeStatus},</if>
<if test="erpStatus != null">#{erpStatus},</if>
<if test="instockPerson != null">#{instockPerson},</if>
<if test="instockTime != null">#{instockTime},</if>
<if test="instockWay != null">#{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>
</mapper>

@ -10,8 +10,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="warehouseId" column="warehouse_id" />
<result property="locationCode" column="location_code" />
<result property="orderId" column="order_id" />
<result property="planId" column="plan_id" />
<result property="planDetailId" column="plan_detail_id" />
<result property="planCode" column="plan_code" />
<result property="planDetailCode" column="plan_detail_code" />
<result property="stationId" column="station_id" />
<result property="productId" column="product_id" />
<result property="operationType" column="operation_type" />
@ -60,7 +60,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_id, plan_detail_id, station_id, product_id, 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, 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">
@ -70,8 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="orderId != null "> and order_id = #{orderId}</if>
<if test="planId != null "> and plan_id = #{planId}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
<if test="planCode != null "> and plan_code = #{planCode}</if>
<if test="planDetailCode != null "> and plan_detail_code = #{planDetailCode}</if>
<if test="stationId != null "> and station_id = #{stationId}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="operationType != null and operationType != ''"> and operation_type = #{operationType}</if>
@ -91,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectWmsRawOutstockByRawOutstockId" parameterType="Long" resultMap="WmsRawOutstockWmsRawOutstockDetailResult">
select a.raw_outstock_id, a.task_code, a.warehouse_id, a.location_code, a.order_id, a.plan_id, a.plan_detail_id, a.station_id, a.product_id, a.operation_type, a.task_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,
select a.raw_outstock_id, a.task_code, a.warehouse_id, a.location_code, a.order_id, a.plan_code, a.plan_detail_code, a.station_id, a.product_id, a.operation_type, a.task_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_outstock_detail_id as sub_raw_outstock_detail_id, b.raw_outstock_id as sub_raw_outstock_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.plan_amount as sub_plan_amount, b.outstock_amount as sub_outstock_amount, b.execute_status as sub_execute_status, b.erp_status as sub_erp_status, b.outstock_person as sub_outstock_person, b.outstock_time as sub_outstock_time, b.outstock_way as sub_outstock_way, b.machine_name as sub_machine_name, b.quality_status as sub_quality_status, 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.stack_amount as sub_stack_amount
from wms_raw_outstock a
left join wms_raw_outstock_detail b on b.raw_outstock_id = a.raw_outstock_id
@ -105,8 +105,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="warehouseId != null">warehouse_id,</if>
<if test="locationCode != null">location_code,</if>
<if test="orderId != null">order_id,</if>
<if test="planId != null">plan_id,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="planCode != null">plan_code,</if>
<if test="planDetailCode != null">plan_detail_code,</if>
<if test="stationId != null">station_id,</if>
<if test="productId != null">product_id,</if>
<if test="operationType != null">operation_type,</if>
@ -129,8 +129,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="warehouseId != null">#{warehouseId},</if>
<if test="locationCode != null">#{locationCode},</if>
<if test="orderId != null">#{orderId},</if>
<if test="planId != null">#{planId},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="planCode != null">#{planCode},</if>
<if test="planDetailCode != null">#{planDetailCode},</if>
<if test="stationId != null">#{stationId},</if>
<if test="productId != null">#{productId},</if>
<if test="operationType != null">#{operationType},</if>
@ -157,8 +157,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="locationCode != null">location_code = #{locationCode},</if>
<if test="orderId != null">order_id = #{orderId},</if>
<if test="planId != null">plan_id = #{planId},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="planCode != null">plan_code = #{planCode},</if>
<if test="planDetailCode != null">plan_detail_code = #{planDetailCode},</if>
<if test="stationId != null">station_id = #{stationId},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="operationType != null">operation_type = #{operationType},</if>
@ -211,7 +211,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectWmsRawOutstockJoinList" parameterType="WmsRawOutstock" resultMap="WmsRawOutstockResult">
select wro.raw_outstock_id, wro.task_code, wro.warehouse_id, wro.location_code, wro.order_id, wro.plan_id, wro.plan_detail_id, wro.station_id,
select wro.raw_outstock_id, wro.task_code, wro.warehouse_id, wro.location_code, wro.order_id, wro.plan_code, wro.plan_detail_code, wro.station_id,
wro.product_id, wro.operation_type, wro.task_type, wro.apply_reason, wro.audit_reason, wro.audit_status, wro.execute_status, wro.apply_by, wro.apply_date,
wro.audit_by, wro.audit_date, wro.update_by, wro.update_date, wro.begin_time, wro.end_time,wbw.warehouse_name
from wms_raw_outstock wro left join wms_base_warehouse wbw on wro.warehouse_id = wbw.warehouse_id

@ -9,9 +9,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="taskCode" column="task_code" />
<result property="warehouseId" column="warehouse_id" />
<result property="locationCode" column="location_code" />
<result property="planId" column="plan_id" />
<result property="planDetailId" column="plan_detail_id" />
<result property="planCode" column="plan_code" />
<result property="planDetailCode" column="plan_detail_code" />
<result property="productId" column="product_id" />
<result property="materialId" column="material_id" />
<result property="planAmount" column="plan_amount" />
<result property="returnAmount" column="return_amount" />
<result property="operationType" column="operation_type" />
<result property="taskType" column="task_type" />
<result property="applyReason" column="apply_reason" />
@ -58,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWmsRawReturnVo">
select raw_return_id, task_code, warehouse_id, location_code, plan_id, plan_detail_id, product_id, 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_return
select raw_return_id, task_code, warehouse_id, location_code, plan_code, plan_detail_code, product_id, 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_return
</sql>
<select id="selectWmsRawReturnList" parameterType="WmsRawReturn" resultMap="WmsRawReturnResult">
@ -67,8 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskCode != null and taskCode != ''"> and task_code = #{taskCode}</if>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="planId != null "> and plan_id = #{planId}</if>
<if test="planDetailId != null "> and plan_detail_id = #{planDetailId}</if>
<if test="planCode != null "> and plan_code = #{planCode}</if>
<if test="planDetailCode != null "> and plan_detail_code = #{planDetailCode}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="operationType != null and operationType != ''"> and operation_type = #{operationType}</if>
<if test="taskType != null and taskType != ''"> and task_type = #{taskType}</if>
@ -87,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectWmsRawReturnByRawReturnId" parameterType="Long" resultMap="WmsRawReturnWmsRawReturnDetailResult">
select a.raw_return_id, a.task_code, a.warehouse_id, a.location_code, a.plan_id, a.plan_detail_id, a.product_id, a.operation_type, a.task_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,
select a.raw_return_id, a.task_code, a.warehouse_id, a.location_code, a.plan_code, a.plan_detail_code, a.product_id, a.operation_type, a.task_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,a.material_id,a.product_id,
b.raw_return_detail_id as sub_raw_return_detail_id, b.raw_return_id as sub_raw_return_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.plan_amount as sub_plan_amount, b.return_amount as sub_return_amount, b.execute_status as sub_execute_status, b.erp_status as sub_erp_status, b.return_person as sub_return_person, b.return_time as sub_return_time, b.return_way as sub_return_way, b.machine_name as sub_machine_name, b.quality_status as sub_quality_status, 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.stack_amount as sub_stack_amount
from wms_raw_return a
left join wms_raw_return_detail b on b.raw_return_id = a.raw_return_id
@ -100,9 +103,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskCode != null and taskCode != ''">task_code,</if>
<if test="warehouseId != null">warehouse_id,</if>
<if test="locationCode != null">location_code,</if>
<if test="planId != null">plan_id,</if>
<if test="planDetailId != null">plan_detail_id,</if>
<if test="planCode != null">plan_code,</if>
<if test="planDetailCode != null">plan_detail_code,</if>
<if test="productId != null">product_id,</if>
<if test="materialId != null">material_id,</if>
<if test="planAmount != null">plan_amount,</if>
<if test="operationType != null">operation_type,</if>
<if test="taskType != null and taskType != ''">task_type,</if>
<if test="applyReason != null">apply_reason,</if>
@ -122,9 +127,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskCode != null and taskCode != ''">#{taskCode},</if>
<if test="warehouseId != null">#{warehouseId},</if>
<if test="locationCode != null">#{locationCode},</if>
<if test="planId != null">#{planId},</if>
<if test="planDetailId != null">#{planDetailId},</if>
<if test="planCode != null">#{planCode},</if>
<if test="planDetailCode != null">#{planDetailCode},</if>
<if test="productId != null">#{productId},</if>
<if test="materialId != null">#{materialId},</if>
<if test="planAmount != null">#{planAmount},</if>
<if test="operationType != null">#{operationType},</if>
<if test="taskType != null and taskType != ''">#{taskType},</if>
<if test="applyReason != null">#{applyReason},</if>
@ -148,9 +155,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="taskCode != null and taskCode != ''">task_code = #{taskCode},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="locationCode != null">location_code = #{locationCode},</if>
<if test="planId != null">plan_id = #{planId},</if>
<if test="planDetailId != null">plan_detail_id = #{planDetailId},</if>
<if test="planCode != null">plan_code = #{planCode},</if>
<if test="planDetailCode != null">plan_detail_code = #{planDetailCode},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="materialId != null">material_id = #{materialId},</if>
<if test="planAmount != null">plan_amount = #{planAmount},</if>
<if test="operationType != null">operation_type = #{operationType},</if>
<if test="taskType != null and taskType != ''">task_type = #{taskType},</if>
<if test="applyReason != null">apply_reason = #{applyReason},</if>
@ -204,8 +213,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectWmsRawReturnJoinList" parameterType="WmsRawReturn" resultMap="WmsRawReturnResult">
select wrr.raw_return_id, wrr.task_code, wrr.warehouse_id, wrr.location_code, wrr.plan_id, wrr.plan_detail_id,
wrr.product_id, wrr.operation_type, wrr.task_type, wrr.apply_reason, wrr.audit_reason, wrr.audit_status,
select wrr.raw_return_id, wrr.task_code, wrr.warehouse_id, wrr.location_code, wrr.plan_code, wrr.plan_detail_code,
wrr.material_id,wrr.plan_amount,wrr.return_amount,wrr.product_id,
wrr.operation_type, wrr.task_type, wrr.apply_reason, wrr.audit_reason, wrr.audit_status,
wrr.execute_status, wrr.apply_by, wrr.apply_date, wrr.audit_by, wrr.audit_date,wrr.begin_time, wrr.end_time,
wbw.warehouse_name
from wms_raw_return wrr left join wms_base_warehouse wbw on wrr.warehouse_id = wbw.warehouse_id
@ -215,4 +225,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="selectOnlyWmsRawReturnByRawReturnId" parameterType="Long" resultMap="WmsRawReturnResult">
select wrr.raw_return_id, wrr.task_code, wrr.warehouse_id, wrr.location_code, wrr.plan_code, wrr.plan_detail_code,
wrr.material_id,wrr.plan_amount,wrr.return_amount,wrr.product_id,
wrr.operation_type, wrr.task_type, wrr.apply_reason, wrr.audit_reason, wrr.audit_status,
wrr.execute_status, wrr.apply_by, wrr.apply_date, wrr.audit_by, wrr.audit_date,wrr.begin_time, wrr.end_time,
wbw.warehouse_name
from wms_raw_return wrr left join wms_base_warehouse wbw on wrr.warehouse_id = wbw.warehouse_id
where wrr.raw_return_id = #{rawReturnId}
</select>
</mapper>

@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="instockDate" column="instock_date" />
<result property="lastOutstockTime" column="last_outstock_time" />
<result property="qualityStatus" column="quality_status" />
<result property="completeFlag" column="complete_flag" />
<result property="totalAmount" column="total_amount" />
<result property="frozenAmount" column="frozen_amount" />
<result property="occupyAmount" column="occupy_amount" />
@ -30,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectWmsRawStockVo">
select raw_stock_id, warehouse_id, location_code, stock_type, material_id, instock_batch, instock_date, last_outstock_time, quality_status, total_amount, frozen_amount, occupy_amount, supplier_id, create_by, create_date, update_by, update_date, material_group1, material_group2, material_group3, def_amount, active_flag from wms_raw_stock
select raw_stock_id, warehouse_id, location_code, stock_type, material_id, instock_batch, instock_date, last_outstock_time, quality_status, complete_flag,total_amount, frozen_amount, occupy_amount, supplier_id, create_by, create_date, update_by, update_date, material_group1, material_group2, material_group3, def_amount, active_flag from wms_raw_stock
</sql>
<select id="selectWmsRawStockList" parameterType="WmsRawStock" resultMap="WmsRawStockResult">
@ -74,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="instockDate != null">instock_date,</if>
<if test="lastOutstockTime != null">last_outstock_time,</if>
<if test="qualityStatus != null and qualityStatus != ''">quality_status,</if>
<if test="completeFlag != null and completeFlag != ''">complete_flag,</if>
<if test="totalAmount != null">total_amount,</if>
<if test="frozenAmount != null">frozen_amount,</if>
<if test="occupyAmount != null">occupy_amount,</if>
@ -97,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="instockDate != null">#{instockDate},</if>
<if test="lastOutstockTime != null">#{lastOutstockTime},</if>
<if test="qualityStatus != null and qualityStatus != ''">#{qualityStatus},</if>
<if test="completeFlag != null and completeFlag != ''">#{completeFlag},</if>
<if test="totalAmount != null">#{totalAmount},</if>
<if test="frozenAmount != null">#{frozenAmount},</if>
<if test="occupyAmount != null">#{occupyAmount},</if>
@ -124,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="instockDate != null">instock_date = #{instockDate},</if>
<if test="lastOutstockTime != null">last_outstock_time = #{lastOutstockTime},</if>
<if test="qualityStatus != null and qualityStatus != ''">quality_status = #{qualityStatus},</if>
<if test="completeFlag != null and completeFlag != ''">complete_flag = #{completeFlag},</if>
<if test="totalAmount != null">total_amount = #{totalAmount},</if>
<if test="frozenAmount != null">frozen_amount = #{frozenAmount},</if>
<if test="occupyAmount != null">occupy_amount = #{occupyAmount},</if>
@ -184,4 +188,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectWmsRawStockInList" parameterType="WmsRawStock" resultMap="WmsRawStockResult">
<include refid="selectWmsRawStockVo"/>
<where>
<if test="warehouseId != null "> and warehouse_id = #{warehouseId}</if>
<if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if>
<if test="stockType != null and stockType != ''"> and stock_type = #{stockType}</if>
<if test="materialId != null "> and material_id = #{materialId}</if>
<if test="instockBatch != null and instockBatch != ''"> and instock_batch = #{instockBatch}</if>
<if test="instockDate != null "> and instock_date = #{instockDate}</if>
<if test="lastOutstockTime != null "> and last_outstock_time = #{lastOutstockTime}</if>
<if test="qualityStatus != null and qualityStatus != ''"> and quality_status = #{qualityStatus}</if>
<if test="completeFlag != null and completeFlag != ''"> and complete_flag = #{completeFlag}</if>
<if test="frozenAmount != null "> and frozen_amount = #{frozenAmount}</if>
<if test="occupyAmount != null "> and occupy_amount = #{occupyAmount}</if>
<if test="supplierId != null "> and supplier_id = #{supplierId}</if>
<if test="createDate != null "> and create_date = #{createDate}</if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="materialGroup1 != null and materialGroup1 != ''"> and material_group1 = #{materialGroup1}</if>
<if test="materialGroup2 != null and materialGroup2 != ''"> and material_group2 = #{materialGroup2}</if>
<if test="materialGroup3 != null and materialGroup3 != ''"> and material_group3 = #{materialGroup3}</if>
<if test="defAmount != null "> and def_amount = #{defAmount}</if>
<if test="activeFlag != null and activeFlag != ''"> and active_flag = #{activeFlag}</if>
and totalAmount > 0
</where>
</select>
</mapper>

Loading…
Cancel
Save