Explorar o código

小程序测试

孙伟 %!s(int64=3) %!d(string=hai) anos
pai
achega
d582faeff0
Modificáronse 19 ficheiros con 345 adicións e 243 borrados
  1. 15 6
      application-facade/src/main/java/com/factory/controller/wx/PlanController.java
  2. 39 0
      application-facade/src/main/java/com/factory/web/entity/pm/RemindApprovalTask.java
  3. 3 3
      application-facade/src/main/java/com/factory/web/entity/pm/res/PmTaskRes.java
  4. 12 0
      application-facade/src/main/java/com/factory/web/mapper/pm/RemindApprovalTaskMapper.java
  5. 1 1
      application-facade/src/main/java/com/factory/web/service/impl/pm/PreventMistakeServiceImpl.java
  6. 0 60
      application-facade/src/main/java/com/factory/websocket/WebSocketConfig.java
  7. 0 66
      application-facade/src/main/java/com/factory/websocket/WebSocketHandler.java
  8. 0 43
      application-facade/src/main/java/com/factory/websocket/WebSocketInterceptor.java
  9. 0 55
      application-facade/src/main/java/com/factory/websocket/WsSessionManager.java
  10. 32 0
      application-facade/src/main/java/com/factory/wx/entity/req/PlanApprovalTaskReq.java
  11. 4 0
      application-facade/src/main/java/com/factory/wx/entity/req/PlanInfoReq.java
  12. 31 0
      application-facade/src/main/java/com/factory/wx/entity/req/ReminderReq.java
  13. 37 0
      application-facade/src/main/java/com/factory/wx/entity/res/PlanApprovalTaskRes.java
  14. 2 0
      application-facade/src/main/java/com/factory/wx/entity/res/PlanPassDetailRes.java
  15. 15 0
      application-facade/src/main/java/com/factory/wx/mapper/PlanMapper.java
  16. 17 4
      application-facade/src/main/java/com/factory/wx/service/PlanService.java
  17. 95 4
      application-facade/src/main/java/com/factory/wx/service/impl/PlanServiceImpl.java
  18. 36 0
      application-facade/src/main/resources/mapper/PlanMapper.xml
  19. 6 1
      common-user/src/main/java/com/factory/user/service/impl/UsersServiceImpl.java

+ 15 - 6
application-facade/src/main/java/com/factory/controller/wx/PlanController.java

@@ -4,11 +4,7 @@ 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.vo.res.pad.ini.planlistRes;
-import com.factory.wx.entity.req.PassListReq;
-import com.factory.wx.entity.req.PlanApprovalReq;
-import com.factory.wx.entity.req.PlanInfoReq;
-import com.factory.wx.entity.req.PlanListReq;
+import com.factory.wx.entity.req.*;
 import com.factory.wx.entity.res.PlanApprovalDetailRes;
 import com.factory.wx.entity.res.PlanPassDetailRes;
 import com.factory.wx.service.PlanService;
@@ -88,10 +84,23 @@ public class PlanController {
         return ResponseBeanBuilder.ok(planPassDetailRes);
     }
 
+    @ApiOperation(value = "计划放行")
+    @PostMapping("/pass/operate")
+    public ResponseBean passOperate(@RequestBody PlanApprovalTaskReq planApprovalTaskReq) {
+        return planService.approvalTaskOperate(planApprovalTaskReq);
+    }
+
     @ApiOperation(value = "计划提醒列表")
     @PostMapping("/reminder/list")
-    public ResponseBean<planlistRes> reminder() {
+    public ResponseBean<PageBean<BentelerPlan>> reminder(@RequestBody ReminderReq reminderReq) {
+        PageBean<BentelerPlan> reminderList = planService.getReminderListByPage(reminderReq);
+        return ResponseBeanBuilder.ok(reminderList);
+    }
 
+    @ApiOperation(value = "计划提醒详情")
+    @PostMapping("/reminder/detail")
+    public ResponseBean reminderDetail(@RequestBody ReminderReq reminderReq) {
         return ResponseBeanBuilder.ok();
     }
+
 }

+ 39 - 0
application-facade/src/main/java/com/factory/web/entity/pm/RemindApprovalTask.java

