You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/service/basic/UdiRelevanceService.java

517 lines
20 KiB
Java

package com.glxp.api.service.basic;
11 months ago
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.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
11 months ago
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;
11 months ago
import com.glxp.api.service.thrsys.ThrSystemService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.udi.FilterUdiUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
11 months ago
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<UdiRelevanceEntity> filterUdiEntity(FilterUdiRelRequest filterUdiRelRequest) {
List<UdiRelevanceEntity> data = udiRelevanceDao.filterEntity(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 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 {
udiRelevanceResponses = selectGroupByNameCode(codeEnttity.getNameCode(), false);
}
return udiRelevanceResponses;
}
/**
11 months ago
*
*
* @return
*/
11 months ago
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);
}
// if (udiRelevanceResponses.size() == 1) {
// UdiRelevanceResponse udiRelevanceResponse = udiRelevanceResponses.get(0);
// if (udiRelevanceResponse == null || udiRelevanceResponse.getProductType() == ConstantStatus.PRODUCT_TYPE_THIRD) {
// return selectByMainId(nameCode);
// }
// }
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 boolean isExitByUuid(String uuid) {
List<UdiRelevanceEntity> udiRelevanceEntities = udiRelevanceDao.selectByUuid(uuid);
if (udiRelevanceEntities != null && !udiRelevanceEntities.isEmpty()) {
return true;
}
return false;
}
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 UdiRelevanceEntity selectByMainIdLimitOne(String mainId) {
if (mainId == null)
return null;
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
filterUdiRelRequest.setMainId(mainId);
return udiRelevanceDao.selectByThirdId(filterUdiRelRequest);
}
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.setDistributeLevelDi(udiProductEntity.getNameCode());
// udiRelevanceEntity.setDistributeLevelUnit(udiProductEntity.getPackUnit());
// udiRelevanceEntity.setDistributeLevelCount(IntUtil.value(udiProductEntity.getBhxjsl()));
udiRelevanceEntity.setUseLevel(0);
// udiRelevanceEntity.setUseLevelDi(udiProductEntity.getNameCode());
// udiRelevanceEntity.setUseLevelUnit(udiProductEntity.getPackUnit());
// udiRelevanceEntity.setUseLeverCount(IntUtil.value(udiProductEntity.getBhxjsl()));
}
return udiRelevanceEntity;
}
11 months ago
public boolean insertUdiRelevance(UdiRelevanceEntity udiRelevanceEntity) {
return udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity);
}
public boolean insertUdiRelevanceignore(UdiRelevanceEntity udiRelevanceEntity) {
return udiRelevanceDao.insertUdiRelevanceignore(udiRelevanceEntity);
}
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 boolean deleteByUuid(String uuid) {
return udiRelevanceDao.deleteByUuid(uuid);
}
public String findUuidById(String relId) {
return udiRelevanceDao.selectUuidById(relId);
}
public List<UdiRelevanceResponse> selectGroupByNameCode(String nameCode, Boolean isDisable) {
return udiRelevanceDao.selectGroupByNameCode(nameCode, isDisable);
}
public String getRelIdByUdiCode(String code) {
if (StrUtil.isBlank(code)) {
return null;
}
UdiEntity udi = FilterUdiUtils.getUdi(code);
return udiRelevanceDao.selectRelIdByNameCode(udi.getUdi());
}
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");
2 years ago
11 months ago
List<UdiRelevanceEntity> udiRelevanceEntityList = udiRelevanceDao.selectList(qw);
if (CollectionUtil.isNotEmpty(udiRelevanceEntityList)) {
mainIdRelIdMap = udiRelevanceEntityList.stream().collect(Collectors.toMap(UdiRelevanceEntity::getMainId, udiRelevanceEntity -> udiRelevanceEntity));
// List<Long> relIds = udiRelevanceEntityList.stream().map(UdiRelevanceEntity::getId).collect(Collectors.toList());
// List<BasicProductsEntity> basicProductsEntities = udiRelevanceDao.selectProductByRelIds(relIds);
// if (CollectionUtil.isNotEmpty(basicProductsEntities)){
// relIdBasicProductsEntityMap = basicProductsEntities.stream().collect(Collectors.toMap(BasicProductsEntity::getId, x -> x));
// }
}
11 months ago
mainIdRelIdAndProductResponse.setMainIdRelIdMap(mainIdRelIdMap);
mainIdRelIdAndProductResponse.setRelIdBasicProductsEntityMap(relIdBasicProductsEntityMap);
return mainIdRelIdAndProductResponse;
}
11 months ago
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());
}
}