zenglf
2023-10-18 12328d40a8abd295452c53ac70497290c31ceaaf
操作证管理 明细更新
已修改2个文件
164 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
@@ -27,13 +28,18 @@
public class OperationCertificateDetail  extends JeecgEntity  implements Serializable {
    private static final long serialVersionUID = 1L;
    @Excel(name = "发生日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "发生日期")
    private Date happenDate;
    /**证书ID*/
    @ApiModelProperty(value = "证书ID")
    private String operationCertificateId;
    /**类型*/
    @Excel(name = "类型", width = 15)
    @ApiModelProperty(value = "类型")
    @Dict(dicCode = "certificate_change_type")
    private String type;
    /**设备id*/
    @Excel(name = "设备id", width = 15)
@@ -42,6 +48,7 @@
    /**扣分项*/
    @Excel(name = "扣分项", width = 15)
    @ApiModelProperty(value = "扣分项")
    @Dict(dictTable = "mom_eam_base_deduction_item", dicText = "content", dicCode = "id")
    private String deductionItem;
    /**扣分周期*/
    @Excel(name = "扣分周期", width = 15)
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/OperationCertificateServiceImpl.java
@@ -1,14 +1,18 @@
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;
@@ -16,62 +20,113 @@
/**
 * @Description: 操作证书管理
 * @Author: jeecg-boot
 * @Date:   2023-10-17
 * @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;
    @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);
            }
        }
    }
    @Autowired
    private OperationCertificateMapper operationCertificateMapper;
    @Autowired
    private OperationCertificateDetailMapper operationCertificateDetailMapper;
    @Autowired
    private IDeductionItemService deductionItemService;
    @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);
            }
        }
    }
    @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 = 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);
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void delMain(String id) {
        operationCertificateDetailMapper.deleteByMainId(id);
        operationCertificateMapper.deleteById(id);
    }
        }
        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 delBatchMain(Collection<? extends Serializable> idList) {
        for(Serializable id:idList) {
            operationCertificateDetailMapper.deleteByMainId(id.toString());
            operationCertificateMapper.deleteById(id);
        }
    }
    }
    @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 = 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);
        }
    }
}