@@ -0,0 +1,39 @@
+package com.factory.web.entity.pm;
+
+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:52 上午
+ */
+@Data
+@TableName("remind_approval_task")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class RemindApprovalTask {
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "提醒id")
+    private Long id;
+
+    @ApiModelProperty(value = "任务id")
+    private Long taskId;
+
+    @ApiModelProperty(value = "审批人ID")
+    private Long approvalUserId;
+
+    @ApiModelProperty(value = "任务类型 1首件 2防错")
+    private int taskType;
+
+    @ApiModelProperty(value = "审批状态 0 初始化 1已经处理")
+    private int status;
+
+}

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

@@ -27,7 +27,7 @@ import lombok.NoArgsConstructor;
 @JsonInclude()
 @ApiModel("")
 public class PmTaskRes implements Serializable {
-	
+
 	@ApiModelProperty(value = "任务id")
 	private Long onsiteTaskId;
 
@@ -42,9 +42,9 @@ public class PmTaskRes implements Serializable {
 
 	@ApiModelProperty(value = "是否发送了任务提醒给操作者 0没提醒 1已提醒")
 	private Integer remindTaskFlag;
-	
+
 	@ApiModelProperty(value = "没工作提醒是不是已经完成 0没提醒 1已提醒")
-	private Integer remindNoworkFalg;
+	private Integer remindNoworkFlag;
 
 	@ApiModelProperty(value = "巡检项目检查结果")
 	private List<OnsiteItemResult> onsiteItemResultList;

+ 12 - 0
application-facade/src/main/java/com/factory/web/mapper/pm/RemindApprovalTaskMapper.java

@@ -0,0 +1,12 @@
+package com.factory.web.mapper.pm;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.web.entity.pm.RemindApprovalTask;
+
+/**
+ * @author sMArT
+ * @version 1.0
+ * @date 2021-07-15 2:59 上午
+ */
+public interface RemindApprovalTaskMapper extends BaseMapper<RemindApprovalTask> {
+}

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

@@ -871,7 +871,7 @@ public class PreventMistakeServiceImpl extends ServiceImpl<PreventMistakeMapper,
 		pmTaskRes.setStatus(onsiteTask.getStatus());
 		pmTaskRes.setTaskTime(onsiteTask.getTaskTime());
 		pmTaskRes.setRemindTaskFlag(onsiteTask.getRemindTaskFlag());
-		pmTaskRes.setRemindNoworkFalg(onsiteTask.getRemindNoworkFlag());
+		pmTaskRes.setRemindNoworkFlag(onsiteTask.getRemindNoworkFlag());
 		List<OnsiteItemResult> onsiteItemResultList = onsiteItemResultService.list(Wrappers.<OnsiteItemResult>lambdaQuery()
                 .eq(OnsiteItemResult::getOnsiteTaskId, onsiteTaskId));
 		pmTaskRes.setOnsiteItemResultList(onsiteItemResultList);

+ 0 - 60
application-facade/src/main/java/com/factory/websocket/WebSocketConfig.java

@@ -1,60 +0,0 @@
-package com.factory.websocket;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.TaskScheduler;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
-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.socket.TextMessage;
-import org.springframework.web.socket.WebSocketSession;
-import org.springframework.web.socket.config.annotation.EnableWebSocket;
-import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
-import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
-
-import java.io.IOException;
-
-@Configuration
-@EnableWebSocket
-@RestController
-@RequestMapping("/websocket")
-public class WebSocketConfig implements WebSocketConfigurer {
-
-    @GetMapping("/pushone")
-    public void pushone() throws IOException {
-        WebSocketSession session=WsSessionManager.get("123617832");
-        if(session!=null){
-            session.sendMessage(new TextMessage("test111111111111111111111111111啥地方啥地方回家"));
-        }
-
-    }
-
-    @Autowired
-    private WebSocketHandler webSocketHandler;
-    @Autowired
-    private WebSocketInterceptor webSocketInterceptor;
-
-    @Override
-    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
-        registry
-                .addHandler(webSocketHandler, "myWS/test")
-                .addInterceptors(webSocketInterceptor)
-                .setAllowedOrigins("*");
-    }
-
-    @Bean
-    public TaskScheduler taskScheduler(){
-        ThreadPoolTaskScheduler taskScheduler=new ThreadPoolTaskScheduler();
-        taskScheduler.setPoolSize(40);
-        taskScheduler.initialize();
-        return taskScheduler;
-    }
-
-//
-//    @Bean
-//    public ServerEndpointExporter serverEndpointExporter(){
-//        return new ServerEndpointExporter();
-//    }
-}

+ 0 - 66
application-facade/src/main/java/com/factory/websocket/WebSocketHandler.java

@@ -1,66 +0,0 @@
-package com.factory.websocket;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.socket.CloseStatus;
-import org.springframework.web.socket.TextMessage;
-import org.springframework.web.socket.WebSocketSession;
-import org.springframework.web.socket.handler.TextWebSocketHandler;
-
-@Component
-public class WebSocketHandler extends TextWebSocketHandler {
-
-    /**
-     * 建立成功事件
-     * @param session
-     * @throws Exception
-     */
-    @Override
-    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
-        Object token = session.getAttributes().get("token");
-        if (token != null) {
-            WsSessionManager.add(token.toString(), session);   // 用户连接成功,放入在线用户缓存  存储信息可以使用redis代替
-        } else {
-            throw new RuntimeException("用户登录已经失效!");
-        }
-    }
-
-
-    /**
-     * 接收消息事件
-     *
-     * @param session
-     * @param message
-     * @throws Exception
-     */
-    @Override
-    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
-        String payload = message.getPayload();
-        Object token = session.getAttributes().get("token");
-        session.sendMessage(new TextMessage("test"));
-    }
-
-    /**
-     * 关闭
-     * @param session
-     * @param status
-     * @throws Exception
-     */
-    @Override
-    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
-        Object token = session.getAttributes().get("token");
-        if (token != null) {
-            WsSessionManager.remove(token.toString());
-        }
-    }
-
-    /**
-     * 异常处理
-     * @param session
-     * @param exception
-     * @throws Exception
-     */
-    public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
-        WsSessionManager.removeAndClose(String.valueOf(session.getAttributes().get("token")));
-    }
-
-}

