通宇推送nc;
This commit is contained in:
+22
-2
@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyun.dingtalkworkflow_1_0.models.StartProcessInstanceResponse;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -21,6 +20,8 @@ import com.linke.finance.domain.reconciliationAccount.entity.ReconciliationAccou
|
||||
import com.linke.finance.domain.reconciliationAccount.repository.mapper.ReconciliationAccountMapper;
|
||||
import com.linke.finance.domain.reconciliationAccount.repository.todo.ReconciliationAccountDO;
|
||||
import com.linke.finance.domain.reconciliationAccount.service.ReconciliationAccountDomainService;
|
||||
import com.linke.finance.domain.reconciliationItem.entity.ReconciliationItem;
|
||||
import com.linke.finance.domain.reconciliationItem.repository.mapper.ReconciliationItemMapper;
|
||||
import com.linke.finance.domain.revenueExpensesRecord.entity.RevenueExpensesRecord;
|
||||
import com.linke.finance.domain.revenueExpensesRecord.service.RevenueExpensesRecordDomainService;
|
||||
import com.linke.finance.domain.tmsReceipt.repository.mapper.TmsReceiptMapper;
|
||||
@@ -33,6 +34,7 @@ import com.linke.finance.interfaces.assembler.reconciliationAccount.Reconciliati
|
||||
import com.mhd.common.core.constant.SubjectConstants;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationDTO;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationItemDTO;
|
||||
import com.mhd.common.core.domain.entity.TmsOrder;
|
||||
import com.mhd.common.core.domain.entity.Verification;
|
||||
import com.mhd.common.core.domain.po.OrganizationPo;
|
||||
@@ -93,6 +95,8 @@ public class ReconciliationApplicationService {
|
||||
|
||||
@Autowired
|
||||
private ReconciliationAccountMapper reconciliationAccountMapper;
|
||||
@Autowired
|
||||
private ReconciliationItemMapper reconciliationItemMapper;
|
||||
|
||||
|
||||
/**
|
||||
@@ -180,6 +184,13 @@ public class ReconciliationApplicationService {
|
||||
return reconciliationPOS;*/
|
||||
List<ReconciliationPO> reconciliationPOS = reconciliationDomainService.queryList(reconciliationDO);
|
||||
for (ReconciliationPO reconciliationPO : reconciliationPOS) {
|
||||
|
||||
Long reconciliationId = reconciliationPO.getReconciliationId();
|
||||
List<ReconciliationItem> reconciliationItems = reconciliationItemMapper.selectList(new QueryWrapper<ReconciliationItem>()
|
||||
.lambda().eq(ReconciliationItem::getReconciliationId, reconciliationId));
|
||||
|
||||
reconciliationPO.setReconciliationItemDTOList(reconciliationItems);
|
||||
|
||||
String innerNumber = reconciliationPO.getInnerNumber();
|
||||
if (innerNumber != null && !innerNumber.trim().isEmpty()) {
|
||||
ReconciliationDTO reconciliationDTO = new ReconciliationDTO();
|
||||
@@ -310,6 +321,15 @@ public class ReconciliationApplicationService {
|
||||
}
|
||||
|
||||
reconciliationDO = reconciliationDomainService.insert(reconciliationDO);
|
||||
List<ReconciliationItemDTO> reconciliationItemDTOList = reconciliationDO.getReconciliationItemDTOList();
|
||||
if (reconciliationItemDTOList != null && reconciliationItemDTOList.size() > 0) {
|
||||
for (ReconciliationItemDTO reconciliationItemDTO : reconciliationItemDTOList) {
|
||||
ReconciliationItem reconciliationItem = new ReconciliationItem();
|
||||
BeanUtils.copyProperties(reconciliationItemDTO, reconciliationItem);
|
||||
reconciliationItem.setReconciliationId(reconciliationDO.getReconciliationId());
|
||||
reconciliationItemMapper.insert(reconciliationItem);
|
||||
}
|
||||
}
|
||||
if(reconciliationDO==null){
|
||||
throw new ServiceException("订单出账-生成应收账单失败!");
|
||||
}
|
||||
@@ -840,4 +860,4 @@ public class ReconciliationApplicationService {
|
||||
throw new ServiceException("对账单审核失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -234,7 +234,6 @@ public class Reconciliation extends BaseVOEntity{
|
||||
@ApiModelProperty("nc同步状态 0-未同步 1-已同步")
|
||||
private Integer skSynchronousStatus;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "nc同步时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@@ -260,4 +259,7 @@ public class Reconciliation extends BaseVOEntity{
|
||||
|
||||
@ApiModelProperty(value = "税额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("结算币种")
|
||||
private String settlementCurrency;
|
||||
}
|
||||
+9
-1
@@ -34,4 +34,12 @@ public interface ReconciliationMapper extends BaseMapper<Reconciliation>
|
||||
* 插入对账单并使用传入的createTime值
|
||||
*/
|
||||
void insertWithCreateTime(Reconciliation reconciliation);
|
||||
}
|
||||
|
||||
String getInvoiceItemName(@Param("invoiceItemId") String invoiceItemId);
|
||||
|
||||
String getCustomerCodeNc(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId);
|
||||
|
||||
String getDocumentPreparerNcCode(@Param("salesmanId") String salesmanId);
|
||||
|
||||
String getSettlementCurrencyNcCode(@Param("settlementCurrency") String settlementCurrency);
|
||||
}
|
||||
+288
-270
@@ -45,9 +45,7 @@ import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.UserServiceFeign;
|
||||
import com.mhd.system.api.WlhyServiceFeign;
|
||||
import com.mhd.system.api.domain.TmsInvoiceList;
|
||||
import com.mhd.system.api.domain.TmsInvoiceListDetailsVO;
|
||||
import com.mhd.system.api.domain.TmsTransportNote;
|
||||
import com.mhd.system.api.domain.*;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
@@ -422,7 +420,6 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
if(reconciliation.getSynchronousStatus()==1){
|
||||
throw new ServiceException("该记录已同步,不需要再次同步");
|
||||
}
|
||||
|
||||
try {
|
||||
Date date = reconciliation.getCreateTime();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
@@ -635,229 +632,8 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
}
|
||||
}
|
||||
}else if(reconciliation.getOrganizationName().contains("通宇")){
|
||||
if (reconciliation.getIsInvoice() != 2) {
|
||||
throw new ServiceException("该记录还未开票,不允许同步");
|
||||
}
|
||||
if(result.getCode()==200){
|
||||
String url = "";
|
||||
SysDepartInterfaceInfoDTO query= new SysDepartInterfaceInfoDTO();
|
||||
query.setOrganizationId(reconciliation.getOrganizationId());
|
||||
query.setOrganizationName(reconciliation.getOrganizationName());
|
||||
query.setInterfaceType("nc");
|
||||
List<SysDepartInterfaceInfoPo> urlList = thirdPartyServiceFeign.queryList(query);
|
||||
if (urlList != null && urlList.size() > 0) {
|
||||
url = urlList.get(0).getInterfaceTypeValue();
|
||||
} else {
|
||||
throw new ServiceException("未找到该组织的推送地址!");
|
||||
}
|
||||
List<TmsOrder> list=result.getData();
|
||||
if(ObjectUtil.isNotNull(list)){
|
||||
makerCodeNc=list.get(0).getMakerCodeNc();
|
||||
String salesmanCodeNc=list.get(0).getSalesmanCodeNc();
|
||||
String customerCodeNc=list.get(0).getCustomerCodeNc();
|
||||
String appointShipper=list.get(0).getAppointShipper();
|
||||
String settlementCurrency=list.get(0).getSettlementCurrency();
|
||||
makerCodeNc=list.get(0).getMakerCodeNc();
|
||||
String goodsNumber=list.get(0).getGoodsName();
|
||||
for(TmsOrder tmsOrder:list){
|
||||
R<TmsTransportNote> ajaxResult1=wlhyServiceFeign.selectByOrderNum(tmsOrder.getGoodsNumber());
|
||||
if(ajaxResult1.getCode()==200){
|
||||
TmsTransportNote tmsTransportNote= ajaxResult1.getData();
|
||||
if(ObjectUtil.isNotNull(tmsTransportNote)){
|
||||
if(ObjectUtil.isNotNull(tmsTransportNote.getIsPaper())){
|
||||
date=tmsTransportNote.getConfirmReceiptTime();
|
||||
if(null==date){
|
||||
date=new Date();
|
||||
}
|
||||
dateString = sdf.format(date);
|
||||
}else{
|
||||
throw new ServiceException("运单还没签收, 先签收");
|
||||
}
|
||||
}else{
|
||||
throw new ServiceException("未查询到关联运单, 请核对");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
String invoiceNumber=reconciliation.getApplyNumber();
|
||||
R<TmsInvoiceListDetailsVO> ajaxResult2=wlhyServiceFeign.selectInvoiceListById(reconciliation.getInvoiceId());
|
||||
if(ajaxResult2.getCode()==200){
|
||||
TmsInvoiceListDetailsVO tmsInvoiceListDetailsVO= ajaxResult2.getData();
|
||||
if(ObjectUtil.isNotNull(tmsInvoiceListDetailsVO)) {
|
||||
invoiceNumber=tmsInvoiceListDetailsVO.getTmsMakeOutInvoices().get(0).getInvoiceNumber();
|
||||
}
|
||||
|
||||
}
|
||||
List<ReconciliationAccount> reconciliationAccountList=reconciliationAccountMapper.selectList(new QueryWrapper<ReconciliationAccount>().lambda()
|
||||
.eq(ReconciliationAccount::getReconciliationId,businessDocumentDetaliId)
|
||||
.eq(ReconciliationAccount::getDelFlag,1));
|
||||
if (ObjectUtil.isNotNull(reconciliationAccountList)&&reconciliationAccountList.size()>0){
|
||||
for (ReconciliationAccount reconciliationAccount:reconciliationAccountList){
|
||||
if(reconciliationAccount.getAmount().compareTo(BigDecimal.ZERO)>0){
|
||||
Ysitem item=new Ysitem();
|
||||
item.setSo_deptid("NG0408");
|
||||
item.setPk_deptid("NG0408");
|
||||
item.setPk_psndoc(salesmanCodeNc);
|
||||
item.setCustomer(customerCodeNc);
|
||||
item.setObjtype("0");
|
||||
item.setDirection("1");
|
||||
item.setScomment("业务部:应收"+appointShipper+reconciliationAccount.getSubjectName()+invoiceNumber);
|
||||
// item.setPk_currtype("CNY");
|
||||
item.setPk_currtype(settlementCurrency);
|
||||
item.setPurchaseorder("");
|
||||
item.setTaxrate("0");
|
||||
item.setQuantity_de("0");
|
||||
item.setMoney_de(String.valueOf(reconciliationAccount.getAmount()));
|
||||
item.setMoney_bal(String.valueOf(reconciliationAccount.getAmount()));
|
||||
if(reconciliationAccount.getRate().compareTo(BigDecimal.ZERO)>0){
|
||||
BigDecimal tax_de=reconciliationAccount.getAmount().multiply(reconciliationAccount.getRate().divide(BigDecimal.valueOf(100))).setScale(2,BigDecimal.ROUND_HALF_UP);
|
||||
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
|
||||
item.setNotax_de(String.valueOf(notax_de));
|
||||
item.setLocal_tax_de(String.valueOf(notax_de));
|
||||
item.setTax_de(String.valueOf(tax_de));
|
||||
}else{
|
||||
BigDecimal tax_de=BigDecimal.ZERO;
|
||||
BigDecimal notax_de=reconciliationAccount.getAmount().subtract(tax_de);
|
||||
item.setNotax_de(String.valueOf(notax_de));
|
||||
item.setLocal_tax_de(String.valueOf(notax_de));
|
||||
item.setTax_de(String.valueOf(tax_de));
|
||||
}
|
||||
item.setPrice(String.valueOf(reconciliationAccount.getAmount()));
|
||||
item.setTaxprice(String.valueOf(reconciliationAccount.getAmount()));
|
||||
item.setDef75("T10");
|
||||
item.setInvoiceno(invoiceNumber);
|
||||
ysitemList.add(item);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
throw new ServiceException("未查询到账单的费用科目信息, 请核对");
|
||||
}
|
||||
|
||||
Ysbodys bodys=new Ysbodys();
|
||||
bodys.setItem(ysitemList);
|
||||
Ysbillhead billhead=new Ysbillhead();
|
||||
billhead.setPk_group("CNK");
|
||||
billhead.setPk_org("NG04");
|
||||
billhead.setSett_org("NG04");
|
||||
billhead.setCreationtime(dateString);
|
||||
billhead.setCreator(makerCodeNc);
|
||||
billhead.setPk_billtype("F0");
|
||||
billhead.setPk_tradetype("D0");
|
||||
billhead.setBillclass("ys");
|
||||
billhead.setIsinit("N");
|
||||
date=reconciliation.getCreateTime();
|
||||
dateString = sdf.format(date);
|
||||
billhead.setBilldate(dateString);
|
||||
billhead.setSyscode("0");
|
||||
billhead.setBillno("");
|
||||
billhead.setDef59(list.get(0).getContractNo());
|
||||
billhead.setSrc_syscode("0");
|
||||
billhead.setBillstatus("0");
|
||||
billhead.setBillmaker(makerCodeNc);
|
||||
billhead.setPk_busitype("");
|
||||
billhead.setBillyear(sdf1.format(date));
|
||||
billhead.setBillperiod(sdf2.format(date));
|
||||
billhead.setEffectstatus("0");
|
||||
billhead.setDef28("nqyw");
|
||||
billhead.setDef29(reconciliation.getInnerNumber());
|
||||
billhead.setBodys(bodys);
|
||||
Ysbill bill=new Ysbill();
|
||||
bill.setId("ys"+String.valueOf(reconciliation.getReconciliationId()));
|
||||
bill.setBillhead(billhead);
|
||||
Ysufinterface ufinterface=new Ysufinterface();
|
||||
ufinterface.setAccount("NKNC");
|
||||
ufinterface.setBilltype("F0");
|
||||
ufinterface.setBusinessunitcode("");
|
||||
ufinterface.setFilename("");
|
||||
ufinterface.setIsexchange("Y");
|
||||
ufinterface.setOrgcode("NG04");
|
||||
ufinterface.setReceiver("NG04");
|
||||
ufinterface.setReplace("Y");
|
||||
ufinterface.setRoottag("");
|
||||
ufinterface.setSender("nqyw");
|
||||
ufinterface.setBill(bill);
|
||||
JAXBContext jaxbContext = JAXBContext.newInstance(Ysufinterface.class);
|
||||
Marshaller marshaller = jaxbContext.createMarshaller();
|
||||
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
|
||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // 格式化输出,可选
|
||||
StringWriter sw = new StringWriter();
|
||||
marshaller.marshal(ufinterface, sw);
|
||||
String xmlString = sw.toString(); // 这是要发送的XML字符串
|
||||
System.out.println(xmlString);
|
||||
NcLog ncLog=new NcLog();
|
||||
ncLog.setOrderId(reconciliation.getReconciliationId());
|
||||
ncLog.setRequestBody(xmlString);
|
||||
ncLog.setResponeBody("");
|
||||
ncLog.setType(0L);
|
||||
ncLog.setOrganizationId(reconciliation.getOrganizationId());
|
||||
ncLog.setOrganizationName(reconciliation.getOrganizationName());
|
||||
ncLog.setTopOrganizationId(reconciliation.getTopOrganizationId());
|
||||
ncLogMapper.insert(ncLog);
|
||||
reconciliation.setSynchronousStatus(1);
|
||||
reconciliation.setSynchronousTime(new Date());
|
||||
reconciliation.setNcId("ys"+String.valueOf(reconciliation.getReconciliationId()));
|
||||
//reconciliationMapper.updateById(reconciliation);
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
StringEntity postingString = new StringEntity(xmlString, "UTF-8");
|
||||
httpPost.setEntity(postingString);
|
||||
httpPost.setHeader("Content-type", "application/xml");
|
||||
try {
|
||||
CloseableHttpResponse response = httpClient.execute(httpPost);
|
||||
String responseString = EntityUtils.toString(response.getEntity());
|
||||
System.out.println(responseString);
|
||||
ncLog.setResponeBody(responseString);
|
||||
// 创建DOM解析器
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
||||
Document document = builder.parse(new InputSource(new StringReader(responseString)));
|
||||
|
||||
// 获取根元素
|
||||
Element root = document.getDocumentElement();
|
||||
|
||||
// 获取ufinterface元素的属性
|
||||
String billtype = root.getAttribute("billtype");
|
||||
String filename = root.getAttribute("filename");
|
||||
System.out.println("billtype: " + billtype);
|
||||
System.out.println("filename: " + filename);
|
||||
|
||||
// 获取sendresult节点
|
||||
NodeList sendResultList = root.getElementsByTagName("sendresult");
|
||||
if (sendResultList.getLength() > 0) {
|
||||
Element sendResult = (Element) sendResultList.item(0);
|
||||
|
||||
// 获取子元素内容
|
||||
String bdocid = sendResult.getElementsByTagName("bdocid").item(0).getTextContent();
|
||||
String resultcode = sendResult.getElementsByTagName("resultcode").item(0).getTextContent();
|
||||
String content = sendResult.getElementsByTagName("content").item(0).getTextContent();
|
||||
|
||||
System.out.println("bdocid: " + bdocid);
|
||||
System.out.println("resultcode: " + resultcode);
|
||||
System.out.println("content: " + content);
|
||||
if(resultcode.equals("1")){
|
||||
reconciliation.setSynchronousStatus(1);
|
||||
}else{
|
||||
reconciliation.setSynchronousStatus(2);
|
||||
}
|
||||
}
|
||||
ncLogMapper.updateById(ncLog);
|
||||
reconciliationMapper.updateById(reconciliation);
|
||||
response.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
httpClient.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean b = synchronousNc_TY(businessDocumentDetaliId);
|
||||
}
|
||||
|
||||
|
||||
} catch (JAXBException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -865,6 +641,231 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean synchronousNc_TY(String businessDocumentDetaliId) {
|
||||
Reconciliation reconciliation=reconciliationMapper.selectById(businessDocumentDetaliId);
|
||||
if(reconciliation.getSynchronousStatus()==1){
|
||||
throw new ServiceException("该记录已同步,不需要再次同步");
|
||||
}
|
||||
try {
|
||||
Date date = reconciliation.getCreateTime();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy");
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("MM");
|
||||
String dateString = sdf.format(date);
|
||||
String invoiceId = reconciliation.getInvoiceId();
|
||||
ReconciliationDTO makeQuery=new ReconciliationDTO();
|
||||
makeQuery.setInnerNumber(invoiceId);
|
||||
R<List<TmsMakeOutInvoice>> makeList=wlhyServiceFeign.selectMakeOutInvoiceListByReconciliation(makeQuery);
|
||||
if (makeList.getCode()==200){
|
||||
for (TmsMakeOutInvoice make : makeList.getData()) {
|
||||
List<Ysitem> ysitemList=new ArrayList<Ysitem>();
|
||||
ReconciliationDTO reconciliationDTO=new ReconciliationDTO();
|
||||
reconciliationDTO.setInnerNumber(reconciliation.getInnerNumber());
|
||||
R<List<TmsOrder>> result=wlhyServiceFeign.getOrderListByReconciliation(reconciliationDTO);
|
||||
TmsOrder order = null;
|
||||
if (result.getCode()==200){
|
||||
order = result.getData()!=null && result.getData().size()>0?result.getData().get(0):null;
|
||||
}
|
||||
if (order==null){
|
||||
throw new ServiceException("未找到对应订单信息");
|
||||
}
|
||||
String url = "";
|
||||
SysDepartInterfaceInfoDTO query= new SysDepartInterfaceInfoDTO();
|
||||
query.setOrganizationId(reconciliation.getOrganizationId());
|
||||
query.setOrganizationName(reconciliation.getOrganizationName());
|
||||
query.setInterfaceType("nc");
|
||||
List<SysDepartInterfaceInfoPo> urlList = thirdPartyServiceFeign.queryList(query);
|
||||
if (urlList != null && urlList.size() > 0) {
|
||||
url = urlList.get(0).getInterfaceTypeValue();
|
||||
} else {
|
||||
throw new ServiceException("未找到该组织的推送地址!");
|
||||
}
|
||||
|
||||
String makerCodeNc=order.getMakerCodeNc();
|
||||
String salesmanCodeNc=order.getSalesmanCodeNc();
|
||||
//String customerCodeNc=order.getCustomerCodeNc();
|
||||
String appointShipper=make.getActualInvoiceCustomerName();
|
||||
String actualInvoiceCustomerId = make.getActualInvoiceCustomerId();
|
||||
String customerCodeNc = reconciliationMapper.getCustomerCodeNc(actualInvoiceCustomerId);
|
||||
String settlementCurrency=order.getSettlementCurrency();
|
||||
String salesmanId = order.getSalesmanId();
|
||||
String documentPreparerNcCode = reconciliationMapper.getDocumentPreparerNcCode(salesmanId);
|
||||
makerCodeNc= documentPreparerNcCode;
|
||||
String settlementCurrencyNcCode = reconciliationMapper.getSettlementCurrencyNcCode(settlementCurrency);
|
||||
String invoiceNumber=make.getInvoiceNumber();
|
||||
R<List<TmsMakeOutInvoiceItem>> itemR = wlhyServiceFeign.selectMakeOutInvoiceItemList(make);
|
||||
if (itemR.getCode()==200) {
|
||||
List<TmsMakeOutInvoiceItem> data = itemR.getData();
|
||||
for (TmsMakeOutInvoiceItem item1 : data) {
|
||||
if(item1.getInvoiceValue().compareTo(BigDecimal.ZERO)>0){
|
||||
Ysitem item=new Ysitem();
|
||||
item.setSo_deptid("NG0408");
|
||||
item.setPk_deptid("NG0408");
|
||||
//业务员nc
|
||||
item.setPk_psndoc(salesmanCodeNc);
|
||||
//客户nc
|
||||
item.setCustomer(customerCodeNc);
|
||||
item.setObjtype("0");
|
||||
item.setDirection("1");
|
||||
String invoiceItem = item1.getInvoiceItem();
|
||||
List<String> names = new ArrayList<>();
|
||||
if (invoiceItem != null && !invoiceItem.isEmpty()) {
|
||||
String[] items = invoiceItem.split(",");
|
||||
for (String s : items) {
|
||||
String invoiceItemName1 = reconciliationMapper.getInvoiceItemName(s);
|
||||
names.add(invoiceItemName1);
|
||||
}
|
||||
}
|
||||
String invoiceItemName = String.join(",", names);
|
||||
item.setScomment("业务部:应收"+appointShipper+invoiceItemName+invoiceNumber);
|
||||
// item.setPk_currtype("CNY");
|
||||
item.setPk_currtype(settlementCurrencyNcCode);
|
||||
item.setPurchaseorder("");
|
||||
item.setTaxrate("0");
|
||||
item.setQuantity_de("0");
|
||||
item.setMoney_de(String.valueOf(item1.getInvoiceValue()));
|
||||
item.setMoney_bal(String.valueOf(item1.getInvoiceValue()));
|
||||
BigDecimal tax_de=item1.getTaxAmount();
|
||||
BigDecimal notax_de=item1.getTaxFreeFee();
|
||||
item.setNotax_de(String.valueOf(notax_de));
|
||||
item.setLocal_tax_de(String.valueOf(notax_de));
|
||||
item.setTax_de(String.valueOf(tax_de));
|
||||
item.setPrice(String.valueOf(item1.getInvoiceValue()));
|
||||
item.setTaxprice(String.valueOf(item1.getInvoiceValue()));
|
||||
item.setDef75("T10");
|
||||
item.setInvoiceno(invoiceNumber);
|
||||
ysitemList.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Ysbodys bodys=new Ysbodys();
|
||||
bodys.setItem(ysitemList);
|
||||
Ysbillhead billhead=new Ysbillhead();
|
||||
billhead.setPk_group("CNK");
|
||||
billhead.setPk_org("NG04");
|
||||
billhead.setSett_org("NG04");
|
||||
billhead.setCreationtime(dateString);
|
||||
billhead.setCreator(makerCodeNc);
|
||||
billhead.setPk_billtype("F0");
|
||||
billhead.setPk_tradetype("D0");
|
||||
billhead.setBillclass("ys");
|
||||
billhead.setIsinit("N");
|
||||
date=reconciliation.getCreateTime();
|
||||
dateString = sdf.format(date);
|
||||
billhead.setBilldate(dateString);
|
||||
billhead.setSyscode("0");
|
||||
billhead.setBillno("");
|
||||
billhead.setDef59("");
|
||||
billhead.setSrc_syscode("0");
|
||||
billhead.setBillstatus("0");
|
||||
billhead.setBillmaker(makerCodeNc);
|
||||
billhead.setPk_busitype("");
|
||||
billhead.setBillyear(sdf1.format(date));
|
||||
billhead.setBillperiod(sdf2.format(date));
|
||||
billhead.setEffectstatus("0");
|
||||
billhead.setDef28("nqyw");
|
||||
billhead.setDef29(reconciliation.getInnerNumber());
|
||||
billhead.setBodys(bodys);
|
||||
Ysbill bill=new Ysbill();
|
||||
bill.setId("ys"+String.valueOf(reconciliation.getReconciliationId()));
|
||||
bill.setBillhead(billhead);
|
||||
Ysufinterface ufinterface=new Ysufinterface();
|
||||
ufinterface.setAccount("NKNC");
|
||||
ufinterface.setBilltype("F0");
|
||||
ufinterface.setBusinessunitcode("");
|
||||
ufinterface.setFilename("");
|
||||
ufinterface.setIsexchange("Y");
|
||||
ufinterface.setOrgcode("NG04");
|
||||
ufinterface.setReceiver("NG04");
|
||||
ufinterface.setReplace("Y");
|
||||
ufinterface.setRoottag("");
|
||||
ufinterface.setSender("nqyw");
|
||||
ufinterface.setBill(bill);
|
||||
JAXBContext jaxbContext = JAXBContext.newInstance(Ysufinterface.class);
|
||||
Marshaller marshaller = jaxbContext.createMarshaller();
|
||||
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
|
||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // 格式化输出,可选
|
||||
StringWriter sw = new StringWriter();
|
||||
marshaller.marshal(ufinterface, sw);
|
||||
String xmlString = sw.toString(); // 这是要发送的XML字符串
|
||||
System.out.println(xmlString);
|
||||
NcLog ncLog=new NcLog();
|
||||
ncLog.setOrderId(reconciliation.getReconciliationId());
|
||||
ncLog.setRequestBody(xmlString);
|
||||
ncLog.setResponeBody("");
|
||||
ncLog.setType(0L);
|
||||
ncLog.setOrganizationId(reconciliation.getOrganizationId());
|
||||
ncLog.setOrganizationName(reconciliation.getOrganizationName());
|
||||
ncLog.setTopOrganizationId(reconciliation.getTopOrganizationId());
|
||||
ncLogMapper.insert(ncLog);
|
||||
reconciliation.setSynchronousStatus(1);
|
||||
reconciliation.setSynchronousTime(new Date());
|
||||
reconciliation.setNcId("ys"+String.valueOf(reconciliation.getReconciliationId()));
|
||||
//reconciliationMapper.updateById(reconciliation);
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
StringEntity postingString = new StringEntity(xmlString, "UTF-8");
|
||||
httpPost.setEntity(postingString);
|
||||
httpPost.setHeader("Content-type", "application/xml");
|
||||
try {
|
||||
CloseableHttpResponse response = httpClient.execute(httpPost);
|
||||
String responseString = EntityUtils.toString(response.getEntity());
|
||||
System.out.println(responseString);
|
||||
ncLog.setResponeBody(responseString);
|
||||
// 创建DOM解析器
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder builder = factory.newDocumentBuilder();
|
||||
Document document = builder.parse(new InputSource(new StringReader(responseString)));
|
||||
|
||||
// 获取根元素
|
||||
Element root = document.getDocumentElement();
|
||||
|
||||
// 获取ufinterface元素的属性
|
||||
String billtype = root.getAttribute("billtype");
|
||||
String filename = root.getAttribute("filename");
|
||||
System.out.println("billtype: " + billtype);
|
||||
System.out.println("filename: " + filename);
|
||||
|
||||
// 获取sendresult节点
|
||||
NodeList sendResultList = root.getElementsByTagName("sendresult");
|
||||
if (sendResultList.getLength() > 0) {
|
||||
Element sendResult = (Element) sendResultList.item(0);
|
||||
|
||||
// 获取子元素内容
|
||||
String bdocid = sendResult.getElementsByTagName("bdocid").item(0).getTextContent();
|
||||
String resultcode = sendResult.getElementsByTagName("resultcode").item(0).getTextContent();
|
||||
String content = sendResult.getElementsByTagName("content").item(0).getTextContent();
|
||||
|
||||
System.out.println("bdocid: " + bdocid);
|
||||
System.out.println("resultcode: " + resultcode);
|
||||
System.out.println("content: " + content);
|
||||
if(resultcode.equals("1")){
|
||||
reconciliation.setSynchronousStatus(1);
|
||||
}else{
|
||||
reconciliation.setSynchronousStatus(2);
|
||||
}
|
||||
}
|
||||
ncLogMapper.updateById(ncLog);
|
||||
reconciliationMapper.updateById(reconciliation);
|
||||
response.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
httpClient.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (JAXBException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean synchronousNcSK(String businessDocumentDetaliIds) {
|
||||
String [] businessDocumentDetaliIdArray=businessDocumentDetaliIds.split(",");
|
||||
@@ -1062,7 +1063,43 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
}
|
||||
}
|
||||
}else if(reconciliation.getOrganizationName().contains("通宇")){
|
||||
boolean b = synchronousNcSK_TY(businessDocumentDetaliId);
|
||||
}
|
||||
} catch (JAXBException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean synchronousNcSK_TY(String businessDocumentDetaliId) {
|
||||
Reconciliation reconciliation=reconciliationMapper.selectById(businessDocumentDetaliId);
|
||||
if(reconciliation.getSynchronousStatus()==1){
|
||||
throw new ServiceException("该记录已同步,不需要再次同步");
|
||||
}
|
||||
try {
|
||||
Date date = reconciliation.getCreateTime();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy");
|
||||
SimpleDateFormat sdf2 = new SimpleDateFormat("MM");
|
||||
String dateString = sdf.format(date);
|
||||
String invoiceId = reconciliation.getInvoiceId();
|
||||
ReconciliationDTO makeQuery=new ReconciliationDTO();
|
||||
makeQuery.setInnerNumber(invoiceId);
|
||||
R<List<TmsMakeOutInvoice>> makeList=wlhyServiceFeign.selectMakeOutInvoiceListByReconciliation(makeQuery);
|
||||
if (makeList.getCode()==200){
|
||||
for (TmsMakeOutInvoice make : makeList.getData()) {
|
||||
List<SKitem> ysitemList=new ArrayList<SKitem>();
|
||||
ReconciliationDTO reconciliationDTO=new ReconciliationDTO();
|
||||
reconciliationDTO.setInnerNumber(reconciliation.getInnerNumber());
|
||||
R<List<TmsOrder>> result=wlhyServiceFeign.getOrderListByReconciliation(reconciliationDTO);
|
||||
TmsOrder order = null;
|
||||
if (result.getCode()==200){
|
||||
order = result.getData()!=null && result.getData().size()>0?result.getData().get(0):null;
|
||||
}
|
||||
if (order==null){
|
||||
throw new ServiceException("未找到对应订单信息");
|
||||
}
|
||||
String url = "";
|
||||
SysDepartInterfaceInfoDTO query= new SysDepartInterfaceInfoDTO();
|
||||
query.setOrganizationId(reconciliation.getOrganizationId());
|
||||
@@ -1074,14 +1111,26 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
} else {
|
||||
throw new ServiceException("未找到该组织的推送地址!");
|
||||
}
|
||||
if(result.getCode()==200){
|
||||
List<TmsOrder> list=result.getData();
|
||||
R<List<TmsMakeOutInvoiceItem>> itemR = wlhyServiceFeign.selectMakeOutInvoiceItemList(make);
|
||||
String makerCodeNc = "";
|
||||
if(itemR.getCode()==200){
|
||||
List<TmsMakeOutInvoiceItem> list=itemR.getData();
|
||||
if(ObjectUtil.isNotNull(list)){
|
||||
String salesmanCodeNc=list.get(0).getSalesmanCodeNc();
|
||||
String customerCodeNc=list.get(0).getCustomerCodeNc();
|
||||
String appointShipper=list.get(0).getAppointShipper();
|
||||
String settlementCurrency=list.get(0).getSettlementCurrency();
|
||||
makerCodeNc="luoyx";
|
||||
// 汇总 list 中 invoiceValue 的总值
|
||||
BigDecimal totalInvoiceValue = list.stream()
|
||||
.map(TmsMakeOutInvoiceItem::getInvoiceValue)
|
||||
.filter(java.util.Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
String salesmanCodeNc=order.getSalesmanCodeNc();
|
||||
String salesmanId = order.getSalesmanId();
|
||||
//String customerCodeNc=order.getCustomerCodeNc();
|
||||
String appointShipper=make.getActualInvoiceCustomerName();
|
||||
String actualInvoiceCustomerId = make.getActualInvoiceCustomerId();
|
||||
String customerCodeNc = reconciliationMapper.getCustomerCodeNc(actualInvoiceCustomerId);
|
||||
String documentPreparerNcCode = reconciliationMapper.getDocumentPreparerNcCode(salesmanId);
|
||||
String settlementCurrency=order.getSettlementCurrency();
|
||||
String settlementCurrencyNcCode = reconciliationMapper.getSettlementCurrencyNcCode(settlementCurrency);
|
||||
makerCodeNc=documentPreparerNcCode;
|
||||
SKitem item=new SKitem();
|
||||
item.setSo_deptid("NG0408");
|
||||
item.setPk_deptid("NG0408");
|
||||
@@ -1092,42 +1141,10 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
item.setObjtype("0");
|
||||
item.setDirection("1");
|
||||
item.setScomment("业务部:"+appointShipper+"物流费");
|
||||
item.setPk_currtype(settlementCurrency);
|
||||
item.setMoney_cr(String.valueOf(reconciliation.getCollectionAmount()));
|
||||
item.setMoney_bal(String.valueOf(reconciliation.getCollectionAmount()));
|
||||
item.setPk_currtype(settlementCurrencyNcCode);
|
||||
item.setMoney_cr(String.valueOf(totalInvoiceValue));
|
||||
item.setMoney_bal(String.valueOf(totalInvoiceValue));
|
||||
ysitemList.add(item);
|
||||
|
||||
/* for(TmsOrder tmsOrder:list){
|
||||
|
||||
makerCodeNc=tmsOrder.getMakerCodeNc();
|
||||
|
||||
SKitem item=new SKitem();
|
||||
item.setSo_deptid("NG0408");
|
||||
item.setPk_deptid("NG0408");
|
||||
item.setCheckdirection("ar");
|
||||
item.setPk_psndoc(tmsOrder.getSalesmanCodeNc());
|
||||
item.setCustomer(tmsOrder.getCustomerCodeNc());
|
||||
item.setPurchaseorder(tmsOrder.getGoodsNumber());
|
||||
item.setObjtype("0");
|
||||
item.setDirection("1");
|
||||
item.setScomment("业务部:"+tmsOrder.getAppointShipper()+"物流费");
|
||||
item.setPk_currtype(tmsOrder.getSettlementCurrency());
|
||||
item.setMoney_cr(String.valueOf(tmsOrder.getCollectedFreight()));
|
||||
item.setMoney_bal(String.valueOf(tmsOrder.getCollectedFreight()));
|
||||
ysitemList.add(item);
|
||||
*//* AjaxResult ajaxResult=userServiceFeign.getShipperSummaryData(Long.valueOf(reconciliation.getSettlementPartyId()));
|
||||
if(ajaxResult.get("code").toString().equals("200")){
|
||||
Object userShipperPo= ajaxResult.get("data");
|
||||
JSONObject jsonObject = new JSONObject((Map) userShipperPo);
|
||||
if(org.apache.commons.lang.StringUtils.isBlank(jsonObject.get("customerNcCode").toString())){
|
||||
throw new ServiceException("请先维护客户编码");
|
||||
}
|
||||
|
||||
|
||||
}*//*
|
||||
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
SKbodys bodys=new SKbodys();
|
||||
@@ -1248,10 +1265,11 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} catch (JAXBException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} catch (JAXBException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
+3
@@ -2,8 +2,10 @@ package com.linke.finance.domain.reconciliation.repository.po;
|
||||
|
||||
import com.linke.finance.domain.businessDocument.entity.BusinessDocument;
|
||||
import com.linke.finance.domain.reconciliationAccount.entity.ReconciliationAccount;
|
||||
import com.linke.finance.domain.reconciliationItem.entity.ReconciliationItem;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationItemDTO;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
@@ -267,4 +269,5 @@ public class ReconciliationPO extends BaseVOEntity{
|
||||
private BigDecimal taxFreeFee;
|
||||
@ApiModelProperty(value = "税额")
|
||||
private BigDecimal taxAmount;
|
||||
private List<ReconciliationItem> reconciliationItemDTOList;
|
||||
}
|
||||
+5
@@ -3,6 +3,7 @@ package com.linke.finance.domain.reconciliation.repository.todo;
|
||||
import com.linke.finance.domain.reconciliation.entity.ReconciliationOrderDetail;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationAccountDTO;
|
||||
import com.mhd.common.core.domain.dto.ReconciliationItemDTO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
@@ -297,4 +298,8 @@ public class ReconciliationDO extends BaseVOEntity{
|
||||
private BigDecimal taxFreeFee;
|
||||
@ApiModelProperty(value = "税额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
private List<ReconciliationItemDTO> reconciliationItemDTOList;
|
||||
@ApiModelProperty("结算币种")
|
||||
private String settlementCurrency;
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package com.linke.finance.domain.reconciliationItem.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import java.math.BigDecimal;
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
|
||||
/**
|
||||
* 对账单对象 reconciliation
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-01-23
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ReconciliationItem extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty("id")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
@ApiModelProperty("对账单表id")
|
||||
private Long reconciliationId;
|
||||
/**发票金额*/
|
||||
@ApiModelProperty(value = "发票金额")
|
||||
@Excel(name = "发票金额", width = 15)
|
||||
private BigDecimal invoiceValue;
|
||||
/**发票备注*/
|
||||
@ApiModelProperty(value = "发票备注")
|
||||
@Excel(name = "发票备注", width = 15)
|
||||
private String remark;
|
||||
@ApiModelProperty(value = "开票项目")
|
||||
private String invoiceItem;
|
||||
@ApiModelProperty(value = "开票项目名称")
|
||||
private String invoiceItemName;
|
||||
@ApiModelProperty(value = "实际开票客户id")
|
||||
private String actualInvoiceCustomerId;
|
||||
@ApiModelProperty(value = "实际开票客户名称")
|
||||
private String actualInvoiceCustomerName;
|
||||
@ApiModelProperty(value = "无税费用")
|
||||
private BigDecimal taxFreeFee;
|
||||
@ApiModelProperty(value = "税额")
|
||||
private BigDecimal taxAmount;
|
||||
@ApiModelProperty(value = "税率")
|
||||
private Double taxRate;
|
||||
@ApiModelProperty(value = "费用类别")
|
||||
private String feeType;
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package com.linke.finance.domain.reconciliationItem.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.linke.finance.domain.reconciliationItem.entity.ReconciliationItem;
|
||||
|
||||
public interface ReconciliationItemMapper extends BaseMapper<ReconciliationItem> {
|
||||
}
|
||||
@@ -37,6 +37,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="isInvoice" column="is_invoice" />
|
||||
<result property="invoiceMakeTime" column="invoice_make_time" />
|
||||
<result property="applyNumber" column="apply_number" />
|
||||
<result property="taxAmount" column="tax_amount" />
|
||||
<result property="taxFreeFee" column="tax_free_fee" />
|
||||
<result property="accountInformation" column="account_information" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
@@ -359,4 +362,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
#{taxFreeFee}
|
||||
)
|
||||
</insert>
|
||||
<select id="getInvoiceItemName" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
select SUBJECT_NAME from "NGWL_TEST_SYSTEM".EXPENSE_ACCOUNT where status = 1 and SUBJECT_CODE = #{invoiceItemId} limit 1
|
||||
</select>
|
||||
|
||||
<select id="getCustomerCodeNc" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
SELECT CUSTOMER_NC_CODE FROM NGWL_TEST_USER."USER_SHIPPER" where del_flag = 1 and SHIPPER_ID = #{actualInvoiceCustomerId} limit 1
|
||||
</select>
|
||||
|
||||
<select id="getDocumentPreparerNcCode" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
SELECT DOCUMENT_PREPARER_NC_CODE FROM NGWL_TEST_USER."USER" where del_flag = 1 and user_id = #{salesmanId} limit 1
|
||||
</select>
|
||||
|
||||
<select id="getSettlementCurrencyNcCode" parameterType="java.lang.String" resultType="java.lang.String">
|
||||
SELECT NC_SYSTEM_CODE FROM NGWL_TEST_WLHY."TMS_SETTLEMENT_EXCHANGE_RATE" where IS_DELETE = '0' and ENGLISH_NAME = #{settlementCurrency} limit 1
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.linke.finance.domain.reconciliationItem.repository.mapper.ReconciliationItemMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user