Commit 6850fabd authored by lisong's avatar lisong

更新

parent 02118ec7
package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -224,7 +225,7 @@ public class JgMaintenanceContract extends BaseEntity {
@TableField("next_execute_ids")
private String nextExecuteIds;
@TableField("promoter")
@TableField(value = "promoter", updateStrategy = FieldStrategy.IGNORED)
private String promoter;
/**
......
package com.yeejoin.amos.boot.module.jg.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 使用登记状态西悉尼
*/
@Getter
@AllArgsConstructor
public enum MaintenceStatusEnum {
SUBMIT("使用单位提交", "submit", "使用单位待提交", "维保单位受理已驳回", "使用单位撤回"),
RECEIVE("维保单位审核确认", "receive", "维保单位待受理", "监管单位受理已驳回", "维保单位受理撤回"),
PRELIMINARY("监管单位审核", "preliminary", "监管单位待受理", "", "");
private final String name;
private final String code;
private final String pass;
private final String reject;
private final String rollBack;
public static MaintenceStatusEnum getMessage(String name){
for (MaintenceStatusEnum constants : values()) {
if (constants.getName().equals(name)) {
return constants;
}
}
return null;
}
}
......@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract;
import com.yeejoin.amos.boot.module.jg.api.vo.EquipMessageVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* Mapper 接口
......@@ -26,4 +28,5 @@ public interface JgMaintenanceContractMapper extends BaseMapper<JgMaintenanceCon
void updatePromoter(@Param("id")Long id);
List<Map<String, Object>> selectEquipList(@Param("id")Long id);
}
package com.yeejoin.amos.boot.module.jg.api.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class EquipExportVo {
@ExcelProperty(value = "管辖机构", index = 0)
String orgBranchName;
@ExcelProperty(value = "使用单位", index = 1)
String useUnitName;
@ExcelProperty(value = "设备种类", index = 2)
String equList;
@ExcelProperty(value = "设备类别", index = 3)
String equCategory;
@ExcelProperty(value = "使用登记证编号", index = 4)
String useOrgCode;
@ExcelProperty(value = "96333识别码", index = 5)
String code96333;
@ExcelProperty(value = "监管码", index = 6)
String supervisoryCode;
@ExcelProperty(value = "所属区域", index = 7)
String usePlace;
@ExcelProperty(value = "设备状态", index = 8)
String equState;
}
package com.yeejoin.amos.boot.module.jg.api.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class EquipMessageVo {
String SEQUENCE_NBR;
String EQU_LIST;
String PRODUCE_UNIT_NAME;
String USE_INNER_CODE;
String FACTORY_NUM;
String ADDRESS;
String EQU_CATEGORY;
}
......@@ -7,6 +7,7 @@ import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
public class JgMaintenanceContractVo {
......@@ -145,4 +146,6 @@ public class JgMaintenanceContractVo {
@ApiModelProperty("status")
private String status;
private List<Map<String, Object>> equipmentLists;
}
......@@ -102,7 +102,7 @@
SELECT
sequence_nbr,
apply_no,
apply_status,
status,
apply_date,
equ_type,
use_unit_code,
......@@ -168,4 +168,18 @@
where is_delete = 0
and sequence_nbr = #{sequenceNbr}
</select>
<select id="selectEquipList" resultType="java.util.Map">
select jui.RECORD as SEQUENCE_NBR,
(SELECT name from tz_equipment_category where code = jri.EQU_LIST) as EQU_LIST,
jfi.PRODUCE_UNIT_NAME,
jui.USE_INNER_CODE,
jfi.FACTORY_NUM,
jui.ADDRESS as ADDRESS,
(SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY) as EQU_CATEGORY
from tzs_jg_maintenance_contract_eq mc
LEFT JOIN idx_biz_jg_use_info jui on mc.equ_id = jui.RECORD
LEFT JOIN idx_biz_jg_factory_info jfi on mc.equ_id = jfi.RECORD
left JOIN idx_biz_jg_register_info jri on mc.equ_id = jri.RECORD
WHERE mc.equip_transfer_id = #{id}
</select>
</mapper>
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -8,17 +9,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.JgMaintenanceContractDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContract;
import com.yeejoin.amos.boot.module.jg.api.entity.JgMaintenanceContractEq;
import com.yeejoin.amos.boot.module.jg.api.enums.MaintenanceEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.UseStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgMaintenanceContractService;
import com.yeejoin.amos.boot.module.jg.api.vo.EquipMessageVo;
import com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......@@ -33,6 +36,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -108,6 +112,16 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
vo.setMaintenanceContract(ObjectUtils.isEmpty(dto.getMaintenanceContract()) ? null : JSON.parseArray(dto.getMaintenanceContract()));
vo.setMaintenanceManagerOneName(ObjectUtils.isEmpty(dto.getMaintenanceManagerOneId()) ? null : dto.getMaintenanceManagerOneId().split("_")[1]);
vo.setMaintenanceManagerTwoName(ObjectUtils.isEmpty(dto.getMaintenanceManagerTwoId()) ? null : dto.getMaintenanceManagerTwoId().split("_")[1]);
List<Map<String, Object>> list = maintenanceContractMapper.selectEquipList(sequenceNbr);
// ArrayList<EquipMessageVo> equipMessageVos = new ArrayList<>();
// list.forEach(item ->{
// EquipMessageVo equipMessageVo = new EquipMessageVo();
// BeanUtil.copyProperties(item, equipMessageVo);
// equipMessageVos.add(equipMessageVo);
// });
if (!ObjectUtils.isEmpty(list)){
vo.setEquipmentLists(list);
}
return vo;
}
......@@ -121,10 +135,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
return maintenanceContractMapper.updateBySequenceNbr(dto);
}
public String flowExecute(Long id,String instanceId, String operate, String comment, Boolean update) {
String role = "";
String taskName = "流程结束";
ArrayList<String> roleList = new ArrayList<>();
public void flowExecute(Long id,String instanceId, String operate, String comment, Boolean update) {
try {
JSONObject task = workFlowFeginService.getTaskNoAuth(instanceId);
JSONObject taskMessage = JSON.parseObject(JSON.toJSONString(task.get("data")));
......@@ -139,29 +150,12 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
dto.setVariable(map);
//执行流程
Workflow.taskClient.completeByTask(taskId, dto);
// 查询下节点任务
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
String nextTaskId = nextTask.getString("id");
taskName = nextTask.getString("name");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleList.add(((Map) datum).get("groupId").toString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
role= String.join(",", roleList);
if (update) {
Boolean rollBack = "1".equals(operate) ? true : false;
updateStatus(id, taskName, role, rollBack);
}
return role;
// 更新下一步执行人
updateExecuteIds(instanceId, id, operate);
}
public void updateStatus(Long id , String taskName, String role, Boolean rollBack) {
......@@ -217,7 +211,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
//启动流程
try {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey("maintenanceContract");
dto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
dto.setBusinessKey("submit");
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
instanceId = ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
......@@ -321,6 +315,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
*/
@Transactional
public void revocation(String instanceId) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String taskName = "";
JgMaintenanceContract jgMaintenanceContract = new JgMaintenanceContract();
LambdaQueryWrapper<JgMaintenanceContract> lambda = new QueryWrapper<JgMaintenanceContract>().lambda();
......@@ -345,13 +340,13 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
e.printStackTrace();
}
if (!ObjectUtils.isEmpty(taskName)) {
UseStatusEnum message = UseStatusEnum.getMessage(taskName);
jgMaintenanceContract.setStatus(message.getPass());
}
jgMaintenanceContract.setStatus(MaintenceStatusEnum.getMessage(taskName).getRollBack());
}
String join = String.join(",", roleList);
JgMaintenanceContract jgMaintenanceContract1 = this.getBaseMapper().selectOne(lambda);
this.updateStatus(jgMaintenanceContract1.getSequenceNbr(), taskName, join, true);
jgMaintenanceContract.setPromoter(reginParams.getUserModel().getUserId());
jgMaintenanceContract.setNextExecuteIds(join);
this.update(jgMaintenanceContract, lambda);
}
/**
......@@ -359,7 +354,6 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
*/
@Transactional
public Boolean saveOrSubmit(String submit, Map<String, Object> map, ReginParams reginParams) {
String instanceId = null;
JgMaintenanceContractDto dto = JSON.parseObject(JSON.toJSONString(map), JgMaintenanceContractDto.class);
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
CompanyBo company = reginParams.getCompany();
......@@ -368,7 +362,6 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
//获取维保备案编号
String wbApplyNo = iCreateCodeService.createApplicationFormCode(ApplicationFormTypeEnum.WBBA.getCode(), 1).get(0);
contract.setApplyNo(wbApplyNo);
contract.setInstanceId(instanceId);
contract.setUseUnitCode(company.getCompanyCode());
contract.setUseUnitName(company.getCompanyName());
//管理员信息
......@@ -386,51 +379,90 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
contract.setApplyStatus(FlowStatusEnum.TO_BE_SUBMITTED.getName());
contract.setEquNum(equipmentLists.size());
contract.setInstanceId(instanceId);
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submit)) {
// 发起流程
try {
ArrayList<String> roleList = new ArrayList<>();
ActWorkflowStartDTO flowDto = new ActWorkflowStartDTO();
flowDto.setProcessDefinitionKey(WB_PROCESS_DEFINITION_KEY);
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(flowDto);
instanceId = ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
ajaxResult = Workflow.taskClient.getTask(instanceId);
// 查询下节点任务
extracted(instanceId, roleList, contract);
// 执行一步
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
TaskResultDTO taskResultDTO = new TaskResultDTO();
taskResultDTO.setResultCode("approvalStatus");
taskResultDTO.setTaskId(taskId);
taskResultDTO.setComment("提交流程");
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("approvalStatus", "0");
taskResultDTO.setVariable(hashMap);
//执行流程
Workflow.taskClient.completeByTask(taskId, taskResultDTO);
extracted(instanceId, roleList, contract);
contract.setInstanceId(instanceId);
contract.setApplyStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
contract.setStatus(FlowStatusEnum.TO_BE_PROCESSED.getName());
} catch (Exception e) {
log.error("维保使用单位提交流程启动失败:{}", e);
}
// 新增编辑
if ("add".equals(String.valueOf(map.get("pageType")))) {
this.save(contract);
} else {
this.getBaseMapper().updateById(contract);
LambdaQueryWrapper<JgMaintenanceContractEq> lambda = new QueryWrapper<JgMaintenanceContractEq>().lambda();
lambda.eq(JgMaintenanceContractEq::getEquipTransferId, contract.getSequenceNbr());
jgMaintenanceContractEqService.getBaseMapper().delete(lambda);
}
this.save(contract);
//关联设备
//关联设备信息
List<JgMaintenanceContractEq> equipList = new ArrayList<>();
equipmentLists.forEach(x -> {
JgMaintenanceContractEq equip = new JgMaintenanceContractEq();
equip.setEquId(String.valueOf(x.get("SEQUENCE_NBR")));
equip.setEquipTransferId(wbApplyNo);
equip.setEquipTransferId(contract.getSequenceNbr().toString());
equipList.add(equip);
});
return jgMaintenanceContractEqService.saveBatch(equipList);
// 保存维保关联设备信息
jgMaintenanceContractEqService.saveBatch(equipList);
if (SUBMIT_TYPE_FLOW.equals(submit)) {
// 提交启动流程
String instanceId = startByVariable();
if (!ObjectUtils.isEmpty(instanceId)){
// 修改数据信息
updateExecuteIds(instanceId, contract.getSequenceNbr(), "0");
// 默认执行流程
flowExecute(contract.getSequenceNbr(), instanceId, "0", "", false);
}
}
return true;
}
public void updateExecuteIds(String instanceId, Long sequenceNbr, String operate){
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = "";
String taskName = "流程结束";
ArrayList<String> roleList = new ArrayList<>();
JgMaintenanceContract jgMaintenanceContract = this.getBaseMapper().selectById(sequenceNbr);
try {
// 查询下节点任务
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
String nextTaskId = nextTask.getString("id");
taskName = nextTask.getString("name");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleList.add(((Map) datum).get("groupId").toString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (!"流程结束".equals(taskName)){
role= String.join(",", roleList);
jgMaintenanceContract.setNextExecuteIds(role);
jgMaintenanceContract.setPromoter(reginParams.getUserModel().getUserId());
jgMaintenanceContract.setInstanceId(instanceId);
if (!ObjectUtils.isEmpty(jgMaintenanceContract.getInstanceStatus())) {
jgMaintenanceContract.setInstanceStatus(jgMaintenanceContract.getInstanceStatus() + "," + role);
} else {
jgMaintenanceContract.setInstanceStatus(role);
}
if ("0".equals(operate)){
// 通过操作
jgMaintenanceContract.setStatus(MaintenceStatusEnum.getMessage(taskName).getPass());
}else {
// 驳回操作
jgMaintenanceContract.setStatus(MaintenceStatusEnum.getMessage(taskName).getReject());
jgMaintenanceContract.setPromoter(null);
}
}else {
jgMaintenanceContract.setStatus(taskName);
}
this.getBaseMapper().updateById(jgMaintenanceContract);
}
private void extracted(String instanceId, ArrayList<String> roleList, JgMaintenanceContract contract) {
JSONObject taskNoAuth = workFlowFeginService.getTaskNoAuth(instanceId);
if (!ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
......
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