|
|
@@ -242,14 +242,16 @@ public class ERPServiceImpl implements ERPService {
|
|
|
AccountRegisterMain accountRegisterMain = accountRegisterReq.getAccountRegisterMain();
|
|
|
|
|
|
String ev = accountRegisterMain.getEv();
|
|
|
+ String master = "BSD_HK.";
|
|
|
if("qxkw".equals(ev)){
|
|
|
SpObserver.putSp("QXKW");
|
|
|
+ master = "QXKW.";
|
|
|
}else if("bsdhk".equals(ev)){
|
|
|
SpObserver.putSp("BSD_HK");
|
|
|
}
|
|
|
|
|
|
- int ar_id = baseDao.getSeqId("ACCOUNTREGISTER_SEQ");
|
|
|
- String code = baseDao.sGetMaxNumber("AccountRegister", 2);
|
|
|
+ int ar_id = baseDao.getSeqId(master+"ACCOUNTREGISTER_SEQ");
|
|
|
+ String code = baseDao.sGetMaxNumber(master+"AccountRegister", 2);
|
|
|
List<String> sqls = new ArrayList<>();
|
|
|
|
|
|
// 应收票据收款、应付票据付款 必须有来源,不允许手工新增
|
|
|
@@ -286,7 +288,7 @@ public class ERPServiceImpl implements ERPService {
|
|
|
Object date = (Object) accountRegisterMain.getDate();
|
|
|
baseDao.checkCloseMonth("MONTH-B", date);
|
|
|
|
|
|
- boolean bool = baseDao.checkIf("PeriodsDetail", "pd_code='MONTH-B' and pd_status=99 and pd_detno=to_char(to_date('" + date
|
|
|
+ boolean bool = baseDao.checkIf(master+"PeriodsDetail", "pd_code='MONTH-B' and pd_status=99 and pd_detno=to_char(to_date('" + date
|
|
|
+ "','yyyy-mm-dd hh24:mi:ss'), 'yyyymm')");
|
|
|
if (bool) {
|
|
|
return ApiResponse.failRsp("102",type + " 单据日期所属期间已结账,不允许进行当前操作!");
|
|
|
@@ -314,7 +316,7 @@ public class ERPServiceImpl implements ERPService {
|
|
|
String ar_departmentcode = accountRegisterMain.getDepartmentcode() == null ? "" : accountRegisterMain.getDepartmentcode();
|
|
|
String ar_departmentname = accountRegisterMain.getDepartmentname() == null ? "" : accountRegisterMain.getDepartmentname();
|
|
|
//String ar_cateid = accountRegisterMain.getType() == null ? "" : accountRegisterMain.getType();
|
|
|
- String Sql="insert into AccountRegister(ar_id,ar_code,ar_date,ar_type,ar_currencytype,ar_accountcode,ar_accountname,ar_accountcurrency,ar_accountrate" +
|
|
|
+ String Sql="insert into "+master+"AccountRegister(ar_id,ar_code,ar_date,ar_type,ar_currencytype,ar_accountcode,ar_accountname,ar_accountcurrency,ar_accountrate" +
|
|
|
",ar_payment,ar_departmentcode,ar_departmentname,ar_cateid,ar_emid,ar_recordman,ar_status,ar_statuscode,ar_poststatus,ar_poststatuscode)" +
|
|
|
"values("+ar_id+",'"+code+"',to_date('"+ar_date+"','yyyy-MM-dd'),'"+ar_type+"','"+ar_currencytype+"','"+ar_accountcode+"'," +
|
|
|
"'"+ar_accountname+"','"+ar_accountcurrency+"',"+accountRegisterMain.getAccountrate()+"," +
|
|
|
@@ -326,8 +328,8 @@ public class ERPServiceImpl implements ERPService {
|
|
|
|
|
|
List<AccountRegisterDetail2> accountRegisterDetail2s = accountRegisterReq.getListDetail2();
|
|
|
for (AccountRegisterDetail1 accountRegisterDetail1: accountRegisterDetail1s) {
|
|
|
- int ard_id = baseDao.getSeqId("ACCOUNTREGISTERDETAIL_SEQ");
|
|
|
- Sql="insert into AccountRegisterDetail(ard_id,ard_arid,ard_detno,ard_explanation,ard_catecode,ard_catedesc,ard_currency,ard_rate,ard_doubledebit,ard_debit,ard_doublecredit,ard_credit)" +
|
|
|
+ int ard_id = baseDao.getSeqId(master+"ACCOUNTREGISTERDETAIL_SEQ");
|
|
|
+ Sql="insert into "+master+"AccountRegisterDetail(ard_id,ard_arid,ard_detno,ard_explanation,ard_catecode,ard_catedesc,ard_currency,ard_rate,ard_doubledebit,ard_debit,ard_doublecredit,ard_credit)" +
|
|
|
"values("+ard_id+","+ar_id+","+accountRegisterDetail1.getDetno()+",'"+accountRegisterDetail1.getExplanation()+"','"+accountRegisterDetail1.getCatecode()+"','"+
|
|
|
accountRegisterDetail1.getCatedesc()+"','"+accountRegisterDetail1.getCurrency()+"',"+accountRegisterDetail1.getRate()+","+accountRegisterDetail1.getDoubledebit()+","+accountRegisterDetail1.getDebit()+","+accountRegisterDetail1.getDoublecredit()+","+accountRegisterDetail1.getCredit() +")";
|
|
|
sqls.add(Sql);
|
|
|
@@ -335,7 +337,7 @@ public class ERPServiceImpl implements ERPService {
|
|
|
|
|
|
for (AccountRegisterDetail2 accountRegisterDetail2: accountRegisterDetail2s) {
|
|
|
if (accountRegisterDetail2.getDetailFkId().doubleValue() == accountRegisterDetail1.getDetailId().doubleValue()){
|
|
|
- Sql="insert into ACCOUNTREGISTERDETAILASS(ARS_ID, ARS_ARDID, ARS_DETNO, ARS_ASSTYPE, ARS_ASSCODE, ARS_ASSNAME, ARS_TYPE)" +
|
|
|
+ Sql="insert into "+master+"ACCOUNTREGISTERDETAILASS(ARS_ID, ARS_ARDID, ARS_DETNO, ARS_ASSTYPE, ARS_ASSCODE, ARS_ASSNAME, ARS_TYPE)" +
|
|
|
"values(ACCOUNTREGISTERDETAILASS_seq.nextval,"+ard_id+","+accountRegisterDetail2.getDetno()+",'"+accountRegisterDetail2.getAsstype()+"','"+accountRegisterDetail2.getAsscode()+"','"+
|
|
|
accountRegisterDetail2.getAssname()+"','AccountRegister!Bank')";
|
|
|
sqls.add(Sql);
|
|
|
@@ -345,66 +347,66 @@ public class ERPServiceImpl implements ERPService {
|
|
|
baseDao.execute(sqls);
|
|
|
String defaultCurr = baseDao.getDBSetting(caller, "fyCurr");
|
|
|
if(defaultCurr != null){
|
|
|
- baseDao.execute("update accountregisterdetail set ard_currency='"+defaultCurr+"' WHERE ard_arid in (select ar_id from accountregister where ar_id=" + ar_id +" and nvl(ar_currencytype,0)<>0 and ar_type='费用') and nvl(ard_currency,' ')=' '");
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetail set ard_currency='"+defaultCurr+"' WHERE ard_arid in (select ar_id from "+master+"accountregister where ar_id=" + ar_id +" and nvl(ar_currencytype,0)<>0 and ar_type='费用') and nvl(ard_currency,' ')=' '");
|
|
|
}
|
|
|
- baseDao.execute("update accountregisterdetail set ard_rate=(select cm_crrate from CurrencysMonth,accountregister where ard_arid=ar_id and cm_crname=ard_currency "
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetail set ard_rate=(select cm_crrate from "+master+"CurrencysMonth,"+master+"accountregister where ard_arid=ar_id and cm_crname=ard_currency "
|
|
|
+ " and CM_YEARMONTH=to_char(ar_date,'yyyymm')) where ard_arid=" + ar_id + " and nvl(ard_currency,' ')<>' '");
|
|
|
- baseDao.execute("update accountregisterdetail set ard_debit=round(ard_rate*ard_doubledebit,2) where nvl(ard_doubledebit,0)<>0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetail set ard_debit=round(ard_rate*ard_doubledebit,2) where nvl(ard_doubledebit,0)<>0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ ar_id);
|
|
|
- baseDao.execute("update accountregisterdetail set ard_credit=round(ard_rate*ard_doublecredit,2) where nvl(ard_doublecredit,0)<>0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetail set ard_credit=round(ard_rate*ard_doublecredit,2) where nvl(ard_doublecredit,0)<>0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ ar_id);
|
|
|
- baseDao.execute("update accountregisterdetail set ard_doubledebit=round(ard_debit/ard_rate,2) where nvl(ard_doubledebit,0)=0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetail set ard_doubledebit=round(ard_debit/ard_rate,2) where nvl(ard_doubledebit,0)=0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ ar_id);
|
|
|
- baseDao.execute("update accountregisterdetail set ard_doublecredit=round(ard_credit/ard_rate,2) where nvl(ard_doublecredit,0)=0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetail set ard_doublecredit=round(ard_credit/ard_rate,2) where nvl(ard_doublecredit,0)=0 and nvl(ard_rate,0)<>0 and ard_arid="
|
|
|
+ ar_id);
|
|
|
- String insertAssDetSql = "insert into accountregisterdetailass(ars_id,ars_ardid,ars_detno,ars_asstype,ars_asscode,ars_assname,ars_type) values (?,?,?,?,?,?,'AccountRegister!Bank')";
|
|
|
+ String insertAssDetSql = "insert into "+master+"accountregisterdetailass(ars_id,ars_ardid,ars_detno,ars_asstype,ars_asscode,ars_assname,ars_type) values (?,?,?,?,?,?,'AccountRegister!Bank')";
|
|
|
SqlRowList rs = baseDao
|
|
|
.queryForRowSet(
|
|
|
- "select * from accountregister left join accountregisterdetail on ard_arid=ar_id where ard_arid=? and nvl(ard_catecode,' ')<>' '",
|
|
|
+ "select * from "+master+"accountregister left join "+master+"accountregisterdetail on ard_arid=ar_id where ard_arid=? and nvl(ard_catecode,' ')<>' '",
|
|
|
ar_id);
|
|
|
while (rs.next()) {
|
|
|
Object catecode = rs.getObject("ard_catecode");
|
|
|
int ardid = rs.getInt("ard_id");
|
|
|
- SqlRowList ass = baseDao.queryForRowSet("select ca_assname from category where ca_code=? and nvl(ca_assname,' ')<>' '",
|
|
|
+ SqlRowList ass = baseDao.queryForRowSet("select ca_assname from "+master+"category where ca_code=? and nvl(ca_assname,' ')<>' '",
|
|
|
catecode);
|
|
|
if (ass.next()) {
|
|
|
String assStr = ass.getString("ca_assname");
|
|
|
String[] codes = assStr.split("#");
|
|
|
for (String assname : codes) {
|
|
|
- int i = baseDao.getCount("select count(1) from accountregisterdetailass where ars_ardid=" + ardid
|
|
|
+ int i = baseDao.getCount("select count(1) from "+master+"accountregisterdetailass where ars_ardid=" + ardid
|
|
|
+ " and ARS_ASSTYPE='" + assname + "'");
|
|
|
if (i == 0) {
|
|
|
- Object maxno = baseDao.getFieldDataByCondition("accountregisterdetailass", "max(nvl(ars_detno,0))", "ars_ardid="
|
|
|
+ Object maxno = baseDao.getFieldDataByCondition(master+"accountregisterdetailass", "max(nvl(ars_detno,0))", "ars_ardid="
|
|
|
+ ardid);
|
|
|
maxno = maxno == null ? 0 : maxno;
|
|
|
int detno = Integer.parseInt(maxno.toString()) + 1;
|
|
|
- int arsid = baseDao.getSeqId("ACCOUNTREGISTERDETAILASS_SEQ");
|
|
|
+ int arsid = baseDao.getSeqId(master+"ACCOUNTREGISTERDETAILASS_SEQ");
|
|
|
baseDao.execute(insertAssDetSql, new Object[] { arsid, ardid, detno, assname, null, null });
|
|
|
}
|
|
|
- int arsid = baseDao.getFieldValue("accountregisterdetailass", "ars_id", "ars_ardid=" + ardid + " and ARS_ASSTYPE='"
|
|
|
+ int arsid = baseDao.getFieldValue(master+"accountregisterdetailass", "ars_id", "ars_ardid=" + ardid + " and ARS_ASSTYPE='"
|
|
|
+ assname + "'", Integer.class);
|
|
|
if ("部门".equals(assname) && StringUtil.hasText(rs.getObject("ar_departmentcode"))) {
|
|
|
- baseDao.execute("update accountregisterdetailass set ars_asscode='" + rs.getObject("ar_departmentcode")
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetailass set ars_asscode='" + rs.getObject("ar_departmentcode")
|
|
|
+ "', ars_assname='" + rs.getObject("ar_departmentname") + "' where ars_id=" + arsid
|
|
|
+ " and nvl(ars_asscode,' ')=' '");
|
|
|
}
|
|
|
if ("项目".equals(assname) && StringUtil.hasText(rs.getObject("ar_prjcode"))) {
|
|
|
- baseDao.execute("update accountregisterdetailass set ars_asscode='" + rs.getObject("ar_prjcode")
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetailass set ars_asscode='" + rs.getObject("ar_prjcode")
|
|
|
+ "', ars_assname='" + rs.getObject("ar_prjname") + "' where ars_id=" + arsid
|
|
|
+ " and nvl(ars_asscode,' ')=' '");
|
|
|
}
|
|
|
if ("客户往来".equals(assname) && StringUtil.hasText(rs.getObject("ar_custcode"))) {
|
|
|
- baseDao.execute("update accountregisterdetailass set ars_asscode='" + rs.getObject("ar_custcode")
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetailass set ars_asscode='" + rs.getObject("ar_custcode")
|
|
|
+ "', ars_assname='" + rs.getObject("ar_custname") + "' where ars_id=" + arsid
|
|
|
+ " and nvl(ars_asscode,' ')=' '" + " and nvl(ars_asscode,' ')=' '");
|
|
|
}
|
|
|
if ("供应商往来".equals(assname) && StringUtil.hasText(rs.getObject("ar_vendcode"))) {
|
|
|
- baseDao.execute("update accountregisterdetailass set ars_asscode='" + rs.getObject("ar_vendcode")
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetailass set ars_asscode='" + rs.getObject("ar_vendcode")
|
|
|
+ "', ars_assname='" + rs.getObject("ar_vendname") + "' where ars_id=" + arsid
|
|
|
+ " and nvl(ars_asscode,' ')=' '" + " and nvl(ars_asscode,' ')=' '");
|
|
|
}
|
|
|
if ("员工".equals(assname) && StringUtil.hasText(rs.getObject("ar_emcode"))) {
|
|
|
- baseDao.execute("update accountregisterdetailass set ars_asscode='" + rs.getObject("ar_emcode")
|
|
|
+ baseDao.execute("update "+master+"accountregisterdetailass set ars_asscode='" + rs.getObject("ar_emcode")
|
|
|
+ "', ars_assname='" + rs.getObject("ar_emname") + "' where ars_id=" + arsid
|
|
|
+ " and nvl(ars_asscode,' ')=' '" + " and nvl(ars_asscode,' ')=' '");
|
|
|
}
|