diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityMapper.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityMapper.java index 4f3bf7e9..784e77f3 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityMapper.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/dao/CommodityMapper.java @@ -53,6 +53,8 @@ public interface CommodityMapper { */ int updateCommodity(@Param("commodityCode") CommodityCodeEntity codeEntity, @Param("shList") List shList); + int updateCommodityByZxbm(@Param("commodityCode") CommodityCodeEntity codeEntity, @Param("map") Map map); + int batchUpdateCommodity(@Param("commodityCode") CommodityCodeEntity codeEntity, @Param("ids") List ids); /** diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java index 7a78412a..baf272eb 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityServiceImpl.java @@ -639,20 +639,27 @@ public class CommodityServiceImpl implements CommodityService { log.debug("{}校验名称是否存在 参数:{}", LOGGER_MSG, map); List commodityCodeEntityList = commodityMapper.queryProductList(map, null); //R r = commodityService.checkRepeat(commodityCodeCheckQuery, NsrsbhUtils.transShListByNsrsbh(receiveSpxxReq.getXhfNsrsbh()), false); - if(commodityCodeEntityList.isEmpty()){ - //if (ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))) { - + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeService.queryTaxClassCodeFromCache(receiveSpxxReq.getSpbm()); + CommodityCodeEntity commodityCodeEntity = null; + if (ObjectUtil.isNotEmpty(taxClassCodeEntity)) { + commodityCodeEntity = transCommodityCode(receiveSpxxReq, taxClassCodeEntity); + } + if(commodityCodeEntityList.isEmpty()) { + //if (ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))) { /** * 从缓存中取税编信息 * */ - TaxClassCodeEntity taxClassCodeEntity = taxClassCodeService.queryTaxClassCodeFromCache(receiveSpxxReq.getSpbm()); - if (ObjectUtil.isNotEmpty(taxClassCodeEntity)) { - CommodityCodeEntity commodityCodeEntity = transCommodityCode(receiveSpxxReq, taxClassCodeEntity); + if (commodityCodeEntity != null){ commodityMapper.insertCommodity(commodityCodeEntity); log.debug("添加成功"); } + }else{ + // TODO 简称、商品编码、规格型号、单位、优惠政策标识、零税率标识 + if (commodityCodeEntity != null){ + commodityMapper.updateCommodityByZxbm(commodityCodeEntity, map); + } } } } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java index 8083bae0..230cc292 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java @@ -65,11 +65,11 @@ public class UserController { if(ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))){ UserEntity userEntity = (UserEntity) r.get(OrderManagementConstant.DATA); if(ObjectUtil.isNotNull(userEntity)){ - List taxplayercodeDeptList = userEntity.getTaxplayercodeDeptList(); + List taxplayercodeDeptList = userEntity.getTaxplayercodeDeptList(); if(ObjectUtil.isNotEmpty(taxplayercodeDeptList)){ - //同步大B或用户中心实体组织信息到发票组织管理表 - syncPhysicalGroupManagement(taxplayercodeDeptList); - } + //同步大B或用户中心实体组织信息到发票组织管理表 + syncPhysicalGroupManagement(taxplayercodeDeptList); + } } } @@ -158,7 +158,7 @@ public class UserController { groupManagementEntity.setXhfZh(taxPlayerCodeDept.getTaxpayerAccount()); groupManagementEntity.setDataSource(OrderInfoEnum.ORDER_KPZZGL_SJLY_1.getKey()); groupManagementEntity.setDataStatus(OrderInfoEnum.ORDER_KPZZGL_SJZT_0.getKey()); - groupManagementEntity.setDefaultItem(OrderInfoEnum.ORDER_KPZZGL_SFMRX_0.getKey()); + groupManagementEntity.setDefaultItem(OrderInfoEnum.ORDER_KPZZGL_SFMRX_1.getKey()); groupManagementEntity.setDelFlag(OrderInfoEnum.ORDER_KPZZGL_SCBJ_0.getKey()); groupManagementEntity.setEntId(taxPlayerCodeDept.getDeptId()); groupManagementEntity.setUsingEntId(taxPlayerCodeDept.getDeptId()); diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml index bb9b19cb..172a087b 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml @@ -384,6 +384,61 @@ + + + update commodity_code + + + specification_model = #{commodityCode.ggxh,jdbcType=VARCHAR}, + + + metering_unit = #{commodityCode.xmdw,jdbcType=VARCHAR}, + + + hide_the_logo = #{commodityCode.ycbz,jdbcType=VARCHAR}, + + + preferential_policies_type = #{commodityCode.lslbs,jdbcType=VARCHAR}, + + + enjoy_preferential_policies = #{commodityCode.yhzcbs,jdbcType=VARCHAR}, + + + tax_class_code = #{commodityCode.spbm,jdbcType=VARCHAR}, + + + tax_class_abbreviation = #{commodityCode.spjc,jdbcType=VARCHAR}, + + + zzstsgl = #{commodityCode.zzstsgl,jdbcType=VARCHAR}, + + + modify_time = now(), + + + modify_time = SYSDATE, + + + modify_user_id = #{commodityCode.modifyUserId,jdbcType=CHAR}, + + + + collect_ident = #{commodityCode.collectIdent,jdbcType=VARCHAR}, + + + cpy = #{commodityCode.cpy,jdbcType=VARCHAR}, + + + + + + and encoding = #{map.zxbm,jdbcType=VARCHAR} + + + and ent_id = #{map.entId,jdbcType=VARCHAR} + + + update commodity_code @@ -406,8 +461,9 @@ wlflmc = #{commodityCode.wlflmc,jdbcType=VARCHAR}, - - + + specification_model = #{commodityCode.ggxh,jdbcType=VARCHAR}, + commodity_id = #{commodityCode.commodityId,jdbcType=VARCHAR}, diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java index a362fd01..1b85ab18 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/InvoiceServiceImpl.java @@ -145,6 +145,8 @@ public class InvoiceServiceImpl implements InvoiceService { return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"购方信息为空,请补全!"); } String cpy = ""; + String kcp = baseServiceConfig.getKcp(); + boolean kcpMark = kcp.contains(commonOrderInfo.getOrderItemInfo().get(0).getSpbm()); for(OrderItemInfo orderItemInfo: commonOrderInfo.getOrderItemInfo()){ if(StrUtil.isBlank(orderItemInfo.getSpbm())){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"第"+orderItemInfo.getSphxh()+"行商品税编为空,请补全!"); @@ -157,6 +159,9 @@ public class InvoiceServiceImpl implements InvoiceService { }else { cpy = taxClassCodeEntity.getCpy(); } + if(kcp.contains(orderItemInfo.getSpbm()) != kcpMark){ + return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"矿产品与非矿产品税编不能混开,请做手动拆分处理!"); + } } } if(ConfigureConstant.STRING_Y.equals(cpy) && commonOrderInfo.getOrderItemInfo().size()>ConfigureConstant.INT_8){ @@ -263,11 +268,15 @@ public class InvoiceServiceImpl implements InvoiceService { OrderProcessInfo processInfo = f.getProcessInfo(); processInfo.setYzfp(ConfigureConstant.STRING_1); orderProcessService.updateOrderProcessInfoByProcessId(processInfo, null); + OrderInfo orderInfo = f.getOrderInfo(); if(ObjectUtil.isNotNull(taxClassCodeEntity) && ConfigureConstant.STRING_Y.equals(taxClassCodeEntity.getCpy())){ - OrderInfo orderInfo = f.getOrderInfo(); orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); - orderInfoService.updateOrderInfoByOrderId(orderInfo,null); + }else if(f.getOrderItemInfo().size() > 8){ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_1.getKey()); + }else{ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_0.getKey()); } + orderInfoService.updateOrderInfoByOrderId(orderInfo,null); } else if (orderSplit.size() > 1) { List commonOrderInfoSaveResults = new ArrayList<>(); @@ -277,6 +286,7 @@ public class InvoiceServiceImpl implements InvoiceService { OrderProcessInfo processInfo = orderProcessService.selectOrderProcessInfoByProcessId(s.getOrderInfo().getProcessId(),null); processInfo.setYzfp(ConfigureConstant.STRING_1); orderProcessService.updateOrderProcessInfoByProcessId(processInfo, null); +// }); } else { continue; diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java index 1861724f..4fa4e30d 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java @@ -500,4 +500,19 @@ public class OrderInfoController { } } + @ApiOperation(value = "批量订单明细合并", notes = "订单信息管理-批量订单明细合并") + @PostMapping("/batchMegerOrderItem") + @SysLog(operation = "批量订单明细合并", operationDesc = "订单明细合并", key = "批量订单明细合并") + public R batchMegerOrderItem(@RequestBody String param){ + log.info("批量订单明细合并",param); + List jsonObjects = JSONObject.parseArray(param).toJavaList(JSONObject.class); + + try { + return orderInfoService.batchMegerOrderItem(jsonObjects); + } catch (Exception e) { + log.error(e.getMessage()); + return R.error("系统异常"); + } + } + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java index 62eb77f7..96be588f 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java @@ -1,6 +1,7 @@ package com.dxhy.order.consumer.modules.order.service; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.dxhy.order.consumer.model.page.PageRequestVO; import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.model.*; @@ -219,7 +220,9 @@ public interface OrderInfoService { R updateOrderItem(String orderInfoId,String entId,List itemList); @Transactional - R mergeOrderItem(String entId,String orderInfoId,List itemList); + R mergeOrderItem(String entId,String orderInfoId,List itemList) throws Exception; + + R batchMegerOrderItem(List jsonObjects); /** diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java index 048c7661..327833f1 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderCommonServiceImpl.java @@ -2,6 +2,8 @@ package com.dxhy.order.consumer.modules.order.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +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.constant.OrderInfoContentEnum; import com.dxhy.order.constant.OrderInfoEnum; @@ -92,6 +94,9 @@ public class OrderCommonServiceImpl implements OrderCommonService { @Resource private BaseService baseService; + @Resource + private TaxClassCodeMapper taxClassCodeMapper; + @Override public String getGenerateShotKey() { return DistributedKeyMaker.generateShotKey(); @@ -1382,6 +1387,7 @@ public class OrderCommonServiceImpl implements OrderCommonService { } int i = 1; + int cpy = 0; for (OrderItemInfo orderItemInfo : comm.getOrderItemInfo()) { orderItemInfo.setOrderInfoId(orderInfo.getId()); if (StringUtils.isBlank(orderItemInfo.getXhfNsrsbh())) { @@ -1391,6 +1397,10 @@ public class OrderCommonServiceImpl implements OrderCommonService { orderItemInfo.setId(apiInvoiceCommonService.getGenerateShotKey()); orderItemInfo.setCreateTime(orderItemInfo.getCreateTime() == null ? new Date() : orderItemInfo.getCreateTime()); orderItemInfo.setSphxh(String.valueOf(i)); + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm()); + if(taxClassCodeEntity != null && "Y".contains(taxClassCodeEntity.getCpy())){ + cpy++; + } /** * 处理单价,保留非零位 */ @@ -1411,6 +1421,13 @@ public class OrderCommonServiceImpl implements OrderCommonService { } i++; } + if(cpy == comm.getOrderItemInfo().size()){ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); + }else if(comm.getOrderItemInfo().size() > 8){ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_1.getKey()); + }else{ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_0.getKey()); + } int insert = orderProcessInfoExtMapper.insertOrderProcessExt(orderExt); if (insert <= 0) { diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java index 671ffef0..544dd9c4 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.dxhy.base.constant.OrderSeparationException; import com.dxhy.base.constant.TaxSeparateConfig; import com.dxhy.base.utils.PriceTaxSeparationUtilNew; @@ -1840,7 +1841,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { Map map = new HashMap(2); map.put("cpy","Y"); Integer integer = taxClassCodeMapper.countTaxClassCodeBySpbm(collect1, map); - if(orderItemInfoList.size()==integer.intValue()){ + if(orderItemInfos.size()==integer.intValue()){ //更新order_info 清单标志为4 OrderInfo orderInfo = new OrderInfo(); orderInfo.setId(orderInfoId); @@ -1855,15 +1856,20 @@ public class OrderInfoServiceImpl implements OrderInfoService { } @Override - public R mergeOrderItem(String entId, String orderInfoId,List itemList){ + public R mergeOrderItem(String entId, String orderInfoId,List itemList) throws Exception{ List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null); if(ObjectUtil.isNull(orderItemInfos)){ return R.error("根据订单号未查询到明细行信息"); } - List collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm())).collect(Collectors.toList()); - if(ObjectUtil.isNull(orderItemInfos)){ - return R.error("税收编码为空的不允许合并,请先更新税收编码"); + List collect = null; + if(itemList != null){ + collect = orderItemInfos.stream().filter(t -> itemList.contains(t.getId()) && StringUtils.isNotBlank(t.getSpbm())).collect(Collectors.toList()); + if(ObjectUtil.isNull(orderItemInfos)){ + return R.error("税收编码为空的不允许合并,请先更新税收编码"); + } + }else{ + collect = orderItemInfos; } Map> collect1 = collect.stream().collect(Collectors.groupingBy(t -> t.getFphxz() + t.getXmmc() + t.getXmdw() + t.getGgxh() + t.getSl() + t.getSpbm())); List orderItemInfoList = new ArrayList<>(); @@ -1886,7 +1892,7 @@ public class OrderInfoServiceImpl implements OrderInfoService { //重算税额 String hsbz = orderItemInfo.getHsbz(); BigDecimal taxRate = new BigDecimal(orderItemInfo.getSl()); - BigDecimal taxAmout = new BigDecimal(orderItemInfo.getSl()); + BigDecimal taxAmout = new BigDecimal(orderItemInfo.getXmje()); if (OrderInfoEnum.HSBZ_1.getKey().equals(hsbz)) { taxAmout = xmje.divide(new BigDecimal("1").add(taxRate),0).multiply(taxRate).setScale(2,RoundingMode.HALF_UP); } else if (OrderInfoEnum.HSBZ_0.getKey().equals(hsbz)) { @@ -1928,6 +1934,26 @@ public class OrderInfoServiceImpl implements OrderInfoService { return R.ok(); } + @Override + public R batchMegerOrderItem(List jsonObjects){ + for (JSONObject t : jsonObjects) { + String orderInfoId = t.getString("orderInfoId"); + String entId = t.getString("entId"); + String ddh = t.getString("ddh"); + try { + R r = mergeOrderItem(entId,orderInfoId, null); + if(!ConfigureConstant.STRING_0000.equals(r.getCode())){ + return R.error(String.format("结算单号%s明细行合并失败",ddh)); + } + } catch (Exception e) { + log.error("批量合并报错orderInfoId:{},entId:{},报错信息:{}",orderInfoId,entId,e.getMessage()); + return R.error(String.format("结算单号%s明细行合并失败",ddh)); + } + } + + return R.ok(); + } + @Override @Transactional(readOnly = true) public Boolean checkInvoiceRemarksFlag(String xfnsrsbh, String ghfId) { @@ -1975,9 +2001,9 @@ public class OrderInfoServiceImpl implements OrderInfoService { StringBuilder stringBuilder = new StringBuilder(); if(StrUtil.isNotBlank(commodity.getInvoiceName())){ - spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getInvoiceName()).toString(); + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getInvoiceName().trim()).toString(); }else{ - spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc()).toString(); + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc().trim()).toString(); } item.setXmmc(spmc); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java index 29e803c5..b81e53da 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderSplitServiceImpl.java @@ -262,9 +262,14 @@ public class OrderSplitServiceImpl implements OrderSplitService { CommonOrderInfo commonOrder = new CommonOrderInfo(); OrderInfo orderInfo = new OrderInfo(); List orderItemList = new ArrayList<>(); + int cpy = 0; for (PageOrderItemInfo pageOrderItemInfo : pageCommonOrderInfo.getOrderItemInfo()) { OrderItemInfo orderItemInfo = new OrderItemInfo(); BeanUtils.copyProperties(pageOrderItemInfo, orderItemInfo); + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm()); + if(taxClassCodeEntity != null && "Y".contains(taxClassCodeEntity.getCpy())){ + cpy++; + } orderItemList.add(orderItemInfo); } @@ -281,6 +286,9 @@ public class OrderSplitServiceImpl implements OrderSplitService { CommonUtils.resetQdbz(orderInfo); //重新计算清单标志 CommonUtils.setQdbz(orderInfo, orderItemList.size()); + if(cpy == pageCommonOrderInfo.getOrderItemInfo().size()){ + orderInfo.setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); + } CommonUtils.setQdXmmc(orderInfo); String cfDdh = oldDdh + CF + DECIMAL_FORMAT.format(i); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java index f12bc682..bb997676 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/AllocateInvoiceInterfaceServiceImplV3.java @@ -894,7 +894,7 @@ public class AllocateInvoiceInterfaceServiceImplV3 implements AllocateInvoiceInt insertOrder.stream().forEach(item->{ if (orderInfoService.checkInvoiceRemarksFlag(item.getXhfNsrsbh(), item.getGhfId())) { log.info("ddpcxxReq:{}", JSONObject.toJSONString(ddpcxxReq)); - item.setBz(item.getBz()+";销方公司代码:"+ddpcxxReq.getDDZXX().get(0).getDDTXX().getXHFBM()+",销方公司名称:"+item.getXhfMc()+";"); + item.setBz(StringUtils.isBlank(item.getBz())?"":item.getBz()+";销方公司代码:"+ddpcxxReq.getDDZXX().get(0).getDDTXX().getXHFBM()+",销方公司名称:"+item.getXhfMc()+";"); } }); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java index 3e71a90e..5f4b3ac4 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java @@ -823,6 +823,22 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { if (StringUtils.isBlank(item.getSe())) { item.setSe(""); } + //判断规格信号是否大于40位,大于则截取 + if(StringUtils.isNotBlank(item.getGgxh())){ + String ggxh = item.getGgxh(); + try { + if (ggxh.getBytes(ConfigureConstant.STRING_CHARSET_GBK).length > ConfigureConstant.INT_40) { + log.debug("对明细行规格型号进行截取,截取前数据为:{}", ggxh); + ggxh = StringUtil.subStringByByte(ggxh, ConfigureConstant.INT_40); + log.debug("对明细行规格型号进行截取,截取后数据为:{}", ggxh); + item.setXmmc(ggxh); + } + } catch (IOException e) { + //编码格式错误 + log.error("处理商品名称异常:{}", e); + throw new RuntimeException(e); + } + } } /** @@ -839,9 +855,9 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService { String spmc = item.getXmmc(); StringBuilder stringBuilder = new StringBuilder(); if (StringUtils.isBlank(spmc)) { - spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc()).toString(); + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc().trim()).toString(); } else if (StringUtil.checkStr(spmc, commodity.getSpjc())) { - spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(spmc).toString(); + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(spmc.trim()).toString(); } item.setXmmc(spmc); //如果税率为空使用查询到的税率否则使用原税率 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java index 3aafed83..ffb9c6fb 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java @@ -18,6 +18,7 @@ import com.dxhy.order.baseservice.module.taxclass.dao.TaxClassCodeMapper; import com.dxhy.order.baseservice.module.taxclass.model.TaxClassCodeEntity; import com.dxhy.order.baseservice.module.thirdservice.user.dto.AddUserRequestDto; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; +import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper; import com.dxhy.order.consumer.modules.taxcodematch.dao.SdenergyTaxCodeMatchDao; import com.dxhy.order.consumer.modules.taxcodematch.entity.SdenergyTaxCodeMatch; @@ -25,7 +26,9 @@ import com.dxhy.order.consumer.openapi.protocol.AjaxResult; 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.GbkUtil; import com.dxhy.order.utils.JsonUtils; +import com.dxhy.order.utils.StringUtil; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -37,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.io.IOException; import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -220,12 +224,6 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { return AjaxResult.success("success", respStr); } - public static void main(String[] args) { - DecimalFormat g=new DecimalFormat("0000000000"); - - String code = String.format("%10s","60121A").replace(" ","0"); - System.out.println(); - } private static void structureBuyerEntity(BuyerEntity buyerEntity,MdmGmfxxtbReqBO tempMdmGmfxxtbReqBO){ buyerEntity.setTaxpayerCode(tempMdmGmfxxtbReqBO.getDESC14()); @@ -342,6 +340,13 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { reqBO.setCODE(code); List commodityCodeEntities = commodityMapper.queryByCommoditySpbmCompany(reqBO.getCODE()); List collect = commodityCodeEntities.stream().filter(t -> "-1".equals(t.getXhfNsrsbh())).collect(Collectors.toList()); + String ggxh = StringUtils.isNotBlank(reqBO.getDESCSHORT())&& reqBO.getDESCSHORT().contains("_")? reqBO.getDESCSHORT().substring(reqBO.getDESCSHORT().indexOf("_") + 1) : ""; + if(GbkUtil.getGbkLength(ggxh) > ConfigureConstant.INT_40){ + try { + ggxh = StringUtil.subStringByByte(ggxh, ConfigureConstant.INT_40); + } catch (IOException e) { + } + } if(collect != null && collect.size() > 0){ matchCommodityCode(commodityCodeEntity); commodityCodeEntity.setXmmc(reqBO.getDESC1()); @@ -349,6 +354,7 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { commodityCodeEntity.setXmdw(reqBO.getDESC5()); commodityCodeEntity.setCreateTime(new Date()); commodityCodeEntity.setBz(reqBO.getDESCSHORT()); + commodityCodeEntity.setGgxh(ggxh); commodityCodeEntity.setUUID(reqBO.getUUID()); commodityCodeEntity.setWlflbm(reqBO.getCATEGORYCODE()); if(StringUtils.isNotBlank(reqBO.getCATEGORYNAME())){ @@ -375,6 +381,7 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { commodityCodeEntity.setCreateTime(new Date()); commodityCodeEntity.setBz(reqBO.getDESCSHORT()); commodityCodeEntity.setUUID(reqBO.getUUID()); + commodityCodeEntity.setGgxh(ggxh); commodityCodeEntity.setWlflbm(reqBO.getCATEGORYCODE()); if(StringUtils.isNotBlank(reqBO.getCATEGORYNAME())){ commodityCodeEntity.setWlflmc(reqBO.getCATEGORYNAME()); @@ -406,7 +413,6 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { } return list; } - /** * 根据规则进行物料匹配 * diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java index d52a6713..6e4e20f7 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java @@ -3481,10 +3481,17 @@ public class BeanTransitionUtils { ddtxxBO.setKPLX(req.getZSFHZ()); ddtxxBO.setXHFSBH(deptEntity.getInvoiceNsrsbh()); ddtxxBO.setXHFMC(deptEntity.getInvoiceName()); - ddtxxBO.setXHFDZ(deptEntity.getTaxpayerAddress()); - ddtxxBO.setXHFDH(deptEntity.getTaxpayerPhone()); - ddtxxBO.setXHFYH(deptEntity.getTaxpayerBank()); - ddtxxBO.setXHFZH(deptEntity.getTaxpayerAccount()); +// if(OrderInfoEnum.ORDER_INVOICE_TYPE_001.getKey().equals(ddpcxxBO.getFPLXDM()) || OrderInfoEnum.ORDER_INVOICE_TYPE_002.getKey().equals(ddpcxxBO.getFPLXDM())){ +// ddtxxBO.setXHFDZ(""); +// ddtxxBO.setXHFDH(""); +// ddtxxBO.setXHFYH(""); +// ddtxxBO.setXHFZH(""); +// } else { + ddtxxBO.setXHFDZ(deptEntity.getTaxpayerAddress()); + ddtxxBO.setXHFDH(deptEntity.getTaxpayerPhone()); + ddtxxBO.setXHFYH(deptEntity.getTaxpayerBank()); + ddtxxBO.setXHFZH(deptEntity.getTaxpayerAccount()); +// } ddtxxBO.setGMFBM(req.getZGFBH()); ddtxxBO.setKPR(req.getZKPRXM()); ddtxxBO.setSKR(req.getZSKRXM()); @@ -3545,13 +3552,13 @@ public class BeanTransitionUtils { if(StringUtils.isNotBlank(detail.getZZSE()) && StringUtils.isNotBlank(detail.getZBHSJE())){ String zje = DecimalCalculateUtil.bigDecimalAdd(detail.getZZSE(), detail.getZBHSJE()); if(DecimalCalculateUtil.stringCompare(zje,detail.getZHSJE()) != 0){ - ddmxxxBO.setJE(detail.getZBHSJE()); - ddmxxxBO.setHSBZ(ConfigureConstant.STRING_0); - ddmxxxBO.setSE(detail.getZZSE()); - }else { log.info("SAP推送的不含税金额+税额不相等,传入的总金额:{},计算后的XMJE:{}",detail.getZHSJE(),zje); ddmxxxBO.setJE(detail.getZHSJE()); ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); + }else { + ddmxxxBO.setJE(detail.getZBHSJE()); + ddmxxxBO.setHSBZ(ConfigureConstant.STRING_0); + ddmxxxBO.setSE(detail.getZZSE()); } } else { ddmxxxBO.setJE(detail.getZHSJE()); @@ -3577,6 +3584,11 @@ public class BeanTransitionUtils { } ddmxList.add(ddmxxxBO); } + boolean match = ddmxList.stream().allMatch(mx -> ConfigureConstant.STRING_1.equals(mx.getHSBZ())); + if(match){ + ddtxxBO.setHJJE("0"); + ddtxxBO.setHJSE("0"); + } } ddzxxBO.setDDTXX(ddtxxBO); ddzxxBO.setDDMXXX(ddmxList); @@ -3588,8 +3600,8 @@ public class BeanTransitionUtils { } public static void main(String[] args) { - String zje = DecimalCalculateUtil.bigDecimalAdd("60561.96", "465861.19"); - if(DecimalCalculateUtil.stringCompare(zje,"526423.15") != 0){ + String zje = DecimalCalculateUtil.bigDecimalAdd("2", "1"); + if(DecimalCalculateUtil.stringCompare(zje,"3") != 0){ System.out.println("00"); } System.out.println("988989");