ソースを参照

Merge remote-tracking branch 'origin/master'

LLL 1 年間 前
コミット
f24cc7de21

+ 21 - 17
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/service/impl/CmmsInspectPlanServiceImpl.java

@@ -95,12 +95,15 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
     public boolean addCmmsInspectPlan(CmmsInspectPlanVo cmmsInspectPlan) {
         CmmsInspectPlan inspectPlan = new CmmsInspectPlan();
         PlanToOrderUtils planToOrderUtils = new PlanToOrderUtils();
-        // 下次执行时间
-        cmmsInspectPlan.setNexttime(cmmsInspectPlan.getBegintime());
-        // 是否已经通知
-        cmmsInspectPlan.setIfnotice("否");
-        // 下次通知时间
-        cmmsInspectPlan.setNoticetime(planToOrderUtils.generateNoticeTime(cmmsInspectPlan.getBegintime(),cmmsInspectPlan.getNoticenum(),cmmsInspectPlan.getNoticetype()));
+        // 由于前端可以选择是否开启时间设置,所以如果为"是",则根据开始时间、重复周期、提前通知时间(1天小时分钟...),生成下次执行时间、下次通知时间
+        if("Y".equals(cmmsInspectPlan.getIftimeset())){
+            // 下次执行时间
+            cmmsInspectPlan.setNexttime(cmmsInspectPlan.getBegintime());
+            // 是否已经通知
+            cmmsInspectPlan.setIfnotice("否");
+            // 下次通知时间
+            cmmsInspectPlan.setNoticetime(planToOrderUtils.generateNoticeTime(cmmsInspectPlan.getBegintime(),cmmsInspectPlan.getNoticenum(),cmmsInspectPlan.getNoticetype()));
+        }
         // 巡检计划编码
         if (cmmsInspectPlan.getPlancode() == null || "".equals(cmmsInspectPlan.getPlancode())){
             cmmsInspectPlan.setPlancode(autoCodeUtil.genSerialCode(UserConstants.CMMSINSPECTPLAN_CODE, null));
@@ -215,10 +218,9 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
                     taskList.get(i).setInspectLineVo(inspectLineService.getCmmsInspectLineById(relid));
                 }
             }
+            cmmsInspectPlanVo.setTaskList(taskList);
         }
 
-        cmmsInspectPlanVo.setTaskList(taskList);
-
         return cmmsInspectPlanVo;
     }
 
@@ -288,15 +290,17 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
         // 操作节点
         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);
 
+        if ("Y".equals(plan.getIftimeset())){
+            // 更新下次执行时间的巡检计划
+            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();
@@ -308,7 +312,7 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
             inspect.setTasktype("周期任务");
         }
         else {
-            inspect.setTasktype("周期任务");
+            inspect.setTasktype("单次任务");
         }
         inspect.setChargeruser(plan.getChargeruser());
         inspect.setStatus("0");

+ 5 - 0
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectSpot/entity/CmmsInspectSpot.java

