|
@@ -19,6 +19,8 @@ import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
|
import com.rongwei.rwcommon.base.R;
|
|
|
import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -63,6 +65,7 @@ public class MaintenanceServiceImpl implements MaintenanceService {
|
|
|
@Autowired
|
|
|
private RwAdminFeign rwAdminFeign;
|
|
|
|
|
|
+ private final static Logger log = LoggerFactory.getLogger(MaintenanceServiceImpl.class);
|
|
|
/**
|
|
|
* 发布任务
|
|
|
*
|
|
@@ -76,39 +79,50 @@ public class MaintenanceServiceImpl implements MaintenanceService {
|
|
|
@Transactional
|
|
|
public R saveTask(List<TaskCreatorDTO> taskCreators) {
|
|
|
|
|
|
+ String equipmentname =null;
|
|
|
for(TaskCreatorDTO taskCreator:taskCreators){
|
|
|
|
|
|
- // 查询主表信息
|
|
|
- EquMaintenanceScheduleDo maintenanceSchedule = maintenanceScheduleService.getMaintenanceSiteByList(taskCreator);
|
|
|
- // 查询子表信息
|
|
|
- Integer month = Integer.parseInt(taskCreator.getMonth());
|
|
|
- List<EquMaintenancePartDo> maintenancePartList = maintenancePartService.getMasterIdAndMonthByList(maintenanceSchedule.getId(), month, null);
|
|
|
- // 查询是否有生成过任务
|
|
|
- List<EquMaintenanceTaskDo> maintenanceSiteList = maintenanceTaskService.getMaintenanceSite(taskCreator);
|
|
|
- // 判断所有部位是否都有生成过任务
|
|
|
- if (maintenanceSiteList.size() == maintenancePartList.size()) {
|
|
|
- return R.error(maintenanceSchedule.getEquipmentname() + "在" + taskCreator.getYear() + "年" + month + "月的所有部位已发布任务或没有可发布的任务!");
|
|
|
- }
|
|
|
- // 任务表没有数据则全部添加
|
|
|
- if (maintenanceSiteList.size() != 0) {
|
|
|
- // 去重
|
|
|
- maintenancePartList = removeDuplicates(maintenancePartList, maintenanceSiteList);
|
|
|
- }
|
|
|
- // 通过主表ID查询备品备件信息
|
|
|
- List<EquPartsSetoutStandardDo> partsSetoutStandardList = partsSetoutStandardService.getMasterIdByList(maintenancePartList.stream().map(EquMaintenancePartDo::getMaintenancestandid).collect(Collectors.toList()));
|
|
|
- // 转移数据
|
|
|
- List<EquMaintenanceTaskDo> equMaintenanceTaskDos = dataTransfer(maintenancePartList, maintenanceSchedule, month);
|
|
|
- List<EquPartsSetoutTaskDo> partsSetoutTaskDoList = sparePartsConversion(partsSetoutStandardList, equMaintenanceTaskDos);
|
|
|
- // 插入
|
|
|
- int number = maintenanceTaskService.insertBatch(equMaintenanceTaskDos);
|
|
|
- if (partsSetoutTaskDoList.size() != 0) {
|
|
|
- partsSetoutTaskService.batchSave(partsSetoutTaskDoList);
|
|
|
- }
|
|
|
- maintenanceScheduleService.updatePlannedstatusByIds(Collections.singletonList(maintenanceSchedule.getId()), PlannedStatusEnum.PUBLISHED_TASK);
|
|
|
- // 判断是否全部插入成功
|
|
|
- if (number != equMaintenanceTaskDos.size()) {
|
|
|
- return R.error("数据添加不完整,请核对数据!");
|
|
|
- }
|
|
|
+ try{
|
|
|
+
|
|
|
+ // 查询主表信息
|
|
|
+ EquMaintenanceScheduleDo maintenanceSchedule = maintenanceScheduleService.getMaintenanceSiteByList(taskCreator);
|
|
|
+
|
|
|
+ equipmentname= maintenanceSchedule.getEquipmentname();
|
|
|
+
|
|
|
+ // 查询子表信息
|
|
|
+ Integer month = Integer.parseInt(taskCreator.getMonth());
|
|
|
+ List<EquMaintenancePartDo> maintenancePartList = maintenancePartService.getMasterIdAndMonthByList(maintenanceSchedule.getId(), month, null);
|
|
|
+ // 查询是否有生成过任务
|
|
|
+ List<EquMaintenanceTaskDo> maintenanceSiteList = maintenanceTaskService.getMaintenanceSite(taskCreator);
|
|
|
+ // 判断所有部位是否都有生成过任务
|
|
|
+ if (maintenanceSiteList.size() == maintenancePartList.size()) {
|
|
|
+ return R.error(maintenanceSchedule.getEquipmentname() + "在" + taskCreator.getYear() + "年" + month + "月的所有部位已发布任务或没有可发布的任务!");
|
|
|
+ }
|
|
|
+ // 任务表没有数据则全部添加
|
|
|
+ if (maintenanceSiteList.size() != 0) {
|
|
|
+ // 去重
|
|
|
+ maintenancePartList = removeDuplicates(maintenancePartList, maintenanceSiteList);
|
|
|
+ }
|
|
|
+ // 通过主表ID查询备品备件信息
|
|
|
+ List<EquPartsSetoutStandardDo> partsSetoutStandardList = partsSetoutStandardService.getMasterIdByList(maintenancePartList.stream().map(EquMaintenancePartDo::getMaintenancestandid).collect(Collectors.toList()));
|
|
|
+ // 转移数据
|
|
|
+ List<EquMaintenanceTaskDo> equMaintenanceTaskDos = dataTransfer(maintenancePartList, maintenanceSchedule, month);
|
|
|
+ List<EquPartsSetoutTaskDo> partsSetoutTaskDoList = sparePartsConversion(partsSetoutStandardList, equMaintenanceTaskDos);
|
|
|
+ // 插入
|
|
|
+ int number = maintenanceTaskService.insertBatch(equMaintenanceTaskDos);
|
|
|
+ if (partsSetoutTaskDoList.size() != 0) {
|
|
|
+ partsSetoutTaskService.batchSave(partsSetoutTaskDoList);
|
|
|
+ }
|
|
|
+ maintenanceScheduleService.updatePlannedstatusByIds(Collections.singletonList(maintenanceSchedule.getId()), PlannedStatusEnum.PUBLISHED_TASK);
|
|
|
+ // 判断是否全部插入成功
|
|
|
+ if (number != equMaintenanceTaskDos.size()) {
|
|
|
+ return R.error("数据添加不完整,请核对数据!");
|
|
|
+ }
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("设备 {} 生成任务失败 {} ",equipmentname,e.getMessage());
|
|
|
+ return R.error( String.format("设备 %s 生成任务失败", equipmentname));
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
return R.ok();
|