瀏覽代碼

导出接口 调用 查找点检信息接口 调整参数

daili 3 年之前
父節點
當前提交
840107b42e

+ 7 - 0
application-facade/src/main/java/com/factory/controller/web/FirstArticleController.java

@@ -3,6 +3,7 @@ package com.factory.controller.web;
 import java.util.List;
 
 import com.factory.user.entity.vo.res.FileRes;
+import com.factory.web.entity.vo.req.exportInitialPlanDetailsReq;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -202,6 +203,12 @@ public class FirstArticleController {
 	public ResponseBean<FileRes> exportFaCheckRecordList(@RequestBody SearchFaCheckRecordListReq req) {
 		return firstArticleService.exportFaCheckRecordList(req);
 	}
+
+	@ApiOperation(value = "首件导出计划信息Excel")
+	@PostMapping("/exportInitialPlanDetails")
+	public ResponseBean<FileRes> exportInitialPlanDetails(@RequestBody exportInitialPlanDetailsReq req) {
+		return firstArticleService.exportInitialPlanDetails(req);
+	}
 	
 //	@ApiOperation(value = "判断检验结果是否填写完成")
 //	@PostMapping("/getFaAllCheckFlag")

+ 2 - 0
application-facade/src/main/java/com/factory/controller/web/InitialPlanWebController.java

@@ -8,6 +8,7 @@ import com.factory.base.entity.vo.req.BaseIdReq;
 import com.factory.base.entity.vo.req.BasePageIdReq;
 import com.factory.base.util.res.ResponseBeanBuilder;
 import com.factory.user.entity.vo.res.FileRes;
+import com.factory.web.entity.vo.req.exportInitialPlanDetailsReq;
 import com.factory.web.entity.vo.req.web.*;
 import com.factory.web.entity.vo.res.web.ini.*;
 import com.factory.web.service.ini.BentelerIniVersionService;
@@ -109,4 +110,5 @@ public class InitialPlanWebController {
     public ResponseBean<FileRes> exportInitialPlan(@RequestBody exportInitialPlanReq req) {
         return bentelerIniVersionService.exportInitialPlan(req);
     }
+
 }

+ 28 - 0
application-facade/src/main/java/com/factory/web/entity/vo/req/exportInitialPlanDetailsReq.java

@@ -0,0 +1,28 @@
+package com.factory.web.entity.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: smart-factory
+ * @description:
+ * @author: dl
+ * @create: 07月30日 15时
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel(value = "exportInitialPlanDetailsReq",description ="" )
+public class exportInitialPlanDetailsReq {
+
+    @ApiModelProperty(value = "收件计划id")
+    private Long IniPlnaId;
+
+}

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

@@ -2,6 +2,7 @@ package com.factory.web.service.fa;
 
 import java.util.List;
 
+import com.factory.web.entity.vo.req.exportInitialPlanDetailsReq;
 import org.apache.ibatis.annotations.Param;
 
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -254,4 +255,6 @@ public interface FirstArticleService extends IService<BentelerPlan> {
     public List<FaCalendarRes> getFaCalendarList(SearchFaCalendarReq req);
 
 	ResponseBean<FileRes> exportFaCheckRecordList(SearchFaCheckRecordListReq req);
+
+	ResponseBean<FileRes> exportInitialPlanDetails(exportInitialPlanDetailsReq req);
 }

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

@@ -1,24 +1,6 @@
 package com.factory.web.service.impl.fa;
 
-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 cn.hutool.core.convert.Convert;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
@@ -36,71 +18,33 @@ 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.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.fa.*;
+import com.factory.web.entity.fa.req.*;
+import com.factory.web.entity.fa.res.*;
 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.entity.vo.req.exportInitialPlanDetailsReq;
 import com.factory.web.mapper.fa.FirstArticleMapper;
 import com.factory.web.service.BentelerPlanService;
-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.fa.*;
 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 cn.hutool.core.convert.Convert;
+import java.io.*;
+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;
 
 
 /**
@@ -155,7 +99,7 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
     private CommonService commonService;
 
     @Autowired
-	private PlanBindService planBindService;
+    private PlanBindService planBindService;
 
     /**
      * 新建防错计划
@@ -348,276 +292,277 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
     }
 
     /**
-	 * 校验当前计划是否审批通过
+     * 校验当前计划是否审批通过
      *
-	 * @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 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) {
-		
-		if (this.checkApprovalPlan(req.getBentelerPlanId())) { // 审批通过
-			
+    @Override
+    public ResponseBean editFaPlan(EditFaPlanReq req) {
+
+        if (this.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);
-
-			/* 添加首件、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) {
+            /* 添加防错计划 */
+            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) {
+                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();
-	}
+                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();
+    }
 
     /**
      * 取得首件计划点检列表
@@ -1266,17 +1211,17 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
 
     @Override
     public ResponseBean<FileRes> exportFaCheckRecordList(SearchFaCheckRecordListReq req) {
-		Long bentelerPlanId = req.getBentelerPlanId();
-		BentelerPlan plan = planService.getById(bentelerPlanId);
+        Long bentelerPlanId = req.getBentelerPlanId();
+        BentelerPlan plan = planService.getById(bentelerPlanId);
 
         List<FirstArticleWorkshop> firstArticleWorkshopList = getFaCheckRecordList(req).getData().getFirstArticleWorkshopList();
         FirstArticleTitle title = getFaTitle(bentelerPlanId);
         Map<String, String> titleMap = Convert.toMap(String.class, String.class, title);
         titleMap.put("title", plan.getName());
         List<FaCalendarRes> faCalendarList = getFaCalendarList(SearchFaCalendarReq.builder().checkDate(req.getCheckDate()).bentelerPlanId(bentelerPlanId).build());
-        titleMap.put("iniCheckData", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(0)).findFirst().map(item3 -> item3.getTaskTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))).orElse("无"));
-        titleMap.put("twoCheckData", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(1)).findFirst().map(item3 -> item3.getTaskTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))).orElse("无"));
-        titleMap.put("breakCheckData", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(2)).findFirst().map(item3 -> item3.getTaskTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"))).orElse("无"));
+        titleMap.put("iniCheckData", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(0)).findFirst().map(item3 -> item3.getTaskTime() != null ? item3.getTaskTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")) : "无").orElse("无"));
+        titleMap.put("twoCheckData", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(1)).findFirst().map(item3 -> item3.getTaskTime() != null ? item3.getTaskTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")) : "无").orElse("无"));
+        titleMap.put("breakCheckData", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(2)).findFirst().map(item3 -> item3.getTaskTime() != null ? item3.getTaskTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")) : "无").orElse("无"));
         titleMap.put("iniCheckPrinciple", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(0)).findFirst().map(item3 -> item3.getCheckPerson()).orElse("无"));
         titleMap.put("twoCheckPrinciple", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(1)).findFirst().map(item3 -> item3.getCheckPerson()).orElse("无"));
         titleMap.put("breakCheckPrinciple", faCalendarList.stream().filter(item2 -> item2.getTypeFlag().equals(2)).findFirst().map(item3 -> item3.getCheckPerson()).orElse("无"));
@@ -1295,66 +1240,67 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
                 Map<String, String> beanMap = Convert.toMap(String.class, String.class, item1);
                 List<Integer> worksNumList = IntStream.rangeClosed(item1.getSnoStart(), item1.getSnoEnd()).boxed().collect(Collectors.toList());
                 workMap.forEach((key, value) -> {
-                    List<String> frequencyList = new ArrayList<String>();
                     beanMap.merge(key, value, (v1, v2) -> v1);
-                    boolean numType = item1.getValFlag().equals(0);
-                    String greadScope = numType ? item1.getSnoStart().toString() + "Nm - " + item1.getSnoEnd().toString() + "Nm" : (item1.getValOk().equals(0) ? "OK" : "NoK");
-                    beanMap.put("valFlag", greadScope);
-
-                    if (item1.getFirstFlag().equals(1)) {
-                        frequencyList.add("首件");
-                        Map<Integer, List<FirstArticleItemResult>> fisWorkMap = item1.getFirstItemResultList().stream().collect(Collectors.groupingBy(FirstArticleItemResult::getSno));
-                        String greads = worksNumList.stream().map(work -> {
-                            return fisWorkMap.get(work) != null ? fisWorkMap.get(work).stream().map(result -> {
-                                if (numType) {
-                                    return result.getVal();
-                                } else {
-                                    return result.getValDesc();
-                                }
-                            }).findFirst().orElse("未填写") : "未填写";
-                        }).collect(Collectors.joining(","));
-                        beanMap.put("inigread", greads);
-                    } else {
-                        beanMap.put("inigread", "------未要求检测------");
-                    }
-                    if (item1.getTwoHundredFlag().equals(1)) {
-                        frequencyList.add("200件");
-                        Map<Integer, List<FirstArticleItemResult>> fisWorkMap = item1.getTwoHundredItemResultList().stream().collect(Collectors.groupingBy(FirstArticleItemResult::getSno));
-                        String greads = worksNumList.stream().map(work -> {
-                            return fisWorkMap.get(work) != null ? fisWorkMap.get(work).stream().map(result -> {
-                                if (numType) {
-                                    return result.getVal();
-                                } else {
-                                    return result.getValDesc();
-                                }
-                            }).findFirst().orElse("未填写") : "未填写";
-                        }).collect(Collectors.joining(","));
-                        beanMap.put("twoGread", greads);
-                    } else {
-                        beanMap.put("twoGread", "------未要求检测------");
-                    }
-                    if (item1.getCatchFlag().equals(1)) {
-                        frequencyList.add("中断");
-                        Map<Integer, List<FirstArticleItemResult>> fisWorkMap = item1.getCatchItemResultList().stream().collect(Collectors.groupingBy(FirstArticleItemResult::getSno));
-                        String greads = worksNumList.stream().map(work -> {
-                            return fisWorkMap.get(work) != null ? fisWorkMap.get(work).stream().map(result -> {
-                                if (numType) {
-                                    return result.getVal();
-                                } else {
-                                    return result.getValDesc();
-                                }
-                            }).findFirst().orElse("未填写") : "未填写";
-                        }).collect(Collectors.joining(","));
-                        beanMap.put("breakOffgread", greads);
-                    } else {
-                        beanMap.put("breakOffgread", "------未要求检测------");
-                    }
-                    String collect = Stream.of(frequencyList.toArray(new String[frequencyList.size()])).collect(Collectors.joining("&"));
-                    beanMap.put("frequency", collect);
-                    beanMap.put("releaseRecord", item1.getReleaseFlag().equals(1) ? "存在" : "无");
-                    beanMap.put("tool", item1.getToolId().equals(-1) ? "" : item1.getToolId().toString());
-                    arrayList.add(beanMap);
                 });
+
+                List<String> frequencyList = new ArrayList<>();
+                boolean numType = item1.getValFlag().equals(0);
+                String greadScope = numType ? item1.getSnoStart().toString() + "Nm - " + item1.getSnoEnd().toString() + "Nm" : (item1.getValOk().equals(0) ? "OK" : "NoK");
+                beanMap.put("valFlag", greadScope);
+
+                if (item1.getFirstFlag().equals(1)) {
+                    frequencyList.add("首件");
+                    Map<Integer, List<FirstArticleItemResult>> fisWorkMap = item1.getFirstItemResultList().stream().collect(Collectors.groupingBy(FirstArticleItemResult::getSno));
+                    String greads = worksNumList.stream().map(work -> {
+                        return fisWorkMap.get(work) != null ? fisWorkMap.get(work).stream().map(result -> {
+                            if (numType) {
+                                return result.getVal();
+                            } else {
+                                return result.getValDesc();
+                            }
+                        }).findFirst().orElse("未填写") : "未填写";
+                    }).collect(Collectors.joining(","));
+                    beanMap.put("inigread", greads);
+                } else {
+                    beanMap.put("inigread", "------未要求检测------");
+                }
+                if (item1.getTwoHundredFlag().equals(1)) {
+                    frequencyList.add("200件");
+                    Map<Integer, List<FirstArticleItemResult>> fisWorkMap = item1.getTwoHundredItemResultList().stream().collect(Collectors.groupingBy(FirstArticleItemResult::getSno));
+                    String greads = worksNumList.stream().map(work -> {
+                        return fisWorkMap.get(work) != null ? fisWorkMap.get(work).stream().map(result -> {
+                            if (numType) {
+                                return result.getVal();
+                            } else {
+                                return result.getValDesc();
+                            }
+                        }).findFirst().orElse("未填写") : "未填写";
+                    }).collect(Collectors.joining(","));
+                    beanMap.put("twoGread", greads);
+                } else {
+                    beanMap.put("twoGread", "------未要求检测------");
+                }
+                if (item1.getCatchFlag().equals(1)) {
+                    frequencyList.add("中断");
+                    Map<Integer, List<FirstArticleItemResult>> fisWorkMap = item1.getCatchItemResultList().stream().collect(Collectors.groupingBy(FirstArticleItemResult::getSno));
+                    String greads = worksNumList.stream().map(work -> {
+                        return fisWorkMap.get(work) != null ? fisWorkMap.get(work).stream().map(result -> {
+                            if (numType) {
+                                return result.getVal();
+                            } else {
+                                return result.getValDesc();
+                            }
+                        }).findFirst().orElse("未填写") : "未填写";
+                    }).collect(Collectors.joining(","));
+                    beanMap.put("breakOffgread", greads);
+                } else {
+                    beanMap.put("breakOffgread", "------未要求检测------");
+                }
+                String collect = Stream.of(frequencyList.toArray(new String[frequencyList.size()])).collect(Collectors.joining("&"));
+                beanMap.put("frequency", collect);
+                beanMap.put("toolDesc", new Integer(1).equals(item1.getReleaseFlag()) ? "存在" : "无");
+                beanMap.put("tool", item1.getToolId().equals("-1") ? "非工具校验" : item1.getToolId().toString());
+                arrayList.add(beanMap);
             });
 
 
@@ -1387,6 +1333,95 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
         return commonService.exportExcel(tempFile);
     }
 
+    @Override
+    public ResponseBean<FileRes> exportInitialPlanDetails(exportInitialPlanDetailsReq req) {
+
+        Long bentelerPlanId = req.getIniPlnaId();
+        BentelerPlan plan = planService.getById(bentelerPlanId);
+
+        List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopService.list(Wrappers.<FirstArticleWorkshop>lambdaQuery()
+                .eq(FirstArticleWorkshop::getBentelerPlanId, req.getIniPlnaId()));
+        for (FirstArticleWorkshop firstArticleWorkshop : firstArticleWorkshopList) {
+            List<FirstArticleItem> firstArticleItemList = firstArticleItemService.list(Wrappers.<FirstArticleItem>lambdaQuery()
+                    .eq(FirstArticleItem::getWorkshopId, firstArticleWorkshop.getId()));
+
+
+            firstArticleWorkshop.setFirstArticleItemList(firstArticleItemList);
+        }
+        FirstArticleTitle title = getFaTitle(bentelerPlanId);
+        Map<String, String> titleMap = Convert.toMap(String.class, String.class, title);
+        titleMap.put("title", plan.getName());
+
+
+
+
+        ArrayList<Map<String, String>> arrayList = new ArrayList<>();
+        //返回工作站结果
+        firstArticleWorkshopList.forEach(item -> {
+            Map<String, String> workMap = Convert.toMap(String.class, String.class, item);
+            workMap.remove("firstArticleItemList");
+            workMap.remove("allCheckFlag");
+            workMap.remove("id");
+            //返回巡检结果
+            item.getFirstArticleItemList().forEach(item1 -> {
+
+                Map<String, String> beanMap = Convert.toMap(String.class, String.class, item1);
+                List<Integer> worksNumList = IntStream.rangeClosed(item1.getSnoStart(), item1.getSnoEnd()).boxed().collect(Collectors.toList());
+                workMap.forEach((key, value) -> {
+                    beanMap.merge(key, value, (v1, v2) -> v1);
+                });
+                List<String> frequencyList = new ArrayList<>();
+                if (item1.getFirstFlag().equals(1)) {
+                    frequencyList.add("首件");
+                }
+                if (item1.getTwoHundredFlag().equals(1)) {
+                    frequencyList.add("200件");
+                }
+                if (item1.getCatchFlag().equals(1)) {
+                    frequencyList.add("中断");
+                }
+                boolean numType = item1.getValFlag().equals(0);
+                String greadScope = numType ? item1.getSnoStart().toString() + "Nm - " + item1.getSnoEnd().toString() + "Nm" : (item1.getValOk().equals(0) ? "OK" : "NoK");
+                beanMap.put("valFlag", greadScope);
+
+                String frequency = Stream.of(frequencyList.toArray(new String[frequencyList.size()])).collect(Collectors.joining("&"));
+                beanMap.put("frequency", frequency);
+                beanMap.put("toolDesc", "");
+                beanMap.put("tool", item1.getToolId().equals("-1") ? "非工具校验" : item1.getToolId().toString());
+                arrayList.add(beanMap);
+
+            });
+
+
+        });
+
+        // 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
+        String templateFileName = "systemLib/template/首件计划受控表.xlsx";
+        File tempFile = null;
+        ExcelWriter excelWriter = null;
+        try {
+            // 模板文件
+            tempFile = File.createTempFile("shoujian", ".xlsx");
+
+            // 这里 会填充到第一个sheet, 然后文件流会自动关闭
+            excelWriter = EasyExcel.write(tempFile).withTemplate(templateFileName).build();
+
+
+            WriteSheet writeSheet = EasyExcel.writerSheet("首件")
+                    .registerWriteHandler(new MyHandler()).build();
+            //新一行
+            FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
+
+            excelWriter.fill(titleMap, writeSheet);
+            excelWriter.fill(arrayList, fillConfig, writeSheet);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            excelWriter.finish();
+        }
+        return commonService.exportExcel(tempFile);
+    }
+
     /**
      * 取得点检人
      *

+ 2 - 0
application-facade/src/main/java/com/factory/web/service/impl/ini/BentelerIniVersionServiceImpl.java

@@ -30,6 +30,7 @@ import com.factory.user.service.UserInfoService;
 //import com.factory.web.entity.excel.ExcelFillCellMergeStrategy;
 import com.factory.web.entity.excel.FillData;
 import com.factory.web.entity.excel.TestFileUtil;
+import com.factory.web.entity.vo.req.exportInitialPlanDetailsReq;
 import com.factory.web.entity.vo.req.pad.GetVersionCheckItemReq;
 import com.factory.web.entity.vo.req.pad.submitCheckReq;
 import com.factory.web.entity.vo.req.pad.workDetailsReq;
@@ -823,4 +824,5 @@ public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersio
                 .collect(Collectors.toList());
         return ResponseBeanBuilder.ok(works);
     }
+
 }

+ 2 - 0
application-facade/src/main/java/com/factory/web/service/ini/BentelerIniVersionService.java

@@ -9,6 +9,7 @@ import com.factory.base.entity.vo.req.BaseIdReq;
 import com.factory.base.entity.vo.req.BasePageIdReq;
 import com.factory.base.entity.vo.req.BaseTypeReq;
 import com.factory.user.entity.vo.res.FileRes;
+import com.factory.web.entity.vo.req.exportInitialPlanDetailsReq;
 import com.factory.web.entity.vo.req.pad.submitCheckReq;
 import com.factory.web.entity.vo.req.pad.workDetailsReq;
 import com.factory.web.entity.vo.req.web.*;
@@ -79,5 +80,6 @@ public interface BentelerIniVersionService extends IService<BentelerIniVersion>
     ResponseBean<List<abnormalListRes>> abnormalList();
 
     ResponseBean<List<BentelerIniWorkstation>> abnormalWorkGroup(BaseTypeReq id);
+
 }