From 82f1d7a43173c10a9fe31c6625db15269b818bfa Mon Sep 17 00:00:00 2001 From: gaorl Date: Mon, 17 Apr 2023 15:07:19 +0800 Subject: [PATCH] =?UTF-8?q?feature:=E5=AE=A2=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E3=80=81=E7=89=A9=E6=96=99=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=94=AF=E4=B8=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../buyer/service/impl/BuyerServiceImpl.java | 23 ++++++++++++++++++ .../resources/mybatis/mapper/BuyerMapper.xml | 3 +++ .../impl/GroupCommodityCodeServiceImpl.java | 20 ++++++++++++++- .../main/resources/download/BuyerExcel.xlsx | Bin 9291 -> 9367 bytes 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/BuyerServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/BuyerServiceImpl.java index f8fab143..625a05fc 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/BuyerServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/BuyerServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; +import com.dxhy.order.baseservice.module.thirdservice.user.model.TaxPlayerCodeDept; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.OrderInfoContentEnum; @@ -178,6 +179,7 @@ public class BuyerServiceImpl implements BuyerService { checkResultMapList.add(checkResultMap1); } } + //查找根据销方税号 deptid if (StringUtils.isNotEmpty(buyerEntity.getPurchaseName())) { param.put("purchaseName", buyerEntity.getPurchaseName()); int i = buyerMapper.selectBuyerByName(param, shList); @@ -187,6 +189,27 @@ public class BuyerServiceImpl implements BuyerService { checkResultMap1.put(OrderManagementConstant.ERRORMESSAGE, preStr + "购方名称:" + buyerEntity.getPurchaseName() + ",已经存在"); checkResultMapList.add(checkResultMap1); } + }else{ + Map checkResultMap1 = new HashMap<>(2); + checkResultMap1.put(OrderManagementConstant.ERRORCODE, ConfigureConstant.STRING_9999); + checkResultMap1.put(OrderManagementConstant.ERRORMESSAGE, preStr + "购方名称不允许为空"); + checkResultMapList.add(checkResultMap1); + } + if (StringUtils.isNotEmpty(buyerEntity.getEntId())&&StringUtils.isNotEmpty(buyerEntity.getBuyerCode())) { + param.put("ent_id", buyerEntity.getEntId()); + param.put("buyerCode", buyerEntity.getBuyerCode()); + int i = buyerMapper.selectBuyerByName(param, shList); + if (i > 0) { + Map checkResultMap1 = new HashMap<>(2); + checkResultMap1.put(OrderManagementConstant.ERRORCODE, ConfigureConstant.STRING_9999); + checkResultMap1.put(OrderManagementConstant.ERRORMESSAGE, preStr + "销方组织:" + buyerEntity.getXhfMc() + ",购方编码:" + buyerEntity.getBuyerCode() + ",已经存在"); + checkResultMapList.add(checkResultMap1); + } + }else{ + Map checkResultMap1 = new HashMap<>(2); + checkResultMap1.put(OrderManagementConstant.ERRORCODE, ConfigureConstant.STRING_9999); + checkResultMap1.put(OrderManagementConstant.ERRORMESSAGE, preStr + "销方组织或购方编码不允许为空"); + checkResultMapList.add(checkResultMap1); } } diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml index 7bc56b49..d163402c 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/BuyerMapper.xml @@ -896,6 +896,9 @@ AND status =#{map.status,jdbcType=VARCHAR} + + AND buyer_code =#{map.buyerCode,jdbcType=VARCHAR} + diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java index 13ae5a7b..3aec19c7 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java @@ -2,6 +2,8 @@ package com.dxhy.order.consumer.modules.commodity.service.impl; import com.dxhy.order.baseservice.module.base.service.BaseService; import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; +import com.dxhy.order.baseservice.module.taxclass.dao.TaxClassCodeMapper; +import com.dxhy.order.baseservice.module.taxclass.model.TaxClassCodeEntity; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper; import com.dxhy.order.consumer.modules.commodity.domain.dto.QueryGroupCommodityDTO; @@ -48,6 +50,9 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService @Autowired private ISDEnregyService sdEnregyService; + @Resource + private TaxClassCodeMapper taxClassCodeMapper; + /** * 查询集团物料库 * @@ -104,7 +109,7 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService } //CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh()); -// CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh(), quoteGroupCommodityDTO.getDeptId()); + //CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh(), quoteGroupCommodityDTO.getDeptId()); CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, "-1"); @@ -139,6 +144,19 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService newCommodityCodeEntity.setEntId(quoteGroupCommodityDTO.getDeptId()); newCommodityCodeEntity.setDataState("0"); newCommodityCodeEntity.setXhfMc(quoteGroupCommodityDTO.getXhfMc()); + newCommodityCodeEntity.setHsbz("1"); + newCommodityCodeEntity.setYhzcbs("0"); + if(StringUtils.isNotBlank(newCommodityCodeEntity.getSpbm())){ + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.queryTaxClassCodeEntityBySpbm(newCommodityCodeEntity.getSpbm()); + if(taxClassCodeEntity != null){ + newCommodityCodeEntity.setYhzcbs(StringUtils.isNotBlank(taxClassCodeEntity.getYhzcmc())?"1":"0"); + newCommodityCodeEntity.setSpjc(taxClassCodeEntity.getSpjc()); + newCommodityCodeEntity.setZzstsgl(StringUtils.isNotBlank(taxClassCodeEntity.getYhzcmc())?taxClassCodeEntity.getYhzcmc():""); + }else{ + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return R.error("第" + (i + 1) + "条数据商品编码为汇总项,引用失败"); + } + } //如果存在则更新 if (groupCommodityMapper.insertCommodityCode(newCommodityCodeEntity) <= 0) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); diff --git a/order-management-consumer/src/main/resources/download/BuyerExcel.xlsx b/order-management-consumer/src/main/resources/download/BuyerExcel.xlsx index 96fa0c37369317271f46bef75410cfd28f53963b..6b8fa9d1b1bd4690ad479a18d3a56652831c6002 100644 GIT binary patch literal 9367 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œ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