|
@@ -1,9 +1,21 @@
|
|
|
package org.jeecg.modules.cmmsInspectPlan.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
+import org.jeecg.common.api.dto.message.MessageDTO;
|
|
|
+import org.jeecg.common.constant.enums.MessageTypeEnum;
|
|
|
+import org.jeecg.common.system.api.ISysBaseAPI;
|
|
|
+import org.jeecg.common.util.DateUtils;
|
|
|
import org.jeecg.common.util.RedisUtil;
|
|
|
+import org.jeecg.modules.cmmsInspect.entity.CmmsInspect;
|
|
|
+import org.jeecg.modules.cmmsInspect.service.ICmmsInspectService;
|
|
|
+import org.jeecg.modules.cmmsInspectContent.entity.CmmsInspectContentVo;
|
|
|
+import org.jeecg.modules.cmmsInspectContentItem.entity.CmmsInspectContentItemVo;
|
|
|
import org.jeecg.modules.cmmsInspectLine.service.ICmmsInspectLineService;
|
|
|
+import org.jeecg.modules.cmmsInspectLineDetail.entity.CmmsInspectLineDetail;
|
|
|
+import org.jeecg.modules.cmmsInspectLineDetail.entity.CmmsInspectLineDetailVo;
|
|
|
import org.jeecg.modules.cmmsInspectPlan.convert.CmmsInspectPlanConvert;
|
|
|
import org.jeecg.modules.cmmsInspectPlan.entity.CmmsInspectPlan;
|
|
|
import org.jeecg.modules.cmmsInspectPlan.entity.CmmsInspectPlanVo;
|
|
@@ -13,6 +25,13 @@ import org.jeecg.modules.cmmsInspectPlanTask.entity.CmmsInspectPlanTask;
|
|
|
import org.jeecg.modules.cmmsInspectPlanTask.entity.CmmsInspectPlanTaskVo;
|
|
|
import org.jeecg.modules.cmmsInspectPlanTask.service.ICmmsInspectPlanTaskService;
|
|
|
import org.jeecg.modules.cmmsInspectSpot.service.ICmmsInspectSpotService;
|
|
|
+import org.jeecg.modules.cmmsInspectTcontent.entity.CmmsInspectTcontent;
|
|
|
+import org.jeecg.modules.cmmsInspectTcontentEquip.entity.CmmsInspectTcontentEquip;
|
|
|
+import org.jeecg.modules.cmmsInspectTcontentItem.entity.CmmsInspectTcontentItem;
|
|
|
+import org.jeecg.modules.cmmsInspectTcontentItem.service.ICmmsInspectTcontentItemService;
|
|
|
+import org.jeecg.modules.cmmsInspectTline.entity.CmmsInspectTline;
|
|
|
+import org.jeecg.modules.cmmsOrderNode.entity.CmmsOrderNode;
|
|
|
+import org.jeecg.modules.cmmsOrderNode.service.ICmmsOrderNodeService;
|
|
|
import org.jeecg.modules.util.AutoCodeUtil;
|
|
|
import org.jeecg.modules.util.CacheKey;
|
|
|
import org.jeecg.modules.util.PlanToOrderUtils;
|
|
@@ -52,6 +71,18 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
|
|
|
@Autowired
|
|
|
@SuppressWarnings("all")
|
|
|
private ICmmsInspectLineService inspectLineService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ICmmsInspectService inspectService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ICmmsInspectTcontentItemService inspectTcontentItemService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ICmmsOrderNodeService orderNodeService;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ private ISysBaseAPI sysBaseApi;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -194,6 +225,158 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
|
|
|
/**
|
|
|
* author: dzc
|
|
|
* version: 1.0
|
|
|
+ * des: 生成巡检工单
|
|
|
+ * date: 2024/1/25
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean generateInspect(String id) {
|
|
|
+ PlanToOrderUtils planToOrderUtils = new PlanToOrderUtils();
|
|
|
+ CmmsInspectPlan plan = this.getById(id);
|
|
|
+ if (plan == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ String nowTime = DateUtils.getDate("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ // 需要刷新下次执行时间的巡检计划
|
|
|
+ List<CmmsInspectPlan> resreshPlanList = new ArrayList<>();
|
|
|
+ // 循环遍历巡检计划,对于符合条件的,生成巡检工单
|
|
|
+ List<CmmsInspect> inspectList = new ArrayList<>();
|
|
|
+ // 巡检工单-路线-内容-设备-巡检项
|
|
|
+ List<CmmsInspectTcontentItem> tcontentItemList = new ArrayList<>();
|
|
|
+ // 巡检内容集合
|
|
|
+ ArrayList<CmmsInspectContentVo> contentList = new ArrayList<>();
|
|
|
+ // 巡检内容 巡检项 集合
|
|
|
+ ArrayList<CmmsInspectContentItemVo> itemList = new ArrayList<>();
|
|
|
+ // 操作节点
|
|
|
+ List<CmmsOrderNode> nodeList = new ArrayList<>();
|
|
|
+
|
|
|
+ // 更新下次执行时间的巡检计划
|
|
|
+ Date nextTime = planToOrderUtils.generateNextTime(plan.getRepeatnum(), plan.getRepeattype());
|
|
|
+ plan.setNexttime(nextTime);
|
|
|
+ Date noticeTime = planToOrderUtils.generateNoticeTime(nextTime, plan.getNoticenum(), plan.getNoticetype());
|
|
|
+ plan.setNoticetime(noticeTime);
|
|
|
+ plan.setIfnotice("否");
|
|
|
+ resreshPlanList.add(plan);
|
|
|
+ inspectPlanMapper.refreshNextTime(resreshPlanList);
|
|
|
+
|
|
|
+
|
|
|
+ // 巡检工单生成
|
|
|
+ CmmsInspect inspect = new CmmsInspect();
|
|
|
+ // 生成巡检工单编号
|
|
|
+ inspect.setInspectcode(autoCodeUtil.genSerialCode(UserConstants.CMMSINSPECT_CODE, null));
|
|
|
+ inspect.setInspectname(plan.getPlanname() + "-" + nowTime);
|
|
|
+ inspect.setInspectplanid(plan.getId());
|
|
|
+ if ("Y".equals(plan.getIftimeset())) {
|
|
|
+ inspect.setTasktype("周期任务");
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ inspect.setTasktype("周期任务");
|
|
|
+ }
|
|
|
+ inspect.setChargeruser(plan.getChargeruser());
|
|
|
+ inspect.setStatus("0");
|
|
|
+
|
|
|
+ boolean b1 = inspectService.save(inspect);
|
|
|
+
|
|
|
+ CmmsInspectPlanVo cmmsInspectPlan = this.getCmmsInspectPlanById(id);
|
|
|
+
|
|
|
+ List<CmmsInspectPlanTaskVo> taskList = cmmsInspectPlan.getTaskList();
|
|
|
+
|
|
|
+ //List<CmmsInspectPlanTaskVo> taskList = inspectPlanTaskService.getTaskByPlanId(id);
|
|
|
+ if (taskList != null && taskList.size() > 0) {
|
|
|
+ for (CmmsInspectPlanTaskVo task : taskList) {
|
|
|
+ if ("巡检路线".equals(task.getTasktype()) && ObjectUtil.isNotNull(task.getInspectLineVo()) && ObjectUtil.isNotNull(task.getInspectLineVo().getDetailList()) && task.getInspectLineVo().getDetailList().size() > 0) {
|
|
|
+ // 巡检路线下的巡检点的集合
|
|
|
+ List<CmmsInspectLineDetailVo> detailList = task.getInspectLineVo().getDetailList();
|
|
|
+ for (CmmsInspectLineDetailVo detail : detailList){
|
|
|
+ // 每个巡检点下的巡检内容的集合
|
|
|
+ List<CmmsInspectContentVo> inspectContentList = detail.getInspectContentList();
|
|
|
+ for (CmmsInspectContentVo content : inspectContentList) {
|
|
|
+ // 巡检内容 - 巡检项集合
|
|
|
+ if (ObjectUtil.isNotNull(content)){
|
|
|
+ List<CmmsInspectContentItemVo> cmmsInspectContentItemList = content.getCmmsInspectContentItemList();
|
|
|
+ itemList.addAll(cmmsInspectContentItemList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ contentList.addAll(inspectContentList);
|
|
|
+ }
|
|
|
+ }else if ("巡检点".equals(task.getTasktype()) && ObjectUtil.isNotNull(task.getInspectSpotVo()) && ObjectUtil.isNotNull(task.getInspectSpotVo().getInspectContentList()) && task.getInspectSpotVo().getInspectContentList().size() > 0){
|
|
|
+ // 巡检点下的巡检内容集合
|
|
|
+ List<CmmsInspectContentVo> inspectContentList = task.getInspectSpotVo().getInspectContentList();
|
|
|
+ for (CmmsInspectContentVo content:inspectContentList) {
|
|
|
+ // 巡检内容 - 巡检项集合
|
|
|
+ if (ObjectUtil.isNotNull(content)){
|
|
|
+ List<CmmsInspectContentItemVo> cmmsInspectContentItemList = content.getCmmsInspectContentItemList();
|
|
|
+ itemList.addAll(cmmsInspectContentItemList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ contentList.addAll(inspectContentList);
|
|
|
+ }else {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (CmmsInspectContentItemVo item : itemList) {
|
|
|
+ CmmsInspectTcontentItem cmmsInspectTcontentItem = new CmmsInspectTcontentItem();
|
|
|
+ cmmsInspectTcontentItem.setInspectid(inspect.getId());
|
|
|
+ if (ObjectUtil.isNotNull(item.getInspectcheckcontid())) cmmsInspectTcontentItem.setContitemtid(item.getInspectcheckcontid());
|
|
|
+ if (item.getInspectcheckitemid() != null) cmmsInspectTcontentItem.setInspectitemid(item.getInspectcheckitemid());
|
|
|
+ if (ObjectUtil.isNotNull(item.getRemark())) cmmsInspectTcontentItem.setRemark(item.getRemark());
|
|
|
+ if (ObjectUtil.isNotNull(item.getItemcode())) cmmsInspectTcontentItem.setItemcode(item.getItemcode());
|
|
|
+ if (ObjectUtil.isNotNull(item.getItemname())) cmmsInspectTcontentItem.setItemname(item.getItemname());
|
|
|
+ if (ObjectUtil.isNotNull(item.getEquipdefid())) cmmsInspectTcontentItem.setEquipdefid(item.getEquipdefid());
|
|
|
+ if (ObjectUtil.isNotNull(item.getEquipdefname())) cmmsInspectTcontentItem.setEquipdefname(item.getEquipdefname());
|
|
|
+ if (ObjectUtil.isNotNull(item.getInspectionstandards())) cmmsInspectTcontentItem.setInspectionstandards(item.getInspectionstandards());
|
|
|
+ if (ObjectUtil.isNotNull(item.getClassification())) cmmsInspectTcontentItem.setClassification(item.getClassification());
|
|
|
+ if (ObjectUtil.isNotNull(item.getTag())) cmmsInspectTcontentItem.setTag(item.getTag());
|
|
|
+ cmmsInspectTcontentItem.setIstatus("0");
|
|
|
+ tcontentItemList.add(cmmsInspectTcontentItem);
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean b2 = inspectTcontentItemService.saveBatch(tcontentItemList);
|
|
|
+
|
|
|
+ int eqNum = contentList.size();// 一共有多少设备/资产
|
|
|
+ int itemNum = itemList.size();// 一共有多少个巡检项
|
|
|
+
|
|
|
+ UpdateWrapper<CmmsInspect> updateWapper = new UpdateWrapper<>();
|
|
|
+ updateWapper.set("inspectdetail","包含 "+eqNum+" 个设备/资产,共 "+itemNum+" 个巡检项")
|
|
|
+ .eq("id",inspect.getId());
|
|
|
+ boolean b3 = inspectService.update(updateWapper);
|
|
|
+
|
|
|
+
|
|
|
+ // 巡检操作记录生成
|
|
|
+ CmmsOrderNode node = new CmmsOrderNode();
|
|
|
+ node.setNodename("0");
|
|
|
+ node.setRelid(inspect.getId());
|
|
|
+ node.setCreateBy("admin");
|
|
|
+ node.setHandledate(DateUtils.getDate());
|
|
|
+ node.setOpinion("——");
|
|
|
+ boolean b4 = orderNodeService.save(node);
|
|
|
+ inspectList.add(inspect);
|
|
|
+ if (b1 && b2 && b3){
|
|
|
+ // 更新巡检计划缓存信息
|
|
|
+ setRedisCache();
|
|
|
+ // 生成消息通知
|
|
|
+ List<MessageDTO> noticeList = new ArrayList<>();
|
|
|
+ for (CmmsInspect cmmsInspect:inspectList) {
|
|
|
+ MessageDTO message = new MessageDTO();
|
|
|
+ message.setTitle("巡检工单");
|
|
|
+ message.setToUser(cmmsInspect.getChargeruser());
|
|
|
+ message.setToAll(false);
|
|
|
+ message.setFromUser(cmmsInspect.getCreateBy());
|
|
|
+ message.setType(MessageTypeEnum.XT.getType());
|
|
|
+ message.setContent("巡检工单[" + cmmsInspect.getInspectcode() + " " + cmmsInspect.getInspectname() + "]已生成,请及时处理!");
|
|
|
+ noticeList.add(message);
|
|
|
+ sysBaseApi.sendTemplateMessage(message);//发送系统消息
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * author: dzc
|
|
|
+ * version: 1.0
|
|
|
* des: 批量添加 巡检计划 - 任务
|
|
|
* date: 2024/1/23
|
|
|
*/
|