Browse Source

防错-接口

wuzhenyue 3 years ago
parent
commit
aaf69dc8ed
25 changed files with 841 additions and 24 deletions
  1. 50 9
      application-facade/src/main/java/com/factory/controller/web/PreventMistakeController.java
  2. 54 0
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteApprovalPlan.java
  3. 0 2
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteApprovalTask.java
  4. 3 1
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteItem.java
  5. 1 1
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteItemResult.java
  6. 50 0
      application-facade/src/main/java/com/factory/web/entity/pm/OnsitePlanHisBlob.java
  7. 2 1
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteWorkshop.java
  8. 34 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/AddItemResultReq.java
  9. 31 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchApprovalUserReq.java
  10. 1 1
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchPmPlanReq.java
  11. 31 0
      application-facade/src/main/java/com/factory/web/entity/pm/req/SearchTaskReq.java
  12. 35 0
      application-facade/src/main/java/com/factory/web/entity/pm/res/ApprovalUserRes.java
  13. 2 2
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmPlanListRes.java
  14. 2 1
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmPlanRes.java
  15. 38 0
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmTaskListRes.java
  16. 18 0
      application-facade/src/main/java/com/factory/web/mapper/pm/OnsiteApprovalPlanMapper.java
  17. 17 0
      application-facade/src/main/java/com/factory/web/mapper/pm/OnsitePlanHisBlobMapper.java
  18. 18 0
      application-facade/src/main/java/com/factory/web/mapper/pm/PreventMistakeMapper.java
  19. 22 0
      application-facade/src/main/java/com/factory/web/service/impl/pm/OnsiteApprovalPlanServiceImpl.java
  20. 22 0
      application-facade/src/main/java/com/factory/web/service/impl/pm/OnsitePlanHisBlobServiceImpl.java
  21. 287 2
      application-facade/src/main/java/com/factory/web/service/impl/pm/PreventMistakeServiceImpl.java
  22. 15 0
      application-facade/src/main/java/com/factory/web/service/pm/OnsiteApprovalPlanService.java
  23. 14 0
      application-facade/src/main/java/com/factory/web/service/pm/OnsitePlanHisBlobService.java
  24. 59 2
      application-facade/src/main/java/com/factory/web/service/pm/PreventMistakeService.java
  25. 35 2
      application-facade/src/main/resources/mapper/PreventMistakeMapper.xml

+ 50 - 9
application-facade/src/main/java/com/factory/controller/web/PreventMistakeController.java

@@ -11,8 +11,12 @@ import org.springframework.web.bind.annotation.RestController;
 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.pm.OnsiteApprovalPlan;
+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.AddPmPlanReq;
 import com.factory.web.entity.pm.req.EditPmPlanReq;
 import com.factory.web.entity.pm.req.PmPlanPauseFlagReq;
@@ -20,6 +24,7 @@ import com.factory.web.entity.pm.req.SearchPmItemResultListReq;
 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.PmItemResultListRes;
 import com.factory.web.entity.pm.res.PmPlanListForPadRes;