+ 0 - 43
application-facade/src/main/java/com/factory/websocket/WebSocketInterceptor.java

@@ -1,43 +0,0 @@
-package com.factory.websocket;
-
-import cn.hutool.http.HttpUtil;
-import org.springframework.http.server.ServerHttpRequest;
-import org.springframework.http.server.ServerHttpResponse;
-import org.springframework.stereotype.Component;
-import org.springframework.web.socket.WebSocketHandler;
-import org.springframework.web.socket.server.HandshakeInterceptor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 过来过滤安全确定 验证用户身份
- */
-@Component
-public class WebSocketInterceptor implements HandshakeInterceptor {
-
-    /**
-     *
-     * @param serverHttpRequest
-     * @param serverHttpResponse
-     * @param webSocketHandler
-     * @param map
-     * @return
-     * @throws Exception
-     */
-    @Override
-    public boolean beforeHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Map<String, Object> map) throws Exception {
-        HashMap<String, String> paramMap = HttpUtil.decodeParamMap(serverHttpRequest.getURI().getQuery(), "utf-8");
-        if (paramMap.get("token") != null) {
-            map.put("token", paramMap.get("token"));
-            map.put("userid", "11111");
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public void afterHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Exception e) {
-
-    }
-}

+ 0 - 55
application-facade/src/main/java/com/factory/websocket/WsSessionManager.java

