فهرست منبع

微信小程序后端更新

孙伟 3 سال پیش
والد
کامیت
9f2de2000b
25فایلهای تغییر یافته به همراه622 افزوده شده و 127 حذف شده
  1. 4 4
      application-facade/src/main/java/com/factory/controller/web/WebStatisticsController.java
  2. 25 7
      application-facade/src/main/java/com/factory/controller/wx/PlanPassController.java
  3. 25 20
      application-facade/src/main/java/com/factory/controller/wx/WxController.java
  4. 10 5
      application-facade/src/main/java/com/factory/web/entity/fa/FirstArticleTask.java
  5. 33 0
      application-facade/src/main/java/com/factory/wx/entity/UsUserWechat.java
  6. 3 0
      application-facade/src/main/java/com/factory/wx/entity/req/PlanApprovalTaskReq.java
  7. 25 0
      application-facade/src/main/java/com/factory/wx/entity/req/UserBindReq.java
  8. 6 2
      application-facade/src/main/java/com/factory/wx/entity/res/PlanApprovalDetailRes.java
  9. 5 0
      application-facade/src/main/java/com/factory/wx/entity/res/PlanApprovalTaskRes.java
  10. 18 4
      application-facade/src/main/java/com/factory/wx/entity/res/PlanPassDetailRes.java
  11. 12 1
      application-facade/src/main/java/com/factory/wx/entity/res/PlanReminderDetailRes.java
  12. 1 9
      application-facade/src/main/java/com/factory/wx/mapper/PlanApprovalMapper.java
  13. 48 0
      application-facade/src/main/java/com/factory/wx/mapper/PlanPassMapper.java
  14. 3 1
      application-facade/src/main/java/com/factory/wx/mapper/WxMapper.java
  15. 19 1
      application-facade/src/main/java/com/factory/wx/service/PlanPassService.java
  16. 8 0
      application-facade/src/main/java/com/factory/wx/service/WxService.java
  17. 21 12
      application-facade/src/main/java/com/factory/wx/service/impl/PlanApprovalServiceImpl.java
  18. 151 12
      application-facade/src/main/java/com/factory/wx/service/impl/PlanPassServiceImpl.java
  19. 45 1
      application-facade/src/main/java/com/factory/wx/service/impl/PlanReminderServiceImpl.java
  20. 21 1
      application-facade/src/main/java/com/factory/wx/service/impl/WxServiceImpl.java
  21. 2 2
      application-facade/src/main/resources/application.yml
  22. 2 37
      application-facade/src/main/resources/mapper/PlanApprovalMapper.xml
  23. 103 0
      application-facade/src/main/resources/mapper/PlanPassMapper.xml
  24. 31 8
      application-facade/src/main/resources/mapper/ReminderMapper.xml
  25. 1 0
      application-facade/src/main/resources/mapper/WxMapper.xml

+ 4 - 4
application-facade/src/main/java/com/factory/controller/web/WebStatisticsController.java

@@ -41,8 +41,8 @@ public class WebStatisticsController {
 //
 //    @ApiOperation(value = "当日异常信息")
 //    @ApiOperationSupport(order = 1)
-    @PostMapping("/exceptions/date/detail")
-    public ResponseBean exceptionsByMonth(@RequestBody AddPmPlanReq req) {
-        return ResponseBeanBuilder.ok();
-    }
+//    @PostMapping("/exceptions/date/detail")
+//    public ResponseBean exceptionsByMonth(@RequestBody AddPmPlanReq req) {
+//        return ResponseBeanBuilder.ok();
+//    }
 }

+ 25 - 7
application-facade/src/main/java/com/factory/controller/wx/PlanPassController.java

@@ -1,13 +1,15 @@
 package com.factory.controller.wx;
 
-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.base.util.res.ResponseBeanBuilder;
+import com.factory.web.entity.fa.req.SearchFaPlanReq;
+import com.factory.web.entity.fa.res.FaPlanRes;
+import com.factory.web.service.fa.FirstArticleService;
 import com.factory.wx.entity.req.PlanApprovalTaskReq;
 import com.factory.wx.entity.req.PlanInfoReq;
 import com.factory.wx.entity.req.PlanPageReq;
 import com.factory.wx.entity.res.PlanPassDetailRes;
+import com.factory.wx.entity.res.PlanPassRes;
 import com.factory.wx.service.PlanPassService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -18,6 +20,10 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 微信小程序端计划
  *
