Commit cb44ec4b authored by 王果's avatar 王果

维修告知接口调整

parent d6314708
...@@ -196,4 +196,11 @@ public class JgMaintainNoticeDto extends BaseDto { ...@@ -196,4 +196,11 @@ public class JgMaintainNoticeDto extends BaseDto {
@ApiModelProperty(value = "设备类别名称") @ApiModelProperty(value = "设备类别名称")
private String equCategory; private String equCategory;
private List<String> roleIds;
private String dataType;
@ApiModelProperty(value = "状态")
private String status;
} }
...@@ -304,4 +304,13 @@ public class JgMaintainNotice extends BaseEntity { ...@@ -304,4 +304,13 @@ public class JgMaintainNotice extends BaseEntity {
*/ */
@TableField(value = "equ_category") @TableField(value = "equ_category")
private String equCategory; private String equCategory;
/**
* 状态
*/
@TableField("status")
private String status;
@TableField("next_execute_ids")
private String nextExecuteIds;
} }
...@@ -8,92 +8,95 @@ ...@@ -8,92 +8,95 @@
<select id="queryForPage" resultType="com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNotice"> <select id="queryForPage" resultType="com.yeejoin.amos.boot.module.jg.api.entity.JgMaintainNotice">
select select
tjmn.sequence_nbr AS sequenceNbr, isn.sequence_nbr AS sequenceNbr,
tjmn.apply_no AS applyNo, isn.apply_no AS applyNo,
tjmn.notice_date AS noticeDate, isn.notice_date AS noticeDate,
tjmn.use_unit_name AS useUnitName, isn.use_unit_name AS useUnitName,
tjmn.receive_org_name AS receiveOrgName, isn.receive_org_name AS receiveOrgName,
tjmn.address AS address, isn.address AS address,
tjmn.notice_status AS noticeStatus, isn.notice_status AS noticeStatus,
tjmn.install_unit_name AS installUnitName, isn.install_unit_name AS installUnitName,
tjmn.province, isn.province,
tjmn.city, isn.city,
tjmn.county, isn.county,
tjmn.factory_use_site_street, isn.factory_use_site_street,
tjmn.street_name, isn.street_name,
tjmn.street, isn.street,
tjmn.maintain_type, isn.maintain_type,
tjmn.plan_date, isn.plan_date,
tjmn.notice_report_url, isn.notice_report_url,
tjmn.province_name AS provinceName, isn.province_name AS provinceName,
tjmn.city_name AS cityName, isn.city_name AS cityName,
tjmn.county_name AS countyName, isn.county_name AS countyName,
tjmn.promoter, isn.promoter,
tjmn.equ_category AS equCategory, isn.equ_category AS equCategory,
tjmn.equ_list_code AS equListCode, isn.equ_list_code AS equListCode,
tjmn.instance_id AS instanceId isn.instance_id AS instanceId,
isn.accept_date AS acceptDate
FROM FROM
tzs_jg_maintain_notice tjmn tzs_jg_maintain_notice isn
<where> <where>
tjmn.is_delete = 0 isn.is_delete = 0
<if test="param != null "> <if test="param != null ">
<if test="param.applyNo != null and param.applyNo != ''"> <if test="param.applyNo != null and param.applyNo != ''">
AND tjmn.apply_no LIKE CONCAT('%', #{param.applyNo}, '%') AND isn.apply_no LIKE CONCAT('%', #{param.applyNo}, '%')
</if> </if>
<if test="param.receiveOrgName != null and param.receiveOrgName != ''"> <if test="param.receiveOrgCode != null and param.receiveOrgCode != ''">
AND tjmn.receive_org_name LIKE CONCAT('%', #{param.receiveOrgName}, '%') AND isn.receive_org_code = #{param.receiveOrgCode}
</if> </if>
<if test="param.useUnitName != null and param.useUnitName != ''"> <if test="param.useUnitName != null and param.useUnitName != ''">
AND tjmn.use_unit_name LIKE CONCAT('%', #{param.useUnitName}, '%') AND isn.use_unit_name LIKE CONCAT('%', #{param.useUnitName}, '%')
</if> </if>
<if test="param.installUnitName != null and param.installUnitName != ''"> <if test="param.installUnitName != null and param.installUnitName != ''">
AND tjmn.install_unit_name LIKE CONCAT('%', #{param.installUnitName}, '%') AND isn.install_unit_name LIKE CONCAT('%', #{param.installUnitName}, '%')
</if> </if>
<if test="param.noticeStatus != null and param.noticeStatus != ''"> <if test="param.noticeStatus != null and param.noticeStatus != ''">
AND tjmn.notice_status = #{param.noticeStatus} AND isn.notice_status = #{param.noticeStatus}
</if> </if>
<if test="param.maintainType != null and param.maintainType != ''"> <if test="param.maintainType != null and param.maintainType != ''">
AND tjmn.maintain_type = #{param.maintainType} AND isn.maintain_type = #{param.maintainType}
</if> </if>
</if> </if>
<if test="type == 'supervision'"> <if test="type == 'supervision'">
AND (tjmn.notice_status in ('6612', '6614', '6616') ) AND (isn.notice_status in ('6612', '6614', '6616') )
AND tjmn.receive_org_code = #{orgCode} AND isn.receive_org_code = #{orgCode}
</if> </if>
<if test="type == 'enterprise'"> <if test="type == 'enterprise'">
AND tjmn.install_unit_credit_code = #{orgCode} AND isn.install_unit_credit_code = #{orgCode}
</if> </if>
</where> </where>
ORDER BY ORDER BY
tjmn.create_date DESC isn.apply_no DESC
</select> </select>
<select id="queryEquipInformation" resultType="java.util.Map"> <select id="queryEquipInformation" resultType="java.util.Map">
select select
tjmn.sequence_nbr AS sequenceNbr, isn.sequence_nbr AS sequenceNbr,
tjmn.apply_no AS applyNo, isn.apply_no AS applyNo,
tjmn.notice_date AS noticeDate, isn.notice_date AS noticeDate,
tjmn.use_unit_name AS useUnitName, isn.use_unit_name AS useUnitName,
tjmn.receive_org_name AS receiveOrgName, isn.receive_org_name AS receiveOrgName,
tjmn.address AS address, isn.address AS address,
tjmn.notice_status AS noticeStatus, isn.notice_status AS noticeStatus,
tjmn.install_unit_name AS installUnitName, isn.install_unit_name AS installUnitName,
tjmn.province, isn.province,
tjmn.city, isn.city,
tjmn.county, isn.county,
tjmn.factory_use_site_street AS factoryUseSiteStreet, isn.factory_use_site_street AS factoryUseSiteStreet,
tjmn.street_name AS streetName, isn.street_name AS streetName,
tjmn.street, isn.street,
tjmn.maintain_type AS maintainType, isn.maintain_type AS maintainType,
tjmn.plan_date AS planDate, isn.notice_report_url AS noticeReportUrl,
tjmn.notice_report_url AS noticeReportUrl, isn.province_name AS provinceName,
tjmn.province_name AS provinceName, isn.city_name AS cityName,
tjmn.city_name AS cityName, isn.county_name AS countyName,
tjmn.county_name AS countyName, isn.instance_id AS instanceId,
tjmn.instance_id AS instanceId, isn.promoter,
tjmn.promoter, isn.equ_category AS equCategory,
tjmn.equ_category AS equCategory, isn.equ_list_code AS equListCode,
tjmn.equ_list_code AS equListCode, isn.plan_date AS installStartDate,
isn.construction_manager AS installLeaderName,
isn.construction_manager_phone AS installLeaderPhone,
ri.equ_list AS equList, ri.equ_list AS equList,
ri.equ_category AS equCategory, ri.equ_category AS equCategory,
ri.EQU_DEFINE AS equDefine, ri.EQU_DEFINE AS equDefine,
...@@ -116,7 +119,8 @@ ...@@ -116,7 +119,8 @@
fi.produce_unit_credit_code AS produceUnitCreditCode, fi.produce_unit_credit_code AS produceUnitCreditCode,
fi.produce_unit_name AS produceUnitName, fi.produce_unit_name AS produceUnitName,
fi.produce_license_num AS produceLicenseNum, fi.produce_license_num AS produceLicenseNum,
fi.factory_num AS factoryNum, fi.FACTORY_NUM AS produceCode,
fi.FACTORY_NUM AS factoryNum,
fi.produce_date AS produceDate, fi.produce_date AS produceDate,
fi.imported AS imported, fi.imported AS imported,
fi.produce_country AS produceCountry, fi.produce_country AS produceCountry,
...@@ -124,21 +128,22 @@ ...@@ -124,21 +128,22 @@
fi.product_quality_yield_prove AS productQualityYieldProve, fi.product_quality_yield_prove AS productQualityYieldProve,
fi.ins_use_maintain_explain AS insUseMaintainExplain, fi.ins_use_maintain_explain AS insUseMaintainExplain,
ui.safety_manager AS safetyManager, ui.safety_manager AS safetyManager,
ui.phone AS safetyManagerPhone, ei.legal_person AS safetyManager,
ui.PROVINCE_NAME AS useUnitProvinceName, ei.legal_phone AS safetyManagerPhone,
ui.CITY_NAME AS useUnitCityName, ui.CITY_NAME AS useUnitCityName,
ui.COUNTY_NAME AS useUnitCountyName, ui.COUNTY_NAME AS useUnitCountyName,
ui.ADDRESS AS useUnitAddress ei.ADDRESS AS useUnitAddress
FROM FROM
tzs_jg_maintain_notice tjmn tzs_jg_maintain_notice isn
LEFT JOIN tzs_jg_maintain_notice_eq re ON re.equip_transfer_id = tjmn.sequence_nbr LEFT JOIN tzs_jg_maintain_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_register_info ri ON ri.record = re.equ_id
LEFT JOIN idx_biz_jg_design_info di ON di.record = re.equ_id LEFT JOIN idx_biz_jg_design_info di ON di.record = re.equ_id
LEFT JOIN idx_biz_jg_factory_info fi ON fi.record = re.equ_id LEFT JOIN idx_biz_jg_factory_info fi ON fi.record = re.equ_id
LEFT JOIN idx_biz_jg_inspection_detection_info idi ON idi.record = re.equ_id LEFT JOIN idx_biz_jg_inspection_detection_info idi ON idi.record = re.equ_id
LEFT JOIN idx_biz_jg_use_info ui ON ui.record = re.equ_id LEFT JOIN idx_biz_jg_use_info ui ON ui.record = re.equ_id
LEFT JOIN tz_base_enterprise_info ei ON ei.use_code = isn.use_unit_credit_code
WHERE WHERE
tjmn.sequence_nbr = #{sequenceNbr} isn.sequence_nbr = #{sequenceNbr}
LIMIT 1 LIMIT 1
</select> </select>
</mapper> </mapper>
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.aspose.words.SaveFormat; import com.aspose.words.SaveFormat;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -10,7 +11,6 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams; ...@@ -10,7 +11,6 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; 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.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.jg.api.dto.ByteArrayMultipartFile; import com.yeejoin.amos.boot.module.jg.api.dto.ByteArrayMultipartFile;
import com.yeejoin.amos.boot.module.jg.api.dto.JgMaintainNoticeDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgMaintainNoticeDto;
...@@ -22,7 +22,6 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgMaintainNoticeService; ...@@ -22,7 +22,6 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgMaintainNoticeService;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient; import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils;
import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils; import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.ymt.api.entity.OtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo; 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.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
...@@ -132,7 +131,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -132,7 +131,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
maintainInfo.put("city", notice.getCity() + "_" + notice.getCityName()); maintainInfo.put("city", notice.getCity() + "_" + notice.getCityName());
maintainInfo.put("constructionManagerId", notice.getConstructionManagerId() + "_" + notice.getConstructionManager()); maintainInfo.put("constructionManagerId", notice.getConstructionManagerId() + "_" + notice.getConstructionManager());
maintainInfo.put("county", notice.getCounty() + "_" + notice.getCountyName()); maintainInfo.put("county", notice.getCounty() + "_" + notice.getCountyName());
maintainInfo.put("fullAddress", notice.getProvinceName() + notice.getCityName() + notice.getCityName() + notice.getStreetName() + notice.getAddress()); maintainInfo.put("fullAddress", notice.getProvinceName() + notice.getCityName() + notice.getCounty() + notice.getStreetName() + notice.getAddress());
maintainInfo.put("useUnitCreditCode", notice.getUseUnitCreditCode() + "_" + notice.getUseUnitName()); maintainInfo.put("useUnitCreditCode", notice.getUseUnitCreditCode() + "_" + notice.getUseUnitName());
maintainInfo.put("receiveOrgCode", notice.getReceiveOrgCode() + "_" + notice.getReceiveOrgName()); maintainInfo.put("receiveOrgCode", notice.getReceiveOrgCode() + "_" + notice.getReceiveOrgName());
if (!ValidationUtil.isEmpty(notice.getInspectionUnitCreditCode()) && !ValidationUtil.isEmpty(notice.getInspectionUnitName())) { if (!ValidationUtil.isEmpty(notice.getInspectionUnitCreditCode()) && !ValidationUtil.isEmpty(notice.getInspectionUnitName())) {
...@@ -167,10 +166,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -167,10 +166,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
public JgMaintainNoticeDto updateMaintainNotice(String submitType, JgMaintainNoticeDto noticeDto, String op) { public JgMaintainNoticeDto updateMaintainNotice(String submitType, JgMaintainNoticeDto noticeDto, String op) {
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType))
throw new IllegalArgumentException("参数不能为空"); throw new IllegalArgumentException("参数不能为空");
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey( String[] taskName = new String[]{"流程结束"};
RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 字段转换 // 字段转换
this.convertField(noticeDto); this.convertField(noticeDto);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
AjaxResult ajaxResult; AjaxResult ajaxResult;
// 发起流程 // 发起流程
...@@ -182,36 +182,31 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -182,36 +182,31 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
ajaxResult = Workflow.taskClient.startByVariable(dto); ajaxResult = Workflow.taskClient.startByVariable(dto);
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString(); String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
noticeDto.setInstanceId(instanceId); noticeDto.setInstanceId(instanceId);
// 查询下节点任务
getNext(roleListFirst, instanceId, taskName);
noticeDto.setInstanceStatus(String.join(",", roleListFirst));
} catch (Exception e) { } catch (Exception e) {
log.error("JgMaintainNoticeServiceImpl.updateMaintainNotice启动失败:{}", e); log.error("JgMaintainNoticeServiceImpl.updateMaintainNotice启动失败:{}", e);
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
ajaxResult = Workflow.taskClient.getTask(noticeDto.getInstanceId()); JgMaintainNotice notice = new JgMaintainNotice();
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data"))); BeanUtils.copyProperties(noticeDto, notice);
String taskId = dataObject.getString("id"); boolean submit = submit(notice, op);
//组装信息 if (submit) {
TaskResultDTO taskResultDTO = new TaskResultDTO(); // 查询下节点任务
taskResultDTO.setResultCode("approvalStatus"); getNext(roleListSecond, notice.getInstanceId(), taskName);
taskResultDTO.setTaskId(taskId); notice.setStatus(taskName[0]);
taskResultDTO.setComment("提交流程"); if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
HashMap<String, Object> map = new HashMap<>(); notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListSecond);
map.put("approvalStatus", op); } else {
taskResultDTO.setVariable(map); notice.setInstanceStatus(String.join(",", roleListSecond));
//执行流程
AjaxResult ajaxResult1;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, taskResultDTO);
if (ajaxResult1.get("code").equals(200)) {
noticeDto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
JgMaintainNotice bean = new JgMaintainNotice();
BeanUtils.copyProperties(noticeDto, bean);
bean.setPromoter(reginParams.getUserModel().getUserId());
jgMaintainNoticeMapper.updateById(bean);
} }
} catch (Exception e) { notice.setPromoter(RequestContext.getExeUserId());
log.error("JgMaintainNoticeServiceImpl.updateMaintainNotice执行失败:{}", e); notice.setNextExecuteIds(String.join(",", roleListSecond));
throw new RuntimeException(e); notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
updateById(notice);
} }
} else { } else {
JgMaintainNotice bean = new JgMaintainNotice(); JgMaintainNotice bean = new JgMaintainNotice();
...@@ -291,14 +286,16 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -291,14 +286,16 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
*/ */
@Override @Override
public String generateMaintainNoticeReport(Long sequenceNbr) { public String generateMaintainNoticeReport(Long sequenceNbr) {
if (Objects.isNull(sequenceNbr)) if (Objects.isNull(sequenceNbr)) {
throw new IllegalArgumentException("参数不能为空"); throw new IllegalArgumentException("参数不能为空");
JgMaintainNotice jgMaintainNotice = this.getById(sequenceNbr); }
JgMaintainNotice JgMaintainNotice = this.getById(sequenceNbr);
List<Map<String, Object>> informationList = jgMaintainNoticeMapper.queryEquipInformation(sequenceNbr); List<Map<String, Object>> informationList = jgMaintainNoticeMapper.queryEquipInformation(sequenceNbr);
if (Objects.isNull(jgMaintainNotice) || CollectionUtils.isEmpty(informationList)) if (Objects.isNull(JgMaintainNotice) || CollectionUtils.isEmpty(informationList)) {
throw new IllegalArgumentException("维修告知单不存在"); throw new IllegalArgumentException("维修告知单不存在");
Map<String, Object> maintain = informationList.get(0); }
Function<String, String> getValue = key -> maintain.getOrDefault(key, "").toString(); Map<String, Object> installation = informationList.get(0);
Function<String, String> getValue = key -> installation.getOrDefault(key, "").toString();
// 组装模板变量 // 组装模板变量
Map<String, Object> placeholders = new HashMap<>(); Map<String, Object> placeholders = new HashMap<>();
placeholders.put("sequenceNbr", getValue.apply("sequenceNbr")); placeholders.put("sequenceNbr", getValue.apply("sequenceNbr"));
...@@ -306,18 +303,18 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -306,18 +303,18 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
placeholders.put("applyNo", getValue.apply("applyNo")); placeholders.put("applyNo", getValue.apply("applyNo"));
placeholders.put("productName", getValue.apply("productName")); placeholders.put("productName", getValue.apply("productName"));
placeholders.put("equipType", getValue.apply("equType")); placeholders.put("equipType", getValue.apply("equType"));
placeholders.put("equipCode", ""); placeholders.put("equipCode", getValue.apply("equRegisterCode"));
placeholders.put("produceCode", getValue.apply("produceCode")); // TODO: 制造编号 placeholders.put("produceCode", getValue.apply("produceCode")); // TODO: 制造编号 - 设备出厂编号
placeholders.put("produceUnitName", getValue.apply("produceUnitName")); placeholders.put("produceUnitName", getValue.apply("produceUnitName"));
placeholders.put("produceLicenseNum", getValue.apply("produceLicenseNum")); placeholders.put("produceLicenseNum", getValue.apply("produceLicenseNum"));
placeholders.put("fullAddress", getValue.apply("provinceName") + getValue.apply("cityName") + getValue.apply("countyName") + getValue.apply("address")); placeholders.put("fullAddress", getValue.apply("provinceName") + getValue.apply("cityName") + getValue.apply("countyName") + getValue.apply("address"));
placeholders.put("installStartDate", ""); placeholders.put("installStartDate", getValue.apply("installStartDate"));
placeholders.put("installType", ""); placeholders.put("installType", "维修"); // TODO: 施工类别
placeholders.put("installLicenseNo", ""); placeholders.put("installLicenseNo", "");
placeholders.put("installLicenseExpirationDate", ""); placeholders.put("installLicenseExpirationDate", "");
placeholders.put("installLeaderName", ""); placeholders.put("installLeaderName", getValue.apply("installLeaderName"));// 施工负责人
placeholders.put("installLeaderPhone", ""); placeholders.put("installLeaderPhone", getValue.apply("installLeaderPhone"));// 施工负责人手机
placeholders.put("installUnitAddress", ""); placeholders.put("installUnitAddress", getValue.apply("provinceName") + getValue.apply("cityName") + getValue.apply("countyName") + getValue.apply("address")); // TODO: 施工单位地址
placeholders.put("useUnitName", getValue.apply("useUnitName")); placeholders.put("useUnitName", getValue.apply("useUnitName"));
placeholders.put("useUnitLeaderName", getValue.apply("safetyManager")); placeholders.put("useUnitLeaderName", getValue.apply("safetyManager"));
placeholders.put("useUnitLeaderPhone", getValue.apply("safetyManagerPhone")); placeholders.put("useUnitLeaderPhone", getValue.apply("safetyManagerPhone"));
...@@ -330,6 +327,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -330,6 +327,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
try { try {
pdfFile = this.wordToPdf("installation-notification-report.ftl", placeholders); pdfFile = this.wordToPdf("installation-notification-report.ftl", placeholders);
} catch (Exception e) { } catch (Exception e) {
log.error("word转pdf失败:{}", e);
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// 上传pdf至文件服务器 // 上传pdf至文件服务器
...@@ -338,11 +336,12 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -338,11 +336,12 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
try { try {
Files.deleteIfExists(pdfFile.toPath()); Files.deleteIfExists(pdfFile.toPath());
} catch (IOException e) { } catch (IOException e) {
log.error("JgMaintainNoticeServiceImpl.generateMaintainNoticeReport删除临时文件失败:{}", e); log.error("删除临时文件失败:{}", e);
throw new RuntimeException(e);
} }
//更新到数据库 // 更新到数据库
jgMaintainNotice.setNoticeReportUrl(url); JgMaintainNotice.setNoticeReportUrl(url);
this.updateById(jgMaintainNotice); this.updateById(JgMaintainNotice);
return url; return url;
} }
...@@ -380,43 +379,81 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -380,43 +379,81 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
@SuppressWarnings({"Duplicates", "rawtypes"}) @SuppressWarnings({"Duplicates", "rawtypes"})
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveNotice(String submitType, Map<String, JgMaintainNoticeDto> jgMaintainNoticeDtoMap, ReginParams reginParams) { public void saveNotice(String submitType, Map<String, JgMaintainNoticeDto> jgMaintainNoticeDtoMap, ReginParams reginParams) {
String[] taskName = new String[]{"流程结束"};
JgMaintainNoticeDto model = jgMaintainNoticeDtoMap.get(TABLE_PAGE_ID); JgMaintainNoticeDto model = jgMaintainNoticeDtoMap.get(TABLE_PAGE_ID);
// 字段转换 // 字段转换
convertField(model); convertField(model);
// 获取告知设备列表 // 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList(); List<Map<String, Object>> deviceList = model.getDeviceList();
if (CollectionUtils.isEmpty(deviceList)) if (CollectionUtils.isEmpty(deviceList)) {
return; return;
}
// 获取告知单号 // 获取告知单号
List<String> applyNoList = iCreateCodeService.createApplicationFormCode(ApplicationFormTypeEnum.WXGZ.getCode(), deviceList.size()); List<String> applyNoList = iCreateCodeService.createApplicationFormCode(ApplicationFormTypeEnum.WXGZ.getCode(), deviceList.size());
if (CollectionUtils.isEmpty(applyNoList)) if (CollectionUtils.isEmpty(applyNoList)) {
return; return;
}
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
// 判断当前是否为提交 // 判断当前是否为提交
List<String> instanceIdList = new ArrayList<>(); List<String> instanceIdList = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) { if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程 // 发起流程
// ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
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++) { for (int i = 0; i < deviceList.size(); i++
) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO(); ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY); dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(i)); dto.setBusinessKey(String.valueOf(i));
dto.setCompleteFirstTask(true); // dto.setCompleteFirstTask(true);
list.add(dto); list.add(dto);
} }
actWorkflowBatchDTO.setProcess(list); actWorkflowBatchDTO.setProcess(list);
try { try {
FeignClientResult result = Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO); FeignClientResult result = Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO);
List<Object> returnList = (List<Object>) result.getResult(); List<Object> returnList = (List<Object>) result.getResult();
for (Object obj : returnList) { for (Object obj : returnList
) {
JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(obj)); JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(obj));
instanceIdList.add(jsonObject.getString("id")); String instanceId = jsonObject.getString("id");
instanceIdList.add(instanceId);
// 查询下节点任务
if (returnList.get(0).equals(obj)) {
getNext(roleListFirst, instanceId, taskName);
}
// 推动下一个节点
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
// 组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "0");
dto.setVariable(map);
// 执行流程
AjaxResult ajaxResult1 = null;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ajaxResult1.get("code").equals(200)) {
getNext(roleListSecond, instanceId, taskName);
} else {
log.error("提交失败");
} }
} catch (Exception e) { } catch (Exception e) {
log.error("JgMaintainNoticeServiceImpl.saveNotice发起流程失败", e); log.error("提交失败:{}", e);
throw new RuntimeException(e); }
} }
} catch (Exception e) {
log.error("提交失败:{}", e);
} }
}
List<JgMaintainNotice> list = new ArrayList<>(); List<JgMaintainNotice> list = new ArrayList<>();
List<JgMaintainNoticeEq> equipList = new ArrayList<>(); List<JgMaintainNoticeEq> equipList = new ArrayList<>();
deviceList.forEach(obj -> { deviceList.forEach(obj -> {
...@@ -426,9 +463,13 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -426,9 +463,13 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
int i = deviceList.indexOf(obj); int i = deviceList.indexOf(obj);
String applyNo = applyNoList.get(i); String applyNo = applyNoList.get(i);
dto.setApplyNo(applyNo); dto.setApplyNo(applyNo);
dto.setEquCategory(String.valueOf(obj.get("EQU_CATEGORY")));
dto.setEquListCode(String.valueOf(obj.get("EQU_LIST_CODE")));
dto.setNoticeDate(new Date()); dto.setNoticeDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(String.join(",", roleListSecond));
dto.setInstanceStatus(String.join(",", roleListFirst));
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setStatus(taskName[0]);
}
dto.setInstallUnitName(reginParams.getCompany().getCompanyName()); dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode()); dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR"))); jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
...@@ -436,20 +477,39 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -436,20 +477,39 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
if (!CollectionUtils.isEmpty(instanceIdList)) { if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i)); dto.setInstanceId(instanceIdList.get(i));
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode())); dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
dto.setPromoter(reginParams.getUserModel().getUserId());
} else { } else {
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode())); dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
} }
list.add(dto); list.add(dto);
equipList.add(jgRelationEquip); equipList.add(jgRelationEquip);
}); });
jgMaintainNoticeMapper.insertBatchSomeColumn(list); jgMaintainNoticeMapper.insertBatchSomeColumn(list);
List<JgMaintainNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> { List<JgMaintainNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<JgMaintainNotice> collect = list.stream().filter(jgMaintainNotice -> jgRelationEquip.getEquipTransferId().equals(jgMaintainNotice.getApplyNo())).collect(Collectors.toList()); List<JgMaintainNotice> collect = list.stream().filter(JgMaintainNotice -> jgRelationEquip.getEquipTransferId().equals(JgMaintainNotice.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr(); Long sequenceNbr = collect.get(0).getSequenceNbr();
return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr)); return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList()); }).collect(Collectors.toList());
jgMaintainNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList); jgMaintainNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
}
void getNext(ArrayList<String> roleListFirst, String instanceId, String[] taskName) {
AjaxResult aj = Workflow.taskClient.getTaskNoAuth(instanceId);
JSONObject taskNoAuth = JSON.parseObject(JSON.toJSONString(aj.get("data")));
if (!ObjectUtils.isEmpty(taskNoAuth)) {
String nextTaskId = taskNoAuth.getString("id");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
taskName[0] = taskNoAuth.getString("name");
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleListFirst.add(((Map) datum).get("groupId").toString());
}
}
}
} }
private void convertField(JgMaintainNoticeDto model) { private void convertField(JgMaintainNoticeDto model) {
...@@ -534,14 +594,6 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -534,14 +594,6 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} }
} }
private String convertImageUrl(List<Map<String, String>> urlList) {
String urls = "";
if (!CollectionUtils.isEmpty(urlList)) {
urls = urlList.stream().map(map -> map.get("url")).collect(Collectors.joining(","));
}
return urls;
}
public boolean submit(JgMaintainNotice notice, String op) { public boolean submit(JgMaintainNotice notice, String op) {
AjaxResult ajaxResult = Workflow.taskClient.getTask(notice.getInstanceId()); AjaxResult ajaxResult = Workflow.taskClient.getTask(notice.getInstanceId());
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data"))); JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
...@@ -570,75 +622,69 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto ...@@ -570,75 +622,69 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} }
public void cancel(JgMaintainNoticeDto noticeDto) { public void cancel(JgMaintainNoticeDto noticeDto) {
String[] taskName = new String[]{"流程结束"};
FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId()); FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(noticeDto.getInstanceId());
JgMaintainNotice jgMaintainNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr()); JgMaintainNotice jgInstallationNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr());
ArrayList<String> roleList = new ArrayList<>();
if (ajaxResult.getStatus() == 200) { if (ajaxResult.getStatus() == 200) {
jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode())); getNext(roleList, noticeDto.getInstanceId(), taskName);
jgMaintainNoticeMapper.updateById(jgMaintainNotice); jgInstallationNotice.setStatus(taskName[0]);
jgInstallationNotice.setPromoter("");
jgInstallationNotice.setNextExecuteIds(String.join(",", roleList));
jgInstallationNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
updateById(jgInstallationNotice);
} }
} }
@Transactional @Transactional
public void accept(JgMaintainNoticeDto dto, String op) { public void accept(JgMaintainNoticeDto dto, String op) {
String[] taskName = new String[]{"流程结束"};
String userId = RequestContext.getExeUserId();
JgMaintainNotice jgMaintainNotice = this.jgMaintainNoticeMapper.selectById(dto.getSequenceNbr()); JgMaintainNotice jgMaintainNotice = this.jgMaintainNoticeMapper.selectById(dto.getSequenceNbr());
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(
RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 组装设备注册代码 // 组装设备注册代码
StringBuffer stringBuffer = new StringBuffer(); StringBuffer stringBuffer = new StringBuffer();
String ym = null; String ym = null;
try { try {
ym = DateUtils.dateFormat(new Date(), DateUtils.DATE_PATTERN_MM); ym = DateUtils.dateFormat(new Date(), DateUtils.DATE_PATTERN_MM);
} catch (ParseException e) { } catch (ParseException e) {
log.error("JgMaintainNoticeServiceImpl.accept日期转换失败:{}", e); log.error("日期转换失败:{}", e);
} }
ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgMaintainNotice, op);
if (submit) {
getNext(roleList, dto.getInstanceId(), taskName);
jgMaintainNotice.setStatus(taskName[0]);
if ("0".equals(op)) {
if (roleList.size() == 0) {
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); JgMaintainNoticeEq jgRelationEquip = jgMaintainNoticeEqMapper.selectOne(queryWrapper);
LambdaQueryWrapper<OtherInfo> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(OtherInfo::getRecord, jgRelationEquip.getEquId());
// OtherInfo tzsJgOtherInfo = tzsJgOtherInfoMapper.selectOne(queryWrapper1);
LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<RegistrationInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(RegistrationInfo::getRecord, jgRelationEquip.getEquId()); queryWrapper2.eq(RegistrationInfo::getRecord, jgRelationEquip.getEquId());
RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2); RegistrationInfo tzsJgRegistrationInfo = tzsJgRegistrationInfoMapper.selectOne(queryWrapper2);
stringBuffer.append(tzsJgRegistrationInfo.getEquCategory()).append(jgMaintainNotice.getCity()).append(ym); stringBuffer.append(tzsJgRegistrationInfo.getEquCategory()).append(jgMaintainNotice.getCity()).append(ym);
// String equCode = stringBuffer.toString();
// String deviceRegistrationCode = iCreateCodeService.createDeviceRegistrationCode(equCode);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("cityCode", jgMaintainNotice.getCity()); map.put("cityCode", jgMaintainNotice.getCity());
map.put("countyCode", jgMaintainNotice.getCounty()); map.put("countyCode", jgMaintainNotice.getCounty());
map.put("equCategory", tzsJgRegistrationInfo.getEquCategory()); map.put("equCategory", tzsJgRegistrationInfo.getEquCategory());
// map.put("isXiXian", jgMaintainNotice.getIsXixian() == null ? "0" : jgMaintainNotice.getIsXixian());
// Map<String, Object> mapCode;
// ResponseModel<Map<String, Object>> code = tzsServiceFeignClient.createCode(map);
// mapCode = code.getResult();
// LambdaQueryWrapper<SupervisoryCodeInfo> queryWrapper3 = new LambdaQueryWrapper<>();
// queryWrapper3.eq(SupervisoryCodeInfo::getSupervisoryCode, mapCode.get("superviseCode").toString());
// SupervisoryCodeInfo supervisoryCodeInfo = supervisoryCodeInfoMapper.selectOne(queryWrapper3);
// supervisoryCodeInfo.setStatus("1");
// supervisoryCodeInfoMapper.updateById(supervisoryCodeInfo);
boolean submit = submit(jgMaintainNotice, op);
if (submit) {
if ("0".equals(op)) {
jgMaintainNotice.setPromoter(reginParams.getUserModel().getUserId());
jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())); jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgMaintainNotice.setAcceptDate(new Date()); generateMaintainNoticeReport(jgMaintainNotice.getSequenceNbr());
this.generateMaintainNoticeReport(jgMaintainNotice.getSequenceNbr()); jgMaintainNotice.setPromoter("");
// // 更新其他业务表 } else {
// tzsJgOtherInfo.setCode96333(mapCode.get("code96333").toString()); jgMaintainNotice.setNextExecuteIds(String.join(",", roleList));
// tzsJgOtherInfo.setSupervisoryCode(mapCode.get("superviseCode").toString()); if (!ObjectUtils.isEmpty(jgMaintainNotice.getInstanceStatus())) {
// tzsJgRegistrationInfo.setEquCode(deviceRegistrationCode); jgMaintainNotice.setInstanceStatus(jgMaintainNotice.getInstanceStatus() + "," + String.join(",", roleList));
// jgMaintainNotice.setEquRegisterCode(deviceRegistrationCode);
// jgMaintainNotice.setSupervisoryCode(mapCode.get("superviseCode").toString());
// tzsJgOtherInfoMapper.updateById(tzsJgOtherInfo);
// tzsJgRegistrationInfoMapper.updateById(tzsJgRegistrationInfo);
} else { } else {
//驳回 jgMaintainNotice.setInstanceStatus(String.join(",", roleList));
}
jgMaintainNotice.setPromoter(userId);
jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
}
} else {
jgMaintainNotice.setPromoter("");
jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode())); jgMaintainNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
jgMaintainNotice.setInstanceStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
jgMaintainNoticeMapper.updatePromoter(jgMaintainNotice.getSequenceNbr());
} }
updateById(jgMaintainNotice); jgMaintainNoticeMapper.updateById(jgMaintainNotice);
} }
} }
} }
\ No newline at end of file
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