From 20daadd28ee7e30896094f28454d44113a449aed Mon Sep 17 00:00:00 2001 From: Xia Kaixiang Date: Tue, 11 Jun 2019 16:20:56 +0800 Subject: [PATCH] =?utf8?q?=E7=A7=91=E7=9B=AE=E6=98=8E=E7=BB=86=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../dlpay/framework/dao/SubjectDao.java | 3 + .../dlpay/framework/dao/VoucherDao.java | 8 + .../system/bean/SubjectDetailShowBean.java | 100 ++++++++++ .../controller/SettleReportController.java | 79 +++++++- .../system/service/SettleReportService.java | 10 + .../service/impl/SettleReportServiceImpl.java | 66 ++++++- src/main/resources/static/libs/custom.js | 4 + .../templates/system/report/subjectday.html | 24 ++- .../system/report/subjectdetail.html | 174 ++++++++++++++++++ 9 files changed, 458 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java create mode 100644 src/main/resources/templates/system/report/subjectdetail.html diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java index 2c0fae90..f88623db 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java @@ -25,4 +25,7 @@ public interface SubjectDao extends JpaRepository { String getSubjectname(@Param("subjno") String subjno); TSubject findBySubjno(String subjno); + + @Query("from TSubject where displayflag='y' order by subjno ") + List findAllDisplaySubjects(); } 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 e839c018..d8b831ee 100644 --- a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java +++ b/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java @@ -3,6 +3,9 @@ package com.supwisdom.dlpay.framework.dao; import com.supwisdom.dlpay.framework.data.ExistBean; import com.supwisdom.dlpay.framework.data.MerchBean; import com.supwisdom.dlpay.framework.domain.TVoucher; +import com.supwisdom.dlpay.system.bean.SubjectDetailShowBean; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Lock; import org.springframework.data.jpa.repository.Modifying; @@ -37,4 +40,9 @@ public interface VoucherDao extends JpaRepository { @Lock(LockModeType.PESSIMISTIC_WRITE) @Query(value = "from TVoucher where voucherid=:voucherid ") TVoucher findByVoucheridWithLock(@Param("voucherid") Integer voucherid); + + @Query(value = "select new com.supwisdom.dlpay.system.bean.SubjectDetailShowBean(a.voucherdate,a.voucherno,b.subjno,b.summary,b.dramt,b.cramt,b.balflag,b.balance,b.oppname) " + + "from TVoucher a,TVoucherEntry b where a.voucherid=b.voucherid and a.postflag=1 and a.voucherdate>=:startdate and a.voucherdate<=:enddate and b.subjno=:subjno order by a.voucherdate,a.voucherno ", + countQuery = "select count(a.voucherdate) from TVoucher a,TVoucherEntry b where a.voucherid=b.voucherid and a.postflag=1 and a.voucherdate>=:startdate and a.voucherdate<=:enddate and b.subjno=:subjno ") + Page getSubjectDetailInfos(@Param("startdate") Integer startdate, @Param("enddate") Integer enddate, @Param("subjno") String subjno, Pageable pageable); } diff --git a/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java b/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java new file mode 100644 index 00000000..2cc32229 --- /dev/null +++ b/src/main/java/com/supwisdom/dlpay/system/bean/SubjectDetailShowBean.java @@ -0,0 +1,100 @@ +package com.supwisdom.dlpay.system.bean; + +public class SubjectDetailShowBean { + private Integer voucherdate; //凭证日期 + private Integer voucherno; //凭证编号 + private String subjno; + private String summary; + private Double dramt; + private Double cramt; + private Integer balflag;//1-借;2-è´· + private Double balance; + private String oppname; + + public SubjectDetailShowBean() { + } + + public SubjectDetailShowBean(Integer voucherdate, Integer voucherno, String subjno, String summary, Double dramt, Double cramt, Integer balflag, Double balance, String oppname) { + this.voucherdate = voucherdate; + this.voucherno = voucherno; + this.subjno = subjno; + this.summary = summary; + this.dramt = dramt; + this.cramt = cramt; + this.balflag = balflag; + this.balance = balance; + this.oppname = oppname; + } + + public Integer getVoucherdate() { + return voucherdate; + } + + public void setVoucherdate(Integer voucherdate) { + this.voucherdate = voucherdate; + } + + public Integer getVoucherno() { + return voucherno; + } + + public void setVoucherno(Integer voucherno) { + this.voucherno = voucherno; + } + + public String getSubjno() { + return subjno; + } + + public void setSubjno(String subjno) { + this.subjno = subjno; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public Double getDramt() { + return dramt; + } + + public void setDramt(Double dramt) { + this.dramt = dramt; + } + + public Double getCramt() { + return cramt; + } + + public void setCramt(Double cramt) { + this.cramt = cramt; + } + + public Integer getBalflag() { + return balflag; + } + + public void setBalflag(Integer balflag) { + this.balflag = balflag; + } + + public Double getBalance() { + return balance; + } + + public void setBalance(Double balance) { + this.balance = balance; + } + + public String getOppname() { + return oppname; + } + + public void setOppname(String oppname) { + this.oppname = oppname; + } +} diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java b/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java index b86669e7..71c00d9d 100644 --- a/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java +++ b/src/main/java/com/supwisdom/dlpay/system/controller/SettleReportController.java @@ -1,11 +1,15 @@ package com.supwisdom.dlpay.system.controller; +import com.supwisdom.dlpay.api.bean.BaseResp; import com.supwisdom.dlpay.api.bean.JsonResult; import com.supwisdom.dlpay.framework.domain.TSubject; import com.supwisdom.dlpay.framework.util.DateUtil; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.StringUtil; +import com.supwisdom.dlpay.framework.util.WebConstant; import com.supwisdom.dlpay.system.bean.SubjectDayShowBean; +import com.supwisdom.dlpay.system.bean.SubjectDetailShowBean; +import com.supwisdom.dlpay.system.bean.TreeSelectNode; import com.supwisdom.dlpay.system.service.SettleReportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -15,11 +19,30 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.List; + @Controller public class SettleReportController { @Autowired private SettleReportService settleReportService; + private boolean checkReportDate(String startdate, String enddate, BaseResp resp) { + if (StringUtil.isEmpty(startdate) || StringUtil.isEmpty(enddate)) { + resp.setRetcode("99"); + resp.setRetmsg("请选择时间段"); + return false; + } else if (!DateUtil.checkDatetimeValid(DateUtil.unParseToDateFormat(startdate), "yyyyMMdd")) { + resp.setRetcode("99"); + resp.setRetmsg("起始时间非法"); + return false; + } else if (!DateUtil.checkDatetimeValid(DateUtil.unParseToDateFormat(enddate), "yyyyMMdd")) { + resp.setRetcode("99"); + resp.setRetmsg("截止时间非法"); + return false; + } + return true; + } + /** * ==================================================== * 科目日结表 @@ -35,16 +58,13 @@ public class SettleReportController { @GetMapping("/report/subjectdaylist") @PreAuthorize("hasPermission('/report/subjectday','')") @ResponseBody - public PageResult getSubjectdayData(@RequestParam(value = "startdate",required = false) String startdate, - @RequestParam(value = "enddate",required = false) String enddate, + public PageResult getSubjectdayData(@RequestParam(value = "startdate", required = false) String startdate, + @RequestParam(value = "enddate", required = false) String enddate, @RequestParam(value = "nodealshow", required = false, defaultValue = "false") Boolean noDealShow) { try { - if (StringUtil.isEmpty(startdate) || StringUtil.isEmpty(enddate)) { - return new PageResult<>(99, "请选择时间段"); - } else if (!DateUtil.checkDatetimeValid(DateUtil.unParseToDateFormat(startdate), "yyyyMMdd")) { - return new PageResult<>(99, "起始时间非法"); - } else if (!DateUtil.checkDatetimeValid(DateUtil.unParseToDateFormat(enddate), "yyyyMMdd")) { - return new PageResult<>(99, "截止时间非法"); + BaseResp resp = new BaseResp(); + if (!checkReportDate(startdate, enddate, resp)) { + return new PageResult<>(99, resp.getRetmsg()); } return settleReportService.getSubjectDayInfos(DateUtil.unParseToDateFormat(startdate), DateUtil.unParseToDateFormat(enddate), noDealShow); } catch (Exception e) { @@ -53,5 +73,48 @@ public class SettleReportController { } } + /** + * ==================================================== + * 科目明细账 + * ==================================================== + */ + @GetMapping("/report/subjectdetail") + public String subjectDetailReport(ModelMap map) { + String settledate = settleReportService.getSystemSettledate(); + map.addAttribute("maxdate", DateUtil.parseToDateFormat(DateUtil.getNewDay(settledate, -1))); + return "system/report/subjectdetail"; + } + + @GetMapping("/report/subjectdetaillist") + @PreAuthorize("hasPermission('/report/subjectdetail','')") + @ResponseBody + public PageResult getSubjectData(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam(value = "startdate", required = false) String startdate, + @RequestParam(value = "enddate", required = false) String enddate, + @RequestParam(value = "subjno", required = false) String subjno) { + try { + BaseResp resp = new BaseResp(); + if (!checkReportDate(startdate, enddate, resp)) { + return new PageResult<>(99, resp.getRetmsg()); + } + if (StringUtil.isEmpty(subjno)) { + return new PageResult<>(99, "请选择科目"); + } + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + return settleReportService.getSubjectDetailInfos(DateUtil.unParseToDateFormat(startdate), DateUtil.unParseToDateFormat(enddate), subjno.trim(), pageNo, pageSize); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); + } + } + + @GetMapping("/report/subjectselecttree") + @PreAuthorize("hasPermission('/report/subjectdetail','')") + @ResponseBody + public List getSubjectSelectTree(){ + return settleReportService.getSystemShowSubjectTree(); + } } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java b/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java index cf59944b..7abff584 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/SettleReportService.java @@ -2,13 +2,23 @@ package com.supwisdom.dlpay.system.service; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.system.bean.SubjectDayShowBean; +import com.supwisdom.dlpay.system.bean.SubjectDetailShowBean; +import com.supwisdom.dlpay.system.bean.TreeSelectNode; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + public interface SettleReportService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) String getSystemSettledate(); @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) PageResult getSubjectDayInfos(String startdate,String enddate, boolean nodealshow); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + PageResult getSubjectDetailInfos(String startdate,String enddate,String subjno, int pageNo,int pageSize); + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, readOnly = true) + List getSystemShowSubjectTree(); } diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java index dabf5e8c..8bce060e 100644 --- a/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java +++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/SettleReportServiceImpl.java @@ -1,16 +1,23 @@ package com.supwisdom.dlpay.system.service.impl; import com.supwisdom.dlpay.framework.dao.SettleCtlDao; +import com.supwisdom.dlpay.framework.dao.SubjectDao; import com.supwisdom.dlpay.framework.dao.SubjectdayDao; +import com.supwisdom.dlpay.framework.dao.VoucherDao; import com.supwisdom.dlpay.framework.domain.TSettlectl; +import com.supwisdom.dlpay.framework.domain.TSubject; import com.supwisdom.dlpay.framework.util.DateUtil; -import com.supwisdom.dlpay.framework.util.MoneyUtil; import com.supwisdom.dlpay.framework.util.PageResult; import com.supwisdom.dlpay.framework.util.StringUtil; import com.supwisdom.dlpay.system.bean.SubjectDayInfo; import com.supwisdom.dlpay.system.bean.SubjectDayShowBean; +import com.supwisdom.dlpay.system.bean.SubjectDetailShowBean; +import com.supwisdom.dlpay.system.bean.TreeSelectNode; import com.supwisdom.dlpay.system.service.SettleReportService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -22,6 +29,10 @@ public class SettleReportServiceImpl implements SettleReportService { private SubjectdayDao subjectdayDao; @Autowired private SettleCtlDao settleCtlDao; + @Autowired + private VoucherDao voucherDao; + @Autowired + private SubjectDao subjectDao; @Override public String getSystemSettledate() { @@ -66,4 +77,57 @@ public class SettleReportServiceImpl implements SettleReportService { } return new PageResult(result); } + + @Override + public PageResult getSubjectDetailInfos(String startdate, String enddate, String subjno, int pageNo, int pageSize) { + Pageable pageable = PageRequest.of(pageNo - 1, pageSize); + Page page = voucherDao.getSubjectDetailInfos(Integer.valueOf(startdate),Integer.valueOf(enddate),subjno,pageable); + return new PageResult<>(page); + } + + @Override + public List getSystemShowSubjectTree() { + List list = subjectDao.findAllDisplaySubjects(); + List result = new ArrayList<>(0); + if (!StringUtil.isEmpty(list)) { + for (TSubject subject : list) { + if (subject.getSubjlevel() == 1) { + TreeSelectNode node = new TreeSelectNode(); + node.setId(subject.getSubjno()); + node.setName(subject.getSubjname()); + node.setOpen(subject.getEndflag() == 0); + node.setChecked(false); + node.setChildren(null); + node.setAccno(subject.getEndflag().toString()); + if (subject.getEndflag() == 0) { + node.setChildren(getSubjectSelectTree(list, subject.getSubjno())); //下级科目 + } + result.add(node); + } + } + } + return result; + } + + private List getSubjectSelectTree(List subjectList, String fsubjno) { + List result = null; + for (TSubject subject : subjectList) { + if (fsubjno.equals(subject.getFsubjno())) { + TreeSelectNode node = new TreeSelectNode(); + node.setId(subject.getSubjno()); + node.setName(subject.getSubjname()); + node.setOpen(subject.getEndflag() == 0); + node.setChecked(false); + List children = null; + if (subject.getEndflag() == 0) { + children = getSubjectSelectTree(subjectList, subject.getSubjno()); + } + node.setChildren(children); + node.setAccno(subject.getEndflag().toString()); + if (null == result) result = new ArrayList<>(0); //初始化 + result.add(node); + } + } + return result; + } } diff --git a/src/main/resources/static/libs/custom.js b/src/main/resources/static/libs/custom.js index 0560c243..24dc9ad4 100644 --- a/src/main/resources/static/libs/custom.js +++ b/src/main/resources/static/libs/custom.js @@ -92,4 +92,8 @@ root.getTempDictValue = function (dicttype, key) { return DictPoolToolkit().getDictValue(dicttype, key); } + + root.dateFormat = function (str) { + return str.replace(/^(\d{4})(\d{2})(\d{2})$/, '$1-$2-$3'); //yyyyMMdd --> yyyy-MM-dd + } }(window)); \ No newline at end of file diff --git a/src/main/resources/templates/system/report/subjectday.html b/src/main/resources/templates/system/report/subjectday.html index 75c140c4..43acfa0f 100644 --- a/src/main/resources/templates/system/report/subjectday.html +++ b/src/main/resources/templates/system/report/subjectday.html @@ -74,7 +74,7 @@ var renderTable = function (obj) { layer.load(2); treetable.render({ - id: 'subjectDayReport', + id: 'SubjectDayReport', title: '科目汇总表', treeColIndex: 0, treeSpid: '-1', @@ -113,7 +113,29 @@ {field: 'crbal', title: '贷方', align: 'center'} ] ], + // cols: [ + // [ + // {field: 'subjno', title: '科目号', align: 'left'}, + // { + // field: 'subjname', title: '科目名称', align: 'left', templet: function (d) { + // if (d.subjlevel == 1) { + // return '' + d.subjname + ''; + // } else { + // return '    ' + d.subjname + ''; + // } + // + // } + // }, + // {field: 'lastdaydrbal', title: '期初余额(借方)', align: 'center'}, + // {field: 'lastdaycrbal', title: '期初余额(贷方)', align: 'center'}, + // {field: 'dramt', title: '本期发生额(借方)', align: 'center'}, + // {field: 'cramt', title: '本期发生额(贷方)', align: 'center'}, + // {field: 'drbal', title: '期末余额(借方)', align: 'center'}, + // {field: 'crbal', title: '期末余额(贷方)', align: 'center'} + // ] + // ], done: function (res, curr, count) { + console.log(res); layer.closeAll('loading'); } }); diff --git a/src/main/resources/templates/system/report/subjectdetail.html b/src/main/resources/templates/system/report/subjectdetail.html new file mode 100644 index 00000000..7b3bb580 --- /dev/null +++ b/src/main/resources/templates/system/report/subjectdetail.html @@ -0,0 +1,174 @@ +
+
+

科目明细账

+ + 结算中心 + 科目明细账 + +
+
+
+ +
+
+ +
+ +
+
-
+
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+
+
+
+
+ + + + \ No newline at end of file -- 2.17.1