@@ -68,6 +68,11 @@ public class CmmsInspectSpot implements Serializable {
 	@Excel(name = "设备类型", width = 15)
     @ApiModelProperty(value = "设备类型")
     private java.lang.String equipdefid;
+    /**状态:启用:0、禁用:1*/
+    @Excel(name = "状态:启用:0、禁用:1", width = 15, dicCode = "common_status")
+    @ApiModelProperty(value = "状态:启用:0、禁用:1")
+    @Dict(dicCode = "common_status")
+    private java.lang.String status;
 	/**所属部门*/
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;

+ 3 - 1
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectSpot/mapper/xml/CmmsInspectSpotMapper.xml

@@ -13,18 +13,20 @@
         <result property="contentname"    column="contentname"    />
         <result property="equipdefid"    column="equipdefid"    />
         <result property="equipdefname"    column="equipdefname"    />
+        <result property="status"    column="status"    />
         <result property="sysOrgCode"    column="sys_org_code"    />
     </resultMap>
 
     <select id="getCmmsInspectSpotList" parameterType="org.jeecg.modules.cmmsInspectSpot.entity.CmmsInspectSpot" resultMap="CmmsInspectContentResult">
         select c.id, c.create_by, c.create_time, c.update_by, c.update_time, c.remark,
-        c.contentcode, c.contentname, c.equipdefid, c.sys_org_code, t.name as equipdefname
+        c.contentcode, c.contentname, c.equipdefid, c.status, c.sys_org_code, t.name as equipdefname
         from cmms_inspect_spot as c
         left join tpm_equipment_tree as t
         on c.equipdefid = t.id
         <where>
             <if test="cmmsInspectSpot.contentcode != null  and cmmsInspectSpot.contentcode != ''"> and (c.contentcode like concat('%', #{cmmsInspectSpot.contentcode}, '%') or c.contentname like concat('%', #{cmmsInspectSpot.contentcode}, '%'))</if>
             <if test="cmmsInspectSpot.equipdefid != null "> and c.equipdefid = #{cmmsInspectSpot.equipdefid}</if>
+            <if test="cmmsInspectSpot.status != null "> and c.status = #{cmmsInspectSpot.status}</if>
         </where>
         order by c.create_time desc
     </select>

+ 12 - 0
module_cmms/src/main/java/org/jeecg/modules/cmmsUpkeep/entity/CmmsUpkeepDto.java

@@ -2,6 +2,8 @@ package org.jeecg.modules.cmmsUpkeep.entity;
 
 import lombok.Data;
 import org.jeecg.modules.cmmsOrderNode.entity.CmmsOrderNode;
+import org.jeecg.modules.cmmsUpkeepItem.entity.CmmsUpkeepItem;
+import org.jeecg.modules.cmmsUpkeepItem.entity.CmmsUpkeepItemDto;
 import org.jeecg.modules.sysUploadFile.entity.SysUploadFile;
 
 import java.util.List;
@@ -27,4 +29,14 @@ public class CmmsUpkeepDto extends CmmsUpkeep{
      * 图片
      */
     private List<SysUploadFile> files;
+
+    /**
+     * 设备id
+     */
+    private String equipmentid;
+
+    /**
+     * 保养项信息
+     */
+    private List<CmmsUpkeepItemDto> cmmsUpkeepItemList;
 }

+ 13 - 2
module_cmms/src/main/java/org/jeecg/modules/cmmsUpkeep/service/impl/CmmsUpkeepServiceImpl.java

@@ -7,6 +7,9 @@ import org.jeecg.modules.cmmsUpkeep.entity.CmmsUpkeep;
 import org.jeecg.modules.cmmsUpkeep.entity.CmmsUpkeepDto;
 import org.jeecg.modules.cmmsUpkeep.mapper.CmmsUpkeepMapper;
 import org.jeecg.modules.cmmsUpkeep.service.ICmmsUpkeepService;
+import org.jeecg.modules.cmmsUpkeepPlan.entity.CmmsUpkeepPlan;
+import org.jeecg.modules.cmmsUpkeepPlan.entity.CmmsUpkeepPlanDto;
+import org.jeecg.modules.cmmsUpkeepPlan.service.ICmmsUpkeepPlanService;
 import org.jeecg.modules.sysUploadFile.entity.SysUploadFile;
 import org.jeecg.modules.sysUploadFile.service.ISysUploadFileService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +38,10 @@ public class CmmsUpkeepServiceImpl extends ServiceImpl<CmmsUpkeepMapper, CmmsUpk
 
     @Autowired
     @SuppressWarnings("all")
+    private ICmmsUpkeepPlanService cmmsUpkeepPlanService;
+
+    @Autowired
+    @SuppressWarnings("all")
     private ICmmsOrderNodeService cmmsOrderNodeService;
 
     @Autowired
@@ -42,7 +49,7 @@ public class CmmsUpkeepServiceImpl extends ServiceImpl<CmmsUpkeepMapper, CmmsUpk
     private ISysUploadFileService sysUploadFileService;
 
     /**
-     * 通过id查询保养工单
+     * 通过id查询保养工单详情
      *
      * @param id 保养工单主键
      * @return 保养工单
@@ -50,7 +57,7 @@ public class CmmsUpkeepServiceImpl extends ServiceImpl<CmmsUpkeepMapper, CmmsUpk
     public CmmsUpkeepDto selectCmmsUpkeepById(String id)
     {
         CmmsUpkeepDto cmmsUpkeepDto = new CmmsUpkeepDto();
-        cmmsUpkeepDto.setId(id);
+        cmmsUpkeepDto.setId(id);//保养工单id
         // 保养工单
         CmmsUpkeep cmmsUpkeep = this.getById(id);
         cmmsUpkeepDto.setCreateBy(cmmsUpkeep.getCreateBy());
@@ -74,6 +81,10 @@ public class CmmsUpkeepServiceImpl extends ServiceImpl<CmmsUpkeepMapper, CmmsUpk
         cmmsUpkeepDto.setStatus(cmmsUpkeep.getStatus());
         cmmsUpkeepDto.setOpinion(cmmsUpkeep.getOpinion());
 
+        //通过计划id查询保养计划以及保养计划-保养项
+        CmmsUpkeepPlanDto cmmsUpkeepPlanDto = cmmsUpkeepPlanService.getCmmsUpkeepPlanById(cmmsUpkeepDto.getUpkeepplanid());
+        cmmsUpkeepDto.setEquipmentid(cmmsUpkeepPlanDto.getEquipmentid());
+        cmmsUpkeepDto.setCmmsUpkeepItemList(cmmsUpkeepPlanDto.getCmmsUpkeepItemDtoList());
 
         // 保养操作记录
         CmmsOrderNode node = new CmmsOrderNode();

+ 8 - 1
module_cmms/src/main/java/org/jeecg/modules/cmmsUpkeepPlan/mapper/CmmsUpkeepPlanMapper.java

@@ -49,12 +49,19 @@ public interface CmmsUpkeepPlanMapper extends BaseMapper<CmmsUpkeepPlan> {
     public boolean updateCmmsUpkeepPlanContentById(@Param("cmmsUpkeepPlanDto") CmmsUpkeepPlanDto cmmsUpkeepPlanDto);
 
     /**
-     * 更新保养计划状态
+     * 通过id更新保养计划状态
      *
      */
     public boolean updateCmmsUpkeepPlanStatusById(@Param("cmmsUpkeepPlan") CmmsUpkeepPlan cmmsUpkeepPlan);
 
     /**
+     * 通过设备id将该设备的其它计划都设为不启用
+     * 一个设备只能启用一个计划
+     *
+     */
+    public boolean updateCmmsUpkeepPlanStatusByEqid(@Param("cmmsUpkeepPlan") CmmsUpkeepPlan cmmsUpkeepPlan);
+
+    /**
      * 根据保养计划批量更新下次生成工单时间及通知信息
      *
      */

+ 9 - 3
module_cmms/src/main/java/org/jeecg/modules/cmmsUpkeepPlan/mapper/xml/CmmsUpkeepPlanMapper.xml

@@ -91,18 +91,24 @@
         update cmms_upkeep_plan set status = #{cmmsUpkeepPlan.status} where id=#{cmmsUpkeepPlan.id}
     </update>
 
+    <!--通过设备id修改计划状态-->
+    <update id="updateCmmsUpkeepPlanStatusByEqid" parameterType="org.jeecg.modules.cmmsUpkeepPlan.entity.CmmsUpkeepPlan">
+        update cmms_upkeep_plan set status = "1" where equipmentid=#{cmmsUpkeepPlan.equipmentid} and id != #{cmmsUpkeepPlan.id}
+    </update>
+
     <!--修改下次生成工单时间及通知信息-->
     <update id="updateCmmsUpkeepCreateNoticeByIds" parameterType="org.jeecg.modules.cmmsUpkeepPlan.entity.CmmsUpkeepPlan">
-        <foreach item="item" collection="cmmsUpkeepPlanList" index="index" open="(" separator="," close=")">
+        <foreach item="item" collection="cmmsUpkeepPlanList">
             update cmms_upkeep_plan set nexttime = #{item.nexttime}, ifnotice = #{item.ifnotice}, noticetime = #{item.noticetime}
             where id=#{item.id};
         </foreach>
     </update>
 
     <!--修改是否已发送通知信息-->
-    <update id="updateCmmsUpkeepPlanIfnoticeByIds" parameterType="org.jeecg.modules.cmmsUpkeepPlan.entity.CmmsUpkeepPlan">
+    <update id="updateCmmsUpkeepPlanIfnoticeByIds">
         <foreach item="item" collection="cmmsUpkeepPlanList">
-            update cmms_upkeep_plan set ifnotice = #{item.ifnotice} where id=#{item.id}
+            update cmms_upkeep_plan set ifnotice = #{item.ifnotice}
+            where id=#{item.id};
         </foreach>
     </update>
 

+ 8 - 1
module_cmms/src/main/java/org/jeecg/modules/cmmsUpkeepPlan/service/ICmmsUpkeepPlanService.java

@@ -57,12 +57,19 @@ public interface ICmmsUpkeepPlanService extends IService<CmmsUpkeepPlan> {
     public boolean updateCmmsUpkeepPlanContentById(CmmsUpkeepPlanDto cmmsUpkeepPlanDto);
 
     /**
-     * 更新保养计划状态
+     * 通过id更新保养计划状态
      *
      */
     public boolean updateCmmsUpkeepPlanStatusById(CmmsUpkeepPlan cmmsUpkeepPlan);
 
     /**
+     * 通过设备id将该设备的其它计划都设为不启用
+     * 一个设备只能启用一个计划
+     *
+     */
+    public boolean updateCmmsUpkeepPlanStatusByEqid(CmmsUpkeepPlan cmmsUpkeepPlan);
+
+    /**
      * 根据保养计划批量更新下次生成工单时间及通知信息
      *
      */

+ 33 - 24
module_cmms/src/main/java/org/jeecg/modules/cmmsUpkeepPlan/service/impl/CmmsUpkeepPlanServiceImpl.java

@@ -128,31 +128,34 @@ public class CmmsUpkeepPlanServiceImpl extends ServiceImpl<CmmsUpkeepPlanMapper,
      */
     public boolean insertCmmsUpkeepPlan(CmmsUpkeepPlanDto cmmsUpkeepPlanDto)
     {
+        System.out.println(cmmsUpkeepPlanDto);
         //一、更新保养计划表
         //新建一个保养计划实例
         CmmsUpkeepPlan cmmsUpkeepPlan = new CmmsUpkeepPlan();
         //保养计划编号
         if(cmmsUpkeepPlanDto.getPlancode() == null || "".equals(cmmsUpkeepPlanDto.getPlancode())) cmmsUpkeepPlan.setPlancode(autoCodeUtil.genSerialCode(UserConstants.CMMSUPKEEPPLAN_CODE, null));
-        if(cmmsUpkeepPlanDto.getPlanname() != null) cmmsUpkeepPlan.setPlanname(cmmsUpkeepPlanDto.getPlanname());//保养计划名称
-        if(cmmsUpkeepPlanDto.getUpkeepprojid() != null) cmmsUpkeepPlan.setUpkeepprojid(cmmsUpkeepPlanDto.getUpkeepprojid());//保养工作项目id
-        if(cmmsUpkeepPlanDto.getProjectname() != null) cmmsUpkeepPlan.setProjectname(cmmsUpkeepPlanDto.getProjectname());//保养工作项目名称
-        if(cmmsUpkeepPlanDto.getAddress() != null) cmmsUpkeepPlan.setAddress(cmmsUpkeepPlanDto.getAddress());//地点
-        if(cmmsUpkeepPlanDto.getSupplier() != null) cmmsUpkeepPlan.setSupplier(cmmsUpkeepPlanDto.getSupplier());//厂商名称
-        if(cmmsUpkeepPlanDto.getSuppliertel() != null) cmmsUpkeepPlan.setSuppliertel(cmmsUpkeepPlanDto.getSuppliertel());//厂商电话
-        if(cmmsUpkeepPlanDto.getLinker() != null) cmmsUpkeepPlan.setLinker(cmmsUpkeepPlanDto.getLinker());//联系人
-        if(cmmsUpkeepPlanDto.getLinkertel() != null) cmmsUpkeepPlan.setLinkertel(cmmsUpkeepPlanDto.getLinkertel());//联系人电话
-        if(cmmsUpkeepPlanDto.getChargeruser() != null) cmmsUpkeepPlan.setChargeruser(cmmsUpkeepPlanDto.getChargeruser());//负责人
-        if(cmmsUpkeepPlanDto.getPlandesc() != null) cmmsUpkeepPlan.setPlandesc(cmmsUpkeepPlanDto.getPlandesc());//描述
-        if(cmmsUpkeepPlanDto.getBegintime() != null) cmmsUpkeepPlan.setBegintime(cmmsUpkeepPlanDto.getBegintime());//保养计划第一次开始时间
-        if(cmmsUpkeepPlanDto.getBegintime() != null) cmmsUpkeepPlan.setNexttime(cmmsUpkeepPlanDto.getBegintime());//保养计划下次执行开始时间
+        if(cmmsUpkeepPlanDto.getPlanname() != null && !("".equals(cmmsUpkeepPlan.getPlanname()))) cmmsUpkeepPlan.setPlanname(cmmsUpkeepPlanDto.getPlanname());//保养计划名称
+        if(cmmsUpkeepPlanDto.getUpkeepprojid() != null && !("".equals(cmmsUpkeepPlan.getUpkeepprojid()))) cmmsUpkeepPlan.setUpkeepprojid(cmmsUpkeepPlanDto.getUpkeepprojid());//保养工作项目id
+        if(cmmsUpkeepPlanDto.getProjectname() != null && !("".equals(cmmsUpkeepPlan.getProjectname()))) cmmsUpkeepPlan.setProjectname(cmmsUpkeepPlanDto.getProjectname());//保养工作项目名称
+        if(cmmsUpkeepPlanDto.getAddress() != null && !("".equals(cmmsUpkeepPlan.getAddress()))) cmmsUpkeepPlan.setAddress(cmmsUpkeepPlanDto.getAddress());//地点
+        if(cmmsUpkeepPlanDto.getSupplier() != null && !("".equals(cmmsUpkeepPlan.getSupplier()))) cmmsUpkeepPlan.setSupplier(cmmsUpkeepPlanDto.getSupplier());//厂商名称
+        if(cmmsUpkeepPlanDto.getSuppliertel() != null && !("".equals(cmmsUpkeepPlan.getSuppliertel()))) cmmsUpkeepPlan.setSuppliertel(cmmsUpkeepPlanDto.getSuppliertel());//厂商电话
+        if(cmmsUpkeepPlanDto.getLinker() != null && !("".equals(cmmsUpkeepPlan.getLinker()))) cmmsUpkeepPlan.setLinker(cmmsUpkeepPlanDto.getLinker());//联系人
+        if(cmmsUpkeepPlanDto.getLinkertel() != null && !("".equals(cmmsUpkeepPlan.getLinkertel()))) cmmsUpkeepPlan.setLinkertel(cmmsUpkeepPlanDto.getLinkertel());//联系人电话
+        if(cmmsUpkeepPlanDto.getChargeruser() != null && !("".equals(cmmsUpkeepPlan.getChargeruser()))) cmmsUpkeepPlan.setChargeruser(cmmsUpkeepPlanDto.getChargeruser());//负责人
+        if(cmmsUpkeepPlanDto.getPlandesc() != null && !("".equals(cmmsUpkeepPlan.getPlandesc()))) cmmsUpkeepPlan.setPlandesc(cmmsUpkeepPlanDto.getPlandesc());//描述
+        if(cmmsUpkeepPlanDto.getBegintime() != null){
+            cmmsUpkeepPlan.setBegintime(cmmsUpkeepPlanDto.getBegintime());//保养计划第一次开始时间
+            cmmsUpkeepPlan.setNexttime(cmmsUpkeepPlanDto.getBegintime());//保养计划下次执行开始时间
+        }
         if(cmmsUpkeepPlanDto.getRepeatnum() != null) cmmsUpkeepPlan.setRepeatnum(cmmsUpkeepPlanDto.getRepeatnum());//保养计划间隔重复的时间
-        if(cmmsUpkeepPlanDto.getRepeattype() != null) cmmsUpkeepPlan.setRepeattype(cmmsUpkeepPlanDto.getRepeattype());//保养计划间隔重复的时间单位
+        if(cmmsUpkeepPlanDto.getRepeattype() != null && !("".equals(cmmsUpkeepPlan.getRepeattype()))) cmmsUpkeepPlan.setRepeattype(cmmsUpkeepPlanDto.getRepeattype());//保养计划间隔重复的时间单位
         if(cmmsUpkeepPlanDto.getNoticenum() != null) cmmsUpkeepPlan.setNoticenum(cmmsUpkeepPlanDto.getNoticenum());//保养计划执行提前通知时间
-        if(cmmsUpkeepPlanDto.getNoticetype() != null) cmmsUpkeepPlan.setNoticetype(cmmsUpkeepPlanDto.getNoticetype());//保养计划执行提前通知时间单位
-        if(cmmsUpkeepPlanDto.getStatus() != null) cmmsUpkeepPlan.setStatus(cmmsUpkeepPlanDto.getStatus());//保养计划是否启用状态 0启用 1停用
-        if(cmmsUpkeepPlanDto.getIfnotice() != null) cmmsUpkeepPlan.setIfnotice("否");//保养计划即将执行是否已通知 是/否
-        if(cmmsUpkeepPlanDto.getEquipmentid() != null) cmmsUpkeepPlan.setEquipmentid(cmmsUpkeepPlanDto.getEquipmentid());//保养计划对应的设备id
-        if(cmmsUpkeepPlanDto.getRemark() != null & (!("".equals(cmmsUpkeepPlanDto.getRemark())))) cmmsUpkeepPlan.setRemark(cmmsUpkeepPlanDto.getRemark());//保养计划备注
+        if(cmmsUpkeepPlanDto.getNoticetype() != null && !("".equals(cmmsUpkeepPlan.getNoticetype()))) cmmsUpkeepPlan.setNoticetype(cmmsUpkeepPlanDto.getNoticetype());//保养计划执行提前通知时间单位
+        if(cmmsUpkeepPlanDto.getStatus() != null && !("".equals(cmmsUpkeepPlan.getStatus()))) cmmsUpkeepPlan.setStatus(cmmsUpkeepPlanDto.getStatus());//保养计划是否启用状态 0启用 1停用
+        if(cmmsUpkeepPlanDto.getEquipmentid() != null && !("".equals(cmmsUpkeepPlan.getEquipmentid()))) cmmsUpkeepPlan.setEquipmentid(cmmsUpkeepPlanDto.getEquipmentid());//保养计划对应的设备id
+        if(cmmsUpkeepPlanDto.getRemark() != null && (!("".equals(cmmsUpkeepPlanDto.getRemark())))) cmmsUpkeepPlan.setRemark(cmmsUpkeepPlanDto.getRemark());//保养计划备注
+        cmmsUpkeepPlan.setIfnotice("否");//保养计划即将执行是否已通知 是/否  第一次创建计划时都为否
 //        cmmsUpkeepPlan.setNexttime(getNextTime(cmmsUpkeepPlanDto.getBegintime(), cmmsUpkeepPlanDto.getRepeattype(), cmmsUpkeepPlanDto.getRepeatnum()));//下次保养计划执行时间
         cmmsUpkeepPlan.setNoticetime(getNextTime(cmmsUpkeepPlanDto.getBegintime(), cmmsUpkeepPlanDto.getNoticetype(), -(cmmsUpkeepPlanDto.getNoticenum())));//保养计划执行提醒时间
         boolean b1 = this.save(cmmsUpkeepPlan);
@@ -220,18 +223,26 @@ public class CmmsUpkeepPlanServiceImpl extends ServiceImpl<CmmsUpkeepPlanMapper,
      */
     public boolean updateCmmsUpkeepPlanStatusById(CmmsUpkeepPlan cmmsUpkeepPlan){
         boolean rtn = cmmsUpkeepPlanMapper.updateCmmsUpkeepPlanStatusById(cmmsUpkeepPlan);
+        if(cmmsUpkeepPlan.getStatus().equals("0")) cmmsUpkeepPlanMapper.updateCmmsUpkeepPlanStatusByEqid(cmmsUpkeepPlan);
         setRedisCache();
         return rtn;
     }
 
     /**
+     * 通过设备id将该设备的其它计划都设为不启用
+     * 一个设备只能启用一个计划
+     *
+     */
+    public boolean updateCmmsUpkeepPlanStatusByEqid(CmmsUpkeepPlan cmmsUpkeepPlan){
+        return cmmsUpkeepPlanMapper.updateCmmsUpkeepPlanStatusByEqid(cmmsUpkeepPlan);
+    }
+
+    /**
      * 根据保养计划批量更新下次生成工单时间及通知信息
      *
      */
     public boolean updateCmmsUpkeepCreateNoticeByIds(List<CmmsUpkeepPlan> cmmsUpkeepPlanList){
-        boolean rtn = cmmsUpkeepPlanMapper.updateCmmsUpkeepCreateNoticeByIds(cmmsUpkeepPlanList);
-        setRedisCache();
-        return rtn;
+        return cmmsUpkeepPlanMapper.updateCmmsUpkeepCreateNoticeByIds(cmmsUpkeepPlanList);
     }
 
 
@@ -240,9 +251,7 @@ public class CmmsUpkeepPlanServiceImpl extends ServiceImpl<CmmsUpkeepPlanMapper,
      *
      */
     public boolean updateCmmsUpkeepPlanIfnoticeByIds(List<CmmsUpkeepPlan> cmmsUpkeepPlanList){
-        boolean rtn = cmmsUpkeepPlanMapper.updateCmmsUpkeepPlanIfnoticeByIds(cmmsUpkeepPlanList);
-        setRedisCache();
-        return rtn;
+        return cmmsUpkeepPlanMapper.updateCmmsUpkeepPlanIfnoticeByIds(cmmsUpkeepPlanList);
     }
 
     /**