Commit 7ad89fcb authored by tianbo's avatar tianbo

Merge remote-tracking branch 'origin/develop_tzs_bugfix' into develop_tzs_register

parents 78342079 2110acdb
......@@ -71,7 +71,7 @@ public class DataDockTemplateVersionUtils {
VERSION_MAP.put("新设备_压力容器设备_固定式", "V1.0.1");
VERSION_MAP.put("新设备_压力容器设备_氧舱", "V1.0.1");
VERSION_MAP.put("新设备_游乐设施设备", "V1.0.0");
VERSION_MAP.put("压力容器设备", "V1.0.2");
VERSION_MAP.put("压力容器设备", "V1.0.3");
VERSION_MAP.put("长输管道设备", "V1.0.0");
}
......
......@@ -2527,16 +2527,17 @@
and (a.apply_status <![CDATA[ <> ]]> '6617')
)
</select>
<update id="updateTechParamDynamic">
update ${tableName}
<set>
<if test="columns != null and columns.size() > 0">
update
${tableName}
set
<foreach collection="columns" item="column" separator=",">
<if test="column.columnValue != null and column.columnValue != ''">
${column.columnName} = #{column.columnValue}
</if>
${column.columnName} = #{column.columnValue}
</foreach>
</set>
where record = #{record}
where record = #{record}
</if>
</update>
<select id="countBizNumAfterUseReg" resultType="java.lang.Long">
......
......@@ -596,7 +596,7 @@
</select>
<select id="getListPageCount" resultType="long">
SELECT <![CDATA[/*+ set(query_dop 16)*/]]> COUNT(*)
SELECT <![CDATA[/*+ set(query_dop 16)*/]]> COUNT(DISTINCT ur.sequence_nbr)
FROM tzs_jg_use_registration ur
<if test="dto.equList != null or dto.equCategory != null or dto.equDefine != null or
dto.equCode != null or dto.code96333 != null or dto.supervisoryCode != null">
......
......@@ -361,4 +361,18 @@ public class DataHandlerController extends BaseController {
public ResponseModel<String> refreshXianData2ES(@RequestParam(value = "isUpdate", defaultValue = "false") boolean isUpdate) throws IOException {
return ResponseHelper.buildResponse(dataHandlerService.refreshXianData2ES(isUpdate));
}
/**
* @return
* @apiNote 删除useInfo表中status等于待删除(手动修改为待删除)的设备
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "PUT", value = "删除useInfo表中status等于待删除(手动修改为待删除)的设备", notes = "删除useInfo表中status等于待删除(手动修改为待删除)的设备")
@PutMapping(value = "/equip/deleteEquipIsNotClaimed")
public ResponseModel<Integer> deleteEquip(@RequestParam(value = "useUnitCreditCode") String useUnitCreditCode,
@RequestParam(value = "equList") String equList,
@RequestParam(value = "dataSource", defaultValue = "jg_pl") String dataSource,
@RequestParam(value = "isDelete", defaultValue = "false") boolean isDelete) {
return ResponseHelper.buildResponse(dataHandlerService.deleteEquipIsNotClaimed(useUnitCreditCode, equList, dataSource, isDelete));
}
}
\ No newline at end of file
......@@ -284,7 +284,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
**/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/importData")
@ApiOperation(httpMethod = "POST", value = "气瓶批量导入", notes = "气瓶批量导入")
@ApiOperation(httpMethod = "POST", value = "气瓶批量导入校验", notes = "气瓶批量导入校验")
public ResponseModel<?> importPressureData(@RequestPart("file") MultipartFile multipartFile) throws Exception {
return ResponseHelper.buildResponse(idxBizJgRegisterInfoService.importPressureData(multipartFile));
}
......
......@@ -31,7 +31,10 @@ public class NewProjectEditUpdateService {
public void updateBizInfo(String projectContraptionId) {
IdxBizJgProjectContraption projectContraption = commonEquipDataProcessService.getIdxBizJgProjectContraptionServiceImpl().getOne(new LambdaQueryWrapper<IdxBizJgProjectContraption>().eq(BaseEntity::getSequenceNbr, projectContraptionId).select(BaseEntity::getSequenceNbr, IdxBizJgProjectContraption::getUseRegistrationCode));
// 按照装置id查询装置下管道,更新为已纳管状态写入使用登记证编号
List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(IdxBizJgUseInfo::getRecord, TzsBaseEntity::getSequenceNbr));
List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>()
.eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId)
//.eq(IdxBizJgUseInfo::getIsIntoManagement, false)修改已纳管管道编辑使用登记证号,不更新bug
.select(IdxBizJgUseInfo::getRecord, TzsBaseEntity::getSequenceNbr));
useInfos.parallelStream().forEach(e -> {
commonEquipDataProcessService.setNewPipelineUseState(e, projectContraption.getUseRegistrationCode());
commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, projectContraption.getUseRegistrationCode());
......
......@@ -1137,7 +1137,10 @@ public class CommonEquipDataProcessService {
}
public void updatePipeline2InUse(String projectContraptionId, String useRegistrationCode) {
List<IdxBizJgUseInfo> useInfos = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord));
List<IdxBizJgUseInfo> useInfos = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>()
.eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId)
.eq(IdxBizJgUseInfo::getIsIntoManagement, false)
.select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord));
useInfos.parallelStream().forEach(e -> {
this.setNewPipelineUseState(e, useRegistrationCode);
this.updateUseOrgCode2NewPipeline(e, useRegistrationCode);
......
......@@ -1722,8 +1722,8 @@ public class DataDockServiceImpl {
//Optional.ofNullable(data.getWallThickness()).ifPresent(item -> checkPipeSpecifications(item, "公称壁厚请输入数字或者/分割的范围,如2/6;", rowError));
//checkNotBlank(data.getNominalDiameter(), "公称直径不能为空;", rowError);
//Optional.ofNullable(data.getNominalDiameter()).ifPresent(item -> checkPipeSpecifications(item, "公称直径请输入数字或者/分割的范围,如2/6;", rowError));
//checkNotBlank(data.getPipeLength(), "管道长度不能为空;", rowError);
//Optional.ofNullable(data.getPipeLength()).ifPresent(item -> checkDateFormatNumber(item, "管道长度必须为数字", rowError));
checkNotBlank(data.getPipeLength(), "管道长度不能为空;", rowError);
Optional.ofNullable(data.getPipeLength()).ifPresent(item -> checkDateFormatNumber(item, "管道长度必须为数字", rowError));
//checkNotBlank(data.getPressure(), "设计-压力不能为空;", rowError);
//checkNotBlank(data.getMedium(), "设计-介质不能为空;", rowError);
//checkNotBlank(data.getTemperature(), "设计-温度不能为空;", rowError);
......
......@@ -2279,4 +2279,26 @@ public class DataHandlerServiceImpl {
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
public Integer deleteEquipIsNotClaimed(String useUnitCreditCode, String equList,
String dataSource, boolean isDelete) {
List<IdxBizJgRegisterInfo> jgRegisterInfoList = registerInfoMapper.selectDeleteEquipIsNotClaimed(useUnitCreditCode, equList, dataSource );
List<String> records = Optional.ofNullable(jgRegisterInfoList)
.orElse(Collections.emptyList())
.stream()
.filter(Objects::nonNull)
.map(IdxBizJgRegisterInfo::getRecord)
.filter(Objects::nonNull)
.collect(Collectors.toList());
if (!records.isEmpty() && isDelete) {
int batchSize = 1000;
for (int i = 0; i < records.size(); i += batchSize) {
int end = Math.min(i + batchSize, records.size());
List<String> batch = records.subList(i, end);
superviseInfoMapper.deleteDataAll(batch);
deleteFromEs(batch);
}
}
return records.size();
}
}
......@@ -95,6 +95,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
public static final String EQU_DEFINE = "equDefine";
public static final String PROJECT_CONTRAPTION_NO = "projectContraptionNo";
public static final String ORG_BRANCH_CODE = "orgBranchCode";
public static final String DATA_SOURCE = "dataSource";
public static final String DATA_QUALITY_SCORE = "dataQualityScore";
public static final String DATA_QUALITY = "dataQuality";
......@@ -270,6 +271,7 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
String projectContraptionNo = params.get(PROJECT_CONTRAPTION_NO);
//属地监管部门code
String orgBranchCode = params.get(ORG_BRANCH_CODE);
String dataSource = params.get(DATA_SOURCE);
// 设备类别code
String equCategory = params.get(EQU_CATEGORY);
// 设备类品种code
......@@ -367,6 +369,17 @@ public class IdxBizJgProjectContraptionServiceImplService extends BaseEntityServ
.eq(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 企业 等于匹配
.likeRight(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_SUPERVISION.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 监管 右模糊匹配
.like(!ValidationUtil.isEmpty(projectContraptionNo), IdxBizJgProjectContraption::getProjectContraptionNo, projectContraptionNo)
.and(!ValidationUtil.isEmpty(dataSource), w -> {
if ("jg".equals(dataSource)) {
w.likeRight(IdxBizJgProjectContraption::getDataSource, "jg").notLike(IdxBizJgProjectContraption::getDataSource, "jg_his");
} else if ("jg_his".equals(dataSource)) {
w.likeRight(IdxBizJgProjectContraption::getDataSource, "jg_his").notLike(IdxBizJgProjectContraption::getDataSource, "jg_his_black");
} else if ("jg_his_black".equals(dataSource)) {
w.eq(IdxBizJgProjectContraption::getDataSource, "jg_his_black").or().likeRight(IdxBizJgProjectContraption::getDataSource, "jg_his_black_");
} else {
w.eq(IdxBizJgProjectContraption::getDataSource, dataSource);
}
})
.isNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.TRUE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode)
.isNotNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.FALSE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode)
.isNull(IdxBizJgProjectContraption::getProjectContraptionParentId)
......
......@@ -6,6 +6,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
......@@ -205,6 +206,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private static final Map<String, String> regionCodeOrgCodeMap = new ConcurrentHashMap<>();
public static final String CAR_NUMBER = "CAR_NUMBER";
public static final String USE_UNIT_NAME = "USE_UNIT_NAME";
private static final String PRODUCT_NAME = "PRODUCT_NAME";
// 需要转化成jsonObject的附件字段
public static String[] jsonFields = {"insOtherAccessories", "installContractAttachment", "installProxyStatementAttachment"};
private final List<String> resultError = new ArrayList<>();
......@@ -316,7 +318,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
@Autowired
private SnowflakeIdUtil sequence;
@Autowired
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
private JgCertificateChangeRecordEqMapper certificateChangeRecordEqMapper;
@Autowired
private JgUseRegistrationServiceImpl jgUseRegistrationService;
@Autowired
......@@ -2602,7 +2604,10 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 只查历史,前缀为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
dBuilder.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));// 排除黑设备
} else {
} else if("jg_his_black".equals(dataSource)) {
// 只查黑设备,前缀为 jg_his_black
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his_black"));
}else {
// 只查新增,前缀为 jg 且前缀不为 jg_his
dBuilder.must(QueryBuilders.prefixQuery("DATA_SOURCE", "jg"))
.mustNot(QueryBuilders.prefixQuery("DATA_SOURCE", "jg_his"));
......@@ -2742,6 +2747,13 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
pBuilder.must(QueryBuilders.matchPhraseQuery("USE_PLACE", "*" + param + "*"));
boolMust.must(pBuilder);
}
// 设备名称
if (!ObjectUtils.isEmpty(map.getString(PRODUCT_NAME))) {
BoolQueryBuilder elcBuilder = QueryBuilders.boolQuery();
String test = QueryParser.escape(map.getString(PRODUCT_NAME));
elcBuilder.must(QueryBuilders.matchPhraseQuery(PRODUCT_NAME, test));
boolMust.must(elcBuilder);
}
// 设备状态
if (!ObjectUtils.isEmpty(map.getString("EQU_STATE"))) {
BoolQueryBuilder esBuilder = QueryBuilders.boolQuery();
......@@ -4317,6 +4329,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
List<JgUseRegistrationEq> jgRelationEquipList = new ArrayList<>();
List<Map<String, Object>> equipmentLists = new ArrayList<>();
List<IdxBizJgSupervisionInfo> supervisionInfoList = new ArrayList<>();
List<JgCertificateChangeRecordEq> jgCertificateChangeRecordEqList = new ArrayList<>();
if (paramMap == null) {
throw new IllegalArgumentException("参数Map不能为空");
......@@ -4331,6 +4344,9 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
String orgBranchCode = equipInfoDto.getOrgBranchCode();
String orgBranchName = equipInfoDto.getOrgBranchName();
Set<String> recordSet = new HashSet<>();
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
Map<String, Object> fillingMediumMap = fillingMedium.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataValue,
DictionarieValueModel::getDictDataKey));
equipInfoCylinderExcelDtoList.forEach(data -> {
JgUseRegistrationEq jgRelationEquip = new JgUseRegistrationEq();
if ("his".equals(equipInfoDto.getDataSource()) && "1".equals(data.getWhetherVehicleCylinder())) {
......@@ -4430,7 +4446,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
registerInfo.setEquCategory(equipInfoDto.getEquCategoryCode());
registerInfo.setEquDefine(equipInfoDto.getEquDefineCode());
registerInfo.setEquList(equipInfoDto.getEquListCode());
registerInfo.setRegisterState(idxBizJgRegisterInfoService.getRegCode());
registerInfo.setRegisterState("his".equals(equipInfoDto.getDataSource()) ? "6045":"6046");
registerInfo.setProductPhoto(productPhoto);
registerInfo.setOtherAccessoriesReg(otherAccessoriesReg);
registerInfo.setUseOrgCode(equipInfoDto.getUseOrgCode());
......@@ -4450,8 +4466,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
inspectionDetectionInfo.setRecDate(new Date());
inspectionDetectionInfo.setInspectType("ZZJDJY");
inspectionDetectionInfo.setInspectConclusion("6040");// 默认合格
inspectionDetectionInfo.setInspectDate(DateUtil.parse(data.getInspectDate(), "yyyy-MM-dd"));
inspectionDetectionInfo.setNextInspectDate(DateUtil.parse(data.getNextInspectDate(), "yyyy-MM-dd"));
Optional.ofNullable(data.getInspectDate())
.filter(StrUtil::isNotBlank)
.map(s -> DateUtil.parse(s, "yyyy-MM-dd"))
.ifPresent(inspectionDetectionInfo::setInspectDate);
Optional.ofNullable(data.getNextInspectDate())
.filter(StrUtil::isNotBlank)
.map(s -> DateUtil.parse(s, "yyyy-MM-dd"))
.ifPresent(inspectionDetectionInfo::setNextInspectDate);
// 根据条件确定增加的年数(杨生元说监管让去掉,企业自己输入)
// Optional.ofNullable(data.getInspectDate())
// .filter(s -> !s.trim().isEmpty())
......@@ -4482,9 +4504,6 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
setSupervisionInfo(orgBranchCode, orgBranchName, record, supervisionInfoList);
// 技术参数
List<DictionarieValueModel> fillingMedium = Systemctl.dictionarieClient.dictValues("FILLING_MEDIUM").getResult();
Map<String, Object> fillingMediumMap = fillingMedium.stream().collect(Collectors.toMap(DictionarieValueModel::getDictDataValue,
DictionarieValueModel::getDictDataKey));
IdxBizJgTechParamsVessel paramsVessel = new IdxBizJgTechParamsVessel();
BeanUtils.copyProperties(data, paramsVessel);
paramsVessel.setRecord(record);
......@@ -4533,7 +4552,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
changeRecordEq.setChangeRecordId(String.valueOf(changeRecordId));// 登记证记录主键
changeRecordEq.setEquId(registerInfo.getRecord());// 设备主键
changeRecordEq.setProductCode(factoryInfo.getFactoryNum());// 产品编号
certificateChangeRecordEqService.save(changeRecordEq);
jgCertificateChangeRecordEqList.add(changeRecordEq);
}
String nextInspectDateStr = Optional.ofNullable(inspectionDetectionInfo.getNextInspectDate())
.map(date -> date.toInstant()
......@@ -4667,35 +4686,16 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
.collect(Collectors.toList())
);
}
List<CompletableFuture<Void>> futures = new ArrayList<>();
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgSupervisionInfoMapper, supervisionInfoList, "监督信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgUseInfoMapper, useInfoList, "使用信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgDesignInfoMapper, designInfoList, "设计信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgRegisterInfoMapper, registerInfoList, "注册信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgFactoryInfoMapper, factoryInfoList, "制造信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(otherInfoMapper, otherInfoList, "其他信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgTechParamsVesselMapper, paramsVesselList, "容器参数信息")
));
futures.add(CompletableFuture.runAsync(() ->
batchInsert(idxBizJgInspectionDetectionInfoMapper, inspectionDetectionInfoList, "检验检测信息")
));
if (!esEquipmentCategoryList.isEmpty()) {
futures.add(CompletableFuture.runAsync(() -> esEquipmentCategory.saveAll(esEquipmentCategoryList)));
}
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
batchInsert(idxBizJgSupervisionInfoMapper, supervisionInfoList, "监督信息");
batchInsert(idxBizJgUseInfoMapper, useInfoList, "使用信息");
batchInsert(idxBizJgDesignInfoMapper, designInfoList, "设计信息");
batchInsert(idxBizJgRegisterInfoMapper, registerInfoList, "注册信息");
batchInsert(idxBizJgFactoryInfoMapper, factoryInfoList, "制造信息");
batchInsert(otherInfoMapper, otherInfoList, "其他信息");
batchInsert(idxBizJgTechParamsVesselMapper, paramsVesselList, "容器参数信息");
batchInsert(idxBizJgInspectionDetectionInfoMapper, inspectionDetectionInfoList, "检验检测信息");
batchInsert(certificateChangeRecordEqMapper, jgCertificateChangeRecordEqList, "登记证关系信息");
esEquipmentCategory.saveAll(esEquipmentCategoryList);
eventPublisher.publish(new EquipCreateOrEditEvent(this, BusinessTypeEnum.JG_NEW_EQUIP.name(), recordSet, EquipCreateOrEditEvent.EquipType.equip));
return String.format("导入完成,成功导入: %d 条数据!", useInfoList.size());
}
......
......@@ -25,7 +25,9 @@ import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationUnitService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.permission.FillingEditPermForCurrentUser;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
......@@ -327,175 +329,187 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
*/
@GlobalTransactional(rollbackFor = Exception.class)
public JgChangeRegistrationUnitDto updateInstallationNotice(String submitType, JgChangeRegistrationUnitDto noticeDto, String op, ReginParams reginParams) {
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空");
}
if (PipelineEnum.PRESSURE_PIPELINE.getCode().equals(noticeDto.getEquListCode())) {
dealProjectContraptionToUpdate(submitType, noticeDto, op, reginParams);
} else {
// 字段转换
this.convertField(noticeDto);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = noticeDto.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream().filter(v -> v.containsKey("sequenceNbr") &&
ObjectUtils.isNotEmpty(v.get("sequenceNbr")) && canConvertToLong(v.get("sequenceNbr").toString()))
.map(v -> Long.parseLong(v.get("sequenceNbr").toString())).collect(Collectors.toList());
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//场车区分区外还是区内
if (EQU_CODE_CC.equals(noticeDto.getEquListCode())) {
String city = Objects.toString(noticeDto.getCity(), "");
String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
this.validateDeviceCity(deviceList, userCity, "0".equals(noticeDto.getChangeType()));
this.setEquAddress(noticeDto);
try {
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空");
}
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
if (!StringUtils.hasText(noticeDto.getInstanceId())) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
dto.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskname = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
JgChangeRegistrationUnit notice = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, notice);
notice.setChangeCertificate(noticeDto.getChangeCertificate());
notice.setRemark(noticeDto.getRemark());
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListAll);
if (PipelineEnum.PRESSURE_PIPELINE.getCode().equals(noticeDto.getEquListCode())) {
dealProjectContraptionToUpdate(submitType, noticeDto, op, reginParams);
} else {
// 字段转换
this.convertField(noticeDto);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = noticeDto.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream().filter(v -> v.containsKey("sequenceNbr") &&
ObjectUtils.isNotEmpty(v.get("sequenceNbr")) && canConvertToLong(v.get("sequenceNbr").toString()))
.map(v -> Long.parseLong(v.get("sequenceNbr").toString())).collect(Collectors.toList());
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//场车区分区外还是区内
if (EQU_CODE_CC.equals(noticeDto.getEquListCode())) {
String city = Objects.toString(noticeDto.getCity(), "");
String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
this.validateDeviceCity(deviceList, userCity, "0".equals(noticeDto.getChangeType()));
this.setEquAddress(noticeDto);
}
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
if (!StringUtils.hasText(noticeDto.getInstanceId())) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
dto.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskname = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
JgChangeRegistrationUnit notice = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, notice);
notice.setChangeCertificate(noticeDto.getChangeCertificate());
notice.setRemark(noticeDto.getRemark());
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListAll);
} else {
notice.setInstanceStatus(String.join(",", roleListAll));
}
notice.setInstanceId(instanceId);
notice.setNextTaskId(nextTaskId);
notice.setSupervisoryCode(noticeDto.getSupervisoryCode());
notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
notice.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, notice);
JgChangeRegistrationUnitMapper.updateById(notice);
commonServiceImpl.deleteTasksByRelationId(notice.getSequenceNbr() + "");
createTaskModel(notice, taskname, "1", nextUserIds);
commonServiceImpl.saveExecuteFlowData2Redis(notice.getInstanceId(), buildInstanceRuntimeData(notice));
} else {
notice.setInstanceStatus(String.join(",", roleListAll));
ArrayList<String> roleList = new ArrayList<>();
String taskId = noticeDto.getNextTaskId();
//组装信息
TaskResultDTO task = new TaskResultDTO();
task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (!ObjectUtils.isEmpty(noticeDto.getInstanceStatus()) &&
(noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getReject()) ||
noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getRollBack()))) {
map.put("approvalStatus", "提交");
}
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(taskId, task, op);
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if (processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() > 0) {
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
bean.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(bean.getInstanceStatus())) {
bean.setInstanceStatus(bean.getInstanceStatus() + "," + String.join(",", roleList));
} else {
bean.setInstanceStatus(String.join(",", roleList));
}
bean.setNextTaskId(nextTaskId);
bean.setPromoter(RequestContext.getExeUserId());
bean.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
executeOneStep(bean, taskName1, nextUserIds, op);
bean.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
commonServiceImpl.saveExecuteFlowData2Redis(bean.getInstanceId(), buildInstanceRuntimeData(bean));
}
notice.setInstanceId(instanceId);
notice.setNextTaskId(nextTaskId);
notice.setSupervisoryCode(noticeDto.getSupervisoryCode());
notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
notice.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, notice);
JgChangeRegistrationUnitMapper.updateById(notice);
commonServiceImpl.deleteTasksByRelationId(notice.getSequenceNbr() + "");
createTaskModel(notice, taskname, "1", nextUserIds);
commonServiceImpl.saveExecuteFlowData2Redis(notice.getInstanceId(), buildInstanceRuntimeData(notice));
} else {
ArrayList<String> roleList = new ArrayList<>();
String taskId = noticeDto.getNextTaskId();
//组装信息
TaskResultDTO task = new TaskResultDTO();
task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (!ObjectUtils.isEmpty(noticeDto.getInstanceStatus()) &&
(noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getReject()) ||
noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getRollBack()))) {
map.put("approvalStatus", "提交");
}
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(taskId, task, op);
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if (processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() > 0) {
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
bean.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(bean.getInstanceStatus())) {
bean.setInstanceStatus(bean.getInstanceStatus() + "," + String.join(",", roleList));
} else {
bean.setInstanceStatus(String.join(",", roleList));
}
bean.setNextTaskId(nextTaskId);
bean.setPromoter(RequestContext.getExeUserId());
bean.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
executeOneStep(bean, taskName1, nextUserIds, op);
bean.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
commonServiceImpl.saveExecuteFlowData2Redis(bean.getInstanceId(), buildInstanceRuntimeData(bean));
}
} else {
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
}
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(noticeDto.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(noticeDto.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, noticeDto.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, noticeDto.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
unitEq.setUnitChangeRegistrationId(noticeDto.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(noticeDto.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, noticeDto.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, noticeDto.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
return noticeDto;
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest(e.getMessage());
} finally {
FlowingEquipRedisContext.clean();
}
return noticeDto;
}
/**
......@@ -802,199 +816,217 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
@Override
@GlobalTransactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationUnitDto> saveNotice(String submitType, JSONObject map, ReginParams reginParams) {
JgChangeRegistrationUnitDto model = BeanUtil.toBeanIgnoreError(map.get("changeRegisInfo"), JgChangeRegistrationUnitDto.class);
Map<String, Object> tableData = (Map<String, Object>) map.get("changeRegisInfo");
String[] taskName = new String[]{"流程结束"};
// 字段转换
convertField(model);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = model.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = new ArrayList<>();//使用登记证id
List<String> registrationNoList = new ArrayList<>();//使用登记证编号
for (Map<String, Object> objectMap : registrationList) {
if (objectMap.containsKey("sequenceNbr") && ObjectUtils.isNotEmpty(objectMap.get("sequenceNbr"))
&& canConvertToLong(objectMap.get("sequenceNbr").toString())) {
registrationIdList.add(Long.parseLong(objectMap.get("sequenceNbr").toString()));
try {
JgChangeRegistrationUnitDto model = BeanUtil.toBeanIgnoreError(map.get("changeRegisInfo"), JgChangeRegistrationUnitDto.class);
Map<String, Object> tableData = (Map<String, Object>) map.get("changeRegisInfo");
String[] taskName = new String[]{"流程结束"};
// 字段转换
convertField(model);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = model.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
}
if (objectMap.containsKey("useRegistrationCode") && ObjectUtils.isNotEmpty(objectMap.get("useRegistrationCode"))) {
registrationNoList.add(objectMap.get("useRegistrationCode").toString());
//根据使用登记证查询设备
List<Long> registrationIdList = new ArrayList<>();//使用登记证id
List<String> registrationNoList = new ArrayList<>();//使用登记证编号
for (Map<String, Object> objectMap : registrationList) {
if (objectMap.containsKey("sequenceNbr") && ObjectUtils.isNotEmpty(objectMap.get("sequenceNbr"))
&& canConvertToLong(objectMap.get("sequenceNbr").toString())) {
registrationIdList.add(Long.parseLong(objectMap.get("sequenceNbr").toString()));
}
if (objectMap.containsKey("useRegistrationCode") && ObjectUtils.isNotEmpty(objectMap.get("useRegistrationCode"))) {
registrationNoList.add(objectMap.get("useRegistrationCode").toString());
}
}
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
}
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//场车区分区外还是区内
if (EQU_CODE_CC.equals(model.getEquListCode())) {
String city = Objects.toString(tableData.get("city"), "");
String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
this.validateDeviceCity(deviceList, userCity, "0".equals(model.getChangeType()));
this.setEquAddress(model);
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更单号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.DWBG.getCode(), 1);
List<String> applyNoList = listResponseModel.getResult();
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("生成申请变更单位编码失败");
return new ArrayList<>();
}
if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
ArrayList<String> roleListFirst = new ArrayList<>();
List<String> instanceIdList = new ArrayList<>();
List<String> nextExecutorUserIds = new ArrayList<>();
List<String> taskIds = new ArrayList<>();
List<WorkflowResultDto> workflowResultDtos = new ArrayList<>();
String nextExecutorRoleIds = "";
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setNextExecuteUserCompanyCode(model.getReceiveCompanyCode());
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
nextExecutorRoleIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
nextExecutorUserIds.add(workflowResultDtos.get(0).getNextExecutorUserIds());
for (WorkflowResultDto processTaskDTO : workflowResultDtos) {
instanceIdList.add(processTaskDTO.getInstanceId());
taskIds.add(processTaskDTO.getNextTaskId());
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
//场车区分区外还是区内
if (EQU_CODE_CC.equals(model.getEquListCode())) {
String city = Objects.toString(tableData.get("city"), "");
String userCity = Optional.ofNullable(city).map(c -> c.split("_")[0]).orElseThrow(() -> new BadRequest("请选择地市后暂存!"));
this.validateDeviceCity(deviceList, userCity, "0".equals(model.getChangeType()));
this.setEquAddress(model);
}
}
String finalNextExecutorRoleIds = nextExecutorRoleIds;
CompanyBo companyBo = commonServiceImpl.getOneCompany(model.getReceiveCompanyCode());
model.setApplyNo(applyNoList.get(0));
model.setReceiveCompanyOrgCode(companyBo.getOrgCode());
model.setCreateUserId(RequestContext.getExeUserId());
model.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
model.setNextExecutorIds(finalNextExecutorRoleIds);
model.setInstanceStatus(String.join(",", roleListFirst));
model.setPromoter(reginParams.getUserModel().getUserId());
model.setStatus(taskName[0]);
}
if (!CollectionUtils.isEmpty(nextExecutorUserIds)) {
model.setNextExecuteUserIds(nextExecutorUserIds.get(0));
}
if (!CollectionUtils.isEmpty(instanceIdList)) {
model.setInstanceId(instanceIdList.get(0));
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
} else {
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_SUBMIT.getPass());
}
if (!CollectionUtils.isEmpty(taskIds)) {
model.setNextTaskId(taskIds.get(0));
}
model.setSequenceNbr(sequence.nextId());
model.setCreateDate(new Date());
model.setCreateUserName(reginParams.getUserModel().getRealName());
model.setUseRegistCode(String.join(",", registrationNoList));
model.setEquList(registrationList.get(0).get("equList").toString());
JgChangeRegistrationUnit registrationUnit = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(model, registrationUnit);
setNewUnitInfo(reginParams, registrationUnit);
JgChangeRegistrationUnitMapper.insert(registrationUnit);
// 获取单位变更单号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.DWBG.getCode(), 1);
List<String> applyNoList = listResponseModel.getResult();
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("生成申请变更单位编码失败");
return new ArrayList<>();
}
if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
ArrayList<String> roleListFirst = new ArrayList<>();
List<String> instanceIdList = new ArrayList<>();
List<String> nextExecutorUserIds = new ArrayList<>();
List<String> taskIds = new ArrayList<>();
List<WorkflowResultDto> workflowResultDtos = new ArrayList<>();
String nextExecutorRoleIds = "";
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setNextExecuteUserCompanyCode(model.getReceiveCompanyCode());
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
nextExecutorRoleIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
nextExecutorUserIds.add(workflowResultDtos.get(0).getNextExecutorUserIds());
for (WorkflowResultDto processTaskDTO : workflowResultDtos) {
instanceIdList.add(processTaskDTO.getInstanceId());
taskIds.add(processTaskDTO.getNextTaskId());
}
}
List<TaskModelDto> modelDtos = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
TaskModelDto taskModelDto = new TaskModelDto();
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(registrationUnit.getInstanceId());
ta.setStatus(registrationUnit.getStatus());
ta.setPromoter(registrationUnit.getPromoter());
ta.setNextExecuteUserIds(registrationUnit.getNextExecuteUserIds());
ta.setSequenceNbr(registrationUnit.getSequenceNbr());
ta.setNextTaskId(registrationUnit.getNextTaskId());
taskModelDto.setModel(ta);
taskModelDto.setFlowCreateDate(new Date());
taskModelDto.setTaskName(workflowResultDtos.get(0).getNextTaskName());
taskModelDto.setFlowCode(registrationUnit.getNextTaskId());
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(registrationUnit.getInstanceId());
taskModelDto.setExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel("未处理");
taskModelDto.setFlowStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass()));
taskModelDto.setFlowStatusLabel(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
taskModelDto.setStartUserId(RequestContext.getExeUserId());
taskModelDto.setStartUser(workflowResultDtos.get(0).getStartUserName());
taskModelDto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
taskModelDto.setStartDate(new Date());
taskModelDto.setNextExecuteUser(workflowResultDtos.get(0).getNextExecutorRoleIds());
modelDtos.add(taskModelDto);
} else {
TaskModelDto taskModelDto = new TaskModelDto();
//行数据
taskModelDto.setModel(registrationUnit);
//摘要 按原有规则组装
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
//申请单号
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
//业务类型枚举code值
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
////业务主键
taskModelDto.setRelationId(registrationUnit.getSequenceNbr() + "");
modelDtos.add(taskModelDto);
String finalNextExecutorRoleIds = nextExecutorRoleIds;
CompanyBo companyBo = commonServiceImpl.getOneCompany(model.getReceiveCompanyCode());
model.setApplyNo(applyNoList.get(0));
model.setReceiveCompanyOrgCode(companyBo.getOrgCode());
model.setCreateUserId(RequestContext.getExeUserId());
model.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
model.setNextExecutorIds(finalNextExecutorRoleIds);
model.setInstanceStatus(String.join(",", roleListFirst));
model.setPromoter(reginParams.getUserModel().getUserId());
model.setStatus(taskName[0]);
}
if (!CollectionUtils.isEmpty(nextExecutorUserIds)) {
model.setNextExecuteUserIds(nextExecutorUserIds.get(0));
}
if (!CollectionUtils.isEmpty(instanceIdList)) {
model.setInstanceId(instanceIdList.get(0));
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
} else {
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_SUBMIT.getPass());
}
if (!CollectionUtils.isEmpty(taskIds)) {
model.setNextTaskId(taskIds.get(0));
}
model.setSequenceNbr(sequence.nextId());
model.setCreateDate(new Date());
model.setCreateUserName(reginParams.getUserModel().getRealName());
model.setUseRegistCode(String.join(",", registrationNoList));
model.setEquList(registrationList.get(0).get("equList").toString());
JgChangeRegistrationUnit registrationUnit = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(model, registrationUnit);
setNewUnitInfo(reginParams, registrationUnit);
JgChangeRegistrationUnitMapper.insert(registrationUnit);
List<TaskModelDto> modelDtos = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
TaskModelDto taskModelDto = new TaskModelDto();
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(registrationUnit.getInstanceId());
ta.setStatus(registrationUnit.getStatus());
ta.setPromoter(registrationUnit.getPromoter());
ta.setNextExecuteUserIds(registrationUnit.getNextExecuteUserIds());
ta.setSequenceNbr(registrationUnit.getSequenceNbr());
ta.setNextTaskId(registrationUnit.getNextTaskId());
taskModelDto.setModel(ta);
taskModelDto.setFlowCreateDate(new Date());
taskModelDto.setTaskName(workflowResultDtos.get(0).getNextTaskName());
taskModelDto.setFlowCode(registrationUnit.getNextTaskId());
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(registrationUnit.getInstanceId());
taskModelDto.setExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel("未处理");
taskModelDto.setFlowStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass()));
taskModelDto.setFlowStatusLabel(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
taskModelDto.setStartUserId(RequestContext.getExeUserId());
taskModelDto.setStartUser(workflowResultDtos.get(0).getStartUserName());
taskModelDto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
taskModelDto.setStartDate(new Date());
taskModelDto.setNextExecuteUser(workflowResultDtos.get(0).getNextExecutorRoleIds());
modelDtos.add(taskModelDto);
} else {
TaskModelDto taskModelDto = new TaskModelDto();
//行数据
taskModelDto.setModel(registrationUnit);
//摘要 按原有规则组装
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
//申请单号
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
//业务类型枚举code值
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
////业务主键
taskModelDto.setRelationId(registrationUnit.getSequenceNbr() + "");
modelDtos.add(taskModelDto);
// }
}
commonServiceImpl.saveExecuteFlowData2Redis(registrationUnit.getInstanceId(), buildInstanceRuntimeData(registrationUnit));
commonServiceImpl.buildTaskModel(modelDtos);
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(registrationUnit.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(registrationUnit.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationUnit.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, registrationUnit.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
return Collections.singletonList(model);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest(e.getMessage());
} finally {
FlowingEquipRedisContext.clean();
}
commonServiceImpl.saveExecuteFlowData2Redis(registrationUnit.getInstanceId(), buildInstanceRuntimeData(registrationUnit));
commonServiceImpl.buildTaskModel(modelDtos);
}
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(registrationUnit.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
private void rollBackForDelRedisData() {
FlowingEquipRedisContext.getContext().forEach(e -> {
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).delDataForCheckWithKey(e.getData(), e.getRedisKey());
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(registrationUnit.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationUnit.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, registrationUnit.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
return Collections.singletonList(model);
}
public void setEquAddress(JgChangeRegistrationUnitDto model) {
......
channals:
id:
name: zookeeper
auth: ADF248A492D2E89B943B3626DE32DB7E6619CD10B5BCA9502AC76AFA624104D4A5AAF320B865300FCF49E88D433564312E4B387931E4E14F5EE60A1CCCE3C9BF41C7500CE9E199DA134FD99355A628B1
host: 192.169.82.2
path: /688ca77ef14c054d94cb8e19/metadata/logic_db/rule
port: '2281'
scheme: digest
keys:
configSignature: 14666B5866B08058360FB75FF264B4143EBDFC8FCF9888C9CAAFD6B1EBADF02EA1CD85E696A0697D1760BDAD53CF29B668A47713B6C3EF106F736812A647955E
logMacKey: 4B2701E612E5A376E7B9980722105EF9BEE8F494F81E666A0AEC70BCA18FEF2C
sm2PrvKey: B79F0CB80D6C5D18CC254DA9817B86EEA662A3EFE0A3B3BDA5C1C155564FC6EDFC342D511AD50C9030DD7DB5A9D122AB
sm2PubKey: 046AE3DE41488D7BE1AA5A7C98ADB320B0ECD392DB295A30B5A1A0BB6320FBC9296775BF14319FFB0A6690060DC370EB33C983F43C37E50A196705D371CBA8D68E
userPIN: 3517382078297947681464213757066358386295150902737251965376941307
userPINCtx:
sdkconfig:
invokeMode: local
timeInterval: 6000
tracing:
host:
port:
scheme:
unionServer:
applicationID: 688ca77e4e31c23383e1ab3e
applicationKey: 3BA3D34E2192A53163B08236C17FD77543EE707C2C94559BE08E9B12D8B2B80264967D0AFAEBDE7A26D0E696A1619727
clientId: IcFjcOgrSkWoTxun
clientSecret: uOKWDyGd1KVjG9JTxF59WrOAuFz9EN0i
serverCloudCipherIp: 172.30.42.218
serverCloudCipherKeyPort: '5443'
......@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.tcm.api.enums.UnitTypeEnum;
import com.yeejoin.amos.boot.module.tcm.biz.utils.RedisUtil;
import com.yeejoin.amos.boot.module.tcm.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.tcm.flc.biz.service.impl.RegUnitInfoServiceImpl;
import com.yeejoin.amos.feign.privilege.Privilege;
......@@ -40,11 +41,14 @@ public class HistoryDataDealServiceImpl {
private RegUnitInfoServiceImpl regUnitInfoService;
public HistoryDataDealServiceImpl(TzsUserInfoServiceImpl userInfoService, TzsUserPermissionServiceImpl userPermissionService, TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService, RegUnitInfoServiceImpl regUnitInfoService) {
private RedisUtil redisUtil;
public HistoryDataDealServiceImpl(TzsUserInfoServiceImpl userInfoService, TzsUserPermissionServiceImpl userPermissionService, TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService, RegUnitInfoServiceImpl regUnitInfoService, RedisUtil redisUtil) {
this.userInfoService = userInfoService;
this.userPermissionService = userPermissionService;
this.baseEnterpriseInfoService = baseEnterpriseInfoService;
this.regUnitInfoService = regUnitInfoService;
this.redisUtil = redisUtil;
}
@Transactional(rollbackFor = Exception.class)
......@@ -186,8 +190,8 @@ public class HistoryDataDealServiceImpl {
try {
regUnitInfo.setAppId(regUnitInfoService.createAppId(user));
} catch (Exception e) {
log.error("为没有appId的企业生成appId异常", e);
throw new RuntimeException(e);
log.error("为没有appId的企业生成appId异常:{}", JSON.toJSONString(user));
redisUtil.set("createAppIdError-unit"+ "_" + System.currentTimeMillis(), JSON.toJSONString(user));
}
}
companyListWithOutAppId.stream().filter(company -> company.getUseUnitCode().equals(regUnitInfo.getUnitCode())).forEach(company -> company.setAppId(regUnitInfo.getAppId()));
......@@ -207,8 +211,8 @@ public class HistoryDataDealServiceImpl {
try {
map.put("appId", regUnitInfoService.createAppId(user));
} catch (Exception e) {
log.error("为没有appId的企业生成appId异常", e);
throw new RuntimeException(e);
log.error("为没有appId的个人主体生成appId异常:{}", JSON.toJSONString(user));
redisUtil.set("createAppIdError-individual"+ "_" + System.currentTimeMillis(), JSON.toJSONString(user));
}
});
}
......
......@@ -78,4 +78,8 @@ public interface IdxBizJgRegisterInfoMapper extends CustomBaseMapper<IdxBizJgReg
" AND (jri.car_number = CAST(#{carNumber} AS VARCHAR) OR CAST(#{carNumber} AS VARCHAR) IS NULL)\n" +
" AND (jri.use_org_code <> CAST(#{useOrgCode} AS VARCHAR) OR CAST(#{useOrgCode} AS VARCHAR) IS NULL)")
Integer checkCarNumberUniqueness(@Param("carNumber") String carNumber, @Param("useOrgCode") String useOrgCode);
List<IdxBizJgRegisterInfo> selectDeleteEquipIsNotClaimed(@Param("useUnitCreditCode") String useUnitCreditCode,
@Param("equList")String equList,
@Param("dataSource")String dataSource);
}
......@@ -67,6 +67,16 @@
#{equCode}
</foreach>
</update>
<select id="selectDeleteEquipIsNotClaimed" resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo">
SELECT jri.RECORD
FROM idx_biz_jg_register_info jri
JOIN idx_biz_jg_use_info jui ON jri.record = jui.record
WHERE jui.STATUS = '待删除'
AND jri.EQU_LIST = #{equList}
AND jui.DATA_SOURCE = #{dataSource}
AND jui.USE_UNIT_CREDIT_CODE = #{useUnitCreditCode}
</select>
</mapper>
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