Ver Fonte

防错-接口

wuzhenyue há 3 anos atrás
pai
commit
b1e01beebc
24 ficheiros alterados com 1161 adições e 330 exclusões
  1. 88 88
      application-facade/src/main/java/com/factory/controller/web/OnsiteItemController.java
  2. 68 28
      application-facade/src/main/java/com/factory/controller/web/PreventMistakeController.java
  3. 4 3
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteItemResult.java
  4. 50 0
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteTaskHisBlob.java
  5. 34 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/AddItemResultListReq.java
  6. 1 4
      application-facade/src/main/java/com/factory/web/entity/pm/req/AddItemResultReq.java
  7. 37 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/EditItemResultListReq.java
  8. 31 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/EditItemResultReq.java
  9. 2 2
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmItemResultListReq.java
  10. 33 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanCheckListReq.java
  11. 3 3
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanListForPadReq.java
  12. 1 1
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanListReq.java
  13. 2 2
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchTaskReq.java
  14. 46 0
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmCheckListRes.java
  15. 38 0
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmItemNoGoListRes.java
  16. 52 0
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmTaskRes.java
  17. 32 0
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmWorkshopNoGoListRes.java
  18. 17 0
      application-facade/src/main/java/com/factory/web/mapper/pm/OnsiteTaskHisBlobMapper.java
  19. 34 0
      application-facade/src/main/java/com/factory/web/mapper/pm/PreventMistakeMapper.java
  20. 22 0
      application-facade/src/main/java/com/factory/web/service/impl/pm/OnsiteTaskHisBlobServiceImpl.java
  21. 171 54
      application-facade/src/main/java/com/factory/web/service/impl/pm/PreventMistakeServiceImpl.java
  22. 14 0
      application-facade/src/main/java/com/factory/web/service/pm/OnsiteTaskHisBlobService.java
  23. 188 124
      application-facade/src/main/java/com/factory/web/service/pm/PreventMistakeService.java
  24. 193 21
      application-facade/src/main/resources/mapper/PreventMistakeMapper.xml

+ 88 - 88
application-facade/src/main/java/com/factory/controller/web/OnsiteItemController.java

@@ -1,88 +1,88 @@
-package com.factory.controller.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.factory.base.entity.aggregates.PageBean;
-import com.factory.base.entity.aggregates.ResponseBean;
-import com.factory.base.util.res.ResponseBeanBuilder;
-import com.factory.web.entity.onsite.OnsiteItem2;
-import com.factory.web.entity.onsite.OnsiteItemReq;
-import com.factory.web.entity.onsite.OnsiteItemRes;
-import com.factory.web.service.onsite.OnsiteItemService2;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-@Api(tags = "巡检项目设置")
-@RestController
-@RequestMapping("/benteler/onsite")
-public class OnsiteItemController {
-
-	@Autowired
-	private OnsiteItemService2 onsiteItemService2;
-
-	@ApiOperation(value = "添加巡检项目")
-	@PostMapping("/addOnsiteItem")
-	public ResponseBean addOnsiteItem(@RequestBody OnsiteItemReq req) {
-		OnsiteItem2 onsiteItem = OnsiteItem2.builder()
-				.workshopId(req.getWorkshopId())
-				.itemContent(req.getItemContent())
-				.typeFlag(req.getTypeFlag())
-				.inspectionFlag(req.getInspectionFlag())
-				.build();
-		//onsiteItemService.save(onsiteItem);
-		return ResponseBeanBuilder.ok(onsiteItemService2.save(onsiteItem));
-	}
-
-	@ApiOperation(value = "取得巡检项目")
-	@PostMapping("/getOnsiteItem")
-	public ResponseBean<OnsiteItem2> getOnsiteItem(@RequestBody OnsiteItemReq req) {
-		OnsiteItem2 onsiteItem = onsiteItemService2.getById(req.getId());
-		return ResponseBeanBuilder.ok(onsiteItem);
-	}
-	
-	@ApiOperation(value = "修改巡检项目")
-	@PostMapping("/updateOnsiteItem")
-	public ResponseBean updateOnsiteItem(@RequestBody OnsiteItemReq req) {
-		OnsiteItem2 onsiteItem = OnsiteItem2.builder()
-				.id(req.getId())
-				.itemContent(req.getItemContent())
-				.build();
-		return ResponseBeanBuilder.ok(onsiteItemService2.updateById(onsiteItem));
-	}
-	
-	@ApiOperation(value = "取得巡检项目列表")
-	@PostMapping("/getOnsiteItemList")
-	public ResponseBean<PageBean<OnsiteItem2>> getOnsiteItemList(@RequestBody OnsiteItemReq req) {
-		QueryWrapper<OnsiteItem2> queryWrapper = new QueryWrapper<>();
-		queryWrapper.orderByDesc("id");
-        if (req.getTypeFlag() != null) {
-        	queryWrapper.eq("type_flag", req.getTypeFlag());
-        }
-        if (req.getItemContent() != null) {
-        	queryWrapper.like("item_content", req.getItemContent());
-        }
-        
-		IPage<OnsiteItem2> page = new Page<>(req.getPage(), req.getSize());
-        IPage<OnsiteItem2> userInfoPage = onsiteItemService2.page(page, queryWrapper);
-        
-        return ResponseBeanBuilder.ok(userInfoPage);
-	}
-	
-	@ApiOperation(value = "取得列表")
-	@PostMapping("/getList")
-	public ResponseBean<PageBean<OnsiteItemRes>> getList(@RequestBody OnsiteItemReq req) {
-		
-		return onsiteItemService2.getList(req);
-	}
-	
-	
-
-}
+//package com.factory.controller.web;
+//
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.web.bind.annotation.PostMapping;
+//import org.springframework.web.bind.annotation.RequestBody;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.RestController;
+//
+//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.factory.base.entity.aggregates.PageBean;
+//import com.factory.base.entity.aggregates.ResponseBean;
+//import com.factory.base.util.res.ResponseBeanBuilder;
+//import com.factory.web.entity.onsite.OnsiteItem2;
+//import com.factory.web.entity.onsite.OnsiteItemReq;
+//import com.factory.web.entity.onsite.OnsiteItemRes;
+//import com.factory.web.service.onsite.OnsiteItemService2;
+//
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//
+//@Api(tags = "巡检项目设置")
+//@RestController
+//@RequestMapping("/benteler/onsite")
+//public class OnsiteItemController {
+//
+//	@Autowired
+//	private OnsiteItemService2 onsiteItemService2;
+//
+//	@ApiOperation(value = "添加巡检项目")
+//	@PostMapping("/addOnsiteItem")
+//	public ResponseBean addOnsiteItem(@RequestBody OnsiteItemReq req) {
+//		OnsiteItem2 onsiteItem = OnsiteItem2.builder()
+//				.workshopId(req.getWorkshopId())
+//				.itemContent(req.getItemContent())
+//				.typeFlag(req.getTypeFlag())
+//				.inspectionFlag(req.getInspectionFlag())
+//				.build();
+//		//onsiteItemService.save(onsiteItem);
+//		return ResponseBeanBuilder.ok(onsiteItemService2.save(onsiteItem));
+//	}
+//
+//	@ApiOperation(value = "取得巡检项目")
+//	@PostMapping("/getOnsiteItem")
+//	public ResponseBean<OnsiteItem2> getOnsiteItem(@RequestBody OnsiteItemReq req) {
+//		OnsiteItem2 onsiteItem = onsiteItemService2.getById(req.getId());
+//		return ResponseBeanBuilder.ok(onsiteItem);
+//	}
+//	
+//	@ApiOperation(value = "修改巡检项目")
+//	@PostMapping("/updateOnsiteItem")
+//	public ResponseBean updateOnsiteItem(@RequestBody OnsiteItemReq req) {
+//		OnsiteItem2 onsiteItem = OnsiteItem2.builder()
+//				.id(req.getId())
+//				.itemContent(req.getItemContent())
+//				.build();
+//		return ResponseBeanBuilder.ok(onsiteItemService2.updateById(onsiteItem));
+//	}
+//	
+//	@ApiOperation(value = "取得巡检项目列表")
+//	@PostMapping("/getOnsiteItemList")
+//	public ResponseBean<PageBean<OnsiteItem2>> getOnsiteItemList(@RequestBody OnsiteItemReq req) {
+//		QueryWrapper<OnsiteItem2> queryWrapper = new QueryWrapper<>();
+//		queryWrapper.orderByDesc("id");
+//        if (req.getTypeFlag() != null) {
+//        	queryWrapper.eq("type_flag", req.getTypeFlag());
+//        }
+//        if (req.getItemContent() != null) {
+//        	queryWrapper.like("item_content", req.getItemContent());
+//        }
+//        
+//		IPage<OnsiteItem2> page = new Page<>(req.getPage(), req.getSize());
+//        IPage<OnsiteItem2> userInfoPage = onsiteItemService2.page(page, queryWrapper);
+//        
+//        return ResponseBeanBuilder.ok(userInfoPage);
+//	}
+//	
+//	@ApiOperation(value = "取得列表")
+//	@PostMapping("/getList")
+//	public ResponseBean<PageBean<OnsiteItemRes>> getList(@RequestBody OnsiteItemReq req) {
+//		
+//		return onsiteItemService2.getList(req);
+//	}
+//	
+//	
+//
+//}

