From 7aee7498acadfa6225c55493b869acc554441268 Mon Sep 17 00:00:00 2001 From: gaorl Date: Thu, 8 Jun 2023 15:58:48 +0800 Subject: [PATCH 01/14] =?UTF-8?q?feature=EF=BC=9A=E8=B4=AD=E6=96=B9?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../buyer/service/impl/BuyerServiceImpl.java | 72 ++++++++++--------- .../resources/mybatis/mapper/BuyerMapper.xml | 3 + 2 files changed, 40 insertions(+), 35 deletions(-) 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 75665efe..31f66925 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 @@ -207,7 +207,7 @@ public class BuyerServiceImpl implements BuyerService { } if (StringUtils.isNotEmpty(buyerEntity.getEntId())&&StringUtils.isNotEmpty(buyerEntity.getBuyerCode())) { param = new HashMap<>(5); - param.put("ent_id", buyerEntity.getEntId()); + param.put("entId", buyerEntity.getEntId()); param.put("buyerCode", buyerEntity.getBuyerCode()); int i = buyerMapper.selectBuyerByName(param, shList); if (i > 0) { @@ -245,44 +245,46 @@ public class BuyerServiceImpl implements BuyerService { // .put(OrderManagementConstant.MESSAGE, "上传失败"); // } else { importSuccessCount = buyerEntitys.size(); - for (BuyerEntity buyerEntity : buyerEntitys) { - //数据重复性校验 - buyerEntity.setId(baseService.getGenerateShotKey()); - if (StringUtils.isBlank(buyerEntity.getBuyerCode())) { - buyerEntity.setBuyerCode(baseService.getGenerateShotKey()); - } - List buyerEntityDetail = new ArrayList<>(); - BuyerEntityDetail buyerEntityDetail1 = new BuyerEntityDetail(); - buyerEntityDetail1.setBuyerManageId(buyerEntity.getId()); - buyerEntityDetail1.setBankAccount(buyerEntity.getBankNumber()); - buyerEntityDetail1.setBankName(buyerEntity.getBankOfDeposit()); - buyerEntityDetail1.setAddress(buyerEntity.getAddress()); - buyerEntityDetail1.setPhone(buyerEntity.getPhone()); - buyerEntityDetail1.setCreateTime(new Date()); - buyerEntityDetail1.setDefaultMark("0"); - try { - buyerEntityDetail1.setCreateUser(userInfoService.getUser().getUserId().toString()); - } catch (Exception e) { - buyerEntityDetail1.setCreateUser(""); - } - buyerEntityDetail.add(buyerEntityDetail1); - buyerMapper.batchInsertBuyerDetail(buyerEntityDetail); - } - if (buyerEntitys.size() < ConfigureConstant.BATCH_INSERT) { - buyerMapper.insertBuyerByList(buyerEntitys); - } else { - List insertBuyerList = new ArrayList<>(); - int i = 0; + if (importSuccessCount > 0){ for (BuyerEntity buyerEntity : buyerEntitys) { - if (i != 0 && i % ConfigureConstant.BATCH_INSERT == 0) { - buyerMapper.insertBuyerByList(insertBuyerList); - insertBuyerList = new ArrayList<>(); + //数据重复性校验 + buyerEntity.setId(baseService.getGenerateShotKey()); + if (StringUtils.isBlank(buyerEntity.getBuyerCode())) { + buyerEntity.setBuyerCode(baseService.getGenerateShotKey()); } - insertBuyerList.add(buyerEntity); - i++; + List buyerEntityDetail = new ArrayList<>(); + BuyerEntityDetail buyerEntityDetail1 = new BuyerEntityDetail(); + buyerEntityDetail1.setBuyerManageId(buyerEntity.getId()); + buyerEntityDetail1.setBankAccount(buyerEntity.getBankNumber()); + buyerEntityDetail1.setBankName(buyerEntity.getBankOfDeposit()); + buyerEntityDetail1.setAddress(buyerEntity.getAddress()); + buyerEntityDetail1.setPhone(buyerEntity.getPhone()); + buyerEntityDetail1.setCreateTime(new Date()); + buyerEntityDetail1.setDefaultMark("0"); + try { + buyerEntityDetail1.setCreateUser(userInfoService.getUser().getUserId().toString()); + } catch (Exception e) { + buyerEntityDetail1.setCreateUser(""); + } + buyerEntityDetail.add(buyerEntityDetail1); + buyerMapper.batchInsertBuyerDetail(buyerEntityDetail); } - if (buyerEntitys.size() > 0) { + if (buyerEntitys.size() < ConfigureConstant.BATCH_INSERT) { buyerMapper.insertBuyerByList(buyerEntitys); + } else { + List insertBuyerList = new ArrayList<>(); + int i = 0; + for (BuyerEntity buyerEntity : buyerEntitys) { + if (i != 0 && i % ConfigureConstant.BATCH_INSERT == 0) { + buyerMapper.insertBuyerByList(insertBuyerList); + insertBuyerList = new ArrayList<>(); + } + insertBuyerList.add(buyerEntity); + i++; + } + if (buyerEntitys.size() > 0) { + buyerMapper.insertBuyerByList(buyerEntitys); + } } } resultMap.put("list", list); 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 ab704b04..470570c2 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 @@ -908,6 +908,9 @@ AND buyer_code =#{map.buyerCode,jdbcType=VARCHAR} + + AND ent_id =#{map.entId,jdbcType=VARCHAR} + From 51fba21048c0847b3fa1630b75ff78299a643b94 Mon Sep 17 00:00:00 2001 From: gaorl Date: Fri, 9 Jun 2023 08:24:24 +0800 Subject: [PATCH 02/14] =?UTF-8?q?feature=EF=BC=9A1=E3=80=81=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=85=AC=E5=8F=B8=E5=BA=93=E6=8C=89=E9=92=AE=EF=BC=8C?= =?UTF-8?q?2=E3=80=81=E7=89=A9=E6=96=99=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=963=E3=80=81=E6=99=BA=E8=83=BD=E8=B5=8B=E7=A0=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=A2=84=E5=88=B6=E5=BC=BA=E5=88=B6=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommodityController.java | 21 ++- .../module/commodity/dao/CommodityMapper.java | 3 +- .../commodity/service/CommodityService.java | 8 + .../service/impl/CommodityServiceImpl.java | 24 ++- .../taxclass/dao/TaxClassCodeMapper.java | 2 +- .../mybatis/mapper/CommodityMapper.xml | 44 ++++++ .../mybatis/mapper/TaxClassCodeMapper.xml | 7 +- .../dxhy/order/constant/TaxClassCodeEnum.java | 6 +- .../config/rabbitmq/OrderSaveSpxxHandler.java | 22 +-- .../service/impl/InvoiceServiceImpl.java | 2 +- .../order/controller/OrderInfoController.java | 27 +++- .../controller/OrderInvoiceController.java | 1 + .../modules/order/model/vo/OrderInfoVo.java | 22 +++ .../order/service/OrderInfoService.java | 7 +- .../service/impl/OrderInfoServiceImpl.java | 140 ++++++++++++++++-- .../mybatis/mapper/OrderItemInfoMapper.xml | 3 + 16 files changed, 297 insertions(+), 42 deletions(-) create mode 100644 order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/OrderInfoVo.java diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java index d2bf7c49..046a1881 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java @@ -38,6 +38,8 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Size; import java.io.IOException; import java.io.OutputStream; import java.util.*; @@ -128,8 +130,6 @@ public class CommodityController { commodityCodeEntity.setXhfNsrsbh(nsrsbh); log.info("参数:{}", JsonUtils.getInstance().toJsonString(commodityCodeEntity)); //获取当前登录人ID - Long userId = userInfoService.getUser().getUserId(); - commodityCodeEntity.setUserId(userId.toString()); if (StringUtils.isNotBlank(commodityCodeEntity.getSl()) && commodityCodeEntity.getSl().contains(ConfigureConstant.STRING_PERCENT)) { commodityCodeEntity.setSl(CommonUtils.formatSl(commodityCodeEntity.getSl())); } @@ -163,6 +163,7 @@ public class CommodityController { if (StringUtils.isBlank(commodityCodeEntity.getYcbz())) { commodityCodeEntity.setYcbz(ConfigureConstant.STRING_0); } + //物料编码不允许为空 if(StringUtils.isBlank(commodityCodeEntity.getZxbm())||"000000000000000000".equals(commodityCodeEntity.getZxbm())){ commodityCodeEntity.setZxbm(commodityCodeEntity.getId()); } @@ -182,6 +183,22 @@ public class CommodityController { } } + @PostMapping("/brachUpdateTaxCode") + @ApiOperation(value = "集团库更新税编", notes = "集团物料库-更新税编") + @SysLog(operation = "更新税编", operationDesc = "集团物料库更新税编", key = "批量更新税编") + public R brachUpdateTaxCode(@RequestParam @Size(min = 1) List ids, @RequestParam @NotEmpty(message = "商品编码不允许为空")String spbm, @RequestParam String spjc) { + + CommodityCodeEntity commodityCode = new CommodityCodeEntity(); + commodityCode.setSpjc(spjc); + commodityCode.setSpbm(spbm); + try { + commodityService.batchUpdateCommodity(commodityCode,ids); + } catch (Exception e) { + log.error("更新集团物料失败,异常信息{}",e); + return R.error("系统更新异常,请联系管理员"); + } + return R.ok(); + } /** * 删除 * 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 784e77f3..e9783a31 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 @@ -94,8 +94,9 @@ public interface CommodityMapper { */ List queryCommodityInfoList(@Param("pageSpxxReq") PageSpxxReq pageSpxxReq, @Param("shList") List shList); - int queryCountByEntAndEncode(@Param("encoding")String encoding,@Param("merchandiseName")String merchandiseName,@Param("entId")String entId); + List queryCommodityByencodings(@Param("encodings") List encoding,@Param("entIds")List entId, @Param("shList") List shList); + int queryCountByEntAndEncode(@Param("encoding")String encoding,@Param("merchandiseName")String merchandiseName,@Param("entId")String entId); /** * 查询商品信息列表 diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityService.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityService.java index 6f776f65..203677c1 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityService.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/CommodityService.java @@ -151,4 +151,12 @@ public interface CommodityService { * @throws ExcelReadException 表格导入自定义异常 */ SXSSFWorkbook exportCommodityExcel(List commodityExcelList) throws ExcelReadException; + + /** + * 更新集团物料的税编 + * @param codeEntity + * @param ids + * @return + */ + R batchUpdateCommodity(CommodityCodeEntity codeEntity, 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 08831a9f..d89bbec8 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 @@ -103,7 +103,7 @@ public class CommodityServiceImpl implements CommodityService { @Transactional public R addOrEditCommodity(CommodityCodeEntity codeEntity) { List shList = NsrsbhUtils.transShListByNsrsbh(codeEntity.getXhfNsrsbh()); - + Long userId = userInfoService.getUser().getUserId(); //判断保存或者修改操作 String id = codeEntity.getId(); Map map = new HashMap<>(); @@ -128,18 +128,20 @@ public class CommodityServiceImpl implements CommodityService { codeEntity.setDataState(TaxClassCodeEnum.DATA_STATE_0.getKey()); } // 记录修改记录 - Long userId = userInfoService.getUser().getUserId(); - if(commodityCodeModifyLogService.saveCommodityCodeDifferenceBetween2(commodityCodeEntities.get(0), codeEntity, userId) == -1){ return R.error().put(OrderManagementConstant.DATA, "数据未进行修改,无需保存"); } - codeEntity.setXhfNsrsbh(null); + codeEntity.setXhfNsrsbh(null);//不更新税号 + codeEntity.setModifyTime(new Date()); + codeEntity.setModifyUserId(userId.toString()); if(commodityMapper.updateCommodity(codeEntity, null) <= 0){ return R.error().put(OrderManagementConstant.DATA, "更新物料信息失败,请联系管理员"); } } else { codeEntity.setDataSource(TaxClassCodeEnum.DATA_SOURCE_1.getKey()); + codeEntity.setCreateTime(new Date()); + codeEntity.setUserId(userId.toString()); codeEntity.setMatchingState(TaxClassCodeEnum.MATCHING_STATE_1.getKey()); //未匹配默认为停用 codeEntity.setDataState(TaxClassCodeEnum.DATA_STATE_1.getKey()); @@ -643,7 +645,7 @@ public class CommodityServiceImpl implements CommodityService { } }else{ - // TODO 简称、商品编码、规格型号、单位、优惠政策标识、零税率标识 + // 简称、商品编码、规格型号、单位、优惠政策标识、零税率标识 if (commodityCodeEntity != null){ commodityMapper.updateCommodityByZxbm(commodityCodeEntity, map); } @@ -678,6 +680,18 @@ public class CommodityServiceImpl implements CommodityService { return sxssfWorkbook; } + @Override + public R batchUpdateCommodity(CommodityCodeEntity codeEntity, List ids){ + // 校验税编是否为汇总项 + TaxClassCodeEntity taxClassCodeEntity = taxClassCodeService.queryTaxClassCodeFromCache(codeEntity.getSpbm()); + if(taxClassCodeEntity == null){ + return R.error("商品税编有误或未汇总项,请确认后再操作"); + } + //校验ids是否为集团物料 + commodityMapper.batchUpdateCommodity(codeEntity, ids); + return R.ok(); + } + /** * 数据转换 * diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/taxclass/dao/TaxClassCodeMapper.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/taxclass/dao/TaxClassCodeMapper.java index 85a01184..2457c27c 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/taxclass/dao/TaxClassCodeMapper.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/taxclass/dao/TaxClassCodeMapper.java @@ -28,7 +28,7 @@ public interface TaxClassCodeMapper { * @param spbms * @return */ - Integer countTaxClassCodeBySpbm(@Param("spbms") List spbms,@Param("map")Map map); + List selectTaxClassCodeList(@Param("spbms") List spbms,@Param("map")Map map); List selectTaxClassCodeBySpmcOrSm(String queryString); 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 af631f3f..a38dacc6 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 @@ -1124,6 +1124,50 @@ limit 1000 + + - SELECT - count(*) + * FROM tax_class_code tcc where tcc.spbm in @@ -56,6 +56,9 @@ and cpy = #{map.cpy} + + and hzx = #{map.hzx} + diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/TaxClassCodeEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/TaxClassCodeEnum.java index 27cfc18e..e297673b 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/TaxClassCodeEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/TaxClassCodeEnum.java @@ -25,7 +25,11 @@ public enum TaxClassCodeEnum { DATA_SOURCE_3("3", "采集下级"), DATA_SOURCE_4("4", "自动归集"),//物料更新没使用 DATA_SOURCE_5("5", "接口同步"), - DATA_SOURCE_6("6", "开票自动归集"), + DATA_SOURCE_6("6", "手工填开"), + DATA_SOURCE_7("7", "历史数据"), + DATA_SOURCE_8("8", "订单同步公司库"), + DATA_SOURCE_9("9", "引用集团库"), + DATA_SOURCE_10("10", "克隆公司库"), /** * 匹配状态 */ diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/config/rabbitmq/OrderSaveSpxxHandler.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/config/rabbitmq/OrderSaveSpxxHandler.java index 700a8a11..a84e0c66 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/config/rabbitmq/OrderSaveSpxxHandler.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/config/rabbitmq/OrderSaveSpxxHandler.java @@ -111,7 +111,7 @@ public class OrderSaveSpxxHandler implements BaseListener { List shList = NsrsbhUtils.transShListByNsrsbh(orderInvoiceInfo.getXhfNsrsbh()); List orderItemInfoList = orderItemInfoService.selectOrderItemInfoByOrderId(orderInvoiceInfo.getOrderInfoId(), shList); - List updateZnfmList = new ArrayList<>(); + //List updateZnfmList = new ArrayList<>(); if (ObjectUtil.isNotEmpty(orderItemInfoList)) { List receiveSpxxReqList = new ArrayList<>(); for (OrderItemInfo orderItemInfo : orderItemInfoList) { @@ -121,18 +121,18 @@ public class OrderSaveSpxxHandler implements BaseListener { receiveSpxxReq.setEntId(userInfoService.getUser() != null ? userInfoService.getUser().getDeptId():orderInvoiceInfo.getEntId()); receiveSpxxReqList.add(receiveSpxxReq); //更新是否为只能赋码 - if("1".equals(orderItemInfo.getZnfm())){ - OrderItemInfo orderItemInfo1 = new OrderItemInfo(); - orderItemInfo1.setId(orderItemInfo.getId()); - orderItemInfo1.setZnfm("0"); - updateZnfmList.add(orderItemInfo1); - } +// if("1".equals(orderItemInfo.getZnfm())){ +// OrderItemInfo orderItemInfo1 = new OrderItemInfo(); +// orderItemInfo1.setId(orderItemInfo.getId()); +// orderItemInfo1.setZnfm("0"); +// updateZnfmList.add(orderItemInfo1); +// } } //事务控制 - commodityService.saveCommodityCodeEntity(receiveSpxxReqList); - if(ObjectUtil.isNotEmpty(updateZnfmList)){ - orderItemInfoService.updateOrderItemId(updateZnfmList); - } + //commodityService.saveCommodityCodeEntity(receiveSpxxReqList); +// if(ObjectUtil.isNotEmpty(updateZnfmList)){ +// orderItemInfoService.updateOrderItemId(updateZnfmList); +// } } } 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 1b85ab18..98c21af2 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 @@ -248,7 +248,7 @@ public class InvoiceServiceImpl implements InvoiceService { if(consumerList.size()>0){ return R.error(ConfigureConstant.STRING_9001, "以下结算单中客户的状态为“冻结”状态,不能进行开票。",consumerList); }else if((StrUtil.isBlank(pageInvoiceReq.getConfirmZnfm()) || !ConfigureConstant.STRING_0.equals(pageInvoiceReq.getConfirmZnfm())) && confirmList.size()>0){ - return R.error(ConfigureConstant.STRING_9002,"请确认以下物料税收分类编码是否准确",confirmList); + return R.error(ConfigureConstant.STRING_9002,"请将以下物料同步至公司库,再进行生成预制",confirmList); }else if(djOverflowList.size() > 0){ return R.error(ConfigureConstant.STRING_9003, "以下订单自动拆分时单价超过设定范围,请手动拆分",djOverflowList); }else { 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 efb5a4cf..438cff55 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 @@ -5,11 +5,10 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -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.baseservice.module.commodity.model.CommodityCodeEntity; +import com.dxhy.order.constant.*; import com.dxhy.order.consumer.modules.order.model.dto.RewriteBzdhDTO; +import com.dxhy.order.consumer.modules.order.model.vo.OrderInfoVo; import com.dxhy.order.consumer.modules.order.service.OrderBzdhService; import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.model.*; @@ -464,7 +463,7 @@ public class OrderInfoController { @PostMapping("/updateOrderItem") @SysLog(operation = "订单更新物料", operationDesc = "订单更新物料", key = "订单更新物料") public R updateOrderItem(@RequestBody String param){ - log.info("订单更新物料",param); + log.info("订单更新物料{}",param); JSONObject jsonObject = JSONObject.parseObject(param); String entId = jsonObject.getString("entId"); String orderInfoId = jsonObject.getString("orderInfoId"); @@ -482,11 +481,25 @@ public class OrderInfoController { } + @ApiOperation(value = "同步物料至公司库", notes = "订单信息管理-同步物料") + @PostMapping("/sycnCommodity") + @SysLog(operation = "同步物料至公司库", operationDesc = "同步物料至公司库", key = "同步物料至公司库") + public R sycnCommodity(@RequestBody OrderInfoVo param){ + log.info("同步物料至公司库请参:{}",JSONObject.toJSONString(param)); + + try { + return orderInfoService.sycnCommodity(param); + } catch (Exception e) { + log.error("同步公司物料库失败,失败原因:{}",e.getMessage()); + return R.error("系统异常,请联系管理员"); + } + } + @ApiOperation(value = "订单明细合并", notes = "订单信息管理-订单明细合并") @PostMapping("/megerOrderItem") @SysLog(operation = "订单明细合并", operationDesc = "订单明细合并", key = "订单明细合并") public R megerOrderItem(@RequestBody String param){ - log.info("订单明细合并",param); + log.info("订单明细合并{}",param); JSONObject jsonObject = JSONObject.parseObject(param); String entId = jsonObject.getString("entId"); String orderInfoId = jsonObject.getString("orderInfoId"); @@ -507,7 +520,7 @@ public class OrderInfoController { @PostMapping("/batchMegerOrderItem") @SysLog(operation = "批量订单明细合并", operationDesc = "订单明细合并", key = "批量订单明细合并") public R batchMegerOrderItem(@RequestBody String param){ - log.info("批量订单明细合并",param); + log.info("批量订单明细合并{}",param); List jsonObjects = JSONObject.parseArray(param).toJavaList(JSONObject.class); try { diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInvoiceController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInvoiceController.java index 5020e224..d2b50edf 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInvoiceController.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInvoiceController.java @@ -144,6 +144,7 @@ public class OrderInvoiceController { @PostMapping("/preInvoice") public R preInvoice(@RequestBody PageInvoiceReq pageInvoiceReq) { try { + pageInvoiceReq.setConfirmZnfm("1"); return invoiceService.preInvoice(pageInvoiceReq); } catch (Exception e) { log.error("{}生成预制发票异常e:{}", LOGGER_MSG, e); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/OrderInfoVo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/OrderInfoVo.java new file mode 100644 index 00000000..13fe1a36 --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/OrderInfoVo.java @@ -0,0 +1,22 @@ +package com.dxhy.order.consumer.modules.order.model.vo; + +import com.dxhy.order.model.OrderItemInfo; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +@Data +public class OrderInfoVo { + + @NotBlank + private String entId; + + private String xhfNsrsbh; + + private String xhfMc; + + private String commodityId; + + private List orderItemInfo; +} 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 96be588f..8b85dca0 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,8 +1,8 @@ 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.consumer.modules.order.model.vo.OrderInfoVo; import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.model.*; import com.dxhy.base.constant.OrderSeparationException; @@ -12,7 +12,6 @@ import com.dxhy.order.consumer.modules.order.model.PageKySlReq; import com.dxhy.order.consumer.modules.order.model.PageKySlRsp; import com.dxhy.order.consumer.modules.order.model.bo.YwlxCountTotalBO; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @@ -219,6 +218,10 @@ public interface OrderInfoService { R updateOrderItem(String orderInfoId,String entId,List itemList); + /**同步订单信息至公司物料库*/ + @Transactional + R sycnCommodity(OrderInfoVo param); + @Transactional R mergeOrderItem(String entId,String orderInfoId,List itemList) throws Exception; 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 b27abf7b..612537aa 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 @@ -10,18 +10,19 @@ import com.dxhy.base.constant.TaxSeparateConfig; import com.dxhy.base.utils.PriceTaxSeparationUtilNew; import com.dxhy.common.generatepdf.util.EwmUtil; import com.dxhy.order.baseservice.config.BaseServiceConfig; +import com.dxhy.order.baseservice.module.base.service.BaseService; 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.dao.CommodityMapper; import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; import com.dxhy.order.baseservice.module.groupmanagement.dao.GroupManagementMapper; 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; -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.baseservice.utils.BaseServiceBeanTransitionUtils; +import com.dxhy.order.constant.*; import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper; import com.dxhy.order.consumer.dao.GsClientMapper; import com.dxhy.order.consumer.dao.OrderBatchRequestMapper; @@ -33,6 +34,7 @@ import com.dxhy.order.consumer.modules.order.model.PageInvoiceItem; import com.dxhy.order.consumer.modules.order.model.PageKySlReq; import com.dxhy.order.consumer.modules.order.model.PageKySlRsp; import com.dxhy.order.consumer.modules.order.model.bo.YwlxCountTotalBO; +import com.dxhy.order.consumer.modules.order.model.vo.OrderInfoVo; import com.dxhy.order.consumer.modules.order.service.*; import com.dxhy.order.consumer.modules.validate.service.ValidateOrderInfoService; import com.dxhy.order.consumer.openapi.service.CommonInterfaceService; @@ -164,15 +166,18 @@ public class OrderInfoServiceImpl implements OrderInfoService { @Resource private TaxClassCodeMapper taxClassCodeMapper; - @Resource - private OrderBatchRequestMapper orderBatchRequestMapper; - @Resource private GroupManagementMapper groupManagementMapper; @Resource private GsClientMapper gsClientMapper; + @Resource + private BaseService baseService; + + @Resource + private CommodityMapper commodityMapper; + @Override public PageUtils selectOrderInfo(Map map, List shList, List entList) { return orderProcessService.selectOrderInfo(map, shList, entList); @@ -1840,8 +1845,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { if(collect1.size()==orderItemInfos.size()){ Map map = new HashMap(2); map.put("cpy","Y"); - Integer integer = taxClassCodeMapper.countTaxClassCodeBySpbm(collect1, map); - if(orderItemInfos.size()==integer.intValue()){ + List taxClassCodeEntities = taxClassCodeMapper.selectTaxClassCodeList(collect1, map); + if(orderItemInfos.size()==taxClassCodeEntities.size()){ //更新order_info 清单标志为4 OrderInfo orderInfo = new OrderInfo(); orderInfo.setId(orderInfoId); @@ -1855,6 +1860,123 @@ public class OrderInfoServiceImpl implements OrderInfoService { return R.ok(); } + @Override + public R sycnCommodity(OrderInfoVo param) { + //优先新增物料 + //如果公司库存在,但是部分数据与公司库不一致 + //如果当前明细行物料编码为空 + //更新订单物料智能赋码标识 + List spbms = new ArrayList<>(); + List orderItemInfo = param.getOrderItemInfo(); + if(orderItemInfo == null && orderItemInfo.isEmpty() ){ + return R.error("同步公司库必须勾选同步的明细"); + } + List ending = orderItemInfo.stream().filter(t->StringUtils.isNotBlank(t.getSpbm())).map(t -> { + spbms.add(t.getSpbm()); + return t.getZxbm(); + }).collect(Collectors.toList()); + Map map = new HashMap(2); + map.put("hzx","N"); + List spbm = spbms.stream().distinct().collect(Collectors.toList()); + ending = ending.stream().distinct().collect(Collectors.toList()); + + List taxClassCodeEntities = taxClassCodeMapper.selectTaxClassCodeList(spbm, map); + Map spbmMap = taxClassCodeEntities.stream().collect(Collectors.toMap(t -> t.getSpbm(), t -> t)); + + List commodityCodeEntities = null; + if(ending.size() > 0){ + commodityCodeEntities = commodityMapper.queryCommodityByencodings(ending, Arrays.asList(param.getEntId()), Arrays.asList(param.getXhfNsrsbh())); + } + Map collect = null; + if(commodityCodeEntities != null && commodityCodeEntities.size() > 0){ + collect = commodityCodeEntities.stream().collect(Collectors.toMap(t -> t.getZxbm(), t -> t)); + } + + List items = new ArrayList<>(); + StringBuffer sb = new StringBuffer(); + + for (OrderItemInfo itemInfo : orderItemInfo) { + try { + CommodityCodeEntity commodityCodeEntity = buildCommodity(itemInfo, param, spbmMap); + //判断是否已存在 + int i = 0; + //公司不维护 + CommodityCodeEntity commodityCodeOld = collect.get(itemInfo.getZxbm()); + if(collect == null || commodityCodeOld == null){ + commodityCodeEntity.setId(baseService.getGenerateShotKey()); + commodityCodeEntity.setCreateTime(new Date()); + commodityCodeEntity.setUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString():"sync"); + i = commodityMapper.insertCommodity(commodityCodeEntity); + } + //公司库已维护的不更新 + if(commodityCodeOld != null){ + //判断税编、规格型号、单位 + commodityCodeEntity.setId(commodityCodeOld.getId()); + commodityCodeEntity.setModifyTime(new Date()); + commodityCodeEntity.setModifyUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString():"sync"); + i = commodityMapper.updateCommodity(commodityCodeEntity,Arrays.asList(param.getXhfNsrsbh())); + } + if(i > 0){ + OrderItemInfo item = new OrderItemInfo(); + item.setId(itemInfo.getId()); + item.setZnfm(ConfigureConstant.STRING_0); + items.add(item); + } + + } catch (Exception e) { + sb.append(itemInfo.getSphxh()).append(","); + } + } + if(items.size() > 0){ + orderItemInfoMapper.updateOrderItemId(items); + } + String substring = sb.substring(0, sb.length() - 1) + "税编有误请检查"; + + return sb.length() == 0 ? R.ok() :R.error(substring); + } + + private CommodityCodeEntity buildCommodity(OrderItemInfo itemInfo,OrderInfoVo orderInfoVo,Map spbm ) throws Exception{ + CommodityCodeEntity comm = new CommodityCodeEntity(); + comm.setCommodityId(comm.getId()); + comm.setSortId(0L); + comm.setXhfNsrsbh(orderInfoVo.getXhfNsrsbh()); + TaxClassCodeEntity taxClassCodeEntity = spbm.get(itemInfo.getSpbm()); + if(taxClassCodeEntity == null){ + throw new Exception("商品税编有误"); + } + String spjc = taxClassCodeEntity.getSpjc(); + String xmmc = itemInfo.getXmmc().replace("*" + spjc + "*", ""); + comm.setXmmc(xmmc); + comm.setZxbm(StringUtils.isNotBlank(itemInfo.getZxbm())?itemInfo.getZxbm():comm.getId()); + comm.setSpsm(taxClassCodeEntity.getSm()); + comm.setSpjm(""); + comm.setSl(itemInfo.getSl());//不需要转换% + comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh())?BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()):"");//切除40 + comm.setXmdw(itemInfo.getXmdw()); + comm.setXmdj(StringUtils.isNotBlank(itemInfo.getXmdj())?itemInfo.getXmdj():""); + comm.setHsbz(itemInfo.getHsbz()); + comm.setYcbz(ConfigureConstant.STRING_0); + comm.setYhzcbs(itemInfo.getYhzcbs()); + comm.setSpbm(itemInfo.getSpbm()); + comm.setSsflMc(spjc); + comm.setLslbs(itemInfo.getLslbs()); + comm.setZzstsgl(itemInfo.getZzstsgl()); + //如果税编和简称对不上返回报错 + comm.setXhfMc(orderInfoVo.getXhfMc()); + comm.setDataSource(TaxClassCodeEnum.DATA_SOURCE_8.getKey()); + comm.setMatchingState(TaxClassCodeEnum.MATCHING_STATE_0.getKey()); + comm.setDataState(TaxClassCodeEnum.DATA_STATE_0.getKey()); + comm.setSpjc(spjc); + comm.setCollectIdent("0"); + comm.setCpy(taxClassCodeEntity.getCpy()); + comm.setJdc(taxClassCodeEntity.getJdc()); + comm.setEntId(orderInfoVo.getEntId()); + comm.setTswl(StringUtils.isBlank(itemInfo.getTswl())?ConfigureConstant.STRING_0:""); + return comm; + } + + + @Override public R mergeOrderItem(String entId, String orderInfoId,List itemList) throws Exception{ 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 5b18ea24..39907ad4 100644 --- a/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml +++ b/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml @@ -320,6 +320,9 @@ tswl = #{item.tswl,jdbcType=VARCHAR}, + + znfm = #{item.znfm,jdbcType=VARCHAR}, + id = #{item.id,jdbcType=VARCHAR} From 6a4ddb94fbb7efb2fffef2435d0b842a1c43a28c Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Fri, 9 Jun 2023 08:56:42 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A2=84=E5=88=B6?= =?UTF-8?q?=E5=8F=91=E7=A5=A8=E8=87=AA=E5=8A=A8=E6=8B=86=E5=88=86=E6=88=90?= =?UTF-8?q?=E5=93=81=E6=B2=B9=E5=92=8C=E9=9D=9E=E6=88=90=E5=93=81=E6=B2=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/InvoiceServiceImpl.java | 72 +++++++++++++++---- 1 file changed, 60 insertions(+), 12 deletions(-) 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 1b85ab18..e5ee1342 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 @@ -46,11 +46,14 @@ import com.dxhy.order.utils.JsonUtils; import com.dxhy.order.utils.NsrsbhUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -132,6 +135,9 @@ public class InvoiceServiceImpl implements InvoiceService { @Resource private TaxClassCodeMapper taxClassCodeMapper; + private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#0000"); + private static final String CF = "cf"; + @Override @Transactional @@ -139,41 +145,85 @@ public class InvoiceServiceImpl implements InvoiceService { List pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); //查询数据列表 List commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); + List commonOrderInfoList=new ArrayList(); //购方是否为空、税编是否为空校验、成品油校验 for(CommonOrderInfo commonOrderInfo:commonOrderInfos){ if(StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfNsrsbh()) || StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfMc()) ){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"购方信息为空,请补全!"); } - String cpy = ""; +// String cpy = ""; String kcp = baseServiceConfig.getKcp(); boolean kcpMark = kcp.contains(commonOrderInfo.getOrderItemInfo().get(0).getSpbm()); + List cpyOrderItems = new ArrayList(); + List nocpyOrderItems = new ArrayList(); for(OrderItemInfo orderItemInfo: commonOrderInfo.getOrderItemInfo()){ if(StrUtil.isBlank(orderItemInfo.getSpbm())){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"第"+orderItemInfo.getSphxh()+"行商品税编为空,请补全!"); }else { TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm()); - if(StrUtil.isNotBlank(cpy)){ - if(!cpy.equals(taxClassCodeEntity.getCpy())){ - return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"成品油和非成品油税编不能混开,请做手动拆分处理!"); - } +// if(StrUtil.isNotBlank(cpy)){ +// if(!cpy.equals(taxClassCodeEntity.getCpy())){ +// return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"成品油和非成品油税编不能混开,请做手动拆分处理!"); +// } +// }else { +// cpy = taxClassCodeEntity.getCpy(); +// } +// + if(ConfigureConstant.STRING_Y.equals(taxClassCodeEntity.getCpy())){ + //成品油明细 + cpyOrderItems.add(orderItemInfo); }else { - cpy = taxClassCodeEntity.getCpy(); + //非成品油明细 + nocpyOrderItems.add(orderItemInfo); } + if(kcp.contains(orderItemInfo.getSpbm()) != kcpMark){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"矿产品与非矿产品税编不能混开,请做手动拆分处理!"); } } } - if(ConfigureConstant.STRING_Y.equals(cpy) && commonOrderInfo.getOrderItemInfo().size()>ConfigureConstant.INT_8){ + if(CollectionUtils.isEmpty(cpyOrderItems)||CollectionUtils.isEmpty(nocpyOrderItems)){ + commonOrderInfo.setOrderItemInfo(CollectionUtils.isEmpty(cpyOrderItems)?nocpyOrderItems:nocpyOrderItems); + commonOrderInfoList.add(commonOrderInfo); + }else { + //成品油和非成品油混合 + OrderInfo cpyOrderInfo = new OrderInfo(); + BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyOrderInfo); + cpyOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + cpyOrderInfo.setHjse(cpyOrderItems.stream().map(m->new BigDecimal(m.getSe())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + cpyOrderInfo.setDdh(commonOrderInfo.getOrderInfo().getDdh() + CF + DECIMAL_FORMAT.format(1)); + CommonOrderInfo cpyCommonOrderInfo = new CommonOrderInfo(); + BeanUtils.copyProperties(commonOrderInfo,cpyCommonOrderInfo); + cpyCommonOrderInfo.setOrderItemInfo(cpyOrderItems); + cpyCommonOrderInfo.setOrderInfo(cpyOrderInfo); + commonOrderInfoList.add(cpyCommonOrderInfo); + + + OrderInfo nocpyOrderInfo = new OrderInfo(); + BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),nocpyOrderInfo); + nocpyOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + nocpyOrderInfo.setHjse(nocpyOrderItems.stream().map(m->new BigDecimal(m.getSe())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + nocpyOrderInfo.setDdh(commonOrderInfo.getOrderInfo().getDdh() + CF + DECIMAL_FORMAT.format(2)); + CommonOrderInfo nocpyCommonOrderInfo = new CommonOrderInfo(); + BeanUtils.copyProperties(commonOrderInfo,nocpyCommonOrderInfo); + nocpyCommonOrderInfo.setOrderItemInfo(nocpyOrderItems); + nocpyCommonOrderInfo.setOrderInfo(nocpyOrderInfo); + commonOrderInfoList.add(nocpyCommonOrderInfo); + + } + if(cpyOrderItems.size()>ConfigureConstant.INT_8){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"是成品油发票,明细行数不能超过8行,请先进行手动拆分!"); } +// if(ConfigureConstant.STRING_Y.equals(cpy) && commonOrderInfo.getOrderItemInfo().size()>ConfigureConstant.INT_8){ +// return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"是成品油发票,明细行数不能超过8行,请先进行手动拆分!"); +// } } //客户冻结状态校验、确认智能赋码、单价误差校验 List> consumerList = new ArrayList<>(); List> confirmList = new ArrayList<>(); List> djOverflowList = new ArrayList<>(); - for (CommonOrderInfo commonOrderInfo : commonOrderInfos) { + for (CommonOrderInfo commonOrderInfo : commonOrderInfoList) { OrderInfo orderInfo = commonOrderInfo.getOrderInfo(); List orderItemInfoList = commonOrderInfo.getOrderItemInfo(); BuyerEntity buyerEntity = null; @@ -203,6 +253,7 @@ public class InvoiceServiceImpl implements InvoiceService { confirmList.add(map); } }); + // 订单超限额拆分 String terminalCode = simsBackService.getTerminalCode(commonOrderInfo.getOrderInfo().getXhfNsrsbh(), commonOrderInfo.getOrderInfo().getEntId()); List originalCommonOrderInfo = new ArrayList<>(); @@ -252,7 +303,7 @@ public class InvoiceServiceImpl implements InvoiceService { }else if(djOverflowList.size() > 0){ return R.error(ConfigureConstant.STRING_9003, "以下订单自动拆分时单价超过设定范围,请手动拆分",djOverflowList); }else { - for (CommonOrderInfo f : commonOrderInfos) { + for (CommonOrderInfo f : commonOrderInfoList) { TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(f.getOrderItemInfo().get(0).getSpbm()); if(ObjectUtil.isNotNull(taxClassCodeEntity) && ConfigureConstant.STRING_Y.equals(taxClassCodeEntity.getCpy())){ f.getOrderInfo().setQdBz(OrderInfoEnum.QDBZ_CODE_4.getKey()); @@ -286,10 +337,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; } } return R.ok("生成预制发票成功,请到【发票处理中心】页面查看"); From 4ef9f0ec385a035c460bdce0e2e01ac64b815b95 Mon Sep 17 00:00:00 2001 From: gaorl Date: Fri, 9 Jun 2023 09:09:37 +0800 Subject: [PATCH 04/14] =?UTF-8?q?feature=EF=BC=9A=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=97=B6=E6=B7=BB=E5=8A=A0ent=5Fid=20?= =?UTF-8?q?=E7=9A=84=E6=9F=A5=E8=AF=A2=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baseservice/module/buyer/service/impl/BuyerServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 31f66925..2e998ab6 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 @@ -177,6 +177,7 @@ public class BuyerServiceImpl implements BuyerService { if (StringUtils.isNotEmpty(buyerEntity.getTaxpayerCode())) { param.put("taxpayerCode", buyerEntity.getTaxpayerCode()); + param.put("entId", buyerEntity.getEntId()); int i = buyerMapper.selectBuyerByName(param, shList); if (i > 0) { Map checkResultMap1 = new HashMap<>(2); @@ -190,6 +191,7 @@ public class BuyerServiceImpl implements BuyerService { if (StringUtils.isNotEmpty(buyerEntity.getPurchaseName())) { param = new HashMap<>(5); param.put("purchaseName", buyerEntity.getPurchaseName()); + param.put("entId", buyerEntity.getEntId()); int i = buyerMapper.selectBuyerByName(param, shList); if (i > 0) { Map checkResultMap1 = new HashMap<>(2); From 6ee11546d9843f67234e3fd8755632fd4f0d920e Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Fri, 9 Jun 2023 09:34:39 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 e5ee1342..c382e3ed 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 @@ -186,6 +186,8 @@ public class InvoiceServiceImpl implements InvoiceService { commonOrderInfo.setOrderItemInfo(CollectionUtils.isEmpty(cpyOrderItems)?nocpyOrderItems:nocpyOrderItems); commonOrderInfoList.add(commonOrderInfo); }else { + log.info("cpyOrderItems》》》》》》》》"+cpyOrderItems); + log.info("nocpyOrderItems》》》》》》》》"+nocpyOrderItems); //成品油和非成品油混合 OrderInfo cpyOrderInfo = new OrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyOrderInfo); From bf3e247f17b1d61a6369dd730c94c6d4fa67bbf2 Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Fri, 9 Jun 2023 09:43:22 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c382e3ed..36896fa1 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 @@ -186,8 +186,8 @@ public class InvoiceServiceImpl implements InvoiceService { commonOrderInfo.setOrderItemInfo(CollectionUtils.isEmpty(cpyOrderItems)?nocpyOrderItems:nocpyOrderItems); commonOrderInfoList.add(commonOrderInfo); }else { - log.info("cpyOrderItems》》》》》》》》"+cpyOrderItems); - log.info("nocpyOrderItems》》》》》》》》"+nocpyOrderItems); + log.info("cpyOrderItems》》》》》》》》"+JSON.toJSONString(cpyOrderItems)); + log.info("nocpyOrderItems》》》》》》》》"+JSON.toJSONString(nocpyOrderItems)); //成品油和非成品油混合 OrderInfo cpyOrderInfo = new OrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyOrderInfo); From 1e7f4fa3b7ce460eb4a26cadfe75eaf6c3d43601 Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Fri, 9 Jun 2023 10:09:32 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 36896fa1..053da0e2 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,7 @@ public class InvoiceServiceImpl implements InvoiceService { List pageInvoiceItemList = pageInvoiceReq.getPageInvoiceItemList(); //查询数据列表 List commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); + log.info("commonOrderInfos---->batch query order info"+JSON.toJSONString(commonOrderInfos)); List commonOrderInfoList=new ArrayList(); //购方是否为空、税编是否为空校验、成品油校验 for(CommonOrderInfo commonOrderInfo:commonOrderInfos){ @@ -191,7 +192,7 @@ public class InvoiceServiceImpl implements InvoiceService { //成品油和非成品油混合 OrderInfo cpyOrderInfo = new OrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyOrderInfo); - cpyOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + cpyOrderInfo.setHjbhsje(cpyOrderItems.stream().map(m->new BigDecimal(m.getXmje())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); cpyOrderInfo.setHjse(cpyOrderItems.stream().map(m->new BigDecimal(m.getSe())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); cpyOrderInfo.setDdh(commonOrderInfo.getOrderInfo().getDdh() + CF + DECIMAL_FORMAT.format(1)); CommonOrderInfo cpyCommonOrderInfo = new CommonOrderInfo(); @@ -203,7 +204,7 @@ public class InvoiceServiceImpl implements InvoiceService { OrderInfo nocpyOrderInfo = new OrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),nocpyOrderInfo); - nocpyOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + nocpyOrderInfo.setHjbhsje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getXmje())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); nocpyOrderInfo.setHjse(nocpyOrderItems.stream().map(m->new BigDecimal(m.getSe())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); nocpyOrderInfo.setDdh(commonOrderInfo.getOrderInfo().getDdh() + CF + DECIMAL_FORMAT.format(2)); CommonOrderInfo nocpyCommonOrderInfo = new CommonOrderInfo(); From 13163d4a32775ba44648a2020966b484fc20d48b Mon Sep 17 00:00:00 2001 From: gaorl Date: Fri, 9 Jun 2023 14:17:24 +0800 Subject: [PATCH 08/14] =?UTF-8?q?feature=EF=BC=9A=E7=BA=A2=E5=AD=97?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E4=BF=AE=E6=94=B9=E7=BA=A2=E5=AD=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=A1=A8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SpecialInvoiceServiceImpl.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoicespecial/service/impl/SpecialInvoiceServiceImpl.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoicespecial/service/impl/SpecialInvoiceServiceImpl.java index ada7cb8a..60baf434 100644 --- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoicespecial/service/impl/SpecialInvoiceServiceImpl.java +++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoicespecial/service/impl/SpecialInvoiceServiceImpl.java @@ -1869,10 +1869,15 @@ public class SpecialInvoiceServiceImpl implements SpecialInvoiceService { } //如果同步下来的结果与已有的结果不一致的话 更新最新的审核结果 - if (!responseHzfpsqbsc.getStatus_CODE().equals(specialInvoiceReversal.getStatusCode())) { + if (!responseHzfpsqbsc.getXXBZT().equals(specialInvoiceReversal.getStatusCode())||!responseHzfpsqbsc.getStatus_CODE().equals(specialInvoiceReversal.getStatusCode())) { updateSpecialEntity.setXxbbh(responseHzfpsqbsc.getXxbbh()); - updateSpecialEntity.setStatusCode(responseHzfpsqbsc.getStatus_CODE()); - updateSpecialEntity.setStatusMessage(responseHzfpsqbsc.getStatus_MESSAGE()); + if(StringUtils.isNotBlank(responseHzfpsqbsc.getStatus_CODE())){ + updateSpecialEntity.setStatusCode(responseHzfpsqbsc.getStatus_CODE()); + updateSpecialEntity.setStatusMessage(responseHzfpsqbsc.getStatus_MESSAGE()); + }else{ + updateSpecialEntity.setStatusCode(responseHzfpsqbsc.getXXBZT()); + updateSpecialEntity.setStatusMessage(responseHzfpsqbsc.getZTMX()); + } updateSpecialEntity.setEditorId(operatorId); updateSpecialEntity.setEditorName(operatorName); updateSpecialEntity.setId(specialInvoiceReversal.getId()); From bfb037cf46e2cbf1834116993a937cd35fbc0b3f Mon Sep 17 00:00:00 2001 From: gaorl Date: Fri, 9 Jun 2023 15:53:04 +0800 Subject: [PATCH 09/14] =?UTF-8?q?feature=EF=BC=9A=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E5=BA=93=E8=BF=94=E5=9B=9E=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/impl/OrderInfoServiceImpl.java | 12 +++++++++--- .../resources/mybatis/mapper/OrderItemInfoMapper.xml | 3 --- 2 files changed, 9 insertions(+), 6 deletions(-) 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 612537aa..b148535f 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 @@ -67,6 +67,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -178,6 +179,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { @Resource private CommodityMapper commodityMapper; + DecimalFormat format = new DecimalFormat("#.###"); + @Override public PageUtils selectOrderInfo(Map map, List shList, List entList) { return orderProcessService.selectOrderInfo(map, shList, entList); @@ -1930,9 +1933,11 @@ public class OrderInfoServiceImpl implements OrderInfoService { if(items.size() > 0){ orderItemInfoMapper.updateOrderItemId(items); } + if(sb.length() == 0){ + return R.ok(); + } String substring = sb.substring(0, sb.length() - 1) + "税编有误请检查"; - - return sb.length() == 0 ? R.ok() :R.error(substring); + return R.error(substring); } private CommodityCodeEntity buildCommodity(OrderItemInfo itemInfo,OrderInfoVo orderInfoVo,Map spbm ) throws Exception{ @@ -1950,7 +1955,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { comm.setZxbm(StringUtils.isNotBlank(itemInfo.getZxbm())?itemInfo.getZxbm():comm.getId()); comm.setSpsm(taxClassCodeEntity.getSm()); comm.setSpjm(""); - comm.setSl(itemInfo.getSl());//不需要转换% + String sl = itemInfo.getSl().replace("%", ""); + comm.setSl(format.format(new BigDecimal("1.3").divide(new BigDecimal("100"), 3, RoundingMode.HALF_UP)));//不需要转换% comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh())?BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()):"");//切除40 comm.setXmdw(itemInfo.getXmdw()); comm.setXmdj(StringUtils.isNotBlank(itemInfo.getXmdj())?itemInfo.getXmdj():""); 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 39907ad4..5b18ea24 100644 --- a/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml +++ b/order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml @@ -320,9 +320,6 @@ tswl = #{item.tswl,jdbcType=VARCHAR}, - - znfm = #{item.znfm,jdbcType=VARCHAR}, - id = #{item.id,jdbcType=VARCHAR} From 1ec9780df5106fbcbc94e0a462e8bf85ec2a995b Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Mon, 12 Jun 2023 08:28:40 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=88=90=E5=93=81?= =?UTF-8?q?=E6=B2=B9=E5=92=8C=E9=9D=9E=E6=88=90=E5=93=81=E6=B2=B9=E6=B7=B7?= =?UTF-8?q?=E5=90=88=E9=A2=84=E5=88=B6=E5=8F=91=E7=A5=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/InvoiceServiceImpl.java | 98 +++++++++++-------- 1 file changed, 58 insertions(+), 40 deletions(-) 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 053da0e2..a824225c 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 @@ -22,6 +22,9 @@ import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.constant.*; +import com.dxhy.order.consumer.model.page.PageCommonOrderInfo; +import com.dxhy.order.consumer.model.page.PageOrderInfo; +import com.dxhy.order.consumer.model.page.PageOrderItemInfo; import com.dxhy.order.consumer.modules.manager.service.InvoiceService; import com.dxhy.order.consumer.modules.order.model.PageInvoiceItem; import com.dxhy.order.consumer.modules.order.model.PageInvoiceReq; @@ -135,8 +138,8 @@ public class InvoiceServiceImpl implements InvoiceService { @Resource private TaxClassCodeMapper taxClassCodeMapper; - private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#0000"); - private static final String CF = "cf"; + @Resource + private OrderSplitService orderSplitService; @Override @@ -146,13 +149,15 @@ public class InvoiceServiceImpl implements InvoiceService { //查询数据列表 List commonOrderInfos = orderInfoService.batchQueryOrderInfoByOrderIdsAndNsrsbh(pageInvoiceItemList); log.info("commonOrderInfos---->batch query order info"+JSON.toJSONString(commonOrderInfos)); + //存储成品油和非成品油不是混开的结算单 List commonOrderInfoList=new ArrayList(); + //存储成品油和非成品油混开的结算单 + List mixCommonOrderInfoList=new ArrayList<>(); //购方是否为空、税编是否为空校验、成品油校验 for(CommonOrderInfo commonOrderInfo:commonOrderInfos){ if(StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfNsrsbh()) || StrUtil.isBlank(commonOrderInfo.getOrderInfo().getGhfMc()) ){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"购方信息为空,请补全!"); } -// String cpy = ""; String kcp = baseServiceConfig.getKcp(); boolean kcpMark = kcp.contains(commonOrderInfo.getOrderItemInfo().get(0).getSpbm()); List cpyOrderItems = new ArrayList(); @@ -162,14 +167,6 @@ public class InvoiceServiceImpl implements InvoiceService { return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"第"+orderItemInfo.getSphxh()+"行商品税编为空,请补全!"); }else { TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm()); -// if(StrUtil.isNotBlank(cpy)){ -// if(!cpy.equals(taxClassCodeEntity.getCpy())){ -// return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"成品油和非成品油税编不能混开,请做手动拆分处理!"); -// } -// }else { -// cpy = taxClassCodeEntity.getCpy(); -// } -// if(ConfigureConstant.STRING_Y.equals(taxClassCodeEntity.getCpy())){ //成品油明细 cpyOrderItems.add(orderItemInfo); @@ -187,41 +184,58 @@ public class InvoiceServiceImpl implements InvoiceService { commonOrderInfo.setOrderItemInfo(CollectionUtils.isEmpty(cpyOrderItems)?nocpyOrderItems:nocpyOrderItems); commonOrderInfoList.add(commonOrderInfo); }else { + //封装成品油 + PageCommonOrderInfo cpyPageCommonOrderInfo = new PageCommonOrderInfo(); + //拼接自动按照明细行拆分所需要的数据 log.info("cpyOrderItems》》》》》》》》"+JSON.toJSONString(cpyOrderItems)); log.info("nocpyOrderItems》》》》》》》》"+JSON.toJSONString(nocpyOrderItems)); //成品油和非成品油混合 - OrderInfo cpyOrderInfo = new OrderInfo(); - BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyOrderInfo); - cpyOrderInfo.setHjbhsje(cpyOrderItems.stream().map(m->new BigDecimal(m.getXmje())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); - cpyOrderInfo.setHjse(cpyOrderItems.stream().map(m->new BigDecimal(m.getSe())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); - cpyOrderInfo.setDdh(commonOrderInfo.getOrderInfo().getDdh() + CF + DECIMAL_FORMAT.format(1)); - CommonOrderInfo cpyCommonOrderInfo = new CommonOrderInfo(); - BeanUtils.copyProperties(commonOrderInfo,cpyCommonOrderInfo); - cpyCommonOrderInfo.setOrderItemInfo(cpyOrderItems); - cpyCommonOrderInfo.setOrderInfo(cpyOrderInfo); - commonOrderInfoList.add(cpyCommonOrderInfo); - - - OrderInfo nocpyOrderInfo = new OrderInfo(); - BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),nocpyOrderInfo); - nocpyOrderInfo.setHjbhsje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getXmje())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); - nocpyOrderInfo.setHjse(nocpyOrderItems.stream().map(m->new BigDecimal(m.getSe())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); - nocpyOrderInfo.setDdh(commonOrderInfo.getOrderInfo().getDdh() + CF + DECIMAL_FORMAT.format(2)); - CommonOrderInfo nocpyCommonOrderInfo = new CommonOrderInfo(); - BeanUtils.copyProperties(commonOrderInfo,nocpyCommonOrderInfo); - nocpyCommonOrderInfo.setOrderItemInfo(nocpyOrderItems); - nocpyCommonOrderInfo.setOrderInfo(nocpyOrderInfo); - commonOrderInfoList.add(nocpyCommonOrderInfo); + PageOrderInfo cpyPageOrderInfo = new PageOrderInfo(); + BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyPageOrderInfo); + cpyPageOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + List cpyOrderItemInfo = new ArrayList(); + for (OrderItemInfo cpyOrderItem : cpyOrderItems) { + PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); + BeanUtils.copyProperties(cpyOrderItem,cpyOrderItemInfo); + cpyOrderItemInfo.add(pageOrderItemInfo); + } + cpyPageCommonOrderInfo.setOrderInfo(cpyPageOrderInfo); + cpyPageCommonOrderInfo.setOrderItemInfo(cpyOrderItemInfo); + mixCommonOrderInfoList.add(cpyPageCommonOrderInfo); + //封装非成品油 + PageCommonOrderInfo nocpyPageCommonOrderInfo = new PageCommonOrderInfo(); + //成品油和非成品油混合 + PageOrderInfo nocpyPageOrderInfo = new PageOrderInfo(); + BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),nocpyPageOrderInfo); + nocpyPageOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + List nocpyOrderItemInfo = new ArrayList(); + for (OrderItemInfo nocpyOrderItem : nocpyOrderItems) { + PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); + BeanUtils.copyProperties(nocpyOrderItem,nocpyOrderItemInfo); + nocpyOrderItemInfo.add(pageOrderItemInfo); + } + nocpyPageCommonOrderInfo.setOrderInfo(nocpyPageOrderInfo); + nocpyPageCommonOrderInfo.setOrderItemInfo(nocpyOrderItemInfo); + mixCommonOrderInfoList.add(nocpyPageCommonOrderInfo); } if(cpyOrderItems.size()>ConfigureConstant.INT_8){ return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"是成品油发票,明细行数不能超过8行,请先进行手动拆分!"); } -// if(ConfigureConstant.STRING_Y.equals(cpy) && commonOrderInfo.getOrderItemInfo().size()>ConfigureConstant.INT_8){ -// return R.error("结算单:"+commonOrderInfo.getOrderInfo().getDdh()+"是成品油发票,明细行数不能超过8行,请先进行手动拆分!"); -// } } + //如果是混开的 走明细拆分 + if(!CollectionUtils.isEmpty(mixCommonOrderInfoList)){ + try { + orderSplitService.saveOrderSplitOrder(mixCommonOrderInfoList); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } + //如果不是混开的 走原来的逻辑 + if(CollectionUtils.isEmpty(commonOrderInfoList)){ + return R.ok("生成预制发票成功,请到【发票处理中心】页面查看"); + } //客户冻结状态校验、确认智能赋码、单价误差校验 List> consumerList = new ArrayList<>(); List> confirmList = new ArrayList<>(); @@ -294,17 +308,21 @@ public class InvoiceServiceImpl implements InvoiceService { } } else { log.error("{}校验单价容差范围发生错误:在原结算单中未匹配到唯一明细,找到了{}条", LOGGER_MSG, collect.size()); - R.error("校验单价容差范围发生错误:在原结算单中未匹配到唯一明细"); +// R.error("校验单价容差范围发生错误:在原结算单中未匹配到唯一明细"); + throw new RuntimeException("校验单价容差范围发生错误:在原结算单中未匹配到唯一明细"); } }); }); } if(consumerList.size()>0){ - return R.error(ConfigureConstant.STRING_9001, "以下结算单中客户的状态为“冻结”状态,不能进行开票。",consumerList); +// return R.error(ConfigureConstant.STRING_9001, "以下结算单中客户的状态为“冻结”状态,不能进行开票。",consumerList); + throw new RuntimeException(String.format("以下结算单中%s客户的状态为“冻结”状态,不能进行开票。",consumerList)); }else if((StrUtil.isBlank(pageInvoiceReq.getConfirmZnfm()) || !ConfigureConstant.STRING_0.equals(pageInvoiceReq.getConfirmZnfm())) && confirmList.size()>0){ - return R.error(ConfigureConstant.STRING_9002,"请确认以下物料税收分类编码是否准确",confirmList); +// return R.error(ConfigureConstant.STRING_9002,"请确认以下物料税收分类编码是否准确",confirmList); + throw new RuntimeException(String.format("请确认以下物料税收分类编码是否准确",confirmList)); }else if(djOverflowList.size() > 0){ - return R.error(ConfigureConstant.STRING_9003, "以下订单自动拆分时单价超过设定范围,请手动拆分",djOverflowList); +// return R.error(ConfigureConstant.STRING_9003, "以下订单自动拆分时单价超过设定范围,请手动拆分",djOverflowList); + throw new RuntimeException(String.format("以下订单自动拆分时单价超过设定范围,请手动拆分",djOverflowList)); }else { for (CommonOrderInfo f : commonOrderInfoList) { TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(f.getOrderItemInfo().get(0).getSpbm()); From 5551a34f673a888162adf688a32b8ff93c6fb6bf Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Mon, 12 Jun 2023 08:50:41 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E5=90=88=E8=AE=A1=E9=87=91=E9=A2=9D=E4=B8=BA=E4=BB=B7=E7=A8=8E?= =?UTF-8?q?=E7=9A=84=E5=90=88=E8=AE=A1=E7=9B=B8=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c3dade9a..b705cadb 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 @@ -192,7 +192,7 @@ public class InvoiceServiceImpl implements InvoiceService { //成品油和非成品油混合 PageOrderInfo cpyPageOrderInfo = new PageOrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyPageOrderInfo); - cpyPageOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + cpyPageOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getSe()).add(new BigDecimal(m.getXmje()))).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); List cpyOrderItemInfo = new ArrayList(); for (OrderItemInfo cpyOrderItem : cpyOrderItems) { PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); @@ -207,7 +207,7 @@ public class InvoiceServiceImpl implements InvoiceService { //成品油和非成品油混合 PageOrderInfo nocpyPageOrderInfo = new PageOrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),nocpyPageOrderInfo); - nocpyPageOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); + nocpyPageOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getSe()).add(new BigDecimal(m.getXmje()))).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); List nocpyOrderItemInfo = new ArrayList(); for (OrderItemInfo nocpyOrderItem : nocpyOrderItems) { PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); From 0bdf819f0262885c118de3e48cf0022a4e0cee4e Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Mon, 12 Jun 2023 08:52:09 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E5=90=88=E8=AE=A1=E9=87=91=E9=A2=9D=E4=B8=BA=E4=BB=B7=E7=A8=8E?= =?UTF-8?q?=E7=9A=84=E5=90=88=E8=AE=A1=E7=9B=B8=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 a824225c..636bbe4a 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 @@ -192,8 +192,7 @@ public class InvoiceServiceImpl implements InvoiceService { //成品油和非成品油混合 PageOrderInfo cpyPageOrderInfo = new PageOrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),cpyPageOrderInfo); - cpyPageOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); - List cpyOrderItemInfo = new ArrayList(); + cpyPageOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getSe()).add(new BigDecimal(m.getXmje()))).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); List cpyOrderItemInfo = new ArrayList(); for (OrderItemInfo cpyOrderItem : cpyOrderItems) { PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); BeanUtils.copyProperties(cpyOrderItem,cpyOrderItemInfo); @@ -207,8 +206,7 @@ public class InvoiceServiceImpl implements InvoiceService { //成品油和非成品油混合 PageOrderInfo nocpyPageOrderInfo = new PageOrderInfo(); BeanUtils.copyProperties(commonOrderInfo.getOrderInfo(),nocpyPageOrderInfo); - nocpyPageOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getJshj())).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); - List nocpyOrderItemInfo = new ArrayList(); + nocpyPageOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getSe()).add(new BigDecimal(m.getXmje()))).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); List nocpyOrderItemInfo = new ArrayList(); for (OrderItemInfo nocpyOrderItem : nocpyOrderItems) { PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); BeanUtils.copyProperties(nocpyOrderItem,nocpyOrderItemInfo); From 5d465d2d03a902003f5089327536d0cc1b448580 Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Mon, 12 Jun 2023 09:22:49 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 1 + .../modules/order/service/impl/OrderSplitServiceImpl.java | 2 ++ 2 files changed, 3 insertions(+) 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 b705cadb..556c5b03 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 @@ -226,6 +226,7 @@ public class InvoiceServiceImpl implements InvoiceService { //如果是混开的 走明细拆分 if(!CollectionUtils.isEmpty(mixCommonOrderInfoList)){ + log.info("mixCommonOrderInfoList="+JSON.toJSONString(mixCommonOrderInfoList)); try { orderSplitService.saveOrderSplitOrder(mixCommonOrderInfoList); } catch (Exception e) { 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 b81e53da..bc047abc 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 @@ -267,6 +267,8 @@ public class OrderSplitServiceImpl implements OrderSplitService { OrderItemInfo orderItemInfo = new OrderItemInfo(); BeanUtils.copyProperties(pageOrderItemInfo, orderItemInfo); TaxClassCodeEntity taxClassCodeEntity = taxClassCodeMapper.selectTaxClassCodeBySpbm(orderItemInfo.getSpbm()); + log.info("OrderItemInfo.getSpbm() = " + orderItemInfo.getSpbm()); + log.info("taxClassCodeEntity = " + taxClassCodeEntity); if(taxClassCodeEntity != null && "Y".contains(taxClassCodeEntity.getCpy())){ cpy++; } From b893957fe1ee14b10b0fc6934b34ac16d4815afd Mon Sep 17 00:00:00 2001 From: wangrangrang Date: Mon, 12 Jun 2023 09:35:48 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/manager/service/impl/InvoiceServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 636bbe4a..9b2b1a46 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 @@ -195,7 +195,7 @@ public class InvoiceServiceImpl implements InvoiceService { cpyPageOrderInfo.setKphjje(cpyOrderItems.stream().map(m->new BigDecimal(m.getSe()).add(new BigDecimal(m.getXmje()))).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); List cpyOrderItemInfo = new ArrayList(); for (OrderItemInfo cpyOrderItem : cpyOrderItems) { PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); - BeanUtils.copyProperties(cpyOrderItem,cpyOrderItemInfo); + BeanUtils.copyProperties(cpyOrderItem,pageOrderItemInfo); cpyOrderItemInfo.add(pageOrderItemInfo); } cpyPageCommonOrderInfo.setOrderInfo(cpyPageOrderInfo); @@ -209,7 +209,7 @@ public class InvoiceServiceImpl implements InvoiceService { nocpyPageOrderInfo.setKphjje(nocpyOrderItems.stream().map(m->new BigDecimal(m.getSe()).add(new BigDecimal(m.getXmje()))).reduce(BigDecimal.ZERO, BigDecimal::add).toString()); List nocpyOrderItemInfo = new ArrayList(); for (OrderItemInfo nocpyOrderItem : nocpyOrderItems) { PageOrderItemInfo pageOrderItemInfo = new PageOrderItemInfo(); - BeanUtils.copyProperties(nocpyOrderItem,nocpyOrderItemInfo); + BeanUtils.copyProperties(nocpyOrderItem,pageOrderItemInfo); nocpyOrderItemInfo.add(pageOrderItemInfo); } nocpyPageCommonOrderInfo.setOrderInfo(nocpyPageOrderInfo);