@@ -33,21 +39,33 @@ public class PlanPassController {
 
     @Autowired
     private PlanPassService planPassService;
+    @Autowired
+    private FirstArticleService firstArticleService;
 
     @ApiOperation(value = "计划放行列表")
     @PostMapping("/list")
-    public ResponseBean<PageBean<BentelerPlan>> pass(@RequestBody PlanPageReq planPageReq) {
-        PageBean<BentelerPlan> passList = planPassService.getPassListByPage(planPageReq);
-        return ResponseBeanBuilder.ok(passList);
+    public ResponseBean<Map> pass(@RequestBody PlanPageReq planPageReq) {
+        List<PlanPassRes> passList = planPassService.getPassList(planPageReq);
+        Map map = new HashMap<>();
+        map.put("row", passList);
+        return ResponseBeanBuilder.ok(map);
     }
 
-    @ApiOperation(value = "计划放行详情")
-    @PostMapping("/detail")
+    @ApiOperation(value = "计划放行详情-首件")
+    @PostMapping("/detail/initial")
     public ResponseBean<PlanPassDetailRes> passDetail(@RequestBody PlanInfoReq planInfoReq) {
         PlanPassDetailRes planPassDetailRes = planPassService.getPassDetail(planInfoReq);
         return ResponseBeanBuilder.ok(planPassDetailRes);
     }
 
+    @ApiOperation(value = "计划放行详情-防错")
+    @PostMapping("/detail/pm")
+    public ResponseBean<PlanPassDetailRes> passDetailPM(@RequestBody PlanInfoReq planInfoReq) {
+        PlanPassDetailRes planPassDetailRes = planPassService.getPassDetailPM(planInfoReq);
+        return ResponseBeanBuilder.ok(planPassDetailRes);
+    }
+
+
     @ApiOperation(value = "计划放行")
     @PostMapping("/operate")
     public ResponseBean passOperate(@RequestBody PlanApprovalTaskReq planApprovalTaskReq) {

+ 25 - 20
application-facade/src/main/java/com/factory/controller/wx/WxController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.factory.base.entity.aggregates.ResponseBean;
 import com.factory.base.util.res.ResponseBeanBuilder;
 import com.factory.util.client.HttpCilentUntil;
+import com.factory.wx.entity.req.UserBindReq;
 import com.factory.wx.entity.res.FunctionsRes;
 import com.factory.wx.service.WxService;
 import io.swagger.annotations.Api;
@@ -12,9 +13,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -53,23 +52,29 @@ public class WxController {
 
 
     @ApiOperation(value = "小程序获取openid")
-    @GetMapping("/minprogram/openId")
-    public ResponseBean<String>  requestWeChatOpenid(HttpServletResponse response, HttpServletRequest request) throws Throwable {
-        String code = request.getParameter("code");//获取code
-        response.setContentType("text/html");
-        request.setCharacterEncoding("UTF-8");
-        response.setCharacterEncoding("UTF-8");
-        Map params = new HashMap();
-        params.put("secret",appsecret);
-        params.put("appid", appid);
-        params.put("grant_type", "authorization_code");
-        params.put("js_code", code);
-        params.put("connect_redirect","1");
-        String result = HttpCilentUntil.httpGetToString(
-                "https://api.weixin.qq.com/sns/jscode2session", params);
-        JSONObject jsonObject = JSON.parseObject(result);
-        String openid = jsonObject.get("openid").toString();
-       return ResponseBeanBuilder.ok(openid);
+    @PostMapping("/bind")
+    public ResponseBean bindWechatUser(@RequestBody UserBindReq userBindReq, HttpServletResponse response, HttpServletRequest request) throws Throwable {
+        try {
+            response.setContentType("text/html");
+            request.setCharacterEncoding("UTF-8");
+            response.setCharacterEncoding("UTF-8");
+            Map params = new HashMap();
+            params.put("secret", appsecret);
+            params.put("appid", appid);
+            params.put("grant_type", "authorization_code");
+            params.put("js_code", userBindReq.getCode());
+            params.put("connect_redirect", "1");
+            String result = HttpCilentUntil.httpGetToString(
+                    "https://api.weixin.qq.com/sns/jscode2session", params);
+            JSONObject jsonObject = JSON.parseObject(result);
+            String openid = jsonObject.get("openid").toString();
+
+            Long userId = (Long) request.getAttribute("LOGIN_USER_ID");//获取用户id
+            wxService.bindWeChatUser(openid, userId);
+        } catch (Exception e) {
+            return ResponseBeanBuilder.fail("小程序绑定用户失败");
+        }
+        return ResponseBeanBuilder.ok();
     }
 
 }

+ 10 - 5
application-facade/src/main/java/com/factory/web/entity/fa/FirstArticleTask.java

@@ -1,18 +1,19 @@
 package com.factory.web.entity.fa;
 
-import java.io.Serializable;
-import java.time.LocalDate;
-
 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;
 
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
 /**
  * 任务
  *
@@ -41,8 +42,12 @@ public class FirstArticleTask implements Serializable {
 
 	@ApiModelProperty(value = "是否发送了任务提醒给操作者 0没提醒 1已提醒")
 	private Integer remindTaskFlag;
-	
+
 	@ApiModelProperty(value = "没工作提醒是不是已经完成 0没提醒 1已提醒")
 	private Integer remindNoworkFlag;
 
+	@TableField(exist = false)
+	@ApiModelProperty(value = "任务审批信息")
+	private List<FirstArticleApprovalTask> firstArticleApprovalTasks;
+
 }

+ 33 - 0
application-facade/src/main/java/com/factory/wx/entity/UsUserWechat.java

@@ -0,0 +1,33 @@
+package com.factory.wx.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+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 sMArT
+ * @version 1.0
+ * @date 2021-07-15 2:43 下午
+ */
+@Data
+@TableName("us_user_wechat")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UsUserWechat {
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "绑定id")
+    private Long id;
+
+    @ApiModelProperty(value = "微信openid")
+    private String openid;
+
+    @ApiModelProperty(value = "系统用户id")
+    private Long userId;
+
+}

+ 3 - 0
application-facade/src/main/java/com/factory/wx/entity/req/PlanApprovalTaskReq.java

@@ -29,4 +29,7 @@ public class PlanApprovalTaskReq {
     @ApiModelProperty(value = "审批意见")
     private String reason;
 
+    @ApiModelProperty(value = "计划类型 1首件 2防错")
+    private int planType;
+
 }

+ 25 - 0
application-facade/src/main/java/com/factory/wx/entity/req/UserBindReq.java

@@ -0,0 +1,25 @@
+package com.factory.wx.entity.req;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author sMArT
+ * @version 1.0
+ * @date 2021-07-15 3:58 下午
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class UserBindReq {
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "微信code")
+    private String code;
+}

+ 6 - 2
application-facade/src/main/java/com/factory/wx/entity/res/PlanApprovalDetailRes.java

@@ -1,6 +1,7 @@
 package com.factory.wx.entity.res;
 
 import com.factory.web.entity.fa.FirstArticleCalendar;
+import com.factory.web.entity.fa.FirstArticleTitle;
 import com.factory.web.entity.fa.FirstArticleWorkshop;
 import com.factory.web.entity.pm.OnsiteCalendar;
 import com.factory.web.entity.pm.OnsiteTitle;
@@ -35,16 +36,19 @@ public class PlanApprovalDetailRes {
     private List<String> usersName;
     @ApiModelProperty(value = "计划生效日期")
     private LocalDate effectiveDate;
-    @ApiModelProperty(value = "表头信息")
-    private OnsiteTitle titleInfo;
     @ApiModelProperty(value = "当前用户审批级别")
     private String approvalLevel;
 
+    @ApiModelProperty(value = "表头信息")
+    private OnsiteTitle titleInfo;
     @ApiModelProperty(value = "防错计划基本信息")
     private List<OnsiteCalendar> onsiteCalendars;
     @ApiModelProperty(value = "防错计划工作站点检")
     private List<OnsiteWorkshop> onsiteWorkshops;
 
+
+    @ApiModelProperty(value = "表头信息-首件")
+    private FirstArticleTitle firstArticleTitle;
     @ApiModelProperty(value = "首件计划基本信息")
     private List<FirstArticleCalendar> firstArticleCalendars;
     @ApiModelProperty(value = "首件计划工作站")

+ 5 - 0
application-facade/src/main/java/com/factory/wx/entity/res/PlanApprovalTaskRes.java

@@ -6,6 +6,8 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.time.LocalDate;
+
 /**
  * @author sMArT
  * @version 1.0
@@ -29,6 +31,9 @@ public class PlanApprovalTaskRes {
     @ApiModelProperty(value = "内容")
     private String itemContent;
 
+    @ApiModelProperty(value = "发生时间")
+    private LocalDate itemTime;
+
     @ApiModelProperty(value = "巡检0 通过  1 不通过")
     private int result;
 

+ 18 - 4
application-facade/src/main/java/com/factory/wx/entity/res/PlanPassDetailRes.java

@@ -1,5 +1,6 @@
 package com.factory.wx.entity.res;
 
+import com.factory.web.entity.fa.*;
 import com.factory.web.entity.pm.OnsiteCalendar;
 import com.factory.web.entity.pm.OnsiteTitle;
 import io.swagger.annotations.ApiModelProperty;
@@ -27,14 +28,27 @@ public class PlanPassDetailRes {
     private Long planId;
     @ApiModelProperty(value = "计划名称")
     private String planName;
+    @ApiModelProperty(value = "计划类型")
+    private Integer planType;
     @ApiModelProperty(value = "检验负责人")
     private List<String> usersName;
     @ApiModelProperty(value = "计划生效日期")
     private LocalDate effectiveDate;
-    @ApiModelProperty(value = "表头信息")
+    @ApiModelProperty(value = "防错表头信息")
     private OnsiteTitle titleInfo;
-    @ApiModelProperty(value = "计划基本信息")
+    @ApiModelProperty(value = "日周月点检规则-防错")
     private List<OnsiteCalendar> onsiteCalendars;
-    @ApiModelProperty(value = "待审批任务")
-    List<PlanApprovalTaskRes> planApprovalTasks;
+    @ApiModelProperty(value = "待审批任务-防错")
+    private List<PlanApprovalTaskRes> planApprovalTasks;
+//    private List<OnsiteTask> onsiteTasks;
+
+    @ApiModelProperty(value = "表头信息-首件")
+    private FirstArticleTitle firstArticleTitle;
+    @ApiModelProperty(value = "日周月点检规则")
+    private List<FirstArticleCalendar> firstArticleCalendars;
+    @ApiModelProperty(value = "工作站及巡检内容")
+    private List<FirstArticleWorkshop> firstArticleWorkshops;
+    @ApiModelProperty(value = "巡检信息")
+    private List<FirstArticleApprovalTask> firstArticleApprovalTasks;
+
 }

+ 12 - 1
application-facade/src/main/java/com/factory/wx/entity/res/PlanReminderDetailRes.java

@@ -1,5 +1,9 @@
 package com.factory.wx.entity.res;
 
+import com.factory.web.entity.fa.FirstArticleCalendar;
+import com.factory.web.entity.fa.FirstArticleItem;
+import com.factory.web.entity.fa.FirstArticleTitle;
+import com.factory.web.entity.fa.FirstArticleWorkshop;
 import com.factory.web.entity.pm.OnsiteCalendar;
 import com.factory.web.entity.pm.OnsiteTitle;
 import com.factory.web.entity.pm.OnsiteWorkshop;
@@ -30,11 +34,18 @@ public class PlanReminderDetailRes {
     private List<String> usersName;
     @ApiModelProperty(value = "计划生效日期")
     private LocalDate effectiveDate;
+
     @ApiModelProperty(value = "表头信息")
     private OnsiteTitle titleInfo;
-
     @ApiModelProperty(value = "防错计划基本信息")
     private List<OnsiteCalendar> onsiteCalendars;
     @ApiModelProperty(value = "防错计划工作站点检")
     private List<OnsiteWorkshop> onsiteWorkshops;
+
+    @ApiModelProperty(value = "表头信息-首件")
+    private FirstArticleTitle firstArticleTitle;
+    @ApiModelProperty(value = "首件计划基本信息")
+    private List<FirstArticleCalendar> firstArticleCalendars;
+    @ApiModelProperty(value = "首件计划基本信息")
+    private List<FirstArticleWorkshop> firstArticleWorkshops;
 }

+ 1 - 9
application-facade/src/main/java/com/factory/wx/mapper/PlanMapper.java → application-facade/src/main/java/com/factory/wx/mapper/PlanApprovalMapper.java

@@ -12,7 +12,7 @@ import java.util.List;
  * @date 2021-07-13 12:43 下午
  */
 @Mapper
-public interface PlanMapper {
+public interface PlanApprovalMapper {
     /**
      * 获取待审批计划列表
      *
@@ -21,12 +21,4 @@ public interface PlanMapper {
      */
     List<PlanApprovalRes> getApprovalList(Long userId);
 
-    /**
-     * 获取待审批任务列表
-     *
-     * @param userId
-     * @return
-     */
-    List<PlanApprovalTaskRes> getApprovalTaskList(Long userId);
-
 }

+ 48 - 0
application-facade/src/main/java/com/factory/wx/mapper/PlanPassMapper.java

@@ -0,0 +1,48 @@
+package com.factory.wx.mapper;
+
+import com.factory.web.entity.fa.FirstArticleApprovalTask;
+import com.factory.wx.entity.req.PlanPageReq;
+import com.factory.wx.entity.res.PlanApprovalTaskRes;
+import com.factory.wx.entity.res.PlanPassRes;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author sMArT
+ * @version 1.0
+ * @date 2021-07-20 11:22 上午
+ */
+@Mapper
+public interface PlanPassMapper {
+    /**
+     * 获取放行列表-首件
+     *
+     * @param planPageReq
+     * @return
+     */
+    List<PlanPassRes> getPlanPassList(PlanPageReq planPageReq);
+
+    /**
+     * 获取放行列表-防错
+     *
+     * @param planPageReq
+     * @return
+     */
+    List<PlanPassRes> getPlanPassPMList(PlanPageReq planPageReq);
+
+    /**
+     * 获取待放行任务-首件
+     * @param userId
+     * @return
+     */
+    List<FirstArticleApprovalTask> getFirstArticleApprovalTaskList(Long userId);
+
+    /**
+     *
+     * @param userId
+     * @return
+     */
+    List<PlanApprovalTaskRes> getApprovalTaskList(Long userId);
+
+}

+ 3 - 1
application-facade/src/main/java/com/factory/wx/mapper/WxMapper.java

@@ -1,5 +1,7 @@
 package com.factory.wx.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.wx.entity.UsUserWechat;
 import com.factory.wx.entity.res.FunctionsRes;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -11,6 +13,6 @@ import java.util.List;
  * @date 2021-07-12 6:29 下午
  */
 @Mapper
-public interface WxMapper {
+public interface WxMapper extends BaseMapper<UsUserWechat> {
     List<FunctionsRes> getUserFunctions(Long userId);
 }

+ 19 - 1
application-facade/src/main/java/com/factory/wx/service/PlanPassService.java

@@ -7,6 +7,9 @@ import com.factory.wx.entity.req.PlanApprovalTaskReq;
 import com.factory.wx.entity.req.PlanInfoReq;
 import com.factory.wx.entity.req.PlanPageReq;
 import com.factory.wx.entity.res.PlanPassDetailRes;
+import com.factory.wx.entity.res.PlanPassRes;
+
+import java.util.List;
 
 /**
  * @author sMArT
@@ -24,13 +27,21 @@ public interface PlanPassService {
     PageBean<BentelerPlan> getPassListByPage(PlanPageReq planPageReq);
 
     /**
-     * 计划放行详情
+     * 计划放行详情-首件
      *
      * @param planInfoReq
      * @return
      */
     PlanPassDetailRes getPassDetail(PlanInfoReq planInfoReq);
 
+    /**
+     * 计划放行详情-防错
+     *
+     * @param planInfoReq
+     * @return
+     */
+    PlanPassDetailRes getPassDetailPM(PlanInfoReq planInfoReq);
+
     /**
      * 计划放行
      *
@@ -39,4 +50,11 @@ public interface PlanPassService {
      */
     ResponseBean approvalTaskOperate(PlanApprovalTaskReq planApprovalTaskReq);
 
+    /**
+     * 计划放行列表
+     *
+     * @param planPageReq
+     * @return
+     */
+    List<PlanPassRes> getPassList(PlanPageReq planPageReq);
 }

+ 8 - 0
application-facade/src/main/java/com/factory/wx/service/WxService.java

@@ -14,4 +14,12 @@ import java.util.List;
  */
 public interface WxService {
     ResponseBean<List<FunctionsRes>> getUserFunction(Long userId);
+
+    /**
+     * 绑定微信用户
+     *
+     * @param code
+     * @param userId
+     */
+    ResponseBean bindWeChatUser(String code, Long userId);
 }

+ 21 - 12
application-facade/src/main/java/com/factory/wx/service/impl/PlanApprovalServiceImpl.java

@@ -13,6 +13,7 @@ import com.factory.base.util.res.ResponseBeanBuilder;
 import com.factory.user.mapper.UserInfoMapper;
 import com.factory.web.entity.fa.FirstArticleCalendar;
 import com.factory.web.entity.fa.FirstArticleItem;
+import com.factory.web.entity.fa.FirstArticleTitle;
 import com.factory.web.entity.fa.FirstArticleWorkshop;
 import com.factory.web.entity.pm.*;
 import com.factory.web.entity.pm.res.ApprovalUserRes;
@@ -21,13 +22,14 @@ import com.factory.web.mapper.fa.FirstArticleCalendarMapper;
 import com.factory.web.mapper.fa.FirstArticleItemMapper;
 import com.factory.web.mapper.fa.FirstArticleWorkshopMapper;
 import com.factory.web.mapper.pm.*;
+import com.factory.web.service.fa.FirstArticleService;
 import com.factory.web.service.pm.PreventMistakeService;
 import com.factory.wx.entity.req.PlanApprovalReq;
 import com.factory.wx.entity.req.PlanInfoReq;
 import com.factory.wx.entity.req.PlanPageReq;
 import com.factory.wx.entity.res.PlanApprovalDetailRes;
 import com.factory.wx.entity.res.PlanApprovalRes;
-import com.factory.wx.mapper.PlanMapper;
+import com.factory.wx.mapper.PlanApprovalMapper;
 import com.factory.wx.service.PlanApprovalService;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -35,6 +37,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -57,7 +61,7 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
      */
     private static int APPROVAL_TYPE_PM = 3;
     @Autowired
-    private PlanMapper planMapper;
+    private PlanApprovalMapper planApprovalMapper;
     @Autowired
     private BentelerPlanMapper bentelerPlanMapper;
     @Autowired
@@ -80,6 +84,8 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
     private FirstArticleWorkshopMapper firstArticleWorkshopMapper;
     @Autowired
     private FirstArticleItemMapper firstArticleItemMapper;
+    @Autowired
+    private FirstArticleService firstArticleService;
 
 
     /**
@@ -90,7 +96,9 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
      */
     @Override
     public List<PlanApprovalRes> getApprovalList(Long userId) {
-        return planMapper.getApprovalList(userId);
+
+
+        return planApprovalMapper.getApprovalList(userId);
     }
 
     /**
@@ -132,13 +140,16 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
     @Override
     public PlanApprovalDetailRes getApprovalDetailInitial(PlanInfoReq planInfoReq) {
         BentelerPlan bentelerPlan = bentelerPlanMapper.selectById(planInfoReq.getPlanId());
+
         List<FirstArticleCalendar> firstArticleCalendarList = firstArticleCalendarMapper.selectList(Wrappers.<FirstArticleCalendar>lambdaQuery()
                 .eq(FirstArticleCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
+
         List<String> usersName = new ArrayList<>();
         firstArticleCalendarList.forEach(firstArticleCalendar -> {
             UserInfo userInfo = userInfoMapper.selectById(firstArticleCalendar.getUserId());
-            usersName.add(userInfo.getName());
+            usersName.add(StringUtils.join(userInfo.getName(), " ", firstArticleCalendar.getShift(), "班"));
         });
+
         List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopMapper.selectList(Wrappers.<FirstArticleWorkshop>lambdaQuery()
                 .eq(FirstArticleWorkshop::getBentelerPlanId, planInfoReq.getPlanId()));
         firstArticleWorkshopList.forEach(firstArticleWorkshop -> {
@@ -147,15 +158,16 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
         });
 
         //获取title
-        OnsiteTitle title = preventMistakeService.getTitle(planInfoReq.getPlanId());
+        FirstArticleTitle title = firstArticleService.getFaTitle(planInfoReq.getPlanId());
+
         return PlanApprovalDetailRes.builder()
                 .planId(bentelerPlan.getId())
                 .planName(bentelerPlan.getName())
                 .effectiveDate(bentelerPlan.getEffectiveDate())
-                .usersName(usersName)
-                .titleInfo(title)
                 .firstArticleCalendars(firstArticleCalendarList)
                 .firstArticleWorkshops(firstArticleWorkshopList)
+                .usersName(usersName)
+                .firstArticleTitle(title)
                 .build();
     }
 
@@ -179,7 +191,6 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
 
         //获取title
         OnsiteTitle title = preventMistakeService.getTitle(planInfoReq.getPlanId());
-        title.setUploadAttachmentId(null);//去除附件
 
         List<OnsiteWorkshop> onsiteWorkshopList = onsiteWorkshopMapper.selectList(Wrappers.<OnsiteWorkshop>lambdaQuery()
                 .eq(OnsiteWorkshop::getBentelerPlanId, planInfoReq.getPlanId()));
@@ -188,7 +199,7 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
                     .eq(OnsiteItem::getWorkshopId, onsiteWorkshop.getId())));
         });
 
-        PlanApprovalDetailRes planApprovalDetailRes = PlanApprovalDetailRes.builder()
+        return PlanApprovalDetailRes.builder()
                 .planId(bentelerPlan.getId())
                 .planName(bentelerPlan.getName())
                 .effectiveDate(bentelerPlan.getEffectiveDate())
@@ -197,7 +208,6 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
                 .onsiteCalendars(onsiteCalendarList)
                 .onsiteWorkshops(onsiteWorkshopList)
                 .build();
-        return planApprovalDetailRes;
     }
 
     /**
@@ -239,8 +249,7 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
             //审批不通过
             if (planApprovalReq.getStatus() == 2) {
                 //审批不通过,保存审批历史
-//                preventMistakeService.setOnsitePlanHis(planApprovalReq.getPlanId());
-                preventMistakeService.getApprovalUserInfo(1, APPROVAL_TYPE_NEW);
+                preventMistakeService.setOnsitePlanHis(planApprovalReq.getPlanId());
             }
         }
         return ResponseBeanBuilder.ok();

+ 151 - 12
application-facade/src/main/java/com/factory/wx/service/impl/PlanPassServiceImpl.java

@@ -11,20 +11,27 @@ import com.factory.base.entity.po.benteler.BentelerPlan;
 import com.factory.base.entity.po.remote.UserInfo;
 import com.factory.base.util.res.ResponseBeanBuilder;
 import com.factory.user.mapper.UserInfoMapper;
+import com.factory.web.entity.fa.*;
 import com.factory.web.entity.pm.*;
 import com.factory.web.entity.pm.res.ApprovalUserRes;
 import com.factory.web.mapper.BentelerPlanMapper;
+import com.factory.web.mapper.fa.FirstArticleApprovalTaskMapper;
+import com.factory.web.mapper.fa.FirstArticleCalendarMapper;
 import com.factory.web.mapper.pm.ApprovalRuleMapper;
 import com.factory.web.mapper.pm.OnsiteApprovalTaskMapper;
 import com.factory.web.mapper.pm.OnsiteCalendarMapper;
 import com.factory.web.mapper.pm.OnsiteTaskMapper;
+import com.factory.web.service.BentelerPlanService;
+import com.factory.web.service.fa.*;
 import com.factory.web.service.pm.PreventMistakeService;
 import com.factory.wx.entity.req.PlanApprovalTaskReq;
 import com.factory.wx.entity.req.PlanInfoReq;
 import com.factory.wx.entity.req.PlanPageReq;
 import com.factory.wx.entity.res.PlanApprovalTaskRes;
 import com.factory.wx.entity.res.PlanPassDetailRes;
-import com.factory.wx.mapper.PlanMapper;
+import com.factory.wx.entity.res.PlanPassRes;
+import com.factory.wx.mapper.PlanApprovalMapper;
+import com.factory.wx.mapper.PlanPassMapper;
 import com.factory.wx.service.PlanPassService;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -32,6 +39,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -54,7 +63,7 @@ public class PlanPassServiceImpl implements PlanPassService {
      */
     private static int APPROVAL_TYPE_PM = 3;
     @Autowired
-    private PlanMapper planMapper;
+    private PlanApprovalMapper planApprovalMapper;
     @Autowired
     private BentelerPlanMapper bentelerPlanMapper;
     @Autowired
@@ -70,6 +79,26 @@ public class PlanPassServiceImpl implements PlanPassService {
     private OnsiteApprovalTaskMapper onsiteApprovalTaskMapper;
     @Autowired
     private OnsiteTaskMapper onsiteTaskMapper;
+    @Autowired
+    private PlanPassMapper planPassMapper;
+    @Autowired
+    private FirstArticleCalendarMapper firstArticleCalendarMapper;
+    @Autowired
+    private FirstArticleApprovalTaskMapper firstArticleApprovalTaskMapper;
+    @Autowired
+    private BentelerPlanService planService;
+    @Autowired
+    private FirstArticleCalendarService firstArticleCalendarService;
+    @Autowired
+    private FirstArticleTitleBlobService firstArticleTitleBlobService;
+    @Autowired
+    private FirstArticleWorkshopService firstArticleWorkshopService;
+    @Autowired
+    private FirstArticleItemService firstArticleItemService;
+    @Autowired
+    private FirstArticleItemResultService firstArticleItemResultService;
+    @Autowired
+    private FirstArticleService firstArticleService;
 
     private static IPage<BentelerPlan> getBentelerPlanIPage(PlanPageReq planPageReq, List<OnsiteCalendar> onsiteCalendarList, BentelerPlanMapper bentelerPlanMapper) {
         IPage<BentelerPlan> bentelerPlanIPage;
@@ -118,14 +147,78 @@ public class PlanPassServiceImpl implements PlanPassService {
     }
 
     /**
-     * 计划放行详情
-     *
+     * 计划放行详情-首件
      * @param planInfoReq
      * @return
      */
+
     @Override
     public PlanPassDetailRes getPassDetail(PlanInfoReq planInfoReq) {
         BentelerPlan bentelerPlan = bentelerPlanMapper.selectById(planInfoReq.getPlanId());
+
+        List<FirstArticleCalendar> firstArticleCalendarList = firstArticleCalendarMapper.selectList(Wrappers.<FirstArticleCalendar>lambdaQuery()
+                .eq(FirstArticleCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
+        List<String> usersName = new ArrayList<>();
+        firstArticleCalendarList.forEach(onsiteCalendar -> {
+            UserInfo userInfo = userInfoMapper.selectById(onsiteCalendar.getUserId());
+            usersName.add(StringUtils.join(userInfo.getName(), " ", onsiteCalendar.getShift(), "班"));
+        });
+
+        //工作站
+        List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopService.list(Wrappers.<FirstArticleWorkshop>lambdaQuery()
+                .eq(FirstArticleWorkshop::getBentelerPlanId, planInfoReq.getPlanId()));
+        // 每个workshop下的item
+        firstArticleWorkshopList.forEach(workshop -> {
+            List<FirstArticleItem> firstArticleItemList = firstArticleItemService.list(Wrappers.<FirstArticleItem>lambdaQuery()
+                    .eq(FirstArticleItem::getWorkshopId, workshop.getId()));
+            workshop.setFirstArticleItemList(firstArticleItemList);
+            //每个item下的结果
+            firstArticleItemList.forEach(item -> {
+                List<FirstArticleItemResult> firstArticleItemResults = firstArticleItemResultService.list(Wrappers.<FirstArticleItemResult>lambdaQuery()
+                        .eq(FirstArticleItemResult::getFirstArticleItemId, item.getId())
+                        .eq(FirstArticleItemResult::getResult, 1));
+                // 首件列表
+                if (item.getFirstFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
+                    item.setFirstItemResultList(firstArticleItemResults);
+                }
+                // 200件
+                if (item.getTwoHundredFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
+                    item.setTwoHundredItemResultList(firstArticleItemResults);
+                }
+                // 中断
+                if (item.getCatchFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
+                    item.setCatchItemResultList(firstArticleItemResults);
+                }
+            });
+        });
+
+
+        //获取title
+        FirstArticleTitle title = firstArticleService.getFaTitle(planInfoReq.getPlanId());
+
+        List<FirstArticleApprovalTask> firstArticleApprovalTaskList = planPassMapper.getFirstArticleApprovalTaskList(planInfoReq.getUserId());
+//
+        return PlanPassDetailRes.builder()
+                .planId(bentelerPlan.getId())
+                .planName(bentelerPlan.getName())
+                .effectiveDate(bentelerPlan.getEffectiveDate())
+                .usersName(usersName)
+                .firstArticleTitle(title)
+                .firstArticleCalendars(firstArticleCalendarList)
+                .firstArticleWorkshops(firstArticleWorkshopList)
+                .firstArticleApprovalTasks(firstArticleApprovalTaskList)
+                .build();
+    }
+
+    /**
+     * 计划放行详情-防错
+     *
+     * @param planInfoReq
+     * @return
+     */
+    @Override
+    public PlanPassDetailRes getPassDetailPM(PlanInfoReq planInfoReq) {
+        BentelerPlan bentelerPlan = bentelerPlanMapper.selectById(planInfoReq.getPlanId());
         List<OnsiteCalendar> onsiteCalendarList = onsiteCalendarMapper.selectList(Wrappers.<OnsiteCalendar>lambdaQuery()
                 .eq(OnsiteCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
 
@@ -137,7 +230,7 @@ public class PlanPassServiceImpl implements PlanPassService {
 
         //获取title
         OnsiteTitle title = preventMistakeService.getTitle(planInfoReq.getPlanId());
-        List<PlanApprovalTaskRes> planApprovalTaskResList = planMapper.getApprovalTaskList(planInfoReq.getUserId());
+        List<PlanApprovalTaskRes> planApprovalTaskResList = planPassMapper.getApprovalTaskList(planInfoReq.getUserId());
 
         PlanPassDetailRes planPassDetailRes = PlanPassDetailRes.builder()
                 .planId(bentelerPlan.getId())
@@ -160,13 +253,26 @@ public class PlanPassServiceImpl implements PlanPassService {
     @Override
     public ResponseBean approvalTaskOperate(PlanApprovalTaskReq planApprovalTaskReq) {
 
-        OnsiteApprovalTask ot = new OnsiteApprovalTask();
-        ot.setOnsiteTaskId(planApprovalTaskReq.getTaskId());
-        ot.setReason(planApprovalTaskReq.getReason());
-        ot.setStatus(planApprovalTaskReq.getStatus());
-        int updateStatus = onsiteApprovalTaskMapper.update(ot, Wrappers.<OnsiteApprovalTask>lambdaQuery()
-                .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
-                .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
+        int updateStatus = 0;
+        if (planApprovalTaskReq.getPlanType() == 1) {
+            OnsiteApprovalTask ot = new OnsiteApprovalTask();
+            ot.setOnsiteTaskId(planApprovalTaskReq.getTaskId());
+            ot.setReason(planApprovalTaskReq.getReason());
+            ot.setStatus(planApprovalTaskReq.getStatus());
+            updateStatus = onsiteApprovalTaskMapper.update(ot, Wrappers.<OnsiteApprovalTask>lambdaQuery()
+                    .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
+                    .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
+        }
+        if (planApprovalTaskReq.getPlanType() == 2) {
+            FirstArticleApprovalTask ot = new FirstArticleApprovalTask();
+            ot.setFirstArticleTaskId(planApprovalTaskReq.getTaskId());
+            ot.setReason(planApprovalTaskReq.getReason());
+            ot.setStatus(planApprovalTaskReq.getStatus());
+            updateStatus = firstArticleApprovalTaskMapper.update(ot, Wrappers.<FirstArticleApprovalTask>lambdaQuery()
+                    .eq(FirstArticleApprovalTask::getFirstArticleTaskId, planApprovalTaskReq.getTaskId())
+                    .eq(FirstArticleApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
+        }
+
         if (updateStatus > 0) {
             //审批不通过触发下一级别
             if (planApprovalTaskReq.getStatus() == 2) {
@@ -199,4 +305,37 @@ public class PlanPassServiceImpl implements PlanPassService {
         return ResponseBeanBuilder.ok();
     }
 
+    /**
+     * 计划放行列表
+     *
+     * @param planPageReq
+     * @return
+     */
+    @Override
+    public List<PlanPassRes> getPassList(PlanPageReq planPageReq) {
+        List<PlanPassRes> planPassResList = new ArrayList<>();
+        //首件列表
+        if (planPageReq.getCheckType() == 1) {
+            planPassResList = planPassMapper.getPlanPassList(planPageReq);
+        }
+        //防错列表
+        if (planPageReq.getCheckType() == 2) {
+            planPassResList = planPassMapper.getPlanPassPMList(planPageReq);
+        }
+        return planPassResList;
+    }
+
+    /**
+     * byte[]转成Object
+     * @param buffer 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;
+    }
+
 }

+ 45 - 1
application-facade/src/main/java/com/factory/wx/service/impl/PlanReminderServiceImpl.java

@@ -9,9 +9,17 @@ import com.factory.base.entity.aggregates.PageBean;
 import com.factory.base.entity.po.benteler.BentelerPlan;
 import com.factory.base.entity.po.remote.UserInfo;
 import com.factory.user.mapper.UserInfoMapper;
+import com.factory.web.entity.fa.FirstArticleCalendar;
+import com.factory.web.entity.fa.FirstArticleItem;
+import com.factory.web.entity.fa.FirstArticleTitle;
+import com.factory.web.entity.fa.FirstArticleWorkshop;
 import com.factory.web.entity.pm.*;
 import com.factory.web.mapper.BentelerPlanMapper;
+import com.factory.web.mapper.fa.FirstArticleCalendarMapper;
+import com.factory.web.mapper.fa.FirstArticleItemMapper;
+import com.factory.web.mapper.fa.FirstArticleWorkshopMapper;
 import com.factory.web.mapper.pm.*;
+import com.factory.web.service.fa.FirstArticleService;
 import com.factory.web.service.pm.PreventMistakeService;
 import com.factory.wx.entity.req.PlanInfoReq;
 import com.factory.wx.entity.req.PlanPageReq;
@@ -55,6 +63,14 @@ public class PlanReminderServiceImpl implements PlanReminderService {
     private UserInfoMapper userInfoMapper;
     @Autowired
     private PreventMistakeService preventMistakeService;
+    @Autowired
+    private FirstArticleCalendarMapper firstArticleCalendarMapper;
+    @Autowired
+    private FirstArticleWorkshopMapper firstArticleWorkshopMapper;
+    @Autowired
+    private FirstArticleItemMapper firstArticleItemMapper;
+    @Autowired
+    private FirstArticleService firstArticleService;
 
     /**
      * 获取计划提醒列表
@@ -132,6 +148,7 @@ public class PlanReminderServiceImpl implements PlanReminderService {
         });
         return PlanReminderDetailRes.builder()
                 .planId(bentelerPlan.getId())
+                .planName(bentelerPlan.getName())
                 .usersName(usersName)
                 .effectiveDate(bentelerPlan.getEffectiveDate())
                 .titleInfo(title)
@@ -153,7 +170,34 @@ public class PlanReminderServiceImpl implements PlanReminderService {
      */
     @Override
     public PlanReminderDetailRes getReminderDetail(PlanInfoReq planInfoReq) {
-        return null;
+        BentelerPlan bentelerPlan = bentelerPlanMapper.selectById(planInfoReq.getPlanId());
+        List<FirstArticleCalendar> firstArticleCalendarList = firstArticleCalendarMapper.selectList(Wrappers.<FirstArticleCalendar>lambdaQuery()
+                .eq(FirstArticleCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
+
+        List<String> usersName = new ArrayList<>();
+        firstArticleCalendarList.forEach(firstArticleCalendar -> {
+            UserInfo userInfo = userInfoMapper.selectById(firstArticleCalendar.getUserId());
+            usersName.add(userInfo.getName());
+        });
+
+        //获取title
+        FirstArticleTitle title = firstArticleService.getFaTitle(planInfoReq.getPlanId());
+
+        List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopMapper.selectList(Wrappers.<FirstArticleWorkshop>lambdaQuery()
+                .eq(FirstArticleWorkshop::getBentelerPlanId, planInfoReq.getPlanId()));
+        firstArticleWorkshopList.forEach(firstArticleWorkshop -> {
+            firstArticleWorkshop.setFirstArticleItemList(firstArticleItemMapper.selectList(Wrappers.<FirstArticleItem>lambdaQuery()
+                    .eq(FirstArticleItem::getWorkshopId, firstArticleWorkshop.getId())));
+        });
+        return PlanReminderDetailRes.builder()
+                .planId(bentelerPlan.getId())
+                .planName(bentelerPlan.getName())
+                .usersName(usersName)
+                .effectiveDate(bentelerPlan.getEffectiveDate())
+                .firstArticleTitle(title)
+                .firstArticleCalendars(firstArticleCalendarList)
+                .firstArticleWorkshops(firstArticleWorkshopList)
+                .build();
     }
 
 }

+ 21 - 1
application-facade/src/main/java/com/factory/wx/service/impl/WxServiceImpl.java

@@ -1,7 +1,9 @@
 package com.factory.wx.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.factory.base.entity.aggregates.ResponseBean;
 import com.factory.base.util.res.ResponseBeanBuilder;
+import com.factory.wx.entity.UsUserWechat;
 import com.factory.wx.entity.res.FunctionsRes;
 import com.factory.wx.mapper.WxMapper;
 import com.factory.wx.service.WxService;
@@ -9,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -38,4 +39,23 @@ public class WxServiceImpl implements WxService {
 
         return ResponseBeanBuilder.ok(functionList);
     }
+
+    @Override
+    public ResponseBean bindWeChatUser(String openId, Long userId) {
+        UsUserWechat usUserWechat = wxMapper.selectOne(Wrappers.<UsUserWechat>lambdaQuery()
+                .eq(UsUserWechat::getUserId, userId));
+        if (null != usUserWechat) {
+            UsUserWechat user = new UsUserWechat();
+            user.setId(usUserWechat.getId());
+            user.setOpenid(openId);
+            Integer rows = wxMapper.updateById(user);
+//            if (rows == 0) return ResponseBeanBuilder.fail("更新绑定信息失败");
+        } else {
+            UsUserWechat user = new UsUserWechat();
+            user.setUserId(userId);
+            user.setOpenid(openId);
+            wxMapper.insert(user);
+        }
+        return ResponseBeanBuilder.ok();
+    }
 }

+ 2 - 2
application-facade/src/main/resources/application.yml

@@ -76,8 +76,8 @@ mybatis-plus:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 wx:
   minprogram:
-     appid: wxeb29362c7f2e9e48
-     appsecret: f637286fcda117a3e5598df9338ad82
+    appid: wxfd6e42e05b91163c
+    appsecret: 7c4e39a33bf8b66beb919b9ad0a15832
 download:
    excel:
       imgid: 23

+ 2 - 37
application-facade/src/main/resources/mapper/PlanMapper.xml → application-facade/src/main/resources/mapper/PlanApprovalMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
-<mapper namespace="com.factory.wx.mapper.PlanMapper">
+<mapper namespace="com.factory.wx.mapper.PlanApprovalMapper">
 
     <!-- 获取用户待审批计划列表 -->
     <select id="getApprovalList" resultType="com.factory.wx.entity.res.PlanApprovalRes">
@@ -35,41 +35,6 @@
     <!--		  AND oat.approval_user_id = ${userId}-->
     <!--	</select>-->
 
-    <!-- 获取用户待审批任务列表 -->
-    <select id="getApprovalTaskList" resultType="com.factory.wx.entity.res.PlanApprovalTaskRes">
-        SELECT
-            ow.ws_name,
-            ot.id as onsite_task_id,
-            oi.id as item_id,
-            oi.item_content,
-            oir.result,
-            oc.type_flag,
-            oat.`status`
-        FROM
-            onsite_item oi,
-            onsite_item_result oir,
-            onsite_workshop ow,
-            onsite_calendar oc,
-            onsite_task ot,
-            onsite_approval_task oat
-        WHERE
-            oir.onsite_item_id = oi.id
-          AND oi.workshop_id = ow.id
-          AND oir.onsite_task_id = ot.id
-          AND ot.onsite_calendar_id = oc.id
-          AND ot.id = oat.onsite_task_id
-          AND oat.approval_user_id = #{userId}
-          AND oir.result = 1
---         SELECT
---             oat.onsite_task_id,
---             oat.approval_level,
---             oat.`status`
---         FROM
---             onsite_approval_task oat,
---             onsite_task ot
---         WHERE
---             oat.onsite_task_id = ot.id
---           AND oat.approval_user_id = ${userId}
-    </select>
+
 
 </mapper>

+ 103 - 0
application-facade/src/main/resources/mapper/PlanPassMapper.xml

@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.factory.wx.mapper.PlanPassMapper">
+    <!-- 获取用户待审批计划列表 -->
+    <select id="getPlanPassPMList" parameterType="com.factory.wx.entity.req.PlanPageReq"
+            resultType="com.factory.wx.entity.res.PlanPassRes">
+        SELECT DISTINCT
+            bp.id AS id,
+            bp.`name` AS NAME,
+            bp.plan_type AS plan_type
+        FROM
+            onsite_approval_task rat,
+            onsite_task ot,
+            onsite_calendar oc,
+            benteler_plan bp
+        WHERE
+            rat.onsite_task_id = ot.id
+            AND ot.onsite_calendar_id = oc.id
+            AND oc.benteler_plan_id = bp.id
+            AND rat.approval_user_id = #{userId}
+        <if test="name != ''">
+            AND bp.`name` LIKE CONCAT('%',#{name},'%')
+        </if>
+
+    </select>
+
+    <select id="getPlanPassList" parameterType="com.factory.wx.entity.req.PlanPageReq"
+            resultType="com.factory.wx.entity.res.PlanPassRes">
+        SELECT DISTINCT
+            bp.id AS id,
+            bp.`name` AS NAME,
+            bp.plan_type AS plan_type
+        FROM
+            first_article_approval_task rat,
+            first_article_task ot,
+            first_article_calendar oc,
+            benteler_plan bp
+        WHERE
+            rat.first_article_task_id = ot.id
+            AND ot.first_article_calendar_id = oc.id
+            AND oc.benteler_plan_id = bp.id
+            AND rat.approval_user_id = #{userId}
+        <if test="name != ''">
+            AND bp.`name` LIKE CONCAT('%',#{name},'%')
+        </if>
+    </select>
+    <!-- 获取用户待审批任务列表 -->
+    <select id="getApprovalTaskList" resultType="com.factory.wx.entity.res.PlanApprovalTaskRes">
+        SELECT
+            ow.ws_name,
+            ot.id as onsite_task_id,
+            oi.id as item_id,
+            oi.item_content,
+            oir.result,
+            oir.created_time as time,
+            oc.type_flag,
+            oat.`status`
+        FROM
+            onsite_item oi,
+            onsite_item_result oir,
+            onsite_workshop ow,
+            onsite_calendar oc,
+            onsite_task ot,
+            onsite_approval_task oat
+        WHERE
+            oir.onsite_item_id = oi.id
+          AND oi.workshop_id = ow.id
+          AND oir.onsite_task_id = ot.id
+          AND ot.onsite_calendar_id = oc.id
+          AND ot.id = oat.onsite_task_id
+          AND oat.approval_user_id = #{userId}
+          AND oir.result = 1
+    </select>
+
+    <select id="getFirstArticleApprovalTaskList" resultType="com.factory.wx.entity.res.PlanApprovalTaskRes">
+        SELECT
+            ow.ws_name,
+            ot.id as onsite_task_id,
+            oi.id as item_id,
+            oi.item_content,
+            oir.result,
+            oir.created_time as item_time,
+            oc.type_flag,
+            oat.`status`
+        FROM
+            first_article_item oi,
+            first_article_item_result oir,
+            first_article_workshop ow,
+            first_article_calendar oc,
+            first_article_task ot,
+            first_article_approval_task oat
+        WHERE
+            oir.first_article_item_id = oi.id
+          AND oi.workshop_id = ow.id
+          AND oir.first_article_task_id = ot.id
+          AND ot.first_article_calendar_id = oc.id
+          AND ot.id = oat.first_article_task_id
+          AND oat.approval_user_id = #{userId}
+          AND oir.result = 1
+    </select>
+
+</mapper>

+ 31 - 8
application-facade/src/main/resources/mapper/ReminderMapper.xml

@@ -10,14 +10,37 @@
             bp.`name`    AS name,
             bp.plan_type AS plan_type,
             rat.`status` AS status
-        FROM remind_approval_task rat,
-             onsite_task ot,
-             onsite_calendar oc,
-             benteler_plan bp
-        WHERE rat.task_id = ot.id
-          AND ot.onsite_calendar_id = oc.id
-          AND oc.benteler_plan_id = bp.id
-          AND rat.approval_user_id = #{userId}
+        FROM
+            remind_approval_task rat,
+            onsite_task ot,
+            onsite_calendar oc,
+            benteler_plan bp
+        WHERE
+            rat.task_id = ot.id
+            AND ot.onsite_calendar_id = oc.id
+            AND oc.benteler_plan_id = bp.id
+            AND rat.task_type = 2
+            AND rat.approval_user_id = #{userId}
+        <if test="name != ''">
+            AND bp.`name` LIKE  CONCAT('%',#{name},'%')
+        </if>
+        UNION
+        SELECT DISTINCT
+            bp.id        AS plan_id,
+            bp.`name`    AS name,
+            bp.plan_type AS plan_type,
+            rat.`status` AS status
+        FROM
+            remind_approval_task rat,
+            first_article_task ot,
+            first_article_calendar oc,
+            benteler_plan bp
+        WHERE
+            rat.task_id = ot.id
+            AND ot.first_article_calendar_id = oc.id
+            AND oc.benteler_plan_id = bp.id
+            AND rat.task_type = 1
+            AND rat.approval_user_id = #{userId}
         <if test="name != ''">
             AND bp.`name` LIKE  CONCAT('%',#{name},'%')
         </if>

+ 1 - 0
application-facade/src/main/resources/mapper/WxMapper.xml

@@ -22,6 +22,7 @@
           AND p.hidden = 0
           AND p.del_flag = 0
           AND m.del_flag = 0
+          AND m.type = 'WX'
           AND description IS NOT NULL
     </select>