From bcbff529977768c5c80714f45d52b4f36629d236 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期一, 16 六月 2025 18:00:30 +0800 Subject: [PATCH] 1.生产加工 2.文件上传 --- main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-) diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java index 28f3652..84bed74 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.business.dto.ProductionMasterDto; +import com.ruoyi.business.entity.OfficialInventory; import com.ruoyi.business.entity.Production; import com.ruoyi.business.entity.ProductionInventory; import com.ruoyi.business.entity.ProductionMaster; @@ -13,6 +14,7 @@ import com.ruoyi.business.mapper.ProductionMapper; import com.ruoyi.business.mapper.ProductionMasterMapper; import com.ruoyi.business.service.ProductionMasterService; +import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.bean.BeanUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -122,7 +124,7 @@ BigDecimal totalTotalCost = BigDecimal.ZERO; BigDecimal totalEquipmentDepreciation = BigDecimal.ZERO; int totalProductionQuantity = 0; - StringBuilder coalBuilder = new StringBuilder("["); // 浼樺寲瀛楃涓叉嫾鎺� + StringBuilder coalBuilder = new StringBuilder(); for (Production production : productionMasterDto.getProductionList()) { totalPurchasePrice = totalPurchasePrice.add(production.getPurchasePrice()); @@ -131,12 +133,12 @@ totalTotalCost = totalTotalCost.add(production.getTotalCost()); totalEquipmentDepreciation = totalEquipmentDepreciation.add(production.getEquipmentDepreciation()); totalProductionQuantity += production.getProductionQuantity(); - coalBuilder.append(production.getCoal()).append(","); + if (coalBuilder.length() > 0) { + coalBuilder.append(","); // 鍦ㄥ厓绱犱箣闂存坊鍔犻�楀彿 + } + coalBuilder.append(production.getCoal()); } - - // 澶勭悊coal瀛楃涓叉嫾鎺� - String coalStr = coalBuilder.length() > 1 ? - coalBuilder.deleteCharAt(coalBuilder.length()-1).append("]").toString() : "[]"; + String coalStr = coalBuilder.toString(); // 鐩存帴鑾峰彇鎷兼帴缁撴灉 // 2. 鍒涘缓涓昏〃瀵硅薄 ProductionMaster productionMaster = new ProductionMaster(); @@ -155,7 +157,7 @@ productionMasterMapper.insert(productionMaster); masterId = productionMaster.getId(); // 鑾峰彇鏂扮敓鎴愮殑ID } else { - // 鍒犻櫎鍏宠仈瀛愯〃鏁版嵁锛堜娇鐢ㄦ洿楂樻晥鐨刬n鍒犻櫎锛� + // 鍒犻櫎鍏宠仈瀛愯〃鏁版嵁 productionMapper.delete(new LambdaQueryWrapper<Production>() .eq(Production::getProductionMasterId, masterId)); @@ -164,7 +166,17 @@ productionMasterMapper.updateById(productionMaster); } - + //搴撳瓨鏇存柊 + for (ProductionInventory productionInventory : productionMasterDto.getProductionInventoryList()) { + OfficialInventory officialInventory = officialInventoryMapper.selectById(productionInventory.getOfficialId()); + BigDecimal subtract = officialInventory.getInventoryQuantity().subtract(new BigDecimal(productionInventory.getUsedQuantity())); + if (subtract.compareTo(BigDecimal.ZERO) < 0) { + throw new BaseException("搴撳瓨涓嶈冻"); + } + officialInventory.setInventoryQuantity(subtract); + officialInventoryMapper.updateById(officialInventory); + } + // 4. 鎵归噺鎻掑叆瀛愯〃鏁版嵁 batchInsertProductions(masterId, productionMasterDto.getProductionList()); batchInsertInventories(masterId, productionMasterDto.getProductionInventoryList()); -- Gitblit v1.9.3