Commit e9f83b6f authored by suhuiguang's avatar suhuiguang

Merge branch 'develop_tzs_register' of…

Merge branch 'develop_tzs_register' of http://36.40.66.175:5000/moa/amos-boot-biz into develop_tzs_register
parents c145de89 15218606
...@@ -198,7 +198,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -198,7 +198,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
installationInfo.put(s, ObjectUtils.isEmpty(installationInfo.get(s)) ? new JSONArray() : parseArray(installationInfo.get(s).toString())); installationInfo.put(s, ObjectUtils.isEmpty(installationInfo.get(s)) ? new JSONArray() : parseArray(installationInfo.get(s).toString()));
} }
if(equipmentInfos.get(0).containsKey(s)) { if(equipmentInfos.get(0).containsKey(s)) {
equipmentInfos.get(0).put(s, ObjectUtils.isEmpty(installationInfo.get(s)) ? new JSONArray() : parseArray(equipmentInfos.get(0).get(s).toString())); equipmentInfos.get(0).put(s, ObjectUtils.isEmpty(equipmentInfos.get(0).get(s)) ? new JSONArray() : parseArray(equipmentInfos.get(0).get(s).toString()));
} }
} }
Map<String, Object> map = equipmentInfos.get(0); Map<String, Object> map = equipmentInfos.get(0);
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
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;
...@@ -53,7 +52,6 @@ import org.typroject.tyboot.core.rdbms.service.BaseService; ...@@ -53,7 +52,6 @@ import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 设备注销报废服务实现类 * 设备注销报废服务实现类
...@@ -149,7 +147,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -149,7 +147,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
public void save(String submitType, Map<String, Object> mapParams) { public void save(String submitType, Map<String, Object> mapParams) {
ReginParams reginParams = this.getSelectedOrgInfo(); ReginParams reginParams = this.getSelectedOrgInfo();
Map<?, ?> noticeParams = (Map) mapParams.get(PAGE_KEY); Map<?, ?> noticeParams = (Map) mapParams.get(PAGE_KEY);
String equipId = noticeParams.get("record").toString(); String equipId = String.valueOf(noticeParams.get("record"));
String[] receiveOrg = String.valueOf(noticeParams.get("receiveOrgCreditCode")).split("_"); String[] receiveOrg = String.valueOf(noticeParams.get("receiveOrgCreditCode")).split("_");
noticeParams.remove("record"); noticeParams.remove("record");
String[] taskName = new String[]{"流程结束"}; String[] taskName = new String[]{"流程结束"};
...@@ -159,22 +157,16 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -159,22 +157,16 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
model.setReceiveOrgName(receiveOrg[1]); model.setReceiveOrgName(receiveOrg[1]);
// 字段转换 // 字段转换
convertField(model); convertField(model);
// 获取告知设备信息
// 设备信息转换
if (StrUtil.isEmpty(model.getSEQUENCE_NBR())) {
return;
}
List<Map<String, Object>> deviceList = new ArrayList<>();
HashMap<String, Object> map1 = new HashMap<>();
map1.put("SEQUENCE_NBR", model.getSEQUENCE_NBR());
deviceList.add(map1);
// 获取告知单号 // 获取告知单号
ResponseModel<List<String>> listResponseModel = ResponseModel<List<String>> listResponseModel =
tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(noticeParams.get("businessCode"))), deviceList.size()); tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(noticeParams.get("businessCode"))), 1);
if (!ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) { if (!ObjectUtils.isEmpty(listResponseModel) && listResponseModel.getStatus() != HttpStatus.OK.value()) {
log.error(" 获取告知单号失败"); log.error(" 获取告知单号失败");
throw new RuntimeException(); throw new RuntimeException();
} }
HashMap<String, Object> deviceMap = new HashMap<>();
deviceMap.put("SEQUENCE_NBR", model.getSEQUENCE_NBR());
String instanceId = ""; String instanceId = "";
String nextTaskId = ""; String nextTaskId = "";
String nextUserIds = ""; String nextUserIds = "";
...@@ -191,15 +183,15 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -191,15 +183,15 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
// 发起流程 // 发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO(); ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>(); List<ActWorkflowStartDTO> list = new ArrayList<>();
for (int i = 0; i < deviceList.size(); i++) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey("scrapCancelNew"); dto.setProcessDefinitionKey("scrapCancelNew");
dto.setBusinessKey(applyNoList.get(i)); dto.setBusinessKey(applyNoList.get(0));
dto.setCompleteFirstTask(Boolean.TRUE); dto.setCompleteFirstTask(Boolean.TRUE);
//下一节点执行人单位(下节点接收机构code) //下一节点执行人单位(下节点接收机构code)
dto.setNextExecuteUserCompanyCode(model.getReceiveOrgCode()); dto.setNextExecuteUserCompanyCode(model.getReceiveOrgCode());
list.add(dto); list.add(dto);
}
actWorkflowBatchDTO.setProcess(list); actWorkflowBatchDTO.setProcess(list);
processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO); processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
this.buildRoleList(processTaskDTOS, roleListNext, roleListAll); this.buildRoleList(processTaskDTOS, roleListNext, roleListAll);
...@@ -211,52 +203,41 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -211,52 +203,41 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
this.buildRoleList(processTaskDTOS, roleListNext, roleListAll); this.buildRoleList(processTaskDTOS, roleListNext, roleListAll);
} }
List<JgScrapCancel> list = new ArrayList<>(); JgScrapCancelEq jgRelationEquip = new JgScrapCancelEq();
List<JgScrapCancelEq> equipList = new ArrayList<>(); JgScrapCancel jgScrapCancel = new JgScrapCancel();
BeanUtils.copyProperties(model, jgScrapCancel);
for (int i = 0; i < deviceList.size(); i++) { String applyNo = applyNoList.get(0);
JgScrapCancelEq jgRelationEquip = new JgScrapCancelEq(); LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
JgScrapCancel dto = new JgScrapCancel(); otherLambda.eq(OtherInfo::getRecord, deviceMap.get("SEQUENCE_NBR"));
BeanUtils.copyProperties(model, dto); OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
String applyNo = applyNoList.get(i); if (!ObjectUtils.isEmpty(otherInfo)) {
LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
otherLambda.eq(OtherInfo::getRecord, deviceList.get(i).get("SEQUENCE_NBR"));
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
String supervisoryCode = otherInfo.getSupervisoryCode(); String supervisoryCode = otherInfo.getSupervisoryCode();
dto.setSupervisoryCode(supervisoryCode); jgScrapCancel.setSupervisoryCode(supervisoryCode);
dto.setApplyNo(applyNo);
dto.setCreateDate(new Date());
dto.setNextExecuteIds(String.join(",", roleListNext));
dto.setInstanceStatus(String.join(",", roleListAll));
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextTaskId(Objects.isNull(workflowResultDtos) ? null : workflowResultDtos.get(i).getNextTaskId());
jgRelationEquip.setEquId(String.valueOf(deviceList.get(i).get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(applyNo);
if (!StringUtils.isEmpty(instanceId)) {
dto.setInstanceId(instanceId);
dto.setNextTaskId(nextTaskId);
dto.setNextExecuteUserIds(nextUserIds);
dto.setAuditStatus(String.valueOf(WorkFlowStatusEnum.CANCEL_RECEIVE.getPass()));
} else {
dto.setAuditStatus(String.valueOf(WorkFlowStatusEnum.CANCEL_SUBMIT.getPass()));
}
dto.setUseUnitCode(reginParams.getCompany().getCompanyCode());
dto.setUseUnitName(reginParams.getCompany().getCompanyName());
dto.setCreateUserId(RequestContext.getExeUserId());
list.add(dto);
equipList.add(jgRelationEquip);
} }
this.saveBatch(list); jgScrapCancel.setApplyNo(applyNo);
// 新增代办 jgScrapCancel.setCreateDate(new Date());
for (JgScrapCancel jgScrapCancel : list) { jgScrapCancel.setNextExecuteIds(String.join(",", roleListNext));
this.createTaskModel(jgScrapCancel, taskName[0], submitType, nextUserIds); jgScrapCancel.setInstanceStatus(String.join(",", roleListAll));
jgScrapCancel.setPromoter(reginParams.getUserModel().getUserId());
jgScrapCancel.setNextTaskId(Objects.isNull(workflowResultDtos) ? null : workflowResultDtos.get(0).getNextTaskId());
jgRelationEquip.setEquId((String) deviceMap.get("SEQUENCE_NBR"));
jgRelationEquip.setEquipTransferId(applyNo);
if (!StringUtils.isEmpty(instanceId)) {
jgScrapCancel.setInstanceId(instanceId);
jgScrapCancel.setNextTaskId(nextTaskId);
jgScrapCancel.setNextExecuteUserIds(nextUserIds);
jgScrapCancel.setAuditStatus(String.valueOf(WorkFlowStatusEnum.CANCEL_RECEIVE.getPass()));
} else {
jgScrapCancel.setAuditStatus(String.valueOf(WorkFlowStatusEnum.CANCEL_SUBMIT.getPass()));
} }
List<JgScrapCancelEq> jgScrapCancelEqList = equipList.stream().map(t -> { jgScrapCancel.setUseUnitCode(reginParams.getCompany().getCompanyCode());
List<JgScrapCancel> collect = list.stream().filter(item -> t.getEquipTransferId().equals(item.getApplyNo())).collect(Collectors.toList()); jgScrapCancel.setUseUnitName(reginParams.getCompany().getCompanyName());
Long sequenceNbr = collect.get(0).getSequenceNbr(); jgScrapCancel.setCreateUserId(RequestContext.getExeUserId());
return t.setEquipTransferId(String.valueOf(sequenceNbr)); this.save(jgScrapCancel);
}).collect(Collectors.toList()); // 新增代办
jgScrapCancelEqService.saveBatch(jgScrapCancelEqList); this.createTaskModel(jgScrapCancel, taskName[0], submitType, nextUserIds);
jgRelationEquip.setEquipTransferId(String.valueOf(jgScrapCancel.getSequenceNbr()));
jgScrapCancelEqService.save(jgRelationEquip);
} }
private void createTaskModel(JgScrapCancel scrapCancel, String taskName, String submitType, String nextUserIds) { private void createTaskModel(JgScrapCancel scrapCancel, String taskName, String submitType, String nextUserIds) {
...@@ -329,7 +310,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -329,7 +310,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
lambda.eq(JgScrapCancel::getSequenceNbr, id); lambda.eq(JgScrapCancel::getSequenceNbr, id);
JgScrapCancel jgScrapCancel = this.baseMapper.selectOne(lambda); JgScrapCancel jgScrapCancel = this.baseMapper.selectOne(lambda);
//删除代办消息 //删除代办消息
commonService.deleteTaskModel(jgScrapCancel.getInstanceId()); commonService.deleteTaskModel(String.valueOf(jgScrapCancel.getSequenceNbr()));
//更新jgScrapCancel数据 //更新jgScrapCancel数据
jgScrapCancel.setIsDelete(true); jgScrapCancel.setIsDelete(true);
this.updateById(jgScrapCancel); this.updateById(jgScrapCancel);
...@@ -415,17 +396,20 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -415,17 +396,20 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
jgScrapCancelEq.setEquId(jgScrapCancelDto.getRecord()); jgScrapCancelEq.setEquId(jgScrapCancelDto.getRecord());
jgScrapCancelEqMapper.update(jgScrapCancelEq, updateWrapper); jgScrapCancelEqMapper.update(jgScrapCancelEq, updateWrapper);
} else { } else {
LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda(); if (!ObjectUtils.isEmpty(jgScrapCancelDto.getSEQUENCE_NBR()) && !"null".equals(jgScrapCancelDto.getSEQUENCE_NBR())) {
otherLambda.eq(OtherInfo::getRecord, jgScrapCancelDto.getSEQUENCE_NBR()); LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda); otherLambda.eq(OtherInfo::getRecord, jgScrapCancelDto.getSEQUENCE_NBR());
String supervisoryCode = otherInfo.getSupervisoryCode(); OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
jgScrapCancelDto.setSupervisoryCode(supervisoryCode); String supervisoryCode = otherInfo.getSupervisoryCode();
jgScrapCancelDto.setSupervisoryCode(supervisoryCode);
}
//更新操作 //更新操作
JgScrapCancel bean = new JgScrapCancel(); JgScrapCancel bean = new JgScrapCancel();
BeanUtils.copyProperties(jgScrapCancelDto, bean); BeanUtils.copyProperties(jgScrapCancelDto, bean);
bean.setCancelCertificate(JSON.toJSONString(jgScrapCancelDto.getCancelCertificateList()));
this.updateById(bean); this.updateById(bean);
LambdaUpdateWrapper<JgScrapCancelEq> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<JgScrapCancelEq> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(JgScrapCancelEq::getEquipTransferId, bean.getSequenceNbr()); updateWrapper.eq(JgScrapCancelEq::getEquipTransferId, jgScrapCancelDto.getSequenceNbr());
JgScrapCancelEq jgScrapCancelEq = new JgScrapCancelEq(); JgScrapCancelEq jgScrapCancelEq = new JgScrapCancelEq();
jgScrapCancelEq.setEquId(jgScrapCancelDto.getRecord()); jgScrapCancelEq.setEquId(jgScrapCancelDto.getRecord());
jgScrapCancelEqMapper.update(jgScrapCancelEq, updateWrapper); jgScrapCancelEqMapper.update(jgScrapCancelEq, updateWrapper);
...@@ -528,18 +512,23 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -528,18 +512,23 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
LambdaQueryWrapper<JgScrapCancelEq> lambdaEq = new QueryWrapper<JgScrapCancelEq>().lambda(); LambdaQueryWrapper<JgScrapCancelEq> lambdaEq = new QueryWrapper<JgScrapCancelEq>().lambda();
lambdaEq.eq(JgScrapCancelEq::getEquipTransferId, sequenceNbr); lambdaEq.eq(JgScrapCancelEq::getEquipTransferId, sequenceNbr);
JgScrapCancelEq jgScrapCancelEq = jgScrapCancelEqMapper.selectOne(lambdaEq); JgScrapCancelEq jgScrapCancelEq = jgScrapCancelEqMapper.selectOne(lambdaEq);
// 设备信息 if (!ValidationUtil.isNull(jgScrapCancelEq.getEquId()) && !"null".equals(jgScrapCancelEq.getEquId())) {
installationInfo.put("record", jgScrapCancelEq.getEquId()); // 设备信息
installationInfo.put("record", jgScrapCancelEq.getEquId());
LambdaQueryWrapper<IdxBizJgRegisterInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(IdxBizJgRegisterInfo::getRecord, jgScrapCancelEq.getEquId()); LambdaQueryWrapper<IdxBizJgRegisterInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.last("limit 1"); queryWrapper.eq(IdxBizJgRegisterInfo::getRecord, jgScrapCancelEq.getEquId());
IdxBizJgRegisterInfo one = idxBizJgRegisterInfoMapper.selectOne(queryWrapper); queryWrapper.last("limit 1");
installationInfo.put("equCode", one.getEquCode()); IdxBizJgRegisterInfo one = idxBizJgRegisterInfoMapper.selectOne(queryWrapper);
Map<String, Object> detailFieldCamelCaseByRecord = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(jgScrapCancelEq.getEquId()); installationInfo.put("equCode", one.getEquCode());
BeanUtil.copyProperties(installationInfo, detailFieldCamelCaseByRecord); Map<String, Object> detailFieldCamelCaseByRecord = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(jgScrapCancelEq.getEquId());
BeanUtil.copyProperties(installationInfo, detailFieldCamelCaseByRecord);
return new HashMap<String, Object>() {{
this.put(PAGE_KEY, detailFieldCamelCaseByRecord);
}};
}
return new HashMap<String, Object>() {{ return new HashMap<String, Object>() {{
this.put(PAGE_KEY, detailFieldCamelCaseByRecord); this.put(PAGE_KEY, installationInfo);
}}; }};
} }
......
...@@ -19,13 +19,14 @@ import java.util.List; ...@@ -19,13 +19,14 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public enum BizTypeEnum { public enum BizTypeEnum {
SUPERVISE("supervise", "监督检验"), SUPERVISE("supervise", "监督检验","115"),
FIRST_INSPECTION("firstinspect", "定检"), FIRST_INSPECTION("firstinspect", "定检","116"),
DETECTION("detection", "检测"), DETECTION("detection", "检测","117"),
BUSINESS_OPEN("businessOpen", "开通"); BUSINESS_OPEN("businessOpen", "检验业务开通","114");
private String code; private String code;
private String name; private String name;
private String num;
public static List<String> getEnumNameList() { public static List<String> getEnumNameList() {
List<String> codeList = new ArrayList<String>(); List<String> codeList = new ArrayList<String>();
...@@ -44,4 +45,22 @@ public enum BizTypeEnum { ...@@ -44,4 +45,22 @@ public enum BizTypeEnum {
} }
return null; return null;
} }
public static String getNumByCode(String code) {
for (BizTypeEnum c : BizTypeEnum.values()) {
if (c.getCode().equals(code)){
return c.getNum();
}
}
return null;
}
public static String getNameByNum(String num) {
for (BizTypeEnum c : BizTypeEnum.values()) {
if (c.getCode().equals(num)){
return c.getName();
}
}
return null;
}
} }
package com.yeejoin.amos.boot.module.jyjc.api.enums;
/**
* 业务类型枚举
*
* @author Administrator
*/
public enum BusinessTypeEnum {
/**
* 业务类型枚举
*/
JG_EQUIPMENT_HANDOVER("101", "设备移交"),
JG_INSTALLATION_NOTIFICATION("102", "安装告知"),
JG_MODIFICATION_NOTIFICATION("103", "改造告知"),
JG_MAINTENANCE_NOTIFICATION("104", "维修告知"),
JG_ADVICE_REMOVAL("105", "移装告知"),
JG_MAINTENANCE_RECORD("106", "维保备案"),
JG_USAGE_REGISTRATION("107", "使用登记"),
JG_NAME_CHANGE_REGISTRATION("108", "更名变更登记"),
JG_COMPANY_CHANGE_REGISTRATION("109", "单位变更登记"),
JG_CHANGE_REGISTRATION("110", "移装变更登记"),
JG_RENOVATION_REGISTRATION("111", "改造变更登记"),
JG_EQUIPMENT_START("112-1", "设备启用"),
JG_EQUIPMENT_STOP("112-2", "设备停用"),
JG_EQUIPMENT_MOVE("113-1", "移装报废"),
JG_EQUIPMENT_CANCEL("113-2", "注销报废"),
JY_OPENING_APPLICATION("114", "业务开通"),
JY_INSPECTION_APPLICATION_JD("115", "监督检验"),
JY_INSPECTION_APPLICATION_DS("116", "定(首)检验"),
JY_INSPECTION_APPLICATION_CHECK("117", "检验(含安全阀效验)");
private final String code;
private final String name;
BusinessTypeEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static String getNameByType(String code) {
String name = null;
for (BusinessTypeEnum enumOne : BusinessTypeEnum.values()) {
if (enumOne.getCode().equals(code)) {
name = enumOne.getName();
break;
}
}
return name;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}
...@@ -165,7 +165,7 @@ public class JyjcInspectionApplicationModel extends BaseModel { ...@@ -165,7 +165,7 @@ public class JyjcInspectionApplicationModel extends BaseModel {
private String nextTaskId; private String nextTaskId;
@ApiModelProperty(value = "下一步执行人Ids") @ApiModelProperty(value = "下一步执行人Ids")
private String nextExcuteUserIds; private String nextExecuteUserIds;
@ApiModelProperty(value = "下一步任务名称") @ApiModelProperty(value = "下一步任务名称")
private String nextTaskName; private String nextTaskName;
......
...@@ -58,4 +58,6 @@ public class TaskMessageDto { ...@@ -58,4 +58,6 @@ public class TaskMessageDto {
* 设备id、使用登记使用 * 设备id、使用登记使用
*/ */
String equipId; String equipId;
String processKey;
} }
...@@ -41,6 +41,12 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -41,6 +41,12 @@ public class JyjcInspectionApplicationController extends BaseController {
@Autowired @Autowired
JyjcInspectionApplicationServiceImpl jyjcInspectionApplicationServiceImpl; JyjcInspectionApplicationServiceImpl jyjcInspectionApplicationServiceImpl;
// 业务通用发起——基本信息
private static final String basic = "basic";
// 业务通用发起——设备信息
private static final String equipPageInfo = "equipPageInfo";
// 业务通用发起——技术参数-
private static final String filePageData = "filePageData";
/** /**
* 新增 * 新增
...@@ -51,7 +57,17 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -51,7 +57,17 @@ public class JyjcInspectionApplicationController extends BaseController {
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增") @ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<JyjcInspectionApplicationModel> save(@RequestBody JSONObject model) { public ResponseModel<JyjcInspectionApplicationModel> save(@RequestBody JSONObject model) {
if (model.containsKey(basic)) {
JSONObject finallyJson = new JSONObject();
Map<String, Object> basicObj = (Map<String, Object>) model.get(basic);
Map<String, Object> equipPageInfoObj = (Map<String, Object>) model.get(equipPageInfo);
Map<String, Object> filePageDataObj = (Map<String, Object>) model.get(filePageData);
finallyJson.putAll(model);
finallyJson.putAll(basicObj);
finallyJson.putAll(equipPageInfoObj);
finallyJson.putAll(filePageDataObj);
model = finallyJson;
}
ReginParams selectedOrgInfo = getSelectedOrgInfo(); ReginParams selectedOrgInfo = getSelectedOrgInfo();
model.put("applicationUnitCode",selectedOrgInfo.getCompany().getCompanyCode()); model.put("applicationUnitCode",selectedOrgInfo.getCompany().getCompanyCode());
...@@ -65,22 +81,6 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -65,22 +81,6 @@ public class JyjcInspectionApplicationController extends BaseController {
} }
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
public ResponseModel<JyjcInspectionApplicationModel> updateBySequenceNbrJyjcInspectionApplication(@RequestBody JyjcInspectionApplicationModel model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.updateWithModel(model));
}
/** /**
* 根据sequenceNbr删除 * 根据sequenceNbr删除
* *
......
package com.yeejoin.amos.boot.module.jyjc.biz.controller; package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
...@@ -56,9 +57,10 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -56,9 +57,10 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增") @ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JyjcOpeningApplicationModel model) { public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JSONObject model) {
model = jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(model, false); JyjcOpeningApplicationModel jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
return ResponseHelper.buildResponse(model); BeanUtil.copyProperties(model.get("applyInfo"),jyjcOpeningApplicationModel);
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(jyjcOpeningApplicationModel, false));
} }
/** /**
...@@ -78,7 +80,9 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -78,7 +80,9 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/submit") @PutMapping(value = "/submit")
@ApiOperation(httpMethod = "PUT", value = "保存并提交", notes = "保存并提交") @ApiOperation(httpMethod = "PUT", value = "保存并提交", notes = "保存并提交")
public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrAndStartFlow(@RequestBody JyjcOpeningApplicationModel model, @RequestParam(value = "sequenceNbr", required = false) Long sequenceNbr) { public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrAndStartFlow(@RequestBody JSONObject jsonObject, @RequestParam(value = "sequenceNbr", required = false) Long sequenceNbr) {
JyjcOpeningApplicationModel model = new JyjcOpeningApplicationModel();
BeanUtil.copyProperties(jsonObject.get("applyInfo"),model);
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
if (sequenceNbr != null) { if (sequenceNbr != null) {
JyjcOpeningApplicationModel jyjcOpeningApplicationModel = jyjcOpeningApplicationServiceImpl.queryDetail(sequenceNbr); JyjcOpeningApplicationModel jyjcOpeningApplicationModel = jyjcOpeningApplicationServiceImpl.queryDetail(sequenceNbr);
...@@ -217,7 +221,7 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -217,7 +221,7 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "撤回业务开通申请", notes = "撤回业务开通申请") @ApiOperation(httpMethod = "GET",value = "撤回业务开通申请", notes = "撤回业务开通申请")
@GetMapping(value = "/rollBackFlow") @GetMapping(value = "/rollBackFlow")
public ResponseModel<JSONObject> overflow(@RequestParam("sequenceNbr") String sequenceNbr) { public ResponseModel<Object> overflow(@RequestParam("sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.stopFlow(sequenceNbr)); return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.stopFlow(sequenceNbr));
} }
......
...@@ -108,7 +108,7 @@ public class TaskModelServiceImpl { ...@@ -108,7 +108,7 @@ public class TaskModelServiceImpl {
model.setFlowCreateDate(new Date()); model.setFlowCreateDate(new Date());
model.setTaskStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode()); model.setTaskStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode());
model.setTaskTitle("有一条待提交的草稿"); model.setTaskTitle("有一条待提交的草稿");
model.setTaskName(BizTypeEnum.getNameByCode(obj.getTaskType())); model.setTaskName(BizTypeEnum.getNameByNum(obj.getTaskType()));
model.setTaskTypeLabel(BizTypeEnum.getNameByCode(obj.getTaskType())); model.setTaskTypeLabel(BizTypeEnum.getNameByCode(obj.getTaskType()));
// model.setTaskContent("【申请单号:"+obj.getTaskCode()+"】待提交"); // model.setTaskContent("【申请单号:"+obj.getTaskCode()+"】待提交");
}else { }else {
......
...@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -10,6 +10,7 @@ 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.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sun.org.apache.bcel.internal.generic.NEW;
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.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
...@@ -18,6 +19,7 @@ import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto; ...@@ -18,6 +19,7 @@ import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil; import com.yeejoin.amos.boot.module.common.biz.utils.CommonResponseUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.*; import com.yeejoin.amos.boot.module.jyjc.api.entity.*;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.DocumentEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.DocumentEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.ResultStatusEnum; import com.yeejoin.amos.boot.module.jyjc.api.enums.ResultStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper; import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcInspectionApplicationEquipMapper;
...@@ -26,6 +28,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.*; ...@@ -26,6 +28,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionApplicationService; import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcInspectionApplicationService;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.JgFeignClient; import com.yeejoin.amos.boot.module.jyjc.biz.feign.JgFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.handler.JyjcInspectionApplicationHandlerFactory; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.handler.JyjcInspectionApplicationHandlerFactory;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
...@@ -34,13 +37,12 @@ import com.yeejoin.amos.component.feign.utils.FeignUtil; ...@@ -34,13 +37,12 @@ import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model; import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow; import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO; import com.yeejoin.amos.feign.workflow.model.*;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
...@@ -98,6 +100,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -98,6 +100,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
WorkflowFeignService workflowFeignService; WorkflowFeignService workflowFeignService;
@Autowired @Autowired
CommonserviceImpl commonservice; CommonserviceImpl commonservice;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
@Value("classpath:/json/bizTypeInfo.json") @Value("classpath:/json/bizTypeInfo.json")
private Resource bizTypeInfo; private Resource bizTypeInfo;
...@@ -109,6 +113,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -109,6 +113,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
@Autowired @Autowired
private RedisUtils redisUtils; private RedisUtils redisUtils;
@Autowired
TaskModelServiceImpl taskModelService;
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); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
...@@ -118,38 +125,40 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -118,38 +125,40 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
model.setOperationType("2"); model.setOperationType("2");
} }
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (!model.getOperationType().equals("2")) { if (!model.getOperationType().equals("2")) {
String taskName = ""; String taskName = "";
if (model.getOperationType().equals("0")) { if (model.getOperationType().equals("0")) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey( model.getProcessKey()); dto.setProcessDefinitionKey(model.getProcessKey());
dto.setBusinessKey(buildOrderNo()); dto.setBusinessKey(String.valueOf(new Date().getTime()));
try { dto.setCompleteFirstTask(true);
//开启报检流程工作流 list.add(dto);
FeignClientResult ajaxResult = Workflow.taskV2Client.startByVariable(dto); actWorkflowBatchDTO.setProcess(list);
String id = JSON.parseObject(JSON.toJSONString(ajaxResult.getResult())) .get("id").toString(); dto.setNextExecuteUserCompanyCode(model.getInspectionUnitCode());
// String id = ((Map) ajaxResult.getResult()).get("id").toString(); processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
model.setProcessInstanceId(id); String instanceId = processTasks.get(0).getProcessInstance().getId();
execueFlow(MapBuilder.<String, Object>create().put("op", "提交").put("instanceId", id).put("comments", "").build()); String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
taskName = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
// region 获取下一个流程节点的数据 List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(processTasks);
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId()); String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
String role = (String) nextNodeInfo.get("role"); String nextExcuteIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
taskName = (String) nextNodeInfo.get("taskName"); model.setProcessInstanceId(instanceId);
model.setNextExecuteIds(role); if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) { model.setWorkflowRole(model.getWorkflowRole() + "," + nextExcuteIds);
model.setWorkflowRole(model.getWorkflowRole() + "," + role); } else {
} else { model.setWorkflowRole(nextExcuteIds);
model.setWorkflowRole(role);
}
} catch (Exception e) {
e.printStackTrace();
} }
model.setNextExecuteIds(nextExcuteIds);
model.setNextTaskId(nextTaskId);
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理 model.setNextTaskName(taskName);
model.setNextExecuteUserIds(nextUserIds);
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理
} else if (model.getOperationType().equals("1")) { } else if (model.getOperationType().equals("1")) {
model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode())); model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
} }
...@@ -184,48 +193,39 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -184,48 +193,39 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
// equipInfo.setApplicationSeq(model.getSequenceNbr()); // equipInfo.setApplicationSeq(model.getSequenceNbr());
equipInfos.add(equipInfo); equipInfos.add(equipInfo);
} }
model.setEquList(model.getEquip().get(0).getOrDefault("EQU_LIST","").toString());
model.setSupervisoryCode(model.getEquip().get(0).getOrDefault("SUPERVISORY_CODE","").toString());
} }
model.setCreateUserId(reginParams.getUserModel().getUserId()); model.setCreateUserId(reginParams.getUserModel().getUserId());
model.setNumberOfEquip(equipInfos.size()); model.setNumberOfEquip(equipInfos.size());
// endregion
if (null == model.getSequenceNbr()){ if (null == model.getSequenceNbr()){
model = this.createWithModel(model); model = this.createWithModel(model);
}else { }else {
model = this.updateWithModel(model); model = this.updateWithModel(model);
} }
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals(model.getBizType() )&& "look".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
// Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
// List<String> userOrgRoleList = (List<String>) userOrgRoleMap.get("roleId");
// String roleIds = String.join(",", userOrgRoleList);
String urlParams = null;
try {
model.setEquip(null);
urlParams = commonservice.toQueryParams(model);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (StringUtils.isNotBlank(model.getProcessInstanceId())){ if (StringUtils.isNotBlank(model.getProcessInstanceId())){
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getProcessInstanceId()).put("startDate",new Date()) this.createdTaskModel(model);
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId()) }else {
.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode()).put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","") TaskModelDto dto = new TaskModelDto();
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationNo()) TaskMessageDto ta = new TaskMessageDto();
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId()) ta.setInstanceId(model.getProcessInstanceId());
.put("routePath",url.replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",model.getNextExecuteIds())+"&"+urlParams) ta.setStatus(model.getStatus());
.build()); ta.setPromoter(model.getPromoter());
ta.setNextExecuteUserIds(model.getNextExecuteUserIds());
ta.setSequenceNbr(model.getSequenceNbr());
dto.setModel(ta);
//摘要 按原有规则组装
dto.setTaskContent("来自"+model.getEquList()+"【"+model.getSupervisoryCode()+"】的业务办理,【申请单号:"+model.getApplicationNo()+"】");
//申请单号
dto.setTaskCode(model.getApplicationNo());
//业务类型枚举code值
dto.setTaskType(BizTypeEnum.getNumByCode(model.getBizType()));
////业务主键
dto.setRelationId(model.getSequenceNbr()+"");
taskModelService.buildTaskModel(Arrays.asList(dto));
} }
//保存报检装备监管码 //保存报检装备监管码
...@@ -273,6 +273,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -273,6 +273,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
equipInfo.setApplicationSeq(model.getSequenceNbr()); equipInfo.setApplicationSeq(model.getSequenceNbr());
jyjcInspectionApplicationEquipService.save(equipInfo); jyjcInspectionApplicationEquipService.save(equipInfo);
} }
model.setEquList(model.getEquip().get(0).getOrDefault("EQU_LIST","").toString());
model.setSupervisoryCode(model.getEquip().get(0).getOrDefault("SUPERVISORY_CODE","").toString());
} }
// Map<String, Object> map = BeanUtil.beanToMap(model); // Map<String, Object> map = BeanUtil.beanToMap(model);
...@@ -291,58 +293,45 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -291,58 +293,45 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
} }
} }
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理 model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode())); //6611 对应数据字典 检验流程状态 待受理
execueFlow(MapBuilder.<String, Object>create().put("op", "提交").put("instanceId", model.getProcessInstanceId()).put("comments", "").build());
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId()); ArrayList<String> roleList = new ArrayList<>();
String role = (String) nextNodeInfo.get("role"); String taskId = model.getNextTaskId();
String taskName = (String) nextNodeInfo.get("taskName"); //组装信息
model.setNextExecuteIds(role); TaskResultDTO task = new TaskResultDTO();
model.setPromoter(reginParams.getUserModel().getUserId()); task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "提交");
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(model.getInspectionUnitCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.complete(taskId, task);
String taskCode = FlowStatusEnum.TO_SUBMITTED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if(processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() >0){
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
model.setNextExecuteIds(String.join(",", roleList));
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() + "," + String.join(",", roleList));
} else { } else {
model.setWorkflowRole(role); model.setWorkflowRole(String.join(",", roleList));
} }
model.setNextTaskId(nextTaskId);
model.setPromoter(RequestContext.getExeUserId());
model.setStatus(String.valueOf(FlowStatusEnum.TO_SUBMITTED.getCode()));
model.setStatusName(FlowStatusEnum.TO_SUBMITTED.getName());
model.setNextTaskName(taskName1);
executeOneStep(model, taskName1, nextUserIds);
model.setNextExecuteIds(nextUserIds);
this.updateWithModel(model); this.updateWithModel(model);
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals(model.getBizType() )&& "look".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
Map<String,Object> params = new HashMap<>();
params.put("relationId",model.getProcessInstanceId());
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
// Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
// List<String> userOrgRoleList = (List<String>) userOrgRoleMap.get("roleId");
// String roleIds = String.join(",", userOrgRoleList);
String urlParams = null;
try {
model.setEquip(null);
urlParams = commonservice.toQueryParams(model);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getProcessInstanceId()).put("startDate",new Date())
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId())
.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode()).put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","")
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationNo())
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId())
.put("routePath",url.replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",model.getNextExecuteIds())+"&"+urlParams)
// .put("routePath",url.replace("{sequenceNbr}",String.valueOf(model.getSequenceNbr())).replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",roleIds))
.build());
} }
return model; return model;
} }
...@@ -592,21 +581,45 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -592,21 +581,45 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
log.warn("JyjcInspectionApplicationModel Not Found!sequenceNbr => " + sequenceNbr); log.warn("JyjcInspectionApplicationModel Not Found!sequenceNbr => " + sequenceNbr);
return false; return false;
} }
try { String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
// 撤回流程 String[] taskName = new String[]{"流程结束"};
JSONObject jsonObject = workflowHelper.rollBack(inspectionApplicationModel.getProcessInstanceId()); // FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId());
if (ObjectUtils.isEmpty(jsonObject) || 200 != jsonObject.getInteger("status")) { List<String> roleListNext = new ArrayList<>();
log.error("撤回工作流错误, => {}", jsonObject); List<String> roleListAll = new ArrayList<>();
return false; ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(inspectionApplicationModel.getProcessInstanceId());
} String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
updateModelByInstanceId(inspectionApplicationModel.getSequenceNbr(), inspectionApplicationModel.getProcessInstanceId(), MapBuilder.<String, Object>create().put("status", FlowStatusEnum.ROLLBACK.getCode() + "").build(), true); this.buildRoleList(Collections.singletonList(processTaskDTO), roleListNext, roleListAll);
commonservice.deleteTaskModel(inspectionApplicationModel.getProcessInstanceId()); List<WorkflowResultDto> workflowResultDtos = taskModelService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
return true; if (!org.springframework.util.ObjectUtils.isEmpty(inspectionApplicationModel.getWorkflowRole())) {
} catch (Exception e) { inspectionApplicationModel.setWorkflowRole(inspectionApplicationModel.getWorkflowRole() + "," + roleListAll);
e.printStackTrace(); } else {
log.error("撤回工作流错误, => {}", inspectionApplicationModel.getProcessInstanceId(), e); inspectionApplicationModel.setWorkflowRole(inspectionApplicationModel.getWorkflowRole());
return false;
} }
// 待调整
taskCode = processTaskDTO.getNextTask().get(0).getKey();
inspectionApplicationModel.setStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
inspectionApplicationModel.setStatusName(FlowStatusEnum.ROLLBACK.getName());
inspectionApplicationModel.setPromoter("");
inspectionApplicationModel.setNextTaskId(nextTaskId);
inspectionApplicationModel.setNextExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds());
inspectionApplicationModel.setNextExecuteIds(String.join(",", roleListNext));
JyjcInspectionApplication jyjcInspectionApplication = new JyjcInspectionApplication();
BeanUtils.copyProperties(inspectionApplicationModel,jyjcInspectionApplication);
this.getBaseMapper().updateById(jyjcInspectionApplication);
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(inspectionApplicationModel));
jsonObject.put("nextTaskId", inspectionApplicationModel.getNextTaskId());
jsonObject.put("nextExecuteUser", inspectionApplicationModel.getNextExecuteIds());
jsonObject.put("taskType", BizTypeEnum.getNumByCode(inspectionApplicationModel.getBizType()));
jsonObject.put("flowStatus",FlowStatusEnum.ROLLBACK.getCode());
jsonObject.put("flowStatusLabel",FlowStatusEnum.ROLLBACK.getName());
taskModelService.rollbackTask(inspectionApplicationModel.getProcessInstanceId(), jsonObject);
return true;
} }
public void updateModelByInstanceId(Long sequenceNbr, String instanceId, Map<String, Object> params, Boolean rollBack) { public void updateModelByInstanceId(Long sequenceNbr, String instanceId, Map<String, Object> params, Boolean rollBack) {
...@@ -656,4 +669,96 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -656,4 +669,96 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
this.updateById(entity); this.updateById(entity);
} }
private void buildRoleList(List<ProcessTaskDTO> processTasks, List<String> roleListNext, List<String> roleListAll) {
processTasks.forEach(p -> {
p.getNextCandidateGroups().values().forEach(e -> {
roleListNext.addAll(e);
roleListAll.addAll(e);
});
roleListAll.addAll(p.getCandidateGroups());
});
}
private void createdTaskModel(JyjcInspectionApplicationModel model){
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
TaskModelDto dto = new TaskModelDto();
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(model.getProcessInstanceId());
ta.setStatus(model.getStatus());
ta.setPromoter(model.getPromoter());
ta.setNextExecuteUserIds(model.getNextExecuteUserIds());
ta.setSequenceNbr(model.getSequenceNbr());
ta.setProcessKey(model.getProcessKey());
dto.setModel(ta);
dto.setFlowCreateDate(new Date());
dto.setTaskName(model.getNextTaskName());
dto.setFlowCode(model.getNextTaskId());
dto.setTaskContent("来自"+model.getEquList()+"【"+model.getSupervisoryCode()+"】的业务办理,【申请单号:"+model.getApplicationNo()+"】");
dto.setTaskCode(model.getApplicationNo());
dto.setTaskType(BizTypeEnum.getNumByCode(model.getBizType()));
dto.setTaskTypeLabel(BizTypeEnum.getNameByCode(model.getBizType()));
dto.setRelationId(model.getInstanceId());
dto.setExecuteUserIds(model.getNextExecuteUserIds());
dto.setTaskStatusLabel("未处理");
dto.setFlowStatus(Integer.valueOf(model.getStatus()));
dto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setStartUserId(RequestContext.getExeUserId());
dto.setStartUser(model.getCreateUserId());
dto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
dto.setStartDate(new Date());
dto.setNextExecuteUser(model.getNextExecuteIds());
taskModelService.buildTaskModel(Arrays.asList(dto));
}
private void executeOneStep(JyjcInspectionApplicationModel model, String taskName, String nextUserIds) {
// 先更新之前的待办
TaskV2Model taskV2Model = updateTaskModel(model);
taskV2Model.setTaskDesc("");
taskV2Model.setTaskName(taskName);
taskV2Model.setTaskCode(model.getApplicationNo());
taskV2Model.setExecuteUserIds(nextUserIds);
taskV2Model.setRelationId(model.getProcessInstanceId());
taskV2Model.setTaskStatus(Integer.valueOf(model.getStatus()));
taskV2Model.setTaskStatusLabel(model.getStatusName());
taskV2Model.setFlowStatus(Integer.valueOf(model.getStatus()));
taskV2Model.setFlowStatusLabel(model.getStatusName());
// taskV2Model.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
// taskV2Model.setStartUser(jgChangeRegistrationName.getCreateUserName());
// taskV2Model.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
// taskV2Model.setStartDate(jgChangeRegistrationName.getCreateDate());
// taskV2Model.setStartUserId(jgChangeRegistrationName.getCreateUserId());
// taskV2Model.setStartUserCompanyName(jgChangeRegistrationName.getUseUnitName());
taskV2Model.setExecuteUserIds(nextUserIds);
TaskModelDto modelDto = new TaskModelDto();
BeanUtil.copyProperties(taskV2Model, modelDto);
modelDto.setNextExecuteUser(model.getNextExecuteIds());
if (model.getStatus().equals(FlowStatusEnum.REJECTED.getCode())){
modelDto.setPageType("edit");
}
TaskMessageDto obj = new TaskMessageDto();
obj.setInstanceId(model.getProcessInstanceId());
obj.setStatus(model.getStatus());
obj.setPromoter(model.getPromoter());
obj.setNextExecuteUserIds(model.getNextExecuteUserIds());
obj.setSequenceNbr(model.getSequenceNbr());
modelDto.setModel(obj);
// 再插入新代办、数据待定
taskModelService.buildTaskModel(Collections.singletonList(modelDto));
}
private TaskV2Model updateTaskModel(JyjcInspectionApplicationModel model) {
Map<String, Object> params = new HashMap<>();
params.put("relationId",model.getInstanceId());
params.put("taskStatus", model.getStatus());
params.put("taskStatusLabel", model.getStatusName());
params.put("flowStatus",model.getStatus());
params.put("flowStatusLabel",model.getStatusName());
params.put("model",model);
return taskModelService.updateTaskModel(params);
}
} }
\ No newline at end of file
...@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; ...@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
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.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
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.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;
...@@ -43,6 +44,7 @@ import org.apache.commons.io.IOUtils; ...@@ -43,6 +44,7 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -124,8 +126,20 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -124,8 +126,20 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
isUpdate = true; isUpdate = true;
} }
} }
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JY.getCode(), 1).getResult();
model.setApplicationSeq(codes.get(0));
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!isUpdate) {
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCodeName(companyBo.getCompanyName());
model.setCreateUserId(reginParams.getUserModel().getUserId());
this.createWithModel(model);
}
if (enableStartFlow) { if (enableStartFlow) {
model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
model.setApplyTime(new Date());
if (StringUtils.isBlank(instanceId)) { if (StringUtils.isBlank(instanceId)) {
// 未开启过工作流则进行开启 startProcess // 未开启过工作流则进行开启 startProcess
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO(); ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
...@@ -146,65 +160,63 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -146,65 +160,63 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds()); model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
model.setNextTaskId(workflowResultDto.getNextTaskId()); model.setNextTaskId(workflowResultDto.getNextTaskId());
model.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds()); model.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 创建代办
buildTask(model, workflowResultDto);
} }
} else { } else {
// 存在流程,执行 // 存在流程,执行
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(model.getNextTaskId());
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "提交"); map.put("sequenceNbr",model.getSequenceNbr());
dto.setVariable(map); map.put("op", "1");
ProcessTaskDTO complete = cmWorkflowService.complete(model.getNextTaskId(), dto); execueFlow(map);
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>(); // TaskResultDTO dto = new TaskResultDTO();
processTaskDTOS.add(complete); // dto.setResultCode("approvalStatus");
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS); // dto.setTaskId(model.getNextTaskId());
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) { // HashMap<String, Object> map = new HashMap<>();
WorkflowResultDto workflowResult = resultDto.get(0); // map.put("approvalStatus", "提交");
model.setWorkflowProstanceId(workflowResult.getInstanceId()); // dto.setVariable(map);
model.setNextExecuteIds(workflowResult.getNextExecutorRoleIds()); // ProcessTaskDTO complete = cmWorkflowService.complete(model.getNextTaskId(), dto);
model.setNextTaskId(workflowResult.getNextTaskId()); // ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
model.setNextExecuteUserIds(workflowResult.getNextExecutorUserIds()); // processTaskDTOS.add(complete);
} // List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
// if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
// WorkflowResultDto workflowResult = resultDto.get(0);
// model.setWorkflowProstanceId(workflowResult.getInstanceId());
// model.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
// model.setNextTaskId(workflowResult.getNextTaskId());
// model.setNextExecuteUserIds(workflowResult.getNextExecutorUserIds());
// model.setPromoter(reginParams.getUserModel().getUserId());
// // 更新代办
// }
} }
model.setStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode() + "");
model.setApplyTime(new Date());
} else { } else {
// 只有第一次改为待提交 // 只有第一次改为待提交
if (entity == null) { if (entity == null) {
model.setStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode() + ""); model.setStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "");
// 暂存生成代办逻辑
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(model, taskMessageDto);
// 数据参数
dto.setModel(taskMessageDto);
// 摘要
dto.setTaskContent(String.format("检验检测业务开通办理,【申请单号:%s】", model.getApplicationSeq()));
// 申请单号
dto.setTaskCode(model.getApplicationSeq());
// 业务类型
dto.setTaskType("114");
// 业务主键
dto.setRelationId(String.valueOf(model.getSequenceNbr()));
dto.setNextExecuteUser("");
dto.setTaskName("");
list.add(dto);
commonServiceImpl.buildTaskModel(list);
} }
} }
if (!isUpdate) { return this.updateWithModel(model);
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCodeName(companyBo.getCompanyName());
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JY.getCode(), 1).getResult();
model.setApplicationSeq(codes.get(0));
model.setCreateUserId(reginParams.getUserModel().getUserId());
model = this.createWithModel(model);
// 暂存生成代办逻辑
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(model, taskMessageDto);
// 数据参数
dto.setModel(taskMessageDto);
// 摘要
dto.setTaskContent(String.format("检验检测业务开通办理,【申请单号:%s】", model.getApplicationSeq()));
// 申请单号
dto.setTaskCode(model.getApplicationSeq());
// 业务类型
dto.setTaskType(String.valueOf(BizTypeEnum.BUSINESS_OPEN.getCode()));
// 业务主键
dto.setRelationId(String.valueOf(model.getSequenceNbr()));
dto.setNextExecuteUser("");
list.add(dto);
commonServiceImpl.buildTaskModel(list);
return model;
} else {
return this.updateWithModel(model);
}
} }
...@@ -504,89 +516,44 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -504,89 +516,44 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
* 接收/驳回通知检验单 * 接收/驳回通知检验单
*/ */
public void execueFlow(Map<String, Object> params) { public void execueFlow(Map<String, Object> params) {
String role = "";
String taskName = "流程结束";
Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + ""); 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(); JyjcOpeningApplication data = jyjcOpeningApplicationMapper.selectById(sequenceNbr);
String comments = params.get("comments").toString(); //组装信息
try { TaskResultDTO dto = new TaskResultDTO();
AjaxResult ajaxResult = Workflow.taskClient.getTaskNoAuth(instanceId); dto.setResultCode("approvalStatus");
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data"))); dto.setTaskId(data.getNextTaskId());
if (!ValidationUtil.isEmpty(dataObject)) { dto.setComment(params.get("comments").toString());
String taskId = dataObject.getString("id"); HashMap<String, Object> map = new HashMap<>();
//组装信息 map.put("approvalStatus", op);
TaskResultDTO dto = new TaskResultDTO(); dto.setVariable(map);
dto.setResultCode("approvalStatus"); ProcessTaskDTO complete = cmWorkflowService.complete(data.getNextTaskId(), dto);
dto.setTaskId(taskId); ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
HashMap<String, Object> varibalble = new HashMap<>(); processTaskDTOS.add(complete);
varibalble.put("approvalStatus", op); List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
dto.setVariable(varibalble); if (!org.springframework.util.ObjectUtils.isEmpty(resultDto) && !org.springframework.util.ObjectUtils.isEmpty(resultDto.get(0))) {
dto.setComment(comments); WorkflowResultDto workflowResultDto = resultDto.get(0);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
// 查询下节点任务
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
if ("0".equals(op) && ObjectUtils.isNotEmpty(params.get("originalDataId"))) {
String originalDataId = params.get("originalDataId").toString();
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationMapper.selectById(originalDataId);
List<String> detectionRegion = (List<String>) params.get("detectionRegion");
// String detectionRegionName = params.get("detectionRegionName").toString();
if(!detectionRegion.isEmpty()){
jyjcOpeningApplication.setDetectionRegion(detectionRegion);
}
// jyjcOpeningApplication.setDetectionRegionName(detectionRegionName);
// if(ObjectUtils.isEmpty(jyjcOpeningApplication.getAcceptDate())){
// jyjcOpeningApplication.setAcceptDate(new Date());
// }
jyjcOpeningApplicationMapper.updateById(jyjcOpeningApplication);
}
role = (String) nextNodeInfo.get("role");
taskName = (String) nextNodeInfo.get("taskName");
}
String status;
if ("1".equals(op)) { if ("1".equals(op)) {
// 如果是回退, 则业务状态改为驳回 // 驳回
status = FlowStatusEnum.REJECTED.getCode() + ""; data.setStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
params.put("relationId",instanceId); data.setPromoter("");
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode()); // 更新代办
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName()); updateTask(data, workflowResultDto);
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals("opening" )&& "edit".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
taskV2Model.setRoutePath(url);
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
String roles = (String) nextNodeInfo.get("role");
taskV2Model.setExecuteUserIds(roles);
commonservice.buildTaskModel(BeanUtil.beanToMap(taskV2Model));
} else { } else {
if ("流程结束".equals(taskName)) { // 流程结束
status = FlowStatusEnum.TO_BE_FINISHED.getCode() + ""; data.setStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode()); // 更新代办
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName()); HashMap<String, Object> taskParams = new HashMap<>();
TaskV2Model taskV2Model = commonservice.updateTaskModel(params); taskParams.put("relationId", data.getWorkflowProstanceId());
} else { taskParams.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
status = FlowStatusEnum.TO_BE_PROCESSED.getCode() + ""; taskParams.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
} taskParams.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskParams.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskParams.put("model", data);
commonServiceImpl.updateTaskModel(taskParams);
} }
Boolean rollBack = "1".equals(op) ? true : false;
updateModelByInstanceId(sequenceNbr, instanceId, status, role, rollBack);
} catch (Exception e) {
e.printStackTrace();
log.error("execueFlow error:{}", e);
} }
jyjcOpeningApplicationMapper.updateById(data);
} }
...@@ -594,24 +561,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -594,24 +561,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
/** /**
* 撤回流程办理单 * 撤回流程办理单
*/ */
public JSONObject stopFlow(String sequenceNbr) { public JyjcOpeningApplication stopFlow(String sequenceNbr) {
JSONObject jsonObject= new JSONObject();
JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationMapper.selectById(sequenceNbr); JyjcOpeningApplication jyjcOpeningApplication = jyjcOpeningApplicationMapper.selectById(sequenceNbr);
try { //撤回流程
//撤回流程 ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(jyjcOpeningApplication.getWorkflowProstanceId());
jsonObject = workflowFeignClient.rollBack(jyjcOpeningApplication.getWorkflowProstanceId()); ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
if (ObjectUtils.isEmpty(jsonObject)) { processTaskDTOS.add(processTaskDTO);
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
} return jyjcOpeningApplication;
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(jyjcOpeningApplication.getWorkflowProstanceId());
String role = (String) nextNodeInfo.get("role");
Long id = Long.parseLong(sequenceNbr);
commonservice.deleteTaskModel(jyjcOpeningApplication.getWorkflowProstanceId());
updateModelByInstanceId(id, jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.ROLLBACK.getCode() + "", role, true);
} catch (Exception e) {
throw new BadRequest("撤回流程失败,请联系管理员!");
}
return jsonObject;
} }
private String getWorkflowStatus(JSONObject dataObject) { private String getWorkflowStatus(JSONObject dataObject) {
...@@ -672,4 +629,61 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -672,4 +629,61 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return jyjcOpeningApplicationMapper.selectOverdueData(); return jyjcOpeningApplicationMapper.selectOverdueData();
} }
public void buildTask(JyjcOpeningApplicationModel model, WorkflowResultDto workflowResultDto) {
ReginParams reginParams = commonserviceImpl.getReginParamsOfCurrentUser();
// 代办消息
ArrayList<TaskModelDto> list = new ArrayList<>();
TaskModelDto dto = new TaskModelDto();
dto.setTaskType("114");
dto.setTaskTypeLabel(BizTypeEnum.BUSINESS_OPEN.getName());
dto.setFlowCreateDate(model.getRecDate());
dto.setTaskName(workflowResultDto.getNextTaskName());
dto.setTaskCode(workflowResultDto.getNextTaskCode());
dto.setTaskContent(String.format("检验检测业务开通办理,【申请单号:%s】", model.getApplicationSeq()));
dto.setRelationId(workflowResultDto.getInstanceId());
dto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
dto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
dto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setFlowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
dto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
dto.setStartUserId(reginParams.getUserModel().getUserId());
dto.setStartUser(reginParams.getUserModel().getRealName());
dto.setStartUserCompanyName(reginParams.getCompany().getCompanyCode());
dto.setStartDate(new Date());
model.setWorkflowProstanceId(workflowResultDto.getInstanceId());
model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
dto.setModel(model);
dto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
list.add(dto);
commonServiceImpl.buildTaskModel(list);
}
public void updateTask(JyjcOpeningApplication model, WorkflowResultDto workflowResultDto) {
// 更新代办状态
HashMap<String, Object> params = new HashMap<>();
params.put("relationId", model.getWorkflowProstanceId());
params.put("flowStatus", model.getStatus());
params.put("flowStatusLabel", model.getStatus());
params.put("taskStatus", model.getStatus());
params.put("taskStatusLabel", model.getStatus());
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(params);
// 创建新的代办
if (!ObjectUtils.isEmpty(taskV2Model)) {
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
taskModelDto.setModel(model);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
commonServiceImpl.buildTaskModel(Collections.singletonList(taskModelDto));
} else {
JyjcOpeningApplicationModel applicationModel = new JyjcOpeningApplicationModel();
BeanUtil.copyProperties(model, applicationModel);
buildTask(applicationModel, workflowResultDto);
}
}
} }
\ No newline at end of file
[ [ {
"type":"supervise",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1734576595978448898&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"firstinspect",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1736728282272919554&roleIds={roleIds}&userId={userId}&pageType=edit"
}, {
"type":"detection",
"pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1736733779709423618&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{ {
"type":"supervise", "type":"supervise",
"pageType": "look", "pageType": "look",
...@@ -24,15 +36,15 @@ ...@@ -24,15 +36,15 @@
"pageType": "edit", "pageType": "edit",
"url": "/mixuap?appId=1742358052905971713&id=1736733779709423618&roleIds={roleIds}&userId={userId}&pageType=edit" "url": "/mixuap?appId=1742358052905971713&id=1736733779709423618&roleIds={roleIds}&userId={userId}&pageType=edit"
}, { }, {
"type":"businessOpen", "type":"114",
"pageType": "draft", "pageType": "draft",
"url": "/mixuap?appId=1742358052905971713&id=1734569644833927170&roleIds={roleIds}&userId={userId}&pageType=edit" "url": "/mixuap?appId=1742358052905971713&id=1737319295022559234&roleIds={roleIds}&userId={userId}&pageType=edit"
}, { }, {
"type":"businessOpen", "type":"114",
"pageType": "look", "pageType": "look",
"url": "/mixuap?appId=1742358052905971713&id=1735201757841092609&roleIds={roleIds}&userId={userId}&pageType=edit" "url": "/mixuap?appId=1742358052905971713&id=1735201757841092609&roleIds={roleIds}&userId={userId}&pageType=edit"
}, { }, {
"type":"businessOpen", "type":"114",
"pageType": "edit", "pageType": "edit",
"url": "/mixuap?appId=1742358052905971713&id=1735201757841092609&roleIds={roleIds}&userId={userId}&pageType=edit" "url": "/mixuap?appId=1742358052905971713&id=1735201757841092609&roleIds={roleIds}&userId={userId}&pageType=edit"
} }
......
...@@ -51,4 +51,6 @@ public interface IGenerateCodeService { ...@@ -51,4 +51,6 @@ public interface IGenerateCodeService {
* @return 7位监管编码生成 * @return 7位监管编码生成
*/ */
String createSupervisoryCode(String key); String createSupervisoryCode(String key);
String initCode();
} }
...@@ -5,10 +5,7 @@ import com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService; ...@@ -5,10 +5,7 @@ import com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
...@@ -66,4 +63,14 @@ public class GenerateCodeController extends BaseController { ...@@ -66,4 +63,14 @@ public class GenerateCodeController extends BaseController {
public ResponseModel<String> createUseRegistrationCode(@RequestParam("key") String key) { public ResponseModel<String> createUseRegistrationCode(@RequestParam("key") String key) {
return ResponseHelper.buildResponse(generateCodeService.createUseRegistrationCode(key)); return ResponseHelper.buildResponse(generateCodeService.createUseRegistrationCode(key));
} }
/**
* 初始化96333和监管码到Redis
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/init-code")
@ApiOperation(httpMethod = "GET", value = "初始化96333和监管码到Redis", notes = "初始化96333和监管码到Redis")
public ResponseModel<String> initCode() {
return ResponseHelper.buildResponse(generateCodeService.initCode());
}
} }
...@@ -3,9 +3,11 @@ package com.yeejoin.amos.boot.module.ymt.biz.service.impl; ...@@ -3,9 +3,11 @@ package com.yeejoin.amos.boot.module.ymt.biz.service.impl;
import com.yeejoin.amos.boot.module.ymt.api.common.DateUtils; import com.yeejoin.amos.boot.module.ymt.api.common.DateUtils;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentCategoryEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.CategoryOtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService; import com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -33,12 +35,15 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService { ...@@ -33,12 +35,15 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
private static final String SEQUENCE_TYPE = "%07d"; private static final String SEQUENCE_TYPE = "%07d";
private static final long LOCK_EXPIRATION_SECONDS = 60; private static final long LOCK_EXPIRATION_SECONDS = 60;
private final RedisTemplate<String, String> redisTemplate; private final RedisTemplate<String, String> redisTemplate;
private final StringRedisTemplate stringRedisTemplate;
private final CategoryOtherInfoMapper categoryOtherInfoMapper;
private String rulePrefix = ""; private String rulePrefix = "";
public GenerateCodeServiceImpl(RedisTemplate<String, String> redisTemplate) { public GenerateCodeServiceImpl(RedisTemplate<String, String> redisTemplate, StringRedisTemplate stringRedisTemplate, CategoryOtherInfoMapper categoryOtherInfoMapper) {
this.redisTemplate = redisTemplate; this.redisTemplate = redisTemplate;
this.stringRedisTemplate = stringRedisTemplate;
this.categoryOtherInfoMapper = categoryOtherInfoMapper;
} }
/** /**
* 生成申请单编号(13位,GZ20231214000) * 生成申请单编号(13位,GZ20231214000)
* *
...@@ -93,6 +98,15 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService { ...@@ -93,6 +98,15 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
return (key.length() == 5) ? generateSupervisorySequence(key) : "生成码规则不对!"; return (key.length() == 5) ? generateSupervisorySequence(key) : "生成码规则不对!";
} }
@Override
public String initCode() {
categoryOtherInfoMapper.selectSupervisorCodeMaxValue().forEach(vo ->
stringRedisTemplate.opsForValue().set(vo.getName(), String.valueOf(vo.getValue())));
categoryOtherInfoMapper.selectElevatorCodeMaxValue().forEach(vo ->
stringRedisTemplate.opsForValue().set(vo.getName(), String.valueOf(vo.getValue())));
return "ok";
}
private String generateSupervisorySequence(String sequenceKey) { private String generateSupervisorySequence(String sequenceKey) {
// 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码 // 使用分布式锁,确保在并发情况下只有一个线程能够生成顺序码
Boolean lockAcquired = obtainLock(GenerateCodeServiceImpl.LOCK_KEY_SUPERVISORY); Boolean lockAcquired = obtainLock(GenerateCodeServiceImpl.LOCK_KEY_SUPERVISORY);
...@@ -102,7 +116,7 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService { ...@@ -102,7 +116,7 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
ValueOperations<String, String> valueOps = redisTemplate.opsForValue(); ValueOperations<String, String> valueOps = redisTemplate.opsForValue();
String currentSequenceStr = valueOps.get(sequenceKey); String currentSequenceStr = valueOps.get(sequenceKey);
// 如果为空,则初始化为0 // 如果为空,则初始化为0
Long currentSequence = (currentSequenceStr != null) ? Long.parseLong(currentSequenceStr) : 0L; Long currentSequence = (currentSequenceStr != null) ? Long.parseLong(currentSequenceStr) : this.initRedis(sequenceKey);
log.info("===================>获取《{}》当前顺序码:{}<===================", sequenceKey, currentSequenceStr); log.info("===================>获取《{}》当前顺序码:{}<===================", sequenceKey, currentSequenceStr);
currentSequence++; currentSequence++;
...@@ -121,6 +135,18 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService { ...@@ -121,6 +135,18 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
} }
/** /**
* 监管码为空的话,初始化Redis
* @param sequenceKey key
* @return 顺序码
*/
private Long initRedis(String sequenceKey) {
categoryOtherInfoMapper.selectSupervisorCodeMaxValue().forEach(vo ->
stringRedisTemplate.opsForValue().set(vo.getName(), String.valueOf(vo.getValue())));
return Long.parseLong(Objects.requireNonNull(redisTemplate.opsForValue().get(sequenceKey)));
}
/**
* 校验枚举合法性 * 校验枚举合法性
* *
* @param value value * @param value value
......
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