@@ -47,13 +52,13 @@ public class PreventMistakeController {
 	private PreventMistakeService preventMistakeService;
 
 	@ApiOperation(value = "新建防错计划")
-	@PostMapping("//addPmPlan")
+	@PostMapping("/addPmPlan")
 	@ApiOperationSupport(order = 1)
 	public ResponseBean addPmPlan(@RequestBody AddPmPlanReq req) {
 		return ResponseBeanBuilder.ok(preventMistakeService.addPmPlan(req));
 	}
 
-	@ApiOperation(value = "防错计划列表")
+	@ApiOperation(value = "取得Web端防错计划列表")
 	@ApiOperationSupport(order = 2)
 	@PostMapping("/getPmPlanlist")
 	public ResponseBean<PageBean<PmPlanListRes>> getPmPlanlist(@RequestBody SearchPmPlanListReq req) {
@@ -64,7 +69,8 @@ public class PreventMistakeController {
 	@ApiOperationSupport(order = 3)
 	@PostMapping("/getPmPlan")
 	public ResponseBean<PmPlanRes> getPmPlan(@RequestBody SearchPmPlanReq req) {
-		return preventMistakeService.getPmPlan(req);
+		PmPlanRes pmPlanRes = preventMistakeService.getPmPlan(req);
+		return ResponseBeanBuilder.ok(pmPlanRes);
 	}
 
 	@ApiOperation(value = "禁用防错计划")
@@ -88,33 +94,68 @@ public class PreventMistakeController {
 		return ResponseBeanBuilder.ok(preventMistakeService.editPmPlan(req));
 	}
 
-	@ApiOperation(value = "检查记录列表")
+	@ApiOperation(value = "取得计划审批信息")
 	@ApiOperationSupport(order = 7)
+	@PostMapping("/getPmPlanApprovalList")
+	public ResponseBean<List<OnsiteApprovalPlan>> getPmPlanApprovalList(@RequestBody SearchPmPlanReq req) {
+		return preventMistakeService.getPmPlanApprovalList(req);
+	}
+	
+	@ApiOperation(value = "取得每频次检查信息")
+	@ApiOperationSupport(order = 8)
+	@PostMapping("/getCalendarList")
+	public ResponseBean<List<OnsiteCalendar>> getCalendarList(@RequestBody SearchPmPlanReq req) {
+		return preventMistakeService.getCalendarList(req);
+	}
+	
+	@ApiOperation(value = "检查记录列表")
+	@ApiOperationSupport(order = 9)
 	@PostMapping("/getPmItemResultList")
 	public ResponseBean<List<PmItemResultListRes>> getPmItemResultList(@RequestBody SearchPmItemResultListReq req) {
 		return preventMistakeService.getPmItemResultList(req);
 	}
 	
-	// TODO 详细页面-上方-计划审批通过时间(质量经理、产品经理)、每频次的检查人和检查时间。
-	
 	@ApiOperation(value = "取得Pad端防错计划列表")
-	@ApiOperationSupport(order = 8)
+	@ApiOperationSupport(order = 10)
 	@PostMapping("/getPmPlanListForPad")
 	public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(@RequestBody SearchPmPlanListForPadReq req) {
 		return preventMistakeService.getPmPlanListForPad(req);
 	}
 	
+	@ApiOperation(value = "通过计划ID取得表头")
+	@ApiOperationSupport(order = 11)
+	@PostMapping("/getTitle")
+	public ResponseBean<OnsiteTitleBlob> getTitle(@RequestBody SearchPmPlanReq req) {
+		return preventMistakeService.getTitle(req);
+	}
+	
 	@ApiOperation(value = "通过计划ID取得工作站列表")
-	@ApiOperationSupport(order = 9)
+	@ApiOperationSupport(order = 12)
 	@PostMapping("/getWorkshopList")
 	public ResponseBean<List<OnsiteWorkshop>> getWorkshopList(@RequestBody SearchPmPlanReq req) {
 		return preventMistakeService.getWorkshopList(req);
 	}
 	
 	@ApiOperation(value = "通过工作站ID取得巡检项目列表")
-	@ApiOperationSupport(order = 9)
+	@ApiOperationSupport(order = 13)
 	@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) {
+		return ResponseBeanBuilder.ok(preventMistakeService.addItemResult(req));
+	}
+	
+	@ApiOperation(value = "任务检查完后提交")
+	@PostMapping("/submitTask")
+	@ApiOperationSupport(order = 15)
+	public ResponseBean submitTask(@RequestBody SearchTaskReq req) {
+		return ResponseBeanBuilder.ok(preventMistakeService.submitTask(req));
+	}
+	
+	// 计划审批、任务审批,都在小程序端做
 }

+ 54 - 0
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteApprovalPlan.java

@@ -0,0 +1,54 @@
+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_approval_plan")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OnsiteApprovalPlan {
+
+	@TableId(type = IdType.AUTO)
+	@ApiModelProperty(value = "计划审批id")
+	private Long id;
+	
+	@ApiModelProperty(value = "计划id")
+	private Long bentelerPlanId;
+
+	@ApiModelProperty(value = "1代表1级别审批 2代表2级别审批")
+	private Integer approvalLevel;
+
+	@ApiModelProperty(value = "审批人")
+	private Long approvalUserId;
+	
+	@ApiModelProperty(value = "审批状态 0未审批 1审批通过 2驳回")
+	private Integer status;
+	
+	@TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createdTime;
+
+    @TableField(fill = FieldFill.UPDATE)
+    @ApiModelProperty(value = "审批时间")
+    private LocalDateTime updatedTime;
+
+}

+ 0 - 2
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteApprovalTask.java

@@ -1,7 +1,5 @@
 package com.factory.web.entity.pm;
 
-import java.time.LocalDate;
-
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 3 - 1
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteItem.java

@@ -1,5 +1,7 @@
 package com.factory.web.entity.pm;
 
