feature:订单驳回接口已开具的发票全部冲红或者作废,允许驳回

release
gaorl 2 years ago
parent aee0df9f2d
commit e1f4ee980f
  1. 2
      order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageRequestVO.java
  2. 8
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java
  3. 23
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java
  4. 4
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java
  5. 2
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java
  6. 6
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java
  7. 47
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml

@ -40,4 +40,6 @@ public class PageRequestVO implements Serializable {
* 销方税号,非数组
*/
private String xhfNsrsbh;
private String issuedSign;
}

@ -1718,6 +1718,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
preStr = "第" + (i + 1) + "行:";
}
String orderInfoId = pageRequest.getOrderInfoId();
String issuedSign = pageRequest.getIssuedSign();
List<String> shList = Arrays.asList(pageRequest.getXhfNsrsbh());
int i1 = new Random().nextInt(100);
OrderProcessInfo orderProcessInfo = new OrderProcessInfo();
@ -1727,6 +1728,13 @@ public class OrderInfoServiceImpl implements OrderInfoService {
orderProcessInfo.setFpqqlsh(pageRequest.getFpqqlsh() + "-bh" + i1);
orderProcessInfo.setDdqqpch(pageRequest.getFpqqlsh() + "-bh" + i1);
orderProcessInfo.setUpdateTime(new Date());
if(ConfigureConstant.STRING_0.equals(issuedSign)){
OrderInvoiceInfo orderInvoiceInfo = new OrderInvoiceInfo();
orderInvoiceInfo.setOrderInfoId(orderInfoId);
orderInvoiceInfo.setFpqqlsh(pageRequest.getFpqqlsh() + "-bh"+ i1);
orderProcessInfo.setOrderStatus(ConfigureConstant.STRING_0);
orderInvoiceInfoMapper.updateOrderInvoiceInfoByOrderId(orderInvoiceInfo,null);
}
int success = orderProcessService.updateOrderProcessInfoByProcessId(orderProcessInfo, shList);
OrderInfo orderInfo = new OrderInfo();
orderInfo.setId(orderInfoId);

@ -28,6 +28,7 @@ import com.dxhy.order.consumer.openapi.service.AllocateInvoiceInterfaceServiceV3
import com.dxhy.order.consumer.openapi.service.CommonDisposeService;
import com.dxhy.order.consumer.openapi.service.InterfaceServiceV6;
import com.dxhy.order.invoice.config.InvoiceConfig;
import com.dxhy.order.invoice.module.invoice.service.OrderInvoiceInfoService;
import com.dxhy.order.invoice.utils.HttpInvoiceRequestUtilQd;
import com.dxhy.order.model.InterfaceRequestData;
import com.dxhy.order.model.OrderProcessInfo;
@ -75,6 +76,8 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 {
@Resource
private OrderProcessInfoMapper orderProcessInfoMapper;
@Resource
private OrderInvoiceInfoService orderInvoiceInfoService;
@Resource
private OrderInfoService orderInfoService;
@Override
@ -159,20 +162,34 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 {
// return poCommonResponseParam;
// }
List<OrderProcessInfo> collect1 = orderProcessInfos.stream().filter(t -> "3".equals(t.getDdly())).collect(Collectors.toList());
if(orderProcessInfos.isEmpty()){
if(collect1.isEmpty()){
esOutput.setZMESSAGE("此账单为非接口数据,不允许驳回");
poCommonResponseParam.setES_OUTPUT(esOutput);
return poCommonResponseParam;
}
List<PageRequestVO> pageRequestList = collect1.stream().filter(t -> "0,1,3".contains(t.getDdzt())).map(t->{
List<String> collect = collect1.stream().map(t -> t.getOrderInfoId()).collect(Collectors.toList());
//需要查找哪些是开具成功作废或者冲红,哪些是未开订单
List<String> invalidList = orderInvoiceInfoService.countInoviceInfo(collect);
// if(invalidList == null || invalidList.isEmpty() || invalidList.size() != collect.size()){
// esOutput.setZMESSAGE("账单号已在开具发票或开具中,不允许驳回");
// poCommonResponseParam.setES_OUTPUT(esOutput);
// return poCommonResponseParam;
// }
List<PageRequestVO> pageRequestList = collect1.stream().filter(t -> "0,1,3,5,7".contains(t.getDdzt())).map(t->{
PageRequestVO pageRequestVO = new PageRequestVO();
pageRequestVO.setOrderProcessId(t.getId());
pageRequestVO.setOrderInfoId(t.getOrderInfoId());
pageRequestVO.setXhfNsrsbh(t.getXhfNsrsbh());
pageRequestVO.setFpqqlsh(t.getFpqqlsh());
if(invalidList != null && !invalidList.isEmpty() && invalidList.contains(t.getOrderInfoId())){
pageRequestVO.setIssuedSign("0");
}
return pageRequestVO;
}).collect(Collectors.toList());
if(pageRequestList.size() != collect1.size()){
List<OrderProcessInfo> collect2 = collect1.stream().filter(t -> "5,7".contains(t.getDdzt())).collect(Collectors.toList());
if(invalidList.size() != collect2.size() || pageRequestList.size() != collect1.size()){
esOutput.setZMESSAGE("账单号已在发票系统处理,不允许驳回");
poCommonResponseParam.setES_OUTPUT(esOutput);
return poCommonResponseParam;

@ -84,6 +84,8 @@ public interface OrderInvoiceInfoMapper {
*/
List<OrderInvoiceInfo> selectVehicleInvoiceList(@Param("map") Map map, @Param("shList") List<String> shList);
int updateOrderInvoiceInfoByOrderId(@Param("orderInvoiceInfo") OrderInvoiceInfo record, @Param("shList") List<String> shList);
/**
* 根据条件查询发票和红票
*
@ -242,4 +244,6 @@ public interface OrderInvoiceInfoMapper {
@Param("endTime") Date endTime,
@Param("shList") List<String> shList,
@Param("entList") List<String> entList);
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
}

@ -282,5 +282,7 @@ public interface OrderInvoiceInfoService {
void processDataAfterInvoice(RabbitMqCommonInvoice rabbitMqCommonInvoice);
String signInvoicePrint(String excelFile, List<String> ids) throws Exception;
List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds);
}

@ -51,6 +51,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.joda.time.DateTime;
import org.joda.time.Duration;
@ -1485,5 +1486,10 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
return orderInvoiceInfoMapper.findInvoiceCountAmount(paramMap);
}
@Override
public List<String> countInoviceInfo(@Param("orderInfoIds")List<String> orderInfoIds){
return orderInvoiceInfoMapper.countInoviceInfo(orderInfoIds);
}
}

@ -2202,4 +2202,51 @@
</foreach> or oii.ent_id is null)
</if>
</select>
<select id="countInoviceInfo" parameterType="java.lang.String" resultType="java.lang.String">
SELECT
oii.order_info_id
FROM
order_invoice_info oii
WHERE
(oii.zf_bz = '1' or oii.ch_bz = '1')
and oii.order_info_id in
<foreach collection="orderInfoIds" item="orderInfoId" open="(" separator="," close=")">
#{orderInfoId}
</foreach>
</select>
<update id="updateOrderInvoiceInfoByOrderId" parameterType="com.dxhy.order.model.OrderInvoiceInfo">
update order_invoice_info
<set>
<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.orderInfoId != null">
and order_info_id = #{orderInvoiceInfo.orderInfoId,jdbcType=VARCHAR}
</if>
<if test="shList != null and shList.size() == 0">
and xhf_nsrsbh = ''
</if>
<if test="shList != null and shList.size() == 1">
and xhf_nsrsbh =
<foreach collection="shList" index="index" item="item">
#{item}
</foreach>
</if>
<if test="shList != null and shList.size() > 1">
and xhf_nsrsbh in
<foreach collection="shList" index="index" item="item"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</update>
</mapper>

Loading…
Cancel
Save