南歧nc65对接

This commit is contained in:
hjx
2025-12-02 20:48:25 +08:00
parent 5005f4291f
commit 73a2d7f1c9
21 changed files with 514 additions and 1 deletions
@@ -0,0 +1,88 @@
package com.linke.finance;
import com.mhd.common.core.domain.dto.nc.*;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = sdf.format(date);
Ysitem item=new Ysitem();
item.setSo_deptid("NG040104");
item.setPk_deptid("NG040104");
item.setPk_psndoc("111");
item.setCustomer("11111");
item.setObjtype("0");
item.setDirection("1");
item.setScomment("南歧");
item.setPk_currtype("HKD");
item.setTaxrate("1");
item.setQuantity_de("0");
item.setMoney_de("1000.00");
item.setMoney_bal("1000.00");
item.setNotax_de("按税率计算");
Ysbodys bodys=new Ysbodys();
bodys.setItem(item);
Ysbillhead billhead=new Ysbillhead();
billhead.setPk_group("CNK");
billhead.setPk_org("NG0401");
billhead.setSett_org("NG0401");
billhead.setCreationtime(dateString);
billhead.setCreator("xiangna");
billhead.setPk_billtype("F0");
billhead.setPk_tradetype("D0");
billhead.setBillclass("ys");
billhead.setIsinit("N");
billhead.setBilldate(dateString);
billhead.setSyscode("0");
billhead.setBillno("1111111");
billhead.setDef59("1111111");
billhead.setSrc_syscode("0");
billhead.setBillstatus("0");
billhead.setBillmaker("xiangna");
billhead.setPk_busitype("");
billhead.setBillyear("2025");
billhead.setBillperiod("12");
billhead.setEffectstatus("0");
billhead.setDef28("nqyw");
billhead.setDef29("11111111");
billhead.setBodys(bodys);
Ysbill bill=new Ysbill();
bill.setId("1111");
bill.setBillhead(billhead);
Ysufinterface ufinterface=new Ysufinterface();
ufinterface.setAccount("NKNC");
ufinterface.setBilltype("F0");
ufinterface.setBusinessunitcode("");
ufinterface.setFilename("");
ufinterface.setIsexchange("Y");
ufinterface.setOrgcode("NG0401");
ufinterface.setReceiver("NG0401");
ufinterface.setReplace("Y");
ufinterface.setRoottag("");
ufinterface.setSender("nqyw");
ufinterface.setBill(bill);
JAXBContext jaxbContext = null;
//String xmlString ="<ufinterface account=\"NKNC\" billtype=\"F0\" businessunitcode=\"\" filename=\"\" groupcode=\"CNK\" isexchange=\"Y\" orgcode=\"NG10\" receiver=\"NG10\" replace=\"Y\" roottag=\"\" sender=\"NKT_MY\">";
try {
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);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
@@ -610,6 +610,11 @@ public class ReconciliationApplicationService {
return reconciliationDomainService.workflowProcessInstances(businessDocumentDetaliIds);
}
public boolean synchronousNc(String businessDocumentDetaliIds)
{
return reconciliationDomainService.synchronousNc(businessDocumentDetaliIds);
}
public int editIsInvoice(String innerNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber)
{
return reconciliationDomainService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
@@ -62,5 +62,7 @@ public interface IReconciliationService extends IService<Reconciliation>
public StartProcessInstanceResponse workflowProcessInstances(String businessDocumentDetaliIds);
public boolean synchronousNc(String businessDocumentDetaliIds);
public int editIsInvoice(String innerNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber);
}
@@ -20,6 +20,7 @@ import com.linke.finance.domain.reconciliation.repository.facade.IReconciliation
import com.linke.finance.domain.reconciliation.repository.mapper.ReconciliationMapper;
import com.linke.finance.domain.reconciliation.repository.po.ReconciliationPO;
import com.linke.finance.domain.reconciliation.repository.todo.ReconciliationDO;
import com.mhd.common.core.domain.dto.nc.*;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.domain.thirdparty.dingtalk.DetailsDTO;
import com.mhd.common.core.domain.thirdparty.dingtalk.FormComponentValuesDTO;
@@ -35,6 +36,10 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.StringWriter;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -354,4 +359,92 @@ public class ReconciliationImpl extends ServiceImpl<ReconciliationMapper, Reconc
return 0;
}
@Override
public boolean synchronousNc(String businessDocumentDetaliIds) {
String [] businessDocumentDetaliIdArray=businessDocumentDetaliIds.split(",");
LoginUser loginUser= SecurityUtils.getLoginUser();
for (String businessDocumentDetaliId:businessDocumentDetaliIdArray){
Reconciliation reconciliation=reconciliationMapper.selectById(businessDocumentDetaliId);
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);
Ysitem item=new Ysitem();
item.setSo_deptid("NG040104");
item.setPk_deptid("NG040104");
item.setPk_psndoc("0035");
item.setCustomer("25849");
item.setObjtype("0");
item.setDirection("1");
item.setScomment("新永鸿工业气体有限公司");
item.setPk_currtype("HKD");
item.setTaxrate("0");
item.setQuantity_de("0");
item.setMoney_de(String.valueOf(reconciliation.getVerificationMoney()));
item.setMoney_bal(String.valueOf(reconciliation.getVerificationMoney()));
item.setNotax_de(String.valueOf(reconciliation.getVerificationMoney()));
item.setLocal_tax_de("0");
item.setTax_de("0");
item.setPrice(String.valueOf(reconciliation.getVerificationMoney()));
item.setTaxprice("0");
item.setDef75("T10");
item.setInvoiceno("");
Ysbodys bodys=new Ysbodys();
bodys.setItem(item);
Ysbillhead billhead=new Ysbillhead();
billhead.setPk_group("CNK");
billhead.setPk_org("NG0401");
billhead.setSett_org("NG0401");
billhead.setCreationtime(dateString);
billhead.setCreator("zhanghongming");
billhead.setPk_billtype("F0");
billhead.setPk_tradetype("D0");
billhead.setBillclass("ys");
billhead.setIsinit("N");
billhead.setBilldate(dateString);
billhead.setSyscode("0");
billhead.setBillno("");
billhead.setDef59("");
billhead.setSrc_syscode("0");
billhead.setBillstatus("0");
billhead.setBillmaker("zhanghongming");
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(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("NG0401");
ufinterface.setReceiver("NG0401");
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);
} catch (JAXBException e) {
e.printStackTrace();
}
}
return true;
}
}
@@ -157,6 +157,11 @@ public class ReconciliationDomainService {
return reconciliationService.workflowProcessInstances(businessDocumentDetaliIds);
}
public boolean synchronousNc(String businessDocumentDetaliIds)
{
return reconciliationService.synchronousNc(businessDocumentDetaliIds);
}
public int editIsInvoice(String innerNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber)
{
return reconciliationService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
@@ -263,4 +263,16 @@ public class ReconciliationApi extends BaseController{
reconciliationApplicationService.editIsInvoice(innerNumber,isInvoice,invoiceId,invoiceMakeTime,applyNumber);
return AjaxResult.success("发票开票修改对账单的开票状态成功");
}
/**
* 应收账单同步用户nc65
*/
@Log(title = "应收账单同步用户nc65", description = "应收账单同步用户nc65", businessType = BusinessType.OTHER)
@ApiOperation("应收账单同步用户nc65")
@GetMapping(value = "/synchronousNc")
public AjaxResult synchronousNc(@RequestParam(name="reconciliationId") String reconciliationId)
{
return AjaxResult.success(reconciliationApplicationService.synchronousNc(reconciliationId));
}
}