From: Xia Kaixiang Date: Fri, 23 Aug 2019 01:29:43 +0000 (+0800) Subject: 对账中心 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=28be8a504dc6a319effd630e02ffe66f23d14ec7;p=epayment%2Ffood_payapi.git 对账中心 --- diff --git a/config/application-devel-pg-xkx.properties b/config/application-devel-pg-xkx.properties index 3c10fe9f..a3f5f418 100644 --- a/config/application-devel-pg-xkx.properties +++ b/config/application-devel-pg-xkx.properties @@ -38,3 +38,25 @@ spring.cloud.consul.port=8500 resttemplate.proxy.type=direct resttemplate.proxy.host=127.0.0.1 resttemplate.proxy.port=8087 + +#============== kafka =================== +# 指定kafka 代理地址,可以多个 +#spring.kafka.bootstrap-servers=172.28.201.101:9192 +#=============== provider ======================= +spring.kafka.producer.retries=3 +# 每次批量发送消息的数量 +spring.kafka.producer.batch-size=16384 +spring.kafka.producer.buffer-memory=33554432 +# 指定消息key和消息体的编解码方式 +spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer + +#===============kafka consumer ======================= +# 指定默认消费者group id +spring.kafka.consumer.group-id=epaymessager1 +spring.kafka.consumer.auto-offset-reset=earliest +spring.kafka.consumer.enable-auto-commit=true +spring.kafka.consumer.auto-commit-interval=100 +# 指定消息key和消息体的编解码方式 +spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer +spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeCheckDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeCheckDao.java index 361cb427..9f1a81d3 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeCheckDao.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeCheckDao.java @@ -8,4 +8,6 @@ import org.springframework.stereotype.Repository; public interface SourceTypeCheckDao extends CrudRepository { TSourceTypeCheckStatus getBySourceTypeAndTenantId(String sourceType, String tenantid); + TSourceTypeCheckStatus getById(int id); + } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java index 38e1b385..718841a2 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/SourceTypeDao.java @@ -22,4 +22,7 @@ public interface SourceTypeDao extends JpaRepository { List getConsumeSourceTypes(); List findByEnableAndTenantid(Boolean enabled, String tenantid); + + @Query("from TSourceType t where t.enable=true and t.checkable=true and t.tenantid=?1 order by t.sourceType ") + List findNeedChecks(String tenantid); } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkdtlDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkdtlDao.java index fb538c8d..0b80ad7c 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkdtlDao.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkdtlDao.java @@ -4,6 +4,7 @@ import com.supwisdom.dlpay.api.domain.TTransactionChkdtl; import com.supwisdom.dlpay.framework.data.CountAmountBean; import com.supwisdom.dlpay.framework.data.ExistBean; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -12,7 +13,7 @@ import org.springframework.stereotype.Repository; import java.util.List; @Repository -public interface TransactionChkdtlDao extends JpaRepository { +public interface TransactionChkdtlDao extends JpaRepository,JpaSpecificationExecutor { @Modifying @Query("delete from TTransactionChkdtl t where t.chkfileId=?1 ") @@ -51,6 +52,6 @@ public interface TransactionChkdtlDao extends JpaRepository'equal' and t.chkfileId=?1 order by t.recordno ") List getNeedRepairChkdtls(String chkfileId); - @Query("select count(t.id) as existed from TTransactionChkdtl t where t.chkfileId=?1 and t.and t.resolved<>'equal' ") + @Query("select count(t.id) as existed from TTransactionChkdtl t where t.chkfileId=?1 and t.resolved<>'equal' ") ExistBean getChkdtlNotEqualCount(String chkfileId); } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkfileDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkfileDao.java index a42f8ad2..88da7c2c 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkfileDao.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/TransactionChkfileDao.java @@ -2,10 +2,11 @@ package com.supwisdom.dlpay.api.dao; import com.supwisdom.dlpay.api.domain.TTransactionChkfile; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Service; @Service -public interface TransactionChkfileDao extends JpaRepository { +public interface TransactionChkfileDao extends JpaRepository, JpaSpecificationExecutor { TTransactionChkfile getByAccdateAndSourcetype(String accdate, String sourcetype); diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceTypeCheckStatus.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceTypeCheckStatus.java index 6a134672..aae858e4 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceTypeCheckStatus.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TSourceTypeCheckStatus.java @@ -1,21 +1,20 @@ package com.supwisdom.dlpay.api.domain; -import com.sun.org.apache.xpath.internal.operations.Bool; - import javax.persistence.*; import javax.validation.constraints.NotNull; import java.sql.Timestamp; @Entity @Table(name = "tb_sourcetype_check", - indexes = {@Index(name = "sourcetype_check_idx", columnList = "source_type, tenantid", unique = true)}) + indexes = {@Index(name = "sourcetype_check_idx", columnList = "sourcetype, tenantid", unique = true)}) public class TSourceTypeCheckStatus { @Id @SequenceGenerator(name = "st_checker_id", sequenceName = "SEQ_SOURCETYPE_CHECK", allocationSize = 1) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "st_checker_id") + @Column(name = "ID", nullable = false, length = 9) private Integer id; - @Column(name = "source_type", length = 30) + @Column(name = "sourcetype", length = 30) @NotNull private String sourceType; @@ -174,4 +173,5 @@ public class TSourceTypeCheckStatus { public void setRepairStatus(Boolean repairStatus) { this.repairStatus = repairStatus; } + } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/SourcetypeCheckController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/SourcetypeCheckController.java new file mode 100644 index 00000000..f5025bfc --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/SourcetypeCheckController.java @@ -0,0 +1,137 @@ +package com.supwisdom.dlpay.system.controller; + +import com.supwisdom.dlpay.api.bean.JsonResult; +import com.supwisdom.dlpay.api.domain.TSourceTypeCheckStatus; +import com.supwisdom.dlpay.api.domain.TTransactionChkdtl; +import com.supwisdom.dlpay.api.domain.TTransactionChkfile; +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.service.SourcetypeCheckManagerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * 对账管理 + */ +@Controller +public class SourcetypeCheckController { + @Autowired + private SourcetypeCheckManagerService sourcetypeCheckManagerService; + + /** + * ==================================================== + * 对帐状态总表 checkStatus + * ==================================================== + */ + @GetMapping("/thirdchk/chkstatus") + public String chkStatusIndex() { + return "system/thirdchk/chkstatus"; + } + + @GetMapping("/thirdchk/chkstatuslist") + @PreAuthorize("hasPermission('/thirdchk/chkstatus','')") + @ResponseBody + public PageResult getDataList(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam(value = "searchkey", required = false) String searchKey) { + try { + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + return sourcetypeCheckManagerService.getSourceTypeCheckStatusPage(searchKey, pageNo, pageSize); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); + } + } + + @PostMapping("/thirdchk/forcerecheck") + @PreAuthorize("hasPermission('/thirdchk/forcerecheck','')") + @ResponseBody + public JsonResult forceRecheck(@RequestParam("chkid") Integer chkid, @RequestParam("enable") Boolean enable) { + try { + TSourceTypeCheckStatus checkStatus = sourcetypeCheckManagerService.getSourceTypeCheckStatusById(chkid); + if (null == checkStatus) { + return JsonResult.error("对账状态记录不存在"); + } else if (checkStatus.getSettleStatus()) { + return JsonResult.error("该对账状态记录已清算完成,不能修改此状态"); + } + + if (enable.equals(checkStatus.getForceRecheck())) { + return JsonResult.error(checkStatus.getForceRecheck() ? "该对账状态记录目前已启用强制重对" : "该对账状态记录目前已关闭强制重对"); + } + checkStatus.setForceRecheck(enable); + + if (sourcetypeCheckManagerService.saveOrUpdateSourceTypeCheckStatus(checkStatus)) { + return JsonResult.ok("修改成功!"); + } else { + return JsonResult.error("修改失败"); + } + } catch (Exception ex) { + ex.printStackTrace(); + return JsonResult.error("系统处理异常").put("exception", ex); + } + } + + /** + * ==================================================== + * 对帐明细表 chkfile chkdtl + * ==================================================== + */ + @GetMapping("/thirdchk/chkfile") + public String checkFileIndex(Model map) { + map.addAttribute("checkSourcetypeList", sourcetypeCheckManagerService.getNeedCheckSourcetype()); + return "system/thirdchk/chkfile"; + } + + @GetMapping("/thirdchk/chkfilelist") + @PreAuthorize("hasPermission('/thirdchk/chkfile','')") + @ResponseBody + public PageResult getChkfileDataList(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam(value = "startdate", required = false) String startdate, + @RequestParam(value = "enddate", required = false) String enddate, + @RequestParam(value = "sourcetype", required = false) String sourcetype) { + try { + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + return sourcetypeCheckManagerService.getTransactionChkfilePage(startdate, enddate, sourcetype, pageNo, pageSize); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); + } + } + + @GetMapping("/thirdchk/chkdtl") + @PreAuthorize("hasPermission('/thirdchk/chkdtl','')") + public String load4CheckDtl(@RequestParam("chkfileid") String chkfileid, Model map) { + map.addAttribute("chkfileid", chkfileid); + return "system/thirdchk/chkdtl"; + } + + @GetMapping("/thirdchk/chkdtllist") + @PreAuthorize("hasPermission('/thirdchk/chkdtl','')") + @ResponseBody + public PageResult getChkdtlList(@RequestParam("page") Integer pageNo, + @RequestParam("limit") Integer pageSize, + @RequestParam("chkfileid") String chkfileid, + @RequestParam(value = "searchkey", required = false) String searchKey, + @RequestParam(value = "chkresult", required = false) String chkresult, + @RequestParam(value = "errorshow", required = false) Boolean errorshow) { + try { + if (StringUtil.isEmpty(chkfileid)) return new PageResult<>(99, "请选择对账明细文件"); + if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT; + if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT; + return sourcetypeCheckManagerService.getTransactionChkdtlPage(chkfileid, searchKey, chkresult, (errorshow != null ? errorshow : false), pageNo, pageSize); + } catch (Exception e) { + e.printStackTrace(); + return new PageResult<>(99, "系统查询错误"); + } + } +} diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/SourcetypeCheckManagerService.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/SourcetypeCheckManagerService.java new file mode 100644 index 00000000..dcd9bb52 --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/SourcetypeCheckManagerService.java @@ -0,0 +1,31 @@ +package com.supwisdom.dlpay.system.service; + +import com.supwisdom.dlpay.api.domain.TSourceType; +import com.supwisdom.dlpay.api.domain.TSourceTypeCheckStatus; +import com.supwisdom.dlpay.api.domain.TTransactionChkdtl; +import com.supwisdom.dlpay.api.domain.TTransactionChkfile; +import com.supwisdom.dlpay.framework.util.PageResult; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +public interface SourcetypeCheckManagerService { + @Transactional(rollbackFor = Exception.class, readOnly = true) + PageResult getSourceTypeCheckStatusPage(String searchkey, int pageNo, int pageSize); + + @Transactional(rollbackFor = Exception.class, readOnly = true) + TSourceTypeCheckStatus getSourceTypeCheckStatusById(Integer chkid); + + @Transactional(rollbackFor = Exception.class) + boolean saveOrUpdateSourceTypeCheckStatus(TSourceTypeCheckStatus checkStatus); + + + @Transactional(rollbackFor = Exception.class, readOnly = true) + List getNeedCheckSourcetype(); + + @Transactional(rollbackFor = Exception.class, readOnly = true) + PageResult getTransactionChkfilePage(String startdate, String enddate, String sourcetype, int pageNo, int pageSize); + + @Transactional(rollbackFor = Exception.class, readOnly = true) + PageResult getTransactionChkdtlPage(String chkfileId, String searchKey, String chkresult, boolean errorshow, int pageNo, int pageSize); +} diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java new file mode 100644 index 00000000..b8790ae7 --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/SourcetypeCheckManagerServiceImpl.java @@ -0,0 +1,155 @@ +package com.supwisdom.dlpay.system.service.impl; + +import com.supwisdom.dlpay.api.dao.SourceTypeCheckDao; +import com.supwisdom.dlpay.api.dao.SourceTypeDao; +import com.supwisdom.dlpay.api.dao.TransactionChkdtlDao; +import com.supwisdom.dlpay.api.dao.TransactionChkfileDao; +import com.supwisdom.dlpay.api.domain.TSourceType; +import com.supwisdom.dlpay.api.domain.TSourceTypeCheckStatus; +import com.supwisdom.dlpay.api.domain.TTransactionChkdtl; +import com.supwisdom.dlpay.api.domain.TTransactionChkfile; +import com.supwisdom.dlpay.framework.tenant.TenantContext; +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.system.service.SourcetypeCheckManagerService; +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.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.List; + +@Service +public class SourcetypeCheckManagerServiceImpl implements SourcetypeCheckManagerService { + @Autowired + private TransactionChkfileDao transactionChkfileDao; + @Autowired + private TransactionChkdtlDao transactionChkdtlDao; + @Autowired + private SourceTypeCheckDao sourceTypeCheckDao; + @Autowired + private SourceTypeDao sourceTypeDao; + + @PersistenceContext + private EntityManager entityManager; + + + @Override + public PageResult getSourceTypeCheckStatusPage(String searchkey, int pageNo, int pageSize) { + StringBuffer querySql = new StringBuffer("select a from TSourceTypeCheckStatus a,TSourceType b where a.sourceType=b.sourceType and a.tenantId=b.tenantid "); + + StringBuffer countSql = new StringBuffer("select count(a.id) as cnt from TSourceTypeCheckStatus a,TSourceType b where a.sourceType=b.sourceType and a.tenantId=b.tenantid "); + if (!StringUtil.isEmpty(searchkey)) { + querySql.append(" and (b.sourceType like :str or b.paydesc like :str) "); + countSql.append(" and (b.sourceType like :str or b.paydesc like :str) "); + } + querySql.append(" order by a.sourceType "); + Query query = entityManager.createQuery(querySql.toString()); + Query countQuery = entityManager.createQuery(countSql.toString()); + if (!StringUtil.isEmpty(searchkey)) { + query.setParameter("str", "%" + searchkey.trim() + "%"); + countQuery.setParameter("str", "%" + searchkey.trim() + "%"); + } + query.setFirstResult((pageNo - 1) * pageSize); + query.setMaxResults(pageSize); //分页显示 + List list = query.getResultList(); + Long count = (Long) countQuery.getSingleResult(); + return new PageResult<>(count.longValue(), list); + } + + @Override + public TSourceTypeCheckStatus getSourceTypeCheckStatusById(Integer chkid) { + if (null != chkid) { + return sourceTypeCheckDao.getById(chkid); + } + return null; + } + + @Override + public boolean saveOrUpdateSourceTypeCheckStatus(TSourceTypeCheckStatus checkStatus) { + if (null != checkStatus) { + sourceTypeCheckDao.save(checkStatus); + return true; + } + return false; + } + + @Override + public List getNeedCheckSourcetype() { + List list = sourceTypeDao.findNeedChecks(TenantContext.getTenantSchema()); + if (!StringUtil.isEmpty(list)) { + return list; + } + return new ArrayList<>(0); + } + + @Override + public PageResult getTransactionChkfilePage(String startdate, String enddate, String sourcetype, int pageNo, int pageSize) { + Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "accdate")); + Page page = transactionChkfileDao.findAll(new Specification() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + List predicates = new ArrayList<>(); + if (!StringUtil.isEmpty(startdate)) { + predicates.add(criteriaBuilder.ge(root.get("accdate").as(Integer.class), Integer.valueOf(DateUtil.unParseToDateFormat(startdate)))); + } + if (!StringUtil.isEmpty(enddate)) { + predicates.add(criteriaBuilder.le(root.get("accdate").as(Integer.class), Integer.valueOf(DateUtil.unParseToDateFormat(enddate)))); + } + if (!StringUtil.isEmpty(sourcetype)) { + predicates.add(criteriaBuilder.equal(root.get("sourcetype").as(String.class), sourcetype.trim())); + } + return criteriaBuilder.and(predicates.toArray(new Predicate[0])); + } + }, pageable); + return new PageResult<>(page); + } + + @Override + public PageResult getTransactionChkdtlPage(String chkfileId, String searchKey, String chkresult, boolean errorshow, int pageNo, int pageSize) { + StringBuffer querySql = new StringBuffer("select a from TTransactionChkdtl a where a.chkfileId=:chkfileid "); + StringBuffer countSql = new StringBuffer("select count(a.id) as cnt from TTransactionChkdtl a where a.chkfileId=:chkfileid "); + if (!StringUtil.isEmpty(searchKey)) { + querySql.append(" and (a.otherRefno like :str or a.localRefno like :str) "); + countSql.append(" and (a.otherRefno like :str or a.localRefno like :str) "); + } + if (!errorshow && !StringUtil.isEmpty(chkresult)) { + querySql.append(" and a.chkresult=:chkresult "); + countSql.append(" and a.chkresult=:chkresult "); + } + if (errorshow) { + querySql.append(" and a.chkresult<>'equal' "); + countSql.append(" and a.chkresult<>'equal' "); + } + querySql.append(" order by a.recordno "); + Query query = entityManager.createQuery(querySql.toString()); + Query countQuery = entityManager.createQuery(countSql.toString()); + query.setParameter("chkfileid", chkfileId.trim()); + countQuery.setParameter("chkfileid", chkfileId.trim()); + if (!StringUtil.isEmpty(searchKey)) { + query.setParameter("str", "%" + searchKey.trim() + "%"); + countQuery.setParameter("str", "%" + searchKey.trim() + "%"); + } + if (!errorshow && !StringUtil.isEmpty(chkresult)) { + query.setParameter("chkresult", chkresult.trim()); + countQuery.setParameter("chkresult", chkresult.trim()); + } + query.setFirstResult((pageNo - 1) * pageSize); + query.setMaxResults(pageSize); //分页显示 + List list = query.getResultList(); + Long count = (Long) countQuery.getSingleResult(); + return new PageResult<>(count.longValue(), list); + } +} diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql index 80a95a29..362bc3ca 100644 --- a/payapi/src/main/resources/data.sql +++ b/payapi/src/main/resources/data.sql @@ -65,6 +65,13 @@ INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon" VALUES (31, NULL, 1, NULL, '', '/report/shopbusiness', '商户营业情况表', 3, 20, '{tenantid}'); INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid) VALUES (32, NULL, 1, NULL, '', '/settlelog/index', '结算日志', 5, 3, '{tenantid}'); +INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid) +VALUES (33, NULL, 0, NULL, 'layui-icon-component', '#', '对账中心', 8, -1, '{tenantid}'); +INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid) +VALUES (34, NULL, 1, NULL, '', '/thirdchk/chkstatus', '对账状态查询', 331, 33, '{tenantid}'); +INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid) +VALUES (35, NULL, 1, NULL, '', '/thirdchk/chkfile', '对账明细查询', 332, 33, '{tenantid}'); + INSERT INTO "tb_role_function" ("id", "functionid", "roleid", tenantid) @@ -121,6 +128,12 @@ INSERT INTO "tb_role_function" ("id", "functionid", "roleid", tenantid) VALUES ('ff8080816b7947ed016b795577370081', 18, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); INSERT INTO "tb_role_function" ("id", "functionid", "roleid", tenantid) VALUES ('ff8080816c8468e8016c846d7a570017', 32, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_role_function" ("id", "functionid", "roleid", tenantid) +VALUES ('ff8080816c8468e8016c846d7a570017', 33, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_role_function" ("id", "functionid", "roleid", tenantid) +VALUES ('ff8080816c8468e8016c846d7a570017', 34, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_role_function" ("id", "functionid", "roleid", tenantid) +VALUES ('ff8080816c8468e8016c846d7a570017', 35, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) VALUES (4, '1', 4, '添加功能', '/function/add', '{tenantid}'); @@ -252,6 +265,15 @@ INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) VALUES (77, '', 32, '查询', '/settlelog/index', '{tenantid}'); INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) VALUES (78, '', 32, '查询', '/settlelog/dosettle', '{tenantid}'); +INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) +VALUES (79, '', 34, '查询', '/thirdchk/chkstatus', '{tenantid}'); +INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) +VALUES (80, '', 34, '强制重对切换', '/thirdchk/forcerecheck', '{tenantid}'); +INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) +VALUES (81, '', 35, '查询', '/thirdchk/chkfile', '{tenantid}'); +INSERT INTO "tb_resource" ("id", "code", "function_id", "name", "uri", tenantid) +VALUES (82, '', 35, '查看详情', '/thirdchk/chkdtl', '{tenantid}'); + INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", tenantid) VALUES ('ff8080816b7947ed016b795577300036', 16, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); @@ -383,6 +405,15 @@ INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid VALUES ('ff8080816c8468e8016c846d7a5d0018', 77, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid") VALUES ('ff8080816c85279d016c852aa829000d', 78, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid") +VALUES ('ff8080816c985e76016c98659ad00015', 79, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid") +VALUES ('ff8080816c985e76016c98659ad10016', 80, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid") +VALUES ('ff8080816c985e76016c98659ad10017', 81, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); +INSERT INTO "tb_permission" ("id", "resid", "role_func_id", "roleid", "tenantid") +VALUES ('ff8080816c99abee016c99b1cb1c0004', 82, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}'); + INSERT INTO "tb_subject" ("subjid","subjno", "balflag", "displayflag", "endflag", "fsubjno", "opendate", "subjlevel", "subjname", "subjtype", "tenantid") VALUES (1, '1001', 1, 'y', 1, NULL, 20190430, 1, '库存现金', 1, '{tenantid}'); diff --git a/payapi/src/main/resources/templates/system/thirdchk/chkdtl.html b/payapi/src/main/resources/templates/system/thirdchk/chkdtl.html new file mode 100644 index 00000000..fbc2b4e1 --- /dev/null +++ b/payapi/src/main/resources/templates/system/thirdchk/chkdtl.html @@ -0,0 +1,188 @@ +
+
+

对账详情

+ + 对账明细查询 + 对账详情 + +
+
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + +
+
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/payapi/src/main/resources/templates/system/thirdchk/chkfile.html b/payapi/src/main/resources/templates/system/thirdchk/chkfile.html new file mode 100644 index 00000000..0a5bb52b --- /dev/null +++ b/payapi/src/main/resources/templates/system/thirdchk/chkfile.html @@ -0,0 +1,173 @@ +
+
+

对账明细查询

+ + 对账中心 + 对账明细查询 + +
+
+
+
+
+ +
+ +
+
-
+
+ +
+
+ +
+ +
+   +
+
+ +
+ + +
+
+
+
+
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/payapi/src/main/resources/templates/system/thirdchk/chkstatus.html b/payapi/src/main/resources/templates/system/thirdchk/chkstatus.html new file mode 100644 index 00000000..2114a4a7 --- /dev/null +++ b/payapi/src/main/resources/templates/system/thirdchk/chkstatus.html @@ -0,0 +1,133 @@ +
+
+

对账状态查询

+ + 对账管理 + 对账状态查询 + +
+
+
+ 搜索: +   + + +
+
+
+
+ + + + + \ No newline at end of file