+import java.io.Serializable;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -21,7 +23,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class OnsiteItem {
+public class OnsiteItem implements Serializable {
 
 	@TableId(type = IdType.AUTO)
 	@ApiModelProperty(value = "巡检项目id")

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

@@ -29,7 +29,7 @@ import lombok.NoArgsConstructor;
 public class OnsiteItemResult {
 
 	@TableId(type = IdType.AUTO)
-	@ApiModelProperty(value = "任务id")
+	@ApiModelProperty(value = "检查结果id")
 	private Long id;
 
 	@ApiModelProperty(value = "任务id")

+ 50 - 0
application-facade/src/main/java/com/factory/web/entity/pm/OnsitePlanHisBlob.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_plan_his_blob")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OnsitePlanHisBlob {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "历史id")
+    private Long id;
+
+    @ApiModelProperty(value = "计划id")
+    private Long bentelerPlanId;
+
+    @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;
+}

+ 2 - 1
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteWorkshop.java

@@ -1,5 +1,6 @@
 package com.factory.web.entity.pm;
 
+import java.io.Serializable;
 import java.util.List;
 
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -25,7 +26,7 @@ import lombok.NoArgsConstructor;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class OnsiteWorkshop {
+public class OnsiteWorkshop implements Serializable {
 
 	@TableId(type = IdType.AUTO)
 	@ApiModelProperty(value = "工作站id")

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

@@ -0,0 +1,34 @@
+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 AddItemResultReq {
+	
+	@ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+	
+	@ApiModelProperty(value = "巡检项目id")
+	private Long onsiteItemId;
+
+	@ApiModelProperty(value = "0通过 1巡检不通过 2没有巡检")
+	private Integer result;
+}

+ 31 - 0
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchApprovalUserReq.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 SearchApprovalUserReq {
+	
+	@ApiModelProperty(value = "1新建计划审批 2首件审批 3防错审批")
+	private Integer type;
+	
+	@ApiModelProperty(value = "1代表1级别审批 2代表2级别审批")
+	private Integer approvalLevel;
+}

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

@@ -24,6 +24,6 @@ import lombok.NoArgsConstructor;
 public class SearchPmPlanReq {
 	
 	@ApiModelProperty(value = "计划Id")
-	private String bentelerPlanId;
+	private Long bentelerPlanId;
 	
 }

+ 31 - 0
application-facade/src/main/java/com/factory/web/entity/pm/req/SearchTaskReq.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 SearchTaskReq {
+	
+	@ApiModelProperty(value = "任务id")
+	private Long onsiteTaskId;
+
+	@ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过")
+	private Integer status;
+}

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

@@ -0,0 +1,35 @@
+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 ApprovalUserRes {
+
+	@ApiModelProperty(value = "审批人用户ID")
+	private Long userId;
+	
+	@ApiModelProperty(value = "1新建计划审批 2首件审批 3防错审批")
+	private Integer type;
+	
+	@ApiModelProperty(value = "1代表1级别审批 2代表2级别审批")
+	private Integer approvalLevel;
+
+}

+ 2 - 2
application-facade/src/main/java/com/factory/web/entity/pm/res/PmPlanListRes.java

@@ -34,8 +34,8 @@ public class PmPlanListRes {
 	@ApiModelProperty(value = "检验负责人")
 	private String checkPerson;
 
-	@ApiModelProperty(value = "计划状态")
-	private String planStatus;
+	@ApiModelProperty(value = "计划状态 0未完成 1已完成 2待重检")
+	private Integer planStatus;
 
 	@ApiModelProperty(value = "计划创建日期")
 	private LocalDateTime createdTime;

+ 2 - 1
application-facade/src/main/java/com/factory/web/entity/pm/res/PmPlanRes.java

@@ -1,5 +1,6 @@
 package com.factory.web.entity.pm.res;
 
+import java.io.Serializable;
 import java.time.LocalDate;
 import java.util.List;
 
@@ -26,7 +27,7 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @JsonInclude()
 @ApiModel("")
-public class PmPlanRes {
+public class PmPlanRes implements Serializable {
 
 	@ApiModelProperty(value = "计划ID")
 	private Long bentelerPlanId;

+ 38 - 0
application-facade/src/main/java/com/factory/web/entity/pm/res/PmTaskListRes.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 PmTaskListRes {
+
+	@ApiModelProperty(value = "计划ID")
+	private Long bentelerPlanId;
+
+	@ApiModelProperty(value = "巡检时间表id")
+	private Long onsiteCalendarId;
+
+	@ApiModelProperty(value = "巡检项目id")
+	private Long onsiteItemId;
+
+	@ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不放行")
+	private Integer status;
+
+}

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

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

+ 17 - 0
application-facade/src/main/java/com/factory/web/mapper/pm/OnsitePlanHisBlobMapper.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.OnsitePlanHisBlob;
+
+/**
+ * 防错计划历史
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Mapper
+public interface OnsitePlanHisBlobMapper extends BaseMapper<OnsitePlanHisBlob> {
+
+}

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

@@ -8,12 +8,16 @@ import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 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.SearchPmPlanListForPadReq;
 import com.factory.web.entity.pm.req.SearchPmPlanListReq;
+import com.factory.web.entity.pm.req.SearchPmPlanReq;
+import com.factory.web.entity.pm.res.ApprovalUserRes;
 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;
 
 /**
  * 防错计划
@@ -32,6 +36,13 @@ public interface PreventMistakeMapper extends BaseMapper<BentelerPlan> {
      */
     public Page<PmPlanListRes> getPmPlanList(@Param("page") Page page, @Param("req") SearchPmPlanListReq req);
     
+    /**
+     * 取得防错计划当天任务信息
+     * @param req
+     * @return 防错计划当天任务信息
+     */
+    public List<PmTaskListRes> getTaskList(@Param("req") SearchPmPlanReq req);
+    
     /**
      * 取得检查记录列表
      * @param req
@@ -45,4 +56,11 @@ public interface PreventMistakeMapper extends BaseMapper<BentelerPlan> {
      * @return Pad端防错计划列表
      */
     public List<PmPlanListForPadRes> getPmPlanListForPad(@Param("req") SearchPmPlanListForPadReq req);
+    
+    /**
+     * 取得审批人
+     * @param req
+     * @return 审批人
+     */
+    public ApprovalUserRes getApprovalUser(@Param("req") SearchApprovalUserReq req);
 }

+ 22 - 0
application-facade/src/main/java/com/factory/web/service/impl/pm/OnsiteApprovalPlanServiceImpl.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.OnsiteApprovalPlan;
+import com.factory.web.mapper.pm.OnsiteApprovalPlanMapper;
+import com.factory.web.service.pm.OnsiteApprovalPlanService;
+
+
+/**
+ * 计划审批
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Service("onsiteApprovalPlanService")
+@Transactional(rollbackFor = Exception.class)
+public class OnsiteApprovalPlanServiceImpl extends ServiceImpl<OnsiteApprovalPlanMapper, OnsiteApprovalPlan> implements OnsiteApprovalPlanService {
+
+}

+ 22 - 0
application-facade/src/main/java/com/factory/web/service/impl/pm/OnsitePlanHisBlobServiceImpl.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.OnsitePlanHisBlob;
+import com.factory.web.mapper.pm.OnsitePlanHisBlobMapper;
+import com.factory.web.service.pm.OnsitePlanHisBlobService;
+
+
+/**
+ * 防错计划历史
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Service("onsitePlanHisBlobService")
+@Transactional(rollbackFor = Exception.class)
+public class OnsitePlanHisBlobServiceImpl extends ServiceImpl<OnsitePlanHisBlobMapper, OnsitePlanHisBlob> implements OnsitePlanHisBlobService {
+
+}

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

@@ -1,5 +1,9 @@
 package com.factory.web.service.impl.pm;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -9,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,33 +23,49 @@ import com.factory.base.entity.aggregates.ResponseBean;
 import com.factory.base.entity.enumPo.PlanType;
 import com.factory.base.entity.po.benteler.BentelerPlan;
 import com.factory.base.util.res.ResponseBeanBuilder;
+import com.factory.web.entity.pm.OnsiteApprovalPlan;
+import com.factory.web.entity.pm.OnsiteApprovalTask;
 import com.factory.web.entity.pm.OnsiteCalendar;
 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.OnsiteTitleBlob;
 import com.factory.web.entity.pm.OnsiteWorkshop;
+import com.factory.web.entity.pm.req.AddItemResultReq;
 import com.factory.web.entity.pm.req.AddPmPlanReq;
 import com.factory.web.entity.pm.req.EditPmPlanReq;
 import com.factory.web.entity.pm.req.OnsiteCalendarReq;
 import com.factory.web.entity.pm.req.OnsiteItemReq;
 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.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.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.mapper.pm.PreventMistakeMapper;
 import com.factory.web.service.BentelerPlanService;
+import com.factory.web.service.pm.OnsiteApprovalPlanService;
+import com.factory.web.service.pm.OnsiteApprovalTaskService;
 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.OnsiteTaskService;
 import com.factory.web.service.pm.OnsiteTitleBlobService;
 import com.factory.web.service.pm.OnsiteWorkshopService;
 import com.factory.web.service.pm.PreventMistakeService;
 
+
 /**
  * 防错计划
  *
@@ -73,6 +94,21 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 	@Autowired
 	private OnsiteItemService onsiteItemService;
 
+	@Autowired
+	private OnsiteItemResultService onsiteItemResultService;
+	
+	@Autowired
+	private OnsiteTaskService onsiteTaskService;
+	
+	@Autowired
+	private OnsiteApprovalTaskService onsiteApprovalTaskService;
+	
+	@Autowired
+	private OnsiteApprovalPlanService onsiteApprovalPlanService;
+	
+	@Autowired
+	private OnsitePlanHisBlobService onsitePlanHisBlobService;
+
 	/**
 	 * 新建防错计划
 	 * 
@@ -148,6 +184,17 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 			}
 		}
 
+		/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
+		ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
+		/* 添加计划一级审批 */
+		OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
+				.bentelerPlanId(plan.getId())
+				.approvalLevel(1) // 1级审批
+				.approvalUserId(approvalUserRes.getUserId())
+				.status(0) // 0未审批
+				.build();
+		onsiteApprovalPlanService.save(onsiteApprovalPlan);
+
 		return ResponseBeanBuilder.ok();
 	}
 
@@ -195,16 +242,61 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 	public ResponseBean<PageBean<PmPlanListRes>> getPmPlanList(SearchPmPlanListReq req) {
 		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);
+		}
+		
 		return ResponseBeanBuilder.ok(listResPage, Function.identity());
 	}
 	
+	/**
+     * 取得防错计划当天任务信息
+     * @param req
+     * @return 防错计划当天任务信息
+     */
+	@Override
+    public List<PmTaskListRes> getTaskList(SearchPmPlanReq req) {
+		List<PmTaskListRes> listRes = preventMistakeMapper.getTaskList(req);
+		return listRes;
+	}
+	
 	/**
      * 取得防错计划信息
      * @param req
      * @return 防错计划信息
      */
 	@Override
-    public ResponseBean<PmPlanRes> getPmPlan(SearchPmPlanReq req) {
+    public PmPlanRes getPmPlan(SearchPmPlanReq req) {
 		BentelerPlan plan = planService.getById(req.getBentelerPlanId());
 		PmPlanRes pmPlanRes = new PmPlanRes();
 		pmPlanRes.setBentelerPlanId(plan.getId());
@@ -215,6 +307,10 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
                 .eq(OnsiteCalendar::getBentelerPlanId, plan.getId()));
 		pmPlanRes.setOnsiteCalendarList(onsiteCalendarList);
 		
+		OnsiteTitleBlob onsiteTitleBlob = onsiteTitleBlobService.getOne(new LambdaQueryWrapper<OnsiteTitleBlob>()
+    			.eq(OnsiteTitleBlob::getBentelerPlanId, req.getBentelerPlanId()));
+		pmPlanRes.setTitleContent(new String(onsiteTitleBlob.getTitleContent(),StandardCharsets.UTF_8));
+		
 		List<OnsiteWorkshop> onsiteWorkshopList = onsiteWorkshopService.list(Wrappers.<OnsiteWorkshop>lambdaQuery()
                 .eq(OnsiteWorkshop::getBentelerPlanId, plan.getId()));
 		for (OnsiteWorkshop onsiteWorkshop : onsiteWorkshopList) {
@@ -224,7 +320,7 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 		}
 		pmPlanRes.setOnsiteWorkshopList(onsiteWorkshopList);
 		
-		return ResponseBeanBuilder.ok(pmPlanRes);
+		return pmPlanRes;
     }
 
 	/**
@@ -270,6 +366,21 @@ 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();
+		}
+
 		/* 修改放错计划 */
 		// TODO 计划生效日期
 		BentelerPlan plan = BentelerPlan.builder()
@@ -347,14 +458,53 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 			}
 		}
 
+		/* 删除之前的审批记录 */
+		onsiteApprovalPlanService.remove(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
+                .in(OnsiteApprovalPlan::getBentelerPlanId, plan.getId()));
+		/* 取得审批人 approvalLevel=1级审批 type=1计划审批 */
+		ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 1);
+		/* 添加计划一级审批 */
+		OnsiteApprovalPlan onsiteApprovalPlan = OnsiteApprovalPlan.builder()
+				.bentelerPlanId(plan.getId())
+				.approvalLevel(1) // 1级审批
+				.approvalUserId(approvalUserRes.getUserId())
+				.status(0) // 0未审批
+				.build();
+		onsiteApprovalPlanService.save(onsiteApprovalPlan);
+		
 		return ResponseBeanBuilder.ok();
 	}
 	
