diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java index e1cae857..434c350c 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java @@ -267,4 +267,11 @@ public class MesConstants { */ public static final long MES_MATERIAL_BOM_TOP_FLAG_YES = 1;//是 public static final long MES_MATERIAL_BOM_TOP_FLAG_NO = 0;//否 + + + /** + * 物料信息辅料标识 + */ + public static final String MES_MATERIAL_ACCESSORIES_FLAG_YES = "1";//是 + public static final String MES_MATERIAL_ACCESSORIES_FLAG_NO = "0";//否 } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java index 0b5b3e91..38a5d5ea 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java @@ -47,6 +47,9 @@ public class MesApiController extends BaseController { @Autowired private IMesBaseBarcodeInfoService mesBaseBarcodeInfoService; + @Autowired + private IMesBaseMaterialInfoService mesBaseMaterialInfoService; + /** * 查询当前登录工位信息 @@ -321,5 +324,13 @@ public class MesApiController extends BaseController { return success(mesBaseBarcodeInfoService.check4thFloorProduceOutstock(materialBarcode)); } + /** + * 根据物料ID获取物料信息详细信息 + */ + @GetMapping(value = "/getMaterialInfoByMaterialId/{materialId}") + public AjaxResult getMaterialInfoByMaterialId(@PathVariable("materialId") Long materialId) { + return success(mesBaseMaterialInfoService.selectMesBaseMaterialInfoByMaterialId(materialId)); + } + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java index 78236ffe..1352ee8d 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java @@ -257,9 +257,17 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer throw new ServiceException("此生产派工已结束"); } + + + + //如果是五楼拆分,校验是否有配对条码 if (StringUtils.isNotEmpty(mesProductPlanDetail.getProcessType()) && mesProductPlanDetail.getProcessType().equals(MesConstants.MES_PROCESS_TYPE_FIFTH_SPLIT)) { + + + + // MesBaseBarcodeInfo queryBarcodeInfo = new MesBaseBarcodeInfo(); queryBarcodeInfo.setPlanDetailCode(dbProductPlanDetail.getPlanDetailCode()); queryBarcodeInfo.setBarcodeType(MesConstants.MES_BARCODE_TYPE_RAW); @@ -268,6 +276,11 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer throw new ServiceException("还未生成原材料条码,不能完成"); } + + + + + MesBaseBarcodeInfo mesBaseBarcodeInfo = rawBarcodeInfos.get(0); String bindBarcode; @@ -285,22 +298,22 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer queryBaseBarcodeInfo.setBindBarcode(bindBarcode); List bindBaseBarcodeInfos = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoList(queryBaseBarcodeInfo); if (bindBaseBarcodeInfos == null || bindBaseBarcodeInfos.isEmpty()) { - throw new ServiceException("请配对条码执行返库后再完成"); + throw new ServiceException("请生成配对条码执行返库后再完成"); } } - //校验生产计划明细物料使用情况校验信息(如果是多个工序只校验最后一个工序,一楼是一个工序,暂时不校验最后一个工序) - List checkResults = - mesMaterialCheckResultMapper.selectMesMaterialCheckResult(planId, planDetailId, "0," + dbProductPlan.getMaterialBomId()); - List filterCheckResults = checkResults.stream().filter( - materialCheckResult -> (materialCheckResult.getCheckAmount() == null || - !materialCheckResult.getCheckAmount().equals(materialCheckResult.getStandardAmount())) - && materialCheckResult.getCheckType().equals(MesConstants.MES_MATERIAL_BOM_CHECK_TYPE_MANUAL)) - .collect(Collectors.toList()); + //(取消校验,现场不扫码校验了)校验生产计划明细物料使用情况校验信息(如果是多个工序只校验最后一个工序,一楼是一个工序,暂时不校验最后一个工序) +// List checkResults = +// mesMaterialCheckResultMapper.selectMesMaterialCheckResult(planId, planDetailId, "0," + dbProductPlan.getMaterialBomId()); +// List filterCheckResults = checkResults.stream().filter( +// materialCheckResult -> (materialCheckResult.getCheckAmount() == null || +// !materialCheckResult.getCheckAmount().equals(materialCheckResult.getStandardAmount())) +// && materialCheckResult.getCheckType().equals(MesConstants.MES_MATERIAL_BOM_CHECK_TYPE_MANUAL)) +// .collect(Collectors.toList()); String updatePlanDetailStatus = MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_FINISH; - if (filterCheckResults != null && !filterCheckResults.isEmpty()) { - updatePlanDetailStatus = MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_ABNORMAL_FINISH; - } +// if (filterCheckResults != null && !filterCheckResults.isEmpty()) { +// updatePlanDetailStatus = MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_ABNORMAL_FINISH; +// } Date currentDate = new Date(); String userName = SecurityUtils.getUsername(); diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsStockTotal.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsStockTotal.java index 7001328f..4fbe29af 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsStockTotal.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsStockTotal.java @@ -130,6 +130,13 @@ public class WmsStockTotal extends BaseEntity { private Long productId; + private String materialClassfication; + + private String ancestors;//物料bom的祖级列表 + + private String accessoriesFlag;//辅料标识 + + private Long materialBomId; public String getWarehouseName() { return warehouseName; @@ -348,6 +355,38 @@ public class WmsStockTotal extends BaseEntity { this.productId = productId; } + public String getMaterialClassfication() { + return materialClassfication; + } + + public void setMaterialClassfication(String materialClassfication) { + this.materialClassfication = materialClassfication; + } + + public String getAncestors() { + return ancestors; + } + + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public String getAccessoriesFlag() { + return accessoriesFlag; + } + + public void setAccessoriesFlag(String accessoriesFlag) { + this.accessoriesFlag = accessoriesFlag; + } + + public Long getMaterialBomId() { + return materialBomId; + } + + public void setMaterialBomId(Long materialBomId) { + this.materialBomId = materialBomId; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsStockTotalServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsStockTotalServiceImpl.java index f7cf51e3..f5542642 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsStockTotalServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsStockTotalServiceImpl.java @@ -5,6 +5,7 @@ import java.util.*; import java.util.stream.Collectors; import com.alibaba.fastjson2.JSONObject; +import com.hw.common.core.constant.MesConstants; import com.hw.common.core.constant.SecurityConstants; import com.hw.common.core.constant.WmsConstants; import com.hw.common.core.domain.R; @@ -13,6 +14,8 @@ 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.MesBaseBarcodeInfo; +import com.hw.mes.api.domain.MesBaseMaterialInfo; +import com.hw.mes.api.domain.MesBaseStationInfo; import com.hw.mes.api.domain.vo.MesSaleOrderTransferVo; import com.hw.wms.domain.WmsBaseLocation; import com.hw.wms.domain.WmsProductStock; @@ -144,6 +147,16 @@ public class WmsStockTotalServiceImpl implements IWmsStockTotalService { */ @Override public List selectWmsStockTotalJoinListBySaleOrder(WmsStockTotal wmsStockTotal) { + String materialClassfication = wmsStockTotal.getMaterialClassfication(); + if (materialClassfication.equals(MesConstants.MES_MATERIAL_CLASSFICATION_VIRTUAL)) { + wmsStockTotal.setMaterialId(wmsStockTotal.getProductId()); + wmsStockTotal.setAccessoriesFlag(null); + } else { + if (wmsStockTotal.getAccessoriesFlag().equals(MesConstants.MES_MATERIAL_ACCESSORIES_FLAG_NO)) { + wmsStockTotal.setAncestors("0," + wmsStockTotal.getMaterialBomId()); + wmsStockTotal.setAccessoriesFlag(null); + } + } return wmsStockTotalMapper.selectWmsStockTotalJoinListBySaleOrder(wmsStockTotal); } diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml index 946a0f48..12426a43 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsStockTotalMapper.xml @@ -170,11 +170,11 @@ wst.total_amount, wst.frozen_amount, wst.occupy_amount,wst.safe_flag,wst.sale_order_id, mbmi.material_code,mbmi.material_name,mbmi.material_spec, (select sum(wro.outstock_amount) from wms_raw_outstock wro where wro.stock_total_id=wst.stock_total_id and - wro.plan_code=#{planCode} and wro.plan_detail_code=#{planDetailCode}) outstock_amount + wro.plan_code=#{planCode} and wro.plan_detail_code=#{planDetailCode} and wro.audit_status!='2') outstock_amount from wms_stock_total wst left join mes_base_material_info mbmi on wst.material_id = mbmi.material_id - and wst.total_amount>=0 + and wst.total_amount>0 and wst.warehouse_id = #{warehouseId} and wst.warehouse_floor = #{warehouseFloor} and wst.stock_type = #{stockType} @@ -189,6 +189,9 @@ #{materialCodeNameSpec},'%') or mbmi.material_name like concat('%',#{materialCodeNameSpec},'%') or mbmi.material_spec like concat('%',#{materialCodeNameSpec},'%')) + and mbmi.accessories_flag='1' + and exists (select 1 from mes_material_bom mmb where + mmb.material_id=wst.material_id and mmb.ancestors like concat(#{ancestors},'%')) diff --git a/hw-ui/src/api/board/index.js b/hw-ui/src/api/board/index.js index bffe2c4e..2caf054b 100644 --- a/hw-ui/src/api/board/index.js +++ b/hw-ui/src/api/board/index.js @@ -348,3 +348,12 @@ export function continueRawInstock(data) { data: data }) } + + +// 获取物料信息 +export function getMaterialInfoByMaterialId(materialId) { + return request({ + url: '/mes/api/getMaterialInfoByMaterialId/'+materialId, + method: 'get', + }) +} diff --git a/hw-ui/src/views/board/barcode/workshopBarcode.vue b/hw-ui/src/views/board/barcode/workshopBarcode.vue index a7a2987f..17e1f8f5 100644 --- a/hw-ui/src/views/board/barcode/workshopBarcode.vue +++ b/hw-ui/src/views/board/barcode/workshopBarcode.vue @@ -147,6 +147,12 @@ + + + + + + + @@ -435,6 +442,7 @@ export default { // this.queryParams.bindOrFlag = "1"; } + alert(JSON.stringify(this.queryParams)); this.form = { planId: this.defineData.planId, planCode: this.defineData.planCode, @@ -447,7 +455,7 @@ export default { amount: 1, } - } else if (this.defineData.singleFlag && this.defineData.singleFlag === this.SINGLE_FLAG.INTERNAL) { + } else if (this.defineData.singleFlag && this.defineData.singleFlag === this.SINGLE_FLAG.INTERNAL) {//对内条码 //4楼到5楼的原材料条码也要更换成新的plancode和plandetailcode this.internalForm = { planId: this.defineData.planId, diff --git a/hw-ui/src/views/board/common/applyRawOutstock.vue b/hw-ui/src/views/board/common/applyRawOutstock.vue index c5d94e63..38ad2beb 100644 --- a/hw-ui/src/views/board/common/applyRawOutstock.vue +++ b/hw-ui/src/views/board/common/applyRawOutstock.vue @@ -17,6 +17,35 @@ + + + 物料信息 + + + + + + + + + {{ dict.label }} + + + + + + 搜索 + 重置 + + @@ -111,7 +138,7 @@