Commit 05fd6a35 authored by tianyiming's avatar tianyiming

维修告知批量提交业务部分功能提交

parent 6eed5f31
...@@ -334,6 +334,9 @@ public class JgMaintainNotice extends BaseEntity { ...@@ -334,6 +334,9 @@ public class JgMaintainNotice extends BaseEntity {
private String equList; private String equList;
@TableField(exist = false) @TableField(exist = false)
private String equCategoryDesc;
@TableField(exist = false)
private String supervisoryCode; private String supervisoryCode;
/** /**
* 维修类型名称 * 维修类型名称
......
...@@ -6,7 +6,6 @@ import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; ...@@ -6,7 +6,6 @@ import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date;
/** /**
* 维修告知设备关系表 * 维修告知设备关系表
...@@ -34,4 +33,29 @@ public class JgMaintainNoticeEq extends BaseEntity { ...@@ -34,4 +33,29 @@ public class JgMaintainNoticeEq extends BaseEntity {
@TableField("equ_id") @TableField("equ_id")
private String equId; private String equId;
/**
* 设备代码
*/
@TableField("equ_code")
private String equCode;
/**
* 告知书编号
*/
@TableField(value = "inform_number")
private String informNumber;
/**
* 设备类别
*/
@TableField(value = "equ_list_code")
private String equListCode;
/**
* 设备类别名称
*/
@TableField(value = "equ_category_code")
private String equCategoryCode;
} }
...@@ -67,20 +67,9 @@ ...@@ -67,20 +67,9 @@
isn.create_user_company_name AS createUserCompanyName, isn.create_user_company_name AS createUserCompanyName,
isn.next_execute_user_ids AS nextExecuteUserIds, isn.next_execute_user_ids AS nextExecuteUserIds,
isn.transfer_to_user_ids AS transferToUserIds, isn.transfer_to_user_ids AS transferToUserIds,
isn.inform_number AS informNumber, (SELECT name from tz_equipment_category ec WHERE ec.code = isn.equ_list_code) AS equListName,
ri.EQU_CODE AS equCode, (select name from tz_equipment_category ec WHERE ec.code = isn.equ_category) AS equCategoryName
(SELECT name from tz_equipment_category ec WHERE ec.code = ri.EQU_LIST) AS equListName,
(select name from tz_equipment_category ec WHERE ec.code = ri.EQU_DEFINE) AS equDefineName,
(select name from tz_equipment_category ec WHERE ec.code = ri.EQU_CATEGORY) AS equCategoryName,
concat(ibjui."PROVINCE_NAME", '', ibjui."CITY_NAME", '', ibjui."COUNTY_NAME", '', ibjui."STREET_NAME") as fullAddress,
ibjui."ADDRESS" as detailedAddress,
ibjoi.SUPERVISORY_CODE as supervisoryCode,
ibjoi.CODE96333 as code96333
FROM tzs_jg_maintain_notice isn FROM tzs_jg_maintain_notice isn
left join tzs_jg_maintain_notice_eq isneq on isn.sequence_nbr = isneq.equip_transfer_id
LEFT JOIN idx_biz_jg_use_info ibjui on isneq.equ_id = ibjui.RECORD
LEFT JOIN idx_biz_jg_register_info ri ON isneq.equ_id = ri.record
LEFT JOIN idx_biz_jg_other_info ibjoi ON isneq.equ_id = ibjoi.RECORD
<where> <where>
isn.is_delete = 0 isn.is_delete = 0
<if test="param != null "> <if test="param != null ">
...@@ -108,37 +97,17 @@ ...@@ -108,37 +97,17 @@
<if test="param.informNumber != null and param.informNumber != ''"> <if test="param.informNumber != null and param.informNumber != ''">
AND isn.inform_number like concat('%',#{param.informNumber},'%') AND isn.inform_number like concat('%',#{param.informNumber},'%')
</if> </if>
<if test="param.supervisoryCode != null and param.supervisoryCode != ''">
AND ibjoi.supervisory_code like concat('%',#{param.supervisoryCode},'%')
</if>
<if test="param.installUnitCreditCode != null and param.installUnitCreditCode != ''"> <if test="param.installUnitCreditCode != null and param.installUnitCreditCode != ''">
AND isn.install_unit_credit_code like concat('%',#{param.installUnitCreditCode},'%') AND isn.install_unit_credit_code like concat('%',#{param.installUnitCreditCode},'%')
</if> </if>
<if test="param.code96333 != null and param.code96333 != ''">
AND ibjoi.code96333 like concat('%',#{param.code96333},'%')
</if>
<if test="param.equCode != null and param.equCode != ''">
AND ri.EQU_CODE like concat('%',#{param.equCode},'%')
</if>
<if test="param.noticeDate != null"> <if test="param.noticeDate != null">
AND isn.notice_date like concat('%',DATE_FORMAT(#{param.noticeDate},'%Y-%m-%d'),'%') AND isn.notice_date like concat('%',DATE_FORMAT(#{param.noticeDate},'%Y-%m-%d'),'%')
</if> </if>
<if test="param.equListCode != null and param.equListCode != ''"> <if test="param.equListCode != null and param.equListCode != ''">
AND ri."EQU_LIST" = #{param.equListCode} AND isn."equ_list_code" = #{param.equListCode}
</if> </if>
<if test="param.equCategory != null and param.equCategory != ''"> <if test="param.equCategory != null and param.equCategory != ''">
AND ri."equ_category" = #{param.equCategory} AND isn."equ_category" = #{param.equCategory}
</if>
<if test="param.equDefine != null and param.equDefine != ''">
AND ri."EQU_DEFINE" = #{param.equDefine}
</if>
<if test="param.fullAddress != null and param.fullAddress != ''">
AND (
ibjui."PROVINCE_NAME" LIKE CONCAT('%', #{param.fullAddress}, '%')
OR ibjui."CITY_NAME" LIKE CONCAT('%', #{param.fullAddress}, '%')
OR ibjui."COUNTY_NAME" LIKE CONCAT('%', #{param.fullAddress}, '%')
OR ibjui."STREET_NAME" LIKE CONCAT('%', #{param.fullAddress}, '%')
)
</if> </if>
</if> </if>
<if test="type != 'company'"> <if test="type != 'company'">
......
...@@ -80,7 +80,7 @@ public class JgMaintainByWorkFlowController { ...@@ -80,7 +80,7 @@ public class JgMaintainByWorkFlowController {
LinkedHashMap maintainInfo = (LinkedHashMap) model1.get(TABLE_PAGE_ID); LinkedHashMap maintainInfo = (LinkedHashMap) model1.get(TABLE_PAGE_ID);
String opinion = model.get("opinion").toString(); String opinion = model.get("opinion").toString();
JgMaintainNoticeDto jgMaintainNoticeDto = JSON.parseObject(JSON.toJSONString(maintainInfo), JgMaintainNoticeDto.class); JgMaintainNoticeDto jgMaintainNoticeDto = JSON.parseObject(JSON.toJSONString(maintainInfo), JgMaintainNoticeDto.class);
jgMaintainNoticeServiceImpl.accept(jgMaintainNoticeDto, op,opinion); jgMaintainNoticeServiceImpl.accept(jgMaintainNoticeDto, op, opinion, model1);
return ResponseHelper.buildResponse(null); return ResponseHelper.buildResponse(null);
} }
} }
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; ...@@ -5,6 +5,7 @@ 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;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil; import com.github.pagehelper.util.StringUtil;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo; import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
...@@ -13,11 +14,12 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; ...@@ -13,11 +14,12 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService; import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl; import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; 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.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.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNotice; import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNoticeEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintainNoticeEqMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintainNoticeEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintainNoticeMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintainNoticeMapper;
...@@ -39,6 +41,7 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.*; ...@@ -39,6 +41,7 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
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.*; import com.yeejoin.amos.feign.workflow.model.*;
import io.seata.spring.annotation.GlobalTransactional;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -81,6 +84,9 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -81,6 +84,9 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
EquipmentCategoryMapper equipmentCategoryMapper; EquipmentCategoryMapper equipmentCategoryMapper;
@Autowired @Autowired
JgMaintainNoticeEqMapper jgMaintainNoticeEqMapper; JgMaintainNoticeEqMapper jgMaintainNoticeEqMapper;
@Autowired
JgMaintainNoticeEqServiceImpl jgMaintainNoticeEqService;
@Autowired @Autowired
private JgMaintainNoticeMapper jgMaintainNoticeMapper; private JgMaintainNoticeMapper jgMaintainNoticeMapper;
...@@ -93,6 +99,12 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -93,6 +99,12 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
OtherInfoMapper tzsJgOtherInfoMapper; OtherInfoMapper tzsJgOtherInfoMapper;
@Autowired @Autowired
ESEquipmentCategory esEquipmentCategory;
@Autowired
private Sequence sequence;
@Autowired
SupervisoryCodeInfoMapper supervisoryCodeInfoMapper; SupervisoryCodeInfoMapper supervisoryCodeInfoMapper;
@Autowired @Autowired
...@@ -123,6 +135,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -123,6 +135,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
@Autowired @Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper; private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
private JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
@Autowired
private JgCertificateChangeRecordEqServiceImpl jgCertificateChangeRecordEqServiceImpl;
/** /**
* 根据sequenceNbr查询 * 根据sequenceNbr查询
* *
...@@ -174,6 +191,8 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -174,6 +191,8 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
// 新数据逻辑 // 新数据逻辑
hisData.putAll(maintainInfo); hisData.putAll(maintainInfo);
CommonServiceImpl.formatTime2StrDateForEquip(hisData); CommonServiceImpl.formatTime2StrDateForEquip(hisData);
setNewEquipInfo(sequenceNbr, maintainInfo);
hisData.put("deviceList", maintainInfo.get("deviceList"));
return new HashMap<String, Map<String, Object>>() {{ return new HashMap<String, Map<String, Object>>() {{
this.put(TABLE_PAGE_ID, hisData); this.put(TABLE_PAGE_ID, hisData);
}}; }};
...@@ -209,9 +228,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -209,9 +228,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
LambdaQueryWrapper<JgMaintainNoticeEq> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<JgMaintainNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgMaintainNoticeEq::getEquipTransferId, notice.getSequenceNbr()); queryWrapper.eq(JgMaintainNoticeEq::getEquipTransferId, notice.getSequenceNbr());
JgMaintainNoticeEq noticeEq = jgMaintainNoticeEqMapper.selectOne(queryWrapper); List<JgMaintainNoticeEq> noticeEq = jgMaintainNoticeEqMapper.selectList(queryWrapper);
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY) for (JgMaintainNoticeEq jgMaintainNoticeEq : noticeEq) {
.delDataForCheckEquipRepeatUsed(Collections.singletonList(noticeEq.getEquId()), notice.getInstallUnitCreditCode()); EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.delDataForCheckEquipRepeatUsed(Collections.singletonList(jgMaintainNoticeEq.getEquId()), notice.getInstallUnitCreditCode());
}
} }
} }
...@@ -223,13 +244,32 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -223,13 +244,32 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} }
private void setNewEquipInfo(Long sequenceNbr, Map<String, Object> maintainInfo) { private void setNewEquipInfo(Long sequenceNbr, Map<String, Object> maintainInfo) {
JgMaintainNoticeEq jgMaintainNoticeEq = jgMaintainNoticeEqMapper.selectOne(new LambdaQueryWrapper<JgMaintainNoticeEq>().eq(JgMaintainNoticeEq::getEquipTransferId, sequenceNbr)); List<JgMaintainNoticeEq> jgMaintainNoticeEq = jgMaintainNoticeEqMapper.selectList(new LambdaQueryWrapper<JgMaintainNoticeEq>().eq(JgMaintainNoticeEq::getEquipTransferId, sequenceNbr));
Map<String, Object> map = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(jgMaintainNoticeEq.getEquId()); List<String> ids = jgMaintainNoticeEq.stream().map(JgMaintainNoticeEq::getEquId).collect(Collectors.toList());
map.put("uuseUnitCreditCode", map.get("useUnitCreditCode"));
map.remove("useUnitCreditCode"); Iterable<ESEquipmentCategoryDto> esEquipmentCategoryDtos = esEquipmentCategory.findAllById(ids);
map.remove("address"); List<Map<String, Object>> deviceList = getEquipListMaps(esEquipmentCategoryDtos);
map.remove("sequenceNbr"); maintainInfo.put("deviceList", deviceList);
maintainInfo.putAll(map); }
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);
} }
/** /**
...@@ -467,58 +507,59 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -467,58 +507,59 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
this.repeatUsedEquipCheck(deviceList, reginParams.getCompany().getCompanyCode()); this.repeatUsedEquipCheck(deviceList, reginParams.getCompany().getCompanyCode());
} }
// 获取告知单号 // 获取告知单号
ResponseModel<List<String>> applyNoResult = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.WXGZ.getCode(), deviceList.size()); ResponseModel<List<String>> applyNoResult = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.WXGZ.getCode(), 1);
if (CollectionUtils.isEmpty(applyNoResult.getResult())) { if (CollectionUtils.isEmpty(applyNoResult.getResult())) {
log.error(" 获取告知单号失败"); log.error(" 获取告知单号失败");
throw new RuntimeException(); throw new RuntimeException();
} }
List<String> applyNoList = applyNoResult.getResult(); String applyNo = applyNoResult.getResult().get(0);
List<WorkflowResultDto> workflowResultDtoList = workFlowInfo(submitType, deviceList, model.getReceiveCompanyCode()); List<WorkflowResultDto> workflowResultDtoList = workFlowInfo(submitType, deviceList, model.getReceiveCompanyCode());
List<JgMaintainNotice> list = new ArrayList<>(); List<JgMaintainNotice> list = new ArrayList<>();
List<JgMaintainNoticeEq> equipList = new ArrayList<>(); List<JgMaintainNoticeEq> equipList = new ArrayList<>();
CompanyBo companyBo = commonService.getOneCompany(model.getReceiveCompanyCode()); CompanyBo companyBo = commonService.getOneCompany(model.getReceiveCompanyCode());
// 维修告知表添加数据
JgMaintainNotice dto = new JgMaintainNotice();
BeanUtils.copyProperties(model, dto);
dto.setApplyNo(applyNo);
// 统计使用
dto.setReceiveCompanyOrgCode(companyBo.getOrgCode());
dto.setNoticeDate(new Date());
dto.setEquListCode(model.getEquListCode());
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(workflowResultDtoList.get(0).getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResultDtoList.get(0).getNextExecutorRoleIds() + "," + workflowResultDtoList.get(0).getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextExecuteUserIds(workflowResultDtoList.get(0).getNextExecutorUserIds());
dto.setNextTaskId(workflowResultDtoList.get(0).getNextTaskId());
dto.setInstanceId(workflowResultDtoList.get(0).getInstanceId());
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setNextExecuteUserIds(reginParams.getUserModel().getUserId());
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
dto.setEquListCode(String.valueOf(deviceList.get(0).get("EQU_LIST_CODE")));
dto.setEquCategory(String.valueOf(deviceList.get(0).get("EQU_CATEGORY_CODE")));
dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
dto.setCreateUserName(reginParams.getUserModel().getRealName());
dto.setCreateUserId(reginParams.getUserModel().getUserId());
DataDictionary dictionary = iDataDictionaryService.getByCode(dto.getMaintainType(), "WXLX");
dto.setMaintainTypeDesc(dictionary.getName());
dto.setFullAddress(dto.getProvinceName() + dto.getCityName() + dto.getCountyName() + dto.getStreetName() + dto.getAddress());
dto.setEquCategoryDesc(String.valueOf(deviceList.get(0).get("EQU_CATEGORY")));
dto.setEquList(String.valueOf(deviceList.get(0).get("EQU_LIST")));
list.add(dto);
deviceList.forEach(obj -> { deviceList.forEach(obj -> {
JgMaintainNoticeEq jgRelationEquip = new JgMaintainNoticeEq(); JgMaintainNoticeEq jgRelationEquip = new JgMaintainNoticeEq();
JgMaintainNotice dto = new JgMaintainNotice();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
String applyNo = applyNoList.get(i);
dto.setApplyNo(applyNo);
// 统计使用
dto.setReceiveCompanyOrgCode(companyBo.getOrgCode());
dto.setNoticeDate(new Date());
dto.setEquCategory(String.valueOf(obj.get("EQU_CATEGORY")));
dto.setEquListCode(String.valueOf(obj.get("EQU_LIST_CODE")));
dto.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(workflowResultDtoList.get(i).getNextExecutorRoleIds());
dto.setInstanceStatus(workflowResultDtoList.get(i).getNextExecutorRoleIds() + "," + workflowResultDtoList.get(i).getExecutorRoleIds());
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setNextExecuteUserIds(workflowResultDtoList.get(i).getNextExecutorUserIds());
dto.setNextTaskId(workflowResultDtoList.get(i).getNextTaskId());
dto.setInstanceId(workflowResultDtoList.get(i).getInstanceId());
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setNextExecuteUserIds(reginParams.getUserModel().getUserId());
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
dto.setEquList(String.valueOf(obj.get("EQU_LIST")));
dto.setSupervisoryCode(String.valueOf(obj.get("SUPERVISORY_CODE")));
dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR"))); jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(applyNo); jgRelationEquip.setEquipTransferId(applyNo);
jgRelationEquip.setEquCode(ObjectUtils.isEmpty(obj.get("EQU_CODE"))?null:String.valueOf(obj.get("EQU_CODE")));
dto.setCreateUserName(reginParams.getUserModel().getRealName()); jgRelationEquip.setEquListCode(String.valueOf(obj.get("EQU_LIST_CODE")));
dto.setCreateUserId(reginParams.getUserModel().getUserId()); jgRelationEquip.setEquCategoryCode(String.valueOf(obj.get("EQU_CATEGORY_CODE")));
DataDictionary dictionary = iDataDictionaryService.getByCode(dto.getMaintainType(), "WXLX");
dto.setMaintainTypeDesc(dictionary.getName());
dto.setFullAddress(dto.getProvinceName() + dto.getCityName() + dto.getCountyName() + dto.getStreetName() + dto.getAddress());
list.add(dto);
equipList.add(jgRelationEquip); equipList.add(jgRelationEquip);
}); });
jgMaintainNoticeMapper.insertBatchSomeColumn(list); jgMaintainNoticeMapper.insertBatchSomeColumn(list);
...@@ -611,7 +652,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -611,7 +652,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
taskMessageDto.setNextTaskId(item.getNextTaskId()); taskMessageDto.setNextTaskId(item.getNextTaskId());
taskModelDto.setModel(taskMessageDto); taskModelDto.setModel(taskMessageDto);
taskModelDto.setNextExecuteUser(item.getNextExecuteIds()); taskModelDto.setNextExecuteUser(item.getNextExecuteIds());
taskModelDto.setTaskContent(String.format("来自%s【%s】的业务办理,【申请单号:%s】", item.getEquList(), StringUtils.isEmpty(item.getSupervisoryCode()) ? "" : item.getSupervisoryCode(), item.getApplyNo())); taskModelDto.setTaskContent(String.format("%s发起%s维修告知业务申请,【申请单号%s】", item.getCreateUserName(), item.getEquList(), item.getApplyNo()));
taskModelDtoList.add(taskModelDto); taskModelDtoList.add(taskModelDto);
if (bool) { if (bool) {
// 删除暂存时生成的待办 // 删除暂存时生成的待办
...@@ -627,15 +668,13 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -627,15 +668,13 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
// 发起流程 // 发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO(); ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>(); List<ActWorkflowStartDTO> list = new ArrayList<>();
deviceList.forEach(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY); dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
//下一节点执行人单位(下节点接收机构code) //下一节点执行人单位(下节点接收机构code)
dto.setNextExecuteUserCompanyCode(receiveCompanyCode); dto.setNextExecuteUserCompanyCode(receiveCompanyCode);
dto.setCompleteFirstTask(Boolean.TRUE); dto.setCompleteFirstTask(Boolean.TRUE);
list.add(dto); list.add(dto);
});
actWorkflowBatchDTO.setProcess(list); actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO); List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
...@@ -759,6 +798,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -759,6 +798,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void cancel(JgMaintainNoticeDto noticeDto) { public void cancel(JgMaintainNoticeDto noticeDto) {
String instanceId = noticeDto.getInstanceId(); String instanceId = noticeDto.getInstanceId();
String nextTaskId = noticeDto.getNextTaskId(); String nextTaskId = noticeDto.getNextTaskId();
...@@ -810,7 +850,8 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -810,7 +850,8 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void accept(JgMaintainNoticeDto dto, String op, String opinion) { @GlobalTransactional(rollbackFor = Exception.class)
public void accept(JgMaintainNoticeDto dto, String op, String opinion,Map<String, Object> model) {
String instanceId = dto.getInstanceId(); String instanceId = dto.getInstanceId();
String nextTaskId = dto.getNextTaskId(); String nextTaskId = dto.getNextTaskId();
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId); String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
...@@ -843,17 +884,21 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -843,17 +884,21 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) { if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
LambdaQueryWrapper<JgMaintainNoticeEq> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<JgMaintainNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgMaintainNoticeEq::getEquipTransferId, dto.getSequenceNbr()); queryWrapper.eq(JgMaintainNoticeEq::getEquipTransferId, dto.getSequenceNbr());
JgMaintainNoticeEq jgRelationEquip = jgMaintainNoticeEqMapper.selectOne(queryWrapper); List<JgMaintainNoticeEq> jgRelationEquip = jgMaintainNoticeEqMapper.selectList(queryWrapper);
this.saveHisDataBeforeUpdate(jgMaintainNotice, jgRelationEquip.getEquId()); for (JgMaintainNoticeEq jgMaintainNoticeEq : jgRelationEquip) {
LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>(); this.saveHisDataBeforeUpdate(jgMaintainNotice, jgMaintainNoticeEq.getEquId());
queryWrapper2.eq(RegistrationInfo::getRecord, jgRelationEquip.getEquId());
RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2); LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>();
String equCode = Optional.ofNullable(tzsJgRegistrationInfo.getEquDefine()) queryWrapper2.eq(RegistrationInfo::getRecord, jgMaintainNoticeEq.getEquId());
.orElse(tzsJgRegistrationInfo.getEquCategory()); RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2);
String registrationCode = equCode + jgMaintainNotice.getReceiveCompanyCode() + ym; String equCode = Optional.ofNullable(tzsJgRegistrationInfo.getEquDefine())
ResponseModel<String> responseModel = tzsServiceFeignClient.deviceRegistrationCode(registrationCode); .orElse(tzsJgRegistrationInfo.getEquCategory());
String deviceRegistrationCode = responseModel.getResult(); String registrationCode = equCode + jgMaintainNotice.getReceiveCompanyCode() + ym;
jgMaintainNotice.setInformNumber(deviceRegistrationCode); ResponseModel<String> responseModel = tzsServiceFeignClient.deviceRegistrationCode(registrationCode);
jgMaintainNoticeEq.setInformNumber(responseModel.getResult());
}
jgMaintainNoticeEqService.saveOrUpdateBatch(jgRelationEquip);
jgMaintainNotice.setAcceptDate(new Date()); jgMaintainNotice.setAcceptDate(new Date());
jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())); jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgMaintainNotice.setPromoter(""); jgMaintainNotice.setPromoter("");
...@@ -869,11 +914,17 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -869,11 +914,17 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
TaskMessageDto taskMessageDto = new TaskMessageDto(); TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtils.copyProperties(jgMaintainNotice, taskMessageDto); BeanUtils.copyProperties(jgMaintainNotice, taskMessageDto);
taskMap.put("model", taskMessageDto); taskMap.put("model", taskMessageDto);
commonService.updateTaskModel(taskMap); TaskV2Model taskV2Model1 = commonService.updateTaskModel(taskMap);
jgMaintainNotice.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds()); jgMaintainNotice.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
jgMaintainNotice.setNextTaskId(workflowResultDto.getNextTaskId()); jgMaintainNotice.setNextTaskId(workflowResultDto.getNextTaskId());
jgMaintainNoticeMapper.updateById(jgMaintainNotice); jgMaintainNoticeMapper.updateById(jgMaintainNotice);
// 保存历史表
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(model));
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MAINTENANCE_NOTIFICATION.getName(), jsonObject, "", jgMaintainNotice.getSequenceNbr().toString());
// 保存流水表
saveRecord(jgMaintainNotice, jgRelationEquip, taskV2Model1.getRoutePath());
} else { } else {
jgMaintainNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds()); jgMaintainNotice.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
if (!ObjectUtils.isEmpty(jgMaintainNotice.getInstanceStatus())) { if (!ObjectUtils.isEmpty(jgMaintainNotice.getInstanceStatus())) {
...@@ -950,9 +1001,49 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -950,9 +1001,49 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} }
private void saveRecord(JgMaintainNotice jgMaintainNotice, List<JgMaintainNoticeEq> jgMaintainNoticeEqList, String routePath) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String content = jgMaintainNotice.getCreateUserName() + "办理了【维修告知】" +
"单号【" + jgMaintainNotice.getApplyNo() + "】,办理日期" + DateUtils.getDateNowShortStr();
List<JgCertificateChangeRecord> certificateChangeRecords = new ArrayList<>();
List<JgCertificateChangeRecordEq> changeRecordEqList = new ArrayList<>();
long seq = sequence.nextId();
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
changeRecord.setSequenceNbr(seq);
changeRecord.setApplyNo(jgMaintainNotice.getApplyNo());
changeRecord.setReceiveOrgName(jgMaintainNotice.getReceiveOrgName());
changeRecord.setAuditPassDate(new Date());
changeRecord.setRegType("维修告知");
changeRecord.setRegDate(jgMaintainNotice.getCreateDate());
changeRecord.setChangeContent(content);
changeRecord.setReceiveCompanyCode(jgMaintainNotice.getReceiveOrgCode());
changeRecord.setUseUnitCreditCode(jgMaintainNotice.getUseUnitCreditCode());
changeRecord.setUseUnitName(jgMaintainNotice.getUseUnitName());
changeRecord.setCreateDate(new Date());
changeRecord.setCreateUserId(reginParams.getUserModel().getUserId());
changeRecord.setRoutePath(routePath);
certificateChangeRecords.add(changeRecord);
jgMaintainNoticeEqList.stream().forEach(e -> {
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(changeRecord.getSequenceNbr().toString()); //登记证记录主键
changeRecordEq.setEquId(e.getEquId()); //设备主键
changeRecordEq.setProductCode(e.getEquCode()); //设备代码
changeRecordEqList.add(changeRecordEq);
});
if (certificateChangeRecords.size() > 0) {
certificateChangeRecordService.saveBatch(certificateChangeRecords);
}
if (changeRecordEqList.size() > 0) {
jgCertificateChangeRecordEqServiceImpl.saveBatch(changeRecordEqList);
}
}
private void saveHisDataBeforeUpdate(JgMaintainNotice jgMaintainNotice, String equId) { private void saveHisDataBeforeUpdate(JgMaintainNotice jgMaintainNotice, String equId) {
Map<String, Object> map = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equId); Map<String, Object> map = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equId);
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MAINTENANCE_NOTIFICATION.getName(), new JSONObject(map), equId, jgMaintainNotice.getSequenceNbr().toString()); commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MAINTENANCE_NOTIFICATION.getName(), new JSONObject(map), null, jgMaintainNotice.getSequenceNbr().toString());
} }
......
...@@ -269,7 +269,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -269,7 +269,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(noticeParams)); JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(noticeParams));
commonService.saveExecuteFlowData2Redis(instanceId, buildInstanceRuntimeData(jgScrapCancel)); commonService.saveExecuteFlowData2Redis(instanceId, buildInstanceRuntimeData(jgScrapCancel));
String equListName = EquipmentClassifityEnum.getNameByCode(jsonObject.get("equListCode").toString()); String equListName = EquipmentClassifityEnum.getNameByCode(jsonObject.get("equListCode").toString());
save2HisData(jsonObject, jgScrapCancel.getSequenceNbr().toString()); save2HisData(jsonObject, jgScrapCancel.getSequenceNbr().toString(),jgScrapCancel.getCancelTypeDesc());
JgScrapCancelDto dto = new JgScrapCancelDto(); JgScrapCancelDto dto = new JgScrapCancelDto();
BeanUtil.copyProperties(jgScrapCancel, dto); BeanUtil.copyProperties(jgScrapCancel, dto);
dto.setEquListName(equListName); dto.setEquListName(equListName);
...@@ -419,8 +419,8 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -419,8 +419,8 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
} }
private void save2HisData(JSONObject jsonObject, String currentDocumentId) { private void save2HisData(JSONObject jsonObject, String currentDocumentId,String cancelTypeDesc) {
commonService.saveOrUpdateHistory("", jsonObject, null, currentDocumentId); commonService.saveOrUpdateHistory(cancelTypeDesc, jsonObject, null, currentDocumentId);
} }
private void createTaskModel(JgScrapCancel scrapCancel, String taskName, String submitType, String nextUserIds) { private void createTaskModel(JgScrapCancel scrapCancel, String taskName, String submitType, String nextUserIds) {
......
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