+	/**
+     * 取得计划审批信息
+     * @param req
+     * @return 计划审批信息
+     */
+	@Override
+    public ResponseBean<List<OnsiteApprovalPlan>> getPmPlanApprovalList(SearchPmPlanReq req) {
+    	List<OnsiteApprovalPlan> onsiteApprovalPlanList = onsiteApprovalPlanService.list(Wrappers.<OnsiteApprovalPlan>lambdaQuery()
+                .eq(OnsiteApprovalPlan::getBentelerPlanId, req.getBentelerPlanId()));
+		return ResponseBeanBuilder.ok(onsiteApprovalPlanList, Function.identity());
+    }
+    
+    /**
+     * 取得每频次检查信息
+     * @param req
+     * @return 每频次检查信息
+     */
+    @Override
+    public ResponseBean<List<OnsiteCalendar>> getCalendarList(SearchPmPlanReq req) {
+    	List<OnsiteCalendar> onsiteCalendarList = onsiteCalendarService.list(Wrappers.<OnsiteCalendar>lambdaQuery()
+                .eq(OnsiteCalendar::getBentelerPlanId, req.getBentelerPlanId()));
+		return ResponseBeanBuilder.ok(onsiteCalendarList, Function.identity());
+    }
+	
 	/**
      * 取得检查记录列表
      * @param req
      * @return 检查记录列表
      */
