Commit 22942d0a authored by yangyang's avatar yangyang

fix(改造告知 & 检验开通 & 报检):撤回新增按钮控制

parent 33cddc31
...@@ -178,7 +178,13 @@ public class JgReformNoticeDto extends BaseDto { ...@@ -178,7 +178,13 @@ public class JgReformNoticeDto extends BaseDto {
@ApiModelProperty(value = "设备使用地点-街道(镇)") @ApiModelProperty(value = "设备使用地点-街道(镇)")
private String streetName; private String streetName;
//
// private String receiveOrgCreditCode;
@ApiModelProperty(value = "下一执行节点ids")
private String nextExecuteIds;
private String receiveOrgCreditCode; @ApiModelProperty(value = "发起人id用于撤回操作")
private String promoter;
} }
...@@ -276,4 +276,14 @@ public class JgReformNotice extends BaseEntity { ...@@ -276,4 +276,14 @@ public class JgReformNotice extends BaseEntity {
@TableField(value ="\"street_name\"") @TableField(value ="\"street_name\"")
private String streetName; private String streetName;
/**
* 下一执行节点ids
*/
@TableField("next_execute_ids")
private String nextExecuteIds;
/**
* 发起人id用于撤回操作
*/
@TableField(value = "promoter")
private String promoter;
} }
...@@ -33,4 +33,6 @@ public interface JgReformNoticeMapper extends CustomBaseMapper<JgReformNotice> { ...@@ -33,4 +33,6 @@ public interface JgReformNoticeMapper extends CustomBaseMapper<JgReformNotice> {
*/ */
@MapKey ("sequenceNbr") @MapKey ("sequenceNbr")
List<Map<String, Object>> queryEquipInformation(@Param("sequenceNbr") long sequenceNbr); List<Map<String, Object>> queryEquipInformation(@Param("sequenceNbr") long sequenceNbr);
void updatePromoter(@Param("id") Long id);
} }
...@@ -23,7 +23,9 @@ ...@@ -23,7 +23,9 @@
isn.instance_id AS instanceId, isn.instance_id AS instanceId,
isn.plan_date AS planDate, isn.plan_date AS planDate,
isn.receive_company_code AS receiveCompanyCode, isn.receive_company_code AS receiveCompanyCode,
isn.receive_org_name AS receiveOrgName isn.receive_org_name AS receiveOrgName,
isn.next_execute_ids as nextExecuteIds,
isn.promoter
FROM FROM
tzs_jg_reform_notice isn tzs_jg_reform_notice isn
<where> <where>
...@@ -123,4 +125,9 @@ ...@@ -123,4 +125,9 @@
isn.sequence_nbr = #{sequenceNbr} isn.sequence_nbr = #{sequenceNbr}
LIMIT 1 LIMIT 1
</select> </select>
<update id="updatePromoter">
UPDATE tzs_jg_reform_notice set promoter = null
where sequence_nbr = #{id}
</update>
</mapper> </mapper>
...@@ -540,9 +540,6 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg ...@@ -540,9 +540,6 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
model.setUseUnitName(useUnitList[1]); model.setUseUnitName(useUnitList[1]);
} }
} }
if (org.apache.commons.lang3.StringUtils.isEmpty(model.getReceiveOrgCode())) {
model.setReceiveOrgCode(model.getReceiveOrgCreditCode());
}
String receiveOrgId = model.getReceiveOrgCode(); String receiveOrgId = model.getReceiveOrgCode();
if (!ObjectUtils.isEmpty(receiveOrgId)) { if (!ObjectUtils.isEmpty(receiveOrgId)) {
String[] receiveOrgIdList = receiveOrgId.split("_"); String[] receiveOrgIdList = receiveOrgId.split("_");
......
...@@ -163,10 +163,14 @@ public class JyjcInspectionApplication extends BaseEntity { ...@@ -163,10 +163,14 @@ public class JyjcInspectionApplication extends BaseEntity {
*/ */
@TableField("result_type") @TableField("result_type")
private String resultType; private String resultType;
/** /**
* 工作流下一个可执行节点 * 下一执行节点ids
*/ */
@TableField("next_execute_ids") @TableField("next_execute_ids")
private String nextExecuteIds; private String nextExecuteIds;
/**
* 发起人id用于撤回操作
*/
@TableField(value = "promoter")
private String promoter;
} }
...@@ -114,9 +114,13 @@ public class JyjcOpeningApplication extends BaseEntity { ...@@ -114,9 +114,13 @@ public class JyjcOpeningApplication extends BaseEntity {
@TableField (value = "workflow_active_key") @TableField (value = "workflow_active_key")
private String workflowActiveKey; private String workflowActiveKey;
/** /**
* 工作流下一个可执行节点 * 下一执行节点ids
*/ */
@TableField("next_execute_ids") @TableField("next_execute_ids")
private String nextExecuteIds; private String nextExecuteIds;
/**
* 发起人id用于撤回操作
*/
@TableField(value = "promoter")
private String promoter;
} }
...@@ -8,7 +8,7 @@ public enum FlowStatusEnum { ...@@ -8,7 +8,7 @@ public enum FlowStatusEnum {
/** /**
* 待提交 * 待提交
*/ */
TO_BE_SUBMITTED(6610, "提交"), TO_BE_SUBMITTED(6610, "提交"),
/** /**
* 已提交 * 已提交
*/ */
...@@ -34,7 +34,11 @@ public enum FlowStatusEnum { ...@@ -34,7 +34,11 @@ public enum FlowStatusEnum {
/** /**
* 已完成 * 已完成
*/ */
TO_BE_FINISHED(6616, "已完成"); TO_BE_FINISHED(6616, "已完成"),
/**
* 已作废
*/
TO_BE_DISCARD(6617, "已作废");
private final int code; private final int code;
......
...@@ -23,4 +23,6 @@ public interface JyjcInspectionApplicationMapper extends BaseMapper<JyjcInspecti ...@@ -23,4 +23,6 @@ public interface JyjcInspectionApplicationMapper extends BaseMapper<JyjcInspecti
Page<JyjcInspectionApplicationEquipModel> listByCategory(Page<JyjcInspectionApplicationEquipModel> page,@Param("equipClassify") String equipClassify); Page<JyjcInspectionApplicationEquipModel> listByCategory(Page<JyjcInspectionApplicationEquipModel> page,@Param("equipClassify") String equipClassify);
JyjcInspectionApplicationModel selectDataBySeq(Long sequenceNbr); JyjcInspectionApplicationModel selectDataBySeq(Long sequenceNbr);
void updatePromoter(@org.apache.ibatis.annotations.Param ("id") Long id);
} }
...@@ -18,4 +18,5 @@ public interface JyjcOpeningApplicationMapper extends BaseMapper<JyjcOpeningAppl ...@@ -18,4 +18,5 @@ public interface JyjcOpeningApplicationMapper extends BaseMapper<JyjcOpeningAppl
Page<JyjcOpeningApplicationModel> selectJyjcOpeningApplicationList(@Param("page")Page<JyjcOpeningApplication> page, Page<JyjcOpeningApplicationModel> selectJyjcOpeningApplicationList(@Param("page")Page<JyjcOpeningApplication> page,
@Param("jyjcOpeningApplicationRequstDto") JyjcOpeningApplicationRequstDto jyjcOpeningApplicationRequstDto, @Param("applyStartTime") String applyStartTime, @Param("applyendTime") String applyendTime); @Param("jyjcOpeningApplicationRequstDto") JyjcOpeningApplicationRequstDto jyjcOpeningApplicationRequstDto, @Param("applyStartTime") String applyStartTime, @Param("applyendTime") String applyendTime);
void updatePromoter(@Param("id") Long id);
} }
...@@ -148,7 +148,10 @@ public class JyjcInspectionApplicationModel extends BaseModel { ...@@ -148,7 +148,10 @@ public class JyjcInspectionApplicationModel extends BaseModel {
@ApiModelProperty("检验结果方式") @ApiModelProperty("检验结果方式")
private String resultType; private String resultType;
@ApiModelProperty("工作流下一个可执行节点") @ApiModelProperty(value = "下一执行节点ids")
private String nextExecuteIds; private String nextExecuteIds;
@ApiModelProperty(value = "发起人id用于撤回操作")
private String promoter;
} }
...@@ -77,8 +77,11 @@ public class JyjcOpeningApplicationModel extends BaseModel { ...@@ -77,8 +77,11 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty (value = "工作流节点") @ApiModelProperty (value = "工作流节点")
private String workflowActiveKey; private String workflowActiveKey;
@ApiModelProperty (value = "工作流下一个可执行节点") @ApiModelProperty(value = "下一执行节点ids")
private String nextExecuteIds; private String nextExecuteIds;
@ApiModelProperty(value = "发起人id用于撤回操作")
private String promoter;
/* ---------------- -------------- */ /* ---------------- -------------- */
@ApiModelProperty (value = "企业资质信息") @ApiModelProperty (value = "企业资质信息")
List<TzBaseUnitLicenceDto> baseUnitLicences; List<TzBaseUnitLicenceDto> baseUnitLicences;
......
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
tbei.use_unit AS inspectionUnitName, tbei.use_unit AS inspectionUnitName,
tzjia.status, tzjia.status,
cdd2.NAME AS statusName, cdd2.NAME AS statusName,
tzjia.next_execute_ids as nextExecuteIds tzjia.next_execute_ids as nextExecuteIds,
tzjia.promoter
FROM FROM
tz_jyjc_inspection_application AS tzjia tz_jyjc_inspection_application AS tzjia
LEFT JOIN tz_base_enterprise_info tbei ON tbei.use_code = tzjia.application_unit_code LEFT JOIN tz_base_enterprise_info tbei ON tbei.use_code = tzjia.application_unit_code
...@@ -123,4 +124,9 @@ ...@@ -123,4 +124,9 @@
WHERE WHERE
tzjia.sequence_nbr = #{sequenceNbr} tzjia.sequence_nbr = #{sequenceNbr}
</select> </select>
<update id="updatePromoter">
UPDATE tz_jyjc_inspection_application set promoter = null
where sequence_nbr = #{id}
</update>
</mapper> </mapper>
...@@ -25,7 +25,8 @@ ...@@ -25,7 +25,8 @@
unit_code_name, unit_code_name,
status_name, status_name,
workflow_active_key, workflow_active_key,
next_execute_ids next_execute_ids,
promoter
from tz_jyjc_opening_application from tz_jyjc_opening_application
<where> <where>
<if test="jyjcOpeningApplicationRequstDto.applicationSeq != '' and jyjcOpeningApplicationRequstDto.applicationSeq != null"> <if test="jyjcOpeningApplicationRequstDto.applicationSeq != '' and jyjcOpeningApplicationRequstDto.applicationSeq != null">
...@@ -50,4 +51,9 @@ ...@@ -50,4 +51,9 @@
order by sequence_nbr desc order by sequence_nbr desc
</select> </select>
<update id="updatePromoter">
UPDATE tz_jyjc_opening_application set promoter = null
where sequence_nbr = #{id}
</update>
</mapper> </mapper>
...@@ -100,8 +100,8 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -100,8 +100,8 @@ public class JyjcOpeningApplicationController extends BaseController {
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除") @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){ public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationServiceImpl.getById(sequenceNbr); JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationServiceImpl.getById(sequenceNbr);
List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.SUBMITTED.getCode()),String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())); List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.SUBMITTED.getCode()), String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()), String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
if(!status.contains(jyjcOpeningApplication.getStatus())){ if(status.contains(jyjcOpeningApplication.getStatus())) {
throw new BadRequest("除撤回跟驳回的流程之外其余流程不可删除!"); throw new BadRequest("除撤回跟驳回的流程之外其余流程不可删除!");
} }
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.removeById(sequenceNbr)); return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.removeById(sequenceNbr));
......
...@@ -7,8 +7,12 @@ import com.alibaba.fastjson.JSON; ...@@ -7,8 +7,12 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.enums.WorkFlowEnum; import com.yeejoin.amos.boot.biz.common.enums.WorkFlowEnum;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService; import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto; import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.*; import com.yeejoin.amos.boot.module.jyjc.api.entity.*;
...@@ -36,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -36,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
...@@ -85,9 +90,11 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -85,9 +90,11 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Autowired @Autowired
JgFeignClient jgFeignClient; JgFeignClient jgFeignClient;
@Autowired
private RedisUtils redisUtils;
public JyjcInspectionApplicationModel save(@RequestBody JSONObject obj) { public JyjcInspectionApplicationModel save(@RequestBody JSONObject obj) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
//开启报检流程工作流 //开启报检流程工作流
...@@ -132,6 +139,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -132,6 +139,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId()); Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId());
String role = (String) nextNodeInfo.get("role"); String role = (String) nextNodeInfo.get("role");
model.setNextExecuteIds(role); model.setNextExecuteIds(role);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
model.setWorkflowRole(model.getWorkflowRole() + "," + role); model.setWorkflowRole(model.getWorkflowRole() + "," + role);
} else { } else {
...@@ -219,6 +227,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -219,6 +227,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId()); Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId());
String role = (String) nextNodeInfo.get("role"); String role = (String) nextNodeInfo.get("role");
model.setNextExecuteIds(role); model.setNextExecuteIds(role);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
model.setWorkflowRole(model.getWorkflowRole() + "," + role); model.setWorkflowRole(model.getWorkflowRole() + "," + role);
} else { } else {
...@@ -334,7 +343,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -334,7 +343,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + ""); Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + "");
JyjcInspectionApplicationModel inspectionApplicationModel = this.queryBySeq(sequenceNbr); JyjcInspectionApplicationModel inspectionApplicationModel = this.queryBySeq(sequenceNbr);
params.put("status", FlowStatusEnum.TO_BE_FINISHED.getCode() + ""); params.put("status", FlowStatusEnum.TO_BE_FINISHED.getCode() + "");
updateModelByInstanceId(inspectionApplicationModel.getProcessInstanceId(), params); String op = params.get("op").toString();
Boolean rollBack = "1".equals(op) ? true : false;
updateModelByInstanceId(sequenceNbr, inspectionApplicationModel.getProcessInstanceId(), params, rollBack);
List<JyjcInspectionApplicationEquipModel> applicationEquipModels = applicationEquipService.listApplicationEquipByApplicationSeq(sequenceNbr); List<JyjcInspectionApplicationEquipModel> applicationEquipModels = applicationEquipService.listApplicationEquipByApplicationSeq(sequenceNbr);
if (inspectionApplicationModel == null || ValidationUtil.isEmpty(applicationEquipModels)) { if (inspectionApplicationModel == null || ValidationUtil.isEmpty(applicationEquipModels)) {
log.warn("JyjcInspectionApplicationModel Not Found!"); log.warn("JyjcInspectionApplicationModel Not Found!");
...@@ -377,9 +388,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -377,9 +388,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
*/ */
public Boolean doReject(Map<String, Object> params) { public Boolean doReject(Map<String, Object> params) {
execueFlow(params); execueFlow(params);
String op = params.get("op").toString();
Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + "");
String instanceId = Optional.ofNullable(params.get("instanceId")).orElse("").toString(); String instanceId = Optional.ofNullable(params.get("instanceId")).orElse("").toString();
params.put("status", FlowStatusEnum.TO_BE_SUBMITTED.getCode() + ""); params.put("status", FlowStatusEnum.REJECTED.getCode() + "");
updateModelByInstanceId(instanceId, params); Boolean rollBack = "1".equals(op) ? true : false;
updateModelByInstanceId(sequenceNbr, instanceId, params, rollBack);
return true; return true;
} }
...@@ -431,7 +445,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -431,7 +445,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
log.error("撤回工作流错误, => {}", jsonObject); log.error("撤回工作流错误, => {}", jsonObject);
return false; return false;
} }
updateModelByInstanceId(inspectionApplicationModel.getProcessInstanceId(), MapBuilder.<String, Object>create().put("status", FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "").build()); updateModelByInstanceId(inspectionApplicationModel.getSequenceNbr(), inspectionApplicationModel.getProcessInstanceId(), MapBuilder.<String, Object>create().put("status", FlowStatusEnum.ROLLBACK.getCode() + "").build(), true);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -440,8 +454,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -440,8 +454,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
} }
} }
public void updateModelByInstanceId(String instanceId, Map<String, Object> params) { public void updateModelByInstanceId(Long sequenceNbr, String instanceId, Map<String, Object> params, Boolean rollBack) {
JyjcInspectionApplication entity = this.lambdaQuery().eq(JyjcInspectionApplication::getProcessInstanceId, instanceId).one(); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
LambdaQueryWrapper<JyjcInspectionApplication> lambda = new QueryWrapper<JyjcInspectionApplication>().lambda();
lambda.eq(JyjcInspectionApplication::getSequenceNbr, sequenceNbr);
JyjcInspectionApplication entity = this.getBaseMapper().selectOne(lambda);
// JyjcInspectionApplication entity = this.lambdaQuery().eq(JyjcInspectionApplication::getProcessInstanceId, instanceId).one();
if (entity == null) { if (entity == null) {
return; return;
} }
...@@ -461,6 +479,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -461,6 +479,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId); Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
String role = (String) nextNodeInfo.get("role"); String role = (String) nextNodeInfo.get("role");
entity.setNextExecuteIds(role); entity.setNextExecuteIds(role);
entity.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(entity.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(entity.getWorkflowRole())) {
entity.setWorkflowRole(entity.getWorkflowRole() + "," + role); entity.setWorkflowRole(entity.getWorkflowRole() + "," + role);
} else { } else {
...@@ -469,5 +488,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -469,5 +488,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
entity.setStatus(status); entity.setStatus(status);
entity.setAcceptDate(new Date()); entity.setAcceptDate(new Date());
this.updateById(entity); this.updateById(entity);
if (rollBack) {
this.getBaseMapper().updatePromoter(entity.getSequenceNbr());
}
} }
} }
\ No newline at end of file
...@@ -6,10 +6,12 @@ import cn.hutool.core.map.MapBuilder; ...@@ -6,10 +6,12 @@ import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.netflix.loadbalancer.RetryRule; import com.netflix.loadbalancer.RetryRule;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo; import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto; import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.jyjc.api.common.CommonConstants; import com.yeejoin.amos.boot.module.jyjc.api.common.CommonConstants;
...@@ -104,21 +106,23 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -104,21 +106,23 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
public JyjcOpeningApplicationModel saveOrUpdateModel(JyjcOpeningApplicationModel model, Boolean enableStartFlow) { public JyjcOpeningApplicationModel saveOrUpdateModel(JyjcOpeningApplicationModel model, Boolean enableStartFlow) {
boolean isUpdate = false; boolean isUpdate = false;
String instanceId = null; String instanceId = null;
JyjcOpeningApplication entity = null;
try { try {
if (model.getSequenceNbr() != null) { if (model.getSequenceNbr() != null) {
JyjcOpeningApplication entity = jyjcOpeningApplicationMapper.selectById(model.getSequenceNbr()); entity = jyjcOpeningApplicationMapper.selectById(model.getSequenceNbr());
if (entity != null) { if (entity != null) {
instanceId = entity.getWorkflowProstanceId(); instanceId = entity.getWorkflowProstanceId();
isUpdate = true; isUpdate = true;
} }
} }
if (enableStartFlow) { if (enableStartFlow) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
if (StringUtils.isBlank(instanceId)) { if (StringUtils.isBlank(instanceId)) {
// 未开启过工作流则进行开启 startProcess // 未开启过工作流则进行开启 startProcess
instanceId = startFlow("1"); instanceId = startFlow("1");
} }
model.setStatus(FlowStatusEnum.SUBMITTED.getCode() + ""); model.setStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode() + "");
model.setStatusName(FlowStatusEnum.SUBMITTED.getName()); model.setStatusName(FlowStatusEnum.TO_BE_PROCESSED.getName());
model.setApplyTime(new Date()); model.setApplyTime(new Date());
model.setWorkflowProstanceId(instanceId); model.setWorkflowProstanceId(instanceId);
// 默认自动执行第一步 // 默认自动执行第一步
...@@ -127,15 +131,19 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -127,15 +131,19 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId); Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
String role = (String) nextNodeInfo.get("role"); String role = (String) nextNodeInfo.get("role");
model.setNextExecuteIds(role); model.setNextExecuteIds(role);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
model.setWorkflowRole(model.getWorkflowRole() + "," + role); model.setWorkflowRole(model.getWorkflowRole() + "," + role);
} else { } else {
model.setWorkflowRole(role); model.setWorkflowRole(role);
} }
} else { } else {
// 只有第一次改为待提交
if (entity == null) {
model.setStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode() + ""); model.setStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "");
model.setStatusName(FlowStatusEnum.TO_BE_SUBMITTED.getName()); model.setStatusName(FlowStatusEnum.TO_BE_SUBMITTED.getName());
} }
}
if (!isUpdate) { if (!isUpdate) {
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany(); CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode()); model.setUnitCode(companyBo.getCompanyCode());
...@@ -155,15 +163,19 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -155,15 +163,19 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Transactional(rollbackFor = {Exception.class, BaseException.class}) @Transactional(rollbackFor = {Exception.class, BaseException.class})
public JyjcOpeningApplicationModel resubmit(JyjcOpeningApplicationModel model) { public JyjcOpeningApplicationModel resubmit(JyjcOpeningApplicationModel model) {
model.setStatus(FlowStatusEnum.SUBMITTED.getCode() + ""); model.setStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode() + "");
model.setStatusName(FlowStatusEnum.SUBMITTED.getName()); model.setStatusName(FlowStatusEnum.TO_BE_PROCESSED.getName());
model = this.updateWithModel(model); model = this.updateWithModel(model);
execueFlow(MapBuilder.<String, Object>create().put("op", "0").put("instanceId", model.getWorkflowProstanceId()).put("comments", "").build()); execueFlow(MapBuilder.<String, Object>create().put("op", "0").put("instanceId", model.getWorkflowProstanceId()).put("comments", "").build());
return model; return model;
} }
public void updateModelByInstanceId(String instanceId, String status, String role) { public void updateModelByInstanceId(Long sequenceNbr, String instanceId, String status, String role, Boolean rollBack) {
JyjcOpeningApplication entity = this.lambdaQuery().eq(JyjcOpeningApplication::getWorkflowProstanceId, instanceId).one(); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
LambdaQueryWrapper<JyjcOpeningApplication> lambda = new QueryWrapper<JyjcOpeningApplication>().lambda();
lambda.eq(JyjcOpeningApplication::getSequenceNbr, sequenceNbr);
JyjcOpeningApplication entity = this.getBaseMapper().selectOne(lambda);
// JyjcOpeningApplication entity = this.lambdaQuery().eq(JyjcOpeningApplication::getWorkflowProstanceId, instanceId).one();
if (entity == null) { if (entity == null) {
return; return;
} }
...@@ -176,6 +188,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -176,6 +188,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// entity.setWorkflowActiveKey(taskJson.getString("taskDefinitionKey")); // entity.setWorkflowActiveKey(taskJson.getString("taskDefinitionKey"));
entity.setNextExecuteIds(role); entity.setNextExecuteIds(role);
entity.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(entity.getWorkflowRole())) { if (!org.springframework.util.ObjectUtils.isEmpty(entity.getWorkflowRole())) {
entity.setWorkflowRole(entity.getWorkflowRole() + "," + role); entity.setWorkflowRole(entity.getWorkflowRole() + "," + role);
} else { } else {
...@@ -184,6 +197,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -184,6 +197,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
entity.setStatus(status); entity.setStatus(status);
entity.setStatusName(FlowStatusEnum.getNameByType(Long.parseLong(status))); entity.setStatusName(FlowStatusEnum.getNameByType(Long.parseLong(status)));
this.updateById(entity); this.updateById(entity);
if (rollBack) {
this.getBaseMapper().updatePromoter(entity.getSequenceNbr());
}
} }
...@@ -373,6 +389,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -373,6 +389,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
public void execueFlow(Map<String, Object> params) { public void execueFlow(Map<String, Object> params) {
String role = ""; String role = "";
String taskName = "流程结束"; String taskName = "流程结束";
Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + "");
String op = params.get("op").toString(); String op = params.get("op").toString();
String instanceId = params.get("instanceId").toString(); String instanceId = params.get("instanceId").toString();
String comments = params.get("comments").toString(); String comments = params.get("comments").toString();
...@@ -383,7 +400,6 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -383,7 +400,6 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
String taskId = dataObject.getString("id"); String taskId = dataObject.getString("id");
//组装信息 //组装信息
TaskResultDTO dto = new TaskResultDTO(); TaskResultDTO dto = new TaskResultDTO();
// dto.setResult(op);
dto.setResultCode("approvalStatus"); dto.setResultCode("approvalStatus");
dto.setTaskId(taskId); dto.setTaskId(taskId);
HashMap<String, Object> varibalble = new HashMap<>(); HashMap<String, Object> varibalble = new HashMap<>();
...@@ -413,16 +429,17 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -413,16 +429,17 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
String status; String status;
if ("1".equals(op)) { if ("1".equals(op)) {
// 如果是回退, 则业务状态改为未提交 // 如果是回退, 则业务状态改为驳回
status = FlowStatusEnum.TO_BE_SUBMITTED.getCode() + ""; status = FlowStatusEnum.REJECTED.getCode() + "";
} else { } else {
if ("流程结束".equals(taskName)) { if ("流程结束".equals(taskName)) {
status = FlowStatusEnum.TO_BE_FINISHED.getCode() + ""; status = FlowStatusEnum.TO_BE_FINISHED.getCode() + "";
} else { } else {
status = FlowStatusEnum.SUBMITTED.getCode() + ""; status = FlowStatusEnum.TO_BE_PROCESSED.getCode() + "";
} }
} }
updateModelByInstanceId(instanceId, status, role); Boolean rollBack = "1".equals(op) ? true : false;
updateModelByInstanceId(sequenceNbr, instanceId, status, role, rollBack);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error("execueFlow error:{}", e); log.error("execueFlow error:{}", e);
...@@ -445,7 +462,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -445,7 +462,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(jyjcOpeningApplication.getWorkflowProstanceId()); Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(jyjcOpeningApplication.getWorkflowProstanceId());
String role = (String) nextNodeInfo.get("role"); String role = (String) nextNodeInfo.get("role");
updateModelByInstanceId(jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "", role); Long id = Long.parseLong(sequenceNbr);
updateModelByInstanceId(id, jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.ROLLBACK.getCode() + "", role, true);
} catch (Exception e) { } catch (Exception e) {
throw new BadRequest("撤回流程失败,请联系管理员!"); throw new BadRequest("撤回流程失败,请联系管理员!");
} }
...@@ -487,9 +505,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -487,9 +505,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
public Boolean deleteBatchByIds(List<Long> ids){ public Boolean deleteBatchByIds(List<Long> ids){
List<JyjcOpeningApplication> jyjcOpeningApplicationList=jyjcOpeningApplicationMapper.selectList(new QueryWrapper<JyjcOpeningApplication>() List<JyjcOpeningApplication> jyjcOpeningApplicationList=jyjcOpeningApplicationMapper.selectList(new QueryWrapper<JyjcOpeningApplication>()
.in("sequence_nbr")); .in("sequence_nbr"));
List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.SUBMITTED.getCode()),String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())); List<String> status = Arrays.asList(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()), String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jyjcOpeningApplicationList = jyjcOpeningApplicationList.stream().filter(jyjcOpeningApplication ->status.contains(jyjcOpeningApplication.getStatus())).collect(Collectors.toList()); jyjcOpeningApplicationList = jyjcOpeningApplicationList.stream().filter(jyjcOpeningApplication ->status.contains(jyjcOpeningApplication.getStatus())).collect(Collectors.toList());
if(jyjcOpeningApplicationList.isEmpty()){ if(jyjcOpeningApplicationList.isEmpty()) {
throw new BadRequest("除撤回跟驳回的流程之外其余流程不可删除,请核对数据后重新提交!"); throw new BadRequest("除撤回跟驳回的流程之外其余流程不可删除,请核对数据后重新提交!");
} }
deleteBatchByIds(ids); deleteBatchByIds(ids);
......
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