zhuo
2025-04-23 234b0ac195934b34c06045b2d2ef0f10e239dd8e
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java
@@ -26,86 +26,11 @@
 * 检测或校准物品的处置 服务实现类
 * </p>
 *
 * @author 芯导软件(江苏)有限公司
 * @author
 * @since 2024-11-02 02:50:19
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class ProcessDealServiceImpl extends ServiceImpl<ProcessDealMapper, ProcessDeal> implements ProcessDealService {
    @Resource
    private ProcessDealMapper processDealMapper;
    @Autowired
    private UserMapper userMapper;
    @Resource
    private ProcessTotaldealMapper processTotaldealMapper;
    @Override
    public IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal) {
        Integer userId = SecurityUtils.getUserId().intValue();
        processDeal.setCreateUser(userId);
        if (ObjectUtils.isEmpty(processDeal.getTotaldealId())) {
            //获取当前月份
            LocalDate currentDate = LocalDate.now();
            // 定义日期格式
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // 格式化当前日期
            String currentMonth = currentDate.format(formatter);
            //查询历史
            ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth, currentMonth));
            if(ObjectUtils.isNotEmpty(processTotaldeal)){
                processDeal.setTotaldealId(processTotaldeal.getId());
            }
        }
        return processDealMapper.pageProcessDeal(page, QueryWrappers.queryWrappers(processDeal));
    }
    @Override
    public int addProcessDeal(ProcessDeal processDeal) {
        ProcessTotaldeal processTotaldeal;
        if (ObjectUtils.isEmpty(processDeal.getTotaldealId())){
            LocalDate dealTime = LocalDate.now();
            // 定义日期格式
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // 格式化当前日期
            String currentMonth = dealTime.format(formatter);
            processTotaldeal= processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth,currentMonth));
            if(ObjectUtils.isNotEmpty(processTotaldeal)){
                processDeal.setTotaldealId(processTotaldeal.getId());
            }
        }else {
            processTotaldeal= processTotaldealMapper.selectById(processDeal.getTotaldealId());
        }
        processDealMapper.insert(processDeal);
        processTotaldeal.setTotalNum(processDeal.getNum()+processTotaldeal.getTotalNum());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    @Override
    public int delProcessDeal(Integer id) {
        ProcessDeal processDeal = processDealMapper.selectById(id);
        processDealMapper.deleteById(id);
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
        processTotaldeal.setTotalNum(processTotaldeal.getTotalNum()-processDeal.getNum());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    @Override
    public int doProcessDeal(ProcessDeal processDeal) {
        if (ObjectUtils.isNotEmpty(processDeal.getNum())) {
            ProcessDeal oldProcessDeal = processDealMapper.selectById(processDeal.getId());
            if(null != processDeal.getTotaldealId()){
                ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
                int totalNum = ObjectUtils.isEmpty(processTotaldeal) ? 0 : processTotaldeal.getTotalNum();
                processTotaldeal.setTotalNum(totalNum - oldProcessDeal.getNum() + processDeal.getNum());
                processTotaldealMapper.updateById(processTotaldeal);
            }
        }
        return processDealMapper.updateById(processDeal);
    }
}