日结修改
diff --git a/src/main/java/com/supwisdom/dlpay/consume/controller/TestAction.java b/src/main/java/com/supwisdom/dlpay/consume/controller/TestAction.java
index 4883502..a53e942 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/controller/TestAction.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/controller/TestAction.java
@@ -1,6 +1,7 @@
package com.supwisdom.dlpay.consume.controller;
import com.supwisdom.dlpay.consume.bean.BaseResp;
+import com.supwisdom.dlpay.consume.service.TestService;
import com.supwisdom.dlpay.framework.data.SystemDateTime;
import com.supwisdom.dlpay.framework.service.SystemUtilService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,11 +13,15 @@
public class TestAction {
@Autowired
private SystemUtilService systemUtilService;
+ @Autowired
+ private TestService testService;
@RequestMapping("/demo")
public BaseResp test() {
SystemDateTime dt = systemUtilService.getSysdatetime();
+ testService.doTest();
+
BaseResp resp = new BaseResp();
resp.setRetcode("0");
resp.setRetmsg("OK");
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TDebitCreditDtlPK.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TDebitCreditDtlPK.java
index 02e15e9..12254a8 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/domain/TDebitCreditDtlPK.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/domain/TDebitCreditDtlPK.java
@@ -2,8 +2,9 @@
import javax.persistence.Column;
import javax.persistence.Id;
+import java.io.Serializable;
-public class TDebitCreditDtlPK {
+public class TDebitCreditDtlPK implements Serializable {
@Id
@Column(name = "REFNO", nullable = false, length = 32)
private String refno;
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
index b6d95e8..5a80eab 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
@@ -14,6 +14,10 @@
@Lock(value = LockModeType.PESSIMISTIC_FORCE_INCREMENT)
TSettlectl findByBooksetno(Integer booksetno);
+ @Lock(value = LockModeType.PESSIMISTIC_FORCE_INCREMENT)
+ @Query(value = "from TSettlectl where booksetno=:booksetno ")
+ TSettlectl findByBooksetnoWithLock(@RequestParam("booksetno") Integer booksetno);
+
@Query(value = "update TB_SETTLECTL set PERIOD_YEAR=:peridyear,PERIOD_MONTH=:peridmonth where BOOKSETNO=1 ", nativeQuery = true)
void updateSettlePeriod(@RequestParam("peridyear") int peridyear, @RequestParam("peridmonth") int peridmonth);
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
index e218b13..eac1aa2 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
@@ -17,9 +17,12 @@
@Query(value = "select t.SHOPACCNO as accno from TB_SHOPACC t left join TB_SHOPACCBAL a on t.SHOPACCNO=a.SHOPACCNO where a.SHOPACCNO is null ", nativeQuery = true)
List<AccnoBean> getNewShopacc();
- @Query(value = "select count(t.*) as existed from TB_SHOPACCBAL t left join TB_SHOPACCBAL a on t.SHOPACCNO=a.SHOPACCNO where a.SHOPACCNO is null and t.STATUS='normal' ", nativeQuery = true)
+ @Query(value = "select count(t.*) as existed from TB_SHOPACC t left join TB_SHOPACCBAL a on t.SHOPACCNO=a.SHOPACCNO where a.SHOPACCNO is null and t.STATUS='normal' ", nativeQuery = true)
ExistBean checkSettleShopacc();
@Query(value = "select shopname from TShopacc where shopaccno=:shopaccno ")
AccnameBean getShopname(@RequestParam("shopaccno") String shopaccno);
+
+ @Query(value = "select t.SHOPACCNO as accno from TB_SHOPACC t left join TB_SHOPACCBAL a on t.SHOPACCNO=a.SHOPACCNO where a.SHOPACCNO is null and t.opendate>=:settday ", nativeQuery = true)
+ List<AccnoBean> getNewAddShopacc(@RequestParam("settday") String settday);
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccbalDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccbalDao.java
index 7010d29..2bd91c0 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccbalDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccbalDao.java
@@ -2,10 +2,12 @@
import com.supwisdom.dlpay.framework.domain.TShopaccbal;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestParam;
+import javax.persistence.LockModeType;
import java.util.List;
@Repository
@@ -14,4 +16,8 @@
@Query(value = "select t.* from TB_SHOPACCBAL t left join (select shopaccno from TB_SHOPACCDAY where accdate=:lastsettday ) a on t.shopaccno=a.shopaccno where a.shopaccno is null ", nativeQuery = true)
List<TShopaccbal> getUnsettleShopacc(@RequestParam("lastsettday") String lastsettday);
+ @Lock(LockModeType.PESSIMISTIC_FORCE_INCREMENT)
+ @Query(value = "from TShopaccbal where shopaccno=:shopaccno ")
+ TShopaccbal getTShopaccbalByIdWithLock(@RequestParam("shopaccno")String shopaccno);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
index 02d9e16..3aacfe3 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
@@ -5,10 +5,12 @@
import com.supwisdom.dlpay.framework.data.SubjectInfoBean;
import com.supwisdom.dlpay.framework.domain.TSubjectbal;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestParam;
+import javax.persistence.LockModeType;
import java.util.List;
@Repository
@@ -25,4 +27,8 @@
@Query(value = "select case when :balflag=1 then sum(drbal) else sum(crbal) end as amount from tb_subjectbal where subjno in (select subjno from tb_subject where endflag=1 and balflag=:balflag )",nativeQuery = true)
AmountBean getSumEndsubjectBalByEndflag(@RequestParam("balflag")Integer balflag);
+
+ @Lock(LockModeType.PESSIMISTIC_FORCE_INCREMENT)
+ @Query("from TSubjectbal where subjno=:subjno ")
+ TSubjectbal getTSubjectbalBySubjnoWithLock(@RequestParam("subjno")String subjno);
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java
index 782e1b5..e9b3a37 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/TaskLockDao.java
@@ -17,6 +17,17 @@
@Query("select a from TTaskLock a where a.taskcode=:taskcode")
TTaskLock getTaskLockWithLock(@RequestParam("taskcode") String taskcode);
+ //================= database=Oracle =================//
@Query(value = "select to_char(sysdate,'yyyymmdd') as hostdate,to_char(sysdate,'hh24miss') as hosttime,to_char(sysdate,'yyyymmddhh24miss') as hostdatetime, sysdate from dual", nativeQuery = true)
SystemDateTime getOracleDatetime();
+
+ @Query(value = " select to_char(sysdate,'yyyyMMddhh24miss')||to_char(SEQ_REFNO.nextval,'FM000000') as billno from dual ", nativeQuery = true)
+ String getOracleRefno();
+
+
+
+
+ //================= database=PG =================//
+ @Query(value = " select to_char(CURRENT_TIMESTAMP,'yyyyMMddhh24miss')||to_char(nextval('SEQ_REFNO'),'FM000000') as billno ", nativeQuery = true)
+ String getPgRefno();
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
index b670572..f331a6b 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
@@ -31,4 +31,8 @@
@Query(value = "select sum(va.dramt) as dramt, sum(va.cramt) as cramt from TB_VOUCHERENTRY va,TB_VOUCHER vb where va.voucherid=vb.voucherid and vb.voucherdate=:voucherdate and va.subjno=:subjno ", nativeQuery = true)
MerchBean getSettleSuminfo(@RequestParam("voucherdate") Integer voucherdate, @RequestParam("subjno") String subjno);
+
+ @Lock(LockModeType.PESSIMISTIC_FORCE_INCREMENT)
+ @Query(value = "from TVoucher where voucherid=:voucherid ")
+ TVoucher findByVoucheridWithLock(@RequestParam("voucherid") String voucherid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
index 37e9c1e..2bb4664 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
@@ -3,10 +3,12 @@
import com.supwisdom.dlpay.framework.domain.TVoucherEntry;
import com.supwisdom.dlpay.framework.domain.TVoucherEntryPK;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Lock;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestParam;
+import javax.persistence.LockModeType;
import java.util.List;
@Repository
@@ -16,4 +18,8 @@
@Query(value = "from TVoucherEntry where voucherid in (select voucherid from TVoucher where voucherdate=:voucherdate) order by subjno,accno,voucherid ")
List<TVoucherEntry> getVoucherEntryByVoucherdate(@RequestParam("voucherdate") Integer voucherdate);
+
+ @Lock(LockModeType.PESSIMISTIC_FORCE_INCREMENT)
+ @Query(value = "from TVoucherEntry t where t.voucherid=:voucherid ")
+ List<TVoucherEntry> getVoucherEntryByVoucherid(@RequestParam("voucherid")String voucherid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
index 44757b7..8b010c4 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
@@ -18,6 +18,15 @@
@Column(name = "VOUCHERNO", nullable = false, precision = 9)
private Integer voucherno;
+ public TVouchernoCtl() {
+ }
+
+ public TVouchernoCtl(Integer vouchertype, Integer periodMonth, Integer voucherno) {
+ this.vouchertype = vouchertype;
+ this.periodMonth = periodMonth;
+ this.voucherno = voucherno;
+ }
+
public Integer getVouchertype() {
return vouchertype;
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java b/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
index 3891fc2..d3318f0 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
@@ -4,10 +4,16 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
+/**
+ * 日终结算
+ * */
public interface DayendSettleService {
TSettleLog doCreateSettleLog();
TSettleLog doUpdateSettleLog(TSettleLog log);
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
- boolean doDayendSettle() throws Exception;
+ boolean doDayendSettle() throws Exception; //日结
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ boolean doVoucherSettle(String voucherid) throws Exception; //指定凭证入账
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java b/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java
new file mode 100644
index 0000000..110f0e2
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/DayendStatisticsService.java
@@ -0,0 +1,13 @@
+package com.supwisdom.dlpay.framework.service;
+
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 日终统计
+ * */
+public interface DayendStatisticsService {
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+ boolean doDayendStatistics() throws Exception; //日结后统计
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
index ede550b..21d2793 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/SystemUtilService.java
@@ -7,13 +7,37 @@
public interface SystemUtilService {
+ /**
+ * 取数据库日期
+ * */
SystemDateTime getSysdatetime();
+ /**
+ * 更新任务表
+ * */
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
TTaskLock updateTaskLock(TTaskLock lock);
+ /**
+ * 取任务表
+ * */
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
TTaskLock doLockTask(String taskcode, Integer minRecover, String remark);
+ /**
+ * 获取记账日期
+ * */
+ String getAccdate();
+
+ /**
+ * 获取流水号
+ * */
+ String getRefno();
+
+ /**
+ * 按交易码取交易名称
+ */
+ String getTranscodeName(int transocde, String defaultValue);
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
index c4c2d09..e575ab8 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
@@ -138,8 +138,8 @@
@Override
public boolean doDayendSettle() throws Exception {
- TSettlectl tSettlectl = settleCtlDao.findByBooksetno(1);
- if (null == tSettlectl) {
+ TSettlectl tSettlectl = settleCtlDao.findByBooksetnoWithLock(1);
+ if (null == tSettlectl || null == tSettlectl.getBooksetno()) {
throw new Exception("初始化错误,T_SETTLECTL 无初始化数据");
}
tSettlectl.setStatus(1); //结算标记
@@ -226,7 +226,7 @@
//用户交易凭证
List<VoucherTemp> userList = debitCreditDtlDao.getVoucherData(String.valueOf(settledate));
- if(!StringUtil.isEmpty(userList)){
+ if (!StringUtil.isEmpty(userList)) {
for (VoucherTemp temp : userList) {
saveVoucher(temp);
}
@@ -243,7 +243,7 @@
}
int voucherno = vouchernoCtl.getVoucherno();
List<TVoucher> voucherList = voucherDao.getSettleVouchers();
- if (StringUtil.isEmpty(voucherList)) {
+ if (!StringUtil.isEmpty(voucherList)) {
for (TVoucher voucher : voucherList) {
voucherno++;
voucher.setVoucherno(voucherno);
@@ -257,7 +257,7 @@
Map<String, Double> v_merchbaldict = new HashMap<String, Double>(0);
//根据商户昨天日结表生成当天日结表(交易前余额), 新增商户添加记录(交易前余额为商户余额)
List<TShopaccday> lastShopaccdays = shopaccdayDao.getShopaccdayByAccdate(String.valueOf(lastsettday));
- if (StringUtil.isEmpty(lastShopaccdays)) {
+ if (!StringUtil.isEmpty(lastShopaccdays)) {
for (TShopaccday lastday : lastShopaccdays) {
TShopaccday today = new TShopaccday(String.valueOf(settledate), lastday.getShopaccno(), periodYear, periodMonth, lastday.getBalance(), 0D, 0D, 0D);
shopaccdayDao.save(today);
@@ -295,7 +295,7 @@
}
}
List<TSubjectbal> newSubjectBals = subjectbalDao.getUnsettleSubjectbal(String.valueOf(lastsettday));
- if (StringUtil.isEmpty(newSubjectBals)) {
+ if (!StringUtil.isEmpty(newSubjectBals)) {
for (TSubjectbal newSubject : newSubjectBals) {
TSubjectday today = new TSubjectday(String.valueOf(settledate), newSubject.getSubjno(), periodYear, periodMonth, newSubject.getBegindrbal(), newSubject.getBegincrbal(), 0D, 0D, 0D, 0D);
subjectdayDao.save(today);
@@ -320,7 +320,7 @@
Map<String, Double> v_subjbaldict = new HashMap<String, Double>(0);
Map<String, Integer> v_subjbalflagdict = new HashMap<String, Integer>(0);
List<MerchBean> subjectList = subjectdayDao.getEndSubjectbalInfos(String.valueOf(settledate));
- if (StringUtil.isEmpty(subjectList)) {
+ if (!StringUtil.isEmpty(subjectList)) {
for (MerchBean bean : subjectList) {
v_subjbaldict.put(bean.getShopaccno(), MoneyUtil.formatYuan(bean.getDramt() + bean.getCramt()));
}
@@ -461,8 +461,118 @@
//日切
tSettlectl.setStatus(0); //清标记
- tSettlectl.setSettledate(Integer.valueOf(DateUtil.getNewDay(String.valueOf(settledate),1)));
+ tSettlectl.setSettledate(Integer.valueOf(DateUtil.getNewDay(String.valueOf(settledate), 1)));
tSettlectl.setUpdtime(systemUtilService.getSysdatetime().getHostdatetime());
return true;
}
+
+ @Override
+ public boolean doVoucherSettle(String voucherid) throws Exception {
+ if (StringUtil.isEmpty(voucherid)) throw new Exception("参数为空");
+
+ TSettlectl settlectl = settleCtlDao.findByBooksetno(1);
+ if (null == settlectl || null == settlectl.getBooksetno()) {
+ throw new Exception("系统初始化参数错误");
+ }
+
+// int hostDate = Integer.valueOf(systemUtilService.getSysdatetime().getHostdatetime());
+// int prdyear = settlectl.getPeriodYear();
+// int prdmonth = settlectl.getPeriodMonth();
+ int settday = settlectl.getSettledate();
+
+ List<AccnoBean> newShopList = shopaccDao.getNewAddShopacc(String.valueOf(settday));
+ if (!StringUtil.isEmpty(newShopList)) {
+ for (AccnoBean accno : newShopList) {
+ TShopaccbal shopBal = new TShopaccbal(accno.getAccno());
+ shopaccbalDao.save(shopBal);
+ }
+ }
+ if (shopaccDao.checkSettleShopacc().getExisted() > 0) {
+ throw new Exception("初始化数据错误:商户余额表数据没有包含所有有效的商户账户余额");
+ }
+
+ //新增科目插入科目余额表(末级科目)
+ List<AccnoBean> newEndsubjectList = subjectDao.getNewSubject();
+ if (!StringUtil.isEmpty(newEndsubjectList)) {
+ for (AccnoBean bean : newEndsubjectList) {
+ TSubjectbal subjectbal = new TSubjectbal(bean.getAccno());
+ subjectbalDao.save(subjectbal);
+ }
+ }
+ if (subjectDao.checkSettleSubject().getExisted() > 0) {
+ throw new Exception("初始化数据错误:科目余额表数据没有包含所有的科目余额");
+ }
+
+ TVoucher voucher = voucherDao.findByVoucheridWithLock(voucherid);
+ List<TVoucherEntry> entryList = voucherEntryDao.getVoucherEntryByVoucherid(voucherid);
+ if (null == voucher) {
+ throw new Exception("凭证查询无记录");
+ } else if ("auto".equals(voucher.getSourcetype())) {
+ throw new Exception("该凭证不是手工录入凭证");
+ } else if (voucher.getCheckflag() != 1) {
+ throw new Exception("该凭证未审核");
+ } else if (StringUtil.isEmpty(voucher.getSummary())) {
+ throw new Exception("摘要不能为空");
+ } else if (voucher.getPostflag() == 1) {
+ throw new Exception("凭证已入账");
+ }
+
+ if (StringUtil.isEmpty(entryList)) {
+ throw new Exception("凭证无借贷明细!");
+ }
+
+ //凭证号
+ TVouchernoCtl vouchernoCtl = vouchernoCtlDao.getVoucherno();
+ if (null == vouchernoCtl) {
+ vouchernoCtl = new TVouchernoCtl(1, periodMonth, 0);
+ vouchernoCtlDao.save(vouchernoCtl);
+ }
+ int voucherno = vouchernoCtl.getVoucherno() + 1;
+ vouchernoCtl.setVoucherno(voucherno);
+ vouchernoCtlDao.save(vouchernoCtl);
+
+ voucher.setVoucherno(voucherno);
+ voucher.setPostflag(1);
+ voucherDao.save(voucher); //修改凭证表凭证号、入账标志
+
+ //明细
+ for (TVoucherEntry entry : entryList) {
+ if (TradeDict.SUBJNO_SHOP.equals(entry.getSubjno())) {
+ TShopaccbal tShopaccbal = shopaccbalDao.getTShopaccbalByIdWithLock(entry.getAccno());
+ if (null == tShopaccbal) {
+ throw new Exception("商户表商户账号[" + entry.getAccno() + "]不存在");
+ }
+ tShopaccbal.setBalance(tShopaccbal.getBeginbal() + entry.getCramt() - entry.getDramt());
+ shopaccbalDao.save(tShopaccbal);
+ entry.setBalflag(2);
+ entry.setBalance(tShopaccbal.getBalance());
+ } else {
+ TSubjectbal tSubjectbal = subjectbalDao.getTSubjectbalBySubjnoWithLock(entry.getSubjno());
+ TSubject subject = subjectDao.getOne(entry.getSubjno());
+ if (null == tSubjectbal || null == subject) {
+ throw new Exception("科目表科目号[" + entry.getSubjno() + "]不存在");
+ } else if (subject.getEndflag() != 1) {
+ throw new Exception("科目[" + entry.getSubjno() + "]非末级科目");
+ }
+ entry.setBalflag(subject.getBalflag());
+ if (subject.getBalflag() == 1) {
+ tSubjectbal.setDrbal(tSubjectbal.getDrbal() + entry.getDramt() - entry.getCramt());
+ entry.setBalance(tSubjectbal.getDrbal());
+ } else {
+ tSubjectbal.setCrbal(tSubjectbal.getCrbal() - entry.getDramt() + entry.getCramt());
+ entry.setBalance(tSubjectbal.getCrbal());
+ }
+ subjectbalDao.save(tSubjectbal);
+ }
+
+ if (!StringUtil.isEmpty(entry.getOppaccno())) {
+ entry.setOppname(shopaccDao.getShopname(entry.getOppaccno()).getAccname());
+ } else {
+ entry.setOppname(subjectDao.getSubjectname(entry.getOppsubjno()).getAccname());
+ }
+ voucherEntryDao.save(entry);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java
new file mode 100644
index 0000000..b7d5c1b
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendStatisticsServiceImpl.java
@@ -0,0 +1,13 @@
+package com.supwisdom.dlpay.framework.service.impl;
+
+import com.supwisdom.dlpay.framework.service.DayendStatisticsService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DayendStatisticsServiceImpl implements DayendStatisticsService {
+
+ @Override
+ public boolean doDayendStatistics() throws Exception {
+ return false;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
index 863b206..b4b8b48 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
@@ -1,29 +1,35 @@
package com.supwisdom.dlpay.framework.service.impl;
+import com.supwisdom.dlpay.framework.dao.SettleCtlDao;
import com.supwisdom.dlpay.framework.dao.TaskLockDao;
+import com.supwisdom.dlpay.framework.dao.TranscodeDao;
import com.supwisdom.dlpay.framework.data.SystemDateTime;
+import com.supwisdom.dlpay.framework.domain.TSettlectl;
import com.supwisdom.dlpay.framework.domain.TTaskLock;
+import com.supwisdom.dlpay.framework.domain.TTranscode;
import com.supwisdom.dlpay.framework.service.SystemUtilService;
import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
@Service
public class SystemUtilServiceImpl implements SystemUtilService {
- @PersistenceContext
- private EntityManager entityManager;
@Autowired
private TaskLockDao taskLockDao;
+ @Autowired
+ private SettleCtlDao settleCtlDao;
+ @Autowired
+ private TranscodeDao transcodeDao;
+
+ private static final Logger logger = Logger.getLogger(SystemUtilServiceImpl.class);
/**
* 获取oracle数据库时间
*/
private SystemDateTime getOracleDatetime() {
- SystemDateTime systemDateTime = taskLockDao.getOracleDatetime();
- return systemDateTime;
+ return taskLockDao.getOracleDatetime();
}
@Override
@@ -42,7 +48,7 @@
String hostdatetime = getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
TTaskLock lock = taskLockDao.getTaskLockWithLock(taskcode);
if (lock != null) {
- if (lock.getTaskstatus().intValue() == 1 && DateUtil.compareDatetime(DateUtil.getNewTime(hostdatetime, -60 * minRecover), lock.getTasktime()) < 0) {
+ if (lock.getTaskstatus() == 1 && DateUtil.compareDatetime(DateUtil.getNewTime(hostdatetime, -60 * minRecover), lock.getTasktime()) < 0) {
// 被锁,正在执行操作
return null;
} else {
@@ -61,4 +67,35 @@
}
return lock;
}
+
+ @Override
+ public String getAccdate() {
+ String hostdate = getSysdatetime().getHostdate();
+ TSettlectl settlectl = settleCtlDao.getOne(1);
+ if (null != settlectl && null != settlectl.getSettledate()) {
+ if (Integer.valueOf(hostdate) < settlectl.getSettledate().intValue()) {
+ return settlectl.getSettledate().toString();
+ }
+ }
+ return hostdate;
+ }
+
+ private String getOracleRefno(){
+ return taskLockDao.getOracleRefno();
+ }
+
+ @Override
+ public String getRefno(){
+ return getOracleRefno();
+ }
+
+ @Override
+ public String getTranscodeName(int transocde, String defaultValue) {
+ TTranscode tTranscode = transcodeDao.getOne(transocde);
+ if (null != tTranscode && !StringUtil.isEmpty(tTranscode.getTransname())) {
+ return tTranscode.getTransname();
+ }
+ return defaultValue;
+ }
+
}