+ 68 - 28
application-facade/src/main/java/com/factory/controller/web/PreventMistakeController.java

@@ -16,20 +16,25 @@ import com.factory.web.entity.pm.OnsiteCalendar;
 import com.factory.web.entity.pm.OnsiteItem;
 import com.factory.web.entity.pm.OnsiteTitleBlob;
 import com.factory.web.entity.pm.OnsiteWorkshop;
-import com.factory.web.entity.pm.req.AddItemResultReq;
+import com.factory.web.entity.pm.req.AddItemResultListReq;
 import com.factory.web.entity.pm.req.AddPmPlanReq;
+import com.factory.web.entity.pm.req.EditItemResultListReq;
 import com.factory.web.entity.pm.req.EditPmPlanReq;
 import com.factory.web.entity.pm.req.PmPlanPauseFlagReq;
 import com.factory.web.entity.pm.req.SearchPmItemResultListReq;
+import com.factory.web.entity.pm.req.SearchPmPlanCheckListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListForPadReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanReq;
 import com.factory.web.entity.pm.req.SearchTaskReq;
 import com.factory.web.entity.pm.req.SearchWorkshopReq;
+import com.factory.web.entity.pm.res.PmCheckListRes;
+import com.factory.web.entity.pm.res.PmItemNoGoListRes;
 import com.factory.web.entity.pm.res.PmItemResultListRes;
 import com.factory.web.entity.pm.res.PmPlanListForPadRes;
 import com.factory.web.entity.pm.res.PmPlanListRes;
 import com.factory.web.entity.pm.res.PmPlanRes;
+import com.factory.web.entity.pm.res.PmWorkshopNoGoListRes;
 import com.factory.web.service.pm.PreventMistakeService;
 
 import io.swagger.annotations.Api;
@@ -43,7 +48,7 @@ import lombok.extern.slf4j.Slf4j;
  * @author wzy
  * @date 2021-07-09 12:00:00
  */
-@Api(tags = "WEB - 防错")
+@Api(tags = "防错")
 @RestController
 @RequestMapping("/benteler/pm")
 @Slf4j
@@ -58,15 +63,22 @@ public class PreventMistakeController {
 		return ResponseBeanBuilder.ok(preventMistakeService.addPmPlan(req));
 	}
 
-	@ApiOperation(value = "取得Web端防错计划列表")
+	@ApiOperation(value = "取得Web端防错计划点检列表")
 	@ApiOperationSupport(order = 2)
+	@PostMapping("/getPmPlanCheckList")
+	public ResponseBean<PageBean<PmPlanListRes>> getPmPlanCheckList(@RequestBody SearchPmPlanCheckListReq req) {
+		return preventMistakeService.getPmPlanCheckList(req);
+	}
+
+	@ApiOperation(value = "取得Web端防错计划列表(暂时不用)")
+	@ApiOperationSupport(order = 3)
 	@PostMapping("/getPmPlanlist")
 	public ResponseBean<PageBean<PmPlanListRes>> getPmPlanlist(@RequestBody SearchPmPlanListReq req) {
 		return preventMistakeService.getPmPlanList(req);
 	}
