From: Xia Kaixiang Date: Thu, 11 Apr 2019 05:23:49 +0000 (+0800) Subject: 日结修改 X-Git-Tag: 1.0.0^2~313 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=345013de2f9f7e3e9f574cbd17ad238a2d272e7f;p=epayment%2Ffood_payapi.git 日结修改 --- 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 48835026..a53e942b 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 @@ import org.springframework.web.bind.annotation.RestController; 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 02e15e9b..12254a8a 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 @@ package com.supwisdom.dlpay.consume.domain; 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 b6d95e8a..5a80eab0 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 @@ public interface SettleCtlDao extends JpaRepository { @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 e218b13c..eac1aa25 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 @@ public interface ShopaccDao extends JpaRepository { @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 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 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 7010d299..2bd91c0a 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 @@ package com.supwisdom.dlpay.framework.dao; 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 @@ public interface ShopaccbalDao extends JpaRepository { @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 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 02d9e16d..3aacfe3c 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.MerchBean; 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 @@ public interface SubjectbalDao extends JpaRepository { @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 782e1b5f..e9b3a37a 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 @@ public interface TaskLockDao extends JpaRepository { @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 b6705724..f331a6b1 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 @@ public interface VoucherDao extends JpaRepository { @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 37e9c1ef..2bb46642 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 @@ package com.supwisdom.dlpay.framework.dao; 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 @@ public interface VoucherEntryDao extends JpaRepository getVoucherEntryByVoucherdate(@RequestParam("voucherdate") Integer voucherdate); + + @Lock(LockModeType.PESSIMISTIC_FORCE_INCREMENT) + @Query(value = "from TVoucherEntry t where t.voucherid=:voucherid ") + List 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 44757b74..8b010c4a 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 @@ public class TVouchernoCtl { @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 3891fc2d..d3318f06 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 com.supwisdom.dlpay.framework.domain.TSettleLog; 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 00000000..110f0e22 --- /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 ede550bb..21d2793d 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 @@ import org.springframework.transaction.annotation.Transactional; 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 c4c2d092..e575ab8e 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 @@ public class DayendSettleServiceImpl implements DayendSettleService { @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 @@ public class DayendSettleServiceImpl implements DayendSettleService { //用户交易凭证 List userList = debitCreditDtlDao.getVoucherData(String.valueOf(settledate)); - if(!StringUtil.isEmpty(userList)){ + if (!StringUtil.isEmpty(userList)) { for (VoucherTemp temp : userList) { saveVoucher(temp); } @@ -243,7 +243,7 @@ public class DayendSettleServiceImpl implements DayendSettleService { } int voucherno = vouchernoCtl.getVoucherno(); List voucherList = voucherDao.getSettleVouchers(); - if (StringUtil.isEmpty(voucherList)) { + if (!StringUtil.isEmpty(voucherList)) { for (TVoucher voucher : voucherList) { voucherno++; voucher.setVoucherno(voucherno); @@ -257,7 +257,7 @@ public class DayendSettleServiceImpl implements DayendSettleService { Map v_merchbaldict = new HashMap(0); //根据商户昨天日结表生成当天日结表(交易前余额), 新增商户添加记录(交易前余额为商户余额) List 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 @@ public class DayendSettleServiceImpl implements DayendSettleService { } } List 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 @@ public class DayendSettleServiceImpl implements DayendSettleService { Map v_subjbaldict = new HashMap(0); Map v_subjbalflagdict = new HashMap(0); List 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 @@ public class DayendSettleServiceImpl implements DayendSettleService { //日切 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 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 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 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 00000000..b7d5c1bc --- /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 863b2067..b4b8b48f 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 @@ public class SystemUtilServiceImpl implements SystemUtilService { 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 @@ public class SystemUtilServiceImpl implements SystemUtilService { } 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; + } + }