Commit a47beca5 authored by 麻笑宇's avatar 麻笑宇

新增监管维保备案作废接口

parent dfd86b7a
......@@ -194,4 +194,7 @@ public class JgMaintenanceContractDto extends BaseDto {
@ApiModelProperty(value = "当前登陆人单位类型")
private String unitType;
@ApiModelProperty(value = "取消原因")
private String cancelReason;
}
......@@ -301,4 +301,20 @@ public class JgMaintenanceContract extends BaseEntity {
*/
@TableField("receive_company_org_code")
private String receiveCompanyOrgCode;
/**
* 作废原因
*/
@TableField("cancel_reason")
private String cancelReason;
/**
* 作废时间
*/
@TableField("cancel_date")
private Date cancelDate;
/**
* 作废人
*/
@TableField("cancel_user_id")
private String cancelUserId;
}
......@@ -15,4 +15,5 @@ public interface JgMaintenanceContractEqMapper extends CustomBaseMapper<JgMainte
Boolean deleteForBatch(@Param("ids") List<Long> ids);
void updateIdxBizJgRegisterInfo(@Param("list") List<String> list);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.boot.module.jg.api.mapper.JgMaintenanceContractEqMapper">
<update id="updateIdxBizJgRegisterInfo">
UPDATE idx_biz_jg_maintenance_record_info
SET
"ME_UNIT_NAME" = NULL,
"ME_UNIT_CREDIT_CODE" = NULL,
"ME_MASTER" = NULL,
"ME_MASTER_PHONE" = NULL,
"ME_MASTER_ID" = NULL,
"ME_MASTER1" = NULL,
"ME_MASTER1_PHONE" = NULL,
"ME_MASTER1_ID" = NULL,
"INFORM_START" = NULL,
"INFORM_END" = NULL,
"REPAIR_INFORM" = NULL
WHERE
RECORD IN
<foreach collection="list" item="id" index="index" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<delete id="deleteForBatch">
UPDATE amos_tzs_biz.tzs_jg_maintenance_contract_eq tjmce
......
......@@ -170,4 +170,8 @@ public class JgMaintenanceContractController extends BaseController {
return ResponseHelper.buildResponse(contractDtoPage);
}
public ResponseModel<JgMaintenanceContract> cancelApplication(@RequestBody JgMaintenanceContractDto dto){
JgMaintenanceContract result = jgMaintenanceContractServiceImpl.cancelApplication(dto.getSequenceNbr(),dto.getCancelReason());
return ResponseHelper.buildResponse(result);
}
}
......@@ -6,14 +6,13 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
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.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemTypeEnum;
......@@ -25,9 +24,14 @@ import com.yeejoin.amos.boot.module.jg.api.service.IJgInstallationNoticeService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgMaintenanceContractService;
import com.yeejoin.amos.boot.module.jg.api.vo.JgMaintenanceContractVo;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgUseInfoService;
import com.yeejoin.amos.boot.module.ymt.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
......@@ -53,6 +57,8 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -84,9 +90,9 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
IJgInstallationNoticeService jrmInstallationNoticeService;
@Autowired
EmqKeeper emqKeeper;
@Autowired
@Resource
private JgMaintenanceContractMapper maintenanceContractMapper;
@Autowired
@Resource
private JgMaintenanceContractEqMapper maintenanceContractEqMapper;
@Autowired
private JgMaintenanceContractEqServiceImpl jgMaintenanceContractEqService;
......@@ -96,8 +102,12 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
private RedissonClient redissonClient;
@Autowired
private JgResumeInfoServiceImpl jgResumeInfoService;
@Autowired
@Resource
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
@Autowired
private ICmWorkflowService iCmWorkflowService;
@Autowired
IIdxBizJgUseInfoService useInfoService;
/**
* 分页查询
......@@ -738,4 +748,84 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
String format = String.format("来自%s【%s】等的业务办理,【申请单号:%s】等", equList, supervisoryCode, dto.getApplyNo());
return format;
}
public JgMaintenanceContract cancelApplication(Long sequenceNbr, String cancelReason) {
JgMaintenanceContract maintenanceContract = this.getById(sequenceNbr);
// 1.更新为已作废
String oldNoticeStatus = maintenanceContract.getStatus();
maintenanceContract.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_DISCARD.getCode()));
maintenanceContract.setCancelReason(cancelReason);
maintenanceContract.setCancelDate(new Date());
maintenanceContract.setCancelUserId(RequestContext.getExeUserId());
maintenanceContract.setNextExecuteUserIds(null);
maintenanceContract.setPromoter(null);
this.updateById(maintenanceContract);
this.processElseDataByStatus(Objects.requireNonNull(FlowStatusEnum.getEumByCode(Integer.parseInt(oldNoticeStatus))), maintenanceContract);
return maintenanceContract;
}
private void processElseDataByStatus(FlowStatusEnum oldNoticeStatus, JgMaintenanceContract maintenanceContract) {
switch (oldNoticeStatus) {
case TO_BE_SUBMITTED: // 待提交
// 1.写入历史表
this.saveHisDataBeforeUpdate(maintenanceContract);
// 2.删除暂存时生成的待办
commonService.deleteTasksByRelationId(maintenanceContract.getSequenceNbr() + "");
break;
case TO_BE_FINISHED: // 已完成
// 1.回退表单
updateIdxBizJgRegisterInfo(maintenanceContract);
// 2.清空redis 缓存的流程中及已完成安装告知的设备
// this.delRepeatUseEquipData(maintenanceContract);
break;
default:
// 流程中(驳回、撤回等)
// 1.待办任务更新为已完成
this.finishedTask(maintenanceContract);
// 2.终止流程-工作流报错暂时注释掉
iCmWorkflowService.stopProcess(maintenanceContract.getInstanceId(), maintenanceContract.getCancelReason());
// 3.写入历史表
this.saveHisDataBeforeUpdate(maintenanceContract);
// 4.清空redis(缓存的流程中及已完成安装告知的设备)
// this.delRepeatUseEquipData(maintenanceContract);
}
}
private void updateIdxBizJgRegisterInfo(JgMaintenanceContract maintenanceContract) {
LambdaQueryWrapper<JgMaintenanceContractEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgMaintenanceContractEq::getEquipTransferId, maintenanceContract.getSequenceNbr());
List<JgMaintenanceContractEq> equipmentLists = maintenanceContractEqMapper.selectList(queryWrapper);
if(!CollectionUtils.isEmpty(equipmentLists)){
List<String> list = equipmentLists.stream().filter(t->t.getEquId() != null).map(JgMaintenanceContractEq::getEquId).collect(Collectors.toList());
maintenanceContractEqMapper.updateIdxBizJgRegisterInfo(list);
}
}
// private void delRepeatUseEquipData(JgMaintenanceContract maintenanceContract) {
// LambdaQueryWrapper<JgMaintenanceContractEq> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(JgMaintenanceContractEq::getEquipTransferId, maintenanceContract.getSequenceNbr());
// List<JgMaintenanceContractEq> maintenanceContractEq = maintenanceContractEqMapper.selectList(queryWrapper);
// for (JgMaintenanceContractEq jgMaintenanceContractEq : maintenanceContractEq) {
// EquipUsedCheckStrategyContext.getUsedStrategy("maintenanceContract").delDataForCheckEquipRepeatUsed(Collections.singletonList(jgMaintenanceContractEq.getEquId()), maintenanceContract.getReceiveOrgCode());
// }
// }
private void finishedTask(JgMaintenanceContract maintenanceContract) {
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskMap.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskMap.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskMap.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskMap.put("relationId", maintenanceContract.getInstanceId());
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtils.copyProperties(maintenanceContract, taskMessageDto);
taskMap.put("model", taskMessageDto);
commonService.updateTaskModel(taskMap);
}
private void saveHisDataBeforeUpdate(JgMaintenanceContract maintenanceContract) {
LambdaQueryWrapper<JgMaintenanceContractEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgMaintenanceContractEq::getEquipTransferId, maintenanceContract.getSequenceNbr());
List<JgMaintenanceContractEq> equipmentLists = maintenanceContractEqMapper.selectList(queryWrapper);
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MAINTENANCE_RECORD.getName(), JSON.parseArray(JSON.toJSONString(equipmentLists)), null, maintenanceContract.getSequenceNbr().toString());
}
}
\ 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