diff --git a/hw-api/hw-api-jindie/pom.xml b/hw-api/hw-api-jindie/pom.xml index 0f8a7442..91d6a972 100644 --- a/hw-api/hw-api-jindie/pom.xml +++ b/hw-api/hw-api-jindie/pom.xml @@ -26,6 +26,10 @@ org.quartz-scheduler quartz + + com.hw + hw-common-core + diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java index eac76997..a1f7974f 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesBaseBarcodeInfo.java @@ -110,6 +110,8 @@ public class MesBaseBarcodeInfo extends BaseEntity @Excel(name = "生产计划明细编号") private String planDetailCode; + private String safeFlag; + /** 销售订单编号;适合生产出入库等 */ @Excel(name = "销售订单ID") private Long saleOrderId; @@ -372,6 +374,14 @@ public class MesBaseBarcodeInfo extends BaseEntity return planDetailCode; } + public String getSafeFlag() { + return safeFlag; + } + + public void setSafeFlag(String safeFlag) { + this.safeFlag = safeFlag; + } + public Long getSaleOrderId() { return saleOrderId; } diff --git a/hw-api/pom.xml b/hw-api/pom.xml index d3b08c6c..fd5c0e0b 100644 --- a/hw-api/pom.xml +++ b/hw-api/pom.xml @@ -16,6 +16,7 @@ hw-api-printer hw-api-dms hw-api-job + hw-api-jindie hw-api diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java index bec0fa9f..280821b2 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesProductPlan.java @@ -26,6 +26,16 @@ public class MesProductPlan extends BaseEntity @Excel(name = "生产工单ID") private Long productOrderId; + /** + * 销售订单ID,关联mes_sale_order的order_id;一个销售订单可以有多个生产工单 + */ + private Long saleOrderId; + + /** + * 销售订单编号 + */ + private String saleorderCode; + /** * 生产工单编号 */ @@ -155,15 +165,7 @@ public class MesProductPlan extends BaseEntity /** 工单已派工数量 */ private BigDecimal dispatchedAmount; - /** - * 销售订单ID,关联mes_sale_order的order_id;一个销售订单可以有多个生产工单 - */ - private Long saleOrderId; - /** - * 销售订单编号 - */ - private String saleorderCode; public Long getSaleOrderId() { return saleOrderId; @@ -255,6 +257,8 @@ public class MesProductPlan extends BaseEntity { return productOrderId; } + + public void setPlanCode(String planCode) { this.planCode = planCode; diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java index 9babf2ac..46420e0a 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java @@ -141,6 +141,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService toInsertedBarcodeInfo.setSaleOrderId(mesOrderBind.getSaleOrderId()); toInsertedBarcodeInfo.setSaleorderCode(mesOrderBind.getSaleOrderCode()); + toInsertedBarcodeInfo.setSafeFlag(mesOrderBind.getSafeFlag()); if (mesBaseBarcodeInfo.getBatchFlag().equals(MesConstants.NOT_IS_BATCH)) { toInsertedBarcodeInfo.setAmount(new BigDecimal(1)); diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java index 7cc8c723..849d42da 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanServiceImpl.java @@ -96,17 +96,21 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService { @Transactional @Override public int insertMesProductPlan(MesProductPlan mesProductPlan) { - mesProductPlan.setCreateBy(SecurityUtils.getUsername()); - mesProductPlan.setCreateTime(DateUtils.getNowDate()); - mesProductPlan.setPlanCode(Seq.getId(Seq.planCodeSeqType, Seq.planCodeCode)); - int rows = mesProductPlanMapper.insertMesProductPlan(mesProductPlan); - //更新工单已派工数量 - MesProductOrder mesProductOrder = new MesProductOrder(); - mesProductOrder.setProductOrderId(mesProductPlan.getProductOrderId()); - mesProductOrder.setDispatchAmount(mesProductPlan.getDispatchedAmount()); - mesProductOrderService.updateMesProductOrder(mesProductOrder); - insertMesProductPlanDetail(mesProductPlan); - return rows; + if (mesProductPlan.getPlanAmount().compareTo(BigDecimal.ZERO) > 0) { + mesProductPlan.setCreateBy(SecurityUtils.getUsername()); + mesProductPlan.setCreateTime(DateUtils.getNowDate()); + mesProductPlan.setPlanCode(Seq.getId(Seq.planCodeSeqType, Seq.planCodeCode)); + int rows = mesProductPlanMapper.insertMesProductPlan(mesProductPlan); + //更新工单已派工数量 + MesProductOrder mesProductOrder = new MesProductOrder(); + mesProductOrder.setProductOrderId(mesProductPlan.getProductOrderId()); + mesProductOrder.setDispatchAmount(mesProductPlan.getDispatchedAmount()); + mesProductOrderService.updateMesProductOrder(mesProductOrder); +// insertMesProductPlanDetail(mesProductPlan); + return rows; + } + return 0; + } /** diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml index 8b22f4fd..4a8da650 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesBaseBarcodeInfoMapper.xml @@ -28,6 +28,7 @@ + @@ -66,6 +67,7 @@ bbi.last_outstock_date, bbi.plan_code, bbi.plan_detail_code, + bbi.safe_flag, bbi.sale_order_id, bbi.saleorder_code, bbi.project_no, @@ -148,6 +150,7 @@ last_outstock_date, plan_code, plan_detail_code, + safe_flag, sale_order_id, saleorder_code, project_no, @@ -181,6 +184,7 @@ #{lastOutstockDate}, #{planCode}, #{planDetailCode}, + #{safeFlag}, #{saleOrderId}, #{saleorderCode}, #{projectNo}, diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml index f15372f8..14e2d162 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesProductPlanMapper.xml @@ -7,7 +7,8 @@ - + + @@ -41,8 +42,8 @@ - - + + @@ -191,6 +192,8 @@ insert into mes_product_plan product_order_id, + sale_order_id, + saleorder_code, plan_code, dispatch_code, material_id, @@ -219,6 +222,8 @@ #{productOrderId}, + #{saleOrderId}, + #{saleorderCode}, #{planCode}, #{dispatchCode}, #{materialId}, 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 cc2a7efa..a1eba674 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 @@ -9,6 +9,7 @@ import com.hw.common.core.web.domain.AjaxResult; import com.hw.common.core.web.page.TableDataInfo; 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.api.RemoteMesService; import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.wms.domain.*; @@ -91,9 +92,9 @@ public class WmsMobileController extends BaseController { /** - * 新增原材料入库记录 + * 新增原材料入库记录(原材料人工入库) */ -// @RequiresPermissions("wms:mobile:addrawinstock") + @RequiresPermissions("wms:mobile:addrawinstock") @Log(title = "原材料入库记录", businessType = BusinessType.INSERT) @PostMapping(("/addRawInstock")) public AjaxResult addRawInstock(@Validated @RequestBody WmsRawInstockVo wmsRawInstockVo) { 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 c44792dc..c16df8b5 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 @@ -60,6 +60,10 @@ public class WmsRawStock extends BaseEntity /**托盘码*/ private String palletInfoCode; + private Long saleOrderId; + + private String safeFlag; + /** 入库时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @@ -204,6 +208,22 @@ public class WmsRawStock extends BaseEntity this.palletInfoCode = palletInfoCode; } + public Long getSaleOrderId() { + return saleOrderId; + } + + public void setSaleOrderId(Long saleOrderId) { + this.saleOrderId = saleOrderId; + } + + public String getSafeFlag() { + return safeFlag; + } + + public void setSafeFlag(String safeFlag) { + this.safeFlag = safeFlag; + } + public void setInstockDate(Date instockDate) { this.instockDate = instockDate; 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 e93cff16..8683761f 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 @@ -63,13 +63,11 @@ public interface WmsRawStockMapper { /** - * 根据库位编码和入库批次号查询原材料库存 - * @param locationCode + * 根据入库物料条码查询原材料库存 * @param instockBatch * @return WmsRawStock */ - public WmsRawStock selectRawStockByLocationAndBatch(@Param("locationCode") String locationCode, - @Param("instockBatch") String instockBatch); + public WmsRawStock selectRawStockByBarcode(@Param("instockBatch") String instockBatch); /** * 获取库存数量 diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java index 6cf19ec9..764f89f8 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java @@ -533,7 +533,8 @@ public class WmsMoveServiceImpl implements IWmsMoveService { public void moveOutUpdateRawStock(String locationCode, String batchCode, BigDecimal applyQty, String userName, Date currentDate) { - WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, batchCode); + //TODO:批次码 + WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByBarcode(batchCode); if (wmsRawStock == null) { throw new ServiceException("原库位无库存信息,不能进行移库"); } @@ -688,7 +689,8 @@ public class WmsMoveServiceImpl implements IWmsMoveService { BigDecimal applyQty, String userName, Date currentDate) { String batchCode = mesBaseBarcodeInfo.getBatchCode(); String locationCode = location.getLocationCode(); - WmsRawStock rawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, batchCode); + //todo:批次码 + WmsRawStock rawStock = wmsRawStockMapper.selectRawStockByBarcode(batchCode); if (rawStock != null) { rawStock.setTotalAmount(rawStock.getTotalAmount().add(applyQty)); rawStock.setUpdateDate(currentDate); 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 ab76866e..5ff932b6 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 @@ -148,7 +148,6 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService { if (baseLocation == null) { throw new ServiceException("库位编码有误"); } - //todo 可入物料(wms_warehouse_material)判断是否可以入此库位 BigDecimal instockAmount = wmsRawInstockVo.getInstockAmount(); if (baseBarcodeInfo.getBatchFlag().equals(MesConstants.IS_BATCH)) { @@ -204,7 +203,7 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService { */ public void updateRawStock(WmsRawInstock wmsRawInstock, WmsRawInstockVo wmsRawInstockVo, WmsBaseLocation baseLocation , MesBaseBarcodeInfo baseBarcodeInfo, String userName, Date currentDate) { - String instockBatch = baseBarcodeInfo.getBatchCode(); + String barcode = baseBarcodeInfo.getBarcodeInfo(); String locationCode = wmsRawInstock.getLocationCode(); //判断此库位的数量限制,是否还能入库 @@ -217,10 +216,14 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService { throw new ServiceException("已超出库位数量限制,请重新选择库位"); } + String batchFlag = baseBarcodeInfo.getBatchFlag(); //如果是同一库位入同一批次,则更新数量 - WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, instockBatch); + WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByBarcode(barcode); if (wmsRawStock != null) { // wmsRawStock.setQualityStatus(wmsRawInstockVo.getQualityStatus()); + if(!batchFlag.equals(MesConstants.IS_BATCH)){ + throw new ServiceException("此物料条码已经入库"); + } wmsRawStock.setTotalAmount(wmsRawStock.getTotalAmount().add(wmsRawInstockVo.getInstockAmount())); wmsRawStock.setUpdateBy(userName); wmsRawStock.setUpdateDate(currentDate); @@ -231,11 +234,15 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService { wmsRawStock.setLocationCode(locationCode); wmsRawStock.setStockType(WmsConstants.RWA_STOCK_STOCK_TYPE_RAW); wmsRawStock.setMaterialId(baseBarcodeInfo.getMaterialId()); - wmsRawStock.setInstockBatch(instockBatch); + wmsRawStock.setInstockBatch(barcode); wmsRawStock.setWarehouseFloor(baseLocation.getWarehouseFloor()); // wmsRawStock.setLastOutstockTime(baseBarcodeInfo.getLastOutstockDate()); // wmsRawStock.setQualityStatus(wmsRawInstockVo.getQualityStatus()); wmsRawStock.setTotalAmount(wmsRawInstockVo.getInstockAmount()); + wmsRawStock.setSaleOrderId(baseBarcodeInfo.getSaleOrderId()); + wmsRawStock.setSafeFlag(baseBarcodeInfo.getSafeFlag()); + wmsRawStock.setInstockDate(baseBarcodeInfo.getAcceptedDate()); + wmsRawStock.setLastOutstockTime(baseBarcodeInfo.getLastOutstockDate()); wmsRawStock.setCreateBy(userName); wmsRawStock.setCreateDate(currentDate); wmsRawStockMapper.insertWmsRawStock(wmsRawStock); 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 4db49e48..284d2a1c 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 @@ -231,10 +231,11 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { throw new ServiceException("请输入审核意见"); } wmsRawOutstocks.forEach(wmsRawOutstock -> { + //todo:批次码 String locationCode = wmsRawOutstock.getLocationCode(); String instockBatch = wmsRawOutstock.getMaterialBatch(); BigDecimal planAmount = wmsRawOutstock.getOutstockAmount(); - WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, instockBatch); + WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByBarcode(instockBatch); if (wmsRawStock != null) { BigDecimal occupyAmount = wmsRawStock.getOccupyAmount() == null ? BigDecimal.ZERO : wmsRawStock.getOccupyAmount(); @@ -396,7 +397,8 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { public void updateRawStock(String locationCode, String batchCode, BigDecimal outstockAmount, String userName, Date currentDate) { //更新原材料库存占用数量和总数量 - WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, batchCode); + //todo 批次码 + WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByBarcode(batchCode); if (wmsRawStock == null) { throw new ServiceException("没找到库存信息"); } else { @@ -464,7 +466,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { /** * 申请领料 * 在申请领料时,不管是否需要审核,都需要锁定库位和修改占用数量(但审核不通过的话需要解锁库位和更新占用数量) - * + * 申请时没有保存wms_raw_outstock_detail表,没有指定库位 * @param wmsRawOutstock 原材料出库记录 * @return 结果 */ @@ -1059,7 +1061,8 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { public void directOutstockUpdateRawStock(String locationCode, String batchCode, BigDecimal outstockAmount, String userName, Date currentDate) { - WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, batchCode); + //TODO:批次码 + WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByBarcode(batchCode); if (wmsRawStock == null) { throw new ServiceException("没找到库存信息"); } else { 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 4667160f..8de71faf 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 @@ -377,7 +377,8 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService { String locationCode = wmsRawReturnConfirmVo.getLocationCode(); String instockBatch = mesBaseBarcodeInfo.getBatchCode(); - WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByLocationAndBatch(locationCode, instockBatch); + //todo 批次码 + WmsRawStock wmsRawStock = wmsRawStockMapper.selectRawStockByBarcode(instockBatch); if (wmsRawStock == null) { WmsBaseWarehouse warehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(baseLocation.getWarehouseId()); wmsRawStock = new WmsRawStock(); diff --git a/hw-modules/hw-wms/src/main/resources/bootstrap.yml b/hw-modules/hw-wms/src/main/resources/bootstrap.yml index ee70dad3..e8b92a2f 100644 --- a/hw-modules/hw-wms/src/main/resources/bootstrap.yml +++ b/hw-modules/hw-wms/src/main/resources/bootstrap.yml @@ -16,12 +16,12 @@ spring: # 服务注册地址 server-addr: 175.27.215.92:8848 namespace: jyhb-test - group: xins + group: xins1 config: # 配置中心地址 server-addr: 175.27.215.92:8848 namespace: jyhb-test - group: xins + group: xins1 # 配置文件格式 file-extension: yml # 共享配置 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 b3fbfeae..f995870e 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 @@ -98,6 +98,8 @@ stock_type, material_id, instock_batch, + sale_order_id, + safe_flag, instock_date, last_outstock_time, quality_status, @@ -119,6 +121,8 @@ #{stockType}, #{materialId}, #{instockBatch}, + #{saleOrderId}, + #{safeFlag}, #{instockDate}, #{lastOutstockTime}, #{qualityStatus}, @@ -174,9 +178,9 @@ - - where location_code = #{locationCode} and instock_batch = #{instockBatch} + where instock_batch = #{instockBatch}