Commit 62e75e42 authored by tianbo's avatar tianbo

bugfix:cyl对接气瓶编号唯一校验

parent 00ebf8c6
...@@ -15,6 +15,7 @@ public class CylinderFillingDataValidationResultModel { ...@@ -15,6 +15,7 @@ public class CylinderFillingDataValidationResultModel {
private List<String> beforeErrorData; private List<String> beforeErrorData;
private List<String> recordErrorData; private List<String> recordErrorData;
private List<String> afterErrorData; private List<String> afterErrorData;
private List<String> seqCodeErrorData;
private String result = "success"; private String result = "success";
} }
...@@ -3,8 +3,8 @@ package com.yeejoin.amos.api.openapi.face.orm.dao; ...@@ -3,8 +3,8 @@ package com.yeejoin.amos.api.openapi.face.orm.dao;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.api.openapi.face.orm.entity.MidEquipRegistrationInfo; import com.yeejoin.amos.api.openapi.face.orm.entity.MidEquipRegistrationInfo;
import org.springframework.data.jpa.repository.Query; import org.apache.ibatis.annotations.Param;
import org.springframework.data.repository.query.Param; import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -18,6 +18,17 @@ import java.util.Set; ...@@ -18,6 +18,17 @@ import java.util.Set;
public interface MidEquipRegistrationInfoMapper extends BaseMapper<MidEquipRegistrationInfo> { public interface MidEquipRegistrationInfoMapper extends BaseMapper<MidEquipRegistrationInfo> {
@DS("tzs") @DS("tzs")
@Query("SELECT DISTINCT r.* FROM idx_biz_jg_use_info i, idx_biz_jg_register_info r WHERE i.data_source like 'jg%' AND i.RECORD = r.RECORD AND r.EQU_CODE IN :values") @Select("<script>" +
List<MidEquipRegistrationInfo> getUseInfoByEquipCode(@Param("values") Set<String> sequenceCodes); "SELECT DISTINCT sequenceCode FROM " +
"(SELECT concat ( fi.\"PRODUCE_UNIT_CREDIT_CODE\", '-', fi.\"FACTORY_NUM\" ) sequenceCode " +
"FROM idx_biz_jg_factory_info fi, idx_biz_jg_other_info oi " +
"WHERE oi.\"RECORD\" = fi.\"RECORD\" " +
" AND oi.\"CLAIM_STATUS\" = '已认领' " +
" AND fi.\"PRODUCE_UNIT_CREDIT_CODE\" IS NOT NULL " +
" AND fi.\"FACTORY_NUM\" IS NOT NULL) WHERE sequenceCode in " +
"<foreach item='item' index='index' collection='sequenceCodes' open='(' separator=',' close=')'>" +
" #{item}" +
"</foreach>" +
"</script>")
List<String> getUsedCountBySeqCodes(@Param("sequenceCodes") Set<String> sequenceCodes);
} }
...@@ -5,7 +5,6 @@ import cn.hutool.core.collection.ConcurrentHashSet; ...@@ -5,7 +5,6 @@ import cn.hutool.core.collection.ConcurrentHashSet;
import com.yeejoin.amos.api.openapi.enums.*; import com.yeejoin.amos.api.openapi.enums.*;
import com.yeejoin.amos.api.openapi.face.model.*; import com.yeejoin.amos.api.openapi.face.model.*;
import com.yeejoin.amos.api.openapi.face.orm.dao.MidEquipRegistrationInfoMapper; import com.yeejoin.amos.api.openapi.face.orm.dao.MidEquipRegistrationInfoMapper;
import com.yeejoin.amos.api.openapi.face.orm.entity.MidEquipRegistrationInfo;
import com.yeejoin.amos.boot.module.cylinder.api.dto.TzBaseEnterpriseInfoDto; import com.yeejoin.amos.boot.module.cylinder.api.dto.TzBaseEnterpriseInfoDto;
import net.sf.json.JSONArray; import net.sf.json.JSONArray;
import net.sf.json.JSONNull; import net.sf.json.JSONNull;
...@@ -193,7 +192,7 @@ public class CylinderFillingDataValidationService { ...@@ -193,7 +192,7 @@ public class CylinderFillingDataValidationService {
Set<String> afterErrorCylinderSet = new ConcurrentHashSet<>(); Set<String> afterErrorCylinderSet = new ConcurrentHashSet<>();
CompletableFuture<List<String>> beforeFuture = CompletableFuture.supplyAsync(() -> { CompletableFuture<List<String>> beforeFuture = CompletableFuture.supplyAsync(() -> {
// 异步校验检验前数据 // 异步校验充装前数据
JSONArray fillingBefore = jsonobject.getJSONArray("fillingBefore"); JSONArray fillingBefore = jsonobject.getJSONArray("fillingBefore");
if (!ObjectUtils.isEmpty(fillingBefore)) { if (!ObjectUtils.isEmpty(fillingBefore)) {
for (int i = 0; i < fillingBefore.size(); i++) { for (int i = 0; i < fillingBefore.size(); i++) {
...@@ -204,7 +203,7 @@ public class CylinderFillingDataValidationService { ...@@ -204,7 +203,7 @@ public class CylinderFillingDataValidationService {
return validateFillingBeforeData(fillingBefore, beforeErrorCylinderSet); return validateFillingBeforeData(fillingBefore, beforeErrorCylinderSet);
}); });
CompletableFuture<List<String>> recordFuture = CompletableFuture.supplyAsync(() -> { CompletableFuture<List<String>> recordFuture = CompletableFuture.supplyAsync(() -> {
// 异步校验检填充数据 // 异步校验检充装时数据
JSONArray filling = jsonobject.getJSONArray("filling"); JSONArray filling = jsonobject.getJSONArray("filling");
if (!ObjectUtils.isEmpty(filling)) { if (!ObjectUtils.isEmpty(filling)) {
for (int i = 0; i < filling.size(); i++) { for (int i = 0; i < filling.size(); i++) {
...@@ -216,7 +215,7 @@ public class CylinderFillingDataValidationService { ...@@ -216,7 +215,7 @@ public class CylinderFillingDataValidationService {
}); });
CompletableFuture<List<String>> afterFuture = CompletableFuture.supplyAsync(() -> { CompletableFuture<List<String>> afterFuture = CompletableFuture.supplyAsync(() -> {
// 异步校验检填充后数据 // 异步校验充装后数据
JSONArray fillingAfter = jsonobject.getJSONArray("fillingAfter"); JSONArray fillingAfter = jsonobject.getJSONArray("fillingAfter");
if (!ObjectUtils.isEmpty(fillingAfter)) { if (!ObjectUtils.isEmpty(fillingAfter)) {
for (int i = 0; i < fillingAfter.size(); i++) { for (int i = 0; i < fillingAfter.size(); i++) {
...@@ -224,7 +223,7 @@ public class CylinderFillingDataValidationService { ...@@ -224,7 +223,7 @@ public class CylinderFillingDataValidationService {
cylinderCodeSet.add(row.getString("sequenceCode")); cylinderCodeSet.add(row.getString("sequenceCode"));
} }
} }
return validateFillinAfterData(jsonobject.getJSONArray("fillingAfter"), afterErrorCylinderSet); return validateFillingAfterData(fillingAfter, afterErrorCylinderSet);
}); });
/** /**
...@@ -236,12 +235,20 @@ public class CylinderFillingDataValidationService { ...@@ -236,12 +235,20 @@ public class CylinderFillingDataValidationService {
result.setAfterErrorData(afterFuture.get()); result.setAfterErrorData(afterFuture.get());
result.setCylinderNumber(cylinderCodeSet.size()); result.setCylinderNumber(cylinderCodeSet.size());
result.setBeforeErrorCylinderNumber(beforeErrorCylinderSet.size()); result.setBeforeErrorCylinderNumber(beforeErrorCylinderSet.size());
result.setRecordErrorCylinderNumber(recordErrorCylinderSet.size()); result.setRecordErrorCylinderNumber(recordErrorCylinderSet.size());
result.setAfterErrorCylinderNumber(afterErrorCylinderSet.size()); result.setAfterErrorCylinderNumber(afterErrorCylinderSet.size());
cylinderCodeSet.removeAll(beforeErrorCylinderSet); cylinderCodeSet.removeAll(beforeErrorCylinderSet);
cylinderCodeSet.removeAll(recordErrorCylinderSet); cylinderCodeSet.removeAll(recordErrorCylinderSet);
cylinderCodeSet.removeAll(afterErrorCylinderSet); cylinderCodeSet.removeAll(afterErrorCylinderSet);
if (!ObjectUtils.isEmpty(cylinderCodeSet)) {
// 检查气瓶唯一标识码在系统是否存在
List<String> errorRows = getNotExistSequenceCodes(cylinderCodeSet);
result.setSeqCodeErrorData(errorRows);
}
result.setSuccessCylinderNumber(cylinderCodeSet.size()); result.setSuccessCylinderNumber(cylinderCodeSet.size());
return result; return result;
} }
...@@ -330,7 +337,7 @@ public class CylinderFillingDataValidationService { ...@@ -330,7 +337,7 @@ public class CylinderFillingDataValidationService {
* @param jsonArray * @param jsonArray
* @return List 异常数据 * @return List 异常数据
*/ */
public List<String> validateFillinAfterData(JSONArray jsonArray, Set<String> errorCylinderSet) { public List<String> validateFillingAfterData(JSONArray jsonArray, Set<String> errorCylinderSet) {
// 1.必填校验 // 1.必填校验
List<String> errorRows = validateRequired(FillingAfterFieldEnum.getAllRequireKeys(), jsonArray); List<String> errorRows = validateRequired(FillingAfterFieldEnum.getAllRequireKeys(), jsonArray);
...@@ -445,10 +452,9 @@ public class CylinderFillingDataValidationService { ...@@ -445,10 +452,9 @@ public class CylinderFillingDataValidationService {
* @return * @return
*/ */
public List<String> getNotExistSequenceCodes(Set<String> sequenceCodes) { public List<String> getNotExistSequenceCodes(Set<String> sequenceCodes) {
List<MidEquipRegistrationInfo> useInfos = registrationInfoMapper.getUseInfoByEquipCode(sequenceCodes); List<String> usedSeqCodeList = registrationInfoMapper.getUsedCountBySeqCodes(sequenceCodes);
if (useInfos.size() < sequenceCodes.size()) { if (usedSeqCodeList.size() < sequenceCodes.size()) {
List<String> equipCodes = useInfos.stream().map(e -> e.getEquCode()).collect(Collectors.toList()); return sequenceCodes.stream().filter(c -> !usedSeqCodeList.contains(c)).collect(Collectors.toList());
return sequenceCodes.stream().filter(c -> !equipCodes.contains(c)).collect(Collectors.toList());
} }
return null; return null;
} }
......
...@@ -10,7 +10,6 @@ import com.yeejoin.amos.api.openapi.service.MyBaseServiceImpl; ...@@ -10,7 +10,6 @@ import com.yeejoin.amos.api.openapi.service.MyBaseServiceImpl;
import com.yeejoin.amos.api.openapi.util.MultiFieldKey; import com.yeejoin.amos.api.openapi.util.MultiFieldKey;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import java.util.Date; import java.util.Date;
...@@ -29,10 +28,16 @@ import java.util.List; ...@@ -29,10 +28,16 @@ import java.util.List;
@Component @Component
public class TmCylinderFillingService extends MyBaseServiceImpl<TmCylinderFillingModel, TmCylinderFilling, TmCylinderFillingMapper> { public class TmCylinderFillingService extends MyBaseServiceImpl<TmCylinderFillingModel, TmCylinderFilling, TmCylinderFillingMapper> {
private final SyncCylinderDataService syncCylinderDataService;
@Autowired @Autowired
private SyncCylinderDataService syncCylinderDataService; private TmCylinderFillingService self;
public TmCylinderFillingService(SyncCylinderDataService syncCylinderDataService) {
this.syncCylinderDataService = syncCylinderDataService;
}
@DSTransactional @DSTransactional
public void createCylinderFillingBefore(List<TmCylinderFillingModel> model) { public void createCylinderFillingBefore(List<TmCylinderFillingModel> model) {
Date now = new Date(); Date now = new Date();
String appId = getAppId(); String appId = getAppId();
...@@ -45,7 +50,7 @@ public class TmCylinderFillingService extends MyBaseServiceImpl<TmCylinderFillin ...@@ -45,7 +50,7 @@ public class TmCylinderFillingService extends MyBaseServiceImpl<TmCylinderFillin
// 同步至气瓶业务库 // 同步至气瓶业务库
syncCylinderFillingBefore(model); syncCylinderFillingBefore(model);
this.saveOrUpdateBatchByUniqueFields( self.saveOrUpdateBatchByUniqueFields(
tmCylinderFillingList, tmCylinderFillingList,
tmCylinderFilling -> new LambdaQueryWrapper<TmCylinderFilling>() tmCylinderFilling -> new LambdaQueryWrapper<TmCylinderFilling>()
.eq(TmCylinderFilling::getAppId, tmCylinderFilling.getAppId()) .eq(TmCylinderFilling::getAppId, tmCylinderFilling.getAppId())
......
...@@ -9,4 +9,5 @@ public class CylinderFillingMessage { ...@@ -9,4 +9,5 @@ public class CylinderFillingMessage {
private Integer cylinderNumber; private Integer cylinderNumber;
private String message; private String message;
private String appId; private String appId;
private String orgCode;
} }
...@@ -26,7 +26,6 @@ import com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService; ...@@ -26,7 +26,6 @@ import com.yeejoin.amos.boot.module.ymt.api.service.IGenerateCodeService;
import com.yeejoin.amos.boot.module.ymt.api.vo.EquipExportVo; import com.yeejoin.amos.boot.module.ymt.api.vo.EquipExportVo;
import com.yeejoin.amos.boot.module.ymt.biz.dao.ESElavtorRepository; import com.yeejoin.amos.boot.module.ymt.biz.dao.ESElavtorRepository;
import com.yeejoin.amos.boot.module.ymt.biz.utils.JsonUtils; import com.yeejoin.amos.boot.module.ymt.biz.utils.JsonUtils;
import com.yeejoin.amos.boot.module.ymt.biz.utils.StringUtils;
import com.yeejoin.amos.boot.module.ymt.flc.api.feign.IdxFeignService; import com.yeejoin.amos.boot.module.ymt.flc.api.feign.IdxFeignService;
import com.yeejoin.amos.boot.module.ymt.flc.api.feign.PrivilegeFeginService; import com.yeejoin.amos.boot.module.ymt.flc.api.feign.PrivilegeFeginService;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
......
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