@@ -1,55 +0,0 @@
-package com.factory.websocket;
-
-import org.springframework.web.socket.WebSocketSession;
-
-import java.io.IOException;
-import java.util.concurrent.ConcurrentHashMap;
-
-public class WsSessionManager {
-
-    private static ConcurrentHashMap<String, WebSocketSession> SESSION_POOL = new ConcurrentHashMap<>();
-    /**
-     * 添加 session
-     *
-     * @param key
-     */
-    public static void add(String key, WebSocketSession session) {
-        SESSION_POOL.put(key, session);
-    }
-
-    /**
-     * 删除 session,会返回删除的 session
-     *
-     * @param key
-     * @return
-     */
-    public static WebSocketSession remove(String key) {
-        return SESSION_POOL.remove(key);
-    }
-
-    /**
-     * 删除并同步关闭连接
-     *
-     * @param key
-     */
-    public static void removeAndClose(String key) {
-        WebSocketSession session = remove(key);
-        if (session != null) {
-            try {
-                session.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    /**
-     * 获得 session
-     *
-     * @param key
-     * @return
-     */
-    public static WebSocketSession get(String key) {
-        return SESSION_POOL.get(key);
-    }
-}

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

@@ -0,0 +1,32 @@
+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 1:25 上午
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class PlanApprovalTaskReq {
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "任务ID")
+    private Long taskId;
+
+    @ApiModelProperty(value = "审批状态")
+    private int status;
+
+    @ApiModelProperty(value = "审批意见")
+    private String reason;
+
+}

+ 4 - 0
application-facade/src/main/java/com/factory/wx/entity/req/PlanInfoReq.java

@@ -16,6 +16,10 @@ import lombok.NoArgsConstructor;
 @AllArgsConstructor
 @Builder
 public class PlanInfoReq {
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
     @ApiModelProperty(value = "计划Id")
     private Long planId;
 

+ 31 - 0
application-facade/src/main/java/com/factory/wx/entity/req/ReminderReq.java

@@ -0,0 +1,31 @@
+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 2:32 上午
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ReminderReq {
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "计划名称")
+    private String name;
+
+    @ApiModelProperty(value = "计划提醒页号")
+    private int page;
+
+    @ApiModelProperty(value = "计划提醒每页数量")
+    private int size;
+}

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

@@ -0,0 +1,37 @@
+package com.factory.wx.entity.res;
+
+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 9:09 下午
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class PlanApprovalTaskRes {
+
+    @ApiModelProperty(value = "任务Id")
+    private Long onsiteTaskId;
+
+    @ApiModelProperty(value = "审批状态:0初始化,1放行,2不放行")
+    private int status;
+
+    @ApiModelProperty(value = "OP")
+    private String wsName;
+
+    @ApiModelProperty(value = "内容")
+    private String itemContent;
+
+    @ApiModelProperty(value = "巡检0 通过  1 不通过")
+    private int result;
+
+    @ApiModelProperty(value = "0 日巡检  1 周巡检  2 月巡检")
+    private int typeFlag;
+}

+ 2 - 0
application-facade/src/main/java/com/factory/wx/entity/res/PlanPassDetailRes.java

@@ -35,4 +35,6 @@ public class PlanPassDetailRes {
     private OnsiteTitle titleInfo;
     @ApiModelProperty(value = "计划基本信息")
     private List<OnsiteCalendar> onsiteCalendars;
+    @ApiModelProperty(value = "待审批任务")
+    List<PlanApprovalTaskRes> planApprovalTasks;
 }

+ 15 - 0
application-facade/src/main/java/com/factory/wx/mapper/PlanMapper.java

@@ -1,6 +1,7 @@
 package com.factory.wx.mapper;
 
 import com.factory.wx.entity.res.PlanApprovalRes;
+import com.factory.wx.entity.res.PlanApprovalTaskRes;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -12,5 +13,19 @@ import java.util.List;
  */
 @Mapper
 public interface PlanMapper {
+    /**
+     * 获取待审批计划列表
+     *
+     * @param userId
+     * @return
+     */
     List<PlanApprovalRes> getApprovalList(Long userId);
+
+    /**
+     * 获取待审批任务列表
+     *
+     * @param userId
+     * @return
+     */
+    List<PlanApprovalTaskRes> getApprovalTaskList(Long userId);
 }

+ 17 - 4
application-facade/src/main/java/com/factory/wx/service/PlanService.java

@@ -3,10 +3,7 @@ package com.factory.wx.service;
 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.wx.entity.req.PassListReq;
-import com.factory.wx.entity.req.PlanApprovalReq;
-import com.factory.wx.entity.req.PlanInfoReq;
-import com.factory.wx.entity.req.PlanListReq;
+import com.factory.wx.entity.req.*;
 import com.factory.wx.entity.res.PlanApprovalDetailRes;
 import com.factory.wx.entity.res.PlanApprovalRes;
 import com.factory.wx.entity.res.PlanPassDetailRes;
@@ -66,4 +63,20 @@ public interface PlanService {
      * @return
      */
     PlanPassDetailRes getPassDetail(PlanInfoReq planInfoReq);
+
+    /**
+     * 计划放行
+     *
+     * @param planApprovalTaskReq
+     * @return
+     */
+    ResponseBean approvalTaskOperate(PlanApprovalTaskReq planApprovalTaskReq);
+
+    /**
+     * 获得计划提醒列表
+     *
+     * @param reminderReq
+     * @return
+     */
+    PageBean<BentelerPlan> getReminderListByPage(ReminderReq reminderReq);
 }

+ 95 - 4
application-facade/src/main/java/com/factory/wx/service/impl/PlanServiceImpl.java

@@ -16,12 +16,10 @@ import com.factory.web.entity.pm.res.ApprovalUserRes;
 import com.factory.web.mapper.BentelerPlanMapper;
 import com.factory.web.mapper.pm.*;
 import com.factory.web.service.pm.PreventMistakeService;
-import com.factory.wx.entity.req.PassListReq;
-import com.factory.wx.entity.req.PlanApprovalReq;
-import com.factory.wx.entity.req.PlanInfoReq;
-import com.factory.wx.entity.req.PlanListReq;
+import com.factory.wx.entity.req.*;
 import com.factory.wx.entity.res.PlanApprovalDetailRes;
 import com.factory.wx.entity.res.PlanApprovalRes;
+import com.factory.wx.entity.res.PlanApprovalTaskRes;
 import com.factory.wx.entity.res.PlanPassDetailRes;
 import com.factory.wx.mapper.PlanMapper;
 import com.factory.wx.service.PlanService;
@@ -48,6 +46,10 @@ public class PlanServiceImpl implements PlanService {
      * 审批规则类型为:1新建计划审批
      */
     private static int APPROVAL_TYPE_NEW = 1;
+    /**
+     * 审批规则类型为:3防错
+     */
+    private static int APPROVAL_TYPE_PM = 3;
     @Autowired
     private PlanMapper planMapper;
     @Autowired
@@ -71,6 +73,8 @@ public class PlanServiceImpl implements PlanService {
     private OnsiteApprovalTaskMapper onsiteApprovalTaskMapper;
     @Autowired
     private OnsiteTaskMapper onsiteTaskMapper;
+    @Autowired
+    private RemindApprovalTaskMapper remindApprovalTaskMapper;
 
     private static IPage<BentelerPlan> getBentelerPlanIPage(PassListReq passListReq, List<OnsiteCalendar> onsiteCalendarList, BentelerPlanMapper bentelerPlanMapper) {
         IPage<BentelerPlan> bentelerPlanIPage;
@@ -78,6 +82,7 @@ public class PlanServiceImpl implements PlanService {
 
         LambdaQueryWrapper<BentelerPlan> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(BentelerPlan::getId, planIds);
+        wrapper.eq(BentelerPlan::getPlanType, passListReq.getCheckType());
 
         if (StringUtils.isNotEmpty(passListReq.getName())) {
             wrapper.like(BentelerPlan::getName, passListReq.getName());
@@ -263,6 +268,7 @@ public class PlanServiceImpl implements PlanService {
 
         //获取title
         OnsiteTitle title = preventMistakeService.getTitle(planInfoReq.getPlanId());
+        List<PlanApprovalTaskRes> planApprovalTaskResList = planMapper.getApprovalTaskList(planInfoReq.getUserId());
 
         PlanPassDetailRes planPassDetailRes = PlanPassDetailRes.builder()
                 .planId(bentelerPlan.getId())
@@ -271,8 +277,93 @@ public class PlanServiceImpl implements PlanService {
                 .usersName(usersName)
                 .titleInfo(title)
                 .onsiteCalendars(onsiteCalendarList)
+                .planApprovalTasks(planApprovalTaskResList)
                 .build();
         return planPassDetailRes;
     }
 
+    /**
+     * 计划放行
+     *
+     * @param planApprovalTaskReq
+     * @return
+     */
+    @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()));
+        if (updateStatus > 0) {
+            //审批不通过触发下一级别
+            if (planApprovalTaskReq.getStatus() == 2) {
+                ApprovalRule approvalRuleMaxLevel = approvalRuleMapper.selectOne(Wrappers.<ApprovalRule>lambdaQuery()
+                        .eq(ApprovalRule::getType, APPROVAL_TYPE_PM)
+                        .orderByDesc(ApprovalRule::getApprovalLevel)
+                        .last("limit 1"));
+                //获取当前审批级别
+                OnsiteApprovalTask onsiteApprovalTask = onsiteApprovalTaskMapper.selectOne(Wrappers.<OnsiteApprovalTask>lambdaQuery()
+                        .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
+                        .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()).last("limit 1"));
+                int userLevel = onsiteApprovalTask.getApprovalLevel();
+                if (userLevel < approvalRuleMaxLevel.getApprovalLevel()) {
+                    ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(userLevel + 1, APPROVAL_TYPE_PM);
+                    onsiteApprovalTaskMapper.insert(OnsiteApprovalTask.builder()
+                            .onsiteTaskId(onsiteApprovalTask.getOnsiteTaskId())
+                            .approvalLevel(approvalUserRes.getApprovalLevel())
+                            .approvalUserId(approvalUserRes.getUserId())
+                            .status(0)
+                            .build());
+                }
+            }
+            //审批通过
+            if (planApprovalTaskReq.getStatus() == 1) {
+                //审批通过,保存审批历史
+                preventMistakeService.getApprovalUserInfo(1, APPROVAL_TYPE_PM);
+            }
+        }
+
+        return ResponseBeanBuilder.ok();
+    }
+
+    /**
+     * 获取计划提醒列表
+     *
+     * @param reminderReq
+     * @return
+     */
+    @Override
+    public PageBean<BentelerPlan> getReminderListByPage(ReminderReq reminderReq) {
+        LambdaQueryWrapper<RemindApprovalTask> remindApprovalTaskWrapper = new LambdaQueryWrapper<>();
+        remindApprovalTaskWrapper.eq(RemindApprovalTask::getApprovalUserId, reminderReq.getUserId());
+
+        List<RemindApprovalTask> remindApprovalTaskList = remindApprovalTaskMapper.selectList(remindApprovalTaskWrapper);
+
+        IPage<BentelerPlan> bentelerPlanIPage = new Page<>();
+        if (CollUtil.isNotEmpty(remindApprovalTaskList)) {
+            List<Long> taskIds = remindApprovalTaskList.stream().map(RemindApprovalTask::getTaskId).collect(Collectors.toList());
+            List<OnsiteTask> onsiteTaskList = onsiteTaskMapper.selectBatchIds(taskIds);
+            List<Long> calendarIds = onsiteTaskList.stream().map(OnsiteTask::getOnsiteCalendarId).collect(Collectors.toList());
+            List<OnsiteCalendar> onsiteCalendarList = onsiteCalendarMapper.selectBatchIds(calendarIds);
+            List<Long> planIds = onsiteCalendarList.stream().map(OnsiteCalendar::getBentelerPlanId).collect(Collectors.toList());
+
+            IPage<BentelerPlan> page = new Page<>(reminderReq.getPage(), reminderReq.getSize());
+            LambdaQueryWrapper<BentelerPlan> wrapper = new LambdaQueryWrapper<>();
+            wrapper.in(BentelerPlan::getId, planIds);
+
+            bentelerPlanIPage = bentelerPlanMapper.selectPage(page, wrapper);
+        }
+
+        return PageBean.<BentelerPlan>builder()
+                .row(bentelerPlanIPage.getRecords())
+                .total(bentelerPlanIPage.getTotal())
+                .page(bentelerPlanIPage.getPages())
+                .build();
+
+    }
+
 }

+ 36 - 0
application-facade/src/main/resources/mapper/PlanMapper.xml

@@ -35,5 +35,41 @@
     <!--		  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>

+ 6 - 1
common-user/src/main/java/com/factory/user/service/impl/UsersServiceImpl.java

@@ -38,9 +38,14 @@ public class UsersServiceImpl extends ServiceImpl<UsersMapper, UserInfo> impleme
         client = client.toUpperCase();
         String psd = Base64.encode(password.getBytes());
         UserVo userVo = this.baseMapper.getUserByUsername(username);
-        if(BeanUtil.isEmpty(userVo)) {
+
+        if (null == userVo){
            return ResponseBeanBuilder.fail(ResponseEnum.USERNAME_NOT_FOND.getMessage());
         }
+        //TODO 暂时注掉
+//        if(BeanUtil.isEmpty(userVo)) {
+//           return ResponseBeanBuilder.fail(ResponseEnum.USERNAME_NOT_FOND.getMessage());
+//        }
         if (userVo.isLock()) {
            return ResponseBeanBuilder.fail(ResponseEnum.USER_STOP.getMessage());
         }