| | |
| | | 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); |
| | | } |
| | | |
| | | } |