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<OperationCertificateMapper, OperationCertificate> 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<OperationCertificateDetail> 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<OperationCertificateDetail> 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<? extends Serializable> idList) {
|
for (Serializable id : idList) {
|
operationCertificateDetailMapper.deleteByMainId(id.toString());
|
operationCertificateMapper.deleteById(id);
|
}
|
}
|
|
}
|