From 1af7bb7430896375dafbd207f03c0892c0d809dc Mon Sep 17 00:00:00 2001 From: z Date: Tue, 1 Jul 2025 15:12:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8=E5=87=BA?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/orderys/OrderYsController.java | 5 +- .../admin/orderys/vo/OrderYsRespVO.java | 12 +-- .../vo/PartPurchaseOrderPageRespVO.java | 4 + .../PurchaseOrderMakeDetailMapper.java | 3 +- .../PartPurchaseOrderServiceImpl.java | 31 ++++--- .../PurchaseOrderNoDetailServiceImpl.java | 83 +++++++++++++++++-- .../storagein/StorageInServiceImpl.java | 73 +++++++++++++++- .../src/views/heli/orderys/OrderYsForm.vue | 36 ++++---- .../src/views/heli/partpurchase/index.vue | 29 ++----- .../views/heli/partpurchasecheck/detail.vue | 5 ++ .../views/heli/partpurchaseorder/index.vue | 21 ++--- .../src/views/heli/purchaseorderno/detail.vue | 40 ++++----- 12 files changed, 240 insertions(+), 102 deletions(-) diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java index 42c7dd6..538c7d6 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/OrderYsController.java @@ -66,9 +66,8 @@ public class OrderYsController { @Operation(summary = "获得应收记录") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('heli:order-ys:query')") - public CommonResult getOrderYs(@RequestParam("id") Integer id) { - OrderYsDO orderYs = orderYsService.getOrderYs(id); - return success(BeanUtils.toBean(orderYs, OrderYsRespVO.class)); + public CommonResult getOrderYs(@RequestParam("id") Integer id) { + return success(orderYsService.getOrderYs(id)); } @GetMapping("/page") diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java index 4a1886d..9d3c378 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/orderys/vo/OrderYsRespVO.java @@ -59,14 +59,14 @@ public class OrderYsRespVO { @ExcelProperty("备注") private String rem; - private BigDecimal shouFuKuanBiLi; + private BigDecimal shouFuKuan; - private BigDecimal twoFuKuanBiLi; + private BigDecimal twoFuKuan; - private BigDecimal threeFuKuanBiLi; + private BigDecimal threeFuKuan; - private BigDecimal fourFuKuanBiLi; - private BigDecimal fiveFuKuanBiLi; - private BigDecimal sixFuKuanBiLi; + private BigDecimal fourFuKuan; + private BigDecimal fiveFuKuan; + private BigDecimal sixFuKuan; } \ No newline at end of file diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java index a2bb011..8dba46a 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/controller/admin/purchaseordermake/vo/PartPurchaseOrderPageRespVO.java @@ -171,4 +171,8 @@ public class PartPurchaseOrderPageRespVO extends BaseDO { * 单据状态,0 待送审,1已送审,2已审核,3已打回 ,默认是1 */ private Integer status; + private String isFoam; + private Long projectId; + private Long projectPlanId; + private String customerId; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java index 4541882..ae1be5c 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/dal/mysql/purchaseordermakedetail/PurchaseOrderMakeDetailMapper.java @@ -92,6 +92,7 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX pageResult = selectJoinPage(pageReqVO, PartPurchaseOrderPageRespVO.class, query); return pageResult; } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java index 44a3e62..d689eb7 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/partpurchaseorder/PartPurchaseOrderServiceImpl.java @@ -134,14 +134,25 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ purchaseOrderNoDetailDO.setUpdateTime(null); purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId); purchaseOrderNoDetailDO.setPurchaseRemAmount(detailDO.getPurchaseAmount()); + PurchaseOrderMakeDetailDO orderMakeDetailDO = purchaseOrderMakeDetailMapper.selectById(detailDO.getId()); + if (ObjectUtil.isNotEmpty(orderMakeDetailDO)){ + PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(orderMakeDetailDO.getPurchaseOrderId()); + if (ObjectUtil.isNotEmpty(orderMakeDO)){ + purchaseOrderNoDetailDO.setProjectId(orderMakeDO.getProjectId()); + purchaseOrderNoDetailDO.setProjectPlanId(orderMakeDO.getProjectPlanId()); + purchaseOrderNoDetailDO.setCustomerId(orderMakeDO.getCustomerId()); + } + } purchaseOrderNoDetailMapper.insert(purchaseOrderNoDetailDO); long purchaseOrderDetailId = purchaseOrderNoDetailDO.getId(); + PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO(); purchaseOrderMakeDetailDO.setId(detailDO.getId()); purchaseOrderMakeDetailDO.setOrderStatus(2); purchaseOrderMakeDetailDO.setPurchaseOrderNoId(purchaseOrderId); purchaseOrderMakeDetailDO.setPurchaseOrderNoDetailId(purchaseOrderDetailId); + purchaseOrderMakeDetailDO.setPurchaseNo(purchaseOrderNoDO.getPurchaseNo()); purchaseOrderMakeDetailMapper.updateById(purchaseOrderMakeDetailDO); }); @@ -165,10 +176,12 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ List materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", id); materialPlanBoomDOs.forEach(materialPlanBoomDO -> { - MaterialPlanBoomDO materialPlanBoom = new MaterialPlanBoomDO(); - materialPlanBoom.setId(materialPlanBoomDO.getId()); - materialPlanBoom.setMplanStatus(2); - materialPlanBoomMapper.updateById(materialPlanBoom); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", materialPlanBoomDO.getId()) + .set("mplan_status", 2) + .set("rej_remark", null); + + materialPlanBoomMapper.update(updateWrapper); }); return true; } @@ -181,11 +194,9 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ purchaseOrderMakeMapper.updateById(purchaseOrderMakeDO); purchaseOrderMakeMapper.deleteById(purchaseOrderMakeDO); - List list= purchaseOrderMakeDetailMapper.selectList("purchase_order_id", updateReqVO.getId()); - list.forEach(detailDO -> { - purchaseOrderNoDetailMapper.deleteById(detailDO); - }); - + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId, updateReqVO.getId()); + purchaseOrderMakeDetailMapper.delete(wrapper); List materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId()); materialPlanBoomDOs.forEach(materialPlanBoom -> { UpdateWrapper updateWrapper = new UpdateWrapper<>(); @@ -357,13 +368,13 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{ purchaseOrderMakeDetailDO.setTheWeight(updateReqVO.getTheWeight()); purchaseOrderMakeDetailDO.setDuEmpId(updateReqVO.getDuEmpId()); purchaseOrderMakeDetailDO.setIsFoam(updateReqVO.getIsFoam()); - purchaseOrderMakeDetailDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo); purchaseOrderMakeDetailMapper.insert(purchaseOrderMakeDetailDO); long purchaseOrderMakeDetailId = purchaseOrderMakeDetailDO.getId(); MaterialPlanBoomDO materialPlanBoomDO = new MaterialPlanBoomDO(); materialPlanBoomDO.setId(updateReqVO.getId()); materialPlanBoomDO.setMplanStatus(1); + materialPlanBoomDO.setRejRemark(""); materialPlanBoomDO.setProjectPurchaseOrderMakeId(purchaseOrderMakeId); materialPlanBoomDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo); materialPlanBoomDO.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailId); diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java index 956801c..d20c796 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/purchaseordernodetail/PurchaseOrderNoDetailServiceImpl.java @@ -10,19 +10,29 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.Materi import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplandetail.MaterialPlanDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper; +import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; import com.chanko.yunxi.mes.module.heli.service.procedure.ProcedureService; +import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; +import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordernodetail.vo.*; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; @@ -34,6 +44,9 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.Purchase import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; +import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_IN; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_OUT; import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; /** @@ -57,6 +70,16 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe private MaterialMapper materialMapper; @Resource private ProcessBomMapper pocessBomMapper; + @Resource + private SerialNumberService serialNumberService; + @Resource + private StorageMapper storageMapper; + @Resource + private StorageMatMapper storageMatMapper; + @Resource + private StorageService storageService; + + @Override public Long createPurchaseOrderNoDetail(PurchaseOrderNoDetailSaveReqVO createReqVO) { @@ -124,6 +147,36 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe @Transactional public CommonResult receiveGoods(List list) { List materialDOList=new ArrayList(); + //自动生成入库单 + StorageDO storageDO = new StorageDO(); + storageDO.setStockType(1); + // 月度流水号 + SerialNumberDO serialNumberDO = serialNumberService.getSerialNumber(CodeEnum.STOCK_IN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1); + // 入库前缀 + storageDO.setStockNo(STOCK_IN.getCode(serialNumberDO.getSerialNumber().toString())); + serialNumberService.updateSerialNumber(serialNumberDO); + storageDO.setStatus(2); + storageDO.setKeeper(getLoginUser().getId()); + storageDO.setKeeperTime(LocalDateTime.now()); + storageMapper.insert(storageDO); + //自动生成出库单 + StorageDO out = new StorageDO(); + out.setStockType(2); + // 月度流水号 + SerialNumberDO serialNumber = serialNumberService.getSerialNumber(CodeEnum.STOCK_OUT.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumber.setSerialNumber(serialNumber.getSerialNumber()+1); + // 出库前缀 + out.setStockNo(STOCK_OUT.getCode(serialNumber.getSerialNumber().toString())); + serialNumberService.updateSerialNumber(serialNumber); + out.setStatus(2); + out.setOutbound(getLoginUser().getId()); + out.setOutboundTime(LocalDateTime.now()); + storageMapper.insert(out); + //入库物料集合 + ArrayList storageMatDOS = new ArrayList<>(); + //出库库物料集合 + ArrayList outList = new ArrayList<>(); for (PurchaseOrderNoDetailDO detailDO : list) { PurchaseOrderNoDetailDO byId = purchaseOrderNoDetailMapper.selectById(detailDO.getId()); if (ObjectUtil.isNotEmpty(byId)){ @@ -134,6 +187,16 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe } byId.setPurchaseRemAmount(byId.getPurchaseRemAmount().subtract(detailDO.getPurchaseRemAmounts())); purchaseOrderNoDetailMapper.updateById(byId); + StorageMatDO storageMatDO = new StorageMatDO(); + StorageMatDO outMat = new StorageMatDO(); + storageMatDO.setStockId(storageDO.getId()); + storageMatDO.setStorageOkQty(detailDO.getPurchaseRemAmounts()); + storageMatDO.setProjectNo(byId.getProjectPlanSubId().toString()); + storageMatDO.setProjectSubName(byId.getName()); + outMat.setStockId(out.getId()); + outMat.setStorageOkQty(detailDO.getPurchaseRemAmounts()); + outMat.setProjectNo(byId.getProjectPlanSubId().toString()); + outMat.setProjectSubName(byId.getName()); ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(detailDO.getBoomDetailId()); if (ObjectUtil.isNotEmpty(bomDetailDO)){ String bomCode=""; @@ -150,9 +213,7 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe } } if (ObjectUtil.isNotEmpty(bomDetailDO.getBlueprintNo())){ - if (ObjectUtil.isNotEmpty(processBomDO.getBlueprintNo())){ blueprintNo=bomDetailDO.getBlueprintNo(); - } } MaterialPlanBoomDO boomDO = materialPlanBoomMapper.selectById(detailDO.getProjectMaterialPlanBoomId()); if (ObjectUtil.isNotEmpty(boomDO)){ @@ -170,13 +231,25 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe materialDO.setVirtualPart("Y"); MaterialDO material = materialMapper.selectMaterial(code); if (ObjectUtil.isEmpty(material)){ - materialDOList.add(materialDO); - +// materialDOList.add(materialDO); + materialMapper.insert(materialDO); + storageMatDO.setMatId(materialDO.getId()); + outMat.setMatId(materialDO.getId()); + }else { + storageMatDO.setMatId(material.getId()); + outMat.setMatId(material.getId()); } } + storageMatDOS.add(storageMatDO); + outList.add(outMat); } } - materialMapper.insertBatch(materialDOList); + storageMatMapper.insertBatch(storageMatDOS); + storageMatMapper.insertBatch(outList); + storageService.updateMatLogList(storageDO.getId(),2); + storageService.updateMatLogList(out.getId(),2); + +// materialMapper.insertBatch(materialDOList); return success(true); } diff --git a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java index ed2667e..5b4fe2f 100644 --- a/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java +++ b/mes-module-heli/mes-module-heli-biz/src/main/java/com/chanko/yunxi/mes/module/heli/service/storagein/StorageInServiceImpl.java @@ -8,11 +8,17 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.Stor import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO; +import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storageindetail.StorageInDetailMapper; +import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper; +import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService; +import com.chanko.yunxi.mes.module.heli.service.storage.StorageService; import com.sun.corba.se.spi.ior.IdentifiableFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -22,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -34,8 +41,8 @@ import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagein.StorageInMapper; import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PURCHASE_ORDER; -import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_IN; +import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; +import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.*; import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; /** @@ -57,6 +64,12 @@ public class StorageInServiceImpl implements StorageInService { private SerialNumberService serialNumberService; @Resource private PurchaseOrderNoMapper purchaseOrderNoMapper; + @Resource + private StorageMapper storageMapper; + @Resource + private StorageMatMapper storageMatMapper; + @Resource + private StorageService storageService; @Override public Long createStorageIn(StorageInSaveReqVO createReqVO) { // 插入 @@ -185,6 +198,10 @@ public class StorageInServiceImpl implements StorageInService { } StorageInDO storageInDO = new StorageInDO(); + //入库物料集合 + ArrayList storageMatDOS = new ArrayList<>(); + //出库库物料集合 + ArrayList outList = new ArrayList<>(); // 月度流水号 SerialNumberDO serialNumberDO = new SerialNumberDO(); serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); @@ -195,8 +212,54 @@ public class StorageInServiceImpl implements StorageInService { storageInDO.setIsPrint("N"); storageInDO.setOrdDate(new Date()); storageInMapper.insert(storageInDO); + // 回写序列记录 + serialNumberService.updateSerialNumber(serialNumberDO); + //自动生成入库单 + StorageDO storageDO = new StorageDO(); + storageDO.setStockType(1); + // 月度流水号 + SerialNumberDO serialNumberDO1 = serialNumberService.getSerialNumber(CodeEnum.STOCK_IN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumberDO1.setSerialNumber(serialNumberDO1.getSerialNumber()+1); + // 入库前缀 + storageDO.setStockNo(STOCK_IN.getCode(serialNumberDO1.getSerialNumber().toString())); + serialNumberService.updateSerialNumber(serialNumberDO1); + storageDO.setStatus(2); + storageDO.setKeeper(getLoginUser().getId()); + storageDO.setKeeperTime(LocalDateTime.now()); + storageMapper.insert(storageDO); + //自动生成出库单 + StorageDO out = new StorageDO(); + out.setStockType(2); + // 月度流水号 + SerialNumberDO serialNumber = serialNumberService.getSerialNumber(CodeEnum.STOCK_OUT.name(), new SimpleDateFormat("yyyyMMdd").format(new Date())); + serialNumber.setSerialNumber(serialNumber.getSerialNumber()+1); + // 出库前缀 + out.setStockNo(STOCK_OUT.getCode(serialNumber.getSerialNumber().toString())); + serialNumberService.updateSerialNumber(serialNumber); + out.setStatus(2); + out.setOutbound(getLoginUser().getId()); + out.setOutboundTime(LocalDateTime.now()); + storageMapper.insert(out); List storageInDetailDOList = new ArrayList<>(); for (PurchaseOrderNoDetailDO orderNoDetailDO : list) { + //入库明细 + StorageMatDO storageMatDO = new StorageMatDO(); + storageMatDO.setStockId(storageDO.getId()); + storageMatDO.setStorageOkQty(orderNoDetailDO.getPurchaseRemAmounts()); + storageMatDO.setProjectNo(ObjectUtil.isEmpty(orderNoDetailDO.getProjectPlanSubId())?null:orderNoDetailDO.getProjectPlanSubId().toString()); + storageMatDO.setProjectSubName(orderNoDetailDO.getName()); + storageMatDO.setMatId(orderNoDetailDO.getMaterialId()); + storageMatDOS.add(storageMatDO); + //出库明细 + StorageMatDO outMat = new StorageMatDO(); + outMat.setStockId(out.getId()); + outMat.setStorageOkQty(orderNoDetailDO.getPurchaseRemAmounts()); + outMat.setProjectNo(ObjectUtil.isEmpty(orderNoDetailDO.getProjectPlanSubId())?null:orderNoDetailDO.getProjectPlanSubId().toString()); + outMat.setProjectSubName(orderNoDetailDO.getName()); + outMat.setMatId(orderNoDetailDO.getMaterialId()); + outList.add(outMat); + + StorageInDetailDO storageInDetailDO = new StorageInDetailDO(); storageInDetailDO.setStorageNoId(storageInDO.getId()); storageInDetailDO.setProjectSubCode(orderNoDetailDO.getProjectSubCode()); @@ -250,8 +313,10 @@ public class StorageInServiceImpl implements StorageInService { storageInDetailDOList.add(storageInDetailDO); } storageInDetailMapper.insertBatch(storageInDetailDOList); - // 回写序列记录 - serialNumberService.updateSerialNumber(serialNumberDO); + storageMatMapper.insertBatch(storageMatDOS); + storageMatMapper.insertBatch(outList); + storageService.updateMatLogList(storageDO.getId(),2); + storageService.updateMatLogList(out.getId(),2); return CommonResult.success(true); } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue index ca9bc41..b589c8e 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/orderys/OrderYsForm.vue @@ -78,35 +78,35 @@ > - - + + - - + + - - + + - - + + - - + + - - + + @@ -209,12 +209,12 @@ const formData = ref({ orderYsDetails: [], rem: undefined, amount:undefined, - shouFuKuanBiLi:undefined, - twoFuKuanBiLi:undefined, - threeFuKuanBiLi:undefined, - fourFuKuanBiLi:undefined, - fiveFuKuanBiLi:undefined, - sixFuKuanBiLi:undefined + shouFuKuan:undefined, + twoFuKuan:undefined, + threeFuKuan:undefined, + fourFuKuan:undefined, + fiveFuKuan:undefined, + sixFuKuan:undefined }) // const subFormRules = reactive({ // paymentDate: [{ diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchase/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchase/index.vue index 4b9fc0a..b704a50 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchase/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchase/index.vue @@ -145,6 +145,7 @@ }} + @@ -161,21 +162,15 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' import download from '@/utils/download' import { useCommonStateWithOut } from '@/store/modules/common' -import UserSelect from "@/views/heli/materialplan/userSelectNew.vue"; import {inject, ref} from "vue"; import * as MaterialPlanApi from "@/api/heli/materialplan"; import * as MaterialPlanBoomApi from "@/api/heli/materialplanboom"; import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder"; import {ElTable} from "element-plus"; import {useUserStore} from "@/store/modules/user"; -import {dateFormatter1} from "@/utils/formatTime"; -import {getPartPurchasePages} from "@/api/heli/materialplan"; import SupplierSelect from "@/views/heli/hlvuestyle/supplierSelect.vue"; -import {getMaterialPlanBoom} from "@/api/heli/materialplanboom"; -import {createPurchaseOrderMake} from "@/api/heli/partpurchaseorder"; const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 -defineOptions({ name: 'standard' }) const userStore = useUserStore() const username = userStore.getUser.nickname const reload: any = inject('reload') @@ -215,8 +210,16 @@ const exportLoading = ref(false) // 导出的加载中 const getList = async () => { loading.value = true try { + list.value=[] const data = await MaterialPlanApi.getPartPurchasePages(queryParams) list.value = data.list + list.value.forEach(item=> { + if(item.isFoams == 'Y'){ + item.isFoams = true + }else{ + item.isFoams = false + } + }) total.value = data.total } finally { loading.value = false @@ -237,22 +240,16 @@ const handleExportDetail = async () => { } } const handleOutsourcingChange= async (row: any) => { - console.log(1) if(row.isFoams == false){ row.isFoam = 'N' - console.log(2) }else{ - console.log(3) row.isFoam = 'Y' - console.log(row.isFoam) } } const handleSelectionChange = (val) => { // multipleTable.value.clearSelection() multipleTable.value=val - console.log( val) - console.log( multipleTable.value) } /** 搜索按钮操作 */ const handleQuery = () => { @@ -267,14 +264,6 @@ const handleSelectedUser = (currentIndex, newValue: any) => { list.value[currentIndex].supplierIds = newValue?.id } -const singleSubmission= (val) =>{ - multipleTable.value=[] - multipleTable.value.push(val) - submitForm(); -} -const routerToPurchaseOrderNo=()=>{ - router.push({ path: '/purchase/purchaseorderno'}); -} const singleSubmissions=()=>{ submitForm(); } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue index 69bd4e8..335d638 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchasecheck/detail.vue @@ -42,6 +42,11 @@ + + + diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchaseorder/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchaseorder/index.vue index c07f26e..b1c8824 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchaseorder/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/partpurchaseorder/index.vue @@ -215,20 +215,13 @@ const submitForm = async () => { } // // 3. 校验每个零件 - // for (const item of list) { - // if (item.projectMaterialPlanNo) { - // message.error(`工序${item.procedureName}中零件 ${item.materialName} 已生成物料需求计划,请确认`); - // return; - // } - // if (!item.boomArriveDate) { // 注意:原代码是 boomArriveDate,确保拼写正确 - // message.error(`工序${item.procedureName}中零件 ${item.materialName} 要求完成日期为空,请确认`); - // return; - // } - // if (!item.duEmpId) { - // message.error(`工序${item.procedureName}中零件 ${item.materialName} 责任人为空,请确认`); - // return; - // } - // } + for (const item of list) { + if (item.orderStatus==2) { + message.error(`工序${item.procedureName}中零件 ${item.boomName} 已生成采购订单,请确认`); + return; + } + + } // 4. 添加加载状态(Element Plus 兼容处理) formLoading.value = true; diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue index 0e18dce..bfb4c70 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/purchaseorderno/detail.vue @@ -81,6 +81,7 @@ 收货 打印 删除 + 取 消 @@ -107,7 +108,7 @@ 联系人:{{ printData.contactName }} 电话:{{ printData.contactMobile }} - + @@ -183,7 +184,7 @@ - +