feature:替换报账单号测试

release
kane 2 years ago
parent b4079f431a
commit 906cee4b39
  1. 14
      order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderProcessInfoMapper.java
  2. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/filter/OrderFilterConfig.java
  3. 20
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java
  4. 15
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/ReplaceOdd.java
  5. 17
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/ReplaceOddParam.java
  6. 33
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/ReplaceOddResponse.java
  7. 15
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/ReplaceOddResponseParam.java
  8. 15
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/dto/ReplaceOddDTO.java
  9. 9
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java
  10. 113
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java
  11. 10
      order-management-consumer/src/main/resources/mybatis/mapper/OrderProcessInfoMapper.xml
  12. 20
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInfoMapper.java
  13. 14
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java
  14. 7
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderItemInfoMapper.java
  15. 19
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInfoMapper.xml
  16. 28
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml
  17. 3
      order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml

@ -168,4 +168,18 @@ public interface OrderProcessInfoMapper {
List<OrderProcessInfo> selectOrderProcessByFpqqlshs(@Param("fpqqlshs") List<String> fpqqlshs, @Param("shList") List<String> shList);
List<OrderProcessInfo> selectOrderProcessByYFpdmHm(@Param("yFpdmHms") List<String> yFpdmHms, @Param("shList") List<String> shList);
/**
* 功能描述: 根据订单id查询处理信息
* @param id
* @return : com.dxhy.order.model.OrderProcessInfo
*/
OrderProcessInfo findByOrderId(@Param("id") String id);
/**
* 功能描述: 根据订单id删除处理表信息
* @param orderId
* @return : int
*/
int deleteByOrderId(@Param("orderId") String orderId);
}

