From 851832812bd13c97b5a6ce87793e043c2c79047d Mon Sep 17 00:00:00 2001 From: xins Date: Tue, 24 Sep 2024 14:34:09 +0800 Subject: [PATCH] =?UTF-8?q?3.1.3:=20-=E8=BD=A6=E9=97=B4=E4=B8=80=E6=A5=BC?= =?UTF-8?q?=E8=A3=85=E9=85=8D=E3=80=81=E5=9B=9B=E6=A5=BC=E8=A3=85=E9=85=8D?= =?UTF-8?q?=E3=80=81=E4=BA=94=E6=A5=BC=E6=8B=86=E5=88=86=E5=92=8C=E4=BA=94?= =?UTF-8?q?=E6=A5=BC=E8=A3=85=E9=85=8D=E7=94=B3=E8=AF=B7=E7=89=A9=E6=96=99?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=AE=8C=E5=96=84=EF=BC=9A=E6=A0=87=E5=87=86?= =?UTF-8?q?=E7=89=A9=E6=96=99=E6=8C=89=E7=85=A7bom=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=EF=BC=8C=E8=BE=85=E6=96=99=E5=8F=AF=E5=8D=95=E7=8B=AC=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=20-=E8=BD=A6=E9=97=B4=E5=A2=9E=E5=8A=A0=E4=BA=94?= =?UTF-8?q?=E6=A5=BC=E8=87=AA=E6=A3=80=E5=B7=A5=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hw/common/core/constant/MesConstants.java | 7 ++ .../hw/mes/controller/MesApiController.java | 11 ++++ .../impl/MesProductPlanDetailServiceImpl.java | 37 +++++++---- .../java/com/hw/wms/domain/WmsStockTotal.java | 39 +++++++++++ .../impl/WmsStockTotalServiceImpl.java | 13 ++++ .../mapper/wms/WmsStockTotalMapper.xml | 7 +- hw-ui/src/api/board/index.js | 9 +++ .../views/board/barcode/workshopBarcode.vue | 10 ++- .../views/board/common/applyRawOutstock.vue | 65 ++++++++++++++++--- hw-ui/src/views/board/fifthFloor/index.vue | 43 +++++++++--- hw-ui/src/views/board/firstFloor/index.vue | 6 ++ .../src/views/board/fourthFloor/assemble.vue | 4 ++ hw-ui/src/views/login.vue | 7 +- hw-ui/src/views/mes/productOrder/index.vue | 12 ++-- 14 files changed, 228 insertions(+), 42 deletions(-) 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 @@