diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java index 513f8915..cff66791 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java @@ -447,21 +447,22 @@ public class UserInfoServiceImpl implements UserInfoService { if (entityList != null && entityList.size() > 0) { //选出默认项 Optional groupManagementEntityOptional = entityList.stream() - .filter(groupManagementEntity -> OrderInfoEnum.ORDER_KPZZGL_SFMRX_0.getKey().equals(groupManagementEntity.getDefaultItem())) - .findFirst(); + .filter(groupManagementEntity -> OrderInfoEnum.ORDER_KPZZGL_SFMRX_0.getKey().equals(groupManagementEntity.getDefaultItem())).findFirst(); GroupManagementEntity groupManagementEntity = groupManagementEntityOptional.orElseGet(() -> entityList.get(0)); - deptEntityNew = new DeptEntity(); - deptEntityNew.setDeptId(deptEntity.getDeptId()); - deptEntityNew.setTaxpayerCode(groupManagementEntity.getXhfNsrsbh()); - //todo 虚拟组织:组织名称和销方名称公用此字段会有问题,后期优化 - deptEntityNew.setName(groupManagementEntity.getGroupName()); - deptEntityNew.setTaxpayerName(groupManagementEntity.getXhfMc()); - deptEntityNew.setTaxpayerAddress(groupManagementEntity.getXhfDz()); - deptEntityNew.setTaxpayerPhone(groupManagementEntity.getXhfDh()); - deptEntityNew.setTaxpayerBank(groupManagementEntity.getXhfYh()); - deptEntityNew.setTaxpayerAccount(groupManagementEntity.getXhfZh()); - deptEntityNew.setInvoiceName(groupManagementEntity.getXhfMc()); - deptEntityNew.setInvoiceNsrsbh(groupManagementEntity.getXhfNsrsbh()); + if(StringUtils.isNotBlank(groupManagementEntity.getXhfNsrsbh())){ + deptEntityNew = new DeptEntity(); + deptEntityNew.setDeptId(deptEntity.getDeptId()); + deptEntityNew.setTaxpayerCode(groupManagementEntity.getXhfNsrsbh()); + //todo 虚拟组织:组织名称和销方名称公用此字段会有问题,后期优化 + deptEntityNew.setName(groupManagementEntity.getGroupName()); + deptEntityNew.setTaxpayerName(groupManagementEntity.getXhfMc()); + deptEntityNew.setTaxpayerAddress(groupManagementEntity.getXhfDz()); + deptEntityNew.setTaxpayerPhone(groupManagementEntity.getXhfDh()); + deptEntityNew.setTaxpayerBank(groupManagementEntity.getXhfYh()); + deptEntityNew.setTaxpayerAccount(groupManagementEntity.getXhfZh()); + deptEntityNew.setInvoiceName(groupManagementEntity.getXhfMc()); + deptEntityNew.setInvoiceNsrsbh(groupManagementEntity.getXhfNsrsbh()); + } } return deptEntityNew; } diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/CheckParamUtil.java b/order-management-common/src/main/java/com/dxhy/order/utils/CheckParamUtil.java index 162f4925..bf2c4b28 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/CheckParamUtil.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/CheckParamUtil.java @@ -239,4 +239,12 @@ public class CheckParamUtil { return errorMap; } + public static void main(String[] args) { + try { + CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107059, "塑料(ABS)_防静电_华信V-PRO矿工帽 带矿", ""); + //System.out.println("塑料(ABS)_防静电_华信V-PRO矿工帽 带矿".getBytes("GBK").length); + } catch (Exception e) { + e.printStackTrace(); + } + } } 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 2f0d9cdf..48302960 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 @@ -455,4 +455,17 @@ public class OrderInfoController { return R.error("系统异常,请联系管理员"); } } + + @ApiOperation(value = "订单更新物料", notes = "订单信息管理-更新物料") + @PostMapping("/updateOrderItem") + @SysLog(operation = "订单更新物料", operationDesc = "订单更新物料", key = "订单更新物料") + public R updateOrderItem(@RequestParam("orderInfoId")String orderInfoId,@RequestParam("entId")String entId){ + try { + return orderInfoService.updateOrderItem(orderInfoId,entId); + } 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 760bca53..57e5a522 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 @@ -214,4 +214,6 @@ public interface OrderInfoService { @Transactional R logicalDeleteByOrderInfoId(List pageRequestList); + + R updateOrderItem(String orderInfoId,String entId); } 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 d9819fa8..50c24c6e 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.nacos.common.utils.CollectionUtils; import com.dxhy.base.constant.OrderSeparationException; import com.dxhy.base.constant.TaxSeparateConfig; import com.dxhy.base.utils.PriceTaxSeparationUtilNew; @@ -11,6 +12,9 @@ import com.dxhy.common.generatepdf.util.EwmUtil; import com.dxhy.order.baseservice.config.BaseServiceConfig; import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity; import com.dxhy.order.baseservice.module.buyer.service.BuyerService; +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.baseservice.module.thirdservice.simsback.service.SimsBackService; import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; @@ -18,6 +22,7 @@ import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.OrderInfoContentEnum; import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.constant.OrderManagementConstant; +import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper; import com.dxhy.order.consumer.dao.OrderBatchRequestMapper; import com.dxhy.order.consumer.dao.OrderProcessInfoMapper; import com.dxhy.order.consumer.model.OderDetailInfo; @@ -154,6 +159,12 @@ public class OrderInfoServiceImpl implements OrderInfoService { @Resource private SpecialInvoiceReversalMapper specialInvoiceReversalMapper; + @Resource + private GroupCommodityCodeMapper commodityCodeMapper; + + @Resource + private TaxClassCodeMapper taxClassCodeMapper; + @Resource private OrderBatchRequestMapper orderBatchRequestMapper; @@ -1792,6 +1803,118 @@ public class OrderInfoServiceImpl implements OrderInfoService { return R.ok(); } + @Override + public R updateOrderItem(String orderInfoId,String entId){ + //根据订单id查询明细数据 + List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null); + List orderItemInfoList = new ArrayList<>(); + for (OrderItemInfo orderItemInfo : orderItemInfos) { + if(StringUtils.isNotBlank(orderItemInfo.getSpbm())){ + continue; + } + CommodityCodeEntity commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(orderItemInfo.getZxbm(), null, entId); + // 如果公司物料库匹配失败,从集团物料库匹配 + if (commodityCodeEntity == null) { + // 如果匹配不到,则去集团物料库匹配 + commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(orderItemInfo.getZxbm(), "-1",null); + + } + + if(commodityCodeEntity != null){ + completeCommodityMessageBySpid(orderItemInfo, commodityCodeEntity); + orderItemInfo.setZnfm(ConfigureConstant.STRING_1); + orderItemInfo.setXmsl(null); + orderItemInfo.setXmdj(null); + } + orderItemInfoList.add(orderItemInfo); + } + if(!orderItemInfoList.isEmpty()){ + orderItemInfoMapper.updateOrderItemId(orderItemInfoList); + } + return R.ok(); + } + + private void completeCommodityMessageBySpid(OrderItemInfo item, CommodityCodeEntity commodity) { + //商品编码 + if (StringUtils.isBlank(item.getSpbm()) && StringUtils.isNotBlank(commodity.getSpbm())) { + item.setSpbm(commodity.getSpbm()); + } + + //自行编码 + if (StringUtils.isBlank(item.getZxbm()) && StringUtils.isNotBlank(commodity.getZxbm())) { + item.setZxbm(commodity.getZxbm()); + } + + //优惠政策标识 + if (StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isNotBlank(commodity.getYhzcbs())) { + item.setYhzcbs(commodity.getYhzcbs()); + }else if(StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isBlank(commodity.getYhzcbs())){ + item.setYhzcbs(ConfigureConstant.STRING_0); + } + + //零税率标识 + if (StringUtils.isBlank(item.getLslbs()) && StringUtils.isNotBlank(commodity.getLslbs())) { + item.setLslbs(commodity.getLslbs()); + } + + //增值税特殊管理 + if (StringUtils.isBlank(item.getZzstsgl()) && StringUtils.isNotBlank(commodity.getZzstsgl())) { + item.setZzstsgl(commodity.getZzstsgl()); + } + + //如果项目名称为空,使用底层返回数据进行补全,如果不为空,并且需要补全,则进行补全 + String spmc = item.getXmmc(); + StringBuilder stringBuilder = new StringBuilder(); + if (StringUtils.isBlank(spmc)) { + if(StrUtil.isNotBlank(commodity.getInvoiceName())){ + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getInvoiceName()).toString(); + }else{ + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc()).toString(); + } + } else if (StringUtil.checkStr(spmc, commodity.getSpjc())) { + spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(spmc).toString(); + } + item.setXmmc(spmc); + + //发票行性质为折扣行,不补全,单价,数量,单位,规格型号 + if (!OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(item.getFphxz())) { + //规格型号 + if (StringUtils.isBlank(item.getGgxh()) && StringUtils.isNotBlank(commodity.getGgxh())) { + item.setGgxh(commodity.getGgxh()); + } + //单位 + if (StringUtils.isBlank(item.getXmdw()) && StringUtils.isNotBlank(commodity.getXmdw())) { + item.setXmdw(commodity.getXmdw()); + } + //商品数量 + if (StringUtils.isBlank(item.getXmsl())) { + item.setXmsl(""); + } + //单价 + if (StringUtils.isBlank(item.getXmdj()) && StringUtils.isNotBlank(commodity.getXmdj())) { + item.setXmdj(commodity.getXmdj()); + } + } + + //含税标志 + if (StringUtils.isBlank(item.getHsbz()) && StringUtils.isNotBlank(commodity.getHsbz())) { + item.setHsbz(commodity.getHsbz()); + } + + //如果税率为空使用查询到的税率否则使用原税率 + if (StringUtils.isBlank(item.getSl()) && StringUtils.isNotBlank(commodity.getSl())) { + item.setSl(CommonUtils.formatSl(commodity.getSl())); + } + if(StringUtils.isBlank(item.getTswl()) && StringUtils.isNotBlank(commodity.getTswl())){ + item.setTswl(commodity.getTswl()); + } + + //税额 + if (StringUtils.isBlank(item.getSe())) { + item.setSe(""); + } + } + private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){ PageKySlRsp pageKySlRsp = new PageKySlRsp(); pageKySlRsp.setSl(orderInfoEnum.getKey()); diff --git a/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml b/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml index 3f582aad..b3eafcff 100644 --- a/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml +++ b/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml @@ -274,18 +274,44 @@ UPDATE order_item_info - + xmsl = #{item.xmsl,jdbcType=VARCHAR}, - + xmdj = #{item.xmdj,jdbcType=VARCHAR}, - + xmdw = #{item.xmdw,jdbcType=VARCHAR}, - + znfm = #{item.znfm,jdbcType=VARCHAR}, + + + xmmc = #{item.xmmc,jdbcType=VARCHAR}, + + + ggxh = #{item.ggxh,jdbcType=VARCHAR}, + + + hsbz = #{item.hsbz,jdbcType=VARCHAR}, + + + + spbm = #{item.spbm,jdbcType=VARCHAR}, + + + yhzcbs = #{item.yhzcbs,jdbcType=VARCHAR}, + + + lslbs = #{item.lslbs,jdbcType=VARCHAR}, + + + zzstsgl = #{item.zzstsgl,jdbcType=VARCHAR}, + + + tswl = #{item.tswl,jdbcType=VARCHAR}, + id = #{item.id,jdbcType=VARCHAR}