lyh
昨天 0d06048c5d560e301bf17fad476975c8ffffcb56
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package org.jeecg.modules.eam.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentExtend;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceWorkPlanSheet;
import org.jeecg.modules.eam.mapper.EamEquipmentExtendMapper;
import org.jeecg.modules.eam.mapper.EamEquipmentMapper;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamThirdMaintenanceWorkPlanSheetService;
import org.springframework.beans.BeanUtils;
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 javax.annotation.Resource;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
 
/**
 * @Description: 设备台账扩展表
 * @Author: jeecg-boot
 * @Date: 2025-03-19
 * @Version: V1.0
 */
@Service
public class EamEquipmentExtendServiceImpl extends ServiceImpl<EamEquipmentExtendMapper, EamEquipmentExtend> implements IEamEquipmentExtendService {
 
    @Resource
    private EamEquipmentExtendMapper eamEquipmentExtendMapper;
 
    @Autowired
    private IEamThirdMaintenanceWorkPlanSheetService eamThirdMaintenanceWorkPlanSheetService;
 
    @Resource
    private EamEquipmentMapper eamEquipmentMapper;
 
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateEquipmentMaintenanceStatus(String equipmentId, String status) {
        EamEquipmentExtend entity = eamEquipmentExtendMapper.selectById(equipmentId);
        if (entity == null) {
            return false;
        }
        entity.setMaintenanceStatus(status);
        eamEquipmentExtendMapper.updateById(entity);
        return true;
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateEquipmentRepairStatus(String equipmentId, String status) {
        EamEquipmentExtend entity = eamEquipmentExtendMapper.selectById(equipmentId);
        if (entity == null) {
            return false;
        }
        entity.setRepairStatus(status);
        eamEquipmentExtendMapper.updateById(entity);
        return true;
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateTechnologyParam(String equipmentId, String status, Date evaluationDate, String technologyGenerateFlag) {
        if (StringUtils.isBlank(status) && StringUtils.isBlank(technologyGenerateFlag) && evaluationDate == null) {
            return false;
        }
        EamEquipmentExtend entity = this.getBaseMapper().selectById(equipmentId);
        UpdateWrapper<EamEquipmentExtend> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", equipmentId);
        if (StringUtils.isNotBlank(status)) {
            entity.setTechnologyStatus(status);
        }
        if (StringUtils.isNotBlank(technologyGenerateFlag)) {
            entity.setTechnologyGenerateFlag(technologyGenerateFlag);
        }
        if (evaluationDate != null) {
            entity.setLatestTechnologyCheck(evaluationDate);
            if (entity.getTechnologyCheckPeriod() != null) {
                entity.setNextTechnologyCheck(DateUtils.addYear(entity.getLatestTechnologyCheck(), entity.getTechnologyCheckPeriod()));
            }
        }
        return this.getBaseMapper().updateById(entity) > 0;
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateThirdMaintenanceParam(String equipmentId, String status, Date evaluationDate, String thirdMaintenanceGenerateFlag) {
        if (StringUtils.isBlank(status) && StringUtils.isBlank(thirdMaintenanceGenerateFlag) && evaluationDate == null) {
            return false;
        }
        EamEquipmentExtend entity = this.getBaseMapper().selectById(equipmentId);
        UpdateWrapper<EamEquipmentExtend> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", equipmentId);
        if (StringUtils.isNotBlank(status)) {
            entity.setMaintenanceStatus(status);
        }
        if (StringUtils.isNotBlank(thirdMaintenanceGenerateFlag)) {
            entity.setThirdMaintenanceGenerateFlag(thirdMaintenanceGenerateFlag);
        }
        if (evaluationDate != null) {
            entity.setLatestThirdMaintenance(evaluationDate);
            if (entity.getThirdMaintenancePeriod() != null) {
                entity.setNextThirdMaintenance(DateUtils.addYear(entity.getLatestThirdMaintenance(), entity.getThirdMaintenancePeriod()));
            }
        }
 
        EamEquipment eamEquipment = eamEquipmentMapper.selectById(equipmentId);
        eamThirdMaintenanceWorkPlanSheetService.createMaintenancePlan(eamEquipment, entity.getLatestThirdMaintenance());
        eamThirdMaintenanceWorkPlanSheetService.createMaintenancePlan(eamEquipment, entity.getNextThirdMaintenance());
        return this.getBaseMapper().updateById(entity) > 0;
    }
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateSecondMaintenanceParam(String equipmentId, String status,String secondMaintenanceGenerateFlag){
        if (StringUtils.isBlank(status) && StringUtils.isBlank(secondMaintenanceGenerateFlag)) {
            return false;
        }
        EamEquipmentExtend entity = this.getBaseMapper().selectById(equipmentId);
        UpdateWrapper<EamEquipmentExtend> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id", equipmentId);
        if (StringUtils.isNotBlank(status)) {
            entity.setMaintenanceStatus(status);
        }
        //二保默认生成六个月后
        // 转换为LocalDate处理日期
        LocalDate localDate = DateUtils.dateToLocalDate(entity.getLatestSecondMaintenance());
        // 计算六个月后的日期
        LocalDate sixMonthsLater = localDate.plusMonths(6);
        // 调整到当月的最后一天
        LocalDate lastDayOfMonth = sixMonthsLater.with(TemporalAdjusters.lastDayOfMonth());
        entity.setNextSecondMaintenance(DateUtils.localDateToDate(lastDayOfMonth));
 
        return this.getBaseMapper().updateById(entity) > 0;
    }
}