From b2e791a777636c5aac348dfb3d2ac687bbfe9fcf Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 29 Oct 2024 14:18:04 +0800 Subject: [PATCH] =?UTF-8?q?3.3.5=20MES=20=E5=8E=9F=E6=9D=90=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E8=BD=AC=E5=BA=93=E5=AD=98=E5=92=8C=E6=88=90?= =?UTF-8?q?=E5=93=81=E5=BA=93=E5=AD=98=E8=BD=AC=E5=BA=93=E5=AD=98bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hw/mes/api/RemoteMesService.java | 4 +- .../vo/MesBaseBarcodeInfoTransferVo.java | 35 +++++ .../api/domain/vo/MesSaleOrderTransferVo.java | 6 +- .../api/factory/RemoteMesFallbackFactory.java | 2 +- .../controller/MesSaleOrderController.java | 38 +++-- .../hw/mes/service/IMesSaleOrderService.java | 1 + .../service/impl/MesSaleOrderServiceImpl.java | 11 +- .../impl/WmsStockTotalServiceImpl.java | 38 +++-- hw-ui/src/api/board/barcode.js | 2 +- hw-ui/src/views/mes/productOrder/index.vue | 20 ++- hw-ui/src/views/wms/info/stocktotal/index.vue | 131 ++++++++++++------ 11 files changed, 195 insertions(+), 93 deletions(-) create mode 100644 hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesBaseBarcodeInfoTransferVo.java 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 6fda6467..b1aa5c46 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 @@ -103,7 +103,7 @@ public interface RemoteMesService { public R start5thFloorInstall(@RequestBody MesPdaProductPlanVo mesPdaProductPlanVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** - * 开始5楼组装工序 + * 完成5楼组装工序 * * @param mesPdaProductPlanVo * @param source 请求来源 @@ -132,7 +132,7 @@ public interface RemoteMesService { * @return 结果 */ @PostMapping("/saleOrder/transferSaleOrders") - public R transferSaleOrders(@RequestBody MesSaleOrderTransferVo mesSaleOrderTransferVo, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + public R transferSaleOrders(@RequestBody MesSaleOrderTransferVo mesSaleOrderTransferVo,@RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesBaseBarcodeInfoTransferVo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesBaseBarcodeInfoTransferVo.java new file mode 100644 index 00000000..4a939b30 --- /dev/null +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesBaseBarcodeInfoTransferVo.java @@ -0,0 +1,35 @@ +package com.hw.mes.api.domain.vo; + +import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @Description: 销售订单转库存VO对象 + * @ClassName: MesSaleOrderTransferVo + * @Author : xins + * @Date :2024-09-04 14:21 + * @Version :1.0 + */ +@Data +public class MesBaseBarcodeInfoTransferVo { + + //新的销售订单ID + @NotNull(message = "销售订单Id必须输入") + private Long saleOrderId; + + //新的销售订单号 + @NotEmpty(message = "销售订单号必须输入") + private String saleOrderCode; + + //安全库存标识 + @NotEmpty(message = "安全库存标识必须输入") + private String safeFlag; + + //条码内容 + @NotEmpty(message = "条码内容必须输入") + private String barcodeInfo; +} diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesSaleOrderTransferVo.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesSaleOrderTransferVo.java index 945b9a62..f9edaddd 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesSaleOrderTransferVo.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/domain/vo/MesSaleOrderTransferVo.java @@ -17,12 +17,12 @@ import java.util.List; @Data public class MesSaleOrderTransferVo { - //转换的条码信息 +// 转换的条码信息 @NotNull(message = "条码信息不能为空") - private List mesBaseBarcodeInfos; + private List mesBaseBarcodeInfoTransferVos; //转换数量 - @NotNull(message = "转换不能为空") + @NotNull(message = "转换数量不能为空") private BigDecimal transferAmount; //老的销售订单ID diff --git a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/factory/RemoteMesFallbackFactory.java b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/factory/RemoteMesFallbackFactory.java index 3ee1be2f..eaf4659e 100644 --- a/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/factory/RemoteMesFallbackFactory.java +++ b/hw-api/hw-api-mes/src/main/java/com/hw/mes/api/factory/RemoteMesFallbackFactory.java @@ -77,7 +77,7 @@ public class RemoteMesFallbackFactory implements FallbackFactory transferSaleOrders(MesSaleOrderTransferVo mesSaleOrderTransferVo, String source) { + public R transferSaleOrders(MesSaleOrderTransferVo mesSaleOrderTransferVo,String source) { return R.fail("销售订单信息转换失败:" + throwable.getMessage()); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesSaleOrderController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesSaleOrderController.java index 39e4d3df..af7321cf 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesSaleOrderController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesSaleOrderController.java @@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse; import com.hw.common.core.domain.R; import com.hw.common.security.annotation.InnerAuth; +import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.mes.api.domain.vo.MesSaleOrderTransferVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -27,14 +28,13 @@ import com.hw.common.core.web.page.TableDataInfo; /** * 销售订单信息Controller - * + * * @author Yinq * @date 2024-02-19 */ @RestController @RequestMapping("/saleOrder") -public class MesSaleOrderController extends BaseController -{ +public class MesSaleOrderController extends BaseController { @Autowired private IMesSaleOrderService mesSaleOrderService; @@ -44,8 +44,7 @@ public class MesSaleOrderController extends BaseController */ @RequiresPermissions("mes:saleOrder:list") @GetMapping("/list") - public TableDataInfo list(MesSaleOrder mesSaleOrder) - { + public TableDataInfo list(MesSaleOrder mesSaleOrder) { startPage(); List list = mesSaleOrderService.selectMesSaleOrderJoinMaterialList(mesSaleOrder); return getDataTable(list); @@ -57,8 +56,7 @@ public class MesSaleOrderController extends BaseController @RequiresPermissions("mes:saleOrder:export") @Log(title = "销售订单信息", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, MesSaleOrder mesSaleOrder) - { + public void export(HttpServletResponse response, MesSaleOrder mesSaleOrder) { List list = mesSaleOrderService.selectMesSaleOrderList(mesSaleOrder); ExcelUtil util = new ExcelUtil(MesSaleOrder.class); util.exportExcel(response, list, "销售订单信息数据"); @@ -69,8 +67,7 @@ public class MesSaleOrderController extends BaseController */ @RequiresPermissions("mes:saleOrder:query") @GetMapping(value = "/{saleOrderId}") - public AjaxResult getInfo(@PathVariable("saleOrderId") Long saleOrderId) - { + public AjaxResult getInfo(@PathVariable("saleOrderId") Long saleOrderId) { return success(mesSaleOrderService.selectMesSaleOrderBySaleOrderId(saleOrderId)); } @@ -80,8 +77,7 @@ public class MesSaleOrderController extends BaseController @RequiresPermissions("mes:saleOrder:add") @Log(title = "销售订单信息", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody MesSaleOrder mesSaleOrder) - { + public AjaxResult add(@RequestBody MesSaleOrder mesSaleOrder) { return toAjax(mesSaleOrderService.insertMesSaleOrder(mesSaleOrder)); } @@ -91,8 +87,7 @@ public class MesSaleOrderController extends BaseController @RequiresPermissions("mes:saleOrder:edit") @Log(title = "销售订单信息", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody MesSaleOrder mesSaleOrder) - { + public AjaxResult edit(@RequestBody MesSaleOrder mesSaleOrder) { return toAjax(mesSaleOrderService.updateMesSaleOrder(mesSaleOrder)); } @@ -101,23 +96,24 @@ public class MesSaleOrderController extends BaseController */ @RequiresPermissions("mes:saleOrder:remove") @Log(title = "销售订单信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{saleOrderIds}") - public AjaxResult remove(@PathVariable Long[] saleOrderIds) - { + @DeleteMapping("/{saleOrderIds}") + public AjaxResult remove(@PathVariable Long[] saleOrderIds) { return toAjax(mesSaleOrderService.deleteMesSaleOrderBySaleOrderIds(saleOrderIds)); } - /** * 库存转销售订单 */ @InnerAuth @Log(title = "销售订单信息", businessType = BusinessType.TRANSFER) - @PostMapping(value="/transferSaleOrders") - public R transferSaleOrders(@RequestBody MesSaleOrderTransferVo mesSaleOrderTransferVo) - { - return R.ok(mesSaleOrderService.transferSaleOrders(mesSaleOrderTransferVo)); + @PostMapping(value = "/transferSaleOrders") + public R transferSaleOrders(@RequestBody MesSaleOrderTransferVo mesSaleOrderTransferVo) { + try { + return R.ok(mesSaleOrderService.transferSaleOrders(mesSaleOrderTransferVo)); + } catch (Exception e) { + return R.fail(e.getMessage()); + } } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesSaleOrderService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesSaleOrderService.java index 57287866..c7763999 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesSaleOrderService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesSaleOrderService.java @@ -2,6 +2,7 @@ package com.hw.mes.service; import java.util.List; +import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.mes.api.domain.vo.MesSaleOrderTransferVo; import com.hw.mes.domain.MesSaleOrder; diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java index c2e08f79..e9351163 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java @@ -8,6 +8,7 @@ import com.hw.common.core.utils.DateUtils; import com.hw.common.core.utils.StringUtils; import com.hw.common.security.utils.SecurityUtils; import com.hw.mes.api.domain.MesBaseBarcodeInfo; +import com.hw.mes.api.domain.vo.MesBaseBarcodeInfoTransferVo; import com.hw.mes.api.domain.vo.MesSaleOrderTransferVo; import com.hw.mes.mapper.MesBaseBarcodeInfoMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -144,14 +145,18 @@ public class MesSaleOrderServiceImpl implements IMesSaleOrderService { mesSaleOrderMapper.updateMesSaleOrder(newSaleOrder); } - List mesBaseBarcodeInfos = mesSaleOrderTransferVo.getMesBaseBarcodeInfos(); + List mesBaseBarcodeInfoTransferVos = mesSaleOrderTransferVo.getMesBaseBarcodeInfoTransferVos(); int updateSize = 0; - for (MesBaseBarcodeInfo mesBaseBarcodeInfo : mesBaseBarcodeInfos) { - MesBaseBarcodeInfo dbMesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(mesBaseBarcodeInfo.getBarcodeInfo()); + for (MesBaseBarcodeInfoTransferVo mesBaseBarcodeInfoTransferVo : mesBaseBarcodeInfoTransferVos) { + MesBaseBarcodeInfo dbMesBaseBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(mesBaseBarcodeInfoTransferVo.getBarcodeInfo()); if (dbMesBaseBarcodeInfo == null) { return false; } + MesBaseBarcodeInfo mesBaseBarcodeInfo = new MesBaseBarcodeInfo(); mesBaseBarcodeInfo.setBarcodeId(dbMesBaseBarcodeInfo.getBarcodeId()); + mesBaseBarcodeInfo.setSaleOrderId(mesBaseBarcodeInfoTransferVo.getSaleOrderId()); + mesBaseBarcodeInfo.setSaleorderCode(mesBaseBarcodeInfoTransferVo.getSaleOrderCode()); + mesBaseBarcodeInfo.setSafeFlag(mesBaseBarcodeInfoTransferVo.getSafeFlag()); mesBaseBarcodeInfo.setUpdateBy(SecurityUtils.getUsername()); mesBaseBarcodeInfo.setUpdateTime(DateUtils.getNowDate()); updateSize += mesBaseBarcodeInfoMapper.updateMesBaseBarcodeInfo(mesBaseBarcodeInfo); 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 de012962..25b541ff 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.Constants; import com.hw.common.core.constant.MesConstants; import com.hw.common.core.constant.SecurityConstants; import com.hw.common.core.constant.WmsConstants; @@ -16,6 +17,7 @@ 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.MesBaseBarcodeInfoTransferVo; import com.hw.mes.api.domain.vo.MesSaleOrderTransferVo; import com.hw.wms.config.WmsConfig; import com.hw.wms.domain.WmsBaseLocation; @@ -222,8 +224,8 @@ public class WmsStockTotalServiceImpl implements IWmsStockTotalService { throw new ServiceException("没有销售订单成品库存信息"); } - for(WmsStockTotal stockTotal:stockTotalList){ - if(stockTotal.getProductId().equals(0L)){ + for (WmsStockTotal stockTotal : stockTotalList) { + if (stockTotal.getProductId().equals(0L)) { stockTotal.setMaterialCode("1111|222"); } } @@ -439,21 +441,21 @@ public class WmsStockTotalServiceImpl implements IWmsStockTotalService { throw new ServiceException("没有可转库存明细"); } if (wmsProductStocks.size() < transferAmount.intValue()) { - throw new ServiceException("可转库存明细数量为%s", wmsProductStocks.size()); + throw new ServiceException("可转库存明细数量为" + wmsProductStocks.size()); } - List mesBaseBarcodeInfos = new ArrayList<>(); + List mesBaseBarcodeInfoTransferVos = new ArrayList<>(); for (WmsProductStock wmsProductStock : wmsProductStocks) { - MesBaseBarcodeInfo mesBaseBarcodeInfo = new MesBaseBarcodeInfo(); - mesBaseBarcodeInfo.setSaleOrderId(saleOrderId); - mesBaseBarcodeInfo.setSaleorderCode(saleorderCode); - mesBaseBarcodeInfo.setSafeFlag(safeFlag); - mesBaseBarcodeInfo.setBarcodeInfo(wmsProductStock.getProductBatch()); - mesBaseBarcodeInfos.add(mesBaseBarcodeInfo); + MesBaseBarcodeInfoTransferVo mesBaseBarcodeInfoTransferVo = new MesBaseBarcodeInfoTransferVo(); + mesBaseBarcodeInfoTransferVo.setSaleOrderId(saleOrderId); + mesBaseBarcodeInfoTransferVo.setSaleOrderCode(saleorderCode); + mesBaseBarcodeInfoTransferVo.setSafeFlag(safeFlag); + mesBaseBarcodeInfoTransferVo.setBarcodeInfo(wmsProductStock.getProductBatch()); + mesBaseBarcodeInfoTransferVos.add(mesBaseBarcodeInfoTransferVo); wmsProductStock.setSafeFlag(safeFlag); wmsProductStock.setSaleOrderId(saleOrderId); - wmsProductStock.setSaleorderCode(saleorderCode); + wmsProductStock.setSaleorderCode(saleorderCode == null ? "" : saleorderCode); wmsProductStock.setUpdateDate(new Date()); wmsProductStock.setUpdateBy(SecurityUtils.getUsername()); wmsProductStockMapper.updateWmsProductStock(wmsProductStock); @@ -464,13 +466,19 @@ public class WmsStockTotalServiceImpl implements IWmsStockTotalService { mesSaleOrderTransferVo.setOldSaleOrderId(wmsStockTotal.getSaleOrderId()); mesSaleOrderTransferVo.setNewSaleOrderId(saleOrderId); mesSaleOrderTransferVo.setMaterialId(materialId); - mesSaleOrderTransferVo.setMesBaseBarcodeInfos(mesBaseBarcodeInfos); + mesSaleOrderTransferVo.setMesBaseBarcodeInfoTransferVos(mesBaseBarcodeInfoTransferVos); - R transferBaseBarcodeInfosResult = remoteMesService.transferSaleOrders(mesSaleOrderTransferVo, SecurityConstants.INNER); - if (!transferBaseBarcodeInfosResult.getData()) { - throw new RuntimeException("销售订单信息转换失败"); + System.out.println(mesSaleOrderTransferVo.toString()); + + R transferBaseBarcodeInfosResult = remoteMesService.transferSaleOrders(mesSaleOrderTransferVo, SecurityConstants.INNER); + if (transferBaseBarcodeInfosResult.getCode() != Constants.SUCCESS) {//抛出异常,回滚事务 + throw new RuntimeException(transferBaseBarcodeInfosResult.getMsg()); } +// if (!transferBaseBarcodeInfosResult.getData()) { +// throw new RuntimeException("销售订单信息转换失败"); +// } + return 1; } diff --git a/hw-ui/src/api/board/barcode.js b/hw-ui/src/api/board/barcode.js index e2d81d0a..352bf96e 100644 --- a/hw-ui/src/api/board/barcode.js +++ b/hw-ui/src/api/board/barcode.js @@ -65,8 +65,8 @@ export function addInternalBarcode(data) { }) } -//根据原材料条码判断是否有半成品出库 export function checkSemiOutstock(query) { +//根据原材料条码判断是否有半成品出库 return request({ url: '/wms/api/checkSemiOutstock', method: 'get', diff --git a/hw-ui/src/views/mes/productOrder/index.vue b/hw-ui/src/views/mes/productOrder/index.vue index 99c150ae..9493f185 100644 --- a/hw-ui/src/views/mes/productOrder/index.vue +++ b/hw-ui/src/views/mes/productOrder/index.vue @@ -1235,9 +1235,21 @@ export default { handleMaterialUsage(row) { this.materialUsageOpen = true; this.materialUsageList = []; + this.loading = true; + //先根据bom找到需要的物料信息 + let warehouseFloor = 0; + if(row.dispatchId === 2){ + warehouseFloor = 3; + }else if(row.dispatchId === 3){ + warehouseFloor = 4; + }else if(row.dispatchId === 4){ + warehouseFloor = 5; + } + getMaterialUsages(row).then(response => { let materialUsageList = response.data; - getStockTotalWithRawOutstocks({saleOrderId: row.saleOrderId}).then(response => { + //根据销售订单ID或者安全库存找到总库存信息 + getStockTotalWithRawOutstocks({saleOrderId: row.saleOrderId,warehouseFloor:warehouseFloor}).then(response => { let stockMapJson = response.data; let totalAmountMap = stockMapJson.totalAmountMap; let occupyAmountMap = stockMapJson.occupyAmountMap; @@ -1248,10 +1260,16 @@ export default { objA.totalAmount = totalAmountMap[objA.materialId]; objA.outstockAmount = outstockAmountMap[objA.materialId]; objA.occupyAmount = occupyAmountMap[objA.materialId]; + + objA.totalAmount = objA.totalAmount ? objA.totalAmount : 0; + objA.outstockAmount = objA.outstockAmount ? objA.outstockAmount : 0; + objA.occupyAmount = objA.occupyAmount ? objA.occupyAmount : 0; + objA.availableAmount = objA.totalAmount -objA.occupyAmount; // return returnObj; // 如果没有找到匹配项,则直接返回原对象 }); + this.loading = false; this.materialUsageList = materialUsageList; // console.log(this.materialUsageList) }) diff --git a/hw-ui/src/views/wms/info/stocktotal/index.vue b/hw-ui/src/views/wms/info/stocktotal/index.vue index 6e9e4c3e..04d8593d 100644 --- a/hw-ui/src/views/wms/info/stocktotal/index.vue +++ b/hw-ui/src/views/wms/info/stocktotal/index.vue @@ -181,21 +181,6 @@ 库位库存明细信息 - - - 转库存 - - - - @@ -235,6 +220,23 @@ + + + + + + - + @@ -283,7 +285,7 @@ @@ -298,14 +300,13 @@ - - + - - - + + + @@ -436,15 +437,15 @@ export default { VIRTUAL: "2" }, - RAW_BARCODE_VIRTUAL:{ - EXTERNAL_VIRTUAL:"VR",//外部采购合并的虚拟物料条码标识 - INTERNAL_VIRTUAL:"RN",//内部生产合并的虚拟物料条码标识 + RAW_BARCODE_VIRTUAL: { + EXTERNAL_VIRTUAL: "VR",//外部采购合并的虚拟物料条码标识 + INTERNAL_VIRTUAL: "RN",//内部生产合并的虚拟物料条码标识 }, selectSaleOrderVisible: false, - - materialListOpen : false, - materialList:[] + submitLoading:false, + materialListOpen: false, + materialList: [] }; }, watch: { @@ -637,10 +638,9 @@ export default { // 库位库存明细信息多选框选中数据 handleRawStockSelectionChange(selection) { - return; let index = 0; selection.forEach(row => { - index = this.rawstockList.indexOf(row); + index = this.rawstockList.indexOf(row); }); this.instockBatches = selection.map((item, index1) => index + "-" + item.instockBatch); this.rawStockIds = selection.map((item, index1) => index + "-" + item.rawStockId); @@ -649,13 +649,25 @@ export default { this.multiple = !selection.length }, - handleTransfer() { + handleTransfer(row) { this.reset(); this.transferType = "2"; - this.rawStockInfosStr = this.rawStockInfos.join("
"); + let index = this.rawstockList.indexOf(row) + this.form.instockBatch = row.instockBatch + this.form.rawStockId = row.rawStockId + this.form.indexStockIds =[index + "-" + row.rawStockId]; + this.form.index = index; + this.rawStockInfosStr = "序号:" + (index + 1) + ",物料编码:" + row.materialCode + " 物料名称:" + row.materialName + " 物料规格:" + row.materialSpec + " 数量:" + row.totalAmount + " 销售订单:" + (row.saleorderCode ? row.saleorderCode : "无"); this.open = true; }, + // handleTransfer() { + // this.reset(); + // this.transferType = "2"; + // this.rawStockInfosStr = this.rawStockInfos.join("
"); + // this.open = true; + // }, + handleSaleOrderSelect() { this.selectSaleOrderVisible = true; }, @@ -663,7 +675,8 @@ export default { /** 提交选择销售订单按钮 */ submitSelectSaleOrderForm() { let selectedRow = this.$refs.selectSaleOrderRef.selectedRow; - if(selectedRow.materialId!==this.form.materialId){ + //成品库存需要校验物料信息是否相同 + if (this.type === this.STOCK_TYPE.PRODUCT && selectedRow.materialId !== this.form.materialId) { this.$modal.msgWarning("请选择相同物料的销售订单"); return; } @@ -675,36 +688,60 @@ export default { submitForm() { this.$refs["form"].validate(valid => { if (valid) { + this.submitLoading = true; if (this.form.safeFlag === this.SAFE_FLAG.YES) { this.form.saleOrderId = 0; this.form.saleorderCode = null; } - if (this.type === this.STOCK_TYPE.PRODUCT) { + if (this.type === this.STOCK_TYPE.PRODUCT) { //转成品库存 + if(this.form.transferAmount < 1){ + this.$modal.msgWarning('请输入整数'); + this.submitLoading = false; + return; + }else if (!Number.isInteger(this.form.transferAmount)) { + this.$modal.msgWarning('请输入整数'); + // this.value = Math.floor(value); // 重置为最接近的整数 + this.submitLoading = false; + return; + } + + + transferProductStockTotal(this.form).then(response => { this.$modal.msgSuccess("转库存成功"); this.open = false; this.getList(); this.getTwoList(); + }).finally(e=>{ + this.submitLoading = false; }); } else if (this.type === this.STOCK_TYPE.RAW) { - if (this.transferType === '1') { + if (this.transferType === '1') {//转总库存的原材料库存 + if(this.form.transferAmount < 1){ + this.$modal.msgWarning('待转数量请输入整数'); + this.submitLoading = false; + return; + }else if (!Number.isInteger(this.form.transferAmount)) { + this.$modal.msgWarning('待转数量请输入整数'); + // this.value = Math.floor(value); // 重置为最接近的整数 + this.submitLoading = false; + return; + } + transferRawStockTotal(this.form).then(response => { this.$modal.msgSuccess("转库存成功"); this.open = false; this.getList(); this.getTwoList(); + }).finally(e=>{ + this.submitLoading = false; }); } else if (this.transferType === '2') { - this.form.indexStockIds = this.rawStockIds; - for(const instockBatchStr of this.instockBatches){ - let instockBatchStrArr = instockBatchStr.split("-"); - let instockBatchIndex = parseInt(instockBatchStrArr[0]); - let instockBatch = instockBatchStrArr[1]; - if(instockBatch.indexOf(this.RAW_BARCODE_VIRTUAL.EXTERNAL_VIRTUAL) >=0 || instockBatch.indexOf(this.RAW_BARCODE_VIRTUAL.INTERNAL_VIRTUAL) >=0){ - this.$modal.msgSuccess("序号:"+(instockBatchIndex+1)+",是虚拟合并的物料,不能转库存"); - return; - } + if (this.form.instockBatch.indexOf(this.RAW_BARCODE_VIRTUAL.EXTERNAL_VIRTUAL) >= 0 || this.form.instockBatch.indexOf(this.RAW_BARCODE_VIRTUAL.INTERNAL_VIRTUAL) >= 0) { + this.$modal.msgWarning("序号:" + (parseInt(this.form.index) + 1) + ",是虚拟合并的物料,不能转库存"); + this.submitLoading = false; + return; } transferRaw(this.form).then(response => { @@ -712,6 +749,8 @@ export default { this.open = false; this.getList(); this.getTwoList(); + }).finally(e=>{ + this.submitLoading = false; }); } } @@ -733,9 +772,9 @@ export default { }, - handleViewMaterialInfos(row){ + handleViewMaterialInfos(row) { this.materialListOpen = true; - selectMaterialInfosByVirtualMaterialId({materialId:row.materialId}).then(response => { + selectMaterialInfosByVirtualMaterialId({materialId: row.materialId}).then(response => { this.materialList = response.rows; }); }