Commit 0399f36b by jiang'yun

修改

parent 60d42294
...@@ -40,6 +40,9 @@ ...@@ -40,6 +40,9 @@
<logback.version>1.2.13</logback.version> <logback.version>1.2.13</logback.version>
<spring-security.version>5.7.12</spring-security.version> <spring-security.version>5.7.12</spring-security.version>
<spring-framework.version>5.3.39</spring-framework.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> </properties>
<dependencies> <dependencies>
...@@ -323,6 +326,60 @@ ...@@ -323,6 +326,60 @@
<artifactId>httpclient5</artifactId> <artifactId>httpclient5</artifactId>
</dependency> </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> </dependencies>
......
...@@ -208,4 +208,5 @@ public interface ISysUserService ...@@ -208,4 +208,5 @@ public interface ISysUserService
List<String> selectUserLoginNamesByRoleKeyDept(Long secondaryUnit, String lcsp1); List<String> selectUserLoginNamesByRoleKeyDept(Long secondaryUnit, String lcsp1);
List<String> selectUserLoginNamesByRoleKeyDept2(Long secondaryUnit, String s);
} }
...@@ -557,6 +557,19 @@ public class SysUserServiceImpl implements ISysUserService ...@@ -557,6 +557,19 @@ public class SysUserServiceImpl implements ISysUserService
public List<String> selectUserLoginNamesByRoleKeyDept(Long deptId, String roleKey) { public List<String> selectUserLoginNamesByRoleKeyDept(Long deptId, String roleKey) {
List<SysUser> userList=userMapper.selectUserLoginNamesByRoleKeyDept(deptId,roleKey); List<SysUser> userList=userMapper.selectUserLoginNamesByRoleKeyDept(deptId,roleKey);
List<String> collect = userList.stream().map(SysUser::getUserName).collect(Collectors.toList()); 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; return collect;
} }
} }
...@@ -46,6 +46,7 @@ public class BizTodoItemController extends BaseController ...@@ -46,6 +46,7 @@ public class BizTodoItemController extends BaseController
startPage(); startPage();
bizTodoItem.setIsHandle("0"); bizTodoItem.setIsHandle("0");
bizTodoItem.setTodoUserId(SecurityUtils.getUsername()); bizTodoItem.setTodoUserId(SecurityUtils.getUsername());
bizTodoItem.setOrderBy("todo_time");
List<BizTodoItem> list = bizTodoItemService.selectBizTodoItemList(bizTodoItem); List<BizTodoItem> list = bizTodoItemService.selectBizTodoItemList(bizTodoItem);
return getDataTable(list); return getDataTable(list);
} }
...@@ -57,6 +58,7 @@ public class BizTodoItemController extends BaseController ...@@ -57,6 +58,7 @@ public class BizTodoItemController extends BaseController
startPage(); startPage();
bizTodoItem.setIsHandle("1"); bizTodoItem.setIsHandle("1");
bizTodoItem.setTodoUserId(SecurityUtils.getUsername()); bizTodoItem.setTodoUserId(SecurityUtils.getUsername());
bizTodoItem.setOrderBy("handle_time");
List<BizTodoItem> list = bizTodoItemService.selectBizTodoItemList(bizTodoItem); List<BizTodoItem> list = bizTodoItemService.selectBizTodoItemList(bizTodoItem);
return getDataTable(list); 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 ...@@ -416,13 +416,12 @@ public class SjDjjcController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport,SjDjjc sjDjjc) throws Exception public AjaxResult importData(MultipartFile file, boolean updateSupport,SjDjjc sjDjjc) throws Exception
{ {
System.out.println("--------------执行插入");
SjDjjc sjDjjc1 = sjDjjcService.selectSjDjjcById(sjDjjc.getId()); SjDjjc sjDjjc1 = sjDjjcService.selectSjDjjcById(sjDjjc.getId());
XSSFWorkbook workbook = null; XSSFWorkbook workbook = null;
try { // try {
//装载流 //装载流
workbook = new XSSFWorkbook(file.getInputStream()); workbook = new XSSFWorkbook(file.getInputStream());
// 获取井基础信息表,下标从0开始 // 获取井基础信息表,下标从0开始
...@@ -454,47 +453,47 @@ public class SjDjjcController extends BaseController ...@@ -454,47 +453,47 @@ public class SjDjjcController extends BaseController
// } // }
info.setJh(jh); info.setJh(jh);
String qk=new DataFormatter().formatCellValue(row.getCell(1)); String qk=new DataFormatter().formatCellValue(row.getCell(1));
if(StringUtils.isEmpty(qk)){ // if(StringUtils.isEmpty(qk)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行区块不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行区块不能为空");
} // }
info.setQk(qk); info.setQk(qk);
String jb=new DataFormatter().formatCellValue(row.getCell(2)); String jb=new DataFormatter().formatCellValue(row.getCell(2));
if(StringUtils.isEmpty(jb)){ // if(StringUtils.isEmpty(jb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井别不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行井别不能为空");
} // }
info.setJb(jb); info.setJb(jb);
String jx=new DataFormatter().formatCellValue(row.getCell(3)); String jx=new DataFormatter().formatCellValue(row.getCell(3));
if(StringUtils.isEmpty(jx)){ // if(StringUtils.isEmpty(jx)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井型不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行井型不能为空");
} // }
info.setJx(jx); info.setJx(jx);
String jkhzb=new DataFormatter().formatCellValue(row.getCell(4)); String jkhzb=new DataFormatter().formatCellValue(row.getCell(4));
if(StringUtils.isEmpty(jkhzb)){ // if(StringUtils.isEmpty(jkhzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井口横坐标不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行井口横坐标不能为空");
} // }
info.setJkhzb(Double.parseDouble(jkhzb)); info.setJkhzb(Double.parseDouble(jkhzb));
jkhzbB=jkhzbB+Double.parseDouble(jkhzb); jkhzbB=jkhzbB+Double.parseDouble(jkhzb);
String jkzzb=new DataFormatter().formatCellValue(row.getCell(5)); String jkzzb=new DataFormatter().formatCellValue(row.getCell(5));
if(StringUtils.isEmpty(jkzzb)){ // if(StringUtils.isEmpty(jkzzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井口纵坐标不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行井口纵坐标不能为空");
} // }
info.setJkzzb(Double.parseDouble(jkzzb)); info.setJkzzb(Double.parseDouble(jkzzb));
jkzzbB=jkzzbB+Double.parseDouble(jkzzb); jkzzbB=jkzzbB+Double.parseDouble(jkzzb);
String jdhzb=new DataFormatter().formatCellValue(row.getCell(6)); String jdhzb=new DataFormatter().formatCellValue(row.getCell(6));
if(StringUtils.isEmpty(jdhzb)){ // if(StringUtils.isEmpty(jdhzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井底横坐标不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行井底横坐标不能为空");
} // }
info.setJdhzb(Double.parseDouble(jdhzb)); info.setJdhzb(Double.parseDouble(jdhzb));
jdhzbB=jdhzbB+Double.parseDouble(jdhzb); jdhzbB=jdhzbB+Double.parseDouble(jdhzb);
String jdzzb=new DataFormatter().formatCellValue(row.getCell(7)); String jdzzb=new DataFormatter().formatCellValue(row.getCell(7));
if(StringUtils.isEmpty(jdzzb)){ // if(StringUtils.isEmpty(jdzzb)){
return AjaxResult.error("井基础信息中第"+(i+1)+"行井底纵坐标不能为空"); // return AjaxResult.error("井基础信息中第"+(i+1)+"行井底纵坐标不能为空");
} // }
info.setJdzzb(Double.parseDouble(jdzzb)); info.setJdzzb(Double.parseDouble(jdzzb));
jdzzbB=jdzzbB+Double.parseDouble(jdzzb); jdzzbB=jdzzbB+Double.parseDouble(jdzzb);
...@@ -1955,14 +1954,14 @@ public class SjDjjcController extends BaseController ...@@ -1955,14 +1954,14 @@ public class SjDjjcController extends BaseController
//高指标井 //高指标井
sjDjjcService.getGzbjList(jh); sjDjjcService.getGzbjList(jh);
} catch (IOException e) { // } catch (IOException e) {
e.getMessage(); // e.getMessage();
e.printStackTrace(); // e.printStackTrace();
throw new Exception("导入Excel失败,请联系网站管理员!"); // throw new Exception("导入Excel失败,请联系网站管理员!");
//
} finally { // } finally {
workbook.close(); // workbook.close();
} // }
...@@ -2177,8 +2176,8 @@ public class SjDjjcController extends BaseController ...@@ -2177,8 +2176,8 @@ public class SjDjjcController extends BaseController
String param = gson.toJson(map2); String param = gson.toJson(map2);
// System.out.println("最终参数"+param); // 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.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.249.11:5174/api/pdf2xlsx").body(param).execute().body();//正式
System.out.println("接口返回数据"+body); System.out.println("接口返回数据"+body);
JsonObject root = gson.fromJson(body, JsonObject.class); JsonObject root = gson.fromJson(body, JsonObject.class);
JsonObject outerData = root.getAsJsonObject("message"); JsonObject outerData = root.getAsJsonObject("message");
......
...@@ -82,7 +82,11 @@ public class BizTodoItem extends BaseEntity ...@@ -82,7 +82,11 @@ public class BizTodoItem extends BaseEntity
@Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date handleTime; private Date handleTime;
private String comment;
private String searchOtherTodoFlag; private String searchOtherTodoFlag;
private String orderBy;
} }
...@@ -215,7 +215,7 @@ public class SjDjjc extends ProcessBaseEntity ...@@ -215,7 +215,7 @@ public class SjDjjc extends ProcessBaseEntity
private String applyUser; private String applyUser;
/** 申请时间 流程 */ /** 申请时间 流程 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @Excel(name = "申请时间 流程", width = 30, dateFormat = "yyyy-MM-dd") // @Excel(name = "申请时间 流程", width = 30, dateFormat = "yyyy-MM-dd")
private Date applyTime; private Date applyTime;
...@@ -224,5 +224,41 @@ public class SjDjjc extends ProcessBaseEntity ...@@ -224,5 +224,41 @@ public class SjDjjc extends ProcessBaseEntity
private String taskId; 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 ...@@ -66,4 +66,7 @@ public interface BizTodoItemMapper
String selectTodoUserByTaskId(String taskId); String selectTodoUserByTaskId(String taskId);
List<BizTodoItem> selectBizTodoItemList2(BizTodoItem bizTodoItem);
} }
...@@ -67,4 +67,9 @@ public interface SjDjjcMapper ...@@ -67,4 +67,9 @@ public interface SjDjjcMapper
SjDjjc selectSjDjjcByinstanceId(String instanceId); SjDjjc selectSjDjjcByinstanceId(String instanceId);
int updateSjDjjcById(SjDjjc sjDjjc);
SjDjjc selectSjDjjcByinstanceIdZjy(String instanceId);
} }
...@@ -60,5 +60,9 @@ public interface IBizTodoItemService ...@@ -60,5 +60,9 @@ public interface IBizTodoItemService
public int deleteBizTodoItemById(Long id); 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; ...@@ -6,6 +6,8 @@ import com.zjsgfa.common.utils.DateUtils;
import com.zjsgfa.common.utils.StringUtils; import com.zjsgfa.common.utils.StringUtils;
import com.zjsgfa.project.system.domain.SysUser; import com.zjsgfa.project.system.domain.SysUser;
import com.zjsgfa.project.system.mapper.SysUserMapper; 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.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -26,8 +28,8 @@ public class BizTodoItemServiceImpl implements IBizTodoItemService ...@@ -26,8 +28,8 @@ public class BizTodoItemServiceImpl implements IBizTodoItemService
@Autowired @Autowired
private BizTodoItemMapper bizTodoItemMapper; private BizTodoItemMapper bizTodoItemMapper;
// @Autowired @Autowired
// private TaskService taskService; private TaskService taskService;
@Autowired @Autowired
private SysUserMapper userMapper; private SysUserMapper userMapper;
...@@ -104,58 +106,66 @@ public class BizTodoItemServiceImpl implements IBizTodoItemService ...@@ -104,58 +106,66 @@ public class BizTodoItemServiceImpl implements IBizTodoItemService
return bizTodoItemMapper.deleteBizTodoItemById(id); return bizTodoItemMapper.deleteBizTodoItemById(id);
} }
// @Override @Override
// public int insertTodoItem(String instanceId, String itemName, String itemContent, String module) { public int insertTodoItem(String instanceId, String itemName, String itemContent, String module,String comment) {
// BizTodoItem todoItem = new BizTodoItem(); BizTodoItem todoItem = new BizTodoItem();
// todoItem.setItemName(itemName); todoItem.setItemName(itemName);
// todoItem.setItemContent(itemContent); todoItem.setItemContent(itemContent);
// todoItem.setIsView("0"); todoItem.setIsView("0");
// todoItem.setIsHandle("0"); todoItem.setIsHandle("0");
// todoItem.setModule(module); todoItem.setModule(module);
// todoItem.setTodoTime(DateUtils.getNowDate()); todoItem.setTodoTime(DateUtils.getNowDate());
// List<Task> taskList = taskService.createTaskQuery().processInstanceId(instanceId).active().list(); List<Task> taskList = taskService.createTaskQuery().processInstanceId(instanceId).active().list();
// int counter = 0; int counter = 0;
// for (Task task: taskList) { for (Task task: taskList) {
//
// // todoitem 去重 // todoitem 去重
// BizTodoItem bizTodoItem = bizTodoItemMapper.selectTodoItemByTaskId(task.getId()); BizTodoItem bizTodoItem = bizTodoItemMapper.selectTodoItemByTaskId(task.getId());
// if (bizTodoItem != null) continue; if (bizTodoItem != null) continue;
//
// BizTodoItem newItem = new BizTodoItem(); BizTodoItem newItem = new BizTodoItem();
// BeanUtils.copyProperties(todoItem, newItem); BeanUtils.copyProperties(todoItem, newItem);
// newItem.setInstanceId(instanceId); newItem.setInstanceId(instanceId);
// newItem.setTaskId(task.getId()); newItem.setTaskId(task.getId());
// newItem.setTaskName("task" + task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1)); newItem.setTaskName("task" + task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1));
// newItem.setNodeName(task.getName()); newItem.setNodeName(task.getName());
// String assignee = task.getAssignee(); String assignee = task.getAssignee();
// if (StringUtils.isNotBlank(assignee)) { if (StringUtils.isNotBlank(assignee)) {
// newItem.setTodoUserId(assignee); newItem.setTodoUserId(assignee);
// SysUser user = userMapper.selectUserByLoginName(assignee); SysUser user = userMapper.selectUserByLoginName(assignee);
// newItem.setTodoUserName(user.getNickName()); newItem.setTodoUserName(user.getNickName());
// bizTodoItemMapper.insertBizTodoItem(newItem); newItem.setComment(comment);
// counter++; bizTodoItemMapper.insertBizTodoItem(newItem);
// } else { counter++;
// // 查询候选用户组 } else {
// List<String> todoUserIdList = bizTodoItemMapper.selectTodoUserListByTaskId(task.getId()); // 查询候选用户组
// if (!CollectionUtils.isEmpty(todoUserIdList)) { List<String> todoUserIdList = bizTodoItemMapper.selectTodoUserListByTaskId(task.getId());
// for (String todoUserId: todoUserIdList) { if (!CollectionUtils.isEmpty(todoUserIdList)) {
// SysUser todoUser = userMapper.selectUserByLoginName(todoUserId); for (String todoUserId: todoUserIdList) {
// newItem.setTodoUserId(todoUser.getUserName()); SysUser todoUser = userMapper.selectUserByLoginName(todoUserId);
// newItem.setTodoUserName(todoUser.getNickName()); newItem.setTodoUserId(todoUser.getUserName());
// bizTodoItemMapper.insertBizTodoItem(newItem); newItem.setTodoUserName(todoUser.getNickName());
// counter++; newItem.setComment(comment);
// } bizTodoItemMapper.insertBizTodoItem(newItem);
// } else { counter++;
// // 查询候选用户 }
// String todoUserId = bizTodoItemMapper.selectTodoUserByTaskId(task.getId()); } else {
// SysUser todoUser = userMapper.selectUserByLoginName(todoUserId); // 查询候选用户
// newItem.setTodoUserId(todoUser.getUserName()); String todoUserId = bizTodoItemMapper.selectTodoUserByTaskId(task.getId());
// newItem.setTodoUserName(todoUser.getNickName()); SysUser todoUser = userMapper.selectUserByLoginName(todoUserId);
// bizTodoItemMapper.insertBizTodoItem(newItem); newItem.setTodoUserId(todoUser.getUserName());
// counter++; newItem.setTodoUserName(todoUser.getNickName());
// } newItem.setComment(comment);
// } bizTodoItemMapper.insertBizTodoItem(newItem);
// } counter++;
// return 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 ...@@ -329,8 +329,8 @@ public class SjFdsgcsServiceImpl implements ISjFdsgcsService
Gson gson = new GsonBuilder().setPrettyPrinting().create(); Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(map); String json = gson.toJson(map);
//调用httpsPost请求获取数据 //调用httpsPost请求获取数据
// String url = "https://10.68.249.59:12001/api/ljzjymd"; String url = "http://10.68.202.238:12001/api/ljzjymd";
String url = "http://10.68.249.11:12001/api/ljzjymd"; // String url = "http://10.68.249.11:5174/api/ljzjymd";
System.out.println(json); System.out.println(json);
String result = HttpRequest.post(url).body(json).execute().body(); String result = HttpRequest.post(url).body(json).execute().body();
System.out.println(result); System.out.println(result);
......
...@@ -21,10 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -21,10 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="handleUserName" column="handle_user_name" /> <result property="handleUserName" column="handle_user_name" />
<result property="todoTime" column="todo_time" /> <result property="todoTime" column="todo_time" />
<result property="handleTime" column="handle_time" /> <result property="handleTime" column="handle_time" />
<result property="comment" column="comment" />
</resultMap> </resultMap>
<sql id="selectBizTodoItemVo"> <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> </sql>
<select id="selectBizTodoItemList" parameterType="BizTodoItem" resultMap="BizTodoItemResult"> <select id="selectBizTodoItemList" parameterType="BizTodoItem" resultMap="BizTodoItemResult">
...@@ -45,12 +46,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -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="handleUserName != null and handleUserName != ''"> and handle_user_name like concat('%', #{handleUserName}, '%')</if>
<if test="todoTime != null "> and todo_time = #{todoTime}</if> <if test="todoTime != null "> and todo_time = #{todoTime}</if>
<if test="handleTime != null "> and handle_time = #{handleTime}</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 != ''"> <if test="searchOtherTodoFlag != null and searchOtherTodoFlag != ''">
and instance_id = ( select instance_id from biz_todo_item where task_id = #{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 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} ) and node_name = ( select node_name from biz_todo_item where task_id = #{searchOtherTodoFlag} )
</if> </if>
</where> </where>
order by ${orderBy} desc
</select> </select>
<select id="selectBizTodoItemById" parameterType="Long" resultMap="BizTodoItemResult"> <select id="selectBizTodoItemById" parameterType="Long" resultMap="BizTodoItemResult">
...@@ -68,6 +71,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -68,6 +71,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectTodoUserByTaskId" resultType="java.lang.String"> <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 USER_ID_ FROM ACT_ID_MEMBERSHIP WHERE USER_ID_ = (SELECT USER_ID_ FROM ACT_RU_IDENTITYLINK WHERE TASK_ID_ = #{taskId})
</select> </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 id="insertBizTodoItem" parameterType="BizTodoItem" useGeneratedKeys="true" keyProperty="id">
insert into biz_todo_item insert into biz_todo_item
...@@ -87,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -87,6 +117,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null">handle_user_name,</if> <if test="handleUserName != null">handle_user_name,</if>
<if test="todoTime != null">todo_time,</if> <if test="todoTime != null">todo_time,</if>
<if test="handleTime != null">handle_time,</if> <if test="handleTime != null">handle_time,</if>
<if test="comment != null">comment,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="itemName != null">#{itemName},</if> <if test="itemName != null">#{itemName},</if>
...@@ -104,6 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -104,6 +135,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null">#{handleUserName},</if> <if test="handleUserName != null">#{handleUserName},</if>
<if test="todoTime != null">#{todoTime},</if> <if test="todoTime != null">#{todoTime},</if>
<if test="handleTime != null">#{handleTime},</if> <if test="handleTime != null">#{handleTime},</if>
<if test="comment != null">#{comment},</if>
</trim> </trim>
</insert> </insert>
...@@ -125,6 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -125,6 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="handleUserName != null">handle_user_name = #{handleUserName},</if> <if test="handleUserName != null">handle_user_name = #{handleUserName},</if>
<if test="todoTime != null">todo_time = #{todoTime},</if> <if test="todoTime != null">todo_time = #{todoTime},</if>
<if test="handleTime != null">handle_time = #{handleTime},</if> <if test="handleTime != null">handle_time = #{handleTime},</if>
<if test="comment != null">comment = #{comment},</if>
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
......
...@@ -55,45 +55,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -55,45 +55,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="type" column="type" /> <result property="type" column="type" />
<result property="applyUser" column="apply_user" /> <result property="applyUser" column="apply_user" />
<result property="applyTime" column="apply_time" /> <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> </resultMap>
<sql id="selectSjDjjcVo"> <sql id="selectSjDjjcVo">
select a.id, select a.id,
jh, jh,
jb, jb,
jx, a.jx,
jkhzb, jkhzb,
jkzzb, jkzzb,
gzwz, gzwz,
wzcw, wzcw,
ztmd, ztmd,
wzyz, wzyz,
wjfa, wjfa,
a.created_by, a.created_by,
a.created_time, a.created_time,
a.update_by, a.update_by,
a.update_time, a.update_time,
a.zjgs, a.zjgs,
a.zjd, a.zjd,
b.zjjd zjdmc, b.zjjd zjdmc,
jdhzb, jdhzb,
jdzzb, jdzzb,
zt, zt,
qk, qk,
sjzt, sjzt,
ljzlzt, ljzlzt,
dzfxzt, dzfxzt,
fxtszt, fxtszt,
sggyzt, sggyzt,
fdsgzt, fdsgzt,
jkzt, jkzt,
hsezt, hsezt,
jhjdzt, jhjdzt,
flzt, 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 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 u on a.created_by=u.user_name
left join sys_dept d on a.deptid = d.dept_id 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> </sql>
<select id="selectSjDjjcList" parameterType="SjDjjc" resultMap="SjDjjcResult"> <select id="selectSjDjjcList" parameterType="SjDjjc" resultMap="SjDjjcResult">
...@@ -143,6 +159,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -143,6 +159,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null and type != ''"> and type = #{type}</if> <if test="type != null and type != ''"> and type = #{type}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if> <if test="applyUser != null and applyUser != ''"> and apply_user = #{applyUser}</if>
<if test="applyTime != null "> and apply_time = #{applyTime}</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} ${params.dataScope}
</where> </where>
...@@ -162,6 +184,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -162,6 +184,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectSjDjjcVo"/> <include refid="selectSjDjjcVo"/>
where a.instance_id = #{instanceId} where a.instance_id = #{instanceId}
</select> </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 id="insertSjDjjc" parameterType="SjDjjc" useGeneratedKeys="true" keyProperty="id">
insert into sj_djjc insert into sj_djjc
...@@ -214,6 +240,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -214,6 +240,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type,</if> <if test="type != null">type,</if>
<if test="applyUser != null">apply_user,</if> <if test="applyUser != null">apply_user,</if>
<if test="applyTime != null">apply_time,</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>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="jh != null">#{jh},</if> <if test="jh != null">#{jh},</if>
...@@ -264,6 +296,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -264,6 +296,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">#{type},</if> <if test="type != null">#{type},</if>
<if test="applyUser != null">#{applyUser},</if> <if test="applyUser != null">#{applyUser},</if>
<if test="applyTime != null">#{applyTime},</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> </trim>
</insert> </insert>
...@@ -317,9 +355,74 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -317,9 +355,74 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="type != null">type = #{type},</if> <if test="type != null">type = #{type},</if>
<if test="applyUser != null">apply_user = #{applyUser},</if> <if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="applyTime != null">apply_time = #{applyTime},</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> </trim>
where jh = #{jh} where jh = #{jh}
</update> </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 id="deleteSjDjjcById" parameterType="Long">
delete from sj_djjc where id = #{id} 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