-	
+
 	@ApiOperation(value = "取得防错计划信息")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 4)
 	@PostMapping("/getPmPlan")
 	public ResponseBean<PmPlanRes> getPmPlan(@RequestBody SearchPmPlanReq req) {
 		PmPlanRes pmPlanRes = preventMistakeService.getPmPlan(req);
@@ -75,87 +87,115 @@ public class PreventMistakeController {
 
 	@ApiOperation(value = "禁用防错计划")
 	@PostMapping("/disablePmPlan")
-	@ApiOperationSupport(order = 4)
+	@ApiOperationSupport(order = 5)
 	public ResponseBean disablePmPlan(@RequestBody PmPlanPauseFlagReq req) {
 		return preventMistakeService.disablePmPlan(req);
 	}
-	
+
 	@ApiOperation(value = "取得工作站及站下巡检项目信息")
-	@ApiOperationSupport(order = 5)
+	@ApiOperationSupport(order = 6)
 	@PostMapping("/getWorkshop")
 	public ResponseBean<OnsiteWorkshop> getWorkshop(@RequestBody SearchWorkshopReq req) {
 		return preventMistakeService.getWorkshop(req);
 	}
-	
+
 	@ApiOperation(value = "修改防错计划")
 	@PostMapping("/editPmPlan")
-	@ApiOperationSupport(order = 6)
+	@ApiOperationSupport(order = 7)
 	public ResponseBean editPmPlan(@RequestBody EditPmPlanReq req) {
 		return ResponseBeanBuilder.ok(preventMistakeService.editPmPlan(req));
 	}
 
 	@ApiOperation(value = "取得计划审批信息")
-	@ApiOperationSupport(order = 7)
+	@ApiOperationSupport(order = 8)
 	@PostMapping("/getPmPlanApprovalList")
 	public ResponseBean<List<OnsiteApprovalPlan>> getPmPlanApprovalList(@RequestBody SearchPmPlanReq req) {
 		return preventMistakeService.getPmPlanApprovalList(req);
 	}
-	
+
 	@ApiOperation(value = "取得每频次检查信息")
-	@ApiOperationSupport(order = 8)
+	@ApiOperationSupport(order = 9)
+	@PostMapping("/getPmCheckList")
+	public ResponseBean<List<PmCheckListRes>> getPmCheckList(@RequestBody SearchPmPlanReq req) {
+		return preventMistakeService.getPmCheckList(req);
+	}
+
+	@ApiOperation(value = "取得巡检规则信息")
+	@ApiOperationSupport(order = 10)
 	@PostMapping("/getCalendarList")
 	public ResponseBean<List<OnsiteCalendar>> getCalendarList(@RequestBody SearchPmPlanReq req) {
 		return preventMistakeService.getCalendarList(req);
 	}
-	
+
 	@ApiOperation(value = "检查记录列表")
-	@ApiOperationSupport(order = 9)
+	@ApiOperationSupport(order = 11)
 	@PostMapping("/getPmItemResultList")
 	public ResponseBean<List<PmItemResultListRes>> getPmItemResultList(@RequestBody SearchPmItemResultListReq req) {
 		return preventMistakeService.getPmItemResultList(req);
 	}
-	
+
 	@ApiOperation(value = "取得Pad端防错计划列表")
-	@ApiOperationSupport(order = 10)
+	@ApiOperationSupport(order = 12)
 	@PostMapping("/getPmPlanListForPad")
 	public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(@RequestBody SearchPmPlanListForPadReq req) {
 		return preventMistakeService.getPmPlanListForPad(req);
 	}
-	
+
 	@ApiOperation(value = "通过计划ID取得表头")
-	@ApiOperationSupport(order = 11)
+	@ApiOperationSupport(order = 13)
 	@PostMapping("/getTitle")
 	public ResponseBean<OnsiteTitleBlob> getTitle(@RequestBody SearchPmPlanReq req) {
 		return preventMistakeService.getTitle(req);
 	}
-	
+
 	@ApiOperation(value = "通过计划ID取得工作站列表")
-	@ApiOperationSupport(order = 12)
+	@ApiOperationSupport(order = 14)
 	@PostMapping("/getWorkshopList")
 	public ResponseBean<List<OnsiteWorkshop>> getWorkshopList(@RequestBody SearchPmPlanReq req) {
 		return preventMistakeService.getWorkshopList(req);
 	}
-	
+
 	@ApiOperation(value = "通过工作站ID取得巡检项目列表")
-	@ApiOperationSupport(order = 13)
+	@ApiOperationSupport(order = 15)
 	@PostMapping("/getItemList")
 	public ResponseBean<List<OnsiteItem>> getItemList(@RequestBody SearchWorkshopReq req) {
 		return preventMistakeService.getItemList(req);
 	}
-	
+
 	@ApiOperation(value = "添加巡检项目检查结果")
 	@PostMapping("/addItemResult")
-	@ApiOperationSupport(order = 14)
-	public ResponseBean addItemResult(@RequestBody AddItemResultReq req) {
+	@ApiOperationSupport(order = 16)
+	public ResponseBean addItemResult(@RequestBody AddItemResultListReq req) {
 		return ResponseBeanBuilder.ok(preventMistakeService.addItemResult(req));
 	}
-	
+
 	@ApiOperation(value = "任务检查完后提交")
 	@PostMapping("/submitTask")
-	@ApiOperationSupport(order = 15)
+	@ApiOperationSupport(order = 17)
 	public ResponseBean submitTask(@RequestBody SearchTaskReq req) {
 		return ResponseBeanBuilder.ok(preventMistakeService.submitTask(req));
 	}
+
+	@ApiOperation(value = "取得不放行任务对应的工作站")
+	@ApiOperationSupport(order = 18)
+	@PostMapping("/getPmWorkshopNoGoList")
+	public ResponseBean<List<PmWorkshopNoGoListRes>> getPmWorkshopNoGoList(@RequestBody SearchPmPlanReq req) {
+		return preventMistakeService.getPmWorkshopNoGoList(req);
+	}
+
+	@ApiOperation(value = "取得不放行任务对应的点检项目")
+	@ApiOperationSupport(order = 19)
+	@PostMapping("/getPmItemNoGoList")
+	public ResponseBean<List<PmItemNoGoListRes>> getPmItemNoGoList(@RequestBody SearchWorkshopReq req) {
+		return preventMistakeService.getPmItemNoGoList(req);
+	}
 	
+	@ApiOperation(value = "修改巡检项目检查结果")
+	@PostMapping("/editItemResult")
+	@ApiOperationSupport(order = 20)
+	public ResponseBean editItemResult(@RequestBody EditItemResultListReq req) {
+		return ResponseBeanBuilder.ok(preventMistakeService.editItemResult(req));
+	}
+
 	// 计划审批、任务审批,都在小程序端做
 }

+ 4 - 3
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteItemResult.java

@@ -1,5 +1,6 @@
 package com.factory.web.entity.pm;
 
+import java.io.Serializable;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
@@ -26,7 +27,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class OnsiteItemResult {
+public class OnsiteItemResult implements Serializable {
 
 	@TableId(type = IdType.AUTO)
 	@ApiModelProperty(value = "检查结果id")
@@ -42,11 +43,11 @@ public class OnsiteItemResult {
 	private Integer result;
 	
 	@TableField(fill = FieldFill.INSERT)
-    @ApiModelProperty(value = "创建人", hidden = true)
+    @ApiModelProperty(value = "创建人")
     private Long createdUserId;
 
     @TableField(fill = FieldFill.INSERT)
-    @ApiModelProperty(value = "创建时间", hidden = true)
+    @ApiModelProperty(value = "创建时间")
     private LocalDateTime createdTime;
 
 }

+ 50 - 0
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteTaskHisBlob.java

@@ -0,0 +1,50 @@
+package com.factory.web.entity.pm;
+
+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("onsite_task_his_blob")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OnsiteTaskHisBlob {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "历史id")
+    private Long id;
+    
+    @ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+
+    @ApiModelProperty(value = "计划历史内容")
+    private byte[] hisContent;
+    
+    @TableField(exist = false)
+    private String hisContentStr;
+    
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "创建人")
+    private Long createdUserId;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createdTime;
+}

+ 34 - 0
application-facade/src/main/java/com/factory/web/entity/pm/req/AddItemResultListReq.java

@@ -0,0 +1,34 @@
+package com.factory.web.entity.pm.req;
+
+import java.util.List;
+
+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;
+
+/**
+ * 添加巡检项目检查结果
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class AddItemResultListReq {
+	
+	@ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+	
+	@ApiModelProperty(value = "巡检项目检查结果")
+	private List<AddItemResultReq> addItemResultList;
+
+}

+ 1 - 4
application-facade/src/main/java/com/factory/web/entity/pm/req/AddItemResultReq.java

@@ -22,10 +22,7 @@ import lombok.NoArgsConstructor;
 @JsonInclude()
 @ApiModel("")
 public class AddItemResultReq {
-	
-	@ApiModelProperty(value = "任务id")
-	private Long onsiteTaskId;
-	
+
 	@ApiModelProperty(value = "巡检项目id")
 	private Long onsiteItemId;
 

+ 37 - 0
application-facade/src/main/java/com/factory/web/entity/pm/req/EditItemResultListReq.java

@@ -0,0 +1,37 @@
+package com.factory.web.entity.pm.req;
+
+import java.util.List;
+
+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;
+
+/**
+ * 修改巡检项目检查结果
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class EditItemResultListReq {
+	
+	@ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+	
+//	@ApiModelProperty(value = "工作站id")
+//	private Long workshopId;
+	
+	@ApiModelProperty(value = "巡检项目检查结果")
+	private List<EditItemResultReq> editItemResultList;
+
+}

+ 31 - 0
application-facade/src/main/java/com/factory/web/entity/pm/req/EditItemResultReq.java

@@ -0,0 +1,31 @@
+package com.factory.web.entity.pm.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;
+
+/**
+ * 修改巡检项目检查结果
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class EditItemResultReq {
+
+	@ApiModelProperty(value = "巡检项目id")
+	private Long onsiteItemId;
+
+	@ApiModelProperty(value = "0通过 1巡检不通过 2没有巡检")
+	private Integer result;
+}

+ 2 - 2
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmItemResultListReq.java

@@ -26,8 +26,8 @@ public class SearchPmItemResultListReq {
 	@ApiModelProperty(value = "点检频次")
 	private Integer typeFlag;
 	
-	@ApiModelProperty(value = "年", example = "2021")
-	private String year;
+//	@ApiModelProperty(value = "年", example = "2021")
+//	private String year;
 	
 	@ApiModelProperty(value = "年月", example = "2021-06")
 	private String yearMonth;

+ 33 - 0
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanCheckListReq.java

@@ -0,0 +1,33 @@
+package com.factory.web.entity.pm.req;
+
+import com.factory.base.entity.vo.req.BasePageReq;
+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;
+
+/**
+ * 防错计划
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class SearchPmPlanCheckListReq extends BasePageReq {
+	
+	@ApiModelProperty(value = "计划名称")
+	private String bentelerPlanName;
+	
+	@ApiModelProperty(value = "计划状态 0未完成 1已完成 2待重检")
+	private String planStatus;
+	
+}

+ 3 - 3
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanListForPadReq.java

@@ -28,9 +28,9 @@ public class SearchPmPlanListForPadReq {
 	@ApiModelProperty(value = "Pad端登录的检查人员用户Id")
 	private Long userId;
 
-	@ApiModelProperty(value = "任务创建时间,当前日期")
-	private LocalDateTime taskTime;
+//	@ApiModelProperty(value = "任务创建时间,当前日期")
+//	private LocalDateTime taskTime;
 
-	@ApiModelProperty(value = "0未完成 1已完成")
+	@ApiModelProperty(value = "0未完成 1已完成 2待重检")
 	private Integer type;
 }

+ 1 - 1
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanListReq.java

@@ -27,7 +27,7 @@ public class SearchPmPlanListReq extends BasePageReq {
 	@ApiModelProperty(value = "计划名称")
 	private String bentelerPlanName;
 	
-	@ApiModelProperty(value = "计划状态")
+	@ApiModelProperty(value = "计划状态 0待质量经理审批、1待生产经理审批、2已驳回待修改、3审批通过")
 	private String planStatus;
 	
 }

+ 2 - 2
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchTaskReq.java

@@ -26,6 +26,6 @@ public class SearchTaskReq {
 	@ApiModelProperty(value = "任务id")
 	private Long onsiteTaskId;
 
-	@ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过")
-	private Integer status;
+//	@ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过")
+//	private Integer status;
 }

+ 46 - 0
application-facade/src/main/java/com/factory/web/entity/pm/res/PmCheckListRes.java

@@ -0,0 +1,46 @@
+package com.factory.web.entity.pm.res;
+
+import java.time.LocalDateTime;
+
+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;
+
+/**
+ * 每频次点检信息
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class PmCheckListRes {
+
+	@ApiModelProperty(value = "计划ID")
+	private Long bentelerPlanId;
+
+	@ApiModelProperty(value = "巡检时间表id")
+	private Long onsiteCalendarId;
+	
+	@ApiModelProperty(value = "0日巡检  1周巡检  2月巡检")
+	private Integer typeFlag;
+	
+	@ApiModelProperty(value = "检查人")
+	private String checkPerson;
+	
+	@ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+
+	@ApiModelProperty(value = "检验时间")
+	private LocalDateTime checkTime;
+	
+}

+ 38 - 0
application-facade/src/main/java/com/factory/web/entity/pm/res/PmItemNoGoListRes.java

@@ -0,0 +1,38 @@
+package com.factory.web.entity.pm.res;
+
+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;
+
+/**
+ * 不放行任务对应的点检项目
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class PmItemNoGoListRes {
+
+	@ApiModelProperty(value = "巡检项目id")
+	private Long onsiteItemId;
+
+	@ApiModelProperty(value = "巡检项目内容")
+	private String itemContent;
+	
+	@ApiModelProperty(value = "质量经理用户id")
+	private Long approvalUserId;
+
+	@ApiModelProperty(value = "质量经理")
+	private String approvalPerson;
+	
+}

+ 52 - 0
application-facade/src/main/java/com/factory/web/entity/pm/res/PmTaskRes.java

@@ -0,0 +1,52 @@
+package com.factory.web.entity.pm.res;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+import com.factory.web.entity.pm.OnsiteItemResult;
+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;
+
+/**
+ * 防错计划
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class PmTaskRes implements Serializable {
+	
+	@ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+
+	@ApiModelProperty(value = "巡检时间表id")
+	private Long onsiteCalendarId;
+
+	@ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过")
+	private Integer status;
+
+	@ApiModelProperty(value = "任务创建时间")
+	private LocalDate taskTime;
+
+	@ApiModelProperty(value = "是否发送了任务提醒给操作者 0没提醒 1已提醒")
+	private Integer remindTaskFlag;
+	
+	@ApiModelProperty(value = "没工作提醒是不是已经完成 0没提醒 1已提醒")
+	private Integer remindNoworkFalg;
+
+	@ApiModelProperty(value = "巡检项目检查结果")
+	private List<OnsiteItemResult> onsiteItemResultList;
+
+}

+ 32 - 0
application-facade/src/main/java/com/factory/web/entity/pm/res/PmWorkshopNoGoListRes.java

@@ -0,0 +1,32 @@
+package com.factory.web.entity.pm.res;
+
+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;
+
+/**
+ * 不放行任务对应的工作站
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("")
+public class PmWorkshopNoGoListRes {
+
+	@ApiModelProperty(value = "工作站id")
+	private Long workshopId;
+
+	@ApiModelProperty(value = "工作站名称")
+	private String wsName;
+	
+}

+ 17 - 0
application-facade/src/main/java/com/factory/web/mapper/pm/OnsiteTaskHisBlobMapper.java

@@ -0,0 +1,17 @@
+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.OnsiteTaskHisBlob;
+
+/**
+ * 任务和巡检结果历史
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Mapper
+public interface OnsiteTaskHisBlobMapper extends BaseMapper<OnsiteTaskHisBlob> {
+
+}

+ 34 - 0
application-facade/src/main/java/com/factory/web/mapper/pm/PreventMistakeMapper.java

@@ -10,14 +10,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.factory.base.entity.po.benteler.BentelerPlan;
 import com.factory.web.entity.pm.req.SearchApprovalUserReq;
 import com.factory.web.entity.pm.req.SearchPmItemResultListReq;
+import com.factory.web.entity.pm.req.SearchPmPlanCheckListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListForPadReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanReq;
+import com.factory.web.entity.pm.req.SearchWorkshopReq;
 import com.factory.web.entity.pm.res.ApprovalUserRes;
+import com.factory.web.entity.pm.res.PmCheckListRes;
+import com.factory.web.entity.pm.res.PmItemNoGoListRes;
 import com.factory.web.entity.pm.res.PmItemResultListRes;
 import com.factory.web.entity.pm.res.PmPlanListForPadRes;
 import com.factory.web.entity.pm.res.PmPlanListRes;
 import com.factory.web.entity.pm.res.PmTaskListRes;
+import com.factory.web.entity.pm.res.PmWorkshopNoGoListRes;
 
 /**
  * 防错计划
@@ -27,6 +32,14 @@ import com.factory.web.entity.pm.res.PmTaskListRes;
  */
 @Mapper
 public interface PreventMistakeMapper extends BaseMapper<BentelerPlan> {
+	
+	/**
+     * 取得防错计划点检列表
+     * @param page
+     * @param req
+     * @return 防错计划点检列表
+     */
+    public Page<PmPlanListRes> getPmPlanCheckList(@Param("page") Page page, @Param("req") SearchPmPlanCheckListReq req);
 
 	/**
      * 取得防错计划列表
@@ -63,4 +76,25 @@ public interface PreventMistakeMapper extends BaseMapper<BentelerPlan> {
      * @return 审批人
      */
     public ApprovalUserRes getApprovalUser(@Param("req") SearchApprovalUserReq req);
+    
+    /**
+     * 取得每频次点检信息
+     * @param req
+     * @return 每频次点检信息
+     */
+    public List<PmCheckListRes> getPmCheckList(@Param("req") SearchPmPlanReq req);
+    
+    /**
+     * 取得不放行任务对应的工作站
+     * @param req
+     * @return 不放行任务对应的工作站
+     */
+    public List<PmWorkshopNoGoListRes> getPmWorkshopNoGoList(@Param("req") SearchPmPlanReq req);
+    
+    /**
+     * 取得不放行任务对应的点检项目
+     * @param req
+     * @return 不放行任务对应的点检项目
+     */
+    public List<PmItemNoGoListRes> getPmItemNoGoList(@Param("req") SearchWorkshopReq req);
 }

+ 22 - 0
application-facade/src/main/java/com/factory/web/service/impl/pm/OnsiteTaskHisBlobServiceImpl.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.OnsiteTaskHisBlob;
+import com.factory.web.mapper.pm.OnsiteTaskHisBlobMapper;
+import com.factory.web.service.pm.OnsiteTaskHisBlobService;
+
+
+/**
+ * 任务和巡检结果历史
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Service("onsiteTaskHisBlobService")
+@Transactional(rollbackFor = Exception.class)
+public class OnsiteTaskHisBlobServiceImpl extends ServiceImpl<OnsiteTaskHisBlobMapper, OnsiteTaskHisBlob> implements OnsiteTaskHisBlobService {
+
+}

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

@@ -30,10 +30,14 @@ import com.factory.web.entity.pm.OnsiteItem;
 import com.factory.web.entity.pm.OnsiteItemResult;
 import com.factory.web.entity.pm.OnsitePlanHisBlob;
 import com.factory.web.entity.pm.OnsiteTask;
+import com.factory.web.entity.pm.OnsiteTaskHisBlob;
 import com.factory.web.entity.pm.OnsiteTitleBlob;
 import com.factory.web.entity.pm.OnsiteWorkshop;
+import com.factory.web.entity.pm.req.AddItemResultListReq;
 import com.factory.web.entity.pm.req.AddItemResultReq;
 import com.factory.web.entity.pm.req.AddPmPlanReq;
+import com.factory.web.entity.pm.req.EditItemResultListReq;
+import com.factory.web.entity.pm.req.EditItemResultReq;
 import com.factory.web.entity.pm.req.EditPmPlanReq;
 import com.factory.web.entity.pm.req.OnsiteCalendarReq;
 import com.factory.web.entity.pm.req.OnsiteItemReq;
@@ -41,17 +45,22 @@ import com.factory.web.entity.pm.req.OnsiteWorkshopReq;
 import com.factory.web.entity.pm.req.PmPlanPauseFlagReq;
 import com.factory.web.entity.pm.req.SearchApprovalUserReq;
 import com.factory.web.entity.pm.req.SearchPmItemResultListReq;
+import com.factory.web.entity.pm.req.SearchPmPlanCheckListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListForPadReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanReq;
 import com.factory.web.entity.pm.req.SearchTaskReq;
 import com.factory.web.entity.pm.req.SearchWorkshopReq;
 import com.factory.web.entity.pm.res.ApprovalUserRes;
+import com.factory.web.entity.pm.res.PmCheckListRes;
+import com.factory.web.entity.pm.res.PmItemNoGoListRes;
 import com.factory.web.entity.pm.res.PmItemResultListRes;
 import com.factory.web.entity.pm.res.PmPlanListForPadRes;
 import com.factory.web.entity.pm.res.PmPlanListRes;
 import com.factory.web.entity.pm.res.PmPlanRes;
 import com.factory.web.entity.pm.res.PmTaskListRes;
+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.pm.OnsiteApprovalPlanService;
@@ -60,6 +69,7 @@ import com.factory.web.service.pm.OnsiteCalendarService;
 import com.factory.web.service.pm.OnsiteItemResultService;
 import com.factory.web.service.pm.OnsiteItemService;
 import com.factory.web.service.pm.OnsitePlanHisBlobService;
+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;
@@ -108,6 +118,9 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 	
 	@Autowired
 	private OnsitePlanHisBlobService onsitePlanHisBlobService;
+	
+	@Autowired
+	private OnsiteTaskHisBlobService onsiteTaskHisBlobService;
 
 	/**
 	 * 新建防错计划
@@ -231,6 +244,17 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 			return false;
 		}
 	}
+	
+	/**
+     * 取得防错计划点检列表
+     * @param req
+     * @return 防错计划点检列表
+     */
+    public ResponseBean<PageBean<PmPlanListRes>> getPmPlanCheckList(SearchPmPlanCheckListReq req) {
+    	Page<PmPlanListRes> page = new Page<>(req.getPage(), req.getSize());
+		Page<PmPlanListRes> listResPage = preventMistakeMapper.getPmPlanCheckList(page, req);
+		return ResponseBeanBuilder.ok(listResPage, Function.identity());
+    }
 
 	/**
 	 * 取得防错计划列表
@@ -243,38 +267,38 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 		Page<PmPlanListRes> page = new Page<>(req.getPage(), req.getSize());
 		Page<PmPlanListRes> listResPage = preventMistakeMapper.getPmPlanList(page, req);
 		
-		// TODO 测一下status值是都设置成功
-		SearchPmPlanReq searchPmPlanReq = null;
-		for (PmPlanListRes pmPlan : listResPage.getRecords()) {
-			searchPmPlanReq = new SearchPmPlanReq();
-			searchPmPlanReq.setBentelerPlanId(pmPlan.getBentelerPlanId());
-			List<PmTaskListRes> listRes = this.getTaskList(searchPmPlanReq);
-			int planStatus = 0; // 计划今天的状态,0未完成 1已完成 2待重检
-			int count0 = 0; // 任务的task.getStatus=0初始化
-			int count1 = 0; // 任务的task.getStatus=1待审核状态
-            int count2 = 0; // 任务的task.getStatus=2放行
-            int count3 = 0; // 任务的task.getStatus=3不放行
-			for (PmTaskListRes task : listRes) {
-				if (task.getStatus() == 0) {
-					count0++;
-				} else if (task.getStatus() == 1) {
-					count1++;
-				} else if (task.getStatus() == 2) {
-					count2++;
-				} else if (task.getStatus() == 3) {
-					count3++;
-				}
-			}
-			if (count0 > 0 || count1 > 0) {
-				planStatus = 0; // 存在未完成的任务,计划状态0未完成
-			} else if (count2 == listRes.size()) {
-				planStatus = 1; // 所有任务都检查完毕,都放行,计划状态1已完成
-			} else if (count3 > 0) {
-				planStatus = 2; // 所有任务都检查完毕,存在不放行记录,计划状态2待重检
-			}
-			
-			pmPlan.setPlanStatus(planStatus);
-		}
+//		// TODO 测一下status值是都设置成功
+//		SearchPmPlanReq searchPmPlanReq = null;
+//		for (PmPlanListRes pmPlan : listResPage.getRecords()) {
+//			searchPmPlanReq = new SearchPmPlanReq();
+//			searchPmPlanReq.setBentelerPlanId(pmPlan.getBentelerPlanId());
+//			List<PmTaskListRes> listRes = this.getTaskList(searchPmPlanReq);
+//			int planStatus = 0; // 计划今天的状态,0未完成 1已完成 2待重检
+//			int count0 = 0; // 任务的task.getStatus=0初始化
+//			int count1 = 0; // 任务的task.getStatus=1待审核状态
+//            int count2 = 0; // 任务的task.getStatus=2放行
+//            int count3 = 0; // 任务的task.getStatus=3不放行
+//			for (PmTaskListRes task : listRes) {
+//				if (task.getStatus() == 0) {
+//					count0++;
+//				} else if (task.getStatus() == 1) {
+//					count1++;
+//				} else if (task.getStatus() == 2) {
+//					count2++;
+//				} else if (task.getStatus() == 3) {
+//					count3++;
+//				}
+//			}
+//			if (count0 > 0 || count1 > 0) {
+//				planStatus = 0; // 存在未完成的任务,计划状态0未完成
+//			} else if (count2 == listRes.size()) {
+//				planStatus = 1; // 所有任务都检查完毕,都放行,计划状态1已完成
+//			} else if (count3 > 0) {
+//				planStatus = 2; // 所有任务都检查完毕,存在不放行记录,计划状态2待重检
+//			}
+//			
+//			pmPlan.setPlanStatus(planStatus);
+//		}
 		
 		return ResponseBeanBuilder.ok(listResPage, Function.identity());
 	}
@@ -366,19 +390,25 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 			return ResponseBeanBuilder.fail("计划名称已存在");
 		}
 
-		/* 将之前的plan所有信息和审批记录记到his中 */
-		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();
+		/* 将之前的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();
+			}
 		}
 
 		/* 修改放错计划 */
@@ -488,9 +518,9 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
     }
     
     /**
-     * 取得每频次检查信息
+     * 取得巡检规则信息
      * @param req
-     * @return 每频次检查信息
+     * @return 巡检规则信息
      */
     @Override
     public ResponseBean<List<OnsiteCalendar>> getCalendarList(SearchPmPlanReq req) {
@@ -563,13 +593,17 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
      * @return 
      */
     @Override
-	public ResponseBean addItemResult(AddItemResultReq req) {
-		OnsiteItemResult onsiteItemResult = OnsiteItemResult.builder()
-				.onsiteTaskId(req.getOnsiteTaskId())
-				.onsiteItemId(req.getOnsiteItemId())
-				.result(req.getResult())
-				.build();
-		onsiteItemResultService.save(onsiteItemResult);
+	public ResponseBean addItemResult(AddItemResultListReq req) {
+    	List<AddItemResultReq> addItemResultList = req.getAddItemResultList();
+    	for (AddItemResultReq addItemResult : addItemResultList) {
+    		OnsiteItemResult onsiteItemResult = OnsiteItemResult.builder()
+    				.onsiteTaskId(req.getOnsiteTaskId())
+    				.onsiteItemId(addItemResult.getOnsiteItemId())
+    				.result(addItemResult.getResult())
+    				.build();
+    		onsiteItemResultService.save(onsiteItemResult);
+    	}
+		
 		return ResponseBeanBuilder.ok();
 	}
 	
@@ -647,6 +681,89 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
         return approvalUserRes;
     }
     
+    /**
+	 * 取得每频次点检信息
+	 * 
+	 * @param req
+	 * @return 每频次点检信息
+	 */
+	public ResponseBean<List<PmCheckListRes>> getPmCheckList(SearchPmPlanReq req) {
+		List<PmCheckListRes> pmCheckList = preventMistakeMapper.getPmCheckList(req);
+    	return ResponseBeanBuilder.ok(pmCheckList, Function.identity());
+	}
+	
+	/**
+	 * 取得不放行任务对应的工作站
+	 * 
+	 * @param req
+	 * @return 不放行任务对应的工作站
+	 */
+	public ResponseBean<List<PmWorkshopNoGoListRes>> getPmWorkshopNoGoList(SearchPmPlanReq req) {
+		List<PmWorkshopNoGoListRes> pmWorkshopNoGoList = preventMistakeMapper.getPmWorkshopNoGoList(req);
+    	return ResponseBeanBuilder.ok(pmWorkshopNoGoList, Function.identity());
+	}
+	
+	/**
+	 * 取得不放行任务对应的点检项目
+	 * 
+	 * @param req
+	 * @return 不放行任务对应的点检项目
+	 */
+	public ResponseBean<List<PmItemNoGoListRes>> getPmItemNoGoList(SearchWorkshopReq req) {
+		List<PmItemNoGoListRes> pmItemNoGoList = preventMistakeMapper.getPmItemNoGoList(req);
+    	return ResponseBeanBuilder.ok(pmItemNoGoList, Function.identity());
+	}
+    
+	/**
+	 * 修改巡检项目检查结果(这里只有重检走这里)
+	 * 
+	 * @param req
+	 * @return
+	 */
+	public ResponseBean editItemResult(EditItemResultListReq req) {
+		/* 任务和巡检结果记录历史 */
+		PmTaskRes pmTaskRes = new PmTaskRes();
+		OnsiteTask onsiteTask = onsiteTaskService.getById(req.getOnsiteTaskId());
+		pmTaskRes.setOnsiteTaskId(onsiteTask.getId());
+		pmTaskRes.setOnsiteCalendarId(onsiteTask.getOnsiteCalendarId());
+		pmTaskRes.setStatus(onsiteTask.getStatus());
+		pmTaskRes.setTaskTime(onsiteTask.getTaskTime());
+		pmTaskRes.setRemindTaskFlag(onsiteTask.getRemindTaskFlag());
+		pmTaskRes.setRemindNoworkFalg(onsiteTask.getRemindNoworkFalg());
+		List<OnsiteItemResult> onsiteItemResultList = onsiteItemResultService.list(Wrappers.<OnsiteItemResult>lambdaQuery()
+                .eq(OnsiteItemResult::getOnsiteTaskId, req.getOnsiteTaskId()));
+		pmTaskRes.setOnsiteItemResultList(onsiteItemResultList);
+		
+		try {
+			OnsiteTaskHisBlob onsiteTaskHisBlob = OnsiteTaskHisBlob.builder()
+					.onsiteTaskId(req.getOnsiteTaskId())
+					.hisContent(this.objectToByteArray(pmTaskRes))
+					.build();
+			onsiteTaskHisBlobService.save(onsiteTaskHisBlob);
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+
+		/* 更新巡检项目检查结果 */
+		List<EditItemResultReq> editItemResultList = req.getEditItemResultList();
+    	for (EditItemResultReq editItemResult : editItemResultList) {
+    		onsiteItemResultService.remove(Wrappers.<OnsiteItemResult>lambdaQuery()
+                    .eq(OnsiteItemResult::getOnsiteTaskId, req.getOnsiteTaskId())
+                    .eq(OnsiteItemResult::getOnsiteItemId, editItemResult.getOnsiteItemId()));
+
+    		OnsiteItemResult onsiteItemResult = OnsiteItemResult.builder()
+    				.onsiteTaskId(req.getOnsiteTaskId())
+    				.onsiteItemId(editItemResult.getOnsiteItemId())
+    				.result(editItemResult.getResult())
+    				.build();
+    		onsiteItemResultService.save(onsiteItemResult);
+    	}
+
+		return ResponseBeanBuilder.ok();
+	}
+    
+    
     /**
      * Object转成byte[]
      * @param obj

+ 14 - 0
application-facade/src/main/java/com/factory/web/service/pm/OnsiteTaskHisBlobService.java

@@ -0,0 +1,14 @@
+package com.factory.web.service.pm;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.web.entity.pm.OnsiteTaskHisBlob;
+
+/**
+ * 任务和巡检结果历史
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+public interface OnsiteTaskHisBlobService extends IService<OnsiteTaskHisBlob> {
+
+}

+ 188 - 124
application-facade/src/main/java/com/factory/web/service/pm/PreventMistakeService.java

@@ -11,23 +11,28 @@ import com.factory.web.entity.pm.OnsiteCalendar;
 import com.factory.web.entity.pm.OnsiteItem;
 import com.factory.web.entity.pm.OnsiteTitleBlob;
 import com.factory.web.entity.pm.OnsiteWorkshop;
-import com.factory.web.entity.pm.req.AddItemResultReq;
+import com.factory.web.entity.pm.req.AddItemResultListReq;
 import com.factory.web.entity.pm.req.AddPmPlanReq;
+import com.factory.web.entity.pm.req.EditItemResultListReq;
 import com.factory.web.entity.pm.req.EditPmPlanReq;
 import com.factory.web.entity.pm.req.PmPlanPauseFlagReq;
 import com.factory.web.entity.pm.req.SearchApprovalUserReq;
 import com.factory.web.entity.pm.req.SearchPmItemResultListReq;
+import com.factory.web.entity.pm.req.SearchPmPlanCheckListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListForPadReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListReq;
 import com.factory.web.entity.pm.req.SearchPmPlanReq;
 import com.factory.web.entity.pm.req.SearchTaskReq;
 import com.factory.web.entity.pm.req.SearchWorkshopReq;
 import com.factory.web.entity.pm.res.ApprovalUserRes;
+import com.factory.web.entity.pm.res.PmCheckListRes;
+import com.factory.web.entity.pm.res.PmItemNoGoListRes;
 import com.factory.web.entity.pm.res.PmItemResultListRes;
 import com.factory.web.entity.pm.res.PmPlanListForPadRes;
 import com.factory.web.entity.pm.res.PmPlanListRes;
 import com.factory.web.entity.pm.res.PmPlanRes;
 import com.factory.web.entity.pm.res.PmTaskListRes;
+import com.factory.web.entity.pm.res.PmWorkshopNoGoListRes;
 
 /**
  * 防错计划
@@ -36,138 +41,197 @@ import com.factory.web.entity.pm.res.PmTaskListRes;
  * @date 2021-07-09 12:00:00
  */
 public interface PreventMistakeService extends IService<BentelerPlan> {
-	
+
 	/**
-     * 新建防错计划
-     * @param req
-     * @return 
-     */
+	 * 新建防错计划
+	 * 
+	 * @param req
+	 * @return
+	 */
 	public ResponseBean addPmPlan(AddPmPlanReq req);
 
 	/**
-     * 校验计划名是否存在
-     * @param name
-     * @return true存在,false不存在
-     */
-    public boolean checkPlanNameExist(String name);
-    
-    /**
-     * 校验工作站名是否存在
-     * @param wsName
-     * @return true存在,false不存在
-     */
-    public boolean checkWsNameExist(String wsName);
-
-    /**
-     * 取得防错计划列表
-     * @param req
-     * @return 防错计划列表
-     */
-    public ResponseBean<PageBean<PmPlanListRes>> getPmPlanList(SearchPmPlanListReq req);
-
-    /**
-     * 取得防错计划当天任务信息
-     * @param req
-     * @return 防错计划当天任务信息
-     */
-    public List<PmTaskListRes> getTaskList(SearchPmPlanReq req);
-
-    /**
-     * 取得防错计划信息
-     * @param req
-     * @return 防错计划信息
-     */
-    public PmPlanRes getPmPlan(SearchPmPlanReq req);
-    
-    /**
-     * 禁用解禁防错计划
-     * @param req
-     * @return 
-     */
-    public ResponseBean disablePmPlan(PmPlanPauseFlagReq req);
-    
-    /**
-     * 取得工作站信息
-     * @param req
-     * @return 工作站信息
-     */
-    public ResponseBean<OnsiteWorkshop> getWorkshop(SearchWorkshopReq req);
-    
-    /**
-     * 修改防错计划
-     * @param req
-     * @return 
-     */
+	 * 校验计划名是否存在
+	 * 
+	 * @param name
+	 * @return true存在,false不存在
+	 */
+	public boolean checkPlanNameExist(String name);
+
+	/**
+	 * 校验工作站名是否存在
+	 * 
+	 * @param wsName
+	 * @return true存在,false不存在
+	 */
+	public boolean checkWsNameExist(String wsName);
+
+	/**
+	 * 取得防错计划点检列表
+	 * 
+	 * @param req
+	 * @return 防错计划点检列表
+	 */
+	public ResponseBean<PageBean<PmPlanListRes>> getPmPlanCheckList(SearchPmPlanCheckListReq req);
+
+	/**
+	 * 取得防错计划列表
+	 * 
+	 * @param req
+	 * @return 防错计划列表
+	 */
+	public ResponseBean<PageBean<PmPlanListRes>> getPmPlanList(SearchPmPlanListReq req);
+
+	/**
+	 * 取得防错计划当天任务信息
+	 * 
+	 * @param req
+	 * @return 防错计划当天任务信息
+	 */
+	public List<PmTaskListRes> getTaskList(SearchPmPlanReq req);
+
+	/**
+	 * 取得防错计划信息
+	 * 
+	 * @param req
+	 * @return 防错计划信息
+	 */
+	public PmPlanRes getPmPlan(SearchPmPlanReq req);
+
+	/**
+	 * 禁用解禁防错计划
+	 * 
+	 * @param req
+	 * @return
+	 */
+	public ResponseBean disablePmPlan(PmPlanPauseFlagReq req);
+
+	/**
+	 * 取得工作站信息
+	 * 
+	 * @param req
+	 * @return 工作站信息
+	 */
+	public ResponseBean<OnsiteWorkshop> getWorkshop(SearchWorkshopReq req);
+
+	/**
+	 * 修改防错计划
+	 * 
+	 * @param req
+	 * @return
+	 */
 	public ResponseBean editPmPlan(EditPmPlanReq req);
 
-    /**
-     * 取得计划审批信息
-     * @param req
-     * @return 计划审批信息
-     */
-    public ResponseBean<List<OnsiteApprovalPlan>> getPmPlanApprovalList(SearchPmPlanReq req);
-    
-    /**
-     * 取得每频次检查信息
-     * @param req
-     * @return 每频次检查信息
-     */
-    public ResponseBean<List<OnsiteCalendar>> getCalendarList(SearchPmPlanReq req);
-    
-    /**
-     * 取得检查记录列表
-     * @param req
-     * @return 检查记录列表
-     */
-    public ResponseBean<List<PmItemResultListRes>> getPmItemResultList(SearchPmItemResultListReq req);
-    
-    /**
-     * 取得Pad端防错计划列表
-     * @param req
-     * @return Pad端防错计划列表
-     */
-    public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(SearchPmPlanListForPadReq req);
-    
-    /**
-     * 取得表头信息
-     * @param req
-     * @return 表头信息
-     */
-    public ResponseBean<OnsiteTitleBlob> getTitle(SearchPmPlanReq req);
-    
-    /**
-     * 取得工作站列表
-     * @param req
-     * @return 工作站列表
-     */
-    public ResponseBean<List<OnsiteWorkshop>> getWorkshopList(SearchPmPlanReq req);
-    
-    /**
-     * 取得巡检项目列表
-     * @param req
-     * @return 巡检项目列表
-     */
-    public ResponseBean<List<OnsiteItem>> getItemList(SearchWorkshopReq req);
-    
-    /**
-     * 添加巡检项目检查结果
-     * @param req
-     * @return 
-     */
-	public ResponseBean addItemResult(AddItemResultReq req);
-	
 	/**
-     * 任务提交
-     * @param req
-     * @return 
-     */
+	 * 取得计划审批信息
+	 * 
+	 * @param req
+	 * @return 计划审批信息
+	 */
+	public ResponseBean<List<OnsiteApprovalPlan>> getPmPlanApprovalList(SearchPmPlanReq req);
+
+	/**
+	 * 取得巡检规则信息
+	 * 
+	 * @param req
+	 * @return 巡检规则信息
+	 */
+	public ResponseBean<List<OnsiteCalendar>> getCalendarList(SearchPmPlanReq req);
+
+	/**
+	 * 取得检查记录列表
+	 * 
+	 * @param req
+	 * @return 检查记录列表
+	 */
+	public ResponseBean<List<PmItemResultListRes>> getPmItemResultList(SearchPmItemResultListReq req);
+
+	/**
+	 * 取得Pad端防错计划列表
+	 * 
+	 * @param req
+	 * @return Pad端防错计划列表
+	 */
+	public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(SearchPmPlanListForPadReq req);
+
+	/**
+	 * 取得表头信息
+	 * 
+	 * @param req
+	 * @return 表头信息
+	 */
+	public ResponseBean<OnsiteTitleBlob> getTitle(SearchPmPlanReq req);
+
+	/**
+	 * 取得工作站列表
+	 * 
+	 * @param req
+	 * @return 工作站列表
+	 */
+	public ResponseBean<List<OnsiteWorkshop>> getWorkshopList(SearchPmPlanReq req);
+
+	/**
+	 * 取得巡检项目列表
+	 * 
+	 * @param req
+	 * @return 巡检项目列表
+	 */
+	public ResponseBean<List<OnsiteItem>> getItemList(SearchWorkshopReq req);
+
+	/**
+	 * 添加巡检项目检查结果
+	 * 
+	 * @param req
+	 * @return
+	 */
+	public ResponseBean addItemResult(AddItemResultListReq req);
+
+	/**
+	 * 任务提交
+	 * 
+	 * @param req
+	 * @return
+	 */
 	public ResponseBean submitTask(SearchTaskReq req);
+
+	/**
+	 * 取得审批人
+	 * 
+	 * @param req
+	 * @return 审批人
+	 */
+	public ResponseBean<ApprovalUserRes> getApprovalUser(SearchApprovalUserReq req);
+
+	/**
+	 * 取得每频次点检信息
+	 * 
+	 * @param req
+	 * @return 每频次点检信息
+	 */
+	public ResponseBean<List<PmCheckListRes>> getPmCheckList(SearchPmPlanReq req);
+	
+	/**
+	 * 取得不放行任务对应的工作站
+	 * 
+	 * @param req
+	 * @return 不放行任务对应的工作站
+	 */
+	public ResponseBean<List<PmWorkshopNoGoListRes>> getPmWorkshopNoGoList(SearchPmPlanReq req);
+	
+	/**
+	 * 取得不放行任务对应的点检项目
+	 * 
+	 * @param req
+	 * @return 不放行任务对应的点检项目
+	 */
+	public ResponseBean<List<PmItemNoGoListRes>> getPmItemNoGoList(SearchWorkshopReq req);
 	
 	/**
-     * 取得审批人
-     * @param req
-     * @return 审批人
-     */
-    public ResponseBean<ApprovalUserRes> getApprovalUser(SearchApprovalUserReq req);
+	 * 修改巡检项目检查结果(这里只有重检走这里)
+	 * 
+	 * @param req
+	 * @return
+	 */
+	public ResponseBean editItemResult(EditItemResultListReq req);
 
 }

+ 193 - 21
application-facade/src/main/resources/mapper/PreventMistakeMapper.xml

@@ -4,26 +4,118 @@
 <mapper namespace="com.factory.web.mapper.pm.PreventMistakeMapper">
 	
 	
-    <!--取得防错计划列表(审批通过的   防错 记录)(TODO 按状态查询) -->
+    <!--取得防错计划点检列表(审批通过的   防错计划)(计划当天点检状态,plan_status,0未完成 1已完成 2待重检) -->
+    <select id="getPmPlanCheckList" resultType="com.factory.web.entity.pm.res.PmPlanListRes">
+        SELECT
+			bp.id AS benteler_plan_id,
+			bp.`name` AS benteler_plan_name,
+			GROUP_CONCAT( uu.username ) AS check_person,
+			bp.created_time,
+			ps.plan_status
+		FROM
+			benteler_plan bp,
+			onsite_calendar oc,
+			us_user uu,
+			onsite_approval_plan oap,
+			(
+				SELECT c.benteler_plan_id,
+					   CASE 
+						   WHEN c.count0 &gt; 0 THEN 0 
+						   WHEN c.count1 &gt; 0 THEN 0
+						   WHEN c.count2 = c.count THEN 1
+						   WHEN c.count3 &gt; 0 THEN 2
+						   ELSE -1 
+					   END AS plan_status
+				FROM   (
+						SELECT  bp.id AS benteler_plan_id,
+								SUM(CASE WHEN ot.`status` = 0 THEN 1 ELSE 0 END) AS count0,
+								SUM(CASE WHEN ot.`status` = 1 THEN 1 ELSE 0 END) AS count1,
+								SUM(CASE WHEN ot.`status` = 2 THEN 1 ELSE 0 END) AS count2,
+								SUM(CASE WHEN ot.`status` = 3 THEN 1 ELSE 0 END) AS count3,
+								COUNT(*) AS count
+						FROM    benteler_plan bp,
+								onsite_calendar oc,
+								onsite_task ot
+						WHERE   bp.id = oc.benteler_plan_id
+						AND     oc.id = ot.onsite_calendar_id
+						AND     TO_DAYS(ot.task_time) = TO_DAYS(NOW())
+						AND     bp.plan_type = 2
+						GROUP BY bp.id
+				) c
+			) ps
+		WHERE
+			bp.id = oc.benteler_plan_id 
+			AND oc.user_id = uu.id 
+			AND bp.id = oap.benteler_plan_id 
+			AND bp.id = ps.benteler_plan_id 
+			AND bp.plan_type = 2 
+			AND oap.approval_level = 2 
+			AND oap.`status` = 1 
+			<if test="req.bentelerPlanName != null and req.bentelerPlanName != ''">
+		    AND bp.`name` LIKE CONCAT('%', #{req.bentelerPlanName}, '%')
+		    </if>
+		    <if test="req.planStatus != null and req.planStatus != ''">
+		    AND ps.plan_status = #{req.planStatus}
+		    </if>
+		GROUP BY
+			bp.id
+    </select>
+    
+    <!-- 取得防错计划列表(备用)(查询所有的防错计划)(计划审批状态plan_status 0待质量经理审批、1待生产经理审批、2已驳回待修改、3审批通过) -->
     <select id="getPmPlanList" resultType="com.factory.web.entity.pm.res.PmPlanListRes">
-        SELECT  bp.id AS benteler_plan_id,
-        		bp.`name` AS benteler_plan_name,
-				GROUP_CONCAT(uu.username) AS check_person,
-				bp.created_time
-		FROM    benteler_plan bp,
-		        onsite_calendar oc,
-				us_user uu,
-	            onsite_approval_plan oap
-		WHERE   bp.id = oc.benteler_plan_id
-		AND     oc.user_id = uu.id
-		AND     bp.id = oap.benteler_plan_id
-		AND     bp.plan_type = 2
-		AND     oap.approval_level = 2
-		AND     oap.`status` = 1
-		<if test="req.bentelerPlanName != null and req.bentelerPlanName != ''">
-		AND     bp.`name` LIKE CONCAT('%', #{req.bentelerPlanName}, '%')
-		</if>
-		GROUP BY bp.id
+        SELECT
+			bp.id AS benteler_plan_id,
+			bp.`name` AS benteler_plan_name,
+			GROUP_CONCAT( uu.username ) AS check_person,
+			bp.created_time,
+			ps.plan_status
+		FROM
+			benteler_plan bp,
+			onsite_calendar oc,
+			us_user uu,
+			(
+			    SELECT a.id,
+						 a.benteler_plan_id,
+						 a.approval_level,
+						 a.`status`,
+						 CASE 
+								 WHEN a.approval_level = 2 AND a.`status` = 0 THEN 1
+								 WHEN a.approval_level = 2 AND a.`status` = 1 THEN 3
+								 WHEN a.approval_level = 2 AND a.`status` = 2 THEN 2
+								 WHEN a.approval_level = 1 AND a.`status` = 0 THEN 0
+								 WHEN a.approval_level = 1 AND a.`status` = 2 THEN 2
+								 ELSE -1 
+						 END AS plan_status
+				FROM   onsite_approval_plan a,
+							 (
+								SELECT
+									bp.id AS benteler_plan_id,
+									MAX( oap.approval_level ) AS approval_level
+								FROM
+									benteler_plan bp,
+									onsite_approval_plan oap 
+								WHERE
+									bp.id = oap.benteler_plan_id 
+									AND bp.plan_type = 2 
+								GROUP BY
+									bp.id
+							 ) b
+				WHERE  a.benteler_plan_id = b.benteler_plan_id
+				AND    a.approval_level = b.approval_level
+			) ps
+		WHERE
+			bp.id = oc.benteler_plan_id 
+			AND oc.user_id = uu.id
+		    AND bp.id = ps.benteler_plan_id 	
+			AND bp.plan_type = 2 
+			<if test="req.bentelerPlanName != null and req.bentelerPlanName != ''">
+		    AND bp.`name` LIKE CONCAT('%', #{req.bentelerPlanName}, '%')
+		    </if>
+		    <if test="req.planStatus != null and req.planStatus != ''">
+		    AND ps.plan_status = #{req.planStatus}
+		    </if>
+		GROUP BY
+			bp.id
     </select>
     
     <!--取得防错计划当天任务信息-->
@@ -58,8 +150,12 @@
 		AND    oir.onsite_task_id = ot.id
 		AND    ot.onsite_calendar_id = oc.id
 		AND    oc.type_flag = #{req.typeFlag}
+		<if test="req.yearMonth != null and req.yearMonth != ''">
 		AND    DATE_FORMAT(oir.created_time,'%Y-%m') = #{req.yearMonth}
+		</if>
+		<if test="req.year != null and req.year != ''">
 		AND    DATE_FORMAT(oir.created_time,'%Y') = #{req.year}
+		</if>
         ORDER BY oi.workshop_id, oir.onsite_item_id
     </select>
 
@@ -77,12 +173,16 @@
 		AND    oc.benteler_plan_id = bp.id
 		AND    bp.pause_flag = 0
 		<if test="req.type == 0"> <!-- 未完成 -->
-		AND    ot.`status` in (0, 1, 3)
+		AND    ot.`status` in (0, 1)
 		</if>
 		<if test="req.type == 1"> <!-- 已完成 -->
 		AND    ot.`status` = 2
 		</if>
-		AND    ot.task_time = #{req.taskTime}
+		<if test="req.type == 2"> <!-- 待重检(不放行) -->
+		AND    ot.`status` = 3
+		</if>
+		-- AND    ot.task_time = #{req.taskTime}
+		AND    TO_DAYS(ot.task_time) = TO_DAYS(NOW())
 		AND    oc.user_id = #{req.userId}
         GROUP BY ot.id
     </select>
@@ -100,5 +200,77 @@
 		LIMIT   0,1
     </select>
 
+    <!--取得今天每频次点检信息(今天的每频次点检人、点检时间)-->
+    <select id="getPmCheckList" resultType="com.factory.web.entity.pm.res.PmCheckListRes">
+        SELECT
+			bp.id AS benteler_plan_id,
+			oc.id AS onsite_calendar_id,
+			oc.type_flag,
+			uu.`name` AS check_person,
+			ot.id AS onsite_task_id,
+			MIN(oir.created_time) AS check_time
+		FROM
+			benteler_plan bp
+			JOIN onsite_calendar oc ON (bp.id = oc.benteler_plan_id )
+			JOIN us_user uu ON (oc.user_id = uu.id )
+			LEFT JOIN onsite_task ot ON (oc.id = ot.onsite_calendar_id )
+			LEFT JOIN onsite_item_result oir ON (ot.id = oir.onsite_task_id )
+		WHERE TO_DAYS( ot.task_time ) = TO_DAYS( NOW( ) ) 
+			AND bp.id = #{req.bentelerPlanId}
+		GROUP BY
+			ot.onsite_calendar_id
+    </select>
 
+    <!--取得不放行任务对应的工作站 -->
+    <select id="getPmWorkshopNoGoList" resultType="com.factory.web.entity.pm.res.PmWorkshopNoGoListRes">
+        SELECT  DISTINCT ow.id AS workshop_id,
+		        ow.ws_name
+		FROM    onsite_item_result oir,
+		        onsite_task ot,
+		        onsite_item oi,
+				onsite_workshop ow
+		WHERE   oir.onsite_task_id = ot.id
+		AND     oir.onsite_item_id = oi.id
+		AND     oi.workshop_id = ow.id
+		AND     ot.`status` = 3
+		AND     ow.benteler_plan_id = #{req.bentelerPlanId}
+    </select>
+    
+    <!--取得不放行任务对应的点检项目(onsite_approval_task中status应该追加一个2不放行状态,追加一个审批时间字段) -->
+    <select id="getPmItemNoGoList" resultType="com.factory.web.entity.pm.res.PmItemNoGoListRes">
+        SELECT  oir.onsite_item_id,
+		        oi.item_content,
+				oat.approval_user_id,
+				uu.`name` AS approval_person
+				-- 审批时间
+		FROM    onsite_item_result oir,
+		        onsite_task ot,
+		        onsite_item oi,
+				onsite_approval_task oat,
+				us_user uu
+		WHERE   oir.onsite_task_id = ot.id
+		AND     oir.onsite_item_id = oi.id
+		AND     ot.id = oat.onsite_task_id
+		AND     oat.approval_user_id = uu.id
+		AND     ot.`status` = 3
+		AND     oir.result = 1
+		AND     oat.approval_level = 2
+		AND     oi.workshop_id = #{req.workshopId}
+		-- AND     oat.`status` = 2
+    </select>
+    
+    <!--取得巡讲项目检查结果 -->
+    <select id="getPmItemNoGoList" resultType="com.factory.web.entity.pm.OnsiteItemResult">
+        SELECT oir.id,
+       		   oir.onsite_task_id,
+			   oir.onsite_item_id,
+			   oir.result,
+			   oir.created_user_id,
+			   oir.created_time
+		FROM   onsite_item oi,
+		       onsite_item_result oir
+		WHERE  oi.id = oir.onsite_item_id
+		AND    oir.onsite_task_id = 1
+		AND    oi.workshop_id = 1
+    </select>
 </mapper>