Commit 296f7938 authored by 韩桐桐's avatar 韩桐桐

fix(jg):改造告知

parent 730bab85
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
......@@ -153,11 +154,18 @@ public class JgReformNoticeDto extends BaseDto {
@ApiModelProperty (value = "是否西咸")
private String isXixian;
@ApiModelProperty(value = "设备类别")
@ApiModelProperty(value = "设备种类code")
private String equListCode;
@ApiModelProperty(value = "设备种类名称")
private String equListName;
@ApiModelProperty(value = "设备类别code")
private String equCategoryCode;
@ApiModelProperty(value = "设备类别名称")
private String equCategory;
private String equCategoryName;
/* ---------------- -------------- */
@ApiModelProperty (value = "告知设备列表")
......
......@@ -27,4 +27,7 @@ public class JgReformNoticeEqDto extends BaseDto {
@ApiModelProperty(value = "设备id")
private String equId;
@ApiModelProperty(value = "告知书编号")
private String informNumber;
}
......@@ -299,16 +299,28 @@ public class JgReformNotice extends BaseEntity {
@TableField("status")
private String status;
/**
* 设备类别
* 设备种类code
*/
@TableField(value = "equ_list_code")
private String equListCode;
/**
* 设备种类名称
*/
@TableField(value = "equ_list_name")
private String equListName;
/**
* 设备类别code
*/
@TableField(value = "equ_category_code")
private String equCategoryCode;
/**
* 设备类别名称
*/
@TableField(value = "equ_category")
private String equCategory;
@TableField(value = "equ_category_name")
private String equCategoryName;
/**
*工作流下一节点任务id
......
......@@ -23,7 +23,7 @@ public class JgReformNoticeEq extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 设备移交申请id
* 改造告知seq
*/
@TableField("equip_transfer_id")
private String equipTransferId;
......@@ -34,4 +34,10 @@ public class JgReformNoticeEq extends BaseEntity {
@TableField("equ_id")
private String equId;
/**
* 告知书编号
*/
@TableField("inform_number")
private String informNumber;
}
......@@ -19,6 +19,9 @@
isn.province_name AS provinceName,
isn.notice_report_url AS noticeReportUrl,
isn.equ_list_code as equListCode,
isn.equ_list_name as equListName,
isn.equ_category_code as equCategoryCode,
isn.equ_category_name as equCategoryName,
isn.create_user_id as createUserId,
isn.next_execute_user_ids as nextExecuteUserIds,
isn.instance_id AS instanceId,
......@@ -30,24 +33,12 @@
isn.next_execute_ids as nextExecuteIds,
isn.instance_status AS instanceStatus,
isn.inform_number AS informNumber,
isn.equ_category AS equCategory,
isn.next_task_id as nextTaskId,
ri.EQU_CODE AS equCode,
oi.SUPERVISORY_CODE AS supervisoryCode,
oi.CODE96333 as code96333,
DATE_FORMAT(isn.plan_date,'%Y-%m-%d') AS planDate,
DATE_FORMAT(isn.notice_date,'%Y-%m-%d') AS noticeDate,
DATE_FORMAT(isn.accept_date,'%Y-%m-%d') AS acceptDate,
(SELECT name from tz_equipment_category ec WHERE ec.code = ri.EQU_LIST) AS equList,
(select name from tz_equipment_category ec WHERE ec.code = ri.EQU_DEFINE) AS equDefine,
concat(ibjui."PROVINCE_NAME", '', ibjui."CITY_NAME", '', ibjui."COUNTY_NAME", '', ibjui."STREET_NAME") as fullAddress,
ibjui."ADDRESS" as detailedAddress
DATE_FORMAT(isn.accept_date,'%Y-%m-%d') AS acceptDate
FROM
tzs_jg_reform_notice isn
LEFT JOIN tzs_jg_reform_notice_eq re ON re.equip_transfer_id = isn.sequence_nbr
LEFT JOIN idx_biz_jg_register_info ri ON ri.record = re.equ_id
LEFT JOIN idx_biz_jg_use_info ibjui ON ibjui.record = re.equ_id
LEFT JOIN idx_biz_jg_other_info oi ON oi.RECORD = re.equ_id
<where>
isn.is_delete = false
<if test="param != null ">
......@@ -72,35 +63,6 @@
<if test="param.noticeDate != null ">
AND isn.notice_date like concat('%',DATE_FORMAT(#{param.noticeDate},'%Y-%m-%d'),'%')
</if>
<if test="param.equListCode != null and param.equListCode != ''">
AND ri."EQU_LIST" = #{param.equListCode}
</if>
<if test="param.equCategory != null and param.equCategory != ''">
AND ri."equ_category" = #{param.equCategory}
</if>
<if test="param.equDefine != null and param.equDefine != ''">
AND ri."EQU_DEFINE" = #{param.equDefine}
</if>
<if test="param.equCode != null and param.equCode != ''">
AND ri."EQU_CODE" like concat('%',#{param.equCode},'%')
</if>
<if test="param.informNumber != null and param.informNumber != ''">
AND isn.inform_number like concat('%',#{param.informNumber},'%')
</if>
<if test="param.supervisoryCode != null and param.supervisoryCode != ''">
AND oi.SUPERVISORY_CODE like concat('%',#{param.supervisoryCode},'%')
</if>
<if test="param.code96333 != null and param.code96333 != ''">
AND oi.CODE96333 like concat('%',#{param.code96333},'%')
</if>
<if test="param.address != null and param.address != ''">
AND (
ibjui."PROVINCE_NAME" LIKE CONCAT('%', #{param.address}, '%')
OR ibjui."CITY_NAME" LIKE CONCAT('%', #{param.address}, '%')
OR ibjui."COUNTY_NAME" LIKE CONCAT('%', #{param.address}, '%')
OR ibjui."STREET_NAME" LIKE CONCAT('%', #{param.address}, '%')
)
</if>
<if test="param.useUnitCreditCode != null and param.useUnitCreditCode != ''">
AND isn.use_unit_credit_code = #{param.useUnitCreditCode}
</if>
......@@ -110,6 +72,12 @@
<if test="param.receiveCompanyCode != null and param.receiveCompanyCode != ''">
AND isn.receive_company_code = #{param.receiveCompanyCode}
</if>
<if test="param.equListCode != null and param.equListCode != ''">
AND isn.equ_list_code = #{param.equListCode}
</if>
<if test="param.equCategoryCode != null and param.equCategoryCode != ''">
AND isn.equ_category_code = #{param.equCategoryCode}
</if>
</if>
<if test="type == 'supervision'">
AND (isn.notice_status in ('6612', '6613', '6614', '6616') )
......
......@@ -73,13 +73,8 @@ public class JgReformByWorkFlowController {
@TycloudOperation (ApiLevel = UserType.AGENCY)
@PostMapping (value = "/accept")
@ApiOperation (httpMethod = "POST", value = "改造告知受理", notes = "改造告知受理")
public ResponseModel<JgReformNoticeDto> accept(@RequestBody Map<String, Object> model, String op) {
// TODO 受理改造告知流程
LinkedHashMap model1 = (LinkedHashMap) model.get("model");
String opinion = (String) model.get("opinion");
JgReformNoticeDto jgReformNoticeDto = JSON.parseObject(JSON.toJSONString(model1), JgReformNoticeDto.class);
jgReformNoticeDto.setRemark(opinion);
jgReformNoticeService.accept(jgReformNoticeDto, op);
return ResponseHelper.buildResponse(null);
public ResponseModel<Boolean> accept(@RequestBody Map<String, Object> map, String op) {
jgReformNoticeService.accept(map, op);
return ResponseHelper.buildResponse(Boolean.TRUE);
}
}
......@@ -1402,7 +1402,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
if (ValidationUtil.isEmpty(map.get("useUnitCreditCode")) || ValidationUtil.isEmpty(map.get("county"))) {
throw new BadRequest("请先选择使用单位,施工区县等信息");
}
map.put("USE_UNIT_CREDIT_CODE", map.get("useUnitCreditCode"));
map.put("USE_UNIT_CREDIT_CODE", String.valueOf(map.get("useUnitCreditCode")).split("_")[0]);
map.put(USE_PLACE_CODE, String.valueOf(map.get("county")).split("_")[0]);
} else if (ValidationUtil.equals(queryType, "GZ_WX")) {// 维修告知设备选择 - 业务限制
// 设备类别(EQU_CATEGORY)、安装单位(USC_UNIT_CREDIT_CODE)、选择的使用单位(USE_UNIT_CREDIT_CODE)、选择的区县(USE_PLACE_CODE)过滤数据
......
......@@ -5,6 +5,7 @@ import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
......@@ -12,6 +13,8 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
......@@ -26,6 +29,7 @@ import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService;
import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
......@@ -97,6 +101,8 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
@Autowired
RedisUtils redisUtils;
@Autowired
private Sequence sequence;
@Autowired
IIdxBizJgRegisterInfoService idxBizJgRegisterInfoService;
@Autowired
JgInstallationNoticeServiceImpl jgInstallationNoticeService;
......@@ -110,6 +116,8 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
private RedissonClient redissonClient;
@Autowired
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
@Autowired
ESEquipmentCategory esEquipmentCategory;
/**
* 根据sequenceNbr查询
......@@ -150,12 +158,35 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
} else {
// 显示最新的设备信息
Map<String, Object> equipMap = setEquipInfoNew(sequenceNbr);
equipMap.putAll(reformNoticeMap);
return equipMap;
List<JgReformNoticeEq> noticeEqs = jgReformNoticeEqMapper.selectList(new LambdaQueryWrapper<JgReformNoticeEq>()
.eq(JgReformNoticeEq::getEquipTransferId, sequenceNbr));
List<String> ids = noticeEqs.stream().map(JgReformNoticeEq::getEquId).collect(Collectors.toList());
Iterable<ESEquipmentCategoryDto> equips = esEquipmentCategory.findAllById(ids);
List<Map<String, Object>> equipListMaps = getEquipListMaps(equips);
reformNoticeMap.put("deviceList", equipListMaps);
return reformNoticeMap;
}
}
private List<Map<String, Object>> getEquipListMaps(Iterable<ESEquipmentCategoryDto> equips) {
List<Map<String, Object>> arrayList = new ArrayList<>();
equips.forEach(equip -> {
Map<String, Object> objectHashMap = new HashMap<>();
BeanUtil.beanToMap(equip, objectHashMap, false, false);
objectHashMap.put("record", equip.getSEQUENCE_NBR());
objectHashMap.put("ADDRESS", concatDetailAddress(equip));
arrayList.add(objectHashMap);
});
return arrayList;
}
private String concatDetailAddress(ESEquipmentCategoryDto esEquipmentCategoryDto) {
// 省、市、区
String usePlace = esEquipmentCategoryDto.getUSE_PLACE();
// 详细地址
String address = esEquipmentCategoryDto.getADDRESS();
return String.format("%s%s", usePlace, address);
}
private Map<String, Object> setEquipInfoNew(Long sequenceNbr) {
Map<String, Object> equipMap = new HashMap<>();
......@@ -219,7 +250,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
// 删除暂存
commonService.deleteTasksByRelationId(notice.getSequenceNbr() + "");
// 如果为保存并提交,则创建代办
this.buildTask(Collections.singletonList(notice), Collections.singletonList(workflowResultDto));
this.buildTask(notice, Collections.singletonList(workflowResultDto));
} else {
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
......@@ -372,7 +403,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
@Transactional(rollbackFor = Exception.class)
public List<JgReformNotice> saveNotice(String submitType, Map<String, Object> JgReformNoticeDtoMap, ReginParams reginParams) {
try {
JgReformNoticeDto model = JSON.parseObject(JSONObject.toJSONString(JgReformNoticeDtoMap.get(TABLE_PAGE_ID)), JgReformNoticeDto.class);
String jsonString = JSONObject.toJSONString(JgReformNoticeDtoMap.get(TABLE_PAGE_ID));
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JgReformNoticeDto model = JSON.parseObject(jsonString, JgReformNoticeDto.class);
convertField(model);
// 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList();
......@@ -383,87 +416,86 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
this.repeatUsedEquipCheck(deviceList, reginParams.getCompany().getCompanyCode());
}
// 获取告知单号
ResponseModel<List<String>> codeResult = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.GZGZ.getCode(), deviceList.size());
// 获取申请单号
ResponseModel<List<String>> codeResult = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.GZGZ.getCode(), 1);
List<String> applyNoList = null;
if (codeResult != null && !ValidationUtil.isEmpty(codeResult.getResult())) {
applyNoList = codeResult.getResult();
}
if (CollectionUtils.isEmpty(applyNoList)) {
throw new BadRequest("申请单编号生成失败,请稍后重试!");
}
// 申请单业务主键seq
long sequenceNbr = sequence.nextId();
// 启动工作流
List<WorkflowResultDto> workflowResultList = this.startWorkFlow(model.getReceiveCompanyCode(), submitType, deviceList);
List<JgReformNotice> list = new ArrayList<>();
List<JgReformNoticeEq> equipList = new ArrayList<>();
List<String> finalApplyNoList = applyNoList;
List<WorkflowResultDto> workflowResultList = this.startWorkFlow(model.getReceiveCompanyCode(), submitType, applyNoList.get(0));
CompanyBo companyBo = commonService.getOneCompany(model.getReceiveCompanyCode());
JgReformNotice notice = new JgReformNotice();
BeanUtils.copyProperties(model, notice);
notice.setSequenceNbr(sequenceNbr);
notice.setApplyNo(applyNoList.get(0));
notice.setNoticeDate(new Date());
notice.setCreateUserName(reginParams.getUserModel().getRealName());
notice.setCreateUserId(reginParams.getUserModel().getUserId());
notice.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
String equListCode = String.valueOf(jsonObject.get("EQU_LIST_CODE"));
String equCategoryCode = String.valueOf(jsonObject.get("EQU_CATEGORY_CODE"));
notice.setEquListCode(equListCode);
EquipmentCategory equipmentCategory1 = equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>()
.eq(EquipmentCategory::getCode, equListCode));
notice.setEquListName(equipmentCategory1.getName());
notice.setEquCategoryCode(equCategoryCode);
EquipmentCategory equipmentCategory2 = equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>()
.eq(EquipmentCategory::getCode, equCategoryCode));
notice.setEquCategoryName(equipmentCategory2.getName());
// 统计用
notice.setReceiveCompanyOrgCode(companyBo.getOrgCode());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
WorkflowResultDto workflowResult = workflowResultList.get(0);
notice.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
notice.setInstanceStatus(workflowResult.getNextExecutorRoleIds() + "," + workflowResult.getExecutorRoleIds());
notice.setPromoter(reginParams.getUserModel().getUserId());
notice.setNextTaskId(workflowResult.getNextTaskId());
notice.setNextExecuteUserIds(workflowResult.getNextExecutorUserIds());
} else {
notice.setNextExecuteUserIds(RequestContext.getExeUserId());
}
notice.setInstallUnitName(reginParams.getCompany().getCompanyName());
notice.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
notice.setEntrustingUnitName(reginParams.getCompany().getCompanyName());
notice.setEntrustingUnitCreditCode(reginParams.getCompany().getCompanyCode());
if (!CollectionUtils.isEmpty(workflowResultList)) {
notice.setInstanceId(workflowResultList.get(0).getInstanceId());
notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
notice.setCreateUserId(reginParams.getUserModel().getUserId());
// 插入业务单
jgReformNoticeMapper.insert(notice);
List<JgReformNoticeEq> noticeEqs = new ArrayList<>();
// 更新设备关系表
deviceList.forEach(obj -> {
JgReformNoticeEq jgRelationEquip = new JgReformNoticeEq();
JgReformNotice dto = new JgReformNotice();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
String applyNo = finalApplyNoList.get(i);
dto.setApplyNo(applyNo);
dto.setNoticeDate(new Date());
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
dto.setEquCategory(Objects.toString(obj.get("EQU_CATEGORY"), ""));
dto.setEquListCode(Objects.toString(obj.get("EQU_DEFINE"), ""));
dto.setSupervisoryCode(Objects.toString(obj.get("SUPERVISORY_CODE"), ""));
dto.setEquList(Objects.toString(obj.get("EQU_LIST"), ""));
dto.setFullAddress(Objects.toString(obj.get("ADDRESS"), ""));
// 统计用
dto.setReceiveCompanyOrgCode(companyBo.getOrgCode());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
WorkflowResultDto workflowResult = workflowResultList.get(i);
dto.setNextExecuteIds(workflowResult.getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResult.getNextExecutorRoleIds() + "," + workflowResult.getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextTaskId(workflowResult.getNextTaskId());
dto.setNextExecuteUserIds(workflowResult.getNextExecutorUserIds());
} else {
dto.setNextExecuteUserIds(RequestContext.getExeUserId());
}
dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
dto.setEntrustingUnitName(reginParams.getCompany().getCompanyName());
dto.setEntrustingUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(workflowResultList)) {
dto.setInstanceId(workflowResultList.get(i).getInstanceId());
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
dto.setCreateUserId(reginParams.getUserModel().getUserId());
list.add(dto);
equipList.add(jgRelationEquip);
jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
noticeEqs.add(jgRelationEquip);
});
jgReformNoticeMapper.insertBatchSomeColumn(list);
jgReformNoticeEqMapper.insertBatchSomeColumn(noticeEqs);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
this.buildTask(list, workflowResultList);
this.buildTask(notice, workflowResultList);
} else {
this.saveTempReformNotice(list);
this.saveTempReformNotice(notice);
}
List<JgReformNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<JgReformNotice> collect = list.stream().filter(JgReformNotice -> jgRelationEquip.getEquipTransferId().equals(JgReformNotice.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
jgReformNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
this.updateRedisBatch(list);
return list;
this.updateRedisBatch(Collections.singletonList(notice));
return Collections.singletonList(notice);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
......@@ -476,9 +508,11 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
FlowingEquipRedisContext.clean();
}
}
private void repeatUsedEquipCheck(List<Map<String, Object>> equipList, String companyCode) {
equipList.forEach(equipMap -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).equipRepeatUsedCheck(String.valueOf(equipMap.get("SEQUENCE_NBR")), companyCode));
}
private void checkRepeatUsed(String submitType, JgReformNotice jgReformNotice) {
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 流程中校验
......@@ -489,6 +523,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
.equipRepeatUsedCheck(jgRelationEquip.getEquId(), jgReformNotice.getInstallUnitCreditCode());
}
}
/**
* 删除 redis校验重复引用设备的数据
*/
......@@ -499,6 +534,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.delDataForCheckEquipRepeatUsed(Collections.singletonList(jgRelationEquip.getEquId()), notice.getInstallUnitCreditCode());
}
private void rollBackForDelRedisData() {
FlowingEquipRedisContext.getContext().forEach(e -> {
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
......@@ -513,17 +549,16 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
/**
* 批量暂存
* 暂存
*
* @param noticeList 移交信息
* @param notice 移交信息
*/
private void saveTempReformNotice(List<JgReformNotice> noticeList) {
if (CollectionUtils.isEmpty(noticeList)) {
private void saveTempReformNotice(JgReformNotice notice) {
if (ValidationUtil.isEmpty(notice)) {
return;
}
List<TaskModelDto> taskModelDtoList = noticeList.stream().map(this::buildTempTaskModelDto).collect(Collectors.toList());
commonService.buildTaskModel(taskModelDtoList);
TaskModelDto taskModelDto = this.buildTempTaskModelDto(notice);
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
private TaskModelDto buildTempTaskModelDto(JgReformNotice item) {
......@@ -539,14 +574,12 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
/**
* 插入代办
*/
private void buildTask(List<JgReformNotice> list, List<WorkflowResultDto> workflowResultList) {
if (CollectionUtils.isEmpty(list) || CollectionUtils.isEmpty(workflowResultList)) {
private void buildTask(JgReformNotice notice, List<WorkflowResultDto> workflowResultList) {
if (ValidationUtil.isEmpty(notice) || CollectionUtils.isEmpty(workflowResultList)) {
return;
}
List<TaskModelDto> taskModelDtoList = list.stream().map(item ->
this.buildTaskModelDto(item, workflowResultList.get(0))).collect(Collectors.toList());
commonService.buildTaskModel(taskModelDtoList);
TaskModelDto taskModelDto = this.buildTaskModelDto(notice, workflowResultList.get(0));
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
/**
......@@ -588,25 +621,21 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
* 启动工作流
*
* @param submitType 提交类型
* @param deviceList 设备列表
* @param applyNo 申请单号
* @return 工作流信息
*/
private List<WorkflowResultDto> startWorkFlow(String receiveOrgCode, String submitType, List<Map<String, Object>> deviceList) {
private List<WorkflowResultDto> startWorkFlow(String receiveOrgCode, String submitType, String applyNo) {
if (!SUBMIT_TYPE_FLOW.equals(submitType)) {
return new ArrayList<>();
}
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = deviceList.stream()
.map(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
dto.setCompleteFirstTask(Boolean.TRUE);
dto.setNextExecuteUserCompanyCode(receiveOrgCode);
return dto;
})
.collect(Collectors.toList());
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(applyNo);
dto.setCompleteFirstTask(Boolean.TRUE);
dto.setNextExecuteUserCompanyCode(receiveOrgCode);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
// 组装工作流返回的数据
......@@ -759,9 +788,15 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
* @param op 通过或驳回
*/
@Transactional(rollbackFor = Exception.class)
public void accept(JgReformNoticeDto dto, String op) {
String instanceId = dto.getInstanceId();
String nextTaskId = dto.getNextTaskId();
public void accept(Map<String, Object> map, String op) {
LinkedHashMap model1 = (LinkedHashMap) map.get("model");
String opinion = (String) map.get("opinion");
String jsonString = JSON.toJSONString(model1);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JgReformNoticeDto jgReformNoticeDto = JSON.parseObject(jsonString, JgReformNoticeDto.class);
jgReformNoticeDto.setRemark(opinion);
String instanceId = jgReformNoticeDto.getInstanceId();
String nextTaskId = jgReformNoticeDto.getNextTaskId();
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
try {
......@@ -773,16 +808,8 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
// 流程执行时,状态及权限校验
commonService.checkForExecuteFlow(nextTaskId, instanceId);
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
JgReformNotice jgReformNotice = baseMapper.selectById(dto.getSequenceNbr());
JgReformNotice jgReformNotice = baseMapper.selectById(jgReformNoticeDto.getSequenceNbr());
jgReformNotice.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
// 组装设备注册代码
String ym = null;
try {
ym = DateUtils.dateFormat(new Date(), DateUtils.DATE_PATTERN_MM);
} catch (ParseException e) {
log.error("日期转换失败:{}", e.getMessage());
}
TaskResultDTO workDto = new TaskResultDTO();
workDto.setResultCode("approvalStatus");
......@@ -795,28 +822,39 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
workDto.setNextExecuteUserCompanyCode("1".equals(op) ? jgReformNotice.getInstallUnitCreditCode() : jgReformNotice.getReceiveOrgCode());
workDto.setVariable(commMap);
workDto.setComment(dto.getRemark());
workDto.setComment(jgReformNoticeDto.getRemark());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(jgReformNotice.getNextTaskId(), workDto, op);
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgReformNotice.setPromoter(reginParams.getUserModel().getUserId());
jgReformNotice.setRemark(dto.getRemark());
jgReformNotice.setRemark(jgReformNoticeDto.getRemark());
TaskV2Model taskV2Model;
if ("0".equals(op)) {
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
LambdaQueryWrapper<JgReformNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgReformNoticeEq::getEquipTransferId, dto.getSequenceNbr());
JgReformNoticeEq jgRelationEquip = jgReformNoticeEqMapper.selectOne(queryWrapper);
queryWrapper.eq(JgReformNoticeEq::getEquipTransferId, jgReformNoticeDto.getSequenceNbr());
List<JgReformNoticeEq> noticeEqs = jgReformNoticeEqMapper.selectList(queryWrapper);
noticeEqs.forEach(noticeEq ->{
// 安装告知书编号
String ym = null;
try {
ym = DateUtils.dateFormat(new Date(), DateUtils.DATE_PATTERN_MM);
} catch (ParseException e) {
log.error("日期转换失败:{}", e.getMessage());
}
LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(RegistrationInfo::getRecord, noticeEq.getEquId());
RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2);
String equCode = Optional.ofNullable(tzsJgRegistrationInfo.getEquDefine())
.orElse(tzsJgRegistrationInfo.getEquCategory());
String registrationCode = equCode + jgReformNotice.getReceiveCompanyCode() + ym;
ResponseModel<String> responseModel = tzsServiceFeignClient.deviceRegistrationCode(registrationCode);
String deviceRegistrationCode = responseModel.getResult();
noticeEq.setInformNumber(deviceRegistrationCode);
jgReformNoticeEqMapper.updateById(noticeEq);
});
// 通过时记录历史数据
this.saveHisDataBeforeUpdate(jgReformNotice, jgRelationEquip.getEquId());
LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(RegistrationInfo::getRecord, jgRelationEquip.getEquId());
RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2);
String equCode = Optional.ofNullable(tzsJgRegistrationInfo.getEquDefine())
.orElse(tzsJgRegistrationInfo.getEquCategory());
String registrationCode = equCode + jgReformNotice.getReceiveCompanyCode() + ym;
ResponseModel<String> responseModel = tzsServiceFeignClient.deviceRegistrationCode(registrationCode);
String deviceRegistrationCode = responseModel.getResult();
jgReformNotice.setInformNumber(deviceRegistrationCode);
this.saveHisDataBeforeUpdate(jgReformNotice, jsonObject);
jgReformNotice.setAcceptDate(new Date());
jgReformNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgReformNotice.setPromoter("");
......@@ -841,11 +879,8 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
} else {
jgReformNotice.setPromoter("");
jgReformNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
jgReformNotice.setSupervisoryCode(dto.getSupervisoryCode());
jgReformNotice.setEquList(dto.getEquList());
jgReformNotice.setNextTaskId(workflowResultDto.getNextTaskId());
jgReformNotice.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// jgReformNotice.setInstanceId(workflowResultDto.getInstanceId());
// 上个代办改为驳回
taskV2Model = this.updateLastTodo(jgReformNotice, FlowStatusEnum.REJECTED);
......@@ -864,9 +899,9 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
private void saveHisDataBeforeUpdate(JgReformNotice jgReformNotice, String equId) {
Map<String, Object> map = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equId);
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getName(), new JSONObject(map), equId, jgReformNotice.getSequenceNbr().toString());
private void saveHisDataBeforeUpdate(JgReformNotice jgReformNotice,JSONObject jsonObject) {
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getName(),
new JSONObject(jsonObject), null, String.valueOf(jgReformNotice.getSequenceNbr()));
}
public InstanceRuntimeData buildInstanceRuntimeData(JgReformNotice jgReformNotice) {
......
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