Commit 0399f36b by jiang'yun

修改

parent 60d42294
......@@ -40,6 +40,9 @@
<logback.version>1.2.13</logback.version>
<spring-security.version>5.7.12</spring-security.version>
<spring-framework.version>5.3.39</spring-framework.version>
<activiti-spring-boot-starter.version>7.1.0.M6</activiti-spring-boot-starter.version>
<batik-transcoder.version>1.17</batik-transcoder.version>
<batik-codec.version>1.17</batik-codec.version>
</properties>
<dependencies>
......@@ -323,6 +326,60 @@
<artifactId>httpclient5</artifactId>
</dependency>
<!-- activiti -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>${activiti-spring-boot-starter.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator-autoconfigure</artifactId>
</exclusion>
<exclusion>
<artifactId>mybatis</artifactId>
<groupId>org.mybatis</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- activiti json 转换器 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>${activiti-spring-boot-starter.version}</version>
</dependency>
<!-- 流程图预览 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-image-generator</artifactId>
<version>${activiti-spring-boot-starter.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-awt-util</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-dom</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svggen</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 流程图设计 -->
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-transcoder</artifactId>
<version>${batik-transcoder.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>${batik-codec.version}</version>
</dependency>
</dependencies>
......
......@@ -208,4 +208,5 @@ public interface ISysUserService
List<String> selectUserLoginNamesByRoleKeyDept(Long secondaryUnit, String lcsp1);
List<String> selectUserLoginNamesByRoleKeyDept2(Long secondaryUnit, String s);
}
......@@ -557,6 +557,19 @@ public class SysUserServiceImpl implements ISysUserService
public List<String> selectUserLoginNamesByRoleKeyDept(Long deptId, String roleKey) {
List<SysUser> userList=userMapper.selectUserLoginNamesByRoleKeyDept(deptId,roleKey);
List<String> collect = userList.stream().map(SysUser::getUserName).collect(Collectors.toList());
if(collect.size()==0){
collect.add("chenggq58");
}
return collect;
}
@Override
public List<String> selectUserLoginNamesByRoleKeyDept2(Long deptId, String roleKey) {
List<SysUser> userList=userMapper.selectUserLoginNamesByRoleKeyDept(deptId,roleKey);
List<String> collect = userList.stream().map(SysUser::getNickName).collect(Collectors.toList());
if(collect.size()==0){
collect.add("成冠琪");
}
return collect;
}
}
......@@ -46,6 +46,7 @@ public class BizTodoItemController extends BaseController
startPage();
bizTodoItem.setIsHandle("0");
bizTodoItem.setTodoUserId(SecurityUtils.getUsername());
bizTodoItem.setOrderBy("todo_time");
List<BizTodoItem> list = bizTodoItemService.selectBizTodoItemList(bizTodoItem);
return getDataTable(list);
}
......@@ -57,6 +58,7 @@ public class BizTodoItemController extends BaseController
startPage();
bizTodoItem.setIsHandle("1");
bizTodoItem.setTodoUserId(SecurityUtils.getUsername());
bizTodoItem.setOrderBy("handle_time");
List<BizTodoItem> list = bizTodoItemService.selectBizTodoItemList(bizTodoItem);
return getDataTable(list);
}
......
package com.zjsgfa.project.zjsgfa.controller;
import com.zjsgfa.common.utils.DateUtils;
import com.zjsgfa.common.utils.SecurityUtils;
import com.zjsgfa.common.utils.ServletUtils;
import com.zjsgfa.common.utils.StringUtils;
import com.zjsgfa.framework.web.domain.AjaxResult;
import com.zjsgfa.project.system.domain.SysDept;
import com.zjsgfa.project.system.mapper.SysDeptMapper;
import com.zjsgfa.project.system.service.ISysUserService;
import com.zjsgfa.project.zjsgfa.domain.BizTodoItem;
import com.zjsgfa.project.zjsgfa.domain.SjDjjc;
import com.zjsgfa.project.zjsgfa.mapper.SjDjjcMapper;
import com.zjsgfa.project.zjsgfa.service.IBizTodoItemService;
import com.zjsgfa.project.zjsgfa.service.ProcessService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.xml.ws.soap.Addressing;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/sjdjlc")
public class DjjcLcController
{
//流程id
private String processDefinitionKey="_e666525e-07bb-11f1-9537-803049cc3d25";
//钻井液
private String processDefinitionKeyZjy="_f2e34959-07db-11f1-9537-803049cc3d25";
private String processTrend = "flowTrend";
/** 流程节点 任务书编辑 参数名 */
private String taskEditParamName = "editor";
private String Complete_Module = "system/sjdjlc";
/** 流程节点 审核节点 审核人 参数名 */
private String paramName_audit_user = "assigneeList";
public static final String GC_AQSP = "gc_aqsp";
/**
* 工程_站长审批
*/
public static final String GC_ZZSP = "gc_zzsp";
/**
* 工程_专家审批
*/
public static final String GC_ZJSP = "gc_zjsp";
/**
* 工程_首席专家
*/
public static final String GC_SXZJ = "gc_sxzj";
/**
* 工程_分管领导
*/
public static final String GC_FGLD = "gc_fgld";
/**
* 钻井液_安全审批
*/
public static final String ZJY_AQSP = "zjy_aqsp";
/**
* 钻井液_站长审批
*/
public static final String ZJY_ZZSP = "zjy_zzsp";
/**
* 钻井液_专家审批
*/
public static final String ZJY_ZJSP = "zjy_zjsp";
/**
* 钻井液_首席专家
*/
public static final String ZJY_SXZJ = "zjy_sxzj";
/**
* 钻井液_分管领导
*/
public static final String ZJY_FGLD = "zjy_fgld";
@Autowired
private SjDjjcMapper sjDjjcMapper;
@Autowired
RuntimeService runtimeService;
@Autowired
private TaskService taskService;
@Autowired
private ISysUserService userService;
@Autowired
private SysDeptMapper sysDeptMapper;
@Autowired
private IBizTodoItemService bizTodoItemService;
@Autowired
private ProcessService processService;
/**
* 根据流程id查询详情
* @param instanceId
* @return
*/
@GetMapping("/getInfo/{instanceId}")
public AjaxResult getInfo(@PathVariable("instanceId") String instanceId)
{
SjDjjc sjDjjc = sjDjjcMapper.selectSjDjjcByinstanceId(instanceId);
return AjaxResult.success(sjDjjc);
}
/**
* 根据流程id查询详情
* @param instanceId
* @return
*/
@GetMapping("/getInfoZjy/{instanceId}")
public AjaxResult getInfoZjy(@PathVariable("instanceId") String instanceId)
{
SjDjjc sjDjjc = sjDjjcMapper.selectSjDjjcByinstanceIdZjy(instanceId);
return AjaxResult.success(sjDjjc);
}
@GetMapping("/submitApply")
public AjaxResult getDjjcLc(Long ID)
{
SjDjjc sjDjjc = sjDjjcMapper.selectSjDjjcById(ID);
String businessKey = sjDjjc.getId().toString();
String applyUserId=SecurityUtils.getUsername();
String itemName = "工程方案审核";
String itemContent = sjDjjc.getJh()+"工程方案审核";
Map<String,Object> variables=new HashMap<>();
// 设置下一节点处理人
// 下一节点任务书编辑 处理人为提交者
variables.put(taskEditParamName, applyUserId); // 设置下一节点审核人 设置userId
// 启动流程时设置业务 key
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables);
String processInstanceId = instance.getId();
sjDjjc.setInstanceId(processInstanceId); // 建立双向关系
sjDjjc.setApplyUser(applyUserId);
sjDjjc.setApplyTime(DateUtils.getNowDate());
sjDjjc.setProcessStatus("审核中");//流程状态1 已经提交
sjDjjc.setType(processDefinitionKey);//流程定义key
sjDjjcMapper.updateSjDjjc(sjDjjc);
String comment = "";
// 下一节点处理人待办事项
bizTodoItemService.insertTodoItem(instance.getProcessInstanceId(), itemName, itemContent, Complete_Module,comment);
autoCompleteFirstSubmit(applyUserId, processDefinitionKey, processInstanceId, sjDjjc);
return AjaxResult.success();
}
/**
* 完成任务
* @param sjDjjc
* @return
*/
@PostMapping("/complete")
public AjaxResult complete(@RequestBody SjDjjc sjDjjc) {
try {
SjDjjc entity = sjDjjcMapper.selectSjDjjcByinstanceId(sjDjjc.getInstanceId());
String taskId = sjDjjc.getTaskId();
String instanceId = sjDjjc.getInstanceId();
// 使用任务ID,查询任务对象
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取当前节点 活动id
String act_id = task.getTaskDefinitionKey();
// 获取审核用户选择的走向 同意 退修 驳回
String flowTrendOption = sjDjjc.getFlowTrendOption();
// 流程的显示标题 取课题名称接后缀任务书审核
String itemName = "工程方案审核";
String itemContent = entity.getJh()+"工程方案审核";
// 审核节点每次提交,需要更新业务表信息
SjDjjc tmpProject = new SjDjjc();
tmpProject.setId(entity.getId());
// 获取流程发起人、和所属部门id
String applyUserId = entity.getApplyUser();
Long applyUserDeptId = userService.selectUserByLoginName(applyUserId).getDeptId();
SysDept sysDept = sysDeptMapper.selectDeptById(applyUserDeptId);
Long secondaryUnit = getSecondaryUnit(applyUserDeptId, sysDept.getAncestors());
if(secondaryUnit==null){
secondaryUnit=applyUserDeptId;
}
Map<String,Object> variables =new HashMap<>();
String ndxsjg = entity.getNdxsjg();
if(StringUtils.isEmpty(ndxsjg)){
ndxsjg="3";
}
// 先判断走向
if ("back".equals(flowTrendOption)) { // 退修
variables.put(processTrend, "退修");
// 下一节点任务书编辑 处理人为提交者
variables.put(taskEditParamName, entity.getApplyUser()); // 设置下一节点审核人 设置userId
// 更新 驳回原因字段 存放退修原因
tmpProject.setRefuseContent(sjDjjc.getP_COM_comment());
tmpProject.setProcessStatus("退修");
sjDjjcMapper.updateSjDjjcById(tmpProject);
} else if ("true".equals(flowTrendOption)) { // 同意
variables.put(processTrend, "同意");
// 根据当前不同的节点,下一节点不同,需要设置的处理人不同
// 下一节点审核节点 处理人为根据角色code取多人 一人处理即可通过
if (GC_AQSP.equals(act_id)) {//当前节点 安全审批
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,GC_AQSP);
variables.put(paramName_audit_user, assignee);
}else if (GC_ZZSP.equals(act_id)) {//当前节点 站长审批
if(ndxsjg.equals("3")){
variables.put(processTrend, "结束");
tmpProject.setProcessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}else {
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,GC_ZZSP);
variables.put(paramName_audit_user, assignee);
}
}else if (GC_ZJSP.equals(act_id)) {//当前节点 站长审批
if(ndxsjg.equals("5")){
variables.put(processTrend, "结束");
tmpProject.setProcessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}else {
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,GC_ZJSP);
variables.put(paramName_audit_user, assignee);
}
}else if (GC_SXZJ.equals(act_id)) {//当前节点 站长审批
if(ndxsjg.equals("7")){
variables.put(processTrend, "结束");
tmpProject.setProcessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}else {
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,GC_SXZJ);
variables.put(paramName_audit_user, assignee);
}
}else if (GC_FGLD.equals(act_id)) {//当前节点 站长审批
tmpProject.setProcessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}
}
String comment="";
if ("true".equals(flowTrendOption)) {
comment = "【同意】" + sjDjjc.getP_COM_comment();
} else if ("back".equals(flowTrendOption)) {
comment = "【退修】" + sjDjjc.getP_COM_comment();
} else if ("reject".equals(flowTrendOption)) {
comment = "【驳回】" + sjDjjc.getP_COM_comment();
} else {
comment = "【提交】" + sjDjjc.getP_COM_comment();
}
processService.complete(sjDjjc.getTaskId(), instanceId, itemName, itemContent, Complete_Module, variables, ServletUtils.getRequest(),comment);
} catch (Exception e) {
return AjaxResult.error("办理失败");
}
return AjaxResult.success();
}
@GetMapping("/submitApplyZjy")
public AjaxResult submitApplyZjy(Long ID)
{
try {
SjDjjc sjDjjc = sjDjjcMapper.selectSjDjjcById(ID);
String businessKey = sjDjjc.getId().toString();
String applyUserId=SecurityUtils.getUsername();
String itemName = "钻井液方案审核";
String itemContent = sjDjjc.getJh()+"钻井液方案审核";
Map<String,Object> variables=new HashMap<>();
// 设置下一节点处理人
// 下一节点任务书编辑 处理人为提交者
variables.put(taskEditParamName, applyUserId); // 设置下一节点审核人 设置userId
// 启动流程时设置业务 key
ProcessInstance instance = runtimeService.startProcessInstanceByKey(processDefinitionKeyZjy, businessKey, variables);
String processInstanceId = instance.getId();
sjDjjc.setZjyinstanceId(processInstanceId); // 建立双向关系
sjDjjc.setZjyapplyUser(applyUserId);
sjDjjc.setZjyapplyTime(DateUtils.getNowDate());
sjDjjc.setZjyprocessStatus("审核中");//流程状态1 已经提交
sjDjjc.setZjytype(processDefinitionKeyZjy);//流程定义key
sjDjjcMapper.updateSjDjjc(sjDjjc);
String comment = "";
// 下一节点处理人待办事项
bizTodoItemService.insertTodoItem(instance.getProcessInstanceId(), itemName, itemContent, Complete_Module,comment);
autoCompleteFirstSubmitZjy(applyUserId, processDefinitionKeyZjy, processInstanceId, sjDjjc);
return AjaxResult.success();
} catch (Exception e) {
return AjaxResult.error("提交失败");
}
}
/**
* 完成任务
* @param sjDjjc
* @return
*/
@PostMapping("/completeZjy")
public AjaxResult completeZjy(@RequestBody SjDjjc sjDjjc) {
try {
SjDjjc entity = sjDjjcMapper.selectSjDjjcByinstanceIdZjy(sjDjjc.getInstanceId());
String taskId = sjDjjc.getTaskId();
String instanceId = sjDjjc.getInstanceId();
// 使用任务ID,查询任务对象
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取当前节点 活动id
String act_id = task.getTaskDefinitionKey();
// 获取审核用户选择的走向 同意 退修 驳回
String flowTrendOption = sjDjjc.getFlowTrendOption();
// 流程的显示标题 取课题名称接后缀任务书审核
String itemName = "钻井液方案审核";
String itemContent = entity.getJh()+"钻井液方案审核";
// 审核节点每次提交,需要更新业务表信息
SjDjjc tmpProject = new SjDjjc();
tmpProject.setId(entity.getId());
// 获取流程发起人、和所属部门id
String applyUserId = entity.getZjyapplyUser();
Long applyUserDeptId = userService.selectUserByLoginName(applyUserId).getDeptId();
SysDept sysDept = sysDeptMapper.selectDeptById(applyUserDeptId);
Long secondaryUnit = getSecondaryUnit(applyUserDeptId, sysDept.getAncestors());
if(secondaryUnit==null){
secondaryUnit=applyUserDeptId;
}
Map<String,Object> variables =new HashMap<>();
String ndxsjg = entity.getNdxsjg();
if(StringUtils.isEmpty(ndxsjg)){
ndxsjg="3";
}
// 先判断走向
if ("back".equals(flowTrendOption)) { // 退修
variables.put(processTrend, "退修");
// 下一节点任务书编辑 处理人为提交者
variables.put(taskEditParamName, entity.getApplyUser()); // 设置下一节点审核人 设置userId
// 更新 驳回原因字段 存放退修原因
tmpProject.setZjyrefuseContent(sjDjjc.getP_COM_comment());
tmpProject.setZjyprocessStatus("退修");
sjDjjcMapper.updateSjDjjcById(tmpProject);
} else if ("true".equals(flowTrendOption)) { // 同意
variables.put(processTrend, "同意");
// 根据当前不同的节点,下一节点不同,需要设置的处理人不同
// 下一节点审核节点 处理人为根据角色code取多人 一人处理即可通过
if (ZJY_AQSP.equals(act_id)) {//当前节点 安全审批
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,ZJY_AQSP);
variables.put(paramName_audit_user, assignee);
}else if (ZJY_ZZSP.equals(act_id)) {//当前节点 站长审批
if(ndxsjg.equals("3")){
variables.put(processTrend, "结束");
tmpProject.setZjyprocessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}else {
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,ZJY_ZZSP);
variables.put(paramName_audit_user, assignee);
}
}else if (ZJY_ZJSP.equals(act_id)) {//当前节点 站长审批
if(ndxsjg.equals("5")){
variables.put(processTrend, "结束");
tmpProject.setZjyprocessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}else {
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,ZJY_ZJSP);
variables.put(paramName_audit_user, assignee);
}
}else if (ZJY_SXZJ.equals(act_id)) {//当前节点 站长审批
if(ndxsjg.equals("7")){
variables.put(processTrend, "结束");
tmpProject.setZjyprocessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}else {
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit,ZJY_SXZJ);
variables.put(paramName_audit_user, assignee);
}
}else if (ZJY_FGLD.equals(act_id)) {//当前节点 站长审批
tmpProject.setZjyprocessStatus("通过");
sjDjjcMapper.updateSjDjjcById(tmpProject);
}
}
String comment="";
if ("true".equals(flowTrendOption)) {
comment = "【同意】" + sjDjjc.getP_COM_comment();
} else if ("back".equals(flowTrendOption)) {
comment = "【退修】" + sjDjjc.getP_COM_comment();
} else if ("reject".equals(flowTrendOption)) {
comment = "【驳回】" + sjDjjc.getP_COM_comment();
} else {
comment = "【提交】" + sjDjjc.getP_COM_comment();
}
processService.complete(sjDjjc.getTaskId(), instanceId, itemName, itemContent, Complete_Module, variables, ServletUtils.getRequest(),comment);
} catch (Exception e) {
return AjaxResult.error("办理失败");
}
return AjaxResult.success();
}
/**
* 获取流程历史
* @param instanceId
* @return
*/
@GetMapping("/getLcls/{instanceId}")
public AjaxResult getLcls(@PathVariable("instanceId") String instanceId) {
Map<String, Object> resultMap = new HashMap<>();
// 获取审批历史表格数据
List<BizTodoItem> bizTodoItems = getApprovalHistory(instanceId);
resultMap.put("table", bizTodoItems);
if (bizTodoItems.isEmpty()) {
return AjaxResult.success(resultMap);
}
String type = bizTodoItems.get(0).getItemName();
boolean isEngineeringType = "工程方案审核".equals(type);
// 获取审批相关信息
ApprovalInfo approvalInfo = getApprovalInfo(instanceId, isEngineeringType);
String ndjg = StringUtils.isEmpty(approvalInfo.getNdxsjg()) ? "3" : approvalInfo.getNdxsjg();
// 构建流程节点列表
List<Map<String, Object>> jdList = buildProcessNodes(isEngineeringType, ndjg, approvalInfo.getApplyUserName());
// 查询审批人员并设置节点状态
populateNodeUserInfo(jdList, bizTodoItems, approvalInfo.getSecondaryUnit());
resultMap.put("jdList", jdList);
return AjaxResult.success(resultMap);
}
/**
* 获取审批历史记录
*/
private List<BizTodoItem> getApprovalHistory(String instanceId) {
BizTodoItem bizTodoItem = new BizTodoItem();
bizTodoItem.setInstanceId(instanceId);
List<BizTodoItem> bizTodoItems = bizTodoItemService.selectBizTodoItemList2(bizTodoItem);
return bizTodoItems;
}
/**
* 审批信息封装类
*/
private static class ApprovalInfo {
private String ndxsjg;
private String applyUserName;
private Long secondaryUnit;
// getters and setters
public String getNdxsjg() { return ndxsjg; }
public void setNdxsjg(String ndxsjg) { this.ndxsjg = ndxsjg; }
public String getApplyUserName() { return applyUserName; }
public void setApplyUserName(String applyUserName) { this.applyUserName = applyUserName; }
public Long getSecondaryUnit() { return secondaryUnit; }
public void setSecondaryUnit(Long secondaryUnit) { this.secondaryUnit = secondaryUnit; }
}
/**
* 获取审批相关信息
*/
private ApprovalInfo getApprovalInfo(String instanceId, boolean isEngineeringType) {
ApprovalInfo info = new ApprovalInfo();
SjDjjc sjDjjc = isEngineeringType ?
sjDjjcMapper.selectSjDjjcByinstanceId(instanceId) :
sjDjjcMapper.selectSjDjjcByinstanceIdZjy(instanceId);
info.setNdxsjg(sjDjjc.getNdxsjg());
String applyUserId = isEngineeringType ? sjDjjc.getApplyUser() : sjDjjc.getZjyapplyUser();
info.setApplyUserName(isEngineeringType ? sjDjjc.getApplyUserName() : sjDjjc.getZjyapplyUserName());
// 获取二级单位
Long applyUserDeptId = userService.selectUserByLoginName(applyUserId).getDeptId();
SysDept sysDept = sysDeptMapper.selectDeptById(applyUserDeptId);
Long secondaryUnit = getSecondaryUnit(applyUserDeptId, sysDept.getAncestors());
info.setSecondaryUnit(secondaryUnit != null ? secondaryUnit : applyUserDeptId);
return info;
}
/**
* 构建流程节点列表
*/
private List<Map<String, Object>> buildProcessNodes(boolean isEngineeringType, String ndjg, String applyUserName) {
List<Map<String, Object>> jdList = new ArrayList<>();
// 开始节点
jdList.add(createNode("开始", isEngineeringType ? GC_AQSP : ZJY_AQSP, Arrays.asList(applyUserName)));
// 安全审批节点
jdList.add(createNode("安全审批", isEngineeringType ? GC_AQSP : ZJY_AQSP, null));
// 站长审批节点
jdList.add(createNode("站长审批", isEngineeringType ? GC_ZZSP : ZJY_ZZSP, null));
// 根据ndjg值添加相应节点
switch (ndjg) {
case "5":
jdList.add(createNode("专家审批", isEngineeringType ? GC_ZJSP : ZJY_ZJSP, null));
break;
case "7":
jdList.add(createNode("专家审批", isEngineeringType ? GC_ZJSP : ZJY_ZJSP, null));
jdList.add(createNode("首席专家", isEngineeringType ? GC_SXZJ : ZJY_SXZJ, null));
break;
case "8":
jdList.add(createNode("专家审批", isEngineeringType ? GC_ZJSP : ZJY_ZJSP, null));
jdList.add(createNode("首席专家", isEngineeringType ? GC_SXZJ : ZJY_SXZJ, null));
jdList.add(createNode("分管领导", isEngineeringType ? GC_FGLD : ZJY_FGLD, null));
break;
}
return jdList;
}
/**
* 创建节点
*/
private Map<String, Object> createNode(String name, String roleKey, List<String> userList) {
Map<String, Object> node = new HashMap<>();
node.put("name", name);
node.put("roleKye", roleKey);
if (userList != null) {
node.put("userList", userList);
}
return node;
}
/**
* 填充节点用户信息和状态
*/
private void populateNodeUserInfo(List<Map<String, Object>> jdList, List<BizTodoItem> bizTodoItems, Long secondaryUnit) {
for (Map<String, Object> item : jdList) {
String nodeName = item.get("name").toString();
// 设置审批人员(除开始节点外)
if (!"开始".equals(nodeName)) {
String roleKey = item.get("roleKye").toString();
List<String> userList = userService.selectUserLoginNamesByRoleKeyDept2(secondaryUnit, roleKey);
item.put("userList", userList);
// 设置节点执行状态
boolean isExecuted = bizTodoItems.stream()
.anyMatch(todo -> todo.getNodeName().equals(nodeName) && "1".equals(todo.getIsHandle()));
item.put("jdxz", isExecuted);
}else {
item.put("jdxz", true);
}
}
}
/**
* 特殊化
* 自动完成第一个节点(任务书填报)的提交
*/
private void autoCompleteFirstSubmit(String userId, String key, String processInstanceId, SjDjjc entity) {
// 根据当前人的ID查询
List<Task> todoList = taskService
.createTaskQuery()
.processDefinitionKey(key)
.taskAssignee(userId)
.processInstanceId(processInstanceId)
.list();
// 获取task
if(todoList.size() <= 0) {//没有待办 流程实例异常
System.out.println("\n流程实例异常!没有生成Task数据。autoCompleteFirstSubmit()方法。\n");
return;
}
Task task = todoList.get(0);
String taskId = task.getId();
// 流程的显示标题 取课题名称接后缀任务书审核
String itemName = "工程方案审核";
String itemContent = entity.getJh()+"工程方案审核";
// 获取流程发起人、和所属部门id
String applyUserId = entity.getApplyUser();
Long applyUserDeptId = userService.selectUserByLoginName(applyUserId).getDeptId();
SysDept sysDept = sysDeptMapper.selectDeptById(applyUserDeptId);
Long secondaryUnit = getSecondaryUnit(applyUserDeptId, sysDept.getAncestors());
// 设置下一节点处理人
Map<String, Object> variables = new HashMap<>();
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit, GC_AQSP);
// 下一节点审核节点 处理人为根据角色code取多人 一人处理即可通过
variables.put(paramName_audit_user, assignee); // 设置下一节点审核人 设置userId
String comment = "【提交】";
processService.complete(taskId, processInstanceId, itemName, itemContent, Complete_Module, variables, ServletUtils.getRequest(),comment);
}
/**
* 特殊化
* 自动完成第一个节点(任务书填报)的提交
*/
private void autoCompleteFirstSubmitZjy(String userId, String key, String processInstanceId, SjDjjc entity) {
// 根据当前人的ID查询
List<Task> todoList = taskService
.createTaskQuery()
.processDefinitionKey(key)
.taskAssignee(userId)
.processInstanceId(processInstanceId)
.list();
// 获取task
if(todoList.size() <= 0) {//没有待办 流程实例异常
System.out.println("\n流程实例异常!没有生成Task数据。autoCompleteFirstSubmit()方法。\n");
return;
}
Task task = todoList.get(0);
String taskId = task.getId();
// 流程的显示标题 取课题名称接后缀任务书审核
String itemName = "钻井液方案审核";
String itemContent = entity.getJh()+"钻井液方案审核";
// 获取流程发起人、和所属部门id
String applyUserId = entity.getZjyapplyUser();
Long applyUserDeptId = userService.selectUserByLoginName(applyUserId).getDeptId();
SysDept sysDept = sysDeptMapper.selectDeptById(applyUserDeptId);
Long secondaryUnit = getSecondaryUnit(applyUserDeptId, sysDept.getAncestors());
// 设置下一节点处理人
Map<String, Object> variables = new HashMap<>();
List<String> assignee = userService.selectUserLoginNamesByRoleKeyDept(secondaryUnit, GC_AQSP);
// 下一节点审核节点 处理人为根据角色code取多人 一人处理即可通过
variables.put(paramName_audit_user, assignee); // 设置下一节点审核人 设置userId
String comment = "【提交】";
processService.complete(taskId, processInstanceId, itemName, itemContent, Complete_Module, variables, ServletUtils.getRequest(),comment);
}
/**
* 根据传入的 deptId 和 ancestors 字符串,获取对应的二级单位 ID
*
* @param deptId 当前部门ID
* @param ancestors 祖先部门ID字符串,以逗号分隔,如 "0,100,101" 或 "0,100"
* @return 二级单位ID:
* - 若 ancestors 长度大于2(即包含超过2个ID),则返回第三个ID(索引为2)
* - 若 ancestors 长度等于2,则返回 deptId
* - 若 ancestors 格式不合法,则返回 null
*/
public static Long getSecondaryUnit(Long deptId, String ancestors) {
if (ancestors == null || ancestors.isEmpty()) {
return null;
}
// 1. 分割字符串并转换为数字列表
List<Long> ancestorList = Arrays.stream(ancestors.split(","))
.map(String::trim)
.filter(s -> !s.isEmpty())
.map(Long::parseLong)
.collect(Collectors.toList());
// 2. 根据列表长度判断返回值
if (ancestorList.size() > 2) {
// 祖先列表长度大于2,返回第三个元素(索引2)
return ancestorList.get(2);
} else if (ancestorList.size() == 2) {
// 祖先列表长度等于2,返回传入的 deptId
return deptId;
} else {
// 格式不合法,返回null
return null;
}
}
}
......@@ -416,13 +416,12 @@ public class SjDjjcController extends BaseController
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport,SjDjjc sjDjjc) throws Exception
{
System.out.println("--------------执行插入");
SjDjjc sjDjjc1 = sjDjjcService.selectSjDjjcById(sjDjjc.getId());
XSSFWorkbook workbook = null;
try {
// try {
//装载流
workbook = new XSSFWorkbook(file.getInputStream());
// 获取井基础信息表,下标从0开始
......@@ -454,47 +453,47 @@ public class SjDjjcController extends BaseController
// }
info.setJh(jh);
String qk=new DataFormatter().formatCellValue(row.getCell(1));
if(StringUtils.isEmpty(qk)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行区块不能为空");
}
// if(StringUtils.isEmpty(qk)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行区块不能为空");
// }
info.setQk(qk);
String jb=new DataFormatter().formatCellValue(row.getCell(2));
if(StringUtils.isEmpty(jb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井别不能为空");
}
// if(StringUtils.isEmpty(jb)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行井别不能为空");
// }
info.setJb(jb);
String jx=new DataFormatter().formatCellValue(row.getCell(3));
if(StringUtils.isEmpty(jx)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井型不能为空");
}
// if(StringUtils.isEmpty(jx)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行井型不能为空");
// }
info.setJx(jx);
String jkhzb=new DataFormatter().formatCellValue(row.getCell(4));
if(StringUtils.isEmpty(jkhzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井口横坐标不能为空");
}
// if(StringUtils.isEmpty(jkhzb)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行井口横坐标不能为空");
// }
info.setJkhzb(Double.parseDouble(jkhzb));
jkhzbB=jkhzbB+Double.parseDouble(jkhzb);
String jkzzb=new DataFormatter().formatCellValue(row.getCell(5));
if(StringUtils.isEmpty(jkzzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井口纵坐标不能为空");
}
// if(StringUtils.isEmpty(jkzzb)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行井口纵坐标不能为空");
// }
info.setJkzzb(Double.parseDouble(jkzzb));
jkzzbB=jkzzbB+Double.parseDouble(jkzzb);
String jdhzb=new DataFormatter().formatCellValue(row.getCell(6));
if(StringUtils.isEmpty(jdhzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井底横坐标不能为空");
}
// if(StringUtils.isEmpty(jdhzb)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行井底横坐标不能为空");
// }
info.setJdhzb(Double.parseDouble(jdhzb));
jdhzbB=jdhzbB+Double.parseDouble(jdhzb);
String jdzzb=new DataFormatter().formatCellValue(row.getCell(7));
if(StringUtils.isEmpty(jdzzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井底纵坐标不能为空");
}
// if(StringUtils.isEmpty(jdzzb)){
// return AjaxResult.error("井基础信息中第"+(i+1)+"行井底纵坐标不能为空");
// }
info.setJdzzb(Double.parseDouble(jdzzb));
jdzzbB=jdzzbB+Double.parseDouble(jdzzb);
......@@ -1955,14 +1954,14 @@ public class SjDjjcController extends BaseController
//高指标井
sjDjjcService.getGzbjList(jh);
} catch (IOException e) {
e.getMessage();
e.printStackTrace();
throw new Exception("导入Excel失败,请联系网站管理员!");
} finally {
workbook.close();
}
// } catch (IOException e) {
// e.getMessage();
// e.printStackTrace();
// throw new Exception("导入Excel失败,请联系网站管理员!");
//
// } finally {
// workbook.close();
// }
......@@ -2177,8 +2176,8 @@ public class SjDjjcController extends BaseController
String param = gson.toJson(map2);
// System.out.println("最终参数"+param);
//调用接口
// String body = HttpRequest.post("http://10.68.202.238:12001/api/pdf2xlsx").body(param).execute().body();
String body = HttpRequest.post("http://10.68.249.11:12001/api/pdf2xlsx").body(param).execute().body();
String body = HttpRequest.post("http://10.68.202.238:12001/api/pdf2xlsx").body(param).execute().body();//测试
// String body = HttpRequest.post("http://10.68.249.11:5174/api/pdf2xlsx").body(param).execute().body();//正式
System.out.println("接口返回数据"+body);
JsonObject root = gson.fromJson(body, JsonObject.class);
JsonObject outerData = root.getAsJsonObject("message");
......
......@@ -82,7 +82,11 @@ public class BizTodoItem extends BaseEntity
@Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date handleTime;
private String comment;
private String searchOtherTodoFlag;
private String orderBy;
}
......@@ -215,7 +215,7 @@ public class SjDjjc extends ProcessBaseEntity
private String applyUser;
/** 申请时间 流程 */
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @Excel(name = "申请时间 流程", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyTime;
......@@ -224,5 +224,41 @@ public class SjDjjc extends ProcessBaseEntity
private String taskId;
private String applyUserName;
private String zjyapplyUserName;
private String ndxsjg;
/** 钻井液流程实例id */
@Excel(name = "钻井液流程实例id")
private String zjyinstanceId;
/** 钻井液流程状态 */
@Excel(name = "钻井液流程状态")
private String zjyprocessStatus;
/** 钻井液驳回意见原因 */
@Excel(name = "钻井液驳回意见原因")
private String zjyrefuseContent;
/** 钻井液类型 流程 */
@Excel(name = "钻井液类型 流程")
private String zjytype;
/** 钻井液申请人 流程 */
@Excel(name = "钻井液申请人 流程")
private String zjyapplyUser;
/** 钻井液申请时间 流程 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "钻井液申请时间 流程", width = 30, dateFormat = "yyyy-MM-dd")
private Date zjyapplyTime;
}
......@@ -66,4 +66,7 @@ public interface BizTodoItemMapper
String selectTodoUserByTaskId(String taskId);
List<BizTodoItem> selectBizTodoItemList2(BizTodoItem bizTodoItem);
}
......@@ -67,4 +67,9 @@ public interface SjDjjcMapper
SjDjjc selectSjDjjcByinstanceId(String instanceId);
int updateSjDjjcById(SjDjjc sjDjjc);
SjDjjc selectSjDjjcByinstanceIdZjy(String instanceId);
}
......@@ -60,5 +60,9 @@ public interface IBizTodoItemService
public int deleteBizTodoItemById(Long id);
// int insertTodoItem(String instanceId, String itemName, String itemContent, String module);
int insertTodoItem(String instanceId, String itemName, String itemContent, String module,String comment);
List<BizTodoItem> selectBizTodoItemList2(BizTodoItem bizTodoItem);
}
package com.zjsgfa.project.zjsgfa.service;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
public interface ProcessService {
void complete(String taskId, String processInstanceId, String itemName, String itemContent, String complete_module, Map<String, Object> variables, HttpServletRequest request,String comment);
}
......@@ -6,6 +6,8 @@ import com.zjsgfa.common.utils.DateUtils;
import com.zjsgfa.common.utils.StringUtils;
import com.zjsgfa.project.system.domain.SysUser;
import com.zjsgfa.project.system.mapper.SysUserMapper;
import org.activiti.engine.TaskService;
import org.activiti.engine.task.Task;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -26,8 +28,8 @@ public class BizTodoItemServiceImpl implements IBizTodoItemService
@Autowired
private BizTodoItemMapper bizTodoItemMapper;
// @Autowired
// private TaskService taskService;
@Autowired
private TaskService taskService;
@Autowired
private SysUserMapper userMapper;
......@@ -104,58 +106,66 @@ public class BizTodoItemServiceImpl implements IBizTodoItemService
return bizTodoItemMapper.deleteBizTodoItemById(id);
}
// @Override
// public int insertTodoItem(String instanceId, String itemName, String itemContent, String module) {
// BizTodoItem todoItem = new BizTodoItem();
// todoItem.setItemName(itemName);
// todoItem.setItemContent(itemContent);
// todoItem.setIsView("0");
// todoItem.setIsHandle("0");
// todoItem.setModule(module);
// todoItem.setTodoTime(DateUtils.getNowDate());
// List<Task> taskList = taskService.createTaskQuery().processInstanceId(instanceId).active().list();
// int counter = 0;
// for (Task task: taskList) {
//
// // todoitem 去重
// BizTodoItem bizTodoItem = bizTodoItemMapper.selectTodoItemByTaskId(task.getId());
// if (bizTodoItem != null) continue;
//
// BizTodoItem newItem = new BizTodoItem();
// BeanUtils.copyProperties(todoItem, newItem);
// newItem.setInstanceId(instanceId);
// newItem.setTaskId(task.getId());
// newItem.setTaskName("task" + task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1));
// newItem.setNodeName(task.getName());
// String assignee = task.getAssignee();
// if (StringUtils.isNotBlank(assignee)) {
// newItem.setTodoUserId(assignee);
// SysUser user = userMapper.selectUserByLoginName(assignee);
// newItem.setTodoUserName(user.getNickName());
// bizTodoItemMapper.insertBizTodoItem(newItem);
// counter++;
// } else {
// // 查询候选用户组
// List<String> todoUserIdList = bizTodoItemMapper.selectTodoUserListByTaskId(task.getId());
// if (!CollectionUtils.isEmpty(todoUserIdList)) {
// for (String todoUserId: todoUserIdList) {
// SysUser todoUser = userMapper.selectUserByLoginName(todoUserId);
// newItem.setTodoUserId(todoUser.getUserName());
// newItem.setTodoUserName(todoUser.getNickName());
// bizTodoItemMapper.insertBizTodoItem(newItem);
// counter++;
// }
// } else {
// // 查询候选用户
// String todoUserId = bizTodoItemMapper.selectTodoUserByTaskId(task.getId());
// SysUser todoUser = userMapper.selectUserByLoginName(todoUserId);
// newItem.setTodoUserId(todoUser.getUserName());
// newItem.setTodoUserName(todoUser.getNickName());
// bizTodoItemMapper.insertBizTodoItem(newItem);
// counter++;
// }
// }
// }
// return counter;
// }
@Override
public int insertTodoItem(String instanceId, String itemName, String itemContent, String module,String comment) {
BizTodoItem todoItem = new BizTodoItem();
todoItem.setItemName(itemName);
todoItem.setItemContent(itemContent);
todoItem.setIsView("0");
todoItem.setIsHandle("0");
todoItem.setModule(module);
todoItem.setTodoTime(DateUtils.getNowDate());
List<Task> taskList = taskService.createTaskQuery().processInstanceId(instanceId).active().list();
int counter = 0;
for (Task task: taskList) {
// todoitem 去重
BizTodoItem bizTodoItem = bizTodoItemMapper.selectTodoItemByTaskId(task.getId());
if (bizTodoItem != null) continue;
BizTodoItem newItem = new BizTodoItem();
BeanUtils.copyProperties(todoItem, newItem);
newItem.setInstanceId(instanceId);
newItem.setTaskId(task.getId());
newItem.setTaskName("task" + task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1));
newItem.setNodeName(task.getName());
String assignee = task.getAssignee();
if (StringUtils.isNotBlank(assignee)) {
newItem.setTodoUserId(assignee);
SysUser user = userMapper.selectUserByLoginName(assignee);
newItem.setTodoUserName(user.getNickName());
newItem.setComment(comment);
bizTodoItemMapper.insertBizTodoItem(newItem);
counter++;
} else {
// 查询候选用户组
List<String> todoUserIdList = bizTodoItemMapper.selectTodoUserListByTaskId(task.getId());
if (!CollectionUtils.isEmpty(todoUserIdList)) {
for (String todoUserId: todoUserIdList) {
SysUser todoUser = userMapper.selectUserByLoginName(todoUserId);
newItem.setTodoUserId(todoUser.getUserName());
newItem.setTodoUserName(todoUser.getNickName());
newItem.setComment(comment);
bizTodoItemMapper.insertBizTodoItem(newItem);
counter++;
}
} else {
// 查询候选用户
String todoUserId = bizTodoItemMapper.selectTodoUserByTaskId(task.getId());
SysUser todoUser = userMapper.selectUserByLoginName(todoUserId);
newItem.setTodoUserId(todoUser.getUserName());
newItem.setTodoUserName(todoUser.getNickName());
newItem.setComment(comment);
bizTodoItemMapper.insertBizTodoItem(newItem);
counter++;
}
}
}
return counter;
}
@Override
public List<BizTodoItem> selectBizTodoItemList2(BizTodoItem bizTodoItem) {
return bizTodoItemMapper.selectBizTodoItemList2(bizTodoItem);
}
}
package com.zjsgfa.project.zjsgfa.service.impl;
import com.zjsgfa.common.utils.DateUtils;
import com.zjsgfa.common.utils.SecurityUtils;
import com.zjsgfa.common.utils.StringUtils;
import com.zjsgfa.project.zjsgfa.domain.BizTodoItem;
import com.zjsgfa.project.zjsgfa.service.IBizTodoItemService;
import com.zjsgfa.project.zjsgfa.service.ProcessService;
import org.activiti.engine.TaskService;
import org.apache.commons.lang3.BooleanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Enumeration;
import java.util.List;
import java.util.Map;
@Service
public class ProcessServiceImpl implements ProcessService {
protected final Logger logger = LoggerFactory.getLogger(ProcessServiceImpl.class);
@Autowired
private TaskService taskService;
@Autowired
private IBizTodoItemService bizTodoItemService;
@Override
public void complete(String taskId, String instanceId, String itemName, String itemContent, String module, Map<String, Object> variables, HttpServletRequest request,String comment) {
Enumeration<String> parameterNames = request.getParameterNames();
boolean agree = true;
// taskService.addComment(taskId, instanceId, comment);
// 被委派人处理完成任务
// p.s. 被委托的流程需要先 resolved 这个任务再提交。
// 所以在 complete 之前需要先 resolved
// resolveTask() 要在 claim() 之前,不然 act_hi_taskinst 表的 assignee 字段会为 null
taskService.resolveTask(taskId, variables);
// 只有签收任务,act_hi_taskinst 表的 assignee 字段才不为 null (经过测试这里有点慢)
taskService.claim(taskId, SecurityUtils.getUsername());
taskService.complete(taskId, variables);//慢
// 更新待办事项状态
BizTodoItem query = new BizTodoItem();
/* 2021/12/28 edit by wj 同一个节点多处理人时,task_id 是相同的,无法用来查询当前节点的其他待办,需要单独写查询条件。 start */
// query.setTaskId(taskId);
query.setSearchOtherTodoFlag(taskId);// 查询其他待办任务 flag 。有值时 表示:传入task_id查询当前节点的其他处理人的待办数据
query.setOrderBy("todo_time");// 查询其他待办任务 flag 。有值时 表示:传入task_id查询当前节点的其他处理人的待办数据
/* 2021/12/28 edit by wj 同一个节点多处理人时,task_id 是相同的,无法用来查询当前节点的其他待办,需要单独写查询条件。 end */
// 考虑到候选用户组,会有多个 todoitem 办理同个 task
List<BizTodoItem> updateList = CollectionUtils.isEmpty(bizTodoItemService.selectBizTodoItemList(query)) ? null : bizTodoItemService.selectBizTodoItemList(query);
for (BizTodoItem update: updateList) {
// 找到当前登录用户的 todoitem,置为已办
if (update.getTodoUserId().equals(SecurityUtils.getUsername())) {
update.setIsView("1");
update.setIsHandle("1");
update.setHandleUserId(SecurityUtils.getUsername());
update.setHandleUserName(SecurityUtils.getLoginUser().getUser().getNickName());
update.setHandleTime(DateUtils.getNowDate());
update.setComment(comment);
bizTodoItemService.updateBizTodoItem(update);
} else {
/* 2021/12/28 edit by wj 其他处理人不删除而是置位已办。 start */
// bizTodoItemService.deleteBizTodoItemById(update.getId()); // 删除候选用户组其他 todoitem
update.setIsHandle("1");
// update.setHandleUserId(ShiroUtils.getLoginName());
// update.setHandleUserName(ShiroUtils.getSysUser().getUserName());
bizTodoItemService.updateBizTodoItem(update);
/* 2021/12/28 edit by wj 其他处理人不删除而是置位已办。 end */
}
}
// 下一节点处理人待办事项
bizTodoItemService.insertTodoItem(instanceId, itemName, itemContent, module,null);
}
}
......@@ -329,8 +329,8 @@ public class SjFdsgcsServiceImpl implements ISjFdsgcsService
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(map);
//调用httpsPost请求获取数据
// String url = "https://10.68.249.59:12001/api/ljzjymd";
String url = "http://10.68.249.11:12001/api/ljzjymd";
String url = "http://10.68.202.238:12001/api/ljzjymd";
// String url = "http://10.68.249.11:5174/api/ljzjymd";
System.out.println(json);
String result = HttpRequest.post(url).body(json).execute().body();
System.out.println(result);
......
......@@ -21,10 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="handleUserName" column="handle_user_name" />
<result property="todoTime" column="todo_time" />
<result property="handleTime" column="handle_time" />
<result property="comment" column="comment" />
</resultMap>
<sql id="selectBizTodoItemVo">
select id, item_name, item_content, module, task_id, instance_id, task_name, node_name, is_view, is_handle, todo_user_id, todo_user_name, handle_user_id, handle_user_name, todo_time, handle_time from biz_todo_item
select id, item_name, item_content, module, task_id, instance_id, task_name, node_name, is_view, is_handle, todo_user_id, todo_user_name, handle_user_id, handle_user_name, todo_time, handle_time,comment from biz_todo_item
</sql>
<select id="selectBizTodoItemList" parameterType="BizTodoItem" resultMap="BizTodoItemResult">
......@@ -45,12 +46,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null and handleUserName != ''"> and handle_user_name like concat('%', #{handleUserName}, '%')</if>
<if test="todoTime != null "> and todo_time = #{todoTime}</if>
<if test="handleTime != null "> and handle_time = #{handleTime}</if>
<if test="comment != null and comment!='' "> and comment = #{comment}</if>
<if test="searchOtherTodoFlag != null and searchOtherTodoFlag != ''">
and instance_id = ( select instance_id from biz_todo_item where task_id = #{searchOtherTodoFlag} )
and task_name = ( select task_name from biz_todo_item where task_id = #{searchOtherTodoFlag} )
and node_name = ( select node_name from biz_todo_item where task_id = #{searchOtherTodoFlag} )
</if>
</where>
order by ${orderBy} desc
</select>
<select id="selectBizTodoItemById" parameterType="Long" resultMap="BizTodoItemResult">
......@@ -68,6 +71,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectTodoUserByTaskId" resultType="java.lang.String">
SELECT USER_ID_ FROM ACT_ID_MEMBERSHIP WHERE USER_ID_ = (SELECT USER_ID_ FROM ACT_RU_IDENTITYLINK WHERE TASK_ID_ = #{taskId})
</select>
<select id="selectBizTodoItemList2" resultType="com.zjsgfa.project.zjsgfa.domain.BizTodoItem">
<include refid="selectBizTodoItemVo"/>
<where>
<if test="itemName != null and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
<if test="itemContent != null and itemContent != ''"> and item_content like concat('%', #{itemContent}, '%')</if>
<if test="module != null and module != ''"> and module = #{module}</if>
<if test="taskId != null and taskId != ''"> and task_id = #{taskId}</if>
<if test="instanceId != null and instanceId != ''"> and instance_id = #{instanceId}</if>
<if test="taskName != null and taskName != ''"> and task_name like concat('%', #{taskName}, '%')</if>
<if test="nodeName != null and nodeName != ''"> and node_name like concat('%', #{nodeName}, '%')</if>
<if test="isView != null and isView != ''"> and is_view = #{isView}</if>
<if test="isHandle != null and isHandle != ''"> and is_handle = #{isHandle}</if>
<if test="todoUserId != null and todoUserId != ''"> and todo_user_id = #{todoUserId}</if>
<if test="todoUserName != null and todoUserName != ''"> and todo_user_name like concat('%', #{todoUserName}, '%')</if>
<if test="handleUserId != null and handleUserId != ''"> and handle_user_id = #{handleUserId}</if>
<if test="handleUserName != null and handleUserName != ''"> and handle_user_name like concat('%', #{handleUserName}, '%')</if>
<if test="todoTime != null "> and todo_time = #{todoTime}</if>
<if test="handleTime != null "> and handle_time = #{handleTime}</if>
<if test="comment != null and comment!='' "> and comment = #{comment}</if>
<if test="searchOtherTodoFlag != null and searchOtherTodoFlag != ''">
and instance_id = ( select instance_id from biz_todo_item where task_id = #{searchOtherTodoFlag} )
and task_name = ( select task_name from biz_todo_item where task_id = #{searchOtherTodoFlag} )
and node_name = ( select node_name from biz_todo_item where task_id = #{searchOtherTodoFlag} )
</if>
</where>
ORDER BY handle_time IS NULL DESC, handle_time DESC
</select>
<insert id="insertBizTodoItem" parameterType="BizTodoItem" useGeneratedKeys="true" keyProperty="id">
insert into biz_todo_item
......@@ -87,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null">handle_user_name,</if>
<if test="todoTime != null">todo_time,</if>
<if test="handleTime != null">handle_time,</if>
<if test="comment != null">comment,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="itemName != null">#{itemName},</if>
......@@ -104,6 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null">#{handleUserName},</if>
<if test="todoTime != null">#{todoTime},</if>
<if test="handleTime != null">#{handleTime},</if>
<if test="comment != null">#{comment},</if>
</trim>
</insert>
......@@ -125,6 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null">handle_user_name = #{handleUserName},</if>
<if test="todoTime != null">todo_time = #{todoTime},</if>
<if test="handleTime != null">handle_time = #{handleTime},</if>
<if test="comment != null">comment = #{comment},</if>
</trim>
where id = #{id}
</update>
......
......@@ -55,13 +55,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="type" column="type" />
<result property="applyUser" column="apply_user" />
<result property="applyTime" column="apply_time" />
<result property="applyUserName" column="apply_user_name" />
<result property="ndxsjg" column="ndxsjg" />
<result property="zjyinstanceId" column="zjyinstance_id" />
<result property="zjyprocessStatus" column="zjyprocess_status" />
<result property="zjyrefuseContent" column="zjyrefuse_content" />
<result property="zjytype" column="zjytype" />
<result property="zjyapplyUser" column="zjyapply_user" />
<result property="zjyapplyTime" column="zjyapply_time" />
<result property="zjyapplyUserName" column="zjyapply_user_name" />
</resultMap>
<sql id="selectSjDjjcVo">
select a.id,
jh,
jb,
jx,
a.jx,
jkhzb,
jkzzb,
gzwz,
......@@ -90,10 +101,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
hsezt,
jhjdzt,
flzt,
faid,famc,u.nick_name as cjrmc,a.deptid,d.dept_name, jfdw, bxg, yctglrgd, dlwz, gzmc, ahzb, azzb, bhzb, bzzb, instance_id, process_status, refuse_content, type, apply_user, apply_time
faid,famc,u.nick_name as cjrmc,a.deptid,d.dept_name, jfdw, bxg, yctglrgd, dlwz, gzmc,
ahzb, azzb, bhzb, bzzb, instance_id, process_status, refuse_content, type, apply_user, apply_time,u1.nick_name apply_user_name,n.ndxsjg
, zjyinstance_id, zjyprocess_status, zjyrefuse_content, zjytype, zjyapply_user, zjyapply_time,u2.nick_name zjyapply_user_name
from sj_djjc a left join jcxx_jdxx b on a.zjd=b.id
left join sys_user u on a.created_by=u.user_name
left join sys_user u1 on a.apply_user=u1.user_name
left join sys_user u2 on a.zjyapply_user=u2.user_name
left join sys_dept d on a.deptid = d.dept_id
left join sj_ndxm n on a.id = n.zbid
</sql>
<select id="selectSjDjjcList" parameterType="SjDjjc" resultMap="SjDjjcResult">
......@@ -143,6 +159,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null and type != ''"> and type = #{type}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
<if test="applyTime != null "> and apply_time = #{applyTime}</if>
<if test="zjyinstanceId != null and zjyinstanceId != ''"> and zjyinstance_id = #{zjyinstanceId}</if>
<if test="zjyprocessStatus != null and zjyprocessStatus != ''"> and zjyprocess_status = #{zjyprocessStatus}</if>
<if test="zjyrefuseContent != null and zjyrefuseContent != ''"> and zjyrefuse_content = #{zjyrefuseContent}</if>
<if test="zjytype != null and zjytype != ''"> and zjytype = #{zjytype}</if>
<if test="zjyapplyUser != null and zjyapplyUser != ''"> and zjyapply_user = #{zjyapplyUser}</if>
<if test="zjyapplyTime != null "> and zjyapply_time = #{zjyapplyTime}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</where>
......@@ -162,6 +184,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectSjDjjcVo"/>
where a.instance_id = #{instanceId}
</select>
<select id="selectSjDjjcByinstanceIdZjy" resultType="com.zjsgfa.project.zjsgfa.domain.SjDjjc">
<include refid="selectSjDjjcVo"/>
where a.zjyinstance_id = #{instanceId}
</select>
<insert id="insertSjDjjc" parameterType="SjDjjc" useGeneratedKeys="true" keyProperty="id">
insert into sj_djjc
......@@ -214,6 +240,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type,</if>
<if test="applyUser != null">apply_user,</if>
<if test="applyTime != null">apply_time,</if>
<if test="zjyinstanceId != null">zjyinstance_id,</if>
<if test="zjyprocessStatus != null">zjyprocess_status,</if>
<if test="zjyrefuseContent != null">zjyrefuse_content,</if>
<if test="zjytype != null">zjytype,</if>
<if test="zjyapplyUser != null">zjyapply_user,</if>
<if test="zjyapplyTime != null">zjyapply_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="jh != null">#{jh},</if>
......@@ -264,6 +296,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">#{type},</if>
<if test="applyUser != null">#{applyUser},</if>
<if test="applyTime != null">#{applyTime},</if>
<if test="zjyinstanceId != null">#{zjyinstanceId},</if>
<if test="zjyprocessStatus != null">#{zjyprocessStatus},</if>
<if test="zjyrefuseContent != null">#{zjyrefuseContent},</if>
<if test="zjytype != null">#{zjytype},</if>
<if test="zjyapplyUser != null">#{zjyapplyUser},</if>
<if test="zjyapplyTime != null">#{zjyapplyTime},</if>
</trim>
</insert>
......@@ -317,9 +355,74 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type = #{type},</if>
<if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="applyTime != null">apply_time = #{applyTime},</if>
<if test="zjyinstanceId != null">zjyinstance_id = #{zjyinstanceId},</if>
<if test="zjyprocessStatus != null">zjyprocess_status = #{zjyprocessStatus},</if>
<if test="zjyrefuseContent != null">zjyrefuse_content = #{zjyrefuseContent},</if>
<if test="zjytype != null">zjytype = #{zjytype},</if>
<if test="zjyapplyUser != null">zjyapply_user = #{zjyapplyUser},</if>
<if test="zjyapplyTime != null">zjyapply_time = #{zjyapplyTime},</if>
</trim>
where jh = #{jh}
</update>
<update id="updateSjDjjcById">
update sj_djjc
<trim prefix="SET" suffixOverrides=",">
<if test="jb != null">jb = #{jb},</if>
<if test="jx != null">jx = #{jx},</if>
<if test="jkhzb != null">jkhzb = #{jkhzb},</if>
<if test="jkzzb != null">jkzzb = #{jkzzb},</if>
<if test="gzwz != null">gzwz = #{gzwz},</if>
<if test="wzcw != null">wzcw = #{wzcw},</if>
<if test="ztmd != null">ztmd = #{ztmd},</if>
<if test="wzyz != null">wzyz = #{wzyz},</if>
<if test="wjfa != null">wjfa = #{wjfa},</if>
<if test="createdBy != null">created_by = #{createdBy},</if>
<if test="createdTime != null">created_time = #{createdTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="zjgs != null">zjgs = #{zjgs},</if>
<if test="zjd != null">zjd = #{zjd},</if>
<if test="jdhzb != null">jdhzb = #{jdhzb},</if>
<if test="jdzzb != null">jdzzb = #{jdzzb},</if>
<if test="zt != null">zt = #{zt},</if>
<if test="qk != null">qk = #{qk},</if>
<if test="sjzt != null">sjzt = #{sjzt},</if>
<if test="ljzlzt != null">ljzlzt = #{ljzlzt},</if>
<if test="dzfxzt != null">dzfxzt = #{dzfxzt},</if>
<if test="fxtszt != null">fxtszt = #{fxtszt},</if>
<if test="sggyzt != null">sggyzt = #{sggyzt},</if>
<if test="fdsgzt != null">fdsgzt = #{fdsgzt},</if>
<if test="jkzt != null">jkzt = #{jkzt},</if>
<if test="hsezt != null">hsezt = #{hsezt},</if>
<if test="jhjdzt != null">jhjdzt = #{jhjdzt},</if>
<if test="flzt != null">flzt = #{flzt},</if>
<if test="faid != null">faid = #{faid},</if>
<if test="famc != null">famc = #{famc},</if>
<if test="deptid != null">deptid = #{deptid},</if>
<if test="jfdw != null">jfdw = #{jfdw},</if>
<if test="bxg != null">bxg = #{bxg},</if>
<if test="yctglrgd != null">yctglrgd = #{yctglrgd},</if>
<if test="dlwz != null">dlwz = #{dlwz},</if>
<if test="gzmc != null">gzmc = #{gzmc},</if>
<if test="ahzb != null">ahzb = #{ahzb},</if>
<if test="azzb != null">azzb = #{azzb},</if>
<if test="bhzb != null">bhzb = #{bhzb},</if>
<if test="bzzb != null">bzzb = #{bzzb},</if>
<if test="instanceId != null">instance_id = #{instanceId},</if>
<if test="processStatus != null">process_status = #{processStatus},</if>
<if test="refuseContent != null">refuse_content = #{refuseContent},</if>
<if test="type != null">type = #{type},</if>
<if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="applyTime != null">apply_time = #{applyTime},</if>
<if test="zjyinstanceId != null">zjyinstance_id = #{zjyinstanceId},</if>
<if test="zjyprocessStatus != null">zjyprocess_status = #{zjyprocessStatus},</if>
<if test="zjyrefuseContent != null">zjyrefuse_content = #{zjyrefuseContent},</if>
<if test="zjytype != null">zjytype = #{zjytype},</if>
<if test="zjyapplyUser != null">zjyapply_user = #{zjyapplyUser},</if>
<if test="zjyapplyTime != null">zjyapply_time = #{zjyapplyTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSjDjjcById" parameterType="Long">
delete from sj_djjc where id = #{id}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment