优化TOB业务的重新验证逻辑

This commit is contained in:
liuy 2024-08-31 15:31:23 +08:00
parent 91e6db987c
commit b943da698c
18 changed files with 4638 additions and 72 deletions

View File

@ -0,0 +1,15 @@
package com.hzya.frame.plugin.lets.dao;
import com.hzya.frame.plugin.lets.entity.SoSaleinvoiceBEntity;
import com.hzya.frame.basedao.dao.IBaseDao;
/**
* (SO_SALEINVOICE_B: table)表数据库访问层
*
* @author makejava
* @since 2024-08-31 14:44:18
*/
public interface ISoSaleinvoiceBDao extends IBaseDao<SoSaleinvoiceBEntity, String> {
}

View File

@ -0,0 +1,15 @@
package com.hzya.frame.plugin.lets.dao;
import com.hzya.frame.plugin.lets.entity.SoSaleinvoiceEntity;
import com.hzya.frame.basedao.dao.IBaseDao;
/**
* (SO_SALEINVOICE: table)表数据库访问层
*
* @author makejava
* @since 2024-08-31 14:43:53
*/
public interface ISoSaleinvoiceDao extends IBaseDao<SoSaleinvoiceEntity, String> {
}

View File

@ -0,0 +1,16 @@
package com.hzya.frame.plugin.lets.dao.impl;
import com.hzya.frame.plugin.lets.entity.SoSaleinvoiceBEntity;
import com.hzya.frame.plugin.lets.dao.ISoSaleinvoiceBDao;
import org.springframework.stereotype.Repository;
import com.hzya.frame.basedao.dao.MybatisGenericDao;
/**
* (SoSaleinvoiceB)表数据库访问层
*
* @author makejava
* @since 2024-08-31 14:44:18
*/
public class SoSaleinvoiceBDaoImpl extends MybatisGenericDao<SoSaleinvoiceBEntity, String> implements ISoSaleinvoiceBDao{
}

View File

@ -0,0 +1,16 @@
package com.hzya.frame.plugin.lets.dao.impl;
import com.hzya.frame.plugin.lets.entity.SoSaleinvoiceEntity;
import com.hzya.frame.plugin.lets.dao.ISoSaleinvoiceDao;
import org.springframework.stereotype.Repository;
import com.hzya.frame.basedao.dao.MybatisGenericDao;
/**
* (SoSaleinvoice)表数据库访问层
*
* @author makejava
* @since 2024-08-31 14:43:53
*/
public class SoSaleinvoiceDaoImpl extends MybatisGenericDao<SoSaleinvoiceEntity, String> implements ISoSaleinvoiceDao{
}

View File

