package org.jeecg.modules.eam.service.impl; import org.jeecg.common.constant.CommonConstant; import org.jeecg.modules.eam.entity.DeductionItem; import org.jeecg.modules.eam.entity.OperationCertificate; import org.jeecg.modules.eam.entity.OperationCertificateDetail; import org.jeecg.modules.eam.mapper.OperationCertificateDetailMapper; import org.jeecg.modules.eam.mapper.OperationCertificateMapper; import org.jeecg.modules.eam.service.IDeductionItemService; import org.jeecg.modules.eam.service.IOperationCertificateService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.List; import java.util.Collection; /** * @Description: 操作证书管理 * @Author: jeecg-boot * @Date: 2023-10-17 * @Version: V1.0 */ @Service public class OperationCertificateServiceImpl extends ServiceImpl implements IOperationCertificateService { @Autowired private OperationCertificateMapper operationCertificateMapper; @Autowired private OperationCertificateDetailMapper operationCertificateDetailMapper; @Autowired private IDeductionItemService deductionItemService; @Override @Transactional(rollbackFor = Exception.class) public void saveMain(OperationCertificate operationCertificate, List operationCertificateDetailList) { // operationCertificateMapper.insert(operationCertificate); // if (operationCertificateDetailList != null && operationCertificateDetailList.size() > 0) { // for (OperationCertificateDetail entity : operationCertificateDetailList) { // //外键设置 // entity.setOperationCertificateId(operationCertificate.getId()); // operationCertificateDetailMapper.insert(entity); // } // } operationCertificateMapper.insert(operationCertificate); String equipmentIds = operationCertificate.getEquipmentIds(); Integer currentCycleScore = operationCertificate.getCurrentCycleScore(); for (OperationCertificateDetail entity : operationCertificateDetailList) { if ("addEquipment".equals(entity.getType()) && !equipmentIds.contains(entity.getEquipmentId())) { equipmentIds = equipmentIds + "," + entity.getEquipmentId(); } else if ("deduction".equals(entity.getType())) { String deductionItemId = entity.getDeductionItem(); Integer deductionScore = deductionItemService.getById(deductionItemId).getDeductionScore(); currentCycleScore = currentCycleScore - deductionScore; } //外键设置 entity.setOperationCertificateId(operationCertificate.getId()); operationCertificateDetailMapper.insert(entity); } operationCertificate.setEquipmentIds(equipmentIds); if (currentCycleScore <= 0) { currentCycleScore = 0; // 当分数为0时,设置操作证的状态为禁用 operationCertificate.setStatus(CommonConstant.STATUS_0); } operationCertificate.setCurrentCycleScore(currentCycleScore); operationCertificateMapper.updateById(operationCertificate); } @Override @Transactional(rollbackFor = Exception.class) public void updateMain(OperationCertificate operationCertificate, List operationCertificateDetailList) { // operationCertificateMapper.updateById(operationCertificate); //1.先删除子表数据 // operationCertificateDetailMapper.deleteByMainId(operationCertificate.getId()); // //2.子表数据重新插入 // if(operationCertificateDetailList!=null && operationCertificateDetailList.size()>0) { // for(OperationCertificateDetail entity:operationCertificateDetailList) { // //外键设置 // entity.setOperationCertificateId(operationCertificate.getId()); // operationCertificateDetailMapper.insert(entity); // } // } // 新增设备更新主表的equipmentIds字段,新增扣分则根据扣分项更新当前分数,分数为0时候禁用操作证 String equipmentIds = operationCertificate.getEquipmentIds(); Integer currentCycleScore = operationCertificate.getCurrentCycleScore(); for (OperationCertificateDetail entity : operationCertificateDetailList) { if ("addEquipment".equals(entity.getType()) && !equipmentIds.contains(entity.getEquipmentId())) { equipmentIds = equipmentIds + "," + entity.getEquipmentId(); } else if ("deduction".equals(entity.getType())) { String deductionItemId = entity.getDeductionItem(); Integer deductionScore = deductionItemService.getById(deductionItemId).getDeductionScore(); currentCycleScore = currentCycleScore - deductionScore; } //外键设置 entity.setOperationCertificateId(operationCertificate.getId()); operationCertificateDetailMapper.insert(entity); } operationCertificate.setEquipmentIds(equipmentIds); if (currentCycleScore <= 0) { currentCycleScore = 0; // 当分数为0时,设置操作证的状态为禁用 operationCertificate.setStatus(CommonConstant.STATUS_0); } operationCertificate.setCurrentCycleScore(currentCycleScore); operationCertificateMapper.updateById(operationCertificate); } @Override @Transactional(rollbackFor = Exception.class) public void delMain(String id) { operationCertificateDetailMapper.deleteByMainId(id); operationCertificateMapper.deleteById(id); } @Override @Transactional(rollbackFor = Exception.class) public void delBatchMain(Collection idList) { for (Serializable id : idList) { operationCertificateDetailMapper.deleteByMainId(id.toString()); operationCertificateMapper.deleteById(id); } } }