diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/RemoteMesService.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/RemoteMesService.java index 1617511a..7fd341ab 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/RemoteMesService.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/RemoteMesService.java @@ -29,7 +29,7 @@ public interface RemoteMesService { /** * 通过物料ID列表查询物料信息列表 * - * @param materialIds 物料ID列表 + * @param mesBaseMaterialInfo * @param source 请求来源 * @return 结果 */ diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBindBarcodeController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBindBarcodeController.java new file mode 100644 index 00000000..e86e4821 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBindBarcodeController.java @@ -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 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 list = mesBindBarcodeService.selectMesBindBarcodeList(mesBindBarcode); + ExcelUtil util = new ExcelUtil(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)); + } +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBindBarcode.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBindBarcode.java new file mode 100644 index 00000000..670e94cb --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesBindBarcode.java @@ -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(); + } +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBindBarcodeMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBindBarcodeMapper.java new file mode 100644 index 00000000..6c49b1b9 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesBindBarcodeMapper.java @@ -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 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); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBindBarcodeService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBindBarcodeService.java new file mode 100644 index 00000000..1b51837f --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBindBarcodeService.java @@ -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 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); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBindBarcodeServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBindBarcodeServiceImpl.java new file mode 100644 index 00000000..6e14fc20 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBindBarcodeServiceImpl.java @@ -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 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); + } +} diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBindBarcodeMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBindBarcodeMapper.xml new file mode 100644 index 00000000..a1357c94 --- /dev/null +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBindBarcodeMapper.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into mes_bind_barcode + + 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, + + + #{printTime}, + #{printPerson}, + #{batchFlag}, + #{bindBarcodeInfo}, + #{barcodeInfo}, + #{weight}, + #{amount}, + #{machineName}, + #{projectNo}, + #{saleorderCode}, + #{planId}, + #{planDetailId}, + #{serialNumber}, + #{remark}, + #{activeFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mes_bind_barcode + + print_time = #{printTime}, + print_person = #{printPerson}, + batch_flag = #{batchFlag}, + bind_barcode_info = #{bindBarcodeInfo}, + barcode_info = #{barcodeInfo}, + weight = #{weight}, + amount = #{amount}, + machine_name = #{machineName}, + project_no = #{projectNo}, + saleorder_code = #{saleorderCode}, + plan_id = #{planId}, + plan_detail_id = #{planDetailId}, + serial_number = #{serialNumber}, + remark = #{remark}, + active_flag = #{activeFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where bind_barcode_id = #{bindBarcodeId} + + + + delete from mes_bind_barcode where bind_barcode_id = #{bindBarcodeId} + + + + delete from mes_bind_barcode where bind_barcode_id in + + #{bindBarcodeId} + + + \ No newline at end of file diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java new file mode 100644 index 00000000..aebba3ad --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java @@ -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)); + } + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java index 44bbf5f3..6b6a82d1 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java @@ -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 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 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)); + } + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductInstockController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductInstockController.java index 81a9efb8..523a35fa 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductInstockController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductInstockController.java @@ -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 list = wmsProductInstockService.selectWmsProductInstockList(wmsProductInstock); ExcelUtil util = new ExcelUtil(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) { diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java new file mode 100644 index 00000000..b894d99d --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsScadaController.java @@ -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 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)); + } + + + + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseLocation.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseLocation.java index 5cd8ae9d..3fb0a4ef 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseLocation.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseLocation.java @@ -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; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java index 496e4888..8b30a9d5 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsBaseWarehouse.java @@ -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 wmsBaseLocationList; + public void setWarehouseId(Long warehouseId) { this.warehouseId = warehouseId; @@ -222,6 +226,16 @@ public class WmsBaseWarehouse extends BaseEntity return lineFlag; } + public List getWmsBaseLocationList() + { + return wmsBaseLocationList; + } + + public void setWmsBaseLocationList(List 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(); } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstock.java index cf760b59..962494d7 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstock.java @@ -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_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; + /** + * 计划明细ID,关联pd_base_plan_detail的plan_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 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 getWmsProductInstockDetailList() - { + public List getWmsProductInstockDetailList() { return wmsProductInstockDetailList; } - public void setWmsProductInstockDetailList(List wmsProductInstockDetailList) - { + public void setWmsProductInstockDetailList(List 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(); } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstockDetail.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstockDetail.java index cfb86e42..7b083735 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstockDetail.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductInstockDetail.java @@ -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; - /** 入库方式( 0:PC入库 1:手持入库 2:AGV入库 ) */ - @Excel(name = "入库方式", readConverterExp = "0=:PC入库,1=:手持入库,2=:AGV入库") + /** 入库方式(1:人工入库 2:AGV入库 ) */ + @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()) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java index 305732aa..3071bea7 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java @@ -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_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; + /** + * 计划明细ID,关联pd_base_plan_detail的plan_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 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 getWmsProductOutstockDetailList() - { + public List getWmsProductOutstockDetailList() { return wmsProductOutstockDetailList; } - public void setWmsProductOutstockDetailList(List wmsProductOutstockDetailList) - { + public void setWmsProductOutstockDetailList(List 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(); } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductStock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductStock.java index 67ca2a59..6e11693e 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductStock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductStock.java @@ -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_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; + /** + * 计划明细ID,关联pd_base_plan_detail的plan_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()) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java index 620cee33..4c2fea01 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java @@ -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; diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java index 64f0021b..286f7b57 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java @@ -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_info的order_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_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; + /** + * 计划明细ID,关联pd_base_plan_detail的plan_detail_id + */ + @Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code") + private String planDetailCode; - /** 所属工位,关联pd_base_station_info的station_id */ + /** + * 所属工位,关联pd_base_station_info的station_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 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 getWmsRawOutstockDetailList() - { + public List getWmsRawOutstockDetailList() { return wmsRawOutstockDetailList; } - public void setWmsRawOutstockDetailList(List wmsRawOutstockDetailList) - { + public void setWmsRawOutstockDetailList(List 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(); } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java index 490e323e..b38aa597 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java @@ -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 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()) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawStock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawStock.java index a1e02474..cd1e7785 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawStock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawStock.java @@ -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; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawOutstockVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawOutstockVo.java new file mode 100644 index 00000000..647f392b --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawOutstockVo.java @@ -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: 原材料AGV出库VO + * @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; + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawReturnAssignVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawReturnAssignVo.java new file mode 100644 index 00000000..d679cfba --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawReturnAssignVo.java @@ -0,0 +1,22 @@ +package com.hw.wms.domain.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 原材料AGV返库分配库位VO + * @ClassName: WmsAgvRawReturnVo + * @Author : xins + * @Date :2023-12-28 18:32 + * @Version :1.0 + */ +@Data +public class WmsAgvRawReturnAssignVo { + + //仓库ID + @NotNull(message="仓库ID必须输入") + private Long warehouseId; + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawReturnVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawReturnVo.java new file mode 100644 index 00000000..e1100e62 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsAgvRawReturnVo.java @@ -0,0 +1,25 @@ +package com.hw.wms.domain.vo; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 原材料AGV返库VO + * @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; + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsMoveMergeVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsMoveMergeVo.java new file mode 100644 index 00000000..1b466cc6 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsMoveMergeVo.java @@ -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; + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsProductInstockVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsProductInstockVo.java new file mode 100644 index 00000000..910ac24e --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsProductInstockVo.java @@ -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; + + +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawInstockVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawInstockVo.java index d6f1dcf3..cd2423b4 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawInstockVo.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawInstockVo.java @@ -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; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawReturnConfirmVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawReturnConfirmVo.java index 3a82ac30..91257f04 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawReturnConfirmVo.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsRawReturnConfirmVo.java @@ -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 = "原材料退库数量必须输入") diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsWcsVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsWcsVo.java new file mode 100644 index 00000000..64ef2bb1 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsWcsVo.java @@ -0,0 +1,22 @@ +package com.hw.wms.domain.vo; + +import lombok.Data; + +/** + * @Description: WmsWcsVo调度vo对象 + * @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; +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsBaseLocationMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsBaseLocationMapper.java index 92cf102e..12a59c0f 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsBaseLocationMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsBaseLocationMapper.java @@ -68,4 +68,13 @@ public interface WmsBaseLocationMapper */ public WmsBaseLocation selectWmsBaseLocationByLocationCode(String locationCode); + /** + * 查询没有库存的库位列表 + * + * @param wmsBaseLocation 库位 + * @return 库位集合 + */ + public List selectEmptyWmsBaseLocationList(WmsBaseLocation wmsBaseLocation); + + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockDetailMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockDetailMapper.java new file mode 100644 index 00000000..c629734e --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockDetailMapper.java @@ -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 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); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java index f275df4d..e2fa9dfb 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductInstockMapper.java @@ -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 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); diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductStockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductStockMapper.java index 4370a70b..6ebef965 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductStockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsProductStockMapper.java @@ -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 selectWmsProductStockInList(WmsProductStock wmsProductStock); + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockDetailMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockDetailMapper.java new file mode 100644 index 00000000..997824e2 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockDetailMapper.java @@ -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 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); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java index e762fe02..f1afead2 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawInstockMapper.java @@ -85,14 +85,4 @@ public interface WmsRawInstockMapper */ public int deleteWmsRawInstockDetailByRawInstockId(Long rawInstockId); - - /** - * 新增原材料入库记录明细 - * - * @param wmsRawInstockDetail 原材料入库记录明细 - * @return 结果 - */ - public int insertWmsRawInstockDetail(WmsRawInstockDetail wmsRawInstockDetail); - - } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java index ff7bef91..c18babe2 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java @@ -95,4 +95,12 @@ public interface WmsRawReturnMapper */ public List selectWmsRawReturnJoinList(WmsRawReturn wmsRawReturn); + /** + * 查询原材料退库记录,without details + * + * @param rawReturnId 原材料退库记录主键 + * @return 原材料退库记录 + */ + public WmsRawReturn selectOnlyWmsRawReturnByRawReturnId(Long rawReturnId); + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawStockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawStockMapper.java index 20d151b5..e93cff16 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawStockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawStockMapper.java @@ -86,5 +86,13 @@ public interface WmsRawStockMapper { */ public List selectWmsRawStocks4Apply(WmsRawStock wmsRawStock); + /** + * 查询totalAmount>0的库存列表 + * + * @param wmsRawStock 原材料库存 + * @return 原材料库存集合 + */ + public List selectWmsRawStockInList(WmsRawStock wmsRawStock); + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsMoveMergeService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsMoveMergeService.java new file mode 100644 index 00000000..14c96c70 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsMoveMergeService.java @@ -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); +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductInstockService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductInstockService.java index cc65d1a2..92c4c8ca 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductInstockService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsProductInstockService.java @@ -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 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); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawInstockService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawInstockService.java index 617458b2..8b463f7f 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawInstockService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawInstockService.java @@ -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); + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java index 60176337..7942ae88 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java @@ -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 applyAgvRawOutstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java index 0beb03a7..000d9a6a 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java @@ -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 selectAuditPassRawReturnDetails(WmsRawReturnDetail wmsRawReturnDetail); + + + /** + * 申请退库 + * + * @param wmsRawReturn 原材料退库记录 + * @return 结果 + */ + public int applyRawReturn(WmsRawReturn wmsRawReturn); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveMergeServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveMergeServiceImpl.java new file mode 100644 index 00000000..6f6969f8 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveMergeServiceImpl.java @@ -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(){ + + + } +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java index 8af95ec8..5503bf91 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java @@ -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 selectWmsProductInstockList(WmsProductInstock wmsProductInstock) - { + public List 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 wmsProductInstockDetailList = wmsProductInstock.getWmsProductInstockDetailList(); Long productInstockId = wmsProductInstock.getProductInstockId(); - if (StringUtils.isNotNull(wmsProductInstockDetailList)) - { + if (StringUtils.isNotNull(wmsProductInstockDetailList)) { List list = new ArrayList(); - 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 + } + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockServiceImpl.java index fb6dcd28..9c556aff 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductOutstockServiceImpl.java @@ -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) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawInstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawInstockServiceImpl.java index 76259f2d..da5cda44 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawInstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawInstockServiceImpl.java @@ -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 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 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 + } + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java index 8b165f6b..9acc87d3 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java @@ -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 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 rawOutstockDetails = wmsRawOutstock.getWmsRawOutstockDetailList(); - //如果同一个物料有多条记录的处理,提前更新,放在事务中 - //判断库位和可用数量(总数量减冻结数量和占用数量),按先进先出(按入库时间排序获取) - String queryQualityStatus = WmsConstants.RWA_STOCK_QUALITY_STATUS_PASS; + //根据物料ID分组获取总申请数量 + Map 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 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 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 applyAgvRawOutstock(WmsAgvRawOutstockVo wmsAgvRawOutstockVo) { + List wmsWcsVos = new ArrayList<>(); + + Long warehouseId = wmsAgvRawOutstockVo.getWarehouseId(); + Long materialId = wmsAgvRawOutstockVo.getMaterialId(); + + WmsBaseWarehouse warehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(warehouseId); + List baseLocations = warehouse.getWmsBaseLocationList(); + Map 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 rawStockList = wmsRawStockMapper.selectWmsRawStockInList(queryRawStock); + + Map> 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 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 agvReturnAssignLocations(Long warehouseId) { + WmsBaseLocation queryLocation = new WmsBaseLocation(); + queryLocation.setWarehouseId(warehouseId); + List 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; + } + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java index 1e3b04fc..cd6a19e0 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java @@ -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 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> materialInfosR = remoteMesService.getMaterialsByMaterialIds(mesBaseMaterialInfoVo, SecurityConstants.INNER); if (materialInfosR != null) { List materialInfos = materialInfosR.getData(); - Map MesBaseMaterialInfoMap = materialInfos.stream() + Map 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 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> materialInfosR = remoteMesService.getMaterialsByMaterialIds(mesBaseMaterialInfoVo, SecurityConstants.INNER); + if (materialInfosR != null) { + List materialInfos = materialInfosR.getData(); + + Map 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 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 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 rawReturnDetails = wmsRawReturn.getWmsRawReturnDetailList(); + //根据物料ID分组获取总申请数量 + Map 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 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; + } + } diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseLocationMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseLocationMapper.xml index f8f34179..e06eff92 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseLocationMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseLocationMapper.xml @@ -266,4 +266,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where location_code = #{locationCode} + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml index 7404f908..78dad058 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsBaseWarehouseMapper.xml @@ -1,9 +1,9 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -28,13 +28,64 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 - - + 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} - + insert into wms_base_warehouse @@ -80,7 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" data_source, schame, line_flag, - + #{warehouseInstockType}, #{warehouseType}, @@ -102,7 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{dataSource}, #{schame}, #{lineFlag}, - + @@ -137,9 +191,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from wms_base_warehouse where warehouse_id in + delete from wms_base_warehouse where warehouse_id in #{warehouseId} - \ No newline at end of file + + + delete from wms_base_location where warehouse_id in + + #{warehouseId} + + + + + delete from wms_base_location where warehouse_id = #{warehouseId} + + + + 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 + + ( #{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}) + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockDetailMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockDetailMapper.xml new file mode 100644 index 00000000..730bb000 --- /dev/null +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockDetailMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into wms_product_instock_detail + + 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, + + + #{productInstockId}, + #{locationCode}, + #{productId}, + #{productBarcode}, + #{productBatch}, + #{executeStatus}, + #{erpStatus}, + #{planAmount}, + #{instockAmount}, + #{instockBy}, + #{instockDate}, + #{instockWay}, + #{updateBy}, + #{updateDate}, + + + + + update wms_product_instock_detail + + product_instock_id = #{productInstockId}, + location_code = #{locationCode}, + product_id = #{productId}, + product_barcode = #{productBarcode}, + product_batch = #{productBatch}, + execute_status = #{executeStatus}, + erp_status = #{erpStatus}, + plan_amount = #{planAmount}, + instock_amount = #{instockAmount}, + instock_by = #{instockBy}, + instock_date = #{instockDate}, + instock_way = #{instockWay}, + update_by = #{updateBy}, + update_date = #{updateDate}, + + where product_instock_detail_id = #{productInstockDetailId} + + + + delete from wms_product_instock_detail where product_instock_detail_id = #{productInstockDetailId} + + + + delete from wms_product_instock_detail where product_instock_detail_id in + + #{productInstockDetailId} + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml index 305ea553..64193ce7 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductInstockMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -11,8 +11,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + + @@ -37,8 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -48,19 +51,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - + - + insert into wms_product_instock @@ -92,13 +95,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" location_code, product_type, operation_type, - plan_id, - plan_detail_id, + plan_code, + plan_detail_code, instock_type, apply_reason, audit_reason, - audit_status, - execute_status, + audit_status, + execute_status, apply_by, apply_date, audit_by, @@ -114,13 +117,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{locationCode}, #{productType}, #{operationType}, - #{planId}, - #{planDetailId}, + #{planCode}, + #{planDetailCode}, #{instockType}, #{applyReason}, #{auditReason}, - #{auditStatus}, - #{executeStatus}, + #{auditStatus}, + #{executeStatus}, #{applyBy}, #{applyDate}, #{auditBy}, @@ -140,13 +143,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" location_code = #{locationCode}, product_type = #{productType}, operation_type = #{operationType}, - plan_id = #{planId}, - plan_detail_id = #{planDetailId}, + plan_code = #{planCode}, + plan_detail_code = #{planDetailCode}, instock_type = #{instockType}, apply_reason = #{applyReason}, audit_reason = #{auditReason}, - audit_status = #{auditStatus}, - execute_status = #{executeStatus}, + audit_status = #{auditStatus}, + execute_status = #{executeStatus}, apply_by = #{applyBy}, apply_date = #{applyDate}, audit_by = #{auditBy}, @@ -164,14 +167,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from wms_product_instock where product_instock_id in + delete from wms_product_instock where product_instock_id in #{productInstockId} - + - delete from wms_product_instock_detail where product_instock_id in + delete from wms_product_instock_detail where product_instock_id in #{productInstockId} @@ -182,9 +185,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - ( #{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}) - \ No newline at end of file + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml index 8c7b1846..700a0e22 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml @@ -3,16 +3,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + - - + + @@ -49,19 +50,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - + - + insert into wms_product_outstock task_code, warehouse_id, location_code, + product_type, operation_type, outstock_type, - plan_id, - plan_detail_id, + plan_code, + plan_detail_code, apply_reason, audit_reason, audit_status, @@ -111,10 +114,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{taskCode}, #{warehouseId}, #{locationCode}, + #{productType}, #{operationType}, #{outstockType}, - #{planId}, - #{planDetailId}, + #{planCode}, + #{planDetailCode}, #{applyReason}, #{auditReason}, #{auditStatus}, @@ -136,10 +140,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" task_code = #{taskCode}, warehouse_id = #{warehouseId}, location_code = #{locationCode}, + product_type = #{productType}, operation_type = #{operationType}, outstock_type = #{outstockType}, - plan_id = #{planId}, - plan_detail_id = #{planDetailId}, + plan_code = #{planCode}, + plan_detail_code = #{planDetailCode}, apply_reason = #{applyReason}, audit_reason = #{auditReason}, audit_status = #{auditStatus}, @@ -161,14 +166,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from wms_product_outstock where product_outstock_id in + delete from wms_product_outstock where product_outstock_id in #{productOutstockId} - + - delete from wms_product_outstock_detail where product_outstock_id in + delete from wms_product_outstock_detail where product_outstock_id in #{productOutstockId} @@ -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}) - \ No newline at end of file + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductStockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductStockMapper.xml index a8b32bc9..db60c21c 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductStockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductStockMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -12,8 +12,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + + @@ -26,20 +26,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - + - + insert into wms_product_stock @@ -64,8 +64,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" product_batch, quality_status, product_id, - plan_id, - plan_detail_id, + plan_code, + plan_detail_code, total_amount, frozen_amount, occupy_amount, @@ -83,8 +83,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{productBatch}, #{qualityStatus}, #{productId}, - #{planId}, - #{planDetailId}, + #{planCode}, + #{planDetailCode}, #{totalAmount}, #{frozenAmount}, #{occupyAmount}, @@ -106,8 +106,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" product_batch = #{productBatch}, quality_status = #{qualityStatus}, product_id = #{productId}, - plan_id = #{planId}, - plan_detail_id = #{planDetailId}, + plan_code = #{planCode}, + plan_detail_code = #{planDetailCode}, total_amount = #{totalAmount}, frozen_amount = #{frozenAmount}, occupy_amount = #{occupyAmount}, @@ -126,9 +126,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from wms_product_stock where product_stock_id in + delete from wms_product_stock where product_stock_id in #{productStockId} - \ No newline at end of file + + + + + + + + + + + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockDetailMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockDetailMapper.xml new file mode 100644 index 00000000..ede90970 --- /dev/null +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockDetailMapper.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into wms_raw_instock_detail + + 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, + + + #{rawInstockId}, + #{locationCode}, + #{materialBarcode}, + #{instockBatch}, + #{materialId}, + #{poNo}, + #{materialProductionDate}, + #{planAmount}, + #{instockAmount}, + #{executeStatus}, + #{erpStatus}, + #{instockPerson}, + #{instockTime}, + #{instockWay}, + #{machineName}, + #{qualityStatus}, + #{stackAmount}, + #{createBy}, + #{createDate}, + #{updateBy}, + #{updateDate}, + #{activeFlag}, + #{poLine}, + + + + + update wms_raw_instock_detail + + raw_instock_id = #{rawInstockId}, + location_code = #{locationCode}, + material_barcode = #{materialBarcode}, + instock_batch = #{instockBatch}, + material_id = #{materialId}, + po_no = #{poNo}, + material_production_date = #{materialProductionDate}, + plan_amount = #{planAmount}, + instock_amount = #{instockAmount}, + execute_status = #{executeStatus}, + erp_status = #{erpStatus}, + instock_person = #{instockPerson}, + instock_time = #{instockTime}, + instock_way = #{instockWay}, + machine_name = #{machineName}, + quality_status = #{qualityStatus}, + stack_amount = #{stackAmount}, + create_by = #{createBy}, + create_date = #{createDate}, + update_by = #{updateBy}, + update_date = #{updateDate}, + active_flag = #{activeFlag}, + po_line = #{poLine}, + + where raw_instock_detail_id = #{rawInstockDetailId} + + + + delete from wms_raw_instock_detail where raw_instock_detail_id = #{rawInstockDetailId} + + + + delete from wms_raw_instock_detail where raw_instock_detail_id in + + #{rawInstockDetailId} + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml index 3e43f078..5ddf8e0c 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawInstockMapper.xml @@ -39,6 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -183,62 +184,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - ( #{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}) - - - - insert into wms_raw_instock_detail - - raw_instock_id, - location_code, - material_barcode, - material_id, - 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, - - - #{rawInstockId}, - #{locationCode}, - #{materialBarcode}, - #{materialId}, - #{instockBatch}, - #{materialProductionDate}, - #{instockAmount}, - #{executeStatus}, - #{erpStatus}, - #{instockPerson}, - #{instockTime}, - #{instockWay}, - #{machineName}, - #{qualityStatus}, - #{stackAmount}, - #{createBy}, - #{createDate}, - #{updateBy}, - #{updateDate}, - #{activeFlag}, - #{poLine}, - - - - diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml index 6cec2351..4ba516b2 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml @@ -10,8 +10,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + + @@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - 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 diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml index c1c228fc..83cbe778 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml @@ -9,9 +9,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + + + + + @@ -58,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 - 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" + + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawStockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawStockMapper.xml index 9f6fd5a0..9267e4c6 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawStockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawStockMapper.xml @@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -30,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - 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 + + + + +