|
|
package com.glxp.api.service.basic;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.glxp.api.dao.basic.BasicProductsDao;
|
|
|
import com.glxp.api.dao.basic.UdiRelevanceDao;
|
|
|
import com.glxp.api.entity.basic.BasicProductsEntity;
|
|
|
import com.glxp.api.entity.basic.UdiProductEntity;
|
|
|
import com.glxp.api.entity.basic.UdiRelevanceEntity;
|
|
|
import com.glxp.api.entity.inout.IoCodeTempEntity;
|
|
|
import com.glxp.api.entity.thrsys.ThrSystemEntity;
|
|
|
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
|
|
|
import com.glxp.api.req.basic.FilterUdiRelRequest;
|
|
|
import com.glxp.api.res.basic.MainIdRelIdAndProductResponse;
|
|
|
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
|
|
import com.glxp.api.res.basic.UdiRlSupResponse;
|
|
|
import com.glxp.api.service.thrsys.ThrSystemService;
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public class UdiRelevanceService extends ServiceImpl<UdiRelevanceDao, UdiRelevanceEntity> {
|
|
|
@Resource
|
|
|
UdiRelevanceDao udiRelevanceDao;
|
|
|
@Resource
|
|
|
UdiRlSupService udiRlSupService;
|
|
|
@Resource
|
|
|
ThrSystemService basicThirdSysService;
|
|
|
|
|
|
public List<UdiRelevanceResponse> filterUdiRelevance(FilterUdiRelRequest filterUdiRelRequest) {
|
|
|
if (filterUdiRelRequest == null) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
if (filterUdiRelRequest.getPage() != null) {
|
|
|
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
|
|
|
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
|
|
|
}
|
|
|
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest);
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
public List<UdiRelevanceResponse> filterCertUdi(FilterUdiRelRequest filterUdiRelRequest) {
|
|
|
|
|
|
|
|
|
if (filterUdiRelRequest == null) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
if (filterUdiRelRequest.getPage() != null) {
|
|
|
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
|
|
|
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
|
|
|
}
|
|
|
List<UdiRelevanceResponse> data = udiRelevanceDao.filterCertUdi(filterUdiRelRequest);
|
|
|
return data;
|
|
|
|
|
|
}
|
|
|
|
|
|
public List<UdiRelevanceResponse> filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest) {
|
|
|
if (filterUdiRelRequest == null) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
if (filterUdiRelRequest.getPage() != null) {
|
|
|
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
|
|
|
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
|
|
|
}
|
|
|
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiJoinSup(filterUdiRelRequest);
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
public List<UdiRelevanceResponse> selectAllByNameCode(String nameCode) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setUniqueNameCode(nameCode);
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest);
|
|
|
return udiRelevanceResponses;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceResponse selectByNameCode(String nameCode) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setUniqueNameCode(nameCode);
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest);
|
|
|
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0)
|
|
|
return udiRelevanceResponses.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceResponse selectByRelId(String relId) {
|
|
|
if (StrUtil.isEmpty(relId))
|
|
|
return null;
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setId(Long.parseLong(relId));
|
|
|
UdiRelevanceResponse udiRelevanceResponses = selectOneUdi(filterUdiRelRequest);
|
|
|
return udiRelevanceResponses;
|
|
|
}
|
|
|
|
|
|
public UdiRelevanceResponse selectByLevelRelId(String relId) {
|
|
|
if (StrUtil.isEmpty(relId))
|
|
|
return null;
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setId(Long.parseLong(relId));
|
|
|
filterUdiRelRequest.setPackLevel("1");
|
|
|
UdiRelevanceResponse udiRelevanceResponses = selectOneUdi(filterUdiRelRequest);
|
|
|
return udiRelevanceResponses;
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRelevanceResponse> selectAllByNameCode(String nameCode, String unitFk) {
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses;
|
|
|
if (StrUtil.isNotEmpty(unitFk)) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setUniqueNameCode(nameCode);
|
|
|
filterUdiRelRequest.setUnitFk(unitFk);
|
|
|
filterUdiRelRequest.setIsDisable(false);
|
|
|
filterUdiRelRequest.setKey("key");
|
|
|
udiRelevanceResponses = filterUdiJoinSup(filterUdiRelRequest);
|
|
|
} else {
|
|
|
udiRelevanceResponses = selectGroupByNameCode(nameCode, false);
|
|
|
}
|
|
|
return udiRelevanceResponses;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
*/
|
|
|
public List<UdiRelevanceResponse> selectDrugsByNameCode(IoCodeTempEntity codeEnttity, String unitFk) {
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses;
|
|
|
if (StrUtil.isNotEmpty(unitFk)) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setUniqueNameCode(codeEnttity.getNameCode());
|
|
|
filterUdiRelRequest.setUnitFk(unitFk);
|
|
|
filterUdiRelRequest.setIsDisable(false);
|
|
|
filterUdiRelRequest.setKey("key");
|
|
|
if (codeEnttity.getProductType() != null) {
|
|
|
filterUdiRelRequest.setProductsType(codeEnttity.getProductType());
|
|
|
}
|
|
|
udiRelevanceResponses = filterUdiJoinSup(filterUdiRelRequest);
|
|
|
} else {
|
|
|
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setNameCode(codeEnttity.getNameCode());
|
|
|
filterUdiRelRequest.setIsDisable(false);
|
|
|
filterUdiRelRequest.setProductsType(codeEnttity.getProductType());
|
|
|
return udiRelevanceDao.filterUdiGp(filterUdiRelRequest);
|
|
|
}
|
|
|
return udiRelevanceResponses;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据收费项目查询产品信息
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public UdiRelevanceResponse selectByPayFeeCode(String payFeeCode) {
|
|
|
|
|
|
if (StrUtil.isEmpty(payFeeCode)) {
|
|
|
return null;
|
|
|
}
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses;
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setPayFeeCode(payFeeCode);
|
|
|
udiRelevanceResponses = filterUdiJoinSup(filterUdiRelRequest);
|
|
|
if (CollUtil.isNotEmpty(udiRelevanceResponses)) {
|
|
|
return udiRelevanceResponses.get(0);
|
|
|
}
|
|
|
return null;
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
public boolean isExit() {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setPage(1);
|
|
|
filterUdiRelRequest.setLimit(1);
|
|
|
List<UdiRelevanceResponse> data = filterUdiRelevance(filterUdiRelRequest);
|
|
|
if (data != null && data.size() > 0) {
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRelevanceResponse> filterUdiGp(FilterUdiRelRequest filterUdiRelRequest) {
|
|
|
if (filterUdiRelRequest == null) {
|
|
|
return Collections.emptyList();
|
|
|
}
|
|
|
if (filterUdiRelRequest.getPage() != null) {
|
|
|
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
|
|
|
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
|
|
|
}
|
|
|
|
|
|
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiGp(filterUdiRelRequest);
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRelevanceEntity> batchSelectByUuid(List<String> uuids) {
|
|
|
return udiRelevanceDao.batchSelectByUuid(uuids);
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRelevanceEntity> batchSelectByIds(List<String> ids) {
|
|
|
return udiRelevanceDao.batchSelectByIds(ids);
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRelevanceEntity> selectByUuid(String uuid) {
|
|
|
return udiRelevanceDao.selectByUuid(uuid);
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceEntity selectById(Long id) {
|
|
|
return udiRelevanceDao.selectById(id);
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceResponse selectGroupById(Long id) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setId(id);
|
|
|
filterUdiRelRequest.setDiType(1);
|
|
|
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest);
|
|
|
if (data != null && data.size() > 0)
|
|
|
return data.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceResponse selectUdiId(Long id) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setId(id);
|
|
|
List<UdiRelevanceResponse> data = udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest);
|
|
|
if (data != null && data.size() > 0)
|
|
|
return data.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceResponse selectSupGroupById(Long id, String supId) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
if (StrUtil.isNotEmpty(supId))
|
|
|
filterUdiRelRequest.setUnitFk(supId);
|
|
|
filterUdiRelRequest.setId(id);
|
|
|
filterUdiRelRequest.setDiType(1);
|
|
|
return udiRelevanceDao.selectOneUdiJoinSup(filterUdiRelRequest);
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceEntity selectUpdateByUuid(String uuid) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setUuid(uuid);
|
|
|
List<UdiRelevanceEntity> data = udiRelevanceDao.filterEntity(filterUdiRelRequest);
|
|
|
if (data != null && data.size() > 0)
|
|
|
return data.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceEntity selectUpdateByThirdId(String thirdId) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
if (thirdId != null) {
|
|
|
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys();
|
|
|
String mainSys = basicThirdSysEntity.getThirdId();
|
|
|
if (mainSys.equals("thirdId")) {
|
|
|
filterUdiRelRequest.setThirdId(thirdId);
|
|
|
} else if (mainSys.equals("thirdId1")) {
|
|
|
filterUdiRelRequest.setThirdId1(thirdId);
|
|
|
} else if (mainSys.equals("thirdId2")) {
|
|
|
filterUdiRelRequest.setThirdId2(thirdId);
|
|
|
} else if (mainSys.equals("thirdId3")) {
|
|
|
filterUdiRelRequest.setThirdId3(thirdId);
|
|
|
} else if (mainSys.equals("thirdId4")) {
|
|
|
filterUdiRelRequest.setThirdId4(thirdId);
|
|
|
}
|
|
|
}
|
|
|
List<UdiRelevanceEntity> data = udiRelevanceDao.filterEntity(filterUdiRelRequest);
|
|
|
if (data != null && data.size() > 0)
|
|
|
return data.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public List<UdiRelevanceResponse> selectByMainId(String mainId) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setMainId(mainId);
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = filterUdiRelevance(filterUdiRelRequest);
|
|
|
return udiRelevanceResponses;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceEntity selectUpteaByAll(String uuid, String thirdId) {
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
if (thirdId != null) {
|
|
|
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys();
|
|
|
String mainSys = basicThirdSysEntity.getThirdId();
|
|
|
filterUdiRelRequest.setUuid(uuid);
|
|
|
if (mainSys.equals("thirdId")) {
|
|
|
filterUdiRelRequest.setThirdId(thirdId);
|
|
|
} else if (mainSys.equals("thirdId1")) {
|
|
|
filterUdiRelRequest.setThirdId1(thirdId);
|
|
|
} else if (mainSys.equals("thirdId2")) {
|
|
|
filterUdiRelRequest.setThirdId2(thirdId);
|
|
|
} else if (mainSys.equals("thirdId3")) {
|
|
|
filterUdiRelRequest.setThirdId3(thirdId);
|
|
|
} else if (mainSys.equals("thirdId4")) {
|
|
|
filterUdiRelRequest.setThirdId4(thirdId);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
List<UdiRelevanceEntity> data = udiRelevanceDao.filterEntity(filterUdiRelRequest);
|
|
|
if (data != null && data.size() > 0)
|
|
|
return data.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceEntity selectByThirdId(String thirdId, String thirdSys) {
|
|
|
|
|
|
if (StrUtil.isEmpty(thirdId) || StrUtil.isEmpty(thirdSys)) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
if ("thirdId".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId(thirdId);
|
|
|
} else if ("thirdId1".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId1(thirdId);
|
|
|
} else if ("thirdId2".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId2(thirdId);
|
|
|
} else if ("thirdId3".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId3(thirdId);
|
|
|
} else if ("thirdId4".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId4(thirdId);
|
|
|
}
|
|
|
|
|
|
return udiRelevanceDao.selectByThirdId(filterUdiRelRequest);
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRlSupResponse> selectListByThirdId(String thirdId, String thirdSys) {
|
|
|
if (StrUtil.isEmpty(thirdId) || StrUtil.isEmpty(thirdSys)) {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
CompanyProductRelevanceRequest filterUdiRelRequest = new CompanyProductRelevanceRequest();
|
|
|
if ("thirdId".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId(thirdId);
|
|
|
} else if ("thirdId1".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId1(thirdId);
|
|
|
} else if ("thirdId2".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId2(thirdId);
|
|
|
} else if ("thirdId3".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId3(thirdId);
|
|
|
} else if ("thirdId4".equals(thirdSys)) {
|
|
|
filterUdiRelRequest.setThirdId4(thirdId);
|
|
|
}
|
|
|
filterUdiRelRequest.setDiType(1);
|
|
|
List<UdiRlSupResponse> data = udiRlSupService.filterUdiGp(filterUdiRelRequest);
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
public UdiProductEntity getDiProduct(List<UdiProductEntity> udiInfoEntities) {
|
|
|
return udiInfoEntities.stream()
|
|
|
.filter(udiProductEntity -> IntUtil.value(udiProductEntity.getDiType()) == 1)
|
|
|
.findFirst()
|
|
|
.orElse(null);
|
|
|
}
|
|
|
|
|
|
public UdiRelevanceEntity insertDefaultLevel(UdiRelevanceEntity udiRelevanceEntity, UdiProductEntity udiProductEntity) {
|
|
|
if (udiProductEntity != null) {
|
|
|
udiRelevanceEntity.setDistributeLevel(1);
|
|
|
udiRelevanceEntity.setUseLevel(0);
|
|
|
}
|
|
|
|
|
|
return udiRelevanceEntity;
|
|
|
}
|
|
|
|
|
|
public boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) {
|
|
|
return udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
|
|
|
}
|
|
|
|
|
|
|
|
|
public UdiRelevanceResponse selectByMainIdOne(String mainId) {
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = selectByMainId(mainId);
|
|
|
if (udiRelevanceResponses != null && udiRelevanceResponses.size() > 0)
|
|
|
return udiRelevanceResponses.get(0);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public boolean updateUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) {
|
|
|
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectMainThrSys();
|
|
|
String mainSys = basicThirdSysEntity.getThirdId();
|
|
|
if (mainSys.equals("thirdId")) {
|
|
|
udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId());
|
|
|
} else if (mainSys.equals("thirdId1")) {
|
|
|
udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId1());
|
|
|
} else if (mainSys.equals("thirdId2")) {
|
|
|
udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId2());
|
|
|
} else if (mainSys.equals("thirdId3")) {
|
|
|
udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId3());
|
|
|
} else if (mainSys.equals("thirdId4")) {
|
|
|
udiRelevanceEntity.setMainId(udiRelevanceEntity.getThirdId4());
|
|
|
}
|
|
|
return udiRelevanceDao.updateUdiRelevance(udiRelevanceEntity);
|
|
|
}
|
|
|
|
|
|
|
|
|
public boolean deleteById(String id) {
|
|
|
return udiRelevanceDao.deleteById(id);
|
|
|
}
|
|
|
|
|
|
|
|
|
public boolean deleteByIds(List<String> ids) {
|
|
|
return udiRelevanceDao.deleteByIds(ids);
|
|
|
}
|
|
|
|
|
|
|
|
|
public List<UdiRelevanceResponse> selectGroupByNameCode(String nameCode, Boolean isDisable) {
|
|
|
// FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
// filterUdiRelRequest.setNameCode(nameCode);
|
|
|
// filterUdiRelRequest.setIsDisable(isDisable);
|
|
|
return udiRelevanceDao.selectGroupByNameCode(nameCode, isDisable);
|
|
|
}
|
|
|
|
|
|
public UdiRelevanceResponse selectOneUdi(FilterUdiRelRequest filterUdiRelRequest) {
|
|
|
return udiRelevanceDao.selectOneUdi(filterUdiRelRequest);
|
|
|
}
|
|
|
|
|
|
|
|
|
public MainIdRelIdAndProductResponse selectMainIdRelIdAndProductMap(List<String> thrCodes, String thirdSys) {
|
|
|
MainIdRelIdAndProductResponse mainIdRelIdAndProductResponse = new MainIdRelIdAndProductResponse();
|
|
|
Map<String, UdiRelevanceEntity> mainIdRelIdMap = new HashMap<>();
|
|
|
Map<Long, BasicProductsEntity> relIdBasicProductsEntityMap = new HashMap<>();
|
|
|
QueryWrapper<UdiRelevanceEntity> qw = new QueryWrapper<>();
|
|
|
qw.in(thirdSys, thrCodes);
|
|
|
qw.ne("isDisable", true);
|
|
|
qw.select("id", "mainId");
|
|
|
|
|
|
List<UdiRelevanceEntity> udiRelevanceEntityList = udiRelevanceDao.selectList(qw);
|
|
|
if (CollectionUtil.isNotEmpty(udiRelevanceEntityList)) {
|
|
|
mainIdRelIdMap = udiRelevanceEntityList.stream().collect(Collectors.toMap(UdiRelevanceEntity::getMainId, udiRelevanceEntity -> udiRelevanceEntity));
|
|
|
}
|
|
|
|
|
|
mainIdRelIdAndProductResponse.setMainIdRelIdMap(mainIdRelIdMap);
|
|
|
mainIdRelIdAndProductResponse.setRelIdBasicProductsEntityMap(relIdBasicProductsEntityMap);
|
|
|
return mainIdRelIdAndProductResponse;
|
|
|
}
|
|
|
|
|
|
|
|
|
public Integer findPurType(Long relId) {
|
|
|
UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectOne(new QueryWrapper<UdiRelevanceEntity>().select("purType").eq("id", relId).last("limit 1"));
|
|
|
if (udiRelevanceEntity == null)
|
|
|
return 0;
|
|
|
return IntUtil.value(udiRelevanceEntity.getPurType());
|
|
|
}
|
|
|
|
|
|
@Resource
|
|
|
private BasicProductsDao basicProductsDao;
|
|
|
|
|
|
public List<Long> selectByCheckCode(String checkCode) {
|
|
|
LambdaQueryWrapper<BasicProductsEntity> exactMatchWrapper = new LambdaQueryWrapper<>();
|
|
|
exactMatchWrapper.eq(BasicProductsEntity::getYbbm, checkCode);
|
|
|
List<BasicProductsEntity> exactMatches = basicProductsDao.selectList(exactMatchWrapper);
|
|
|
if (exactMatches.isEmpty()) {
|
|
|
// 2. 如果没有完全匹配,则查询前20位匹配的情况
|
|
|
LambdaQueryWrapper<BasicProductsEntity> prefixMatchWrapper = new LambdaQueryWrapper<>();
|
|
|
prefixMatchWrapper.apply("LEFT(ybbm, 20) = LEFT({0}, 20)", checkCode);
|
|
|
exactMatches = basicProductsDao.selectList(prefixMatchWrapper);
|
|
|
}
|
|
|
if (CollUtil.isNotEmpty(exactMatches)) {
|
|
|
List<Long> relIds = udiRelevanceDao.selectList(new LambdaQueryWrapper<UdiRelevanceEntity>()
|
|
|
.in(UdiRelevanceEntity::getUuid, exactMatches.stream().map(BasicProductsEntity::getUuid).collect(Collectors.toList()))
|
|
|
).stream().map(UdiRelevanceEntity::getId).collect(Collectors.toList());
|
|
|
return relIds;
|
|
|
} else {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 批量查询追溯码信息
|
|
|
*
|
|
|
* @param nameCodes 追溯码列表
|
|
|
* @return 追溯码信息映射
|
|
|
*/
|
|
|
public Map<String, UdiRelevanceResponse> batchSelectByNameCodes(List<String> nameCodes) {
|
|
|
if (CollUtil.isEmpty(nameCodes)) {
|
|
|
return new HashMap<>();
|
|
|
}
|
|
|
|
|
|
Map<String, UdiRelevanceResponse> resultMap = new HashMap<>();
|
|
|
|
|
|
// 对大批量数据进行分批处理,每次处理500个
|
|
|
int batchSize = 500;
|
|
|
for (int i = 0; i < nameCodes.size(); i += batchSize) {
|
|
|
int endIndex = Math.min(i + batchSize, nameCodes.size());
|
|
|
List<String> batchCodes = nameCodes.subList(i, endIndex);
|
|
|
|
|
|
// 使用IN查询一次性获取多个码的信息
|
|
|
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
|
|
|
filterUdiRelRequest.setNameCodes(batchCodes);
|
|
|
List<UdiRelevanceResponse> batchResponses = udiRelevanceDao.batchSelectByNameCodes(filterUdiRelRequest);
|
|
|
|
|
|
if (CollUtil.isNotEmpty(batchResponses)) {
|
|
|
for (UdiRelevanceResponse response : batchResponses) {
|
|
|
if (response != null && StrUtil.isNotEmpty(response.getNameCode())) {
|
|
|
resultMap.put(response.getNameCode(), response);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return resultMap;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|