diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbill.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbill.java new file mode 100644 index 000000000..ab69b16ac --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbill.java @@ -0,0 +1,18 @@ +package com.mhd.common.core.domain.dto.nc; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.xml.bind.annotation.*; + +@Data +@XmlRootElement(name = "bill") +@XmlAccessorType(XmlAccessType.FIELD) // 使用字段访问策略 +@XmlType(propOrder = {"billhead"}) +public class Ysbill { + @XmlAttribute(name = "id") + private String id; + + @XmlElement(name = "billhead") + private Ysbillhead billhead; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbillhead.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbillhead.java new file mode 100644 index 000000000..544dd24a0 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbillhead.java @@ -0,0 +1,86 @@ +package com.mhd.common.core.domain.dto.nc; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.xml.bind.annotation.*; + +@Data +@XmlRootElement(name = "billhead") +@XmlAccessorType(XmlAccessType.FIELD) // 使用字段访问策略 +@XmlType(propOrder = {"pk_group","pk_org","sett_org","creationtime","creator","pk_billtype","pk_tradetype","billyear" +,"billclass","isinit","syscode","billdate","billno","src_syscode","billstatus","billmaker","def28","def29","def59","pk_busitype","billperiod","effectstatus","bodys"}) +public class Ysbillhead { + @ApiModelProperty( "") + private String pk_group; + + @ApiModelProperty( "") + private String pk_org; + + @ApiModelProperty( "") + private String sett_org; + + + @ApiModelProperty( "") + private String creationtime; + + @ApiModelProperty( "") + private String creator; + + @ApiModelProperty( "") + private String pk_billtype; + + @ApiModelProperty( "") + private String pk_tradetype; + + @ApiModelProperty( "") + private String billclass; + + @ApiModelProperty( "") + private String isinit; + + + @ApiModelProperty( "") + private String syscode; + + @ApiModelProperty( "") + private String billdate; + + @ApiModelProperty( "") + private String billno; + + @ApiModelProperty( "") + private String src_syscode; + + @ApiModelProperty( "") + private String billstatus; + + + @ApiModelProperty( "") + private String billmaker; + + @ApiModelProperty( "") + private String def28; + + @ApiModelProperty( "") + private String def29; + + @ApiModelProperty( "") + private String def59; + + + @ApiModelProperty( "") + private String pk_busitype; + + @ApiModelProperty( "") + private String billyear; + + @ApiModelProperty( "") + private String billperiod; + + @ApiModelProperty( "") + private String effectstatus; + + @XmlElement(name = "bodys") + private Ysbodys bodys; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbodys.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbodys.java new file mode 100644 index 000000000..9addaa057 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysbodys.java @@ -0,0 +1,15 @@ +package com.mhd.common.core.domain.dto.nc; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.xml.bind.annotation.*; + +@Data +@XmlRootElement(name = "bodys") +@XmlAccessorType(XmlAccessType.FIELD) // 使用字段访问策略 +@XmlType(propOrder = {"item"}) +public class Ysbodys { + @XmlElement(name = "item") + private Ysitem item; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysitem.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysitem.java new file mode 100644 index 000000000..e26a3bda0 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysitem.java @@ -0,0 +1,85 @@ +package com.mhd.common.core.domain.dto.nc; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; + +@Data +@XmlRootElement(name = "item") +public class Ysitem { + @ApiModelProperty( "") + private String pk_deptid; + @ApiModelProperty( "") + private String so_deptid; + + @ApiModelProperty( "") + private String pk_psndoc; + + @ApiModelProperty( "") + private String customer; + + + @ApiModelProperty( "") + private String objtype; + + @ApiModelProperty( "") + private String direction; + + @ApiModelProperty( "") + private String scomment; + + @ApiModelProperty( "") + private String pk_currtype; + + @ApiModelProperty( "") + private String taxrate; + + @ApiModelProperty( "") + private String quantity_de; + + @ApiModelProperty( "") + private String money_de; + + + @ApiModelProperty( "") + private String money_bal; + + @ApiModelProperty( "") + private String notax_de; + + @ApiModelProperty( "") + private String tax_de; + + @ApiModelProperty( "") + private String local_tax_de; + + @ApiModelProperty( "") + private String price; + + @ApiModelProperty( "") + private String taxprice; + + @ApiModelProperty( "") + private String invoiceno; + + @ApiModelProperty( "") + private String recaccount; + + + @ApiModelProperty( "") + private String prepay; + + @ApiModelProperty( "") + private String subjcode; + + @ApiModelProperty( "") + private String def65; + + @ApiModelProperty( "") + private String def75; + + +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysufinterface.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysufinterface.java new file mode 100644 index 000000000..c719ec283 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/nc/Ysufinterface.java @@ -0,0 +1,48 @@ +package com.mhd.common.core.domain.dto.nc; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.xml.bind.annotation.*; + +@Data +@XmlRootElement(name = "ufinterface") +@XmlAccessorType(XmlAccessType.FIELD) // 使用字段访问策略 +@XmlType(propOrder = {"bill"}) +public class Ysufinterface { + @XmlAttribute(name = "account") + + private String account; + @XmlAttribute(name = "billtype") + + private String billtype; + @XmlAttribute(name = "businessunitcode") + + private String businessunitcode; + @XmlAttribute(name = "filename") + + private String filename; + @XmlAttribute(name = "groupcode") + + private String groupcode; + @XmlAttribute(name = "isexchange") + + private String isexchange; + @XmlAttribute(name = "orgcode") + + private String orgcode; + @XmlAttribute(name = "receiver") + + private String receiver; + @XmlAttribute(name = "replace") + + private String replace; + @XmlAttribute(name = "roottag") + + private String roottag; + @XmlAttribute(name = "sender") + + private String sender; + @XmlElement(name = "bill") + private com.mhd.common.core.domain.dto.nc.Ysbill bill; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java index 2a8aa00be..740d08242 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java @@ -214,4 +214,10 @@ public class UserPo { @ApiModelProperty(name = "有效期管理 0-否 1-是") private Integer validityPeriodManagement; + + @ApiModelProperty(name = "业务员nc编码") + private String salespersonNcCode; + + @ApiModelProperty(name = "制单员nc编码") + private String documentPreparerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java index f1c3a8680..bc5581aed 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java @@ -159,4 +159,10 @@ public class UserEntity extends BaseVOEntity { @ApiModelProperty(name = "有效期管理 0-否 1-是") private Integer validityPeriodManagement; + + @ApiModelProperty(name = "业务员nc编码") + private String salespersonNcCode; + + @ApiModelProperty(name = "制单员nc编码") + private String documentPreparerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java index 2686c8709..eeacaaadd 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java @@ -191,4 +191,7 @@ public class UserShipperEntity extends BaseVOEntity { private BigDecimal authorizedUsedAmount; private String remark; + + @ApiModelProperty(name = "客户nc编码") + private String customerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java index 43fed56e1..d25de5e24 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java @@ -254,4 +254,7 @@ public class UserShipperPo implements Serializable { @ApiModelProperty(value = "备注") private String remark; + + @ApiModelProperty(name = "客户nc编码") + private String customerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java index 27c48932d..6015ff20d 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java @@ -248,4 +248,10 @@ public class UserDO extends BaseVOEntity { @ApiModelProperty(name = "有效期管理 0-否 1-是") private Integer validityPeriodManagement; + + @ApiModelProperty(name = "业务员nc编码") + private String salespersonNcCode; + + @ApiModelProperty(name = "制单员nc编码") + private String documentPreparerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java index 05e48478a..5557c5a95 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java @@ -225,4 +225,7 @@ public class UserShipperDO extends UserDO { private Integer freightNode; private String remark; + + @ApiModelProperty(name = "客户nc编码") + private String customerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java index 35e973a0e..31b0bd748 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java @@ -235,4 +235,10 @@ public class UserDTO extends BaseVOEntity { @ApiModelProperty(name = "有效期管理 0-否 1-是") private Integer validityPeriodManagement; + + @ApiModelProperty(name = "业务员nc编码") + private String salespersonNcCode; + + @ApiModelProperty(name = "制单员nc编码") + private String documentPreparerNcCode; } diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java index 455c3e5e8..20b19ea1c 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java @@ -191,4 +191,7 @@ public class UserShipperDTO extends UserDTO { @ApiModelProperty(name = "备注信息") private String remark; + @ApiModelProperty(name = "客户nc编码") + private String customerNcCode; + } diff --git a/mhd_finance/pom.xml b/mhd_finance/pom.xml index b9135a0cc..6a3e54185 100644 --- a/mhd_finance/pom.xml +++ b/mhd_finance/pom.xml @@ -139,6 +139,18 @@ alibaba-dingtalk-service-sdk 2.0.0 + + + javax.xml.bind + jaxb-api + 2.3.1 + + + org.glassfish.jaxb + jaxb-runtime + 2.3.1 + + diff --git a/mhd_finance/src/main/java/com/linke/finance/Test.java b/mhd_finance/src/main/java/com/linke/finance/Test.java new file mode 100644 index 000000000..bdf5191fd --- /dev/null +++ b/mhd_finance/src/main/java/com/linke/finance/Test.java @@ -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 =""; + 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(); + } + + } +} diff --git a/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java b/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java index 73d1d838f..0976b0c2d 100644 --- a/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java +++ b/mhd_finance/src/main/java/com/linke/finance/application/server/reconciliation/ReconciliationApplicationService.java @@ -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); diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/facade/IReconciliationService.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/facade/IReconciliationService.java index 73825c436..853cbe6a6 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/facade/IReconciliationService.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/facade/IReconciliationService.java @@ -62,5 +62,7 @@ public interface IReconciliationService extends IService public StartProcessInstanceResponse workflowProcessInstances(String businessDocumentDetaliIds); + public boolean synchronousNc(String businessDocumentDetaliIds); + public int editIsInvoice(String innerNumber, Integer isInvoice, String invoiceId, String invoiceMakeTime,String applyNumber); } diff --git a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java index f783fea52..eee9d9d59 100644 --- a/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java +++ b/mhd_finance/src/main/java/com/linke/finance/domain/reconciliation/repository/persistence/ReconciliationImpl.java @@ -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