From 0976769f6ecc75e26c9de48f23e7fcd46d858560 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期二, 24 六月 2025 17:40:26 +0800 Subject: [PATCH] 设备管理-大修项修 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 118 insertions(+), 2 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java index df56a71..9ab3aaa 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java @@ -1,19 +1,135 @@ package org.jeecg.modules.eam.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.eam.constant.MajorPartialRepairStatusEnum; import org.jeecg.modules.eam.entity.EamMajorPartialRepair; +import org.jeecg.modules.eam.entity.EamMajorPartialRepairDetail; import org.jeecg.modules.eam.mapper.EamMajorPartialRepairMapper; +import org.jeecg.modules.eam.request.EamMajorPartialRepairQuery; +import org.jeecg.modules.eam.service.IEamMajorPartialRepairDetailService; import org.jeecg.modules.eam.service.IEamMajorPartialRepairService; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; /** - * @Description: 澶т慨椤逛慨 + * @Description: eam_major_partial_repair * @Author: jeecg-boot - * @Date: 2025-05-13 + * @Date: 2025-06-20 * @Version: V1.0 */ @Service public class EamMajorPartialRepairServiceImpl extends ServiceImpl<EamMajorPartialRepairMapper, EamMajorPartialRepair> implements IEamMajorPartialRepairService { + @Autowired + private ISysBusinessCodeRuleService sysBusinessCodeRuleService; + @Autowired + private IEamMajorPartialRepairDetailService eamMajorPartialRepairDetailService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveMajorPartialRepair(EamMajorPartialRepair eamMajorPartialRepair) { + BigDecimal totalPrice = eamMajorPartialRepair.getEamMajorPartialRepairDetailList().stream() + .map(EamMajorPartialRepairDetail::getUnitPrice).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); + eamMajorPartialRepair.setRepairCode(sysBusinessCodeRuleService.generateBusinessCodeSeq("MajorPartialRepairRule")); + eamMajorPartialRepair.setTotalAmount(totalPrice); + eamMajorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.PENDING_SUBMISSION.name()); + eamMajorPartialRepair.setDelFlag(CommonConstant.DEL_FLAG_0); + save(eamMajorPartialRepair); + eamMajorPartialRepair.getEamMajorPartialRepairDetailList().forEach(eamMajorPartialRepairDetail -> { + eamMajorPartialRepairDetail.setRepairId(eamMajorPartialRepair.getId()); + }); + eamMajorPartialRepairDetailService.saveBatch(eamMajorPartialRepair.getEamMajorPartialRepairDetailList()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateMajorPartialRepair(EamMajorPartialRepair eamMajorPartialRepair) { + eamMajorPartialRepairDetailService.remove(new LambdaQueryWrapper<EamMajorPartialRepairDetail>() + .eq(EamMajorPartialRepairDetail::getRepairId, eamMajorPartialRepair.getId())); + BigDecimal totalPrice = eamMajorPartialRepair.getEamMajorPartialRepairDetailList().stream() + .map(EamMajorPartialRepairDetail::getUnitPrice).reduce(BigDecimal::add).orElse(BigDecimal.ZERO); + eamMajorPartialRepair.setTotalAmount(totalPrice); + updateById(eamMajorPartialRepair); + eamMajorPartialRepair.getEamMajorPartialRepairDetailList().forEach(eamMajorPartialRepairDetail -> { + eamMajorPartialRepairDetail.setRepairId(eamMajorPartialRepair.getId()); + }); + eamMajorPartialRepairDetailService.saveBatch(eamMajorPartialRepair.getEamMajorPartialRepairDetailList()); + } + + @Override + public IPage<EamMajorPartialRepair> queryPageList(Page<EamMajorPartialRepair> page, EamMajorPartialRepairQuery query) { + QueryWrapper<EamMajorPartialRepair> queryWrapper = Wrappers.query(); + if (Objects.nonNull(query)) { + if (StringUtils.isNotBlank(query.getRepairCode())) { + queryWrapper.like("t.repair_code", query.getRepairCode()); + } + if (StringUtils.isNotBlank(query.getRepairName())) { + queryWrapper.like("t.repair_name", query.getRepairName()); + } + if (StringUtils.isNotBlank(query.getRepairStatus())) { + queryWrapper.eq("t.repair_status", query.getRepairStatus()); + } + if (StringUtils.isNotBlank(query.getRepairType())) { + queryWrapper.like("t.repair_type", query.getRepairType()); + } + if (query.getPlanStartDate() != null && query.getPlanEndDate() != null) { + queryWrapper.between("t.plan_start_date", query.getPlanStartDate(), query.getPlanEndDate()); + } + //鎺掑簭 + if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) { + String column = query.getColumn(); + if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { + column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); + } + if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) { + queryWrapper.orderByAsc("t." + oConvertUtils.camelToUnderline(column)); + } else { + queryWrapper.orderByDesc("t." + oConvertUtils.camelToUnderline(column)); + } + } else { + queryWrapper.orderByDesc("t.create_time"); + } + } + return this.baseMapper.queryPageList(page, queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void fillResult(List<EamMajorPartialRepairDetail> detailList) { + List<EamMajorPartialRepairDetail> result = CollectionUtil.newArrayList(); + detailList.forEach(eamMajorPartialRepairDetail -> { + EamMajorPartialRepairDetail detail = new EamMajorPartialRepairDetail(); + detail.setId(eamMajorPartialRepairDetail.getId()); + detail.setRepairResult(eamMajorPartialRepairDetail.getRepairResult()); + detail.setRepairDescription(eamMajorPartialRepairDetail.getRepairDescription()); + result.add(detail); + }); + eamMajorPartialRepairDetailService.updateBatchById(result); + String repairId = detailList.get(0).getRepairId(); + EamMajorPartialRepair majorPartialRepair = getById(repairId); + majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.COMPLETED.name()); + majorPartialRepair.setActualEndTime(new Date()); + updateById(majorPartialRepair); + } + } -- Gitblit v1.9.3