+    @Override
     public ResponseBean<List<PmItemResultListRes>> getPmItemResultList(SearchPmItemResultListReq req) {
     	List<PmItemResultListRes> listRes = preventMistakeMapper.getPmItemResultList(req);
 		return ResponseBeanBuilder.ok(listRes, Function.identity());
@@ -365,16 +515,30 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
      * @param req
      * @return Pad端防错计划列表
      */
+    @Override
     public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(SearchPmPlanListForPadReq req) {
     	List<PmPlanListForPadRes> listRes = preventMistakeMapper.getPmPlanListForPad(req);
 		return ResponseBeanBuilder.ok(listRes, Function.identity());
     }
     
+    /**
+     * 取得表头信息
+     * @param req
+     * @return 表头信息
+     */
+    @Override
+    public ResponseBean<OnsiteTitleBlob> getTitle(SearchPmPlanReq req) {
+    	OnsiteTitleBlob onsiteTitleBlob = onsiteTitleBlobService.getOne(new LambdaQueryWrapper<OnsiteTitleBlob>()
+    			.eq(OnsiteTitleBlob::getBentelerPlanId, req.getBentelerPlanId()));
+		return ResponseBeanBuilder.ok(onsiteTitleBlob);
+    }
+    
     /**
      * 取得工作站列表
      * @param req
      * @return 工作站列表
      */
+    @Override
     public ResponseBean<List<OnsiteWorkshop>> getWorkshopList(SearchPmPlanReq req) {
     	List<OnsiteWorkshop> onsiteWorkshopList = onsiteWorkshopService.list(Wrappers.<OnsiteWorkshop>lambdaQuery()
                 .eq(OnsiteWorkshop::getBentelerPlanId, req.getBentelerPlanId()));
@@ -386,10 +550,131 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
      * @param req
      * @return 巡检项目列表
      */
+    @Override
     public ResponseBean<List<OnsiteItem>> getItemList(SearchWorkshopReq req) {
     	List<OnsiteItem> onsiteItemList = onsiteItemService.list(Wrappers.<OnsiteItem>lambdaQuery()
                 .eq(OnsiteItem::getWorkshopId, req.getWorkshopId()));
     	return ResponseBeanBuilder.ok(onsiteItemList, Function.identity());
     }
+    
+    /**
+     * 添加巡检项目检查结果
+     * @param req
+     * @return 
+     */
+    @Override
+	public ResponseBean addItemResult(AddItemResultReq req) {
+		OnsiteItemResult onsiteItemResult = OnsiteItemResult.builder()
+				.onsiteTaskId(req.getOnsiteTaskId())
+				.onsiteItemId(req.getOnsiteItemId())
+				.result(req.getResult())
+				.build();
+		onsiteItemResultService.save(onsiteItemResult);
+		return ResponseBeanBuilder.ok();
+	}
+	
+	/**
+     * 任务提交
+     * @param req
+     * @return 
+     */
+	@Override
+	public ResponseBean submitTask(SearchTaskReq req) {
+		/* 取得task下的所有条目检查结果 */
+		List<OnsiteItemResult> onsiteItemResultList = onsiteItemResultService.list(Wrappers.<OnsiteItemResult>lambdaQuery()
+                .eq(OnsiteItemResult::getOnsiteTaskId, req.getOnsiteTaskId()));
+		boolean flag = true; // true表示巡检项目都通过,false表示巡检项目有不通过的
+		for (OnsiteItemResult onsiteItemResult : onsiteItemResultList) {
+			if (onsiteItemResult.getResult() == 1) {
+				flag = false;
+				break;
+			}
+		}
+		
+		if (flag) { // 巡检项目都通过
+			OnsiteTask onsiteTask = OnsiteTask.builder()
+					.id(req.getOnsiteTaskId())
+					.status(2)
+					.build();
+			onsiteTaskService.updateById(onsiteTask);
+		} else { // 巡检项目有不通过的
+			/* 更新任务为1待审核状态。等待后续审核 */
+			OnsiteTask onsiteTask = OnsiteTask.builder()
+					.id(req.getOnsiteTaskId())
+					.status(1)
+					.build();
+			onsiteTaskService.updateById(onsiteTask);
+			
+			/* 取得审批人 approvalLevel=1级审批 type=3防错任务审批 */
+			ApprovalUserRes approvalUserRes = this.getApprovalUserInfo(1, 3);
+			if (approvalUserRes != null) {
+				/* 添加任务一级审批 */
+				OnsiteApprovalTask onsiteApprovalTask = OnsiteApprovalTask.builder()
+						.onsiteTaskId(onsiteTask.getId())
+						.approvalLevel(1) // 1级审批
+						.approvalUserId(approvalUserRes.getUserId())
+						.status(0) // 0初始化
+						.build();
+				onsiteApprovalTaskService.save(onsiteApprovalTask);
+			}
+		}
+		
+		return ResponseBeanBuilder.ok();
+	}
+	
+	/**
+     * 取得审批人
+     * @param req
+     * @return 审批人
+     */
+	@Override
+    public ResponseBean<ApprovalUserRes> getApprovalUser(SearchApprovalUserReq req) {
+    	ApprovalUserRes approvalUserRes = preventMistakeMapper.getApprovalUser(req);
+		return ResponseBeanBuilder.ok(approvalUserRes);
+    }
+    
+    /**
+     * 取得审批人
+     * @param approvalLevel 1是1级审批 2是2级审批
+     * @param type 1计划审批  2首件任务审批  3防错任务审批
+     * @return 审批人
+     */
+    private ApprovalUserRes getApprovalUserInfo(int approvalLevel, int type) {
+    	SearchApprovalUserReq searchApprovalUserReq = new SearchApprovalUserReq();
+		searchApprovalUserReq.setApprovalLevel(approvalLevel); // 审批级别
+		searchApprovalUserReq.setType(type); // 审批规则类型
+		ApprovalUserRes approvalUserRes = preventMistakeMapper.getApprovalUser(searchApprovalUserReq);
+        return approvalUserRes;
+    }
+    
+    /**
+     * Object转成byte[]
+     * @param obj
+     * @return byte[]
+     */
+    private byte[] objectToByteArray(Object obj) throws Exception {
+		byte[] bytes = null;
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		ObjectOutputStream oos = new ObjectOutputStream(baos);
+		oos.writeObject(obj);
+		oos.close();
+		bytes = baos.toByteArray();
+		baos.close();
+		return bytes;
+	}
+ 
+    /**
+     * byte[]转成Object
+     * @param byte[]
+     * @return Object
+     */
+    private Object byteArrayToObject(byte[] buffer) throws Exception {
+		Object ob = null;
+		ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
+		ob = ois.readObject();
+		ois.close();
+		return ob;
+	}
+
    
 }

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

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

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

@@ -0,0 +1,14 @@
+package com.factory.web.service.pm;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.web.entity.pm.OnsitePlanHisBlob;
+
+/**
+ * 防错计划历史
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+public interface OnsitePlanHisBlobService extends IService<OnsitePlanHisBlob> {
+
+}

+ 59 - 2
application-facade/src/main/java/com/factory/web/service/pm/PreventMistakeService.java

@@ -6,20 +6,28 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.factory.base.entity.aggregates.PageBean;
 import com.factory.base.entity.aggregates.ResponseBean;
 import com.factory.base.entity.po.benteler.BentelerPlan;
+import com.factory.web.entity.pm.OnsiteApprovalPlan;
+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.AddPmPlanReq;
 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.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.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;
 
 /**
  * 防错计划
@@ -56,13 +64,20 @@ public interface PreventMistakeService extends IService<BentelerPlan> {
      * @return 防错计划列表
      */
     public ResponseBean<PageBean<PmPlanListRes>> getPmPlanList(SearchPmPlanListReq req);
-    
+
+    /**
+     * 取得防错计划当天任务信息
+     * @param req
+     * @return 防错计划当天任务信息
+     */
+    public List<PmTaskListRes> getTaskList(SearchPmPlanReq req);
+
     /**
      * 取得防错计划信息
      * @param req
      * @return 防错计划信息
      */
-    public ResponseBean<PmPlanRes> getPmPlan(SearchPmPlanReq req);
+    public PmPlanRes getPmPlan(SearchPmPlanReq req);
     
     /**
      * 禁用解禁防错计划
@@ -85,6 +100,20 @@ public interface PreventMistakeService extends IService<BentelerPlan> {
      */
 	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
@@ -99,6 +128,13 @@ public interface PreventMistakeService extends IService<BentelerPlan> {
      */
     public ResponseBean<List<PmPlanListForPadRes>> getPmPlanListForPad(SearchPmPlanListForPadReq req);
     
+    /**
+     * 取得表头信息
+     * @param req
+     * @return 表头信息
+     */
+    public ResponseBean<OnsiteTitleBlob> getTitle(SearchPmPlanReq req);
+    
     /**
      * 取得工作站列表
      * @param req
@@ -112,5 +148,26 @@ public interface PreventMistakeService extends IService<BentelerPlan> {
      * @return 巡检项目列表
      */
     public ResponseBean<List<OnsiteItem>> getItemList(SearchWorkshopReq req);
+    
+    /**
+     * 添加巡检项目检查结果
+     * @param req
+     * @return 
+     */
+	public ResponseBean addItemResult(AddItemResultReq req);
+	
+	/**
+     * 任务提交
+     * @param req
+     * @return 
+     */
+	public ResponseBean submitTask(SearchTaskReq req);
+	
+	/**
+     * 取得审批人
+     * @param req
+     * @return 审批人
+     */
+    public ResponseBean<ApprovalUserRes> getApprovalUser(SearchApprovalUserReq req);
 
 }

+ 35 - 2
application-facade/src/main/resources/mapper/PreventMistakeMapper.xml

@@ -4,7 +4,7 @@
 <mapper namespace="com.factory.web.mapper.pm.PreventMistakeMapper">
 	
 	
-    <!--取得防错计划列表(TODO 计划状态需要处理)-->
+    <!--取得防错计划列表(审批通过的   防错 记录)(TODO 按状态查询) -->
     <select id="getPmPlanList" resultType="com.factory.web.entity.pm.res.PmPlanListRes">
         SELECT  bp.id AS benteler_plan_id,
         		bp.`name` AS benteler_plan_name,
@@ -12,15 +12,35 @@
 				bp.created_time
 		FROM    benteler_plan bp,
 		        onsite_calendar oc,
-				us_user uu
+				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>
     
+    <!--取得防错计划当天任务信息-->
+    <select id="getTaskList" resultType="com.factory.web.entity.pm.res.PmTaskListRes">
+        SELECT  bp.id AS benteler_plan_id,
+			    oc.id AS onsite_calendar_id,
+				ot.id AS onsite_task_id,
+				ot.`status`
+		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.id = #{req.bentelerPlanId}
+    </select>
+    
     <!--取得检查记录 -->
     <select id="getPmItemResultList" resultType="com.factory.web.entity.pm.res.PmItemResultListRes">
         SELECT oi.workshop_id,
@@ -66,6 +86,19 @@
 		AND    oc.user_id = #{req.userId}
         GROUP BY ot.id
     </select>
+    
+    <!--取得审批人 -->
+    <select id="getApprovalUser" resultType="com.factory.web.entity.pm.res.ApprovalUserRes">
+        SELECT  uur.user_id,
+		        ar.type,
+		        ar.approval_level
+		FROM    approval_rule ar,
+			    us_user_role uur
+		WHERE   ar.role_id = uur.role_id
+		AND     ar.approval_level = #{req.approvalLevel}
+		AND     ar.type = #{req.type}
+		LIMIT   0,1
+    </select>
 
 
 </mapper>