郑永安
2023-09-19 69185134fcfaf913ea45f1255677225a2cc311a4
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
package com.gk.hotwork.Service.ServiceImpl;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gk.hotwork.Domain.Exception.BusinessException;
import com.gk.hotwork.Domain.SubTaskInfo;
import com.gk.hotwork.Domain.TaskEnclosure;
import com.gk.hotwork.Domain.UserInfo;
import com.gk.hotwork.Mapper.SubTaskInfoMapper;
import com.gk.hotwork.Service.SubTaskService;
import com.gk.hotwork.Service.TaskEnclosureService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * @author : jingjy
 * @date : 2021/10/11 16:43
 */
@Service("SubTaskService")
public class SubTaskServiceImpl extends ServiceImpl<SubTaskInfoMapper, SubTaskInfo> implements SubTaskService {
    @Autowired
    private TaskEnclosureService taskEnclosureService;
    @Override
    public List<SubTaskInfo> getSubTasksByCode(String code) {
        LambdaQueryWrapper<SubTaskInfo> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SubTaskInfo::getTaskcode,code);
        List<SubTaskInfo> subTaskInfos = baseMapper.selectList(wrapper);
        for (SubTaskInfo subTaskInfo : subTaskInfos){
            if (subTaskInfo.getType().equals("动土作业")){
                List<TaskEnclosure> enclosures = taskEnclosureService.getFileByCodeAndType(code,"动土方案文件");
                enclosures.forEach(item->{
                    item.setUrl(item.getFileurl());
                });
                subTaskInfo.setSoilfile(enclosures);
            }
            if (subTaskInfo.getType().equals("断路作业")){
                List<TaskEnclosure> enclosures = taskEnclosureService.getFileByCodeAndType(code,"断路地段示意图");
                enclosures.forEach(item->{
                    item.setUrl(item.getFileurl());
                });
                subTaskInfo.setBreakfile(enclosures);
            }
            if (subTaskInfo.getType().equals("盲板抽堵作业")){
                List<TaskEnclosure> enclosures = taskEnclosureService.getFileByCodeAndType(code,"盲板位置图");
                enclosures.forEach(item->{
                    item.setUrl(item.getFileurl());
                });
                subTaskInfo.setBlindboardlocation(enclosures);
            }
        }
        return subTaskInfos;
    }
 
    @Override
    public void removeByCode(String taskCode) {
        LambdaQueryWrapper<SubTaskInfo> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SubTaskInfo::getTaskcode,taskCode);
        baseMapper.delete(wrapper);
    }
 
    @Override
    public void saveSubTasks(List<SubTaskInfo> subTaskInfos, String taskCode, UserInfo userInfo, String option) {
        {
            if (subTaskInfos == null || subTaskInfos.size() == 0) {throw new BusinessException("请选择涉及的作业信息");}
            List<TaskEnclosure> enclosures = new ArrayList<>();
            subTaskInfos.forEach(item-> {
                item.setTaskcode(taskCode);
                List<TaskEnclosure> breakFiles = item.getBreakfile();
                if (breakFiles != null){
                    breakFiles.forEach(item1->{
                        item1.setTaskcode(taskCode);
                        item1.setOriginalname(item1.getName());
                        item1.setCreatedat(new Date());
                        item1.setCreatedby(userInfo.getRealname());
                        item1.setType("断路地段示意图");
                    });
                    enclosures.addAll(breakFiles);
                }
 
                List<TaskEnclosure> soilFiles = item.getSoilfile();
                if (soilFiles != null){
                    soilFiles.forEach(item2->{
                        item2.setTaskcode(taskCode);
                        item2.setOriginalname(item2.getName());
                        item2.setCreatedat(new Date());
                        item2.setCreatedby(userInfo.getRealname());
                        item2.setType("动土方案文件");
                    });
                    enclosures.addAll(soilFiles);
                }
 
 
                List<TaskEnclosure> blindBoardLocations = item.getBlindboardlocation();
                if (blindBoardLocations != null){
                    blindBoardLocations.forEach(item3->{
                        item3.setTaskcode(taskCode);
                        item3.setOriginalname(item3.getName());
                        item3.setCreatedat(new Date());
                        item3.setCreatedby(userInfo.getRealname());
                        item3.setType("盲板位置图");
                    });
                    enclosures.addAll(blindBoardLocations);
                }
 
            });
            if (option.equals("UPDATE")){
                taskEnclosureService.removeSubFile(taskCode);
                removeByCode(taskCode);
            }
 
            taskEnclosureService.saveBatch(enclosures);
            saveBatch(subTaskInfos);
        }
    }
}