@ -0,0 +1,879 @@
package com.hzya.frame.plugin.lets.entity;
import com.hzya.frame.web.entity.BaseEntity;
/**
* (SoSaleinvoiceB)实体类
*
* @author makejava
* @since 2024-08-31 14:44:18
*/
public class SoSaleinvoiceBEntity extends BaseEntity {
private String alrconfincomny;
private String alrconfinconum;
private String blargessflag;
private String cbatchid;
private String cbodywarehouseid;
private String ccalbodyid;
private String ccurrencytypeid;
private String ccustomerid;
private String cfreezeid;
private String cinvbasdocid;
private String cinventoryid;
private String cinvoiceBid;
private String coriginalbillcode;
private String costsubjid;
private String cpackunitid;
private String cprolineid;
private String cquoteunitid;
private String creceiptcorpid;
private String creceipttype;
private String crowno;
private String csaleid;
private String csourcebillbodyid;
private String csourcebillid;
private String ctManageid;
private String cunitid;
private String cupinvoicebillbodyid;
private String cupinvoicebillcode;
private String cupinvoicebillid;
private String cupreceipttype;
private String cupsourcebillbodyid;
private String cupsourcebillcode;
private String cupsourcebillid;
private String ddeliverdate;
private String dr;
private String fbatchstatus;
private String frownote;
private String frowstatus;
private String inccontimepoint;
private String inccontimepointname;
private String ncostmny;
private String ndiscountmny;
private String ndiscountrate;
private String nexchangeotobrate;
private String ninvoicediscountrate;
private String nitemdiscountrate;
private String nmny;
private String nnetprice;
private String nnumber;
private String noriginalcurdiscountmny;
private String noriginalcurmny;
private String noriginalcurnetprice;
private String noriginalcurprice;
private String noriginalcursummny;
private String noriginalcurtaxmny;
private String noriginalcurtaxnetprice;
private String noriginalcurtaxprice;
private String npacknumber;
private String nprice;
private String nqocurtaxnetpri;
private String nqunetprice;
private String nquoricurnetpri;
private String nquoricurpri;
private String nquoricurtaxpri;
private String nquotenumber;
private String nquoteunitrate;
private String nquprice;
private String nqutaxnetprice;
private String nqutaxprice;
private String nsimulatecostmny;
private String nsubcursummny;
private String nsubqunetpri;
private String nsubqupri;
private String nsubqutaxnetpri;
private String nsubqutaxpri;
private String nsubsummny;
private String nsubtaxnetprice;
private String nsummny;
private String ntaxmny;
private String ntaxnetprice;
private String ntaxprice;
private String ntaxrate;
private String ntotalapplydismny;
private String ntotalapplymny;
private String ntotalapplynumber;
private String ntotalapplysummny;
private String ntotalapplytaxmny;
private String ntotalhedgapplydismny;
private String ntotalhedgapplymny;
private String ntotalhedgapplynumber;
private String ntotalhedgapplysummny;
private String ntotalhedgapplytaxmny;
private String ntotaltoswymny;
private String ntotaltoswynumber;
private String pkCorp;
private String pkTaxclass;
private String ts;
public String getAlrconfincomny() {
return alrconfincomny;
}
public void setAlrconfincomny(String alrconfincomny) {
this.alrconfincomny = alrconfincomny;
}
public String getAlrconfinconum() {
return alrconfinconum;
}
public void setAlrconfinconum(String alrconfinconum) {
this.alrconfinconum = alrconfinconum;
}
public String getBlargessflag() {
return blargessflag;
}
public void setBlargessflag(String blargessflag) {
this.blargessflag = blargessflag;
}
public String getCbatchid() {
return cbatchid;
}
public void setCbatchid(String cbatchid) {
this.cbatchid = cbatchid;
}
public String getCbodywarehouseid() {
return cbodywarehouseid;
}
public void setCbodywarehouseid(String cbodywarehouseid) {
this.cbodywarehouseid = cbodywarehouseid;
}
public String getCcalbodyid() {
return ccalbodyid;
}
public void setCcalbodyid(String ccalbodyid) {
this.ccalbodyid = ccalbodyid;
}
public String getCcurrencytypeid() {
return ccurrencytypeid;
}
public void setCcurrencytypeid(String ccurrencytypeid) {
this.ccurrencytypeid = ccurrencytypeid;
}
public String getCcustomerid() {
return ccustomerid;
}
public void setCcustomerid(String ccustomerid) {
this.ccustomerid = ccustomerid;
}
public String getCfreezeid() {
return cfreezeid;
}
public void setCfreezeid(String cfreezeid) {
this.cfreezeid = cfreezeid;
}
public String getCinvbasdocid() {
return cinvbasdocid;
}
public void setCinvbasdocid(String cinvbasdocid) {
this.cinvbasdocid = cinvbasdocid;
}
public String getCinventoryid() {
return cinventoryid;
}
public void setCinventoryid(String cinventoryid) {
this.cinventoryid = cinventoryid;
}
public String getCinvoiceBid() {
return cinvoiceBid;
}
public void setCinvoiceBid(String cinvoiceBid) {
this.cinvoiceBid = cinvoiceBid;
}
public String getCoriginalbillcode() {
return coriginalbillcode;
}
public void setCoriginalbillcode(String coriginalbillcode) {
this.coriginalbillcode = coriginalbillcode;
}
public String getCostsubjid() {
return costsubjid;
}
public void setCostsubjid(String costsubjid) {
this.costsubjid = costsubjid;
}
public String getCpackunitid() {
return cpackunitid;
}
public void setCpackunitid(String cpackunitid) {
this.cpackunitid = cpackunitid;
}
public String getCprolineid() {
return cprolineid;
}
public void setCprolineid(String cprolineid) {
this.cprolineid = cprolineid;
}
public String getCquoteunitid() {
return cquoteunitid;
}
public void setCquoteunitid(String cquoteunitid) {
this.cquoteunitid = cquoteunitid;
}
public String getCreceiptcorpid() {
return creceiptcorpid;
}
public void setCreceiptcorpid(String creceiptcorpid) {
this.creceiptcorpid = creceiptcorpid;
}
public String getCreceipttype() {
return creceipttype;
}
public void setCreceipttype(String creceipttype) {
this.creceipttype = creceipttype;
}
public String getCrowno() {
return crowno;
}
public void setCrowno(String crowno) {
this.crowno = crowno;
}
public String getCsaleid() {
return csaleid;
}
public void setCsaleid(String csaleid) {
this.csaleid = csaleid;
}
public String getCsourcebillbodyid() {
return csourcebillbodyid;
}
public void setCsourcebillbodyid(String csourcebillbodyid) {
this.csourcebillbodyid = csourcebillbodyid;
}
public String getCsourcebillid() {
return csourcebillid;
}
public void setCsourcebillid(String csourcebillid) {
this.csourcebillid = csourcebillid;
}
public String getCtManageid() {
return ctManageid;
}
public void setCtManageid(String ctManageid) {
this.ctManageid = ctManageid;
}
public String getCunitid() {
return cunitid;
}
public void setCunitid(String cunitid) {
this.cunitid = cunitid;
}
public String getCupinvoicebillbodyid() {
return cupinvoicebillbodyid;
}
public void setCupinvoicebillbodyid(String cupinvoicebillbodyid) {
this.cupinvoicebillbodyid = cupinvoicebillbodyid;
}
public String getCupinvoicebillcode() {
return cupinvoicebillcode;
}
public void setCupinvoicebillcode(String cupinvoicebillcode) {
this.cupinvoicebillcode = cupinvoicebillcode;
}
public String getCupinvoicebillid() {
return cupinvoicebillid;
}
public void setCupinvoicebillid(String cupinvoicebillid) {
this.cupinvoicebillid = cupinvoicebillid;
}
public String getCupreceipttype() {
return cupreceipttype;
}
public void setCupreceipttype(String cupreceipttype) {
this.cupreceipttype = cupreceipttype;
}
public String getCupsourcebillbodyid() {
return cupsourcebillbodyid;
}
public void setCupsourcebillbodyid(String cupsourcebillbodyid) {
this.cupsourcebillbodyid = cupsourcebillbodyid;
}
public String getCupsourcebillcode() {
return cupsourcebillcode;
}
public void setCupsourcebillcode(String cupsourcebillcode) {
this.cupsourcebillcode = cupsourcebillcode;
}
public String getCupsourcebillid() {
return cupsourcebillid;
}
public void setCupsourcebillid(String cupsourcebillid) {
this.cupsourcebillid = cupsourcebillid;
}
public String getDdeliverdate() {
return ddeliverdate;
}
public void setDdeliverdate(String ddeliverdate) {
this.ddeliverdate = ddeliverdate;
}
public String getDr() {
return dr;
}
public void setDr(String dr) {
this.dr = dr;
}
public String getFbatchstatus() {
return fbatchstatus;
}
public void setFbatchstatus(String fbatchstatus) {
this.fbatchstatus = fbatchstatus;
}
public String getFrownote() {
return frownote;
}
public void setFrownote(String frownote) {
this.frownote = frownote;
}
public String getFrowstatus() {
return frowstatus;
}
public void setFrowstatus(String frowstatus) {
this.frowstatus = frowstatus;
}
public String getInccontimepoint() {
return inccontimepoint;
}
public void setInccontimepoint(String inccontimepoint) {
this.inccontimepoint = inccontimepoint;
}
public String getInccontimepointname() {
return inccontimepointname;
}
public void setInccontimepointname(String inccontimepointname) {
this.inccontimepointname = inccontimepointname;
}
public String getNcostmny() {
return ncostmny;
}
public void setNcostmny(String ncostmny) {
this.ncostmny = ncostmny;
}
public String getNdiscountmny() {
return ndiscountmny;
}
public void setNdiscountmny(String ndiscountmny) {
this.ndiscountmny = ndiscountmny;
}
public String getNdiscountrate() {
return ndiscountrate;
}
public void setNdiscountrate(String ndiscountrate) {
this.ndiscountrate = ndiscountrate;
}
public String getNexchangeotobrate() {
return nexchangeotobrate;
}
public void setNexchangeotobrate(String nexchangeotobrate) {
this.nexchangeotobrate = nexchangeotobrate;
}
public String getNinvoicediscountrate() {
return ninvoicediscountrate;
}
public void setNinvoicediscountrate(String ninvoicediscountrate) {
this.ninvoicediscountrate = ninvoicediscountrate;
}
public String getNitemdiscountrate() {
return nitemdiscountrate;
}
public void setNitemdiscountrate(String nitemdiscountrate) {
this.nitemdiscountrate = nitemdiscountrate;
}
public String getNmny() {
return nmny;
}
public void setNmny(String nmny) {
this.nmny = nmny;
}
public String getNnetprice() {
return nnetprice;
}
public void setNnetprice(String nnetprice) {
this.nnetprice = nnetprice;
}
public String getNnumber() {
return nnumber;
}
public void setNnumber(String nnumber) {
this.nnumber = nnumber;
}
public String getNoriginalcurdiscountmny() {
return noriginalcurdiscountmny;
}
public void setNoriginalcurdiscountmny(String noriginalcurdiscountmny) {
this.noriginalcurdiscountmny = noriginalcurdiscountmny;
}
public String getNoriginalcurmny() {
return noriginalcurmny;
}
public void setNoriginalcurmny(String noriginalcurmny) {
this.noriginalcurmny = noriginalcurmny;
}
public String getNoriginalcurnetprice() {
return noriginalcurnetprice;
}
public void setNoriginalcurnetprice(String noriginalcurnetprice) {
this.noriginalcurnetprice = noriginalcurnetprice;
}
public String getNoriginalcurprice() {
return noriginalcurprice;
}
public void setNoriginalcurprice(String noriginalcurprice) {
this.noriginalcurprice = noriginalcurprice;
}
public String getNoriginalcursummny() {
return noriginalcursummny;
}
public void setNoriginalcursummny(String noriginalcursummny) {
this.noriginalcursummny = noriginalcursummny;
}
public String getNoriginalcurtaxmny() {
return noriginalcurtaxmny;
}
public void setNoriginalcurtaxmny(String noriginalcurtaxmny) {
this.noriginalcurtaxmny = noriginalcurtaxmny;
}
public String getNoriginalcurtaxnetprice() {
return noriginalcurtaxnetprice;
}
public void setNoriginalcurtaxnetprice(String noriginalcurtaxnetprice) {
this.noriginalcurtaxnetprice = noriginalcurtaxnetprice;
}
public String getNoriginalcurtaxprice() {
return noriginalcurtaxprice;
}
public void setNoriginalcurtaxprice(String noriginalcurtaxprice) {
this.noriginalcurtaxprice = noriginalcurtaxprice;
}
public String getNpacknumber() {
return npacknumber;
}
public void setNpacknumber(String npacknumber) {
this.npacknumber = npacknumber;
}
public String getNprice() {
return nprice;
}
public void setNprice(String nprice) {
this.nprice = nprice;
}
public String getNqocurtaxnetpri() {
return nqocurtaxnetpri;
}
public void setNqocurtaxnetpri(String nqocurtaxnetpri) {
this.nqocurtaxnetpri = nqocurtaxnetpri;
}
public String getNqunetprice() {
return nqunetprice;
}
public void setNqunetprice(String nqunetprice) {
this.nqunetprice = nqunetprice;
}
public String getNquoricurnetpri() {
return nquoricurnetpri;
}
public void setNquoricurnetpri(String nquoricurnetpri) {
this.nquoricurnetpri = nquoricurnetpri;
}
public String getNquoricurpri() {
return nquoricurpri;
}
public void setNquoricurpri(String nquoricurpri) {
this.nquoricurpri = nquoricurpri;
}
public String getNquoricurtaxpri() {
return nquoricurtaxpri;
}
public void setNquoricurtaxpri(String nquoricurtaxpri) {
this.nquoricurtaxpri = nquoricurtaxpri;
}
public String getNquotenumber() {
return nquotenumber;
}
public void setNquotenumber(String nquotenumber) {
this.nquotenumber = nquotenumber;
}
public String getNquoteunitrate() {
return nquoteunitrate;
}
public void setNquoteunitrate(String nquoteunitrate) {
this.nquoteunitrate = nquoteunitrate;
}
public String getNquprice() {
return nquprice;
}
public void setNquprice(String nquprice) {
this.nquprice = nquprice;
}
public String getNqutaxnetprice() {
return nqutaxnetprice;
}
public void setNqutaxnetprice(String nqutaxnetprice) {
this.nqutaxnetprice = nqutaxnetprice;
}
public String getNqutaxprice() {
return nqutaxprice;
}
public void setNqutaxprice(String nqutaxprice) {
this.nqutaxprice = nqutaxprice;
}
public String getNsimulatecostmny() {
return nsimulatecostmny;
}
public void setNsimulatecostmny(String nsimulatecostmny) {
this.nsimulatecostmny = nsimulatecostmny;
}
public String getNsubcursummny() {
return nsubcursummny;
}
public void setNsubcursummny(String nsubcursummny) {
this.nsubcursummny = nsubcursummny;
}
public String getNsubqunetpri() {
return nsubqunetpri;
}
public void setNsubqunetpri(String nsubqunetpri) {
this.nsubqunetpri = nsubqunetpri;
}
public String getNsubqupri() {
return nsubqupri;
}
public void setNsubqupri(String nsubqupri) {
this.nsubqupri = nsubqupri;
}
public String getNsubqutaxnetpri() {
return nsubqutaxnetpri;
}
public void setNsubqutaxnetpri(String nsubqutaxnetpri) {
this.nsubqutaxnetpri = nsubqutaxnetpri;
}
public String getNsubqutaxpri() {
return nsubqutaxpri;
}
public void setNsubqutaxpri(String nsubqutaxpri) {
this.nsubqutaxpri = nsubqutaxpri;
}
public String getNsubsummny() {
return nsubsummny;
}
public void setNsubsummny(String nsubsummny) {
this.nsubsummny = nsubsummny;
}
public String getNsubtaxnetprice() {
return nsubtaxnetprice;
}
public void setNsubtaxnetprice(String nsubtaxnetprice) {
this.nsubtaxnetprice = nsubtaxnetprice;
}
public String getNsummny() {
return nsummny;
}
public void setNsummny(String nsummny) {
this.nsummny = nsummny;
}
public String getNtaxmny() {
return ntaxmny;
}
public void setNtaxmny(String ntaxmny) {
this.ntaxmny = ntaxmny;
}
public String getNtaxnetprice() {
return ntaxnetprice;
}
public void setNtaxnetprice(String ntaxnetprice) {
this.ntaxnetprice = ntaxnetprice;
}
public String getNtaxprice() {
return ntaxprice;
}
public void setNtaxprice(String ntaxprice) {
this.ntaxprice = ntaxprice;
}
public String getNtaxrate() {
return ntaxrate;
}
public void setNtaxrate(String ntaxrate) {
this.ntaxrate = ntaxrate;
}
public String getNtotalapplydismny() {
return ntotalapplydismny;
}
public void setNtotalapplydismny(String ntotalapplydismny) {
this.ntotalapplydismny = ntotalapplydismny;
}
public String getNtotalapplymny() {
return ntotalapplymny;
}
public void setNtotalapplymny(String ntotalapplymny) {
this.ntotalapplymny = ntotalapplymny;
}
public String getNtotalapplynumber() {
return ntotalapplynumber;
}
public void setNtotalapplynumber(String ntotalapplynumber) {
this.ntotalapplynumber = ntotalapplynumber;
}
public String getNtotalapplysummny() {
return ntotalapplysummny;
}
public void setNtotalapplysummny(String ntotalapplysummny) {
this.ntotalapplysummny = ntotalapplysummny;
}
public String getNtotalapplytaxmny() {
return ntotalapplytaxmny;
}
public void setNtotalapplytaxmny(String ntotalapplytaxmny) {
this.ntotalapplytaxmny = ntotalapplytaxmny;
}
public String getNtotalhedgapplydismny() {
return ntotalhedgapplydismny;
}
public void setNtotalhedgapplydismny(String ntotalhedgapplydismny) {
this.ntotalhedgapplydismny = ntotalhedgapplydismny;
}
public String getNtotalhedgapplymny() {
return ntotalhedgapplymny;
}
public void setNtotalhedgapplymny(String ntotalhedgapplymny) {
this.ntotalhedgapplymny = ntotalhedgapplymny;
}
public String getNtotalhedgapplynumber() {
return ntotalhedgapplynumber;
}
public void setNtotalhedgapplynumber(String ntotalhedgapplynumber) {
this.ntotalhedgapplynumber = ntotalhedgapplynumber;
}
public String getNtotalhedgapplysummny() {
return ntotalhedgapplysummny;
}
public void setNtotalhedgapplysummny(String ntotalhedgapplysummny) {
this.ntotalhedgapplysummny = ntotalhedgapplysummny;
}
public String getNtotalhedgapplytaxmny() {
return ntotalhedgapplytaxmny;
}
public void setNtotalhedgapplytaxmny(String ntotalhedgapplytaxmny) {
this.ntotalhedgapplytaxmny = ntotalhedgapplytaxmny;
}
public String getNtotaltoswymny() {
return ntotaltoswymny;
}
public void setNtotaltoswymny(String ntotaltoswymny) {
this.ntotaltoswymny = ntotaltoswymny;
}
public String getNtotaltoswynumber() {
return ntotaltoswynumber;
}
public void setNtotaltoswynumber(String ntotaltoswynumber) {
this.ntotaltoswynumber = ntotaltoswynumber;
}
public String getPkCorp() {
return pkCorp;
}
public void setPkCorp(String pkCorp) {
this.pkCorp = pkCorp;
}
public String getPkTaxclass() {
return pkTaxclass;
}
public void setPkTaxclass(String pkTaxclass) {
this.pkTaxclass = pkTaxclass;
}
public String getTs() {
return ts;
}
public void setTs(String ts) {
this.ts = ts;
}
}

View File

@ -0,0 +1,946 @@
package com.hzya.frame.plugin.lets.entity;
import com.hzya.frame.web.entity.BaseEntity;
/**
* (SoSaleinvoice)实体类
*
* @author makejava
* @since 2024-08-31 14:43:53
*/
public class SoSaleinvoiceEntity extends BaseEntity {
private String bfreecustflag;
private String binitflag;
private String btogoldtax;
private String capproveid;
private String cbiztype;
private String ccalbodyid;
private String ccreditnum;
private String ccustbankid;
private String cdeptid;
private String cdispatcherid;
private String cemployeeid;
private String cfreecustid;
private String cgoldtaxcode;
private String coperatorid;
private String creceiptcorpid;
private String creceiptcustomerid;
private String creceipttype;
private String csalecorpid;
private String csaleid;
private String ctermprotocolid;
private String ctransmodeid;
private String cwarehouseid;
private String dapprovedate;
private String daudittime;
private String dbilldate;
private String dbilltime;
private String deinvdate;
private String dmakedate;
private String dmoditime;
private String dr;
private String dtogoldtaxtime;
private String fcounteractflag;
private String feinvstatus;
private String finvoiceclass;
private String finvoicetype;
private String fstatus;
private String ibalanceflag;
private String iprintcount;
private String ndiscountrate;
private String nevaluatecarriage;
private String nnetmny;
private String nstrikemny;
private String nsubscription;
private String ntotalnum;
private String ntotalsummny;
private String pkConnected;
private String pkCorp;
private String pkDefdoc1;
private String pkDefdoc10;
private String pkDefdoc11;
private String pkDefdoc12;
private String pkDefdoc13;
private String pkDefdoc14;
private String pkDefdoc15;
private String pkDefdoc16;
private String pkDefdoc17;
private String pkDefdoc18;
private String pkDefdoc19;
private String pkDefdoc2;
private String pkDefdoc20;
private String pkDefdoc3;
private String pkDefdoc4;
private String pkDefdoc5;
private String pkDefdoc6;
private String pkDefdoc7;
private String pkDefdoc8;
private String pkDefdoc9;
private String ts;
private String vaccountyear;
private String vdef1;
private String vdef10;
private String vdef11;
private String vdef12;
private String vdef13;
private String vdef14;
private String vdef15;
private String vdef16;
private String vdef17;
private String vdef18;
private String vdef19;
private String vdef2;
private String vdef20;
private String vdef3;
private String vdef4;
private String vdef5;
private String vdef6;
private String vdef7;
private String vdef8;
private String vdef9;
private String veditreason;
private String veinvcode;
private String veinvfailnote;
private String veinvnumber;
private String vnote;
private String vprintcustname;
private String vreceiptcode;
private String vreceiveaddress;
private String vredflushcause;
private String vredletterinfo;
private String vsplitrecord;
private String vsrceinvcode;
private String vsrceinvnumber;
/**
* 判断发票总金额如果是负数则为蓝字
*/
// private String checkNtotalsummny;
// public String getCheckNtotalsummny() {
// return checkNtotalsummny;
// }
//
// public void setCheckNtotalsummny(String checkNtotalsummny) {
// this.checkNtotalsummny = checkNtotalsummny;
// }
public String getBfreecustflag() {
return bfreecustflag;
}
public void setBfreecustflag(String bfreecustflag) {
this.bfreecustflag = bfreecustflag;
}
public String getBinitflag() {
return binitflag;
}
public void setBinitflag(String binitflag) {
this.binitflag = binitflag;
}
public String getBtogoldtax() {
return btogoldtax;
}
public void setBtogoldtax(String btogoldtax) {
this.btogoldtax = btogoldtax;
}
public String getCapproveid() {
return capproveid;
}
public void setCapproveid(String capproveid) {
this.capproveid = capproveid;
}
public String getCbiztype() {
return cbiztype;
}
public void setCbiztype(String cbiztype) {
this.cbiztype = cbiztype;
}
public String getCcalbodyid() {
return ccalbodyid;
}
public void setCcalbodyid(String ccalbodyid) {
this.ccalbodyid = ccalbodyid;
}
public String getCcreditnum() {
return ccreditnum;
}
public void setCcreditnum(String ccreditnum) {
this.ccreditnum = ccreditnum;
}
public String getCcustbankid() {
return ccustbankid;
}
public void setCcustbankid(String ccustbankid) {
this.ccustbankid = ccustbankid;
}
public String getCdeptid() {
return cdeptid;
}
public void setCdeptid(String cdeptid) {
this.cdeptid = cdeptid;
}
public String getCdispatcherid() {
return cdispatcherid;
}
public void setCdispatcherid(String cdispatcherid) {
this.cdispatcherid = cdispatcherid;
}
public String getCemployeeid() {
return cemployeeid;
}
public void setCemployeeid(String cemployeeid) {
this.cemployeeid = cemployeeid;
}
public String getCfreecustid() {
return cfreecustid;
}
public void setCfreecustid(String cfreecustid) {
this.cfreecustid = cfreecustid;
}
public String getCgoldtaxcode() {
return cgoldtaxcode;
}
public void setCgoldtaxcode(String cgoldtaxcode) {
this.cgoldtaxcode = cgoldtaxcode;
}
public String getCoperatorid() {
return coperatorid;
}
public void setCoperatorid(String coperatorid) {
this.coperatorid = coperatorid;
}
public String getCreceiptcorpid() {
return creceiptcorpid;
}
public void setCreceiptcorpid(String creceiptcorpid) {
this.creceiptcorpid = creceiptcorpid;
}
public String getCreceiptcustomerid() {
return creceiptcustomerid;
}
public void setCreceiptcustomerid(String creceiptcustomerid) {
this.creceiptcustomerid = creceiptcustomerid;
}
public String getCreceipttype() {
return creceipttype;
}
public void setCreceipttype(String creceipttype) {
this.creceipttype = creceipttype;
}
public String getCsalecorpid() {
return csalecorpid;
}
public void setCsalecorpid(String csalecorpid) {
this.csalecorpid = csalecorpid;
}
public String getCsaleid() {
return csaleid;
}
public void setCsaleid(String csaleid) {
this.csaleid = csaleid;
}
public String getCtermprotocolid() {
return ctermprotocolid;
}
public void setCtermprotocolid(String ctermprotocolid) {
this.ctermprotocolid = ctermprotocolid;
}
public String getCtransmodeid() {
return ctransmodeid;
}
public void setCtransmodeid(String ctransmodeid) {
this.ctransmodeid = ctransmodeid;
}
public String getCwarehouseid() {
return cwarehouseid;
}
public void setCwarehouseid(String cwarehouseid) {
this.cwarehouseid = cwarehouseid;
}
public String getDapprovedate() {
return dapprovedate;
}
public void setDapprovedate(String dapprovedate) {
this.dapprovedate = dapprovedate;
}
public String getDaudittime() {
return daudittime;
}
public void setDaudittime(String daudittime) {
this.daudittime = daudittime;
}
public String getDbilldate() {
return dbilldate;
}
public void setDbilldate(String dbilldate) {
this.dbilldate = dbilldate;
}
public String getDbilltime() {
return dbilltime;
}
public void setDbilltime(String dbilltime) {
this.dbilltime = dbilltime;
}
public String getDeinvdate() {
return deinvdate;
}
public void setDeinvdate(String deinvdate) {
this.deinvdate = deinvdate;
}
public String getDmakedate() {
return dmakedate;
}
public void setDmakedate(String dmakedate) {
this.dmakedate = dmakedate;
}
public String getDmoditime() {
return dmoditime;
}
public void setDmoditime(String dmoditime) {
this.dmoditime = dmoditime;
}
public String getDr() {
return dr;
}
public void setDr(String dr) {
this.dr = dr;
}
public String getDtogoldtaxtime() {
return dtogoldtaxtime;
}
public void setDtogoldtaxtime(String dtogoldtaxtime) {
this.dtogoldtaxtime = dtogoldtaxtime;
}
public String getFcounteractflag() {
return fcounteractflag;
}
public void setFcounteractflag(String fcounteractflag) {
this.fcounteractflag = fcounteractflag;
}
public String getFeinvstatus() {
return feinvstatus;
}
public void setFeinvstatus(String feinvstatus) {
this.feinvstatus = feinvstatus;
}
public String getFinvoiceclass() {
return finvoiceclass;
}
public void setFinvoiceclass(String finvoiceclass) {
this.finvoiceclass = finvoiceclass;
}
public String getFinvoicetype() {
return finvoicetype;
}
public void setFinvoicetype(String finvoicetype) {
this.finvoicetype = finvoicetype;
}
public String getFstatus() {
return fstatus;
}
public void setFstatus(String fstatus) {
this.fstatus = fstatus;
}
public String getIbalanceflag() {
return ibalanceflag;
}
public void setIbalanceflag(String ibalanceflag) {
this.ibalanceflag = ibalanceflag;
}
public String getIprintcount() {
return iprintcount;
}
public void setIprintcount(String iprintcount) {
this.iprintcount = iprintcount;
}
public String getNdiscountrate() {
return ndiscountrate;
}
public void setNdiscountrate(String ndiscountrate) {
this.ndiscountrate = ndiscountrate;
}
public String getNevaluatecarriage() {
return nevaluatecarriage;
}
public void setNevaluatecarriage(String nevaluatecarriage) {
this.nevaluatecarriage = nevaluatecarriage;
}
public String getNnetmny() {
return nnetmny;
}
public void setNnetmny(String nnetmny) {
this.nnetmny = nnetmny;
}
public String getNstrikemny() {
return nstrikemny;
}
public void setNstrikemny(String nstrikemny) {
this.nstrikemny = nstrikemny;
}
public String getNsubscription() {
return nsubscription;
}
public void setNsubscription(String nsubscription) {
this.nsubscription = nsubscription;
}
public String getNtotalnum() {
return ntotalnum;
}
public void setNtotalnum(String ntotalnum) {
this.ntotalnum = ntotalnum;
}
public String getNtotalsummny() {
return ntotalsummny;
}
public void setNtotalsummny(String ntotalsummny) {
this.ntotalsummny = ntotalsummny;
}
public String getPkConnected() {
return pkConnected;
}
public void setPkConnected(String pkConnected) {
this.pkConnected = pkConnected;
}
public String getPkCorp() {
return pkCorp;
}
public void setPkCorp(String pkCorp) {
this.pkCorp = pkCorp;
}
public String getPkDefdoc1() {
return pkDefdoc1;
}
public void setPkDefdoc1(String pkDefdoc1) {
this.pkDefdoc1 = pkDefdoc1;
}
public String getPkDefdoc10() {
return pkDefdoc10;
}
public void setPkDefdoc10(String pkDefdoc10) {
this.pkDefdoc10 = pkDefdoc10;
}
public String getPkDefdoc11() {
return pkDefdoc11;
}
public void setPkDefdoc11(String pkDefdoc11) {
this.pkDefdoc11 = pkDefdoc11;
}
public String getPkDefdoc12() {
return pkDefdoc12;
}
public void setPkDefdoc12(String pkDefdoc12) {
this.pkDefdoc12 = pkDefdoc12;
}
public String getPkDefdoc13() {
return pkDefdoc13;
}
public void setPkDefdoc13(String pkDefdoc13) {
this.pkDefdoc13 = pkDefdoc13;
}
public String getPkDefdoc14() {
return pkDefdoc14;
}
public void setPkDefdoc14(String pkDefdoc14) {
this.pkDefdoc14 = pkDefdoc14;
}
public String getPkDefdoc15() {
return pkDefdoc15;
}
public void setPkDefdoc15(String pkDefdoc15) {
this.pkDefdoc15 = pkDefdoc15;
}
public String getPkDefdoc16() {
return pkDefdoc16;
}
public void setPkDefdoc16(String pkDefdoc16) {
this.pkDefdoc16 = pkDefdoc16;
}
public String getPkDefdoc17() {
return pkDefdoc17;
}
public void setPkDefdoc17(String pkDefdoc17) {
this.pkDefdoc17 = pkDefdoc17;
}
public String getPkDefdoc18() {
return pkDefdoc18;
}
public void setPkDefdoc18(String pkDefdoc18) {
this.pkDefdoc18 = pkDefdoc18;
}
public String getPkDefdoc19() {
return pkDefdoc19;
}
public void setPkDefdoc19(String pkDefdoc19) {
this.pkDefdoc19 = pkDefdoc19;
}
public String getPkDefdoc2() {
return pkDefdoc2;
}
public void setPkDefdoc2(String pkDefdoc2) {
this.pkDefdoc2 = pkDefdoc2;
}
public String getPkDefdoc20() {
return pkDefdoc20;
}
public void setPkDefdoc20(String pkDefdoc20) {
this.pkDefdoc20 = pkDefdoc20;
}
public String getPkDefdoc3() {
return pkDefdoc3;
}
public void setPkDefdoc3(String pkDefdoc3) {
this.pkDefdoc3 = pkDefdoc3;
}
public String getPkDefdoc4() {
return pkDefdoc4;
}
public void setPkDefdoc4(String pkDefdoc4) {
this.pkDefdoc4 = pkDefdoc4;
}
public String getPkDefdoc5() {
return pkDefdoc5;
}
public void setPkDefdoc5(String pkDefdoc5) {
this.pkDefdoc5 = pkDefdoc5;
}
public String getPkDefdoc6() {
return pkDefdoc6;
}
public void setPkDefdoc6(String pkDefdoc6) {
this.pkDefdoc6 = pkDefdoc6;
}
public String getPkDefdoc7() {
return pkDefdoc7;
}
public void setPkDefdoc7(String pkDefdoc7) {
this.pkDefdoc7 = pkDefdoc7;
}
public String getPkDefdoc8() {
return pkDefdoc8;
}
public void setPkDefdoc8(String pkDefdoc8) {
this.pkDefdoc8 = pkDefdoc8;
}
public String getPkDefdoc9() {
return pkDefdoc9;
}
public void setPkDefdoc9(String pkDefdoc9) {
this.pkDefdoc9 = pkDefdoc9;
}
public String getTs() {
return ts;
}
public void setTs(String ts) {
this.ts = ts;
}
public String getVaccountyear() {
return vaccountyear;
}
public void setVaccountyear(String vaccountyear) {
this.vaccountyear = vaccountyear;
}
public String getVdef1() {
return vdef1;
}
public void setVdef1(String vdef1) {
this.vdef1 = vdef1;
}
public String getVdef10() {
return vdef10;
}
public void setVdef10(String vdef10) {
this.vdef10 = vdef10;
}
public String getVdef11() {
return vdef11;
}
public void setVdef11(String vdef11) {
this.vdef11 = vdef11;
}
public String getVdef12() {
return vdef12;
}
public void setVdef12(String vdef12) {
this.vdef12 = vdef12;
}
public String getVdef13() {
return vdef13;
}
public void setVdef13(String vdef13) {
this.vdef13 = vdef13;
}
public String getVdef14() {
return vdef14;
}
public void setVdef14(String vdef14) {
this.vdef14 = vdef14;
}
public String getVdef15() {
return vdef15;
}
public void setVdef15(String vdef15) {
this.vdef15 = vdef15;
}
public String getVdef16() {
return vdef16;
}
public void setVdef16(String vdef16) {
this.vdef16 = vdef16;
}
public String getVdef17() {
return vdef17;
}
public void setVdef17(String vdef17) {
this.vdef17 = vdef17;
}
public String getVdef18() {
return vdef18;
}
public void setVdef18(String vdef18) {
this.vdef18 = vdef18;
}
public String getVdef19() {
return vdef19;
}
public void setVdef19(String vdef19) {
this.vdef19 = vdef19;
}
public String getVdef2() {
return vdef2;
}
public void setVdef2(String vdef2) {
this.vdef2 = vdef2;
}
public String getVdef20() {
return vdef20;
}
public void setVdef20(String vdef20) {
this.vdef20 = vdef20;
}
public String getVdef3() {
return vdef3;
}
public void setVdef3(String vdef3) {
this.vdef3 = vdef3;
}
public String getVdef4() {
return vdef4;
}
public void setVdef4(String vdef4) {
this.vdef4 = vdef4;
}
public String getVdef5() {
return vdef5;
}
public void setVdef5(String vdef5) {
this.vdef5 = vdef5;
}
public String getVdef6() {
return vdef6;
}
public void setVdef6(String vdef6) {
this.vdef6 = vdef6;
}
public String getVdef7() {
return vdef7;
}
public void setVdef7(String vdef7) {
this.vdef7 = vdef7;
}
public String getVdef8() {
return vdef8;
}
public void setVdef8(String vdef8) {
this.vdef8 = vdef8;
}
public String getVdef9() {
return vdef9;
}
public void setVdef9(String vdef9) {
this.vdef9 = vdef9;
}
public String getVeditreason() {
return veditreason;
}
public void setVeditreason(String veditreason) {
this.veditreason = veditreason;
}
public String getVeinvcode() {
return veinvcode;
}
public void setVeinvcode(String veinvcode) {
this.veinvcode = veinvcode;
}
public String getVeinvfailnote() {
return veinvfailnote;
}
public void setVeinvfailnote(String veinvfailnote) {
this.veinvfailnote = veinvfailnote;
}
public String getVeinvnumber() {
return veinvnumber;
}
public void setVeinvnumber(String veinvnumber) {
this.veinvnumber = veinvnumber;
}
public String getVnote() {
return vnote;
}
public void setVnote(String vnote) {
this.vnote = vnote;
}
public String getVprintcustname() {
return vprintcustname;
}
public void setVprintcustname(String vprintcustname) {
this.vprintcustname = vprintcustname;
}
public String getVreceiptcode() {
return vreceiptcode;
}
public void setVreceiptcode(String vreceiptcode) {
this.vreceiptcode = vreceiptcode;
}
public String getVreceiveaddress() {
return vreceiveaddress;
}
public void setVreceiveaddress(String vreceiveaddress) {
this.vreceiveaddress = vreceiveaddress;
}
public String getVredflushcause() {
return vredflushcause;
}
public void setVredflushcause(String vredflushcause) {
this.vredflushcause = vredflushcause;
}
public String getVredletterinfo() {
return vredletterinfo;
}
public void setVredletterinfo(String vredletterinfo) {
this.vredletterinfo = vredletterinfo;
}
public String getVsplitrecord() {
return vsplitrecord;
}
public void setVsplitrecord(String vsplitrecord) {
this.vsplitrecord = vsplitrecord;
}
public String getVsrceinvcode() {
return vsrceinvcode;
}
public void setVsrceinvcode(String vsrceinvcode) {
this.vsrceinvcode = vsrceinvcode;
}
public String getVsrceinvnumber() {
return vsrceinvnumber;
}
public void setVsrceinvnumber(String vsrceinvnumber) {
this.vsrceinvnumber = vsrceinvnumber;
}
}

View File

@ -50,4 +50,12 @@ public class QueryOfsSoSaleOutVo {
//交易成功状态
private String sourceOrderStatus;
}
//退款成功时间
private String refundedAt_start;
//退款成功时间
private String refundedAt_end;
//退款成功状态
private String refundStatus;
}

View File

@ -149,6 +149,11 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
@Autowired
private IIcGeneralBDao iIcGeneralBDao;
@Autowired
private ISoSaleinvoiceDao iSoSaleinvoiceDao;
private static final String VNOTETYPE = "SALE";
/**
* 库存同步按指定时间拉取
*
@ -225,14 +230,13 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
List<HeaderDetailsDto> headerDetailsDtoList = new ArrayList<>();
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
queryOfsSoSaleOutVo.setShipAt_start(startTime);
queryOfsSoSaleOutVo.setShipAt_end(endTime);
//TODO 测试
// queryOfsSoSaleOutVo.setTradeSuccessAt_start(startTime);
// queryOfsSoSaleOutVo.setTradeSuccessAt_end(endTime);
// queryOfsSoSaleOutVo.setShipAt_start(startTime);
// queryOfsSoSaleOutVo.setShipAt_end(endTime);
queryOfsSoSaleOutVo.setTradeSuccessAt_start(startTime);
queryOfsSoSaleOutVo.setTradeSuccessAt_end(endTime);
queryOfsSoSaleOutVo.setClientCode("LETS");
queryOfsSoSaleOutVo.setInternalInstructionType("SALES");
// queryOfsSoSaleOutVo.setSourceOrderStatus("TRADE_FINISHED");//交易成功状态
queryOfsSoSaleOutVo.setSourceOrderStatus("TRADE_FINISHED");//交易成功状态
// queryOfsSoSaleOutVo.setStatus(900L);
queryOfsSoSaleOutVo.setPageNo(1L);
queryOfsSoSaleOutVo.setPageSize(50L);
@ -584,10 +588,28 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
saleorderRequestDtoList.add(saleorderRequestDto);
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
stringStringMap.put("saleorder", saleorderRequestDtoList);
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
logger.info("TOB销售订单编号{} 销售公司:{}", soSaleResultRootDto.getParentvo().getVreceiptcode(), soSaleResultRootDto.getParentvo().getPk_corp());
Boolean aBoolean = checkTobOrder(header.getId(), header.getCode());
if (!aBoolean) {
logger.error("经过SQL查询判断在U8C销售订单不存在OFS入库单号为{} OFS入库主键为{}的单据将调用U8C接口执行推送", header.getCode(), header.getId());
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
stringStringMap.put("saleorder", saleorderRequestDtoList);
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
String vreceiptcode = null;
String pk_corp = null;
String csaleid = null;
//成功
if (soSaleResultRootDto != null) {
SoSaleResultHeadDto parentvo = soSaleResultRootDto.getParentvo();
List<SoSaleResultBodyDto> childrenvo = soSaleResultRootDto.getChildrenvo();
vreceiptcode = parentvo.getVreceiptcode();
pk_corp = parentvo.getPk_corp();
csaleid = parentvo.getCsaleid();
}
logger.info("TOB销售订单编号{} 主键:{} 公司:{}", vreceiptcode, csaleid, pk_corp);
} else {
logger.error("经过SQL查询判断在U8C销售订单已经存在OFS入库单号为{} OFS入库主键为{}的单据为了避免造成单据重复不推送到U8C", header.getCode(), header.getId());
}
}
} catch (Exception e) {
logger.error("TOB业务转换成U8C对象过程中、或者单据推送到U8C出现异常", e);
@ -1115,9 +1137,10 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
soSaleEntity.setDataSourceCode("lets_u8c");
soSaleEntity.setVdef19(header.getCode());
soSaleEntity.setVdef20(header.getId());
soSaleEntity.setBretinvflag("N");//仅查询销售订单
List<SoSaleEntity> soSaleEntityList = iSoSaleDao.query(soSaleEntity);
if (soSaleEntityList == null || soSaleEntityList.size() == 0) {
Assert.state(false, "根据O出库单主键{} 单号:{} 无法匹配到U8C销售订单(传到U8C可能失败了)", header.getId(), header.getCode());
Assert.state(false, "根据O出库单主键{} 单号:{} 无法匹配到U8C销售订单(传到U8C可能失败了bretinvflag=N)", header.getId(), header.getCode());
}
//TODO 测试
// else if (soSaleEntityList.size() >= 2) {
@ -1409,6 +1432,8 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
salesInvoiceHeadDto.setDmakedate(successfulTradeDate);//制单日期
salesInvoiceHeadDto.setNdiscountrate("100");//整单折扣
salesInvoiceHeadDto.setDapprovedate(successfulTradeDate);//审批日期
salesInvoiceHeadDto.setVnote(VNOTETYPE);
salesInvoiceHeadDto.setVdef17(ProfilesActiveConstant.sourceSystem1);
salesInvoiceHeadDto.setVdef19(header.getCode());
salesInvoiceHeadDto.setVdef20(header.getId());
@ -1484,16 +1509,22 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
Map<String, List<SalesInvoiceDto>> stringListMap = new HashMap<>();
stringListMap.put("billvos", salesInvoiceDtoList);
//推送到U8C
SaleinvoiceDto saleinvoiceDto = sendU8CTOCSoSaleinvoiceB(JSON.toJSONString(stringListMap));
//成功
if (saleinvoiceDto != null && saleinvoiceDto.getParentvo() != null && saleinvoiceDto.getChildrenvo() != null) {
SaleinvoiceHeadDto parentvo = saleinvoiceDto.getParentvo();
List<SaleinvoiceBodyDto> childrenvo = saleinvoiceDto.getChildrenvo();
logger.info("TOB销售发票生成成功 编码:{} 发票公司:{}", parentvo.getVreceiptcode(), parentvo.getPk_corp());
//推送到U8C之前再次验证在U8C是否已经存在
Boolean aBoolean = checkTobSalesInvoice(header.getId(), header.getCode());
if (!aBoolean) {
logger.error("经过SQL查询判断在U8C销售发票中不存在OFS入库单号为{} OFS入库主键为{}的单据将调用U8C接口执行推送", header.getCode(), header.getId());
SaleinvoiceDto saleinvoiceDto = sendU8CTOCSoSaleinvoiceB(JSON.toJSONString(stringListMap));
//成功
if (saleinvoiceDto != null && saleinvoiceDto.getParentvo() != null && saleinvoiceDto.getChildrenvo() != null) {
SaleinvoiceHeadDto parentvo = saleinvoiceDto.getParentvo();
List<SaleinvoiceBodyDto> childrenvo = saleinvoiceDto.getChildrenvo();
logger.info("TOB销售发票生成成功 编码:{} 主键:{} 发票公司:{}", parentvo.getVreceiptcode(), parentvo.getCsaleid(), parentvo.getPk_corp());
}
} else {
logger.error("经过SQL查询判断在U8C销售发票中已经存在OFS入库单号为{} OFS入库主键为{}的单据为了避免造成单据重复不推送到U8C", header.getCode(), header.getId());
}
} catch (Exception e) {
logger.error("OTOB的销售发票传输失败抛出异常", e);
logger.error("TOB的销售发票传输失败抛出异常", e);
//失败
}
}
@ -1618,4 +1649,62 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
Assert.notNull(targetSoSaleorderBEntity, "根据O出库单明细主键:{}无法匹配到U8C销售订单明细行");
return targetSoSaleorderBEntity;
}
private static final Object checkTobOrderLock = new Object();
/**
* 验证TOB销售订单是否已经生成如果已经生成则返回true,否则返回false
*
* @param ofsId ofs主键
* @param ofsCode ofs编码
* @author liuyang
*/
private Boolean checkTobOrder(String ofsId, String ofsCode) throws Exception {
Assert.notNull(ofsId, "ofsId不能为空");
Assert.notNull(ofsCode, "ofsCode不能为空");
synchronized (checkTobOrderLock) {
SoSaleEntity soSaleEntity = new SoSaleEntity();
soSaleEntity.setDr(0L);
soSaleEntity.setDataSourceCode("lets_u8c");
soSaleEntity.setVdef19(ofsCode);
soSaleEntity.setVdef20(ofsId);
soSaleEntity.setBretinvflag("N");//仅查询销售订单
List<SoSaleEntity> soSaleEntityList = iSoSaleDao.query(soSaleEntity);
if (soSaleEntityList.size() > 0) {
SoSaleEntity soSaleEntity1 = soSaleEntityList.get(0);
logger.error("OFS销售出库单主键{} OFS销售出库单编码{} 该单据在U8C已经存在U8C销售订单并且销售订单编码为{} 对应的公司为:{}", ofsId, ofsCode, soSaleEntity1.getVreceiptcode(), soSaleEntity1.getPkCorp());
return true;
}
return false;
}
}
private static final Object checkTobSalesInvoiceLock = new Object();
/**
* 验证TOB销售发票是否已经生成增加验证逻辑仅验证正数的发票是否存在
*
* @param ofsId ofs销售出库单主键
* @param ofsCode ofs销售出库单编码
* @author liuyang
*/
private Boolean checkTobSalesInvoice(String ofsId, String ofsCode) throws Exception {
Assert.notNull(ofsId, "ofsId不能为空");
Assert.notNull(ofsCode, "ofsCode不能为空");
synchronized (checkTobSalesInvoiceLock) {
SoSaleinvoiceEntity soSaleinvoiceEntity = new SoSaleinvoiceEntity();
soSaleinvoiceEntity.setDr("0");
soSaleinvoiceEntity.setVdef19(ofsCode);
soSaleinvoiceEntity.setVdef20(ofsId);
soSaleinvoiceEntity.setDataSourceCode("lets_u8c");
soSaleinvoiceEntity.setVnote(VNOTETYPE);
List<SoSaleinvoiceEntity> soSaleinvoiceEntityList = iSoSaleinvoiceDao.query(soSaleinvoiceEntity);
if (soSaleinvoiceEntityList != null && soSaleinvoiceEntityList.size() > 0) {
SoSaleinvoiceEntity soSaleinvoiceEntity1 = soSaleinvoiceEntityList.get(0);
logger.error("OFS销售出库单主键{} OFS销售出库单编码{} 该单据在U8C已经存在U8C销售发票并且销售发票编码为{} 对应的公司为:{}", ofsId, ofsCode, soSaleinvoiceEntity1.getVreceiptcode(), soSaleinvoiceEntity1.getPkCorp());
return true;
}
}
return false;
}
}

View File

@ -28,6 +28,9 @@ import com.hzya.frame.ttxofs.dto.ofssalesordersearch.DetailsDto;
import com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto;
import com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto;
import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto;
import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchData;
import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchDetails;
import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchHeader;
import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse;
import com.hzya.frame.ttxofs.service.OfsUnifiedService;
import com.hzya.frame.web.entity.JsonResultEntity;
@ -156,6 +159,11 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
@Autowired
private ISoSaleorderBDao iSoSaleorderBDao;
@Autowired
private ISoSaleinvoiceDao iSoSaleinvoiceDao;
private static final String VNOTETYPE = "RETURN";
/**
* 库存同步按指定时间拉取
*
@ -208,6 +216,59 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
logger.info(threadNameStrEnd);
}
/**
* 库存同步按指定时间拉取
*
* @author liuyang
*/
public void startImplementByTradeTime(String startTime, String endTime) {
long startMillis = System.currentTimeMillis();
String threadNameStrStart = StrUtil.format("OFS售后入库(TOB)同步U8C销售订单(库存同步) 开始时间:{} 结束时间:{}", startTime, endTime);
logger.info(threadNameStrStart);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
//生成一个时间范围
// StartAndEndVo startAndEndVo = offsetTimeTime.offsetTime();
//2024年8月19日 15:47:51 查询出U8C里标记的店铺TOB属性
String tobShop = shopTobOrToCUtil.getCommaShop("TOB");
List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList = new ArrayList<>();
QueryOfsSoSaleOutVo queryOfsSoSaleOutVo = new QueryOfsSoSaleOutVo();
queryOfsSoSaleOutVo.setRefundedAt_start(startTime);
queryOfsSoSaleOutVo.setRefundedAt_end(endTime);
queryOfsSoSaleOutVo.setClientCode("LETS");
queryOfsSoSaleOutVo.setPageNo(1L);
queryOfsSoSaleOutVo.setPageSize(50L);
queryOfsSoSaleOutVo.setStoreCode(tobShop);
queryOfsSoSaleOutVo.setInternalInstructionType("RETURN");
queryOfsSoSaleOutVo.setRefundStatus("900");
// queryOfsSoSaleOutVo.setCode("LETS-RE2024081900000001");
ofsStandardUtil.queryOfsReturnGoods(queryOfsSoSaleOutVo, returnGoodHeaderDetailsDataDtoArrayList, 1L, "ofs.receipt.search");
logger.info("数据返回行数:{}", returnGoodHeaderDetailsDataDtoArrayList.size());
if (returnGoodHeaderDetailsDataDtoArrayList.size() > 0) {
getSetTrade(returnGoodHeaderDetailsDataDtoArrayList);
} else {
logger.info("没有查询到任何数据!不需要同步");
}
} catch (Exception e) {
logger.error("startImplement方法抛出异常", e);
}
}
}, threadNameStrStart);
thread.start();
try {
thread.join();
} catch (Exception e) {
logger.error("thread.join()异常", e);
}
long endMillis = System.currentTimeMillis();
String threadNameStrEnd = StrUtil.format("OFS售后入库(TOB)同步U8C销售订单(库存同步) 开始时间:{} 结束时间:{} 耗时:{}", startTime, endTime, (endMillis - startMillis));
logger.info(threadNameStrEnd);
}
/**
* 根据售后入库单单号拉取
*
@ -261,7 +322,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
}
/**
* 环境预配置
* 库存同步环境预配置
*
* @author liuyang
*/
@ -274,6 +335,20 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
implementStock(stockinOrderList);
}
/**
* 到账完成环境预配置
*
* @author liuyang
*/
private void getSetTrade(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoArrayList) throws Exception {
//保存到mysql
batchInsert(returnGoodHeaderDetailsDataDtoArrayList);
//过滤成功的数据
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterData(returnGoodHeaderDetailsDataDtoArrayList);
//执行推送主逻辑
implementSuccessfulTrade(stockinOrderList);
}
/**
* 过滤掉成功的数据
*
@ -386,8 +461,12 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
BdDefdocEntity shopArchives = orderOutTobHeaderDto.getShopArchives();
//生成业务日期
String generateBusinessDate = createGenerateBusinessDate(orderOutTobHeaderDto);
//OFS售后订单
//U8C销售订单
SoSaleEntity soSaleEntity = orderOutTobHeaderDto.getSoSaleEntity();
//OFS销售订单
SaleOrderMessageDto saleOrderMessageDto = orderOutTobHeaderDto.getSaleOrderMessageDto();
//OFS售后订单
RerturnGoodsOrderSearchData ofsRertunOrder1 = orderOutTobHeaderDto.getOfsRertunOrder();
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();
@ -408,6 +487,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
saleorderRequestParentDto.setPk_corp(bdCorpEntity.getPkCorp());//公司id
saleorderRequestParentDto.setVdef17(ProfilesActiveConstant.sourceSystem1);//来源系统
//原单单号原单主键销售发票就是靠这个字段关联的
saleorderRequestParentDto.setVdef19(header.getCode());
saleorderRequestParentDto.setVdef20(header.getId());
//平台
saleorderRequestParentDto.setPk_defdoc2(platformArchives.getPkDefdoc());
saleorderRequestParentDto.setVdef2(platformArchives.getDocname());
@ -434,8 +517,8 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
BdInvbasdocEntity bdInvbasdocEntity = queryStockBasicArchives(bdInvmandocEntity.getPkInvmandoc(), deliverGoodsCorp.getPkCorp());
//根据存货基础档案编码查询当前存货的税率
BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode());
//对应的售后入库单主要是取这个价格
DetailsDto afterSalesOrder = findAfterSalesOrder(stockinB, saleOrderMessageDto);
//取对应的售后订单明细主要是取这个价格
RerturnGoodsOrderSearchDetails afterSalesOrder = findAfterSalesOrder(stockinB, ofsRertunOrder1);
String tax = "0." + new BigDecimal(bdTaxitemsEntity1.getTaxratio()).stripTrailingZeros().toPlainString();
@ -500,10 +583,20 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
List<SaleorderRequestDto> saleorderRequestDtoList = new ArrayList<>();
saleorderRequestDtoList.add(saleorderRequestDto);
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
stringStringMap.put("saleorder", saleorderRequestDtoList);
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
logger.info("TOB红字销售订单编号{} 销售公司:{}", soSaleResultRootDto.getParentvo().getVreceiptcode(), soSaleResultRootDto.getParentvo().getPk_corp());
Boolean aBoolean = checkTobOrder(header.getId(), header.getCode());
if (!aBoolean) {
logger.error("经过SQL查询判断在U8C(红字)销售订单不存在OFS入库单号为{} OFS入库主键为{}的单据将调用U8C接口执行推送", header.getCode(), header.getId());
Map<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
stringStringMap.put("saleorder", saleorderRequestDtoList);
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
if (soSaleResultRootDto != null) {
SoSaleResultHeadDto parentvo = soSaleResultRootDto.getParentvo();
List<SoSaleResultBodyDto> childrenvo = soSaleResultRootDto.getChildrenvo();
logger.info("TOB红字销售订单编号{} 主键:{} 销售公司:{}", parentvo.getVreceiptcode(), parentvo.getCsaleid(), parentvo.getPk_corp());
}
} else {
logger.error("经过SQL查询判断在U8C(红字)销售订单存在OFS入库单号为{} OFS入库主键为{}的单据为了避免造成单据重复不推送到U8C", header.getCode(), header.getId());
}
}
} catch (Exception e) {
logger.error("TOB业务转换成U8C对象过程中、或者单据推送到U8C出现异常", e);
@ -558,10 +651,14 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
StockinOrderSearchResponse.StockinOrder.StockinH header = stockinOrder.getHeader();
List<StockinOrderSearchResponse.StockinOrder.StockinB> details = stockinOrder.getDetails();
//通过售后订单查询销售订单
//查询售后订单
RerturnGoodsOrderSearchData ofsRertunOrder = afterSalesOrderUtil.getOfsRertunOrder(header.getRefOrderCode());
Assert.notNull(ofsRertunOrder, "无法查询到OFS售后订单 编码:{}", header.getRefOrderCode());
//查询销售订单
SaleOrderMessageDto saleOrderMessageDto = null;
try {
saleOrderMessageDto = afterSalesOrderUtil.queryAfterSalesOrder(header);
saleOrderMessageDto = afterSalesOrderUtil.getOfsOrder(ofsRertunOrder.getHeader().getRefOrderCode());
} catch (Exception e) {
logger.error("查询出售后订单错误,失败原因:{}", e.getMessage());
Assert.state(false, "查询出售后订单错误,失败原因:{}", e.getMessage());
@ -711,6 +808,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
orderOutTobHeaderDto.setPlatformArchives(bdDefdocEntityList.get(0));
orderOutTobHeaderDto.setShopArchives(bdDefdocEntityList2.get(0));
orderOutTobHeaderDto.setSaleOrderMessageDto(saleOrderMessageDto);
orderOutTobHeaderDto.setOfsRertunOrder(ofsRertunOrder);
orderOutTobHeaderDto.setHeader(header);
orderOutTobHeaderDto.setDetails(details);
@ -746,9 +844,13 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
List<StockinOrderSearchResponse.StockinOrder.StockinB> details = stockinOrder.getDetails();
//查询OFS售后订单
RerturnGoodsOrderSearchData ofsRertunOrder = afterSalesOrderUtil.getOfsRertunOrder(header.getRefOrderCode());
Assert.notNull(ofsRertunOrder, "无法查询到OFS售后订单 编码:{}", header.getRefOrderCode());
//查询OFS销售订单
SaleOrderMessageDto saleOrderMessageDto = null;
try {
saleOrderMessageDto = afterSalesOrderUtil.queryAfterSalesOrder(header);
saleOrderMessageDto = afterSalesOrderUtil.getOfsOrder(ofsRertunOrder.getHeader().getRefOrderCode());
} catch (Exception e) {
logger.error("查询出售后订单错误,失败原因:{}", e.getMessage());
Assert.state(false, "查询出售后订单错误,失败原因:{}", e.getMessage());
@ -768,9 +870,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
soSaleEntity.setDataSourceCode("lets_u8c");
soSaleEntity.setVdef19(header.getCode());
soSaleEntity.setVdef20(header.getId());
soSaleEntity.setBretinvflag("Y");//仅查询红字销售订单
List<SoSaleEntity> soSaleEntityList = iSoSaleDao.query(soSaleEntity);
if (soSaleEntityList == null || soSaleEntityList.size() == 0) {
Assert.state(false, "根据O售后入库单主键{} 单号:{} 无法匹配到U8C销售订单(传到U8C可能失败了)", header.getId(), header.getCode());
Assert.state(false, "根据O售后入库单主键{} 单号:{} 无法匹配到U8C红字销售订单(传到U8C可能失败了bretinvflag=Ys)", header.getId(), header.getCode());
}
//TODO 测试
// else if (soSaleEntityList.size() >= 2) {
@ -972,6 +1075,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
orderOutTobHeaderDto.setIcGeneralBEntityList(icGeneralBEntityList);
orderOutTobHeaderDto.setSoSaleorderBEntityList(soSaleorderBEntityList);
orderOutTobHeaderDto.setExtIntegrationTaskLivingDetailsQueryVos(extIntegrationTaskLivingDetailsQueryVos);
orderOutTobHeaderDto.setOfsRertunOrder(ofsRertunOrder);
orderOutTobHeaderDto.setHeader(header);
orderOutTobHeaderDto.setDetails(details);
@ -1266,8 +1370,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
List<IcGeneralBEntity> icGeneralBEntityList = orderOutTobHeaderDto.getIcGeneralBEntityList();
//U8C销售订单执行情况明细表
List<ExtIntegrationTaskLivingDetailsQueryVo> extIntegrationTaskLivingDetailsQueryVos = orderOutTobHeaderDto.getExtIntegrationTaskLivingDetailsQueryVos();
//订单
//OFS销售订单
SaleOrderMessageDto saleOrderMessageDto = orderOutTobHeaderDto.getSaleOrderMessageDto();
//OFS售后订单
RerturnGoodsOrderSearchData ofsRertunOrder = orderOutTobHeaderDto.getOfsRertunOrder();
//红字销售发票表头
SalesInvoiceHeadDto salesInvoiceHeadDto = new SalesInvoiceHeadDto();
@ -1287,6 +1393,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
salesInvoiceHeadDto.setDmakedate(successfulTradeDate);//制单日期
salesInvoiceHeadDto.setNdiscountrate("100");//整单折扣
salesInvoiceHeadDto.setDapprovedate(successfulTradeDate);//审批日期
salesInvoiceHeadDto.setVnote(VNOTETYPE);
salesInvoiceHeadDto.setVdef17(ProfilesActiveConstant.sourceSystem1);
salesInvoiceHeadDto.setVdef19(header.getCode());
salesInvoiceHeadDto.setVdef20(header.getId());
@ -1307,7 +1414,7 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
//根据存货基础档案编码查询当前存货的税率
BdTaxitemsEntity bdTaxitemsEntity1 = queryBdTaxitems(bdInvbasdocEntity.getInvcode());
//2024年8月30日 11:20:08 查找对应的售后订单的明细行主要取价格
DetailsDto afterSalesOrder = findAfterSalesOrder(stockinB, saleOrderMessageDto);
RerturnGoodsOrderSearchDetails afterSalesOrder = findAfterSalesOrder(stockinB, ofsRertunOrder);
//查找来源单据销售发票的来源单据为销售出库单
IcGeneralBEntity sourceDocuments = findSourceDocuments(header, stockinB, soSaleorderBEntityList, icGeneralBEntityList, extIntegrationTaskLivingDetailsQueryVos);
//查找来源销售订单明细行
@ -1353,12 +1460,17 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
stringListMap.put("billvos", salesInvoiceDtoList);
//推送到U8C生成销售发票
SaleinvoiceDto saleinvoiceDto = sendU8CTOCSoSaleinvoiceB(JSON.toJSONString(stringListMap));
//成功
if (saleinvoiceDto != null && saleinvoiceDto.getParentvo() != null && saleinvoiceDto.getChildrenvo() != null) {
SaleinvoiceHeadDto parentvo = saleinvoiceDto.getParentvo();
List<SaleinvoiceBodyDto> childrenvo = saleinvoiceDto.getChildrenvo();
logger.info("TOB销售发票(红字)生成成功 编码:{} 发票公司:{}", parentvo.getVreceiptcode(), parentvo.getPk_corp());
Boolean aBoolean = checkTobSalesInvoice(header.getId(), header.getCode());
if (!aBoolean) {
logger.error("经过SQL查询判断在U8C红字销售发票中不存在OFS入库单号为{} OFS入库主键为{}的单据将调用U8C接口执行推送", header.getCode(), header.getId());
SaleinvoiceDto saleinvoiceDto = sendU8CTOCSoSaleinvoiceB(JSON.toJSONString(stringListMap));
if (saleinvoiceDto != null && saleinvoiceDto.getParentvo() != null && saleinvoiceDto.getChildrenvo() != null) {
SaleinvoiceHeadDto parentvo = saleinvoiceDto.getParentvo();
List<SaleinvoiceBodyDto> childrenvo = saleinvoiceDto.getChildrenvo();
logger.info("TOB销售发票(红字)生成成功 编码:{} 主键:{} 发票公司:{}", parentvo.getVreceiptcode(), parentvo.getCsaleid(), parentvo.getPk_corp());
}
} else {
logger.error("经过SQL查询判断在U8C红字销售发票中已经存在OFS入库单号为{} OFS入库主键为{}的单据为了避免造成单据重复不推送到U8C", header.getCode(), header.getId());
}
}
} catch (Exception e) {
@ -1375,20 +1487,21 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
* @author liuyang
*/
private String createSuccessFulTradeDate(OrderToBHeaderDto orderOutTobHeaderDto) {
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getTradeSuccessAt() != null) {
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getRefundedAt() != null) {
StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader();
String shipAt = header.getTradeSuccessAt();
String refundedAt = header.getRefundedAt();
String businessFormat = null;
try {
Date dbill = DateUtil.parse(shipAt);
Date dbill = DateUtil.parse(refundedAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) {
logger.error("tradeSuccessAt业务日期生成失败", e);
logger.error("refundedAt业务日期生成失败", e);
Assert.state(false, "refundedAt业务日期生成失败不能为空");
}
return businessFormat;
} else {
logger.error("生成出库日期失败,或者tradeSuccessAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
Assert.state(false, "生成出库日期失败,或者tradeSuccessAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
logger.error("生成出库日期失败,或者refundedAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
Assert.state(false, "生成出库日期失败,或者refundedAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto));
return null;
}
}
@ -1435,29 +1548,25 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
/**
* 通过售后入库单明细行查找售后订单明细行
*
* @param stockinB 售后订单明细行
* @param saleOrderMessageDto OFS售后订单
* @param stockinB 售后订单明细行
* @param ofsRertunOrder OFS售后订单
* @author liuyang
*/
private DetailsDto findAfterSalesOrder(StockinOrderSearchResponse.StockinOrder.StockinB stockinB, SaleOrderMessageDto saleOrderMessageDto) {
private RerturnGoodsOrderSearchDetails findAfterSalesOrder(StockinOrderSearchResponse.StockinOrder.StockinB stockinB, RerturnGoodsOrderSearchData ofsRertunOrder) {
Assert.notNull(stockinB, "stockinB不能为空");
Assert.notNull(saleOrderMessageDto, "saleOrderMessageDto不能为空");
Assert.notNull(ofsRertunOrder, "saleOrderMessageDto不能为空");
Assert.notNull(saleOrderMessageDto.getData(), "售后入库单对应的data属性不能为空");
List<HeaderDetailsDto> data = saleOrderMessageDto.getData();
if (data == null || data.size() == 0) {
Assert.state(false, "售后入库单data属性size不能为0");
Assert.notNull(ofsRertunOrder.getHeader(), "售后订表头不能为空!");
Assert.notNull(ofsRertunOrder.getDetails(), "售后订单表头");
RerturnGoodsOrderSearchHeader header = ofsRertunOrder.getHeader();
List<RerturnGoodsOrderSearchDetails> details1 = ofsRertunOrder.getDetails();
if (details1 == null || details1.size() == 0) {
Assert.state(false, "售后订单明细行不能为空size不能为0");
}
if (!(data.get(0).getHeader() != null && data.get(0).getDetails() != null)) {
Assert.state(false, "售后入库单header属性不能为空");
}
HeaderDto header1 = data.get(0).getHeader();
List<DetailsDto> details = data.get(0).getDetails();
for (int i = 0; i < details.size(); i++) {
DetailsDto detailsDto = details.get(i);
if (detailsDto.getId().equals(stockinB.getRefOrderDetailId())) {
return detailsDto;
for (int i = 0; i < details1.size(); i++) {
RerturnGoodsOrderSearchDetails rerturnGoodsOrderSearchDetails = details1.get(i);
if (rerturnGoodsOrderSearchDetails.getId().equals(stockinB.getRefOrderDetailId())) {
return rerturnGoodsOrderSearchDetails;
}
}
Assert.state(false, "通过售后入库单号({})无法匹配到售后订单", stockinB.getId());
@ -1543,4 +1652,62 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
Assert.notNull(targetSoSaleorderBEntity, "根据O出库单明细主键:{}无法匹配到U8C销售订单明细行");
return targetSoSaleorderBEntity;
}
private static final Object checkTobOrderLock = new Object();
/**
* 验证TOB销售订单是否已经生成如果已经生成则返回true,否则返回false
*
* @param ofsId ofs主键
* @param ofsCode ofs编码
* @author liuyang
*/
private Boolean checkTobOrder(String ofsId, String ofsCode) throws Exception {
Assert.notNull(ofsId, "ofsId不能为空");
Assert.notNull(ofsCode, "ofsCode不能为空");
synchronized (checkTobOrderLock) {
SoSaleEntity soSaleEntity = new SoSaleEntity();
soSaleEntity.setDr(0L);
soSaleEntity.setDataSourceCode("lets_u8c");
soSaleEntity.setVdef19(ofsCode);
soSaleEntity.setVdef20(ofsId);
soSaleEntity.setBretinvflag("Y");//仅查询销售订单
List<SoSaleEntity> soSaleEntityList = iSoSaleDao.query(soSaleEntity);
if (soSaleEntityList.size() > 0) {
SoSaleEntity soSaleEntity1 = soSaleEntityList.get(0);
logger.error("OFS销售出库单主键{} OFS销售出库单编码{} 该单据在U8C已经存在U8C销售订单并且销售订单编码为{} 对应的公司为:{}", ofsId, ofsCode, soSaleEntity1.getVreceiptcode(), soSaleEntity1.getPkCorp());
return true;
}
return false;
}
}
private static final Object checkTobSalesInvoiceLock = new Object();
/**
* 验证TOB销售发票是否已经生成仅验证负数的发票是否存在
*
* @param ofsId ofs销售出库单主键
* @param ofsCode ofs销售出库单编码
* @author liuyang
*/
private Boolean checkTobSalesInvoice(String ofsId, String ofsCode) throws Exception {
Assert.notNull(ofsId, "ofsId不能为空");
Assert.notNull(ofsCode, "ofsCode不能为空");
synchronized (checkTobSalesInvoiceLock) {
SoSaleinvoiceEntity soSaleinvoiceEntity = new SoSaleinvoiceEntity();
soSaleinvoiceEntity.setDr("0");
soSaleinvoiceEntity.setVdef19(ofsCode);
soSaleinvoiceEntity.setVdef20(ofsId);
soSaleinvoiceEntity.setDataSourceCode("lets_u8c");
soSaleinvoiceEntity.setVnote(VNOTETYPE);
List<SoSaleinvoiceEntity> soSaleinvoiceEntityList = iSoSaleinvoiceDao.query(soSaleinvoiceEntity);
if (soSaleinvoiceEntityList != null && soSaleinvoiceEntityList.size() > 0) {
SoSaleinvoiceEntity soSaleinvoiceEntity1 = soSaleinvoiceEntityList.get(0);
logger.error("OFS销售出库单主键{} OFS销售出库单编码{} 该单据在U8C已经存在U8C销售发票并且销售发票编码为{} 对应的公司为:{}", ofsId, ofsCode, soSaleinvoiceEntity1.getVreceiptcode(), soSaleinvoiceEntity1.getPkCorp());
return true;
}
}
return false;
}
}

View File

@ -5,6 +5,7 @@ import com.hzya.frame.plugin.lets.queryvo.ExtIntegrationTaskLivingDetailsQueryVo
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.DetailsDto;
import com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto;
import com.hzya.frame.ttxofs.dto.ofssalesordersearch.SaleOrderMessageDto;
import com.hzya.frame.ttxofs.dto.returngoodordersearch.RerturnGoodsOrderSearchData;
import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchDetailsDto;
import com.hzya.frame.ttxofs.dto.returngoodsearch.ReturnGoodSearchHeaderDto;
import com.hzya.frame.ttxofs.dto.stock.StockinOrderSearchResponse;
@ -85,7 +86,7 @@ public class OrderToBHeaderDto extends StockinOrderSearchResponse.StockinOrder.S
private BdDefdocEntity shopArchives;
/**
* TOB售后入库单表头
* TOB入库单表头
*/
private StockinOrderSearchResponse.StockinOrder.StockinH header;
@ -95,7 +96,7 @@ public class OrderToBHeaderDto extends StockinOrderSearchResponse.StockinOrder.S
private List<StockinOrderSearchResponse.StockinOrder.StockinB> details;
/**
* 订单
* OFS销售订单
*/
private SaleOrderMessageDto saleOrderMessageDto;
@ -123,4 +124,9 @@ public class OrderToBHeaderDto extends StockinOrderSearchResponse.StockinOrder.S
* 执行情况自定义项
*/
private List<ExtIntegrationTaskLivingDetailsQueryVo> extIntegrationTaskLivingDetailsQueryVos;
/**
* OFS售后订单
*/
private RerturnGoodsOrderSearchData ofsRertunOrder;
}

View File

@ -34,13 +34,13 @@ public class AfterSalesOrderUtil {
private OfsUnifiedService ofsUnifiedService;
/**
* 查询售后订单
* 查询OFS售后订单
*
* @author liuyang
*/
public SaleOrderMessageDto queryAfterSalesOrder(StockinOrderSearchResponse.StockinOrder.StockinH header) throws Exception {
if (header != null) {
//根据售后入库单查询订单
//根据售后入库单查询售订单
RerturnGoodsOrderSearchData ofsRertunOrder = getOfsRertunOrder(header.getRefOrderCode());
if (ofsRertunOrder == null || ofsRertunOrder.getHeader() == null || ofsRertunOrder.getDetails() == null) {
Assert.state(false, "根据OFS售后订单编码{},无法查询到售后订单信息!", header.getRefOrderCode());

View File

@ -25,13 +25,14 @@ public class QueryBdBusitypeUtil {
private IBdBusitypeDao iBdBusitypeDao;
public BdBusitypeEntity queryBdBusitype(String businame) {
String pkGroup = "0001";
//查询业务流程
String pkGroup = "@@@@";
BdBusitypeEntity bdBusitypeEntity = new BdBusitypeEntity();
bdBusitypeEntity.setDataSourceCode("lets_u8c");
bdBusitypeEntity.setBusiname(businame);
//2024年8月26日 11:03:06 和浪哥沟通取pkCorp为4个@的业务流程
//2024年8月30日 13:49:54 @@@@为U8C预设的业务流程和妮姐沟通后所有流程取集团对应的业务流程
//2024年8月30日 15:28:34 目前在集团创建的业务流程数据库里的pk_corp为@@@@已经向集团老师询问清楚目前的逻辑目前暂时使用@@@@这一行
// bdBusitypeEntity.setPkCorp(pkCorp);
bdBusitypeEntity.setPkCorp(pkGroup);
bdBusitypeEntity.setDr(0);

View File

@ -48,4 +48,7 @@
<bean name="tocofsSaleoutDao" class="com.hzya.frame.plugin.lets.ofs.dao.impl.TocofsSaleoutDaoImpl"/>
<bean name="tocofsSaleoutDetailedDaoImpl" class="com.hzya.frame.plugin.lets.ofs.dao.impl.TocofsSaleoutDetailedDaoImpl"/>
<bean name="bdPurorgDao" class="com.hzya.frame.plugin.lets.dao.impl.BdPurorgDaoImpl"/>
<bean name="soSaleinvoiceDao" class="com.hzya.frame.plugin.lets.dao.impl.SoSaleinvoiceDaoImpl"/>
<bean name="soSaleinvoiceBDao" class="com.hzya.frame.plugin.lets.dao.impl.SoSaleinvoiceBDaoImpl"/>
</beans>

View File

@ -29,7 +29,11 @@ public class SoSaleReturnPluginInitializerToBTest {
public void startImplement() {
try {
// soSaleReturnPluginInitializerToB.startImplement(null, null);
// soSaleReturnPluginInitializerToB.startImplement("LETS-RE2024081900000001");
// soSaleReturnPluginInitializerToB.startImplementByCode("LETS-RE2024083000000001");
//测试TOB退货
//测试TOB退货-确认收入
soSaleReturnPluginInitializerToB.startImplementByTradeTime("2024-08-30 15:54:41", "2024-08-30 15:54:43");
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -49,7 +49,9 @@ public class BaseEntity implements Serializable {
*/
private String org_id;
/** 公司id */
/**
* 公司id
*/
private String companyId;
/**
* 状态
@ -239,7 +241,7 @@ public class BaseEntity implements Serializable {
}
public BaseEntity() {
this.dataSourceCode = "master";
this.dataSourceCode = "master";
}
public Long getSorts() {
@ -268,6 +270,7 @@ public class BaseEntity implements Serializable {
this.setOrg_id("0");
this.setCompanyId("0");
}
//修改信息
public void setUpdate() {
this.setModify_user_id(StpUtil.getLoginIdAsString());

View File

@ -66,6 +66,8 @@ public class StockinOrderSearchResponse extends ReturnMessageBasics {
private String shipFromAddressCode;
private String shipAt;
private String tradeSuccessAt;
private String refundedAt;//OFS退款完成时间
private String refundStatus;//OFS退款完成状态
}
@Data