|
|
|
@ -22,6 +22,7 @@ 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.model.TaxPlayerCodeDept; |
|
|
|
|
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; |
|
|
|
|
import com.dxhy.order.baseservice.utils.BaseServiceBeanTransitionUtils; |
|
|
|
|
import com.dxhy.order.constant.*; |
|
|
|
@ -64,7 +65,6 @@ import com.dxhy.order.model.qdsk.taxpayerinfo.Qdjcxx; |
|
|
|
|
import com.dxhy.order.utils.*; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
@ -1752,31 +1752,67 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh) throws Exception{ |
|
|
|
|
public void updateBillNumber(String bzdh,String orderInfoId,String fpqqlsh,String xhfNsrsbh,String force) throws Exception{ |
|
|
|
|
//通过报账单查询订单,如果存在则删除
|
|
|
|
|
List<OrderProcessInfo> orderProcessInfos = orderProcessInfoMapper.queryOrderProcessInfoByBzdh(bzdh,"", Arrays.asList(xhfNsrsbh)); |
|
|
|
|
OrderProcessInfo orderProcessInfo = null; |
|
|
|
|
if(orderProcessInfos.size() > 1){ |
|
|
|
|
List<OrderProcessInfo> orderProcessInfoList = orderProcessInfos.stream().filter(t -> OrderInfoEnum.ORDER_STATUS_0.getKey().equals(t.getDdzt())).collect(Collectors.toList()); |
|
|
|
|
if(orderProcessInfoList.size() > 1){ |
|
|
|
|
throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_MULTIPLE); |
|
|
|
|
} |
|
|
|
|
if(orderProcessInfos.size() == 1){ |
|
|
|
|
if(orderProcessInfos.size() > 0){ |
|
|
|
|
orderProcessInfo = orderProcessInfos.get(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(orderProcessInfo != null){ |
|
|
|
|
if(!OrderInfoEnum.ORDER_STATUS_0.getKey().equals(orderProcessInfo.getDdzt())){ |
|
|
|
|
if((!OrderInfoEnum.ORDER_STATUS_0.getKey().equals(orderProcessInfo.getDdzt())||ConfigureConstant.STRING_1.equals(orderProcessInfo.getYzfp())) |
|
|
|
|
&& OrderInfoEnum.ORDER_SOURCE_3.getKey().equals(orderProcessInfo.getDdly())){ |
|
|
|
|
|
|
|
|
|
throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_OPERATED); |
|
|
|
|
} |
|
|
|
|
if((OrderInfoEnum.ORDER_STATUS_5.getKey().equals(orderProcessInfo.getDdzt()) || OrderInfoEnum.ORDER_STATUS_7.getKey().equals(orderProcessInfo.getDdzt())) |
|
|
|
|
&&!OrderInfoEnum.ORDER_SOURCE_3.getKey().equals(orderProcessInfo.getDdly()) && ConfigureConstant.STRING_0.equals(force)){ |
|
|
|
|
throw new OrderReceiveException(OrderInfoContentEnum.INVOICE_BZDH_REPEAT_OPERATED); |
|
|
|
|
} |
|
|
|
|
if(ConfigureConstant.STRING_0.equals(force)){ |
|
|
|
|
OrderProcessInfo orderProcessInfo1 = new OrderProcessInfo(); |
|
|
|
|
orderProcessInfo1.setOrderStatus(OrderInfoEnum.ORDER_VALID_STATUS_1.getKey()); |
|
|
|
|
orderProcessInfo1.setOrderInfoId(orderProcessInfo.getOrderInfoId()); |
|
|
|
|
orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo1, Arrays.asList(xhfNsrsbh)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
OrderProcessInfo orderProcessInfo2 = new OrderProcessInfo(); |
|
|
|
|
orderProcessInfo2.setBzdh(bzdh); |
|
|
|
|
orderProcessInfo2.setOrderInfoId(orderInfoId); |
|
|
|
|
orderProcessInfo2.setXtly(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getXtly()) ? orderProcessInfo.getXtly() : ""); |
|
|
|
|
orderProcessInfo2.setOrderInfoId(orderInfoId);//作为更新where条件
|
|
|
|
|
orderProcessInfo2.setXtly(orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getXtly()) ? orderProcessInfo.getXtly() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getXtly())?orderProcessInfos.get(0).getXtly():"SAP"); |
|
|
|
|
//查询entId,判断如果为空
|
|
|
|
|
String gsdm = orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getGsdm()) ? orderProcessInfo.getGsdm() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getGsdm()) ? orderProcessInfos.get(0).getGsdm() : null; |
|
|
|
|
if(StringUtils.isNotBlank(gsdm)){ |
|
|
|
|
//根据orderInfoId 查询 发票公司代码是否为空
|
|
|
|
|
OrderProcessInfo orderProcessInfo1 = orderProcessInfoMapper.selectByOrderId(orderInfoId, Arrays.asList(xhfNsrsbh)); |
|
|
|
|
if(orderProcessInfo1 != null && StringUtils.isBlank(orderProcessInfo1.getGsdm())){ |
|
|
|
|
//如果为空,根据entID查询大B获取公司代码
|
|
|
|
|
List<TaxPlayerCodeDept> taxplayercodeDeptList = userInfoService.getUser().getTaxplayercodeDeptList(); |
|
|
|
|
gsdm = taxplayercodeDeptList.stream().filter(t -> orderProcessInfo1.getEntId().equals(t.getDeptId())).map(t -> t.getEnterpriseNumbers()).findFirst().orElse(""); |
|
|
|
|
if(StringUtils.isNotBlank(gsdm)){ |
|
|
|
|
throw new OrderReceiveException(OrderInfoContentEnum.ORDER__USER_INVALID_PERMISSIONS); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
orderProcessInfo2.setGsdm(gsdm); |
|
|
|
|
String ddh = orderProcessInfo != null && StringUtils.isNotBlank(orderProcessInfo.getDdh()) ? orderProcessInfo.getDdh() : orderProcessInfos.size() > 0 && StringUtils.isNotBlank(orderProcessInfos.get(0).getDdh()) ? orderProcessInfos.get(0).getDdh() : null; |
|
|
|
|
orderProcessInfo2.setDdh(ddh); |
|
|
|
|
int i = orderProcessInfoMapper.updateOrderProcessInfoByFpqqlsh(orderProcessInfo2, Arrays.asList(xhfNsrsbh)); |
|
|
|
|
if(StringUtils.isNotBlank(ddh)){ |
|
|
|
|
OrderInfo orderInfo = new OrderInfo(); |
|
|
|
|
orderInfo.setDdh(ddh); |
|
|
|
|
orderInfo.setId(orderInfoId); |
|
|
|
|
orderMapper.updateOrderInfoByOrderId(orderInfo,Arrays.asList(xhfNsrsbh)); |
|
|
|
|
OrderInvoiceInfo orderInvoiceInfo = new OrderInvoiceInfo(); |
|
|
|
|
orderInvoiceInfo.setOrderInfoId(orderInfoId); |
|
|
|
|
orderInvoiceInfo.setDdh(ddh); |
|
|
|
|
orderInvoiceInfoMapper.updateOrderInvoiceInfoByOrderId(orderInvoiceInfo,Arrays.asList(xhfNsrsbh)); |
|
|
|
|
} |
|
|
|
|
if(i > 0) { |
|
|
|
|
Map map = new HashMap(); |
|
|
|
|
map.put("ddqqlsh",fpqqlsh); |
|
|
|
|