feature 1.优化物料导入逻辑

release
zhenghaiyang@ele-cloud.com 2 years ago
parent ab60dd1660
commit 5fef61734f
  1. 7
      order-management-base-service/src/main/resources/mybatis/mapper/TaxClassCodeMapper.xml
  2. 110
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java
  3. 2
      order-management-invoice/src/main/java/com/dxhy/order/invoice/config/InvoiceConfig.java

@ -102,7 +102,7 @@
</if>
</if>
<if test="parameter != null and parameter != ''">
<if test="dataType == 0">
<if test="dataType == 0 and type == '' and type == null">
AND concat_ws(',',tcc.spbm,tcc.spmc,tcc.spjc,tcc.zzstsgl) LIKE
CONCAT(CONCAT('%',#{parameter}),'%')
</if>
@ -110,6 +110,11 @@
AND tcc.spbm || ',' || tcc.spmc || ',' || tcc.spjc || ',' || tcc.zzstsgl LIKE
CONCAT(CONCAT('%',#{parameter}),'%')
</if>
<if test="dataType == 0 and type != '' and type != null">
AND concat_ws(',',tcc.spbm,tcc.spmc,tcc.spjc,tcc.zzstsgl,tcc.sm)
LIKE CONCAT(CONCAT('%',#{parameter}),'%')
</if>
</if>
</where>
</select>

@ -7,7 +7,6 @@ import com.dxhy.order.baseservice.module.base.service.BaseService;
import com.dxhy.order.baseservice.module.buyer.dao.BuyerMapper;
import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity;
import com.dxhy.order.baseservice.module.buyer.model.BuyerEntityDetail;
import com.dxhy.order.baseservice.module.buyer.protocol.MdmBankListBO;
import com.dxhy.order.baseservice.module.buyer.protocol.MdmGmfxxtbMulticodeValuelistBO;
import com.dxhy.order.baseservice.module.commodity.dao.CommodityMapper;
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity;
@ -24,6 +23,7 @@ import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.*;
import com.dxhy.order.model.R;
import com.dxhy.order.utils.DistributedKeyMaker;
import com.dxhy.order.utils.JsonUtils;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -273,23 +273,35 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
@Override
@Transactional
public AjaxResult syncMdmGroupTax(List<MdmSyncGroupTaxCodeReqBO> mdmGmfxxtbReqBOS, String requestBody) {
List<CommodityCodeEntity> list = new ArrayList<>();
List<CommodityCodeEntity> list = matchRule(mdmGmfxxtbReqBOS);
String respStr = "";
if(StringUtils.isNotBlank(requestBody)){
SDEnergyMdmBaseBO baseBO = JSONObject.parseObject(requestBody, SDEnergyMdmBaseBO.class);
SDEnergyMdmBaseBO result = buildResult(
baseBO,
list,
i -> {
CommodityCodeEntity t = (CommodityCodeEntity) i;
SDEnergyMdmBaseRespBO resp = new SDEnergyMdmBaseRespBO();
resp.setCODE(t.getZxbm());
resp.setUUID(t.getUUID());
resp.setSYNSTATUS(t.getSuccess() ? "0" : "1");
resp.setSYNRESULT(t.getSuccess() ? "success" : "failed");
return resp;
}
);
respStr = JsonUtils.getInstance().toJsonStringNullToEmpty(result);
}
return AjaxResult.success("success", respStr);
}
public List<CommodityCodeEntity> matchRule(List<MdmSyncGroupTaxCodeReqBO> mdmGmfxxtbReqBOS){
List<CommodityCodeEntity> list = Lists.newArrayList();
for (int i = 0; i < mdmGmfxxtbReqBOS.size(); i++) {
MdmSyncGroupTaxCodeReqBO reqBO = mdmGmfxxtbReqBOS.get(i);
CommodityCodeEntity commodityCodeEntity = new CommodityCodeEntity();
// GroupTaxClassCodeEntity entity = new GroupTaxClassCodeEntity();
// entity.setId(DistributedKeyMaker.generateShotKey());
// entity.setSortId((long) i);
// entity.setMerchandiseName(reqBO.getDESC1()); // 商品名称
// entity.setEncoding(reqBO.getCODE()); // 编码
// entity.setMeteringUnit(reqBO.getDESC5());
// entity.setCreateTime(new Date());
// entity.setDescription(reqBO.getDESCSHORT());
// entity.setUUID(reqBO.getUUID());
// if (groupTaxClassCodeMapper.insertOnDuplicateKey(commodityCodeEntity) <= 0) {
// 先查找物料分类编码和税收分类编码对应的字段
commodityCodeEntity.setWlflbm(reqBO.getCATEGORYCODE());
// 1.先去所有子公司库中匹配税编,以第一条为准;如果未匹配到,再去根据物料编码匹配
CommodityCodeEntity codeEntityForMatch = new CommodityCodeEntity();
List<CommodityCodeEntity> commodityCodeEntities = commodityMapper.queryByCommoditySpbmCompany(reqBO.getCODE());
if(commodityCodeEntities != null && commodityCodeEntities.size() > 0){
commodityCodeEntity.setZxbm(reqBO.getCODE()); // 编码
@ -305,28 +317,8 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
commodityMapper.batchUpdateCommodity(commodityCodeEntity,ids);
}else{
// 2.如果未匹配到,再去根据物料编码匹配
SdenergyTaxCodeMatch taxCodeMatch = sdenergyTaxCodeMatchDao.queryByWlflbm(reqBO.getCATEGORYCODE());
if (taxCodeMatch != null) {
codeEntityForMatch = new CommodityCodeEntity();
codeEntityForMatch.setSsflMc(taxCodeMatch.getSsflmc());
codeEntityForMatch.setSpbm(taxCodeMatch.getSsflbm());
}
// sdenergyTaxCodeMatchDao.queryByWlflbm(requestBody.get)
commodityCodeEntity.setId(DistributedKeyMaker.generateShotKey());
commodityCodeEntity.setSortId((long) i);
commodityCodeEntity.setXmmc(reqBO.getDESC1()); // 商品名称
// 维护税编和商品编码
if (codeEntityForMatch != null && StringUtils.isNotBlank(codeEntityForMatch.getSsflMc())) {
commodityCodeEntity.setSsflMc(codeEntityForMatch.getSsflMc());
}
if (codeEntityForMatch != null && StringUtils.isNotBlank(codeEntityForMatch.getSpbm())) {
commodityCodeEntity.setSpbm(codeEntityForMatch.getSpbm());
commodityCodeEntity.setCommodityId(baseService.getGenerateShotKey());
commodityCodeEntity.setXhfNsrsbh("-1");
matchCommodityCode(commodityCodeEntity);
// 进行物料匹配
matchCommodityCode(commodityCodeEntity);
commodityCodeEntity.setZxbm(reqBO.getCODE()); // 编码
@ -338,6 +330,20 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
commodityCodeEntity.setWlflmc(reqBO.getCATEGORYNAME());
commodityCodeEntity.setDataSource("4");
// sdenergyTaxCodeMatchDao.queryByWlflbm(requestBody.get)
commodityCodeEntity.setId(DistributedKeyMaker.generateShotKey());
commodityCodeEntity.setSortId((long) i);
// 维护税编和商品编码
if (commodityCodeEntity != null && StringUtils.isNotBlank(commodityCodeEntity.getSsflMc())) {
commodityCodeEntity.setSsflMc(commodityCodeEntity.getSsflMc());
}
if (commodityCodeEntity != null && StringUtils.isNotBlank(commodityCodeEntity.getSpbm())) {
commodityCodeEntity.setSpbm(commodityCodeEntity.getSpbm());
commodityCodeEntity.setWlflbm(commodityCodeEntity.getSpbm());
commodityCodeEntity.setCommodityId(baseService.getGenerateShotKey());
commodityCodeEntity.setXhfNsrsbh("-1");
if (commodityMapper.insertCommodityOnDuplicateKey(commodityCodeEntity) > 0) {
commodityCodeEntity.setSuccess(true);
} else {
@ -347,26 +353,7 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
}
}
}
String respStr = "";
if(StringUtils.isNotBlank(requestBody)){
SDEnergyMdmBaseBO baseBO = JSONObject.parseObject(requestBody, SDEnergyMdmBaseBO.class);
SDEnergyMdmBaseBO result = buildResult(
baseBO,
list,
i -> {
CommodityCodeEntity t = (CommodityCodeEntity) i;
SDEnergyMdmBaseRespBO resp = new SDEnergyMdmBaseRespBO();
resp.setCODE(t.getZxbm());
resp.setUUID(t.getUUID());
resp.setSYNSTATUS(t.getSuccess() ? "0" : "1");
resp.setSYNRESULT(t.getSuccess() ? "success" : "failed");
return resp;
}
);
respStr = JsonUtils.getInstance().toJsonStringNullToEmpty(result);
}
return AjaxResult.success("success", respStr);
return list;
}
/**
@ -386,10 +373,11 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
return;
}
// 2. 若根据物料名称未匹配到子公司库的税编时,根据物料编码匹配“物料分类编码”库中的税编;
SdenergyTaxCodeMatch taxCodeMatch = sdenergyTaxCodeMatchDao.queryByWlflbm(commodityCodeEntity.getWlflbm());
if (taxCodeMatch != null && StringUtils.isNotBlank(taxCodeMatch.getSsflbm())) {
// 如果匹配到了物料分类编码,去查一下税收分类编码找到对应的简称等信息
SdenergyTaxCodeMatch taxCodeMatch = sdenergyTaxCodeMatchDao.queryByWlflbm(commodityCodeEntity.getWlflbm());
if (taxCodeMatch != null) {
commodityCodeEntity.setSsflMc(taxCodeMatch.getSsflmc());
commodityCodeEntity.setSpbm(taxCodeMatch.getSsflbm());
TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(taxCodeMatch.getSsflbm());
commodityCodeEntity.setSpsm(taxClassCodeEntity.getSm());
commodityCodeEntity.setSpjm(taxClassCodeEntity.getSpjc());
@ -403,11 +391,11 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
commodityCodeEntity.setZzstsgl(taxClassCodeEntity.getYhzcmc());
commodityCodeEntity.setSpbm(taxClassCodeEntity.getSpbm());
}
commodityCodeEntity.setSsflMc(taxCodeMatch.getSsflmc());
commodityCodeEntity.setSsflMc(commodityCodeEntity.getSsflMc());
} else {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("parameter", xmmc);
paramMap.put("type", xmmc);
List<TaxClassCodeEntity> taxClassCodeEntitys = taxClassCodeMapper.selectTaxClassCode(paramMap);
if (!CollectionUtils.isEmpty(taxClassCodeEntitys)) {
TaxClassCodeEntity taxClassCodeEntity = taxClassCodeEntitys.get(0);
@ -456,7 +444,7 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract {
.email(mdmSyncUserReqBO.getDESC11()) // 电子邮箱
.companyCode(mdmSyncUserReqBO.getDESC37()) // 公司编码
.userStatus(mdmSyncUserReqBO.getDESC59()) // 员工状态 0离职、1离岗、2退休、3在岗、4死亡
.password("itax1234!@#")
.password("Sdny@"+mdmSyncUserReqBO.getCODE())
.dataSource("1")
.build();

@ -220,7 +220,7 @@ public class InvoiceConfig {
// @Value("${order.sap.environment}")
// private String environment;
@Value("${order.sap.salt}")
@Value("${order.sap.salt:}")
private String sapSalt;

Loading…
Cancel
Save