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 bd213682..4f929011 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 @@ -192,6 +192,7 @@ public class MesBaseBarcodeInfo extends BaseEntity private List mesSaleOrderRelateList; + private Long orderBindId; public String getLocationCode() { @@ -610,6 +611,14 @@ public class MesBaseBarcodeInfo extends BaseEntity this.mesSaleOrderRelateList = mesSaleOrderRelateList; } + public Long getOrderBindId() { + return orderBindId; + } + + public void setOrderBindId(Long orderBindId) { + this.orderBindId = orderBindId; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesSaleOrderRelate.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesSaleOrderRelate.java index b448b4c2..0f1af755 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesSaleOrderRelate.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/MesSaleOrderRelate.java @@ -36,8 +36,12 @@ public class MesSaleOrderRelate extends BaseEntity @Excel(name = "关联销售订单ID") private Long relateSaleOrderId; + private String relateSaleOrderCode; + private Long materialId; + private Long productId; + /** 采购订单ID */ private Long purchaseOrderId; @@ -45,12 +49,19 @@ public class MesSaleOrderRelate extends BaseEntity @Excel(name = "关联销售订单的数量,有可能小于原销售订单的订单数量") private BigDecimal relateSaleOrderAmount; + private String materialCode; + + private String materialName; + + private String materialSpec; + private String productCode; private String productName; private String productSpec; + /** * 此字段不保存 */ @@ -58,6 +69,9 @@ public class MesSaleOrderRelate extends BaseEntity private int index; + /**采购数量*/ + private BigDecimal orderAmount; + public void setSaleOrderRelateId(Long saleOrderRelateId) { this.saleOrderRelateId = saleOrderRelateId; @@ -77,6 +91,14 @@ public class MesSaleOrderRelate extends BaseEntity return saleOrderId; } + public String getRelateSaleOrderCode() { + return relateSaleOrderCode; + } + + public void setRelateSaleOrderCode(String relateSaleOrderCode) { + this.relateSaleOrderCode = relateSaleOrderCode; + } + public String getBarcodeInfo() { return barcodeInfo; } @@ -106,6 +128,14 @@ public class MesSaleOrderRelate extends BaseEntity this.materialId = materialId; } + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + public Long getPurchaseOrderId() { return purchaseOrderId; } @@ -127,6 +157,30 @@ public class MesSaleOrderRelate extends BaseEntity this.relateSaleOrderAmount = relateSaleOrderAmount; } + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getMaterialSpec() { + return materialSpec; + } + + public void setMaterialSpec(String materialSpec) { + this.materialSpec = materialSpec; + } + public String getProductCode() { return productCode; } @@ -167,6 +221,14 @@ public class MesSaleOrderRelate extends BaseEntity this.index = index; } + public BigDecimal getOrderAmount() { + return orderAmount; + } + + public void setOrderAmount(BigDecimal orderAmount) { + this.orderAmount = orderAmount; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) 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 24a30078..e1cae857 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 @@ -183,6 +183,8 @@ public class MesConstants { public static final String MES_BARCODE_SINGLE_FLAG_YES = "1";//是 public static final String MES_BARCODE_SINGLE_FLAG_INTERNAL = "2";//对内 + public static final String MES_BARCODE_SINGLE_FLAG_MERGE = "3";//合并 + /** * 生产工序末工序标识 */ diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/DateUtils.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/DateUtils.java index c46a3d38..07de9d05 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/DateUtils.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/DateUtils.java @@ -26,6 +26,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + public static String YYYYMMDD = "yyyyMMdd"; + private static String[] parsePatterns = { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", diff --git a/hw-modules/hw-mes/src/main/java/com/hw/Main.java b/hw-modules/hw-mes/src/main/java/com/hw/Main.java index a4afd557..30f01446 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/Main.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/Main.java @@ -9,14 +9,14 @@ public class Main { public static void main(String[] args) { // Press Alt+Enter with your caret at the highlighted text to see how // IntelliJ IDEA suggests fixing it. - System.out.printf("Hello and welcome!"); +// System.out.printf("Hello and welcome!"); // Press Shift+F10 or click the green arrow button in the gutter to run the code. for (int i = 1; i <= 5; i++) { // Press Shift+F9 to start debugging your code. We have set one breakpoint // for you, but you can always add more by pressing Ctrl+F8. - System.out.println("i = " + i); +// System.out.println("i = " + i); } List dd = new ArrayList(); @@ -29,6 +29,6 @@ public class Main { Long[] dd1 = new Long[2]; dd1[0] = 1L; dd1[1] = 2L; - System.out.println(builder.toString()); +// System.out.println(builder.toString()); } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesPurchaseOrderController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesPurchaseOrderController.java index 47cfa0cf..09083822 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesPurchaseOrderController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesPurchaseOrderController.java @@ -222,14 +222,14 @@ public class MesPurchaseOrderController extends BaseController /** - * 查询采购订单信息绑定销售订单信息列表 + * 查询采购订单信息,Join order_bind */ // @RequiresPermissions("mes:purchaseOrder:list") - @GetMapping("/getOrderBinds") - public TableDataInfo getOrderBinds(MesOrderBind mesOrderBind) + @GetMapping("/getPurchaseOrdersWithBind") + public TableDataInfo getPurchaseOrdersWithBind(MesPurchaseOrder mesPurchaseOrder) { startPage(); - List list = mesOrderBindService.selectMesOrderBindJoinList(mesOrderBind); + List list = mesPurchaseOrderService.selectPurchaseOrderJoinList(mesPurchaseOrder); return getDataTable(list); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesPurchaseOrder.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesPurchaseOrder.java index 5b1fb60c..39b3e703 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesPurchaseOrder.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesPurchaseOrder.java @@ -266,6 +266,26 @@ public class MesPurchaseOrder extends BaseEntity { private String alwaysFlag; + private Long productId; + + private String productCode; + + private String productName; + + private String productSpec; + + private String safeFlag; + + private String saleOrderCode; + + private BigDecimal bindAmount; + + private BigDecimal saleOrderAmount; + + private String mergeFlag; + + private String singleFlag; + public Long getSerialNumber() { return serialNumber; @@ -627,6 +647,86 @@ public class MesPurchaseOrder extends BaseEntity { this.alwaysFlag = alwaysFlag; } + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductSpec() { + return productSpec; + } + + public void setProductSpec(String productSpec) { + this.productSpec = productSpec; + } + + public String getSafeFlag() { + return safeFlag; + } + + public void setSafeFlag(String safeFlag) { + this.safeFlag = safeFlag; + } + + public String getSaleOrderCode() { + return saleOrderCode; + } + + public void setSaleOrderCode(String saleOrderCode) { + this.saleOrderCode = saleOrderCode; + } + + public BigDecimal getBindAmount() { + return bindAmount; + } + + public void setBindAmount(BigDecimal bindAmount) { + this.bindAmount = bindAmount; + } + + public BigDecimal getSaleOrderAmount() { + return saleOrderAmount; + } + + public void setSaleOrderAmount(BigDecimal saleOrderAmount) { + this.saleOrderAmount = saleOrderAmount; + } + + public String getMergeFlag() { + return mergeFlag; + } + + public void setMergeFlag(String mergeFlag) { + this.mergeFlag = mergeFlag; + } + + public String getSingleFlag() { + return singleFlag; + } + + public void setSingleFlag(String singleFlag) { + this.singleFlag = singleFlag; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesPurchaseOrderMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesPurchaseOrderMapper.java index d91deb1f..787bc8d6 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesPurchaseOrderMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesPurchaseOrderMapper.java @@ -125,4 +125,12 @@ public interface MesPurchaseOrderMapper */ public MesPurchaseOrder unbindPurchaseOrderListByPurchaseAndSaleOrderId(@Param("purchaseOrderId") Long purchaseOrderId, @Param("saleOrderId") Long saleOrderId); + + /** + * 查询采购订单信息列表,join order_bind + * @param mesPurchaseOrder + * @return + */ + public List selectPurchaseOrderJoinList(MesPurchaseOrder mesPurchaseOrder); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesSaleOrderRelateMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesSaleOrderRelateMapper.java index f4ed36b8..8f0891d1 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesSaleOrderRelateMapper.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesSaleOrderRelateMapper.java @@ -66,4 +66,13 @@ public interface MesSaleOrderRelateMapper * @return 结果 */ public int batchMesSaleOrderRelate(List mesSaleOrderRelateList); + + /** + * 查询销售订单关联信息列表,join material + * + * @param mesSaleOrderRelate 销售订单关联信息 + * @return 销售订单关联信息集合 + */ + public List selectMesSaleOrderRelateJoinList(MesSaleOrderRelate mesSaleOrderRelate); + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java index 053f9ad4..3267185b 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java @@ -134,4 +134,13 @@ public interface IMesPurchaseOrderService * @return 结果 */ public int deleteMesOrderBindByOrderBindIds(Long[] orderBindIds); + + + /** + * 查询采购订单信息,join order bind + * + * @param mesPurchaseOrder 采购订单信息 + * @return 采购订单信息 + */ + public List selectPurchaseOrderJoinList(MesPurchaseOrder mesPurchaseOrder); } 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 02596314..89e2142d 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 @@ -109,7 +109,15 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService */ @Override public MesBaseBarcodeInfo selectMesBaseBarcodeInfoByBarcodeId(Long barcodeId) { - return mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeId(barcodeId); + MesBaseBarcodeInfo mesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeId(barcodeId); + if(mesBaseBarcodeInfo.getSingleFlag().equals(MesConstants.MES_BARCODE_SINGLE_FLAG_MERGE)){ + MesSaleOrderRelate querySaleOrderRelate = new MesSaleOrderRelate(); + querySaleOrderRelate.setBarcodeInfo(mesBaseBarcodeInfo.getBarcodeInfo()); + List mesSaleOrderRelates = mesSaleOrderRelateMapper.selectMesSaleOrderRelateJoinList(querySaleOrderRelate); + mesBaseBarcodeInfo.setMesSaleOrderRelateList(mesSaleOrderRelates); + } + + return mesBaseBarcodeInfo; } /** @@ -167,53 +175,54 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService + ",物料名称:" + mesBaseBarcodeInfo.getMaterialName() + "]的常备物料标识"); } + //判断选择的采购订单信息,是否已经合并过 + MesSaleOrderRelate querySaleOrderRelate = new MesSaleOrderRelate(); + querySaleOrderRelate.setPurchaseOrderId(purchaseOrderId); + List saleOrderRelates = mesSaleOrderRelateMapper.selectMesSaleOrderRelateList(querySaleOrderRelate); + if (saleOrderRelates != null && !saleOrderRelates.isEmpty()) { + throw new ServiceException("选择的采购订单信息已经合并过,不能再选择"); + } + + //如果物料信息为非常备物料,则判断是否有绑定的信息 - BigDecimal barcodeAmount = mesBaseBarcodeInfo.getBarcodeAmount(); + BigDecimal barcodeAmount = mesBaseBarcodeInfo.getBarcodeAmount();//要生成的条码数量 + String poNo = StringUtils.isEmpty(mesBaseBarcodeInfo.getPoNo()) ? "0" : mesBaseBarcodeInfo.getPoNo(); + String batchCode = this.getRawBatchCode(poNo); if (!mesBaseMaterialInfo.getAlwaysFlag().equals(MesConstants.MES_MATERIAL_ALWAYS_FLAG_YES)) { - MesOrderBind queryOrderBind = new MesOrderBind(); - queryOrderBind.setPurchaseOrderId(purchaseOrderId); - List mesOrderBinds = mesOrderBindMapper.selectMesOrderBindList(queryOrderBind); - if (mesOrderBinds == null || mesOrderBinds.isEmpty()) { - throw new ServiceException("此采购订单还未绑定销售订单,不能生成条码"); + Long orderBindId = mesBaseBarcodeInfo.getOrderBindId(); + if (orderBindId == null) { + throw new ServiceException("请选择绑定销售订单信息的采购订单"); } - BigDecimal totalBindAmount = mesOrderBinds.stream().map(MesOrderBind::getBindAmount).reduce(BigDecimal.ZERO, BigDecimal::add); - BigDecimal totalBarcodeAmount = mesOrderBinds.stream().map(MesOrderBind::getBarcodeAmount).reduce(BigDecimal.ZERO, BigDecimal::add); - if (totalBindAmount.subtract(totalBarcodeAmount).compareTo(barcodeAmount) != 0) { - throw new ServiceException("采购订单绑定数据有变化,请重新选择采购订单绑定"); + MesOrderBind mesOrderBind = mesOrderBindMapper.selectMesOrderBindByOrderBindId(orderBindId); + BigDecimal bindAmount = mesOrderBind.getBindAmount(); + BigDecimal bindBarcodeAmount = mesOrderBind.getBarcodeAmount();//已经生成的条码数量 + BigDecimal availableAmount = bindAmount.subtract(bindBarcodeAmount); + if (barcodeAmount.compareTo(availableAmount) > 0) { + throw new ServiceException("条码数量不能大于可用数量"); } - String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); + MesBaseBarcodeInfo toInsertedBarcodeInfo; - - for (MesOrderBind mesOrderBind : mesOrderBinds) { - BigDecimal bindAmount = mesOrderBind.getBindAmount(); - BigDecimal bindBarcodeAmount = mesOrderBind.getBarcodeAmount(); - BigDecimal canBindAmount = bindAmount.subtract(bindBarcodeAmount); - - if (canBindAmount.compareTo(BigDecimal.ONE) >= 0) { - for (int i = 0; i < canBindAmount.intValue(); i++) { - // 生成数量条的不同条码内容 - toInsertedBarcodeInfo = getInsertedBarcodeInfo(mesBaseBarcodeInfo, Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode), batchCode, userName, currentDate); - - toInsertedBarcodeInfo.setSaleOrderId(mesOrderBind.getSaleOrderId()); - toInsertedBarcodeInfo.setSaleorderCode(mesOrderBind.getSaleOrderCode()); - toInsertedBarcodeInfo.setSafeFlag(mesOrderBind.getSafeFlag()); - - mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(toInsertedBarcodeInfo); - } - - //更新订单绑定的条码已绑定数量 - mesOrderBind.setBarcodeAmount(bindAmount); - mesOrderBind.setUpdateBy(userName); - mesOrderBind.setUpdateTime(currentDate); - mesOrderBindMapper.updateMesOrderBind(mesOrderBind); - } - + for (long i = 0; i < barcodeAmount.intValue(); i++) { + // 生成条码数量的不同条码内容 + toInsertedBarcodeInfo = getInsertedBarcodeInfo(mesBaseBarcodeInfo, Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode), batchCode, userName, currentDate); + toInsertedBarcodeInfo.setSaleOrderId(mesOrderBind.getSaleOrderId()); + toInsertedBarcodeInfo.setSaleorderCode(mesOrderBind.getSaleOrderCode()); + toInsertedBarcodeInfo.setSafeFlag(MesConstants.MES_ORDER_BIND_SAFE_FLAG_NO); + mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(toInsertedBarcodeInfo); } + + + //更新订单绑定的条码已绑定数量 + mesOrderBind.setBarcodeAmount(bindBarcodeAmount.add(barcodeAmount)); + mesOrderBind.setUpdateBy(userName); + mesOrderBind.setUpdateTime(currentDate); + mesOrderBindMapper.updateMesOrderBind(mesOrderBind); + + } else { MesBaseBarcodeInfo toInsertedBarcodeInfo; - String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); for (long i = 0; i < barcodeAmount.intValue(); i++) { // 生成条码数量的不同条码内容 toInsertedBarcodeInfo = getInsertedBarcodeInfo(mesBaseBarcodeInfo, Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode), batchCode, userName, currentDate); @@ -258,7 +267,8 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService List toInsertedBarcodeInfos = new ArrayList<>(); MesBaseBarcodeInfo toInsertedBarcodeInfo; - String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); +// String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); + String batchCode = this.getRawBatchCode("0"); for (long i = 0; i < barcodeAmount.intValue(); i++) { // 生成数量条的不同条码内容 toInsertedBarcodeInfo = getInsertedBarcodeInfo(mesBaseBarcodeInfo, Seq.getId(Seq.mesBarcodeSeqType, Seq.mesBarcodeCode), batchCode, userName, currentDate); @@ -529,6 +539,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService toInsertedBarcodeInfo.setAmount(mesBaseBarcodeInfo.getAmount()); } + toInsertedBarcodeInfo.setRemark(mesBaseBarcodeInfo.getRemark()); toInsertedBarcodeInfo.setCreateBy(userName); toInsertedBarcodeInfo.setCreateTime(currentDate); @@ -1146,13 +1157,16 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService StringBuilder errorMsgBuilder = new StringBuilder(); for (MesSaleOrderRelate mesSaleOrderRelate : mesSaleOrderRelateList) { + if (mesSaleOrderRelate.getOrderAmount() == null || mesSaleOrderRelate.getOrderAmount().compareTo(BigDecimal.ONE) != 0) { + throw new ServiceException("请选择采购数量为1的采购订单信息"); + } Long orderBindId = mesSaleOrderRelate.getOrderBindId(); MesOrderBind dbOrderBind = mesOrderBindMapper.selectMesOrderBindByOrderBindId(orderBindId); - if (dbOrderBind.getBindAmount().compareTo(BigDecimal.ONE)!=0) { - errorMsgBuilder.append(String.format("序号%s:订单绑定数量需要为1", mesSaleOrderRelate.getIndex())); + if (dbOrderBind.getBindAmount().compareTo(BigDecimal.ONE) != 0) { + errorMsgBuilder.append(String.format("序号%s:订单绑定数量需要为1;", mesSaleOrderRelate.getIndex())); } - if(dbOrderBind.getBarcodeAmount().compareTo(BigDecimal.ONE)>=0){ - errorMsgBuilder.append(String.format("序号%s:已经生成条码,不能再次选择", mesSaleOrderRelate.getIndex())); + if (dbOrderBind.getBarcodeAmount().compareTo(BigDecimal.ONE) >= 0) { + errorMsgBuilder.append(String.format("序号%s:已经生成条码,不能再次选择;", mesSaleOrderRelate.getIndex())); } Long relateSaleOrderId = mesSaleOrderRelate.getRelateSaleOrderId(); @@ -1160,7 +1174,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService querySaleOrderRelate.setRelateSaleOrderId(relateSaleOrderId); List mesSaleOrderRelates = mesSaleOrderRelateMapper.selectMesSaleOrderRelateList(querySaleOrderRelate); if (mesSaleOrderRelates != null && !mesSaleOrderRelates.isEmpty()) { - errorMsgBuilder.append(String.format("序号%s:销售订单已经关联过;", mesSaleOrderRelate.getIndex())); + errorMsgBuilder.append(String.format("序号%s:销售订单已经关联过;", mesSaleOrderRelate.getIndex())); } MesSaleOrder saleOrder = mesSaleOrderMapper.selectMesSaleOrderBySaleOrderId(relateSaleOrderId); @@ -1168,17 +1182,19 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService BigDecimal availableAmount = mesSaleOrderRelate.getRelateSaleOrderAmount(); if (availableAmount.compareTo(BigDecimal.ONE) != 0) { - errorMsgBuilder.append(String.format("序号%s:需要选择可用数量为1的信息;", mesSaleOrderRelate.getIndex())); + errorMsgBuilder.append(String.format("序号%s:需要选择可用数量为1的信息;", mesSaleOrderRelate.getIndex())); } if (!saleOrder.getIsRelease().equals(MesConstants.MES_SALE_ORDER_IS_RELEASE_TO_PUBLISH)) { - errorMsgBuilder.append(String.format("序号%s:销售订单已经发布工单,不能合并;", mesSaleOrderRelate.getIndex())); + errorMsgBuilder.append(String.format("序号%s:销售订单已经发布工单,不能合并;", mesSaleOrderRelate.getIndex())); } if (saleOrderAmount.compareTo(availableAmount) != 0) { - errorMsgBuilder.append(String.format("序号%s:需要选择销售订单数量为1的信息;", mesSaleOrderRelate.getIndex())); + errorMsgBuilder.append(String.format("序号%s:需要选择销售订单数量为1的信息;", mesSaleOrderRelate.getIndex())); } + //purchaseorder可以不用判断,主要看生成条码的数量 + Long erpMaterialId = saleOrder.getMaterialId(); MesMaterialBom queryMaterialBom = new MesMaterialBom(); queryMaterialBom.setErpMaterialId(erpMaterialId); @@ -1188,13 +1204,23 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService if (mesMaterialBoms == null || mesMaterialBoms.isEmpty()) { errorMsgBuilder.append("序号").append(mesSaleOrderRelate.getIndex()).append(":销售订单成品没有配置bom信息[成品编号:") .append(mesSaleOrderRelate.getProductCode()).append("成品名称:").append(mesSaleOrderRelate.getProductName()) - .append("成品规格").append(mesSaleOrderRelate.getProductSpec()); + .append("成品规格").append(mesSaleOrderRelate.getProductSpec()).append("; "); } else if (mesMaterialBoms.size() > 1) { errorMsgBuilder.append("序号").append(mesSaleOrderRelate.getIndex()).append(":销售订单成品配置bom信息多余一条[成品编号:") .append(mesSaleOrderRelate.getProductCode()).append("成品名称:").append(mesSaleOrderRelate.getProductName()) - .append("成品规格").append(mesSaleOrderRelate.getProductSpec()); + .append("成品规格").append(mesSaleOrderRelate.getProductSpec()).append("; "); } else { MesMaterialBom mesMaterialBom = mesMaterialBoms.get(0); + + //判断所选物料是否在销售订单的成品bom中(在绑定时判断) +// MesMaterialBom queryChildBom = new MesMaterialBom(); +// queryChildBom.setAncestors(); +// queryChildBom.setMaterialId(mesSaleOrderRelate.getMaterialId()); +// List childBoms = mesMaterialBomMapper.selectMesMaterialBomList(queryChildBom); +// if(childBoms==null || childBoms.isEmpty()){ +// throw new ServiceException("选择的物料信息"); +// } + toUpdatedMaterialBoms.add(mesMaterialBom); } @@ -1222,7 +1248,9 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService this.insertVirtualMaterialBom(materialId, barcodeInfo, toUpdatedMaterialBoms, userName, currentDate); //生成条码 - String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); +// String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode); + String poNo = StringUtils.isEmpty(mesBaseBarcodeInfo.getPoNo()) ? "0" : mesBaseBarcodeInfo.getPoNo(); + String batchCode = this.getRawBatchCode(poNo); mesBaseBarcodeInfo.setBatchFlag(MesConstants.NOT_IS_BATCH); MesBaseBarcodeInfo toInsertedBarcodeInfo = getInsertedBarcodeInfo(mesBaseBarcodeInfo, barcodeInfo, batchCode, userName, currentDate); toInsertedBarcodeInfo.setPurchaseOrderId(-1L); @@ -1230,6 +1258,7 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService toInsertedBarcodeInfo.setSaleOrderId(virtualSaleOrder.getSaleOrderId()); toInsertedBarcodeInfo.setSaleorderCode(virtualSaleOrder.getSaleorderCode()); toInsertedBarcodeInfo.setSafeFlag(MesConstants.MES_ORDER_BIND_SAFE_FLAG_NO); + toInsertedBarcodeInfo.setSingleFlag(MesConstants.MES_BARCODE_SINGLE_FLAG_MERGE); // toInsertedBarcodeInfo.setBarcodeSpec(materialCodes.toString()); mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(toInsertedBarcodeInfo); @@ -1330,6 +1359,18 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService } + /** + * 获取原材料条码批次号 + * + * @return + */ + public String getRawBatchCode(String poNo) { + StringBuilder batchCodeBuilder = new StringBuilder(); + String today = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, new Date()); + batchCodeBuilder.append("D").append(today).append("P").append(poNo); + return batchCodeBuilder.toString(); + } + // public MesPurchaseOrder insertVirtualPurchaseOrder(Long materialId, String barcodeInfo, BigDecimal sumOrderAmount, // List mesPurchaseOrderRelates,String userName, Date currentDate) { // MesPurchaseOrder virtualPurchaseOrder = new MesPurchaseOrder(); diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java index fe736f31..ee17c4b3 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java @@ -424,4 +424,20 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService { return mesOrderBindMapper.deleteMesOrderBindByOrderBindIds(orderBindIds); } + + + /** + * 查询采购订单信息,join order bind + * + * @param mesPurchaseOrder 采购订单信息 + * @return 采购订单信息 + */ + @Override + public List selectPurchaseOrderJoinList(MesPurchaseOrder mesPurchaseOrder) { + mesPurchaseOrder.setMaterialSpec(StringUtils.isNotEmpty(mesPurchaseOrder.getMaterialSpec()) + ? mesPurchaseOrder.getMaterialSpec().replaceAll("\\s+", "") : ""); + mesPurchaseOrder.setProductSpec(StringUtils.isNotEmpty(mesPurchaseOrder.getProductSpec()) + ? mesPurchaseOrder.getProductSpec().replaceAll("\\s+", "") : ""); + return mesPurchaseOrderMapper.selectPurchaseOrderJoinList(mesPurchaseOrder); + } } diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml index 586c905a..67b7614e 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesPurchaseOrderMapper.xml @@ -52,8 +52,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + @@ -425,4 +439,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by mpo.erp_modify_date desc + + + + diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml index 594d1f9c..a84b629b 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderMapper.xml @@ -251,8 +251,9 @@ mso.erp_modify_date, mso.begin_date, mso.end_date, - mso.complete_date - from mes_sale_order mso left join mes_base_material_info mbmi on mso.material_id = mbmi.erp_id + mso.complete_date, + mso.sale_order_classfication + from mes_sale_order mso left join mes_base_material_info mbmi on (mso.material_id = mbmi.erp_id and mso.sale_order_classfication='1') or (mso.material_id = mbmi.material_id and mso.sale_order_classfication='2') and mso.saleorder_code like concat('%', #{saleorderCode}, '%') @@ -264,6 +265,7 @@ and replace(mbmi.material_spec,' ','') like concat('%', #{materialSpec}, '%') and mso.is_release = #{isRelease} + and mso.sale_order_classfication = #{saleOrderClassfication} order by mso.erp_modify_date desc diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderRelateMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderRelateMapper.xml index bee075f2..f1c081da 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderRelateMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesSaleOrderRelateMapper.xml @@ -10,9 +10,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + @@ -24,6 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and sale_order_id = #{saleOrderId} and relate_sale_order_id = #{relateSaleOrderId} + and purchase_order_id = #{purchaseOrderId} and relate_sale_order_amount = #{relateSaleOrderAmount} @@ -40,7 +47,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" barcode_info, order_bind_id, relate_sale_order_id, + relate_sale_order_code, material_id, + product_id, purchase_order_id, relate_sale_order_amount, @@ -49,7 +58,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{barcodeInfo}, #{orderBindId}, #{relateSaleOrderId}, + #{relateSaleOrderCode}, #{materialId}, + #{productId}, #{purchaseOrderId}, #{relateSaleOrderAmount}, @@ -78,9 +89,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into mes_sale_order_relate( sale_order_id, barcode_info,order_bind_id,relate_sale_order_id,material_id, purchase_order_id,relate_sale_order_amount) values + insert into mes_sale_order_relate( sale_order_id, barcode_info,order_bind_id,relate_sale_order_id,relate_sale_order_code,material_id, product_id,purchase_order_id,relate_sale_order_amount) values - ( #{item.saleOrderId}, #{item.barcodeInfo}, #{item.orderBindId}, #{item.relateSaleOrderId}, #{item.materialId},#{item.purchaseOrderId}, #{item.relateSaleOrderAmount}) + ( #{item.saleOrderId}, #{item.barcodeInfo}, #{item.orderBindId}, #{item.relateSaleOrderId}, #{item.relateSaleOrderCode}, #{item.materialId},#{item.productId},#{item.purchaseOrderId}, #{item.relateSaleOrderAmount}) + + + + + + \ No newline at end of file diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java index 3b65d31f..92858cae 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsWarehouseMaterialServiceImpl.java @@ -168,8 +168,6 @@ public class WmsWarehouseMaterialServiceImpl implements IWmsWarehouseMaterialSer } } - - }); if (errorMsgBuilder.length() > 0) { diff --git a/hw-ui/src/api/mes/purchaseOrder.js b/hw-ui/src/api/mes/purchaseOrder.js index 1a1b0b3d..0d33d5ca 100644 --- a/hw-ui/src/api/mes/purchaseOrder.js +++ b/hw-ui/src/api/mes/purchaseOrder.js @@ -130,10 +130,10 @@ export function selectPurchaseOrderBindList(query) { -// 获取销售订单已绑定采购订单List,for 新增原材料条码 -export function getOrderBinds(query) { +// 获取采购订单信息,join order_bind,for 新增原材料条码 +export function getPurchaseOrdersWithBind(query) { return request({ - url: '/mes/purchaseOrder/getOrderBinds', + url: '/mes/purchaseOrder/getPurchaseOrdersWithBind', method: 'get', params: query }) diff --git a/hw-ui/src/views/mes/barcode/index.vue b/hw-ui/src/views/mes/barcode/index.vue index bbde26e5..f4abb07c 100644 --- a/hw-ui/src/views/mes/barcode/index.vue +++ b/hw-ui/src/views/mes/barcode/index.vue @@ -225,6 +225,16 @@ @@ -672,11 +680,12 @@ import {checkWarehouseMaterials} from "@/api/wms/wmswarehouse"; import selectOrderBind from '@//views/mes/purchaseOrder/selectOrderBind.vue'; import selectMaterial from '@//views/mes/materialinfo/selectMaterial.vue'; +import {getMaterialinfo} from "@/api/mes/materialinfo"; export default { name: "Barcode", - dicts: ['bind_status', 'active_flag', 'barcode_type', 'mes_safe_flag', 'mes_print_flag'], + dicts: ['bind_status', 'active_flag', 'barcode_type', 'mes_safe_flag', 'mes_print_flag', 'mes_material_batch_flag'], components: { 'select-orderBind': selectOrderBind, 'select-material': selectMaterial @@ -756,9 +765,6 @@ export default { batchFlag: [ {required: true, message: "批次标识不能为空", trigger: "change"} ], - amount: [ - {required: true, message: "批次数量不能为空", trigger: "change"} - ], barcodeAmount: [ {required: true, message: "条码数量不能为空", trigger: "change"} ], @@ -818,9 +824,6 @@ export default { batchFlag: [ {required: true, message: "批次标识不能为空", trigger: "change"} ], - amount: [ - {required: true, message: "批次数量不能为空", trigger: "change"} - ], barcodeType: [ {required: true, message: "条码类型不能为空", trigger: "change"} ], @@ -893,9 +896,6 @@ export default { batchFlag: [ {required: true, message: "批次标识不能为空", trigger: "change"} ], - amount: [ - {required: true, message: "批次数量不能为空", trigger: "change"} - ], barcodeType: [ {required: true, message: "条码类型不能为空", trigger: "change"} ], @@ -904,6 +904,23 @@ export default { ], }, + PRINT_FLAG: { + YES: "1", + NO: "0" + }, + + SINGLE_FLAG: { + NO: "0", + YES: "1", + INTERNAL: "2", + MERGE: "3" + }, + + BARCODE_TYPE: { + RAW: "1", + REGULAR: "9" + }, + }; }, created() { @@ -971,7 +988,7 @@ export default { bindTime: null, updateBy: null, updateTime: null, - currentOrderBindAmount: 0, + availableBindAmount: 0, currentSafeBindAmount: 0 }; this.resetForm("form"); @@ -1000,6 +1017,7 @@ export default { }, /** 新增采购订单按钮操作 */ handlePurchaseOrderAdd() { + this.barcodeData = {mergeFlag: null}; this.purchaseOrderOpen = true; }, @@ -1103,9 +1121,8 @@ export default { return formItem.relateSaleOrderId === item.saleOrderId; }); - if(filterSaleOrderIdMaterialRelateList!=null && filterSaleOrderIdMaterialRelateList.length >0){ + if (filterSaleOrderIdMaterialRelateList != null && filterSaleOrderIdMaterialRelateList.length > 0) { let errorMsg = "选择的信息跟已经选择的销售订单号明细相同."; - alert(JSON.stringify(filterSaleOrderIdMaterialRelateList)) for (let ssoid of filterSaleOrderIdMaterialRelateList) { errorMsg += "销售订单号:" + ssoid.saleOrderCode + ",成品编码:" + ssoid.productCode + ",成品名称:" + ssoid.productName + ",成品规格:" + ssoid.productSpec + ";"; } @@ -1120,18 +1137,19 @@ export default { index: item.index, orderBindId: item.orderBindId, relateSaleOrderId: item.saleOrderId, - saleOrderCode:item.saleOrderCode, + relateSaleOrderCode: item.saleOrderCode, productId: item.productId, - productCode:item.productCode, - productName:item.productName, - productSpec:item.productSpec, + productCode: item.productCode, + productName: item.productName, + productSpec: item.productSpec, purchaseOrderId: item.purchaseOrderId, materialId: item.materialId, - materialCode:item.materialCode, - materialName:item.materialName, - materialSpec:item.materialSpec, - specificationParameter:item.specificationParameter, - relateSaleOrderAmount: item.relateSaleOrderAmount + materialCode: item.materialCode, + materialName: item.materialName, + materialSpec: item.materialSpec, + specificationParameter: item.specificationParameter, + relateSaleOrderAmount: item.relateSaleOrderAmount, + orderAmount: item.orderAmount }; this.materialRelateForm.mesSaleOrderRelateList.push(mesSaleOrderRelate); @@ -1147,83 +1165,83 @@ export default { // alert(JSON.stringify(selectedRows)); } else { - let selectedRow = this.$refs.purchaseOrderRef.selectedRow; - this.form.batchFlag = null; - this.form.amount = null; - this.form.materialCode = null; - this.form.materialId = null; - this.form.materialName = null; - this.form.materialSpec = null; - this.form.barcodeSpec = null; - this.form.projectNo = null; - this.form.purchaseOrderId = null; - //本次待生成订单条码数量 - this.form.currentOrderBindAmount = null; - //本次待生成安全库存条码数量 - this.form.currentSafeBindAmount = null; - //本次生成条码总数量 - this.form.barcodeAmount = null; - this.form.poNo = null; - - let currentOrderBindAmount = parseInt(selectedRow.orderBindAmount) - parseInt(selectedRow.orderBarcodeAmount); - let currentSafeBindAmount = parseInt(selectedRow.safeBindAmount) - parseInt(selectedRow.safeBarcodeAmount) - let canBindAmount = currentOrderBindAmount + currentSafeBindAmount; - if (selectedRow.mesMaterialId === null || selectedRow.mesMaterialId === '' || selectedRow.mesMaterialId === 0) { - this.$modal.msgError("物料信息不存在"); - return; - } - - if (canBindAmount <= 0) { - this.$modal.msgError("无可生成条码数量"); - return; - } - - - this.$set(this.form, "poNo", selectedRow.poNo); - this.form.barcodeType = '1';//条码类型(1原材料,2半成品,3成品,4背板) - // this.form.materialId = selectedRow.materialId;//在物料信息中对应的是ERPID - this.form.materialId = selectedRow.mesMaterialId;//物料信息表中物料ID主键 - this.form.materialCode = selectedRow.materialCode; - this.form.materialName = selectedRow.materialName; - this.form.materialSpec = selectedRow.materialSpec; - this.form.projectNo = selectedRow.projectNo; - this.form.purchaseOrderId = selectedRow.purchaseOrderId; - this.form.barcodeSpec = selectedRow.specificationParameter; - //本次待生成订单条码数量 - this.form.currentOrderBindAmount = currentOrderBindAmount; - //本次待生成安全库存条码数量 - this.form.currentSafeBindAmount = currentSafeBindAmount; - //本次生成条码总数量 - this.form.barcodeAmount = canBindAmount; - - - if (selectedRow.batchFlag != null && selectedRow.batchFlag !== '') { - this.saleBatchFlagDisable = true; - this.form.batchFlag = selectedRow.batchFlag; - if (this.form.batchFlag === this.BATCH_FLAG.YES) { - this.form.amount = selectedRow.batchAmount; - } else { - this.form.amount = 1; - } - } else { - this.saleBatchFlagDisable = false; - } - - - getMaterialInfoByErpId(selectedRow.materialId).then(response => { - if (response.data == null) { - this.$modal.msgError("物料信息不存在"); - return; - } - - - this.purchaseOrderOpen = false; - }); - + this.submitSingleSelectPurchaseOrder(); } }, + + submitSingleSelectPurchaseOrder() { + let selectedRow = this.$refs.purchaseOrderRef.selectedRow; + this.form.batchFlag = null; + this.form.amount = null; + this.form.materialCode = null; + this.form.materialId = null; + this.form.materialName = null; + this.form.materialSpec = null; + this.form.barcodeSpec = null; + this.form.projectNo = null; + this.form.purchaseOrderId = null; + //本次待生成订单条码数量 + this.form.availableBindAmount = null; + //本次生成条码总数量 + this.form.barcodeAmount = null; + this.form.poNo = null; + this.form.orderBindId = null; + + if (selectedRow.relateSaleOrderAmount == null || selectedRow.relateSaleOrderAmount === '' || parseInt(selectedRow.relateSaleOrderAmount) <= 0) { + this.$modal.msgError("无可生成条码数量"); + return; + } + + + this.$set(this.form, "poNo", selectedRow.poNo); + this.form.barcodeType = '1';//条码类型(1原材料,2半成品,3成品,4背板) +// this.form.materialId = selectedRow.materialId;//在物料信息中对应的是ERPID + this.form.materialId = selectedRow.materialId;//物料信息表中物料ID主键 + this.form.materialCode = selectedRow.materialCode; + this.form.materialName = selectedRow.materialName; + this.form.materialSpec = selectedRow.materialSpec; + this.form.projectNo = selectedRow.projectNo; + this.form.purchaseOrderId = selectedRow.purchaseOrderId; + this.form.barcodeSpec = selectedRow.specificationParameter; +//本次可用条码数量 + this.form.availableBindAmount = parseInt(selectedRow.relateSaleOrderAmount); + this.form.orderBindId = selectedRow.orderBindId; +//本次生成条码总数量 + this.form.barcodeAmount = null; + + this.form.batchFlag = selectedRow.batchFlag; + this.form.amount = selectedRow.batchAmount; + this.saleBatchFlagDisable = !!this.form.batchFlag; + + this.purchaseOrderOpen = false; + }, + + handleDeletePurchaseOrder(row) { + + const mesSaleOrderRelateList = this.materialRelateForm.mesSaleOrderRelateList; + this.materialRelateForm.mesSaleOrderRelateList = mesSaleOrderRelateList.filter(function (item) { + return row.index !== item.index + }); + + if (!this.materialRelateForm.mesSaleOrderRelateList || this.materialRelateForm.mesSaleOrderRelateList.length <= 0) { + this.materialRelateForm.poNo = null; + this.materialRelateForm.saleOrderCode = null; + } + + + // if (this.checkedDmsBillsMaintDetailProject.length == 0) { + // this.$modal.msgError("请先选择要删除的保养工单明细项目信息;检查每个项目的点巡检结果详情数据"); + // } else { + // const dmsBillsMaintDetailProjectList = this.dmsBillsMaintDetailProjectList; + // const checkedDmsBillsMaintDetailProject = this.checkedDmsBillsMaintDetailProject; + // this.dmsBillsMaintDetailProjectList = dmsBillsMaintDetailProjectList.filter(function(item) { + // return checkedDmsBillsMaintDetailProject.indexOf(item.index) == -1 + // }); + // } + }, + /** 新增按钮操作 */ handleAdd() { this.reset(); @@ -1231,6 +1249,7 @@ export default { this.title = "添加原材料条码信息"; }, + /** 打印条码按钮操作 */ handlePrintBarcodes(row) { this.loading = true; @@ -1295,10 +1314,22 @@ export default { /** 修改按钮操作 */ handleUpdate(row) { - this.reset(); - const barcodeId = row.barcodeId || this.ids + if (row.singleFlag === this.SINGLE_FLAG.MERGE) { + this.resetRelate(); + } else { + if (row.purchaseOrderId === 0) { + this.resetNoPurchase(); + } else { + this.reset(); + } + + } + + const barcodeId = row.barcodeId; getBarcode(barcodeId).then(response => { - this.form = response.data; + + + this.open = true; this.title = "修改原材料条码信息"; }); @@ -1697,7 +1728,7 @@ export default { bindTime: null, updateBy: null, updateTime: null, - currentOrderBindAmount: 0, + availableBindAmount: 0, currentSafeBindAmount: 0, mesSaleOrderRelateList: [] }; @@ -1731,7 +1762,10 @@ export default { this.$refs["materialRelateForm"].validate(valid => { if (valid) { this.submitLoading = true; - alert(JSON.stringify(this.materialRelateForm.mesSaleOrderRelateList)) + if (this.materialRelateForm.mesSaleOrderRelateList.length <= 1) { + this.$modal.msgError("请选择至少2条采购信息"); + return; + } mergeAddBarcode(this.materialRelateForm).then(response => { this.$modal.msgSuccess("新增成功"); this.materialRelateOpen = false; diff --git a/hw-ui/src/views/mes/purchaseOrder/selectOrderBind.vue b/hw-ui/src/views/mes/purchaseOrder/selectOrderBind.vue index 09ebdb3f..265abbee 100644 --- a/hw-ui/src/views/mes/purchaseOrder/selectOrderBind.vue +++ b/hw-ui/src/views/mes/purchaseOrder/selectOrderBind.vue @@ -42,7 +42,18 @@ /> - + + + + + + + 是 @@ -53,7 +64,7 @@ - + 是 @@ -65,6 +76,7 @@ + 搜索 重置 @@ -82,19 +94,26 @@ highlight-current-row > + + + + + - + import { - getOrderBinds + getPurchaseOrdersWithBind } from "@//api/mes/purchaseOrder"; export default { name: "OrderBind", - dicts: ['active_flag', 'order_status', 'document_status'], + dicts: ['active_flag', 'order_status', 'document_status','mes_material_bind_flag'], props: { defineData: { type: Object, @@ -167,7 +186,8 @@ export default { completeDate: null, isFlag: null, mergeFlag: null, - singleFlag: null + singleFlag: null, + alwaysFlag:"" }, // 表单参数 form: {}, @@ -208,7 +228,11 @@ export default { {key: 21, label: `更新人`, visible: false}, {key: 22, label: `更新时间`, visible: false}, ], - selectedRows:[] + selectedRows:[], + ALWAYS_FLAG:{ + YES:"1", + NO:"0" + } }; }, created() { @@ -232,9 +256,12 @@ export default { /** 查询采购订单信息列表 */ getList() { this.loading = true; - getOrderBinds(this.queryParams).then(response => { + getPurchaseOrdersWithBind(this.queryParams).then(response => { response.rows.forEach(e => { - e.relateSaleOrderAmount = parseInt(e.bindAmount - e.barcodeAmount); + if(e.orderBindId){ + e.relateSaleOrderAmount = parseInt(e.bindAmount - e.barcodeAmount); + } + }); this.orderBindList = response.rows; diff --git a/hw-ui/src/views/mes/saleOrder/index.vue b/hw-ui/src/views/mes/saleOrder/index.vue index 56fce7d0..be6436a0 100644 --- a/hw-ui/src/views/mes/saleOrder/index.vue +++ b/hw-ui/src/views/mes/saleOrder/index.vue @@ -10,6 +10,17 @@ /> + + + + + + + + +