Просмотр исходного кода

修改计划接口-调整-审批通过的计划直接新创建一个

wuzhenyue 3 лет назад
Родитель
Сommit
2596148ae1

+ 3 - 3
application-facade/src/main/java/com/factory/web/entity/fa/FirstArticleItem.java

@@ -53,13 +53,13 @@ public class FirstArticleItem implements Serializable {
 	private Integer valFlag;
 	
 	@ApiModelProperty(value = "上限 对应数据类型0数值")
-	private Integer valUp;
+	private Double valUp;
 	
 	@ApiModelProperty(value = "下限 对应数据类型0数值")
-	private Integer valDown;
+	private Double valDown;
 
 	@ApiModelProperty(value = "单位 对应数据类型0数值")
-	private Integer valUnit;
+	private String valUnit;
 	
 	@ApiModelProperty(value = "0表示ok 1表示nook 对应数据类型1属性")
 	private Integer valOk;

+ 3 - 3
application-facade/src/main/java/com/factory/web/entity/fa/req/FirstArticleItemReq.java

@@ -37,13 +37,13 @@ public class FirstArticleItemReq {
 	private Integer valFlag;
 	
 	@ApiModelProperty(value = "上限 对应数据类型0数值")
-	private Integer valUp;
+	private Double valUp;
 	
 	@ApiModelProperty(value = "下限 对应数据类型0数值")
-	private Integer valDown;
+	private Double valDown;
 	
 	@ApiModelProperty(value = "单位 对应数据类型0数值")
-	private Integer valUnit;
+	private String valUnit;
 	
 	@ApiModelProperty(value = "0表示ok 1表示nook 对应数据类型1属性")
 	private Integer valOk;

+ 3 - 3
application-facade/src/main/java/com/factory/web/entity/fa/res/FaItemListForPadRes.java

@@ -53,13 +53,13 @@ public class FaItemListForPadRes implements Serializable {
 	private Integer valFlag;
 	
 	@ApiModelProperty(value = "上限 对应数据类型0数值")
-	private Integer valUp;
+	private Double valUp;
 	
 	@ApiModelProperty(value = "下限 对应数据类型0数值")
-	private Integer valDown;
+	private Double valDown;
 
 	@ApiModelProperty(value = "单位 对应数据类型0数值")
-	private Integer valUnit;
+	private String valUnit;
 	
 	@ApiModelProperty(value = "0表示ok 1表示nook 对应数据类型1属性")
 	private Integer valOk;

+ 3 - 3
application-facade/src/main/java/com/factory/web/entity/fa/res/FaItemNoGoListRes.java

@@ -60,13 +60,13 @@ public class FaItemNoGoListRes implements Serializable {
 	private Integer valFlag;
 	
 	@ApiModelProperty(value = "上限 对应数据类型0数值")
-	private Integer valUp;
+	private Double valUp;
 	
 	@ApiModelProperty(value = "下限 对应数据类型0数值")
-	private Integer valDown;
+	private Double valDown;
 
 	@ApiModelProperty(value = "单位 对应数据类型0数值")
-	private Integer valUnit;
+	private String valUnit;
 	
 	@ApiModelProperty(value = "0表示ok 1表示nook 对应数据类型1属性")
 	private Integer valOk;

+ 49 - 0
application-facade/src/main/java/com/factory/web/entity/pm/PlanBind.java

@@ -0,0 +1,49 @@
+package com.factory.web.entity.pm;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 计划绑定
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@TableName("plan_bind")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class PlanBind implements Serializable {
+
+	@TableId(type = IdType.AUTO)
+	@ApiModelProperty(value = "计划审批id")
+	private Long id;
+	
+	@ApiModelProperty(value = "旧的计划id")
+	private Long oldBentelerPlanId;
+	
+	@ApiModelProperty(value = "新的计划id")
+	private Long newBentelerPlanId;
+
+	@TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "创建人")
+    private Long createdUserId;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createdTime;
+
+}

+ 3 - 3
application-facade/src/main/java/com/factory/web/entity/pm/res/AbnormalItemRes.java

@@ -53,13 +53,13 @@ public class AbnormalItemRes implements Serializable {
 	private Integer valFlag;
 	
 	@ApiModelProperty(value = "上限 对应数据类型0数值")
-	private Integer valUp;
+	private Double valUp;
 	
 	@ApiModelProperty(value = "下限 对应数据类型0数值")
-	private Integer valDown;
+	private Double valDown;
 
 	@ApiModelProperty(value = "单位 对应数据类型0数值")
-	private Integer valUnit;
+	private String valUnit;
 	
 	@ApiModelProperty(value = "0表示ok 1表示nook 对应数据类型1属性")
 	private Integer valOk;

+ 18 - 0
application-facade/src/main/java/com/factory/web/mapper/pm/PlanBindMapper.java

@@ -0,0 +1,18 @@
+package com.factory.web.mapper.pm;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.web.entity.pm.PlanBind;
+
+
+/**
+ * 计划绑定
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Mapper
+public interface PlanBindMapper extends BaseMapper<PlanBind> {
+
+}

+ 8 - 0
application-facade/src/main/java/com/factory/web/service/fa/FirstArticleService.java

@@ -85,6 +85,14 @@ public interface FirstArticleService extends IService<BentelerPlan> {
 	 */
 	public FaPlanRes getFaPlan(SearchFaPlanReq req);
 	
+	/**
+	 * 校验当前计划是否审批通过
+     *
+	 * @param bentelerPlanId
+	 * @return true通过,false不通过
+	 */
+	public boolean checkApprovalPlan(long bentelerPlanId);
+	
 	/**
 	 * 修改首件计划
 	 * 

+ 343 - 149
application-facade/src/main/java/com/factory/web/service/impl/fa/FirstArticleServiceImpl.java

@@ -1,6 +1,24 @@
 package com.factory.web.service.impl.fa;
 
-import cn.hutool.core.convert.Convert;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
@@ -18,31 +36,71 @@ import com.factory.base.util.res.ResponseBeanBuilder;
 import com.factory.config.MyHandler;
 import com.factory.user.entity.vo.res.FileRes;
 import com.factory.user.service.CommonService;
-import com.factory.web.entity.fa.*;
-import com.factory.web.entity.fa.req.*;
-import com.factory.web.entity.fa.res.*;
+import com.factory.web.entity.fa.FirstArticleApprovalTask;
+import com.factory.web.entity.fa.FirstArticleCalendar;
+import com.factory.web.entity.fa.FirstArticleItem;
+import com.factory.web.entity.fa.FirstArticleItemResult;
+import com.factory.web.entity.fa.FirstArticleTask;
+import com.factory.web.entity.fa.FirstArticleTaskHisBlob;
+import com.factory.web.entity.fa.FirstArticleTitle;
+import com.factory.web.entity.fa.FirstArticleTitleBlob;
+import com.factory.web.entity.fa.FirstArticleWorkshop;
+import com.factory.web.entity.fa.req.AddFaItemResultListReq;
+import com.factory.web.entity.fa.req.AddFaItemResultReq;
+import com.factory.web.entity.fa.req.AddFaPlanReq;
+import com.factory.web.entity.fa.req.EditFaItemResultListReq;
+import com.factory.web.entity.fa.req.EditFaItemResultReq;
+import com.factory.web.entity.fa.req.EditFaPlanReq;
+import com.factory.web.entity.fa.req.FirstArticleCalendarReq;
+import com.factory.web.entity.fa.req.FirstArticleItemReq;
+import com.factory.web.entity.fa.req.FirstArticleWorkshopReq;
+import com.factory.web.entity.fa.req.SearchALLPlanListReq;
+import com.factory.web.entity.fa.req.SearchFaCalendarReq;
+import com.factory.web.entity.fa.req.SearchFaCheckRecordListReq;
+import com.factory.web.entity.fa.req.SearchFaItemListForPadReq;
+import com.factory.web.entity.fa.req.SearchFaItemNoGoListReq;
+import com.factory.web.entity.fa.req.SearchFaItemReleaseCountReq;
+import com.factory.web.entity.fa.req.SearchFaItemResultListReq;
+import com.factory.web.entity.fa.req.SearchFaPlanCheckListReq;
+import com.factory.web.entity.fa.req.SearchFaPlanListForPadReq;
+import com.factory.web.entity.fa.req.SearchFaPlanReq;
+import com.factory.web.entity.fa.req.SearchFaTaskInfoReq;
+import com.factory.web.entity.fa.req.SearchFaTaskReq;
+import com.factory.web.entity.fa.req.SearchFaWorkshopListForPadReq;
+import com.factory.web.entity.fa.req.SearchFaWorkshopNoGoListReq;
+import com.factory.web.entity.fa.req.SearchFaWsItemResultCountReq;
+import com.factory.web.entity.fa.req.SearchUserListReq;
+import com.factory.web.entity.fa.req.SubmitFaTaskReq;
+import com.factory.web.entity.fa.res.FaCalendarRes;
+import com.factory.web.entity.fa.res.FaCheckRecordListRes;
+import com.factory.web.entity.fa.res.FaItemListForPadRes;
+import com.factory.web.entity.fa.res.FaItemNoGoListRes;
+import com.factory.web.entity.fa.res.FaNoGoTaskAapprovalRes;
+import com.factory.web.entity.fa.res.FaPlanListForPadRes;
+import com.factory.web.entity.fa.res.FaPlanListRes;
+import com.factory.web.entity.fa.res.FaPlanRes;
+import com.factory.web.entity.fa.res.FaTaskRes;
+import com.factory.web.entity.fa.res.FaWorkshopNoGoListRes;
+import com.factory.web.entity.fa.res.UserListRes;
 import com.factory.web.entity.pm.OnsiteApprovalPlan;
+import com.factory.web.entity.pm.PlanBind;
 import com.factory.web.entity.pm.res.ApprovalUserRes;
 import com.factory.web.mapper.fa.FirstArticleMapper;
 import com.factory.web.service.BentelerPlanService;
-import com.factory.web.service.fa.*;
+import com.factory.web.service.fa.FirstArticleApprovalTaskService;
+import com.factory.web.service.fa.FirstArticleCalendarService;
+import com.factory.web.service.fa.FirstArticleItemResultService;
+import com.factory.web.service.fa.FirstArticleItemService;
+import com.factory.web.service.fa.FirstArticleService;
+import com.factory.web.service.fa.FirstArticleTaskHisBlobService;
+import com.factory.web.service.fa.FirstArticleTaskService;
+import com.factory.web.service.fa.FirstArticleTitleBlobService;
+import com.factory.web.service.fa.FirstArticleWorkshopService;
 import com.factory.web.service.pm.OnsiteApprovalPlanService;
+import com.factory.web.service.pm.PlanBindService;
 import com.factory.web.service.pm.PreventMistakeService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
-import java.io.*;
-import java.time.LocalDate;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-import java.util.stream.Stream;
+import cn.hutool.core.convert.Convert;
 
 
 /**
@@ -96,6 +154,8 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
     @Autowired
     private CommonService commonService;
 
+    @Autowired
+	private PlanBindService planBindService;
 
     /**
      * 新建防错计划
@@ -288,143 +348,277 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
         return faPlanRes;
     }
 
-
     /**
-     * 修改首件计划
+	 * 校验当前计划是否审批通过
      *
+	 * @param bentelerPlanId
+	 * @return true通过,false不通过
+	 */
+	@Override
+	public boolean checkApprovalPlan(long bentelerPlanId) {
+		int count = onsiteApprovalPlanService.count(
+				Wrappers.<OnsiteApprovalPlan> lambdaQuery()
+				.eq(OnsiteApprovalPlan::getBentelerPlanId, bentelerPlanId)
+				.eq(OnsiteApprovalPlan::getApprovalLevel, 2)
+				.eq(OnsiteApprovalPlan::getStatus, 1));
+		if (count > 0) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+
+	/**
+     * 修改首件计划
      * @param req
      * @return
      */
-    @Override
-    public ResponseBean editFaPlan(EditFaPlanReq req) {
-
-        BentelerPlan oldPlan = planService.getById(req.getBentelerPlanId());
-        if (!req.getBentelerPlanName().equals(oldPlan.getName())) {
-            /* 校验计划名称是否存在 */
-            if (this.checkPlanNameExist(req.getBentelerPlanName())) {
-                return ResponseBeanBuilder.fail("计划名称已存在");
-            }
-        }
-
-        /* 修改防错计划 */
-        BentelerPlan plan = BentelerPlan.builder()
-                .id(req.getBentelerPlanId())
-                .name(req.getBentelerPlanName())
-                .effectiveDate(req.getEffectiveDate())
-                .build();
-        planService.updateById(plan);
-
-        /* 修改首件、200件点检规则 */
-        /* 删除首件、200件点检规则 */
-        firstArticleCalendarService.remove(Wrappers.<FirstArticleCalendar>lambdaQuery()
-                .eq(FirstArticleCalendar::getBentelerPlanId, plan.getId()));
-        /* 添加首件、200件点检规则 */
-        List<FirstArticleCalendarReq> firstArticleCalendarList = req.getFirstArticleCalendarList();
-        for (FirstArticleCalendarReq firstArticleCalendarReq : firstArticleCalendarList) {
-            FirstArticleCalendar firstArticleCalendar = FirstArticleCalendar.builder()
-                    .bentelerPlanId(plan.getId())
-                    .startDay(firstArticleCalendarReq.getStartDay())
-                    .endDay(firstArticleCalendarReq.getEndDay())
-                    .dayValidate(firstArticleCalendarReq.getDayValidate())
-                    .dayOuttime(firstArticleCalendarReq.getDayOuttime())
-                    .twoHundredSubmitTime(firstArticleCalendarReq.getTwoHundredSubmitTime())
-                    .userId(firstArticleCalendarReq.getUserId())
-                    .typeFlag(firstArticleCalendarReq.getTypeFlag())
-                    .shift(firstArticleCalendarReq.getShift())
-                    .build();
-            firstArticleCalendarService.save(firstArticleCalendar);
-        }
-        /* 默认插入一条中断点检规则 */
-        FirstArticleCalendar firstArticleCalendar = FirstArticleCalendar.builder()
-                .bentelerPlanId(plan.getId())
-                .userId(-1L)
-                .typeFlag(2) // 2中断
-                .build();
-        firstArticleCalendarService.save(firstArticleCalendar);
-
-        /* 修改表头信息 */
-        try {
-            LambdaUpdateWrapper<FirstArticleTitleBlob> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
-            lambdaUpdateWrapper.eq(FirstArticleTitleBlob::getBentelerPlanId, plan.getId())
-                    .set(FirstArticleTitleBlob::getTitleContent, this.objectToByteArray(req.getFirstArticleTitle()));
-            firstArticleTitleBlobService.update(lambdaUpdateWrapper);
-        } catch (Exception e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-
-        /* 修改工作站、巡检项目 */
-        /* 删除巡检项目 */
-        List<FirstArticleWorkshop> firstArticleWorkshopListTemp = firstArticleWorkshopService.list(Wrappers.<FirstArticleWorkshop>lambdaQuery()
-                .eq(FirstArticleWorkshop::getBentelerPlanId, plan.getId()));
-        List<Long> workshopIdList = new ArrayList<Long>();
-        for (FirstArticleWorkshop firstArticleWorkshop : firstArticleWorkshopListTemp) {
-            workshopIdList.add(firstArticleWorkshop.getId());
-        }
-        firstArticleItemService.remove(Wrappers.<FirstArticleItem>lambdaQuery()
-                .in(FirstArticleItem::getWorkshopId, workshopIdList));
-        /* 删除工作站 */
-        firstArticleWorkshopService.remove(Wrappers.<FirstArticleWorkshop>lambdaQuery()
-                .eq(FirstArticleWorkshop::getBentelerPlanId, plan.getId()));
-        /* 添加工作站信息 */
-        List<FirstArticleWorkshopReq> firstArticleWorkshopList = req.getFirstArticleWorkshopList();
-        for (FirstArticleWorkshopReq firstArticleWorkshopReq : firstArticleWorkshopList) {
-//			if (this.checkWsNameExist(firstArticleWorkshopReq.getWsName())) {
-//				return ResponseBeanBuilder.fail("工作站名称" + firstArticleWorkshopReq.getWsName() + "已存在");
+	@Override
+	public ResponseBean editFaPlan(EditFaPlanReq req) {
+		
+		if (this.checkApprovalPlan(req.getBentelerPlanId())) { // 审批通过
+			
+//			/* 校验计划名称是否存在 */
+//			if (this.checkPlanNameExist(req.getBentelerPlanName())) {
+//				return ResponseBeanBuilder.fail("计划名称已存在");
 //			}
 
-            FirstArticleWorkshop firstArticleWorkshop = FirstArticleWorkshop.builder()
-                    .bentelerPlanId(plan.getId())
-                    .wsName(firstArticleWorkshopReq.getWsName())
-                    .plName(firstArticleWorkshopReq.getPlName())
-                    .build();
-            firstArticleWorkshopService.save(firstArticleWorkshop);
-
-            /* 添加巡检项目信息 */
-            List<FirstArticleItemReq> firstArticleItemList = firstArticleWorkshopReq.getFirstArticleItemList();
-            for (FirstArticleItemReq firstArticleItemReq : firstArticleItemList) {
-                FirstArticleItem firstArticleItem = FirstArticleItem.builder()
-                        .workshopId(firstArticleWorkshop.getId())
-                        .itemContent(firstArticleItemReq.getItemContent())
-                        .itemStandard(firstArticleItemReq.getItemStandard())
-                        .prefix(firstArticleItemReq.getPrefix())
-                        .snoStart(firstArticleItemReq.getSnoStart())
-                        .snoEnd(firstArticleItemReq.getSnoEnd())
-                        .valFlag(firstArticleItemReq.getValFlag())
-                        .valUp(firstArticleItemReq.getValUp())
-                        .valDown(firstArticleItemReq.getValDown())
-                        .valOk(firstArticleItemReq.getValOk())
-                        .valDesc(firstArticleItemReq.getValDesc())
-                        .levelInfo(firstArticleItemReq.getLevelInfo())
-                        .productInfo(firstArticleItemReq.getProductInfo())
-                        .toolId(firstArticleItemReq.getToolId())
-                        .toolDesc(firstArticleItemReq.getToolDesc())
-                        .firstFlag(firstArticleItemReq.getFirstFlag())
-                        .twoHundredFlag(firstArticleItemReq.getTwoHundredFlag())
-                        .catchFlag(firstArticleItemReq.getCatchFlag())
-                        .build();
-                firstArticleItemService.save(firstArticleItem);
-            }
-        }
-
-        /* 删除之前的审批记录 */
-        onsiteApprovalPlanService.remove(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
-                .eq(OnsiteApprovalPlan::getBentelerPlanId, plan.getId()));
-        /* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
-        ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(1, 1);
-        if (approvalUserRes != null) {
-            /* 添加计划一级审批 */
-            OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
-                    .bentelerPlanId(plan.getId())
-                    .approvalLevel(1) // 1级审批
-                    .approvalUserId(approvalUserRes.getUserId())
-                    .status(0) // 0未审批
-                    .build();
-            onsiteApprovalPlanService.save(onsiteApprovalPlan);
-        }
-
-        return ResponseBeanBuilder.ok();
-    }
+			/* 添加防错计划 */
+			BentelerPlan plan = BentelerPlan.builder()
+					.planType(PlanType.首件.value)
+					.name(req.getBentelerPlanName())
+					.pauseFlag(false)
+					.effectiveDate(req.getEffectiveDate())
+					.build();
+			planService.save(plan);
+
+			/* 添加首件、200件点检规则 */
+			List<FirstArticleCalendarReq> firstArticleCalendarList = req.getFirstArticleCalendarList();
+			for (FirstArticleCalendarReq firstArticleCalendarReq : firstArticleCalendarList) {
+				FirstArticleCalendar firstArticleCalendar = FirstArticleCalendar.builder()
+						.bentelerPlanId(plan.getId())
+						.startDay(firstArticleCalendarReq.getStartDay())
+						.endDay(firstArticleCalendarReq.getEndDay())
+						.dayValidate(firstArticleCalendarReq.getDayValidate())
+						.dayOuttime(firstArticleCalendarReq.getDayOuttime())
+						.twoHundredSubmitTime(firstArticleCalendarReq.getTwoHundredSubmitTime())
+						.userId(firstArticleCalendarReq.getUserId())
+						.typeFlag(firstArticleCalendarReq.getTypeFlag())
+						.shift(firstArticleCalendarReq.getShift())
+						.build();
+				firstArticleCalendarService.save(firstArticleCalendar);
+			}
+
+			/* 默认插入一条中断点检规则 */
+			FirstArticleCalendar firstArticleCalendar = FirstArticleCalendar.builder()
+					.bentelerPlanId(plan.getId())
+					.userId(-1L)
+					.typeFlag(2) // 2中断
+					.build();
+			firstArticleCalendarService.save(firstArticleCalendar);
+
+			/* 添加表头信息 */
+			try {
+				FirstArticleTitleBlob firstArticleTitleBlob = FirstArticleTitleBlob.builder()
+						.bentelerPlanId(plan.getId())
+						.titleContent(this.objectToByteArray(req.getFirstArticleTitle()))
+						.build();
+				firstArticleTitleBlobService.save(firstArticleTitleBlob);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+
+			/* 添加工作站信息 */
+			List<FirstArticleWorkshopReq> firstArticleWorkshopList = req.getFirstArticleWorkshopList();
+			for (FirstArticleWorkshopReq firstArticleWorkshopReq : firstArticleWorkshopList) {
+//				if (this.checkWsNameExist(firstArticleWorkshopReq.getWsName())) {
+//					return ResponseBeanBuilder.fail("工作站名称" + firstArticleWorkshopReq.getWsName() + "已存在");
+//				}
+
+				FirstArticleWorkshop firstArticleWorkshop = FirstArticleWorkshop.builder()
+						.bentelerPlanId(plan.getId())
+						.wsName(firstArticleWorkshopReq.getWsName())
+						.plName(firstArticleWorkshopReq.getPlName())
+						.build();
+				firstArticleWorkshopService.save(firstArticleWorkshop);
+
+				/* 添加巡检项目信息 */
+				List<FirstArticleItemReq> firstArticleItemList = firstArticleWorkshopReq.getFirstArticleItemList();
+				for (FirstArticleItemReq firstArticleItemReq : firstArticleItemList) {
+					FirstArticleItem firstArticleItem = FirstArticleItem.builder()
+							.workshopId(firstArticleWorkshop.getId())
+							.itemContent(firstArticleItemReq.getItemContent())
+							.itemStandard(firstArticleItemReq.getItemStandard())
+							.prefix(firstArticleItemReq.getPrefix())
+							.snoStart(firstArticleItemReq.getSnoStart())
+							.snoEnd(firstArticleItemReq.getSnoEnd())
+							.valFlag(firstArticleItemReq.getValFlag())
+							.valUp(firstArticleItemReq.getValUp())
+							.valDown(firstArticleItemReq.getValDown())
+							.valOk(firstArticleItemReq.getValOk())
+							.valDesc(firstArticleItemReq.getValDesc())
+							.levelInfo(firstArticleItemReq.getLevelInfo())
+							.productInfo(firstArticleItemReq.getProductInfo())
+							.toolId(firstArticleItemReq.getToolId())
+							.toolDesc(firstArticleItemReq.getToolDesc())
+							.firstFlag(firstArticleItemReq.getFirstFlag())
+							.twoHundredFlag(firstArticleItemReq.getTwoHundredFlag())
+							.catchFlag(firstArticleItemReq.getCatchFlag())
+							.build();
+					firstArticleItemService.save(firstArticleItem);
+				}
+			}
+
+			/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
+			ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(1, 1);
+			if (approvalUserRes != null) {
+				/* 添加计划一级审批 */
+				OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
+						.bentelerPlanId(plan.getId())
+						.approvalLevel(1) // 1级审批
+						.approvalUserId(approvalUserRes.getUserId())
+						.status(0) // 0未审批
+						.build();
+				onsiteApprovalPlanService.save(onsiteApprovalPlan);
+			}
+
+			/* 绑定计划 */
+			PlanBind planBind = PlanBind.builder()
+					.oldBentelerPlanId(req.getBentelerPlanId())
+					.newBentelerPlanId(plan.getId())
+					.build();
+			planBindService.save(planBind);
+			
+		} else { // 没审批通过
+			BentelerPlan oldPlan = planService.getById(req.getBentelerPlanId());
+			if (!req.getBentelerPlanName().equals(oldPlan.getName())) {
+				/* 校验计划名称是否存在 */
+				if (this.checkPlanNameExist(req.getBentelerPlanName())) {
+					return ResponseBeanBuilder.fail("计划名称已存在");
+				}
+			}
+
+			/* 修改防错计划 */
+			BentelerPlan plan = BentelerPlan.builder()
+					.id(req.getBentelerPlanId())
+					.name(req.getBentelerPlanName())
+					.effectiveDate(req.getEffectiveDate())
+					.build();
+			planService.updateById(plan);
+
+			/* 修改首件、200件点检规则 */
+			/* 删除首件、200件点检规则 */
+			firstArticleCalendarService.remove(Wrappers.<FirstArticleCalendar>lambdaQuery()
+	                .eq(FirstArticleCalendar::getBentelerPlanId, plan.getId()));
+			/* 添加首件、200件点检规则 */
+			List<FirstArticleCalendarReq> firstArticleCalendarList = req.getFirstArticleCalendarList();
+			for (FirstArticleCalendarReq firstArticleCalendarReq : firstArticleCalendarList) {
+				FirstArticleCalendar firstArticleCalendar = FirstArticleCalendar.builder()
+						.bentelerPlanId(plan.getId())
+						.startDay(firstArticleCalendarReq.getStartDay())
+						.endDay(firstArticleCalendarReq.getEndDay())
+						.dayValidate(firstArticleCalendarReq.getDayValidate())
+						.dayOuttime(firstArticleCalendarReq.getDayOuttime())
+						.twoHundredSubmitTime(firstArticleCalendarReq.getTwoHundredSubmitTime())
+						.userId(firstArticleCalendarReq.getUserId())
+						.typeFlag(firstArticleCalendarReq.getTypeFlag())
+	                    .shift(firstArticleCalendarReq.getShift())
+						.build();
+				firstArticleCalendarService.save(firstArticleCalendar);
+			}
+			/* 默认插入一条中断点检规则 */
+			FirstArticleCalendar firstArticleCalendar = FirstArticleCalendar.builder()
+					.bentelerPlanId(plan.getId())
+					.userId(-1L)
+					.typeFlag(2) // 2中断
+					.build();
+			firstArticleCalendarService.save(firstArticleCalendar);
+
+			/* 修改表头信息 */
+			try {
+				LambdaUpdateWrapper<FirstArticleTitleBlob> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+		        lambdaUpdateWrapper.eq(FirstArticleTitleBlob::getBentelerPlanId, plan.getId())
+		                           .set(FirstArticleTitleBlob::getTitleContent, this.objectToByteArray(req.getFirstArticleTitle()));
+		        firstArticleTitleBlobService.update(lambdaUpdateWrapper);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+
+	        /* 修改工作站、巡检项目 */
+	        /* 删除巡检项目 */
+	        List<FirstArticleWorkshop> firstArticleWorkshopListTemp = firstArticleWorkshopService.list(Wrappers.<FirstArticleWorkshop>lambdaQuery()
+	                .eq(FirstArticleWorkshop::getBentelerPlanId, plan.getId()));
+	        List<Long> workshopIdList = new ArrayList<Long>();
+	        for (FirstArticleWorkshop firstArticleWorkshop : firstArticleWorkshopListTemp) {
+	        	workshopIdList.add(firstArticleWorkshop.getId());
+	        }
+	        firstArticleItemService.remove(Wrappers.<FirstArticleItem>lambdaQuery()
+	                .in(FirstArticleItem::getWorkshopId, workshopIdList));
+	        /* 删除工作站 */
+	        firstArticleWorkshopService.remove(Wrappers.<FirstArticleWorkshop>lambdaQuery()
+	                .eq(FirstArticleWorkshop::getBentelerPlanId, plan.getId()));
+	        /* 添加工作站信息 */
+			List<FirstArticleWorkshopReq> firstArticleWorkshopList = req.getFirstArticleWorkshopList();
+			for (FirstArticleWorkshopReq firstArticleWorkshopReq : firstArticleWorkshopList) {
+//				if (this.checkWsNameExist(firstArticleWorkshopReq.getWsName())) {
+//					return ResponseBeanBuilder.fail("工作站名称" + firstArticleWorkshopReq.getWsName() + "已存在");
+//				}
+
+				FirstArticleWorkshop firstArticleWorkshop = FirstArticleWorkshop.builder()
+						.bentelerPlanId(plan.getId())
+						.wsName(firstArticleWorkshopReq.getWsName())
+						.plName(firstArticleWorkshopReq.getPlName())
+						.build();
+				firstArticleWorkshopService.save(firstArticleWorkshop);
+
+				/* 添加巡检项目信息 */
+				List<FirstArticleItemReq> firstArticleItemList = firstArticleWorkshopReq.getFirstArticleItemList();
+				for (FirstArticleItemReq firstArticleItemReq : firstArticleItemList) {
+					FirstArticleItem firstArticleItem = FirstArticleItem.builder()
+							.workshopId(firstArticleWorkshop.getId())
+							.itemContent(firstArticleItemReq.getItemContent())
+							.itemStandard(firstArticleItemReq.getItemStandard())
+							.prefix(firstArticleItemReq.getPrefix())
+							.snoStart(firstArticleItemReq.getSnoStart())
+							.snoEnd(firstArticleItemReq.getSnoEnd())
+							.valFlag(firstArticleItemReq.getValFlag())
+							.valUp(firstArticleItemReq.getValUp())
+							.valDown(firstArticleItemReq.getValDown())
+							.valOk(firstArticleItemReq.getValOk())
+							.valDesc(firstArticleItemReq.getValDesc())
+							.levelInfo(firstArticleItemReq.getLevelInfo())
+							.productInfo(firstArticleItemReq.getProductInfo())
+							.toolId(firstArticleItemReq.getToolId())
+							.toolDesc(firstArticleItemReq.getToolDesc())
+							.firstFlag(firstArticleItemReq.getFirstFlag())
+							.twoHundredFlag(firstArticleItemReq.getTwoHundredFlag())
+							.catchFlag(firstArticleItemReq.getCatchFlag())
+							.build();
+					firstArticleItemService.save(firstArticleItem);
+				}
+			}
+
+			/* 删除之前的审批记录 */
+			onsiteApprovalPlanService.remove(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
+	                .eq(OnsiteApprovalPlan::getBentelerPlanId, plan.getId()));
+			/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
+			ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(1, 1);
+			if (approvalUserRes != null) {
+				/* 添加计划一级审批 */
+				OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
+						.bentelerPlanId(plan.getId())
+						.approvalLevel(1) // 1级审批
+						.approvalUserId(approvalUserRes.getUserId())
+						.status(0) // 0未审批
+						.build();
+				onsiteApprovalPlanService.save(onsiteApprovalPlan);
+			}
+		}
+		
+		return ResponseBeanBuilder.ok();
+	}
 
     /**
      * 取得首件计划点检列表

+ 22 - 0
application-facade/src/main/java/com/factory/web/service/impl/pm/PlanBindServiceImpl.java

@@ -0,0 +1,22 @@
+package com.factory.web.service.impl.pm;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.web.entity.pm.PlanBind;
+import com.factory.web.mapper.pm.PlanBindMapper;
+import com.factory.web.service.pm.PlanBindService;
+
+
+/**
+ * 计划绑定
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Service("planBindService")
+@Transactional(rollbackFor = Exception.class)
+public class PlanBindServiceImpl extends ServiceImpl<PlanBindMapper, PlanBind> implements PlanBindService {
+
+}

+ 215 - 111
application-facade/src/main/java/com/factory/web/service/impl/pm/PreventMistakeServiceImpl.java

@@ -35,6 +35,7 @@ import com.factory.web.entity.pm.OnsiteTaskHisBlob;
 import com.factory.web.entity.pm.OnsiteTitle;
 import com.factory.web.entity.pm.OnsiteTitleBlob;
 import com.factory.web.entity.pm.OnsiteWorkshop;
+import com.factory.web.entity.pm.PlanBind;
 import com.factory.web.entity.pm.req.AddItemResultListReq;
 import com.factory.web.entity.pm.req.AddItemResultReq;
 import com.factory.web.entity.pm.req.AddPmPlanReq;
@@ -84,6 +85,7 @@ import com.factory.web.entity.pm.res.PmTaskRes;
 import com.factory.web.entity.pm.res.PmWorkshopNoGoListRes;
 import com.factory.web.mapper.pm.PreventMistakeMapper;
 import com.factory.web.service.BentelerPlanService;
+import com.factory.web.service.fa.FirstArticleService;
 import com.factory.web.service.fa.FirstArticleWorkshopService;
 import com.factory.web.service.pm.OnsiteApprovalPlanService;
 import com.factory.web.service.pm.OnsiteApprovalTaskService;
@@ -95,6 +97,7 @@ import com.factory.web.service.pm.OnsiteTaskHisBlobService;
 import com.factory.web.service.pm.OnsiteTaskService;
 import com.factory.web.service.pm.OnsiteTitleBlobService;
 import com.factory.web.service.pm.OnsiteWorkshopService;
+import com.factory.web.service.pm.PlanBindService;
 import com.factory.web.service.pm.PreventMistakeService;
 
 
@@ -146,6 +149,13 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 
 	@Autowired
 	private FirstArticleWorkshopService firstArticleWorkshopService;
+	
+	@Autowired
+	private FirstArticleService firstArticleService;
+	
+	@Autowired
+	private PlanBindService planBindService;
+	
 
 	/**
 	 * 新建防错计划
@@ -437,130 +447,224 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 	@Override
 	public ResponseBean editPmPlan(EditPmPlanReq req) {
 
-		BentelerPlan oldPlan = planService.getById(req.getBentelerPlanId());
-		if (!req.getBentelerPlanName().equals(oldPlan.getName())) {
-			/* 校验计划名称是否存在 */
-			if (this.checkPlanNameExist(req.getBentelerPlanName())) {
-				return ResponseBeanBuilder.fail("计划名称已存在");
+		if (firstArticleService.checkApprovalPlan(req.getBentelerPlanId())) { // 审批通过
+//			/* 校验计划名称是否存在 */
+//			if (this.checkPlanNameExist(req.getBentelerPlanName())) {
+//				return ResponseBeanBuilder.fail("计划名称已存在");
+//			}
+
+			/* 添加防错计划 */
+			BentelerPlan plan = BentelerPlan.builder()
+					.planType(PlanType.防错.value)
+					.name(req.getBentelerPlanName())
+					.pauseFlag(false)
+					.effectiveDate(req.getEffectiveDate())
+					.build();
+			planService.save(plan);
+
+			/* 添加日周月点检规则 */
+			List<OnsiteCalendarReq> onsiteCalendarList = req.getOnsiteCalendarList();
+			for (OnsiteCalendarReq onsiteCalendarReq : onsiteCalendarList) {
+				OnsiteCalendar onsiteCalendar = OnsiteCalendar.builder()
+						.bentelerPlanId(plan.getId())
+						.startDay(onsiteCalendarReq.getStartDay())
+						.endDay(onsiteCalendarReq.getEndDay())
+						.dayValidate(onsiteCalendarReq.getDayValidate())
+						.dayOuttime(onsiteCalendarReq.getDayOuttime())
+						.weekDay(onsiteCalendarReq.getWeekDay())
+						.monthDay(onsiteCalendarReq.getMonthDay())
+						.month(onsiteCalendarReq.getMonth())
+						.userId(onsiteCalendarReq.getUserId())
+						.typeFlag(onsiteCalendarReq.getTypeFlag())
+						.shift(onsiteCalendarReq.getShift())
+						.build();
+				onsiteCalendarService.save(onsiteCalendar);
 			}
-		}
 
-//		/* 将之前的plan所有信息记到his中(暂时没记审批信息) */
-//		int count = onsiteApprovalPlanService.count(
-//				Wrappers.<OnsiteApprovalPlan> lambdaQuery()
-//				.eq(OnsiteApprovalPlan::getBentelerPlanId, req.getBentelerPlanId())
-//				.eq(OnsiteApprovalPlan::getStatus, 2));
-//		if (count > 0) { // 当前审批状态为驳回
-//			SearchPmPlanReq searchPmPlanReq = new SearchPmPlanReq();
-//			searchPmPlanReq.setBentelerPlanId(req.getBentelerPlanId());
-//			PmPlanRes pmPlanRes = this.getPmPlan(searchPmPlanReq);
-//			try {
-//				OnsitePlanHisBlob onsitePlanHisBlob = OnsitePlanHisBlob.builder()
-//						.bentelerPlanId(req.getBentelerPlanId())
-//						.hisContent(this.objectToByteArray(pmPlanRes))
-//						.build();
-//				onsitePlanHisBlobService.save(onsitePlanHisBlob);
-//			} catch (Exception e) {
-//				// TODO Auto-generated catch block
-//				e.printStackTrace();
-//			}
-//		}
+			/* 添加表头信息 */
+			try {
+				OnsiteTitleBlob onsiteTitleBlob = OnsiteTitleBlob.builder()
+						.bentelerPlanId(plan.getId())
+						.titleContent(this.objectToByteArray(req.getOnsiteTitle()))
+						.build();
+				onsiteTitleBlobService.save(onsiteTitleBlob);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
 
-		/* 修改防错计划 */
-		BentelerPlan plan = BentelerPlan.builder()
-				.id(req.getBentelerPlanId())
-				.name(req.getBentelerPlanName())
-				.effectiveDate(req.getEffectiveDate())
-				.build();
-		planService.updateById(plan);
+			/* 添加工作站信息 */
+			List<OnsiteWorkshopReq> onsiteWorkshopList = req.getOnsiteWorkshopList();
+			for (OnsiteWorkshopReq onsiteWorkshopReq : onsiteWorkshopList) {
+//				if (this.checkWsNameExist(onsiteWorkshopReq.getWsName())) {
+//					return ResponseBeanBuilder.fail("工作站名称" + onsiteWorkshopReq.getWsName() + "已存在");
+//				}
 
-		/* 修改日周月点检规则 */
-		/* 删除日周月点检规则 */
-		onsiteCalendarService.remove(Wrappers.<OnsiteCalendar>lambdaQuery()
-                .eq(OnsiteCalendar::getBentelerPlanId, plan.getId()));
-		/* 添加日周月点检规则 */
-		List<OnsiteCalendarReq> onsiteCalendarList = req.getOnsiteCalendarList();
-		for (OnsiteCalendarReq onsiteCalendarReq : onsiteCalendarList) {
-			OnsiteCalendar onsiteCalendar = OnsiteCalendar.builder()
-					.bentelerPlanId(plan.getId())
-					.startDay(onsiteCalendarReq.getStartDay())
-					.endDay(onsiteCalendarReq.getEndDay())
-					.dayValidate(onsiteCalendarReq.getDayValidate())
-					.dayOuttime(onsiteCalendarReq.getDayOuttime())
-					.weekDay(onsiteCalendarReq.getWeekDay())
-					.monthDay(onsiteCalendarReq.getMonthDay())
-					.month(onsiteCalendarReq.getMonth())
-					.userId(onsiteCalendarReq.getUserId())
-					.typeFlag(onsiteCalendarReq.getTypeFlag())
-					.shift(onsiteCalendarReq.getShift())
-					.build();
-			onsiteCalendarService.save(onsiteCalendar);
-		}
+				OnsiteWorkshop onsiteWorkshop = OnsiteWorkshop.builder()
+						.bentelerPlanId(plan.getId())
+						.wsName(onsiteWorkshopReq.getWsName())
+						.build();
+				onsiteWorkshopService.save(onsiteWorkshop);
+
+				/* 添加巡检项目信息 */
+				List<OnsiteItemReq> onsiteItemList = onsiteWorkshopReq.getOnsiteItemList();
+				for (OnsiteItemReq onsiteItemReq : onsiteItemList) {
+					OnsiteItem onsiteItem = OnsiteItem.builder()
+							.workshopId(onsiteWorkshop.getId())
+							.itemContent(onsiteItemReq.getItemContent())
+							.typeFlag(onsiteItemReq.getTypeFlag())
+							.inspectionFlag(onsiteItemReq.getInspectionFlag())
+							.build();
+					onsiteItemService.save(onsiteItem);
+				}
+			}
 
-		/* 修改表头信息 */
-		try {
-			LambdaUpdateWrapper<OnsiteTitleBlob> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
-	        lambdaUpdateWrapper.eq(OnsiteTitleBlob::getBentelerPlanId, plan.getId())
-	                           .set(OnsiteTitleBlob::getTitleContent, this.objectToByteArray(req.getOnsiteTitle()));
-	        onsiteTitleBlobService.update(lambdaUpdateWrapper);
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
+			/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
+			ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
+			if (approvalUserRes != null) {
+				/* 添加计划一级审批 */
+				OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
+						.bentelerPlanId(plan.getId())
+						.approvalLevel(1) // 1级审批
+						.approvalUserId(approvalUserRes.getUserId())
+						.status(0) // 0未审批
+						.build();
+				onsiteApprovalPlanService.save(onsiteApprovalPlan);
+			}
 
-        /* 修改工作站、巡检项目 */
-        /* 删除巡检项目 */
-        List<OnsiteWorkshop> onsiteWorkshopListTemp = onsiteWorkshopService.list(Wrappers.<OnsiteWorkshop>lambdaQuery()
-                .eq(OnsiteWorkshop::getBentelerPlanId, plan.getId()));
-        List<Long> workshopIdList = new ArrayList<Long>();
-        for (OnsiteWorkshop onsiteWorkshop : onsiteWorkshopListTemp) {
-        	workshopIdList.add(onsiteWorkshop.getId());
-        }
-        onsiteItemService.remove(Wrappers.<OnsiteItem>lambdaQuery()
-                .in(OnsiteItem::getWorkshopId, workshopIdList));
-        /* 删除工作站 */
-        onsiteWorkshopService.remove(Wrappers.<OnsiteWorkshop>lambdaQuery()
-                .eq(OnsiteWorkshop::getBentelerPlanId, plan.getId()));
-        /* 添加工作站信息 */
-		List<OnsiteWorkshopReq> onsiteWorkshopList = req.getOnsiteWorkshopList();
-		for (OnsiteWorkshopReq onsiteWorkshopReq : onsiteWorkshopList) {
-//			if (this.checkWsNameExist(onsiteWorkshopReq.getWsName())) {
-//				return ResponseBeanBuilder.fail("工作站名称" + onsiteWorkshopReq.getWsName() + "已存在");
+			/* 绑定计划 */
+			PlanBind planBind = PlanBind.builder()
+					.oldBentelerPlanId(req.getBentelerPlanId())
+					.newBentelerPlanId(plan.getId())
+					.build();
+			planBindService.save(planBind);
+
+		} else { // 没审批通过
+			BentelerPlan oldPlan = planService.getById(req.getBentelerPlanId());
+			if (!req.getBentelerPlanName().equals(oldPlan.getName())) {
+				/* 校验计划名称是否存在 */
+				if (this.checkPlanNameExist(req.getBentelerPlanName())) {
+					return ResponseBeanBuilder.fail("计划名称已存在");
+				}
+			}
+
+//			/* 将之前的plan所有信息记到his中(暂时没记审批信息) */
+//			int count = onsiteApprovalPlanService.count(
+//					Wrappers.<OnsiteApprovalPlan> lambdaQuery()
+//					.eq(OnsiteApprovalPlan::getBentelerPlanId, req.getBentelerPlanId())
+//					.eq(OnsiteApprovalPlan::getStatus, 2));
+//			if (count > 0) { // 当前审批状态为驳回
+//				SearchPmPlanReq searchPmPlanReq = new SearchPmPlanReq();
+//				searchPmPlanReq.setBentelerPlanId(req.getBentelerPlanId());
+//				PmPlanRes pmPlanRes = this.getPmPlan(searchPmPlanReq);
+//				try {
+//					OnsitePlanHisBlob onsitePlanHisBlob = OnsitePlanHisBlob.builder()
+//							.bentelerPlanId(req.getBentelerPlanId())
+//							.hisContent(this.objectToByteArray(pmPlanRes))
+//							.build();
+//					onsitePlanHisBlobService.save(onsitePlanHisBlob);
+//				} catch (Exception e) {
+//					// TODO Auto-generated catch block
+//					e.printStackTrace();
+//				}
 //			}
 
-			OnsiteWorkshop onsiteWorkshop = OnsiteWorkshop.builder()
-					.bentelerPlanId(plan.getId())
-					.wsName(onsiteWorkshopReq.getWsName())
+			/* 修改防错计划 */
+			BentelerPlan plan = BentelerPlan.builder()
+					.id(req.getBentelerPlanId())
+					.name(req.getBentelerPlanName())
+					.effectiveDate(req.getEffectiveDate())
 					.build();
-			onsiteWorkshopService.save(onsiteWorkshop);
+			planService.updateById(plan);
+
+			/* 修改日周月点检规则 */
+			/* 删除日周月点检规则 */
+			onsiteCalendarService.remove(Wrappers.<OnsiteCalendar>lambdaQuery()
+	                .eq(OnsiteCalendar::getBentelerPlanId, plan.getId()));
+			/* 添加日周月点检规则 */
+			List<OnsiteCalendarReq> onsiteCalendarList = req.getOnsiteCalendarList();
+			for (OnsiteCalendarReq onsiteCalendarReq : onsiteCalendarList) {
+				OnsiteCalendar onsiteCalendar = OnsiteCalendar.builder()
+						.bentelerPlanId(plan.getId())
+						.startDay(onsiteCalendarReq.getStartDay())
+						.endDay(onsiteCalendarReq.getEndDay())
+						.dayValidate(onsiteCalendarReq.getDayValidate())
+						.dayOuttime(onsiteCalendarReq.getDayOuttime())
+						.weekDay(onsiteCalendarReq.getWeekDay())
+						.monthDay(onsiteCalendarReq.getMonthDay())
+						.month(onsiteCalendarReq.getMonth())
+						.userId(onsiteCalendarReq.getUserId())
+						.typeFlag(onsiteCalendarReq.getTypeFlag())
+						.shift(onsiteCalendarReq.getShift())
+						.build();
+				onsiteCalendarService.save(onsiteCalendar);
+			}
 
-			/* 添加巡检项目信息 */
-			List<OnsiteItemReq> onsiteItemList = onsiteWorkshopReq.getOnsiteItemList();
-			for (OnsiteItemReq onsiteItemReq : onsiteItemList) {
-				OnsiteItem onsiteItem = OnsiteItem.builder()
-						.workshopId(onsiteWorkshop.getId())
-						.itemContent(onsiteItemReq.getItemContent())
-						.typeFlag(onsiteItemReq.getTypeFlag())
-						.inspectionFlag(onsiteItemReq.getInspectionFlag())
+			/* 修改表头信息 */
+			try {
+				LambdaUpdateWrapper<OnsiteTitleBlob> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+		        lambdaUpdateWrapper.eq(OnsiteTitleBlob::getBentelerPlanId, plan.getId())
+		                           .set(OnsiteTitleBlob::getTitleContent, this.objectToByteArray(req.getOnsiteTitle()));
+		        onsiteTitleBlobService.update(lambdaUpdateWrapper);
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+
+	        /* 修改工作站、巡检项目 */
+	        /* 删除巡检项目 */
+	        List<OnsiteWorkshop> onsiteWorkshopListTemp = onsiteWorkshopService.list(Wrappers.<OnsiteWorkshop>lambdaQuery()
+	                .eq(OnsiteWorkshop::getBentelerPlanId, plan.getId()));
+	        List<Long> workshopIdList = new ArrayList<Long>();
+	        for (OnsiteWorkshop onsiteWorkshop : onsiteWorkshopListTemp) {
+	        	workshopIdList.add(onsiteWorkshop.getId());
+	        }
+	        onsiteItemService.remove(Wrappers.<OnsiteItem>lambdaQuery()
+	                .in(OnsiteItem::getWorkshopId, workshopIdList));
+	        /* 删除工作站 */
+	        onsiteWorkshopService.remove(Wrappers.<OnsiteWorkshop>lambdaQuery()
+	                .eq(OnsiteWorkshop::getBentelerPlanId, plan.getId()));
+	        /* 添加工作站信息 */
+			List<OnsiteWorkshopReq> onsiteWorkshopList = req.getOnsiteWorkshopList();
+			for (OnsiteWorkshopReq onsiteWorkshopReq : onsiteWorkshopList) {
+//				if (this.checkWsNameExist(onsiteWorkshopReq.getWsName())) {
+//					return ResponseBeanBuilder.fail("工作站名称" + onsiteWorkshopReq.getWsName() + "已存在");
+//				}
+
+				OnsiteWorkshop onsiteWorkshop = OnsiteWorkshop.builder()
+						.bentelerPlanId(plan.getId())
+						.wsName(onsiteWorkshopReq.getWsName())
 						.build();
-				onsiteItemService.save(onsiteItem);
+				onsiteWorkshopService.save(onsiteWorkshop);
+
+				/* 添加巡检项目信息 */
+				List<OnsiteItemReq> onsiteItemList = onsiteWorkshopReq.getOnsiteItemList();
+				for (OnsiteItemReq onsiteItemReq : onsiteItemList) {
+					OnsiteItem onsiteItem = OnsiteItem.builder()
+							.workshopId(onsiteWorkshop.getId())
+							.itemContent(onsiteItemReq.getItemContent())
+							.typeFlag(onsiteItemReq.getTypeFlag())
+							.inspectionFlag(onsiteItemReq.getInspectionFlag())
+							.build();
+					onsiteItemService.save(onsiteItem);
+				}
 			}
-		}
 
-		/* 删除之前的审批记录 */
-		onsiteApprovalPlanService.remove(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
-                .eq(OnsiteApprovalPlan::getBentelerPlanId, plan.getId()));
-		/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
-		ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
-		if (approvalUserRes != null) {
-			/* 添加计划一级审批 */
-			OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
-					.bentelerPlanId(plan.getId())
-					.approvalLevel(1) // 1级审批
-					.approvalUserId(approvalUserRes.getUserId())
-					.status(0) // 0未审批
-					.build();
-			onsiteApprovalPlanService.save(onsiteApprovalPlan);
+			/* 删除之前的审批记录 */
+			onsiteApprovalPlanService.remove(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
+	                .eq(OnsiteApprovalPlan::getBentelerPlanId, plan.getId()));
+			/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
+			ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
+			if (approvalUserRes != null) {
+				/* 添加计划一级审批 */
+				OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
+						.bentelerPlanId(plan.getId())
+						.approvalLevel(1) // 1级审批
+						.approvalUserId(approvalUserRes.getUserId())
+						.status(0) // 0未审批
+						.build();
+				onsiteApprovalPlanService.save(onsiteApprovalPlan);
+			}
 		}
 
 		return ResponseBeanBuilder.ok();

+ 15 - 0
application-facade/src/main/java/com/factory/web/service/pm/PlanBindService.java

@@ -0,0 +1,15 @@
+package com.factory.web.service.pm;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.web.entity.pm.PlanBind;
+
+
+/**
+ * 计划绑定
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+public interface PlanBindService extends IService<PlanBind> {
+
+}