@ -22,7 +22,7 @@ public class OrderFilterConfig {
FilterRegistrationBean<XssFilter> registration = new FilterRegistrationBean<>();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns("/*");
registration.addUrlPatterns("/s/**");
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
return registration;
@ -37,7 +37,7 @@ public class OrderFilterConfig {
FilterRegistrationBean<UserCenterAuthenticationFilter> registration = new FilterRegistrationBean<>();
registration.setName("UserCenterAuthenticationFilter");
registration.setOrder(1);
registration.addUrlPatterns("/*");
registration.addUrlPatterns("/s/**");
registration.setFilter(new UserCenterAuthenticationFilter());
return registration;
}

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity;
import com.dxhy.order.constant.*;
import com.dxhy.order.consumer.modules.order.model.dto.ReplaceOddDTO;
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.model.vo.OrderInfoTotalAmountVO;
@ -67,7 +68,24 @@ public class OrderInfoController {
@Resource
private TaxSpecialPolicyUtil taxSpecialPolicyUtil;
/**
* 获取订单发票列表 优税小程序调用
*
* @return
*/
@ApiOperation(value = "替换报账单号", notes = "订单信息管理-替换报账单号")
@PostMapping("/replaceOdd")
@SysLog(operation = "替换报账单号", operationDesc = "替换报账单号", key = "订单列表")
public R replaceOdd(@RequestBody ReplaceOddDTO replaceOddDTO) {
log.info("{}替换报账单号参数:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(replaceOddDTO));
return orderInfoService.replaceOdd(replaceOddDTO);
}
/**
* 获取订单发票列表 优税小程序调用
*

@ -0,0 +1,15 @@
package com.dxhy.order.consumer.modules.order.model;
import lombok.Data;
/**
* @author xingze
* @date 2023/11/28
*/
@Data
public class ReplaceOdd {
// 集团cilent
private String MANDT;
// 报账单号
private String ZBZDH;
}

@ -0,0 +1,17 @@
package com.dxhy.order.consumer.modules.order.model;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @author xingze
* @date 2023/11/28
*/
@Data
public class ReplaceOddParam {
/**
* IsInput
*/
@JSONField(name = "IS_INPUT")
private ReplaceOdd IS_INPUT;
}

@ -0,0 +1,33 @@
package com.dxhy.order.consumer.modules.order.model;
import lombok.Data;
/**
* @author xingze
* @date 2023/11/28
*/
@Data
public class ReplaceOddResponse {
// 状态
private String BZDZT;
/**
* 外围系统数据唯一标识
*/
private String BSKEY;
/**
* SAP数据唯一标识
*/
private String SAPKEY;
/**
* 数据处理标识(S成功E失败)
*/
private String ZTYPE;
/**
* 数据处理描述
*/
private String ZMESSAGE;
/**
* 业务报文
*/
private Object ZDATA;
}

@ -0,0 +1,15 @@
package com.dxhy.order.consumer.modules.order.model;
import lombok.Data;
/**
* @author xingze
* @date 2023/11/28
*/
@Data
public class ReplaceOddResponseParam {
/**
* ES_OUTPUT
*/
private ReplaceOddResponse ES_OUTPUT;
}

@ -0,0 +1,15 @@
package com.dxhy.order.consumer.modules.order.model.dto;
import lombok.Data;
/**
* @author xingze
* @date 2023/11/28
*/
@Data
public class ReplaceOddDTO {
// 订单id
private String orderId;
// 报账单号
private String bzdh;
}

@ -2,6 +2,7 @@ package com.dxhy.order.consumer.modules.order.service;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.order.consumer.model.page.PageRequestVO;
import com.dxhy.order.consumer.modules.order.model.dto.ReplaceOddDTO;
import com.dxhy.order.consumer.modules.order.model.vo.OrderInfoVo;
import com.dxhy.order.consumer.modules.order.model.vo.OrderInfoTotalAmountVO;
import com.dxhy.order.exception.OrderReceiveException;
@ -249,4 +250,12 @@ public interface OrderInfoService {
Boolean checkInvoiceRemarksFlag(String entId,String ghfId);
R checkInvoiceSync(String operation,String nsrsbh,String param);
/**
* 功能描述: 替换报账单号
* @param replaceOddDTO
* @return : com.dxhy.order.model.R
*/
R replaceOdd(ReplaceOddDTO replaceOddDTO);
}

@ -32,14 +32,16 @@ import com.dxhy.order.consumer.model.OderDetailInfo;
import com.dxhy.order.consumer.model.PageOrderExt;
import com.dxhy.order.consumer.model.page.PageRequestVO;
import com.dxhy.order.consumer.modules.manager.service.InvoiceDataService;
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.*;
import com.dxhy.order.consumer.modules.order.model.bo.YwlxCountTotalBO;
import com.dxhy.order.consumer.modules.order.model.dto.ReplaceOddDTO;
import com.dxhy.order.consumer.modules.order.model.vo.OrderInfoTotalAmountVO;
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.protocol.po.EsOutput;
import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam;
import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam;
import com.dxhy.order.consumer.openapi.service.CommonInterfaceService;
import com.dxhy.order.consumer.utils.BeanTransitionUtils;
import com.dxhy.order.consumer.utils.PageDataDealUtil;
@ -2256,6 +2258,111 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return R.ok();
}
/**
* 功能描述: 替换报账单号
* @param replaceOddDTO
* @return : com.dxhy.order.model.R
*/
@Override
public R replaceOdd(ReplaceOddDTO replaceOddDTO) {
if (StringUtils.isBlank(replaceOddDTO.getOrderId())){
log.error("{},替换报账单号接口传入订单id为空",LOGGER_MSG);
return R.error("传入订单id为空");
}
if (StringUtils.isBlank(replaceOddDTO.getOrderId())){
log.error("{},替换报账单号接口传入报账单号为空",LOGGER_MSG);
return R.error("传入报账单号为空");
}
try {
// 调用sap获取报账单号状态
ReplaceOdd replaceOdd = new ReplaceOdd();
replaceOdd.setMANDT(baseServiceConfig.getPoClient());
replaceOdd.setZBZDH(replaceOddDTO.getBzdh());
ReplaceOddParam replaceOddParam = new ReplaceOddParam();
replaceOddParam.setIS_INPUT(replaceOdd);
String param = JsonUtils.getInstance().toJsonString(replaceOddParam);
log.info("{}调用sap,获取报账单号状态入参:{}",LOGGER_MSG,param);
String result = HttpUtils.sendPo(baseServiceConfig.getPoUrl(), param,baseServiceConfig.getPoUserName(),
baseServiceConfig.getPoPassword());
log.info("{}调用sap,获取报账单号状态出参:{}",LOGGER_MSG,result);
ReplaceOddResponseParam replaceOddResponseParam = JsonUtils.getInstance().parseObject(result,
ReplaceOddResponseParam.class);
ReplaceOddResponse es_output = replaceOddResponseParam.getES_OUTPUT();
String ztype = es_output.getZTYPE();
String zmessage = es_output.getZMESSAGE();
String bzdzt = es_output.getBZDZT();
log.info("{},替换报账单号,替换信息:{}",JsonUtils.getInstance().toJsonString(es_output));
/*if(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey().equals(ztype)){
if ("50".equals(bzdzt)){
log.error("{}sap报账单号状态不允许替换,报账单号状态:{}",LOGGER_MSG,bzdzt);
return R.error("该报账单号状态不允许替换");
}
OrderInfo newOrderInfo = orderMapper.findByFpqqlish(replaceOddDTO.getBzdh());
if (newOrderInfo == null){
log.error("{}输入报账单号在该系统未查询到信息,不允许替换",LOGGER_MSG);
return R.error("输入报账单号在该系统未查询到信息,不允许替换");
}
OrderInfo yOrderInfo = orderMapper.findByOrderId(replaceOddDTO.getOrderId());
// 判断金额是否一致
if (!(yOrderInfo.getKphjje().equals(newOrderInfo.getKphjje()))){
log.error("{}两张报账单金额不一致,不允许替换",LOGGER_MSG);
return R.error("两张报账单金额不一致,不允许替换");
}
List<OrderInvoiceInfo> orderInvoiceInfoList = orderInvoiceInfoMapper.findByOrderId(replaceOddDTO.getOrderId());
if (orderInvoiceInfoList == null || orderInvoiceInfoList.size() <= 0){
log.error("{}原报账单号在该系统未查询到发票信息,不允许替换",LOGGER_MSG);
return R.error("原报账单号在该系统未查询到发票信息,不允许替换");
}
// 校验原报账单号是否开票成功
List<OrderInvoiceInfo> resultList = new ArrayList<>();
for (OrderInvoiceInfo orderInvoiceInfo : orderInvoiceInfoList) {
if (!("2".equals(orderInvoiceInfo.getKpzt()))){
log.error("{}原报账单号未开票成功,不允许替换",LOGGER_MSG);
return R.error("原报账单号未开票成功,不允许替换");
}
orderInvoiceInfo.setOrderInfoId(newOrderInfo.getId());
orderInvoiceInfo.setOrderProcessInfoId(newOrderInfo.getProcessId());
orderInvoiceInfo.setFpqqlsh(newOrderInfo.getFpqqlsh());
resultList.add(orderInvoiceInfo);
}
// 删除原报账单号
deleteBzdh(replaceOddDTO.getOrderId());
// 替换报账单号
for (OrderInvoiceInfo orderInvoiceInfo : resultList) {
int count = orderInvoiceInfoMapper.updateOrderInvoiceInfoById(orderInvoiceInfo);
if (count > 0){
log.info("{}替换报账单号接口,更新发票信息成功,发票信息:{}",LOGGER_MSG,
JsonUtils.getInstance().toJsonString(orderInvoiceInfo));
}else {
log.error("{}替换报账单号接口,更新发票信息失败,发票信息:{}",LOGGER_MSG,
JsonUtils.getInstance().toJsonString(orderInvoiceInfo));
}
}
}else {
log.error("{}调用sap系统出错,结果不是S,返回错误信息:{}",LOGGER_MSG,zmessage);
}*/
}catch (Exception e){
log.error("{},替换保证单号接口异常,异常信息:{}",LOGGER_MSG,e.getMessage());
}
return null;
}
// 删除原报账单信息
private void deleteBzdh(String orderId){
try {
int countOrderInfo = orderMapper.deleteByOrderId(orderId);
int countOrderProcessInfo = orderProcessInfoMapper.deleteByOrderId(orderId);
int countItem = orderItemInfoMapper.deleteByOrderId(orderId);
log.info("{}替换报账单号,删除原报账单信息:{},{},{}",LOGGER_MSG,countOrderInfo,countOrderProcessInfo,countItem);
if (countOrderInfo > 0 && countOrderProcessInfo > 0 && countItem > 0){
log.info("{}替换报账单号,删除原报账单信息成功",LOGGER_MSG);
}
}catch (Exception e){
log.error("{},替换报账单号,删除原报账单号异常,异常信息:{}",LOGGER_MSG,e.getMessage());
}
}
private void completeCommodityMessageBySpid(OrderItemInfo item, CommodityCodeEntity commodity) {
//商品编码
item.setSpbm(commodity.getSpbm());

@ -94,6 +94,9 @@
update_time,xhf_nsrsbh,xhf_mc,ent_id,sksbdm,fg_status,edit_status,num,check_status,check_time,
bzdh,xtly,gsdm,bhzt,ygxm,kppzh,pzgzrq,yzfp,origin_ddh,origin_order_id,kb
</sql>
<delete id="deleteByOrderId">
delete from order_process_info where order_info_id = #{orderId}
</delete>
<select id="selectOrderProcessInfoByProcessId" resultMap="BaseResultMap"
parameterType="java.lang.String">
@ -1729,6 +1732,13 @@
</select>
<select id="findByOrderId" resultMap="BaseResultMap"
parameterType="java.util.Map">
<bind name="dataType" value="${dataType}"/>
select
<include refid="Base_Column_List"/>
from order_process_info where order_info_id = #{id}
</select>
</mapper>

@ -79,4 +79,24 @@ public interface OrderInfoMapper {
OrderProcessInfo selectProcessByFpqqlsh(@Param("fpqqlsh")String fpqqlsh, @Param("shList") List<String> shList);
/**
* 功能描述: 根据流水号查询订单信息
* @param bzdh
* @return : com.dxhy.order.model.OrderInfo
*/
OrderInfo findByFpqqlish(@Param("bzdh") String bzdh);
/**
* 功能描述: 根据订单id查询订单信息
* @param orderId
* @return : com.dxhy.order.model.OrderInfo
*/
OrderInfo findByOrderId(@Param("id") String orderId);
/**
* 功能描述: 根据订单id删除订单信息
* @param orderId
* @return : int
*/
int deleteByOrderId(@Param("orderId") String orderId);
}

@ -248,4 +248,18 @@ public interface OrderInvoiceInfoMapper {
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
List<OrderInvoiceInfo> selectInvoiceInfoByFpqqlshs(@Param("fpqqlshs") List<String> fpqqlshs);
/**
* 功能描述: 根据订单id查询发票信息
* @param id
* @return : com.dxhy.order.model.OrderInvoiceInfo
*/
List<OrderInvoiceInfo> findByOrderId(@Param("orderId") String id);
/**
* 功能描述: 根据id更新发票信息
* @param orderInvoiceInfo
* @return : int
*/
int updateOrderInvoiceInfoById(@Param("orderInvoiceInfo") OrderInvoiceInfo orderInvoiceInfo);
}

@ -59,4 +59,11 @@ public interface OrderItemInfoMapper {
int insertOrderItemByList(@Param("list") List<OrderItemInfo> resultOrderItemList);
int updateOrderItemId(@Param("list") List<OrderItemInfo> resultOrderItemList);
/**
* 功能描述: 根据订单id删除详情信息
* @param orderId
* @return : int
*/
int deleteByOrderId(@Param("orderId") String orderId);
}

@ -91,7 +91,10 @@
slkjly,byzd1, byzd2, byzd3, byzd4, byzd5, create_time,
update_time
</sql>
<select id="selectOrderInfoByOrderId" resultMap="BaseResultMap"
<delete id="deleteByOrderId">
delete from order_info where id = #{orderId}
</delete>
<select id="selectOrderInfoByOrderId" resultMap="BaseResultMap"
parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
@ -632,5 +635,19 @@
</select>
<select id="findByFpqqlish" resultMap="BaseResultMap"
parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from order_info
where fpqqlsh = #{bzdh,jdbcType=VARCHAR}
</select>
<select id="findByOrderId" resultMap="BaseResultMap"
parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from order_info
where id = #{id,jdbcType=VARCHAR}
</select>
</mapper>

@ -2249,6 +2249,28 @@
</if>
</where>
</update>
<update id="updateOrderInvoiceInfoById" parameterType="com.dxhy.order.model.OrderInvoiceInfo">
update order_invoice_info
<set>
<if test="orderInvoiceInfo.orderInfoId != null">
order_info_id = #{orderInvoiceInfo.orderInfoId,jdbcType=VARCHAR},
</if>
<if test="orderInvoiceInfo.orderProcessInfoId != null">
order_process_info_id = #{orderInvoiceInfo.orderProcessInfoId,jdbcType=VARCHAR},
</if>
<if test="orderInvoiceInfo.fpqqlsh != null">
fpqqlsh = #{orderInvoiceInfo.fpqqlsh,jdbcType=VARCHAR},
</if>
<if test="orderInvoiceInfo.updateTime != null">
update_time = #{orderInvoiceInfo.updateTime,jdbcType=TIMESTAMP},
</if>
</set>
<where>
<if test="orderInvoiceInfo.id != null">
and id = #{orderInvoiceInfo.id,jdbcType=VARCHAR}
</if>
</where>
</update>
<select id="selectInvoiceInfoByFpqqlshs" resultType="com.dxhy.order.model.OrderInvoiceInfo">
SELECT
oii.fpqqlsh,oii.fpdm,oii.fphm,oii.ddh
@ -2261,4 +2283,10 @@
</foreach>
AND ( oii.zf_bz = '0' OR oii.ch_bz = '0' )
</select>
<select id="findByOrderId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from order_invoice_info
where order_info_id = #{orderId}
</select>
</mapper>

@ -84,6 +84,9 @@
#{id,jdbcType=VARCHAR}
</foreach>
</delete>
<delete id="deleteByOrderId">
delete from order_item_info where order_info_id = #{orderId}
</delete>
<insert id="insertOrderItemInfo" parameterType="com.dxhy.order.model.OrderItemInfo">
insert into order_item_info (id,
order_info_id,

Loading…
Cancel
Save