diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/dao/BuyerMapper.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/dao/BuyerMapper.java index e8404209..52c610bd 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/dao/BuyerMapper.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/dao/BuyerMapper.java @@ -40,7 +40,7 @@ public interface BuyerMapper { */ int insertBuyer(BuyerEntity buyerEntity); - int batchInsertBuyerDetail(List buyerEntityDetails); + int batchInsertBuyerDetail(@Param("buyerEntityDetails") List buyerEntityDetails); int deleteBuyerDetail(String buyerManageId); diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/model/BuyerEntity.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/model/BuyerEntity.java index 76dcbdf9..7e6ae10c 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/model/BuyerEntity.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/model/BuyerEntity.java @@ -133,4 +133,6 @@ public class BuyerEntity implements Serializable { // 默认银行账户的索引7 private Integer bankDefaultIndex; + + private String synchronizeOrders; } 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 c32d80a0..fbc511a1 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 @@ -343,6 +343,7 @@ public class BuyerServiceImpl implements BuyerService { if(ConfigureConstant.STRING_1.equals(buyerEntity.getIsEdit())){ t.setUpdateUser(""); t.setUpdateTime(new Date()); + t.setBuyerManageId(buyerEntity.getId()); }else{ t.setBuyerManageId(buyerId); t.setCreateUser(""); @@ -356,13 +357,14 @@ public class BuyerServiceImpl implements BuyerService { } }); } - + if(buyerEntity.getBuyerEntityDetail() != null && buyerEntity.getBuyerEntityDetail().size()>0){ + buyerMapper.deleteBuyerDetail(buyerEntity.getId()); + buyerMapper.batchInsertBuyerDetail(buyerEntity.getBuyerEntityDetail()); + } if (existBuyer != null) {//StringUtils.isNotBlank(buyerEntity.getId()) buyerEntity.setModifyTime(new Date()); //更新明细表,最好的办法是先删除后新增 - buyerMapper.deleteBuyerDetail(buyerEntity.getId()); - buyerMapper.batchInsertBuyerDetail(buyerEntity.getBuyerEntityDetail()); int i = buyerMapper.updateBuyer(buyerEntity, shList); if (i <= 0) { @@ -376,13 +378,16 @@ public class BuyerServiceImpl implements BuyerService { } log.info("{}添加开始执行开始执行 uuid = {}", LOGGER_MSG, buyerId); buyerEntity.setId(buyerId); - buyerMapper.batchInsertBuyerDetail(buyerEntity.getBuyerEntityDetail()); int i = buyerMapper.insertBuyer(buyerEntity); if (i <= 0) { r.put("message", "添加失败").put(OrderManagementConstant.CODE, ConfigureConstant.STRING_9999); } } + if("0".equals(buyerEntity.getSynchronizeOrders())){ + //更新订单 + } + return R.ok().put(OrderManagementConstant.MESSAGE, "保存成功!"); } 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 ee1f6c71..f898a28b 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 @@ -172,14 +172,12 @@ public class CommodityController { if (ObjectUtil.isNotEmpty(maps)) { return R.error().put(OrderManagementConstant.DATA, maps); } - boolean flag = false; + try { - flag = commodityService.addOrEditCommodity(commodityCodeEntity); + return commodityService.addOrEditCommodity(commodityCodeEntity); } catch (Exception e) { - flag = false; + return R.error().put(OrderManagementConstant.DATA, "系统异常"); } - log.info("返回值:{}", flag); - return flag ? R.ok().put("msg", "保存成功") : R.ok().put(OrderManagementConstant.CODE, ConfigureConstant.STRING_9999).put("msg", "保存失败"); } /** 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 fa3d96ec..6f776f65 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 @@ -34,7 +34,7 @@ public interface CommodityService { * @param codeEntity * @return */ - boolean addOrEditCommodity(CommodityCodeEntity codeEntity); + R addOrEditCommodity(CommodityCodeEntity codeEntity); /** * 删除 diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java index fad0994e..738aa694 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/service/impl/CommodityCodeModifyLogServiceImpl.java @@ -69,14 +69,14 @@ public class CommodityCodeModifyLogServiceImpl implements CommodityCodeModifyLog return 0; } - Field[] fields = CommodityCodeEntity.class.getFields(); + Field[] fields = CommodityCodeEntity.class.getDeclaredFields(); List modifyLogs = new ArrayList<>(); for (int i = 0; i < fields.length; i++) { Field tempField = fields[i]; tempField.setAccessible(true); try { - Object originValue = tempField.get(originOne); - Object newValue = tempField.get(newOne); + Object originValue = tempField.get(originOne) == null?"":tempField.get(originOne); + Object newValue = tempField.get(newOne) == null?"":tempField.get(newOne); if (!originValue.equals(newValue)) { CommodityCodeModifyLog modifyLog = new CommodityCodeModifyLog(); modifyLog.setId(baseService.getGenerateShotKey()); 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 a532f238..665e2de4 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 @@ -101,12 +101,13 @@ public class CommodityServiceImpl implements CommodityService { */ @Override @Transactional - public boolean addOrEditCommodity(CommodityCodeEntity codeEntity) { + public R addOrEditCommodity(CommodityCodeEntity codeEntity) { List shList = NsrsbhUtils.transShListByNsrsbh(codeEntity.getXhfNsrsbh()); boolean flag; //判断保存或者修改操作 String id = codeEntity.getId(); + Map map = new HashMap<>(); CommodityCodeEntity commodityCodeEntity = commodityMapper.queryCommodityById(id, "", shList); if (ObjectUtil.isNotEmpty(commodityCodeEntity)) { log.debug("修改操作 id = {}", id); @@ -118,12 +119,13 @@ public class CommodityServiceImpl implements CommodityService { } // 记录修改记录 Long userId = userInfoService.getUser().getUserId(); - int i = commodityCodeModifyLogService.saveCommodityCodeDifferenceBetween2(commodityCodeEntity, codeEntity, userId); - if(i != -1){ - i = commodityMapper.updateCommodity(codeEntity, shList); - } - flag = i >= 0; + if(commodityCodeModifyLogService.saveCommodityCodeDifferenceBetween2(commodityCodeEntity, codeEntity, userId) == -1){ + R.error().put(OrderManagementConstant.DATA, "数据未进行修改,无需保存"); + } + if(commodityMapper.updateCommodity(codeEntity, shList) <= 0){ + R.error().put(OrderManagementConstant.DATA, "更新物料信息失败,请联系管理员"); + } } else { codeEntity.setDataSource(TaxClassCodeEnum.DATA_SOURCE_1.getKey()); @@ -138,11 +140,12 @@ public class CommodityServiceImpl implements CommodityService { codeEntity.setDataState(TaxClassCodeEnum.DATA_STATE_1.getKey()); } - int i = commodityMapper.insertCommodity(codeEntity); + if(commodityMapper.insertCommodity(codeEntity) <= 0){ + R.error().put(OrderManagementConstant.DATA, "新增物料信息失败,请联系管理员"); + } - flag = i > 0; } - return flag; + return R.ok(); } /** 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 f221463e..b15afb79 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 @@ -30,13 +30,11 @@ - - + + - - @@ -59,8 +57,8 @@ bmi.sjh, bmi.remarks, bmi.create_user_id, - bmi.DATE_FORMAT(create_time, '%Y-%m-%d') createTime, - bmi.DATE_FORMAT(modify_time, '%Y-%m-%d') modifyTime, + DATE_FORMAT(bmi.create_time, '%Y-%m-%d') createTime, + DATE_FORMAT(bmi.modify_time, '%Y-%m-%d') modifyTime, bmi.modify_user_id, bmi.ghf_qylx, bmi.xhf_nsrsbh, @@ -68,7 +66,16 @@ bmi.buyer_code, bmi.create_time, bmi.status, - bmid.* + bmid.consumer_id, + bmid.buyer_manage_id, + bmid.bank_name, + bmid.bank_account, + bmid.address as bmid_address, + bmid.phone as bmid_phone, + bmid.default_mark, + bmid.create_user, + bmid.update_user + FROM buyer_manage_info bmi left join buyer_manage_info_detail bmid on bmi.id = bmid.buyer_manage_id @@ -291,83 +298,27 @@ - INSERT INTO buyer_manage_info_detail - + INSERT INTO buyer_manage_info_detail ( + buyer_manage_id,bank_name,bank_account,address,phone,default_mark,create_user,update_user,create_time,update_time + ) values + - + - - buyer_manage_id, - - - bank_name, - - - bank_account, - - - address, - - - phone, - - - default_mark, - - - create_user, - - - update_user, - - - create_time, - - - update_time, - - - - - - - - - #{buyerManageId,jdbcType=VARCHAR}, - - - #{bankName,jdbcType=VARCHAR}, - - - #{bankAccount,jdbcType=VARCHAR}, - - - #{address,jdbcType=VARCHAR}, - - - #{phone,jdbcType=VARCHAR}, - - - #{defaultMark,jdbcType=VARCHAR}, - - - #{createUser,jdbcType=VARCHAR}, - - - #{updateUser,jdbcType=VARCHAR}, - - - now(), - - - now(), - - - - + (#{buyerDetail.buyerManageId,jdbcType=VARCHAR}, + #{buyerDetail.bankName,jdbcType=VARCHAR}, + #{buyerDetail.bankAccount,jdbcType=VARCHAR}, + #{buyerDetail.address,jdbcType=VARCHAR}, + #{buyerDetail.phone,jdbcType=VARCHAR}, + #{buyerDetail.defaultMark,jdbcType=VARCHAR}, + #{buyerDetail.createUser,jdbcType=VARCHAR}, + #{buyerDetail.updateUser,jdbcType=VARCHAR}, + now(), + now()) + - DELETE FROM buyer_manage_info_detail where buyer_manage_info = #{buyerManageId,jdbcType=VARCHAR} + DELETE FROM buyer_manage_info_detail where buyer_manage_id = #{buyerManageId,jdbcType=VARCHAR} diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml index 963b20f6..3fb458ab 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityCodeModifyLogDao.xml @@ -66,11 +66,11 @@ insert into commodity_code_modify_log(id,commodity_code_id, `key`, origin_value, new_value, modify_user_id, modify_time) - values ( - - (#{item.id}, #{item.commodityCodeId}, #{item.key}, #{item.originValue}, #{item.newValue}, #{item.modifyUserId}, #{item.modifyTime}) - - ) + values + + (#{item.id}, #{item.commodityCodeId}, #{item.key}, #{item.originValue}, #{item.newValue}, #{item.modifyUserId}, #{item.modifyTime}) + + diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java index 03f87cf4..f54ffb1a 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java @@ -117,6 +117,10 @@ public class ConfigurerInfo { * 调用进项自动认证 */ public static final String transferTojx="transferTojx"; + /** + * 同步会计信息 + */ + public static final String SYNC_ACCOUNT_INFO="syncAccountInfo"; /** * 请求执行状态查询接口 diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java index 2c490de9..83c94c10 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java @@ -1259,6 +1259,7 @@ public enum OrderInfoEnum { INTERFACE_BUSINESS_ID_JXTBSHUJU("FI847","自动认证"), INTERFACE_BUSINESS_ID_JXSZC("FI849","进项税转出"), INTERFACE_BUSINESS_ID_TBPZH("FI848","票账比对"), + INTERFACE_BUSINESS_ID_ZYKSSFFM("FI005","同步会计信息"), /** * 发票备注配置项枚举 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/GroupCommodityCodeMapper.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/GroupCommodityCodeMapper.java index d2ea66ac..85cc9efa 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/GroupCommodityCodeMapper.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/GroupCommodityCodeMapper.java @@ -21,6 +21,8 @@ public interface GroupCommodityCodeMapper { */ List queryGroupCommodityCodeList(CommodityCodeEntity commodityCodeEntity); + CommodityCodeEntity queryCommodityCodeList(CommodityCodeEntity commodityCodeEntity); + /** * 根据物料编码和销方税号查询物料信息 @@ -44,6 +46,8 @@ public interface GroupCommodityCodeMapper { int insertCommodityCode(CommodityCodeEntity entity); + int updateCommodityCode(CommodityCodeEntity entity); + int deleteCommodityCodeByXhfNsrsbh(CloneCompanyCommodityDetailDTO dto); int cloneCommodityCode(@Param("from") CloneCompanyCommodityDetailDTO from, @Param("to") CloneCompanyCommodityDetailDTO to); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderProcessInfoMapper.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderProcessInfoMapper.java index 9e1b9c43..d77f24fc 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderProcessInfoMapper.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderProcessInfoMapper.java @@ -87,6 +87,8 @@ public interface OrderProcessInfoMapper { */ OrderProcessInfo selectByOrderId(@Param("orderId") String orderId, @Param("shList") List shList); + List selectByOrderIds(@Param("orderIds") List orderIds, @Param("shList") List shList); + /** * 多维度查询订单处理表 * diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/controller/GroupCommodityCodeController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/controller/GroupCommodityCodeController.java index 53c1c877..cc8ac59a 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/controller/GroupCommodityCodeController.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/controller/GroupCommodityCodeController.java @@ -72,7 +72,12 @@ public class GroupCommodityCodeController { */ @PostMapping("/quote") public R quote(@RequestBody @Validated QuoteGroupCommodityDTO dto) { - return groupCommodityCodeService.quoteGroupCommodityCode(dto); + try { + return groupCommodityCodeService.quoteGroupCommodityCode(dto); + } catch (Exception e) { + e.printStackTrace(); + return R.error("引用失败,请联系管理员"); + } } @PostMapping("/sync") diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java index 08ce110e..13ae5a7b 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java @@ -104,18 +104,20 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService } //CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh()); - CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh(), quoteGroupCommodityDTO.getDeptId()); - // 根据文档4.2.1.2 (6) 若物料编码重复时,引用后不对子公司物料进行更新 - if (commodityCodeEntity != null) { - continue; - } +// CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh(), quoteGroupCommodityDTO.getDeptId()); - commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, "-1"); + CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, "-1"); if (commodityCodeEntity == null) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return R.error("第" + (i + 1) + "条数据,集团物料不存在"); } + CommodityCodeEntity queryCommodityEntity = new CommodityCodeEntity(); + queryCommodityEntity.setXhfNsrsbh(quoteGroupCommodityDTO.getXhfNsrsbh()); + queryCommodityEntity.setZxbm(zxbm); + queryCommodityEntity.setCommodityId(commodityCodeEntity.getCommodityId()); + + queryCommodityEntity = groupCommodityMapper.queryCommodityCodeList(queryCommodityEntity); CommodityCodeEntity newCommodityCodeEntity = new CommodityCodeEntity(); try { @@ -125,15 +127,23 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService } catch (InvocationTargetException e) { log.error("{}引用物料异常", LOGGER_MSG, e); } - - newCommodityCodeEntity.setId(baseService.getGenerateShotKey()); - newCommodityCodeEntity.setXhfNsrsbh(quoteGroupCommodityDTO.getXhfNsrsbh()); - newCommodityCodeEntity.setEntId(quoteGroupCommodityDTO.getDeptId()); - newCommodityCodeEntity.setDataState("0"); - newCommodityCodeEntity.setXhfMc(quoteGroupCommodityDTO.getXhfMc()); - if (groupCommodityMapper.insertCommodityCode(newCommodityCodeEntity) <= 0) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return R.error("第" + (i + 1) + "条数据,引用失败"); + if(queryCommodityEntity != null){ + newCommodityCodeEntity.setId(queryCommodityEntity.getId()); + if (groupCommodityMapper.updateCommodityCode(newCommodityCodeEntity) <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return R.error("第" + (i + 1) + "条数据,引用失败"); + } + }else{ + newCommodityCodeEntity.setId(baseService.getGenerateShotKey()); + newCommodityCodeEntity.setXhfNsrsbh(quoteGroupCommodityDTO.getXhfNsrsbh()); + newCommodityCodeEntity.setEntId(quoteGroupCommodityDTO.getDeptId()); + newCommodityCodeEntity.setDataState("0"); + newCommodityCodeEntity.setXhfMc(quoteGroupCommodityDTO.getXhfMc()); + //如果存在则更新 + if (groupCommodityMapper.insertCommodityCode(newCommodityCodeEntity) <= 0) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return R.error("第" + (i + 1) + "条数据,引用失败"); + } } } 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 41edf083..01232a17 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 @@ -3,6 +3,7 @@ package com.dxhy.order.consumer.modules.order.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.OrderInfoContentEnum; import com.dxhy.order.constant.OrderInfoEnum; @@ -36,10 +37,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.regex.Matcher; /** @@ -413,4 +411,17 @@ public class OrderInfoController { } return R.ok().put(OrderManagementConstant.DATA, pageSlkjlyYxqRsp); } + + @PostMapping("/conversionNumByRatio") + @SysLog(operation = "根据比率转换数量", operationDesc = "根据比率转换数量", key = "结算单处理") + public R ratioConversion(@RequestParam("orderInfoIds")String orderInfoIds,@RequestParam("rate")String rate,@RequestParam("xhfNsrsbh")String xhfNsrsbh){ + //是否校验通税号 + log.info("结算单转换请求参数,勾选订单id:{},转换比率:{},转换税号:{}", JSONObject.toJSONString(orderInfoIds),rate,xhfNsrsbh); + if(StringUtils.isBlank(orderInfoIds)||StringUtils.isBlank(rate)||StringUtils.isBlank(xhfNsrsbh)){ + return R.error("请求参数有误"); + } + + orderInfoService.ratioConversion(Arrays.asList(orderInfoIds.split(",")),rate,xhfNsrsbh); + return R.ok(); + } } 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 8fa86114..3005b57b 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 @@ -8,6 +8,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 org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @@ -196,4 +197,6 @@ public interface OrderInfoService { List queryAvailableSlList(PageKySlReq pageKySlReq) throws OrderReceiveException; R fillRedMessage(Map param); + + R ratioConversion(List orderInfoIds,String ratio,String xhfNsrsbh); } 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 75b0ca96..7f4b61af 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 @@ -52,7 +52,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; +import java.util.stream.Collectors; /** * 订单信息业务层 @@ -1608,6 +1611,28 @@ public class OrderInfoServiceImpl implements OrderInfoService { } + @Override + public R ratioConversion(List orderInfoIds,String ratio,String xhfNsrsbh){ + //校验是否为同一税号 校验开票情况 + //根据税号+ orderinfoid查询明细信息 + List orderProcessInfos = orderProcessInfoMapper.selectByOrderIds(orderInfoIds, Arrays.asList(xhfNsrsbh)); + List collect = orderProcessInfos.stream().filter(t -> "0,1,2,3".contains(t.getDdzt())).map(t -> t.getDdh()).collect(Collectors.toList()); + + List orderItemInfos = orderItemInfoMapper.selectAllByOrderId(orderInfoIds, Arrays.asList(xhfNsrsbh)); + if(orderItemInfos == null ||orderItemInfos.isEmpty()){ + return R.error("当前明细为空不允许进行单位换算"); + } + orderItemInfos.forEach(t->{ + if(StringUtils.isNotBlank(t.getXmsl())){ + t.setXmsl(new BigDecimal(t.getXmsl()).multiply(new BigDecimal(ratio)).setScale(8, RoundingMode.HALF_UP).toString()); + t.setXmdj(new BigDecimal(t.getXmje()).divide(new BigDecimal(t.getXmsl()),8,RoundingMode.HALF_UP).toString()); + } + }); + //更新明细表 + orderItemInfoMapper.updateOrderItemId(orderItemInfos); + return R.ok(); + } + private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){ PageKySlRsp pageKySlRsp = new PageKySlRsp(); pageKySlRsp.setSl(orderInfoEnum.getKey()); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/entity/UnitConversion.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/entity/UnitConversion.java index cf6efed6..b7a9defd 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/entity/UnitConversion.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/entity/UnitConversion.java @@ -1,5 +1,7 @@ package com.dxhy.order.consumer.modules.unitconversion.entity; +import lombok.Data; + import java.io.Serializable; /** @@ -8,6 +10,7 @@ import java.io.Serializable; * @author Gong Quanlin * @since 2023-03-18 14:49:16 */ +@Data public class UnitConversion implements Serializable { private static final long serialVersionUID = -36936011982521247L; /** @@ -18,6 +21,10 @@ public class UnitConversion implements Serializable { * 销方税号 */ private String xhfNsrsbh; + /** + * 销方名称 + */ + private String xhfMc; /** * 数据权限id */ @@ -34,54 +41,4 @@ public class UnitConversion implements Serializable { * 比率 */ private String rate; - - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getXhfNsrsbh() { - return xhfNsrsbh; - } - - public void setXhfNsrsbh(String xhfNsrsbh) { - this.xhfNsrsbh = xhfNsrsbh; - } - - public String getEntId() { - return entId; - } - - public void setEntId(String entId) { - this.entId = entId; - } - - public String getOriginUnit() { - return originUnit; - } - - public void setOriginUnit(String originUnit) { - this.originUnit = originUnit; - } - - public String getNewUnit() { - return newUnit; - } - - public void setNewUnit(String newUnit) { - this.newUnit = newUnit; - } - - public String getRate() { - return rate; - } - - public void setRate(String rate) { - this.rate = rate; - } - } \ No newline at end of file diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/model/UnitConversionDTO.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/model/UnitConversionDTO.java index 686839b6..64942aa6 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/model/UnitConversionDTO.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/unitconversion/model/UnitConversionDTO.java @@ -14,6 +14,8 @@ public class UnitConversionDTO extends UnitConversion { private String id; @NotEmpty(message = "销货方纳税人识别号不能为空!") private String xhfNsrsbh; + @NotEmpty(message = "销货方名称不能为空!") + private String xhfMc; @NotEmpty(message = "数据权限id不能为空!") private String entId; @NotEmpty(message = "原单位不能为空!") @@ -101,4 +103,12 @@ public class UnitConversionDTO extends UnitConversion { public void setRate(String rate) { this.rate = rate; } + + public String getXhfMc() { + return xhfMc; + } + + public void setXhfMc(String xhfMc) { + this.xhfMc = xhfMc; + } } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java index 598301d8..fefd2eb7 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java @@ -88,7 +88,9 @@ public class InvoiceOpenGateRestApi { || OrderInfoEnum.INTERFACE_BUSINESS_ID_TBPZH.getKey().equals(requestParam.getIS_INPUT().getIFYWID()) ){ interfaceName = ConfigurerInfo.transferTojx; - }else { + }else if(OrderInfoEnum.INTERFACE_BUSINESS_ID_ZYKSSFFM.getKey().equals(requestParam.getIS_INPUT().getIFYWID())){ + interfaceName = ConfigurerInfo.SYNC_ACCOUNT_INFO; + } else { log.error("{}-山能对外接口PO业务接口ID:{},未定义", LOGGER_MESSAGE_V6, requestParam.getIS_INPUT().getIFYWID()); return "请传输正确的业务ID"; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java index f47cebe5..065355f6 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java @@ -399,14 +399,19 @@ public class InvoiceRestApiV6 { }else if(ConfigurerInfo.transferTojx.equals(interfaceName)){ log.info("开始调用进项接口"); //根据发票代码 + 号码更新字段 -// PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); -// String result = interfaceServiceV3.syncAccountInfo(requestParam); + Map headMap = new HashMap<>(); headMap.put("token",ConfigureConstant.POTOKEN); String s = HttpUtils.doPostWithHeader(jxUrl,reqStr,headMap); log.info("进项接口返回:{}",s); return s; + } else if(ConfigurerInfo.transferTojx.equals(interfaceName)){ + + PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); + String result = interfaceServiceV3.syncAccountInfo(requestParam); + log.info("同步报账单引用发票信息推送给税控系统数据返回:{}",result); + return result; } else { returnJsonString = ""; } diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml b/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml index 9028ebae..b0ced0ec 100644 --- a/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml +++ b/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml @@ -120,6 +120,24 @@ ORDER BY cc.create_time DESC + + diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/UnitConversionDao.xml b/order-management-consumer/src/main/resources/mybatis/mapper/UnitConversionDao.xml index 98df32c2..be9a06ab 100644 --- a/order-management-consumer/src/main/resources/mybatis/mapper/UnitConversionDao.xml +++ b/order-management-consumer/src/main/resources/mybatis/mapper/UnitConversionDao.xml @@ -5,6 +5,7 @@ + @@ -14,7 +15,7 @@ @@ -22,7 +23,7 @@ @@ -30,7 +31,7 @@