|
@@ -1,14 +1,21 @@
|
|
package com.iamberry.rst.controllers.approval;
|
|
package com.iamberry.rst.controllers.approval;
|
|
|
|
|
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.iamberry.rst.core.approval.*;
|
|
import com.iamberry.rst.core.approval.*;
|
|
|
|
+import com.iamberry.rst.core.page.PageRequest;
|
|
import com.iamberry.rst.core.page.PagedResult;
|
|
import com.iamberry.rst.core.page.PagedResult;
|
|
|
|
+import com.iamberry.rst.core.sys.Admin;
|
|
import com.iamberry.rst.faces.approval.ApprovalOrderService;
|
|
import com.iamberry.rst.faces.approval.ApprovalOrderService;
|
|
import com.iamberry.rst.faces.approval.ApprovalTaskService;
|
|
import com.iamberry.rst.faces.approval.ApprovalTaskService;
|
|
|
|
+import com.iamberry.rst.faces.sys.SysService;
|
|
|
|
+import com.iamberry.wechat.core.entity.WechatUtils;
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
import com.iamberry.wechat.tools.ResponseJson;
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
import com.iamberry.wechat.tools.ResultInfo;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
@@ -19,18 +26,20 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile;
|
|
import javax.servlet.ServletContext;
|
|
import javax.servlet.ServletContext;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Date;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* Created by Administrator on 2018/10/9.
|
|
* Created by Administrator on 2018/10/9.
|
|
*/
|
|
*/
|
|
|
|
+
|
|
|
|
+@Controller
|
|
|
|
+@RequestMapping("/wechat/approval")
|
|
public class ApprovalController {
|
|
public class ApprovalController {
|
|
private ApprovalOrderService approvalOrderService;
|
|
private ApprovalOrderService approvalOrderService;
|
|
@Autowired
|
|
@Autowired
|
|
private ApprovalTaskService approvalTaskService;
|
|
private ApprovalTaskService approvalTaskService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysService sysService;
|
|
/**
|
|
/**
|
|
* 新增审批信息
|
|
* 新增审批信息
|
|
* @param request
|
|
* @param request
|
|
@@ -38,11 +47,16 @@ public class ApprovalController {
|
|
* @param productionItems
|
|
* @param productionItems
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @RequestMapping(value = "/addApproval")
|
|
public ResponseJson addApproval(HttpServletRequest request, ApprovalProduction approvalProduction, String productionItems,String productionContracts){
|
|
public ResponseJson addApproval(HttpServletRequest request, ApprovalProduction approvalProduction, String productionItems,String productionContracts){
|
|
ResponseJson rj =new ResponseJson(200, "添加成功", 200);
|
|
ResponseJson rj =new ResponseJson(200, "添加成功", 200);
|
|
if (approvalProduction == null || productionItems == null) {
|
|
if (approvalProduction == null || productionItems == null) {
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
|
|
+ //获取openid,根据openid查询当前登录人信息
|
|
|
|
+ String openId = WechatUtils.getUserBySession(request).getUserOpenid();
|
|
|
|
+
|
|
//获取审批任务id
|
|
//获取审批任务id
|
|
Map<String, Object> taskinfo = approvalTaskService.salesmanSubmitApply(1);
|
|
Map<String, Object> taskinfo = approvalTaskService.salesmanSubmitApply(1);
|
|
|
|
|
|
@@ -73,7 +87,7 @@ public class ApprovalController {
|
|
listProductionContract.add(contractInfo);
|
|
listProductionContract.add(contractInfo);
|
|
}
|
|
}
|
|
|
|
|
|
- boolean returnValue = approvalOrderService.insertApprovalProduction(approvalProduction,listApprovalProductionItem,listProductionContract,taskinfo);
|
|
|
|
|
|
+ boolean returnValue = approvalOrderService.insertApprovalProduction(approvalProduction,listApprovalProductionItem,listProductionContract,taskinfo,openId);
|
|
if(!returnValue){
|
|
if(!returnValue){
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
@@ -122,24 +136,39 @@ public class ApprovalController {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 查询待审批/我发起的 列表
|
|
|
|
|
|
+ * 查询我发起的/我审核的列表
|
|
* @param approvalInfo
|
|
* @param approvalInfo
|
|
* @param pageSize
|
|
* @param pageSize
|
|
* @param pageNO
|
|
* @param pageNO
|
|
* @param totalNum
|
|
* @param totalNum
|
|
|
|
+ * @param selectType 1.我发起的 2.我审核的
|
|
* @return
|
|
* @return
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RequestMapping(value = "/approvalInfoList")
|
|
@RequestMapping(value = "/approvalInfoList")
|
|
- public ResponseJson listApprovalInfo(
|
|
|
|
- ApprovalInfo approvalInfo,
|
|
|
|
|
|
+ public ResponseJson listApprovalInfo(HttpServletRequest request,
|
|
|
|
+ ApprovalInfo approvalInfo,Integer selectType,
|
|
@RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
|
|
@RequestParam(value = "pageSize", defaultValue = "10", required = false) Integer pageSize,
|
|
@RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
|
|
@RequestParam(value = "pageNO", defaultValue = "1", required = false) Integer pageNO,
|
|
@RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
|
|
@RequestParam(value = "totalNum", defaultValue = "0", required = false) Integer totalNum) throws Exception {
|
|
ResponseJson rj =new ResponseJson(200, "查询成功", 200);
|
|
ResponseJson rj =new ResponseJson(200, "查询成功", 200);
|
|
-
|
|
|
|
|
|
+ //获取openid,根据openid查询当前登录人信息
|
|
|
|
+ String openId = WechatUtils.getUserBySession(request).getUserOpenid();
|
|
|
|
+ Admin admin = sysService.getByOpenid(openId);
|
|
|
|
+ if(admin == null){
|
|
|
|
+ return new ResponseJson(200, "未查询到登录人信息", 500);
|
|
|
|
+ }
|
|
|
|
+ if(selectType == null){
|
|
|
|
+ return new ResponseJson(200, "参数不完整,缺少查询类型字段", 500);
|
|
|
|
+ }
|
|
|
|
+ if(selectType == 1){//我发起的
|
|
|
|
+ approvalInfo.setAdminId(admin.getAdminId());
|
|
|
|
+ }else if(selectType == 2){//我审核的
|
|
|
|
+ approvalInfo.setApprovalAdminId(admin.getAdminId());
|
|
|
|
+ }
|
|
PagedResult<ApprovalInfo> pagedResult = approvalOrderService.listApprovalInfo(pageNO, pageSize,approvalInfo,totalNum == null);
|
|
PagedResult<ApprovalInfo> pagedResult = approvalOrderService.listApprovalInfo(pageNO, pageSize,approvalInfo,totalNum == null);
|
|
|
|
+
|
|
if (totalNum != 0) {
|
|
if (totalNum != 0) {
|
|
pagedResult.setTotal(totalNum);
|
|
pagedResult.setTotal(totalNum);
|
|
}
|
|
}
|
|
@@ -156,56 +185,154 @@ public class ApprovalController {
|
|
*/
|
|
*/
|
|
@ResponseBody
|
|
@ResponseBody
|
|
@RequestMapping(value = "/updateApprovalInfo")
|
|
@RequestMapping(value = "/updateApprovalInfo")
|
|
- public ResponseJson updateApprovalInfo(
|
|
|
|
|
|
+ public ResponseJson updateApprovalInfo(HttpServletRequest request,
|
|
ApprovalInfo approvalInfo,Integer status) throws Exception {
|
|
ApprovalInfo approvalInfo,Integer status) throws Exception {
|
|
ResponseJson rj =new ResponseJson(200, "操作成功", 200);
|
|
ResponseJson rj =new ResponseJson(200, "操作成功", 200);
|
|
if(status == null){
|
|
if(status == null){
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
|
|
+ if(approvalInfo == null){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ //获取openid,根据openid查询当前登录人信息
|
|
|
|
+ String openId = WechatUtils.getUserBySession(request).getUserOpenid();
|
|
|
|
+ Admin admin = sysService.getByOpenid(openId);
|
|
|
|
+ if(admin == null){
|
|
|
|
+ return new ResponseJson(200, "未查询到登录人信息", 500);
|
|
|
|
+ }
|
|
|
|
+ //审批历史记录封装
|
|
HistoricalRecord historicalRecord = new HistoricalRecord();
|
|
HistoricalRecord historicalRecord = new HistoricalRecord();
|
|
historicalRecord.setApprovalId(approvalInfo.getApprovalId());
|
|
historicalRecord.setApprovalId(approvalInfo.getApprovalId());
|
|
- historicalRecord.setAdminId(1);
|
|
|
|
|
|
+ historicalRecord.setAdminId(admin.getAdminId());
|
|
|
|
+ historicalRecord.setApprovalTime(new Date());
|
|
|
|
+ //流程信息封装
|
|
|
|
+ ProcessInfo processInfo = new ProcessInfo();
|
|
|
|
+ processInfo.setAdminId(admin.getAdminId());
|
|
|
|
+ processInfo.setApprovalId(approvalInfo.getApprovalId());
|
|
|
|
+ processInfo.setProcessDesc(approvalInfo.getApprovalDetails());
|
|
|
|
+ //审批信息封装
|
|
|
|
+ ApprovalInfo info = new ApprovalInfo();
|
|
|
|
+ info.setApprovalId(approvalInfo.getApprovalId());
|
|
switch (status){
|
|
switch (status){
|
|
case 1:
|
|
case 1:
|
|
-
|
|
|
|
- //查询当前审核人当前审核任务信息
|
|
|
|
- HistoricalRecord record = approvalOrderService.getHistoricalRecord(historicalRecord);
|
|
|
|
- if(record == null){
|
|
|
|
- return ResponseJson.getFAILURE();
|
|
|
|
- }
|
|
|
|
//修改审核历史记录状态为已通过
|
|
//修改审核历史记录状态为已通过
|
|
historicalRecord.setRecordState(2);
|
|
historicalRecord.setRecordState(2);
|
|
if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
|
|
if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
|
|
+ //查询当前审核人当前审核任务信息
|
|
|
|
+ HistoricalRecord record = approvalOrderService.getHistoricalRecord(historicalRecord);
|
|
|
|
+ if(record == null){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
//获取下一个审核人,并添加审核历史信息
|
|
//获取下一个审核人,并添加审核历史信息
|
|
Map<String, Object> taskMap = approvalTaskService.completeTask(approvalInfo.getActivitiId(),record.getTaskId());
|
|
Map<String, Object> taskMap = approvalTaskService.completeTask(approvalInfo.getActivitiId(),record.getTaskId());
|
|
if(taskMap == null){
|
|
if(taskMap == null){
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
- if((Integer)taskMap.get("status") == 1){//没有下一个审批人,修改审批任务状态为已审批通过
|
|
|
|
-
|
|
|
|
- }else if((Integer)taskMap.get("status") == 0){//还有下一个审批人,需要增加审批历史记录
|
|
|
|
|
|
+ if(taskMap.get("status") == 1){//没有下一个审批人,修改审批任务状态为已审批通过
|
|
|
|
+ info.setApprovalStatus(2);
|
|
|
|
+ if(approvalOrderService.updateApprovalInfo(info) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ }else if(taskMap.get("status") == 0){//还有下一个审批人,需要增加审批历史任务
|
|
|
|
+ if(taskMap.get("users") == null){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ String[] split = taskMap.get("users").toString().split(",");
|
|
|
|
+ for (String name : split){
|
|
|
|
+ //通过name查询管理员id
|
|
|
|
+ Admin approvalAdmin = sysService.getByName(name);
|
|
|
|
+ if(approvalAdmin == null){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ HistoricalRecord recordInfo = new HistoricalRecord();
|
|
|
|
+ recordInfo.setApprovalId(approvalInfo.getApprovalId());
|
|
|
|
+ recordInfo.setAdminId(approvalAdmin.getAdminId());
|
|
|
|
+ recordInfo.setRecordState(1);
|
|
|
|
+ recordInfo.setTaskId(taskMap.get("taskId").toString());
|
|
|
|
+ if(approvalOrderService.insertHistoricalRecord(recordInfo) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ //修改审核信息表
|
|
|
|
+ info.setApprovalStatusDetails("待"+name+"审批");
|
|
|
|
+ if(approvalOrderService.updateApprovalInfo(info) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //添加流程信息记录
|
|
|
|
+ processInfo.setProcessState(2);
|
|
|
|
+ if(approvalOrderService.insertProcessInfo(processInfo) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case 2:
|
|
case 2:
|
|
- //修改状态为已驳回
|
|
|
|
|
|
+ //修改历史记录状态为已驳回
|
|
historicalRecord.setRecordState(3);
|
|
historicalRecord.setRecordState(3);
|
|
if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
|
|
if(approvalOrderService.updateHistoricalRecord(historicalRecord) < 1){
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
- ApprovalInfo approvalinfo = new ApprovalInfo();
|
|
|
|
- approvalinfo.setApprovalId(approvalInfo.getApprovalId());
|
|
|
|
- approvalinfo.setApprovalStatus(3);
|
|
|
|
- if(approvalOrderService.updateApprovalInfo(approvalinfo) < 1){
|
|
|
|
|
|
+ info.setApprovalStatus(3);
|
|
|
|
+ if(approvalOrderService.updateApprovalInfo(info) < 1){
|
|
return ResponseJson.getFAILURE();
|
|
return ResponseJson.getFAILURE();
|
|
}
|
|
}
|
|
//添加流程信息记录
|
|
//添加流程信息记录
|
|
|
|
+ processInfo.setProcessState(3);
|
|
|
|
+ if(approvalOrderService.insertProcessInfo(processInfo) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //调用第三方revokeTask接口执行撤销
|
|
|
|
+ approvalTaskService.revokeTask(approvalInfo.getActivitiId(),"审批人驳回审核");
|
|
|
|
+ break;
|
|
|
|
+ case 3:
|
|
|
|
+ //修改审批信息状态为撤销
|
|
|
|
+ info.setApprovalStatus(9);
|
|
|
|
+ if(approvalOrderService.updateApprovalInfo(info) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ //删除该审批的历史记录
|
|
|
|
+ approvalOrderService.deleteHistoricalRecord(approvalInfo.getApprovalId());
|
|
|
|
|
|
|
|
+ //添加流程信息记录
|
|
|
|
+ processInfo.setProcessState(4);
|
|
|
|
+ if(approvalOrderService.insertProcessInfo(processInfo) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ //调用第三方revokeTask接口执行撤销
|
|
|
|
+ approvalTaskService.revokeTask(approvalInfo.getActivitiId(),"业务员撤销审核");
|
|
|
|
+ break;
|
|
|
|
+ case 4:
|
|
|
|
+ //添加评论内容到流程信息表,不用修改任何状态
|
|
|
|
+ processInfo.setProcessState(0);
|
|
|
|
+ if(approvalOrderService.insertProcessInfo(processInfo) < 1){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
return rj;
|
|
return rj;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询审批订单详情
|
|
|
|
+ * @param approvalInfo
|
|
|
|
+ * @return
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @RequestMapping(value = "/getApprovalInfo")
|
|
|
|
+ public ResponseJson getApprovalInfo(HttpServletRequest request,
|
|
|
|
+ ApprovalInfo approvalInfo) throws Exception {
|
|
|
|
+ ResponseJson rj =new ResponseJson(200, "查询成功", 200);
|
|
|
|
+ if(approvalInfo == null){
|
|
|
|
+ return ResponseJson.getFAILURE();
|
|
|
|
+ }
|
|
|
|
+ List<ApprovalInfo> info = approvalOrderService.getApprovalInfo(approvalInfo);
|
|
|
|
+ rj.addResponseKeyValue("approvalInfo",info);
|
|
|
|
+ return rj;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|