From d346846239a8a39246c464dc634f5fd72add99ab Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期二, 26 八月 2025 15:22:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/pim-jlmy' into pim-jlmy --- main-business/src/main/java/com/ruoyi/business/service/impl/ProductionSchedulingServiceImpl.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 103 insertions(+), 0 deletions(-) diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionSchedulingServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionSchedulingServiceImpl.java new file mode 100644 index 0000000..0ce8ddb --- /dev/null +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionSchedulingServiceImpl.java @@ -0,0 +1,103 @@ +package com.ruoyi.business.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.business.entity.Production; +import com.ruoyi.business.entity.ProductionScheduling; +import com.ruoyi.business.mapper.ProductionMapper; +import com.ruoyi.business.mapper.ProductionSchedulingMapper; +import com.ruoyi.business.service.ProductionSchedulingService; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.system.mapper.SysUserMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; + +/** + * @author :yys + * @date : 2025/8/25 16:38 + */ +@Service +@Slf4j +public class ProductionSchedulingServiceImpl extends ServiceImpl<ProductionSchedulingMapper, ProductionScheduling> implements ProductionSchedulingService { + + @Autowired + private ProductionSchedulingMapper productionSchedulingMapper; + + @Autowired + private ProductionMapper productionMapper; + + @Autowired + private SysUserMapper sysUserMapper; + + @Autowired + private ProductionMasterServiceImpl productionMasterService; + + @Override + public IPage<ProductionScheduling> listPage(Page<ProductionScheduling> page, ProductionScheduling productionScheduling) { + return productionSchedulingMapper.listPage(page, productionScheduling); + } + + @Override + public boolean addProductionScheduling(List<ProductionScheduling> productionScheduling) { + if (CollectionUtils.isEmpty(productionScheduling)) { + return false; + } + BigDecimal reduce = productionScheduling.stream() + .map(ProductionScheduling::getSchedulingNum) + .reduce(BigDecimal.ZERO, BigDecimal::add); + if(reduce.compareTo(productionScheduling.get(0).getProductionQuantity()) < 0){ + return false; + } + Production production = productionMapper.selectById(productionScheduling.get(0).getProductionId()); + if(production == null){ + throw new RuntimeException("鐢熶骇璁㈠崟涓虹┖"); + } + production.setStatus(2); + if(reduce.compareTo(productionScheduling.get(0).getProductionQuantity()) == 0){ + production.setStatus(3); + } + productionMapper.updateById(production); + for (ProductionScheduling scheduling : productionScheduling) { + SysUser sysUser = sysUserMapper.selectUserById(scheduling.getSchedulingUserId()); + if(sysUser == null) throw new RuntimeException("鎺掍骇浜哄憳涓嶅瓨鍦�"); + scheduling.setStatus(1); + scheduling.setSchedulingUserName(sysUser.getNickName()); + productionSchedulingMapper.insert(scheduling); + } + return true; + } + + @Override + public boolean work(ProductionScheduling productionScheduling) { + ProductionScheduling productionScheduling1 = productionSchedulingMapper.selectById(productionScheduling.getId()); + if(productionScheduling1 == null){ + throw new RuntimeException("鐢熶骇鎶ュ伐涓嶅瓨鍦�"); + } + Production production = productionMapper.selectById(productionScheduling1.getProductionId()); + if(production == null){ + throw new RuntimeException("鐢熶骇璁㈠崟涓虹┖"); + } + production.setProductionQuantity(productionScheduling.getSuccessNum()); + production.setProducerId(productionScheduling.getSchedulingUserId()); + // 鍏ュ簱 + productionMasterService.insertPendingInventory(Arrays.asList(production)); + // 淇敼鎶ュ伐琛ㄧ殑鍏ュ簱鏁伴噺 + + productionScheduling1.setSuccessNum(productionScheduling1.getSuccessNum().add(productionScheduling.getSuccessNum())); + productionScheduling1.setStatus(2); + // 鍏ュ簱鏁伴噺 == 鎺掍骇鏁伴噺 鍒欎慨鏀圭敓浜ц鍗曠姸鎬� + if(productionScheduling1.getSuccessNum().compareTo(productionScheduling1.getSchedulingNum()) == 0){ + productionScheduling1.setStatus(3); + } + productionSchedulingMapper.updateById(productionScheduling1); + return true; + } +} -- Gitblit v1.9.3