删除了部分无用代码
diff --git a/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java b/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java
deleted file mode 100644
index 9a2d51b..0000000
--- a/src/main/java/com/supwisdom/dlpay/api/controller/TestAction.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.supwisdom.dlpay.api.controller;
-
-import com.supwisdom.dlpay.api.bean.BaseResp;
-import com.supwisdom.dlpay.framework.data.SystemDateTime;
-import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-@Controller //将所有方法标识@ResponseBody注解
-@RequestMapping("/test")
-public class TestAction {
-  @Autowired
-  private SystemUtilService systemUtilService;
-
-  @RequestMapping("/demo")
-  @ResponseBody
-  public BaseResp test() {
-    SystemDateTime dt = systemUtilService.getSysdatetime();
-
-    BaseResp resp = new BaseResp();
-    resp.setRetcode("0");
-    resp.setRetmsg("OK");
-    resp.setData("hostdate=["+dt.getHostdate()+"],hosttime=["+dt.getHosttime()+"],hostdatetime=["+dt.getHostdatetime()+"],date=["+dt.getSysdate()+"]");
-    return resp;
-  }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java
deleted file mode 100644
index b626087..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/FeetypeConfigDao.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TFeetypeConfig;
-import com.supwisdom.dlpay.framework.domain.TFeetypeConfigPK;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface FeetypeConfigDao extends JpaRepository<TFeetypeConfig, TFeetypeConfigPK> {
-  @Query("select a from TFeetypeConfig a where a.feetype=?1 and a.paytype=?2 ")
-  TFeetypeConfig getById(String feetype, String paytype);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
deleted file mode 100644
index ec8fadc..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleCtlDao.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TSettlectl;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import javax.persistence.LockModeType;
-
-@Repository
-public interface SettleCtlDao extends JpaRepository<TSettlectl, Integer> {
-  @Lock(value = LockModeType.PESSIMISTIC_WRITE)
-  TSettlectl findByBooksetno(Integer booksetno);
-
-  @Lock(value = LockModeType.PESSIMISTIC_WRITE)
-  @Query(value = "from TSettlectl where booksetno=:booksetno ")
-  TSettlectl findByBooksetnoWithLock(@Param("booksetno") Integer booksetno);
-
-  @Modifying(clearAutomatically = true)
-  @Query(value = "update TB_SETTLECTL set PERIODYEAR=:peridyear,PERIODMONTH=:peridmonth where BOOKSETNO=1 ", nativeQuery = true)
-  void updateSettlePeriod(@Param("peridyear") int peridyear, @Param("peridmonth") int peridmonth);
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java
deleted file mode 100644
index 30de1ae..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SettleLogDao.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TSettleLog;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface SettleLogDao extends JpaRepository<TSettleLog, String> {
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java
deleted file mode 100644
index e7cc15f..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopDao.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TShop;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Query;
-
-import javax.persistence.LockModeType;
-import java.util.List;
-
-/**
- * Created by shuwei on 2019/4/15.
- */
-public interface ShopDao extends JpaRepository<TShop, Integer> {
-    TShop getByThirdUniqueIdenty(String thirdUniqueIdenty);
-
-    @Lock(LockModeType.PESSIMISTIC_WRITE)
-    @Query("select a from TShop a where a.thirdUniqueIdenty=?1")
-    TShop getByThirdUniqueIdentyForUpdate(String thirdUniqueIdenty);
-
-    TShop getTShopByShopid(Integer shopid);
-
-    TShop getTShopByShopaccno(String shopaccno);
-
-    @Query("from TShop where status='normal' and fshopid=?1 ")
-    List<TShop> getChildShopsByShopid(Integer shopid);
-
-    @Query(value = "select count(t.shopid) from TB_SHOP t where t.status='normal' and t.shopname=?1 and t.fshopid=?2 and t.shopid!=?3", nativeQuery = true)
-    long checkShopnameExist(String shopname, int fshopid, int oldShopid);
-
-    @Query("from TShop where status='normal' order by shopid asc ")
-    List<TShop> getNormalShops();
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
deleted file mode 100644
index 303a3b0..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccDao.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TShopacc;
-import org.springframework.data.jpa.repository.*;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.persistence.LockModeType;
-
-import javax.persistence.QueryHint;
-import java.util.List;
-
-@Repository
-public interface ShopaccDao extends JpaRepository<TShopacc, String> {
-
-  @Query(value = "select t.SHOPACCNO from TB_SHOPACC t left join TB_SHOPACCDAY a on t.SHOPACCNO=a.SHOPACCNO and a.accdate=:lastsettday where a.SHOPACCNO is null ", nativeQuery = true)
-  List<String> getNewShopacc(@Param("lastsettday") String lastsettday);
-
-
-  @Query(value = "select shopname from TShopacc where shopaccno=:shopaccno ")
-  String getShopname(@Param("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<String> getNewAddShopacc(@Param("settday") String settday);
-
-  TShopacc findByShopid(Integer shopid);
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @QueryHints({@QueryHint(name = "javax.persistence.lock.timeout", value = "0")})
-  @Query("select a from TShopacc a where a.shopid=?1")
-  TShopacc getShopaccWithLockNowait(Integer shopid);
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query("select a from TShopacc a where a.shopid=?1")
-  TShopacc getShopaccWithLock(Integer shopid);
-
-  TShopacc getByShopaccno(String shopaccno);
-
-  @Transactional
-  @Modifying(clearAutomatically = true)
-  @Query("update TShopacc set shopname=?1 where shopaccno=?2")
-  void updateShopnameByShopaccno(String shopname, String shopaccno);
-
-
-  TShopacc findByShopaccno(String acc);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java
deleted file mode 100644
index ddc0265..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/ShopaccdayDao.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TShopaccday;
-import com.supwisdom.dlpay.framework.domain.TShopaccdayPK;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-public interface ShopaccdayDao extends JpaRepository<TShopaccday, TShopaccdayPK> {
-
-  @Query(value = "from TShopaccday t where t.accdate=:accdate ")
-  List<TShopaccday> getShopaccdayByAccdate(@Param("accdate") String accdate);
-
-  @Query(value = "from TShopaccday t where t.accdate=:accdate and t.shopaccno=:shopaccno ")
-  TShopaccday getTShopaccdayById(@Param("accdate") String accdate, @Param("shopaccno") String shopaccno);
-
-  @Modifying(clearAutomatically = true)
-  @Query(value = "update TB_SHOPACCDAY set balance=beginbal-dramt+cramt,updtime=:updtime where accdate=:accdate ", nativeQuery = true)
-  void updateShopaccdayBalance(@Param("accdate") String accdate,@Param("updtime")String updtime);
-
-  @Query(value = "select sum(balance) as amount from TShopaccday where accdate=:accdate ")
-  Double getSumBalance(@Param("accdate") String accdate);
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java
deleted file mode 100644
index 2c0fae9..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectDao.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.data.ExistBean;
-import com.supwisdom.dlpay.framework.domain.TSubject;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-public interface SubjectDao extends JpaRepository<TSubject, String> {
-
-  @Query(value = "select t.SUBJNO from TB_SUBJECT t left join TB_SUBJECTBAL a on t.SUBJNO=a.SUBJNO where t.ENDFLAG=1 and a.SUBJNO is null ", nativeQuery = true)
-  List<String> getNewSubject();
-
-  @Query(value = "select count(t.subjno) as existed from TB_SUBJECT t left join TB_SUBJECTBAL a on t.SUBJNO=a.SUBJNO where t.ENDFLAG=1 and a.SUBJNO is null ", nativeQuery = true)
-  ExistBean checkSettleSubject();
-
-  @Query(value = "select a.subjno as accno from TB_SUBJECT a left join (select subjno from TB_SUBJECTDAY where accdate =:accdate ) b on a.subjno=b.subjno where a.subjlevel=1 and b.subjno is null ", nativeQuery = true)
-  List<String> getNewSubjnos(@Param("accdate") String accdate);
-
-  @Query(value = "select subjname from TSubject where subjno=:subjno ")
-  String getSubjectname(@Param("subjno") String subjno);
-
-  TSubject findBySubjno(String subjno);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
deleted file mode 100644
index 73b01cf..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-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.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import javax.persistence.LockModeType;
-import java.util.List;
-
-@Repository
-public interface SubjectbalDao extends JpaRepository<TSubjectbal, String> {
-
-  @Query(value = "select t.* from TB_SUBJECTBAL t left join ( select subjno from TB_SUBJECTDAY where accdate =:lastsettday) a on t.subjno=a.subjno where a.subjno is null ", nativeQuery = true)
-  List<TSubjectbal> getUnsettleSubjectbal(@Param("lastsettday") String lastsettday);
-
-  @Query(value = "select sum(BEGINDRBAL) as dramt,sum(BEGINCRBAL) as cramt from TB_SUBJECTBAL where SUBJNO in (select SUBJNO from TB_SUBJECT where fsubjno=:fsubjno) ", nativeQuery = true)
-  MerchBean getSubjectInfo(@Param("fsubjno") String fsubjno);
-
-  @Query(value = "select sa.subjno,sa.drbal,crbal,sb.subjtype,sb.balflag from TB_SUBJECTBAL sa,TB_SUBJECT sb where sa.subjno=sb.subjno and sb.endflag=1  order by sa.subjno ", nativeQuery = true)
-  List<SubjectInfoBean> getSubjectbalAndFlag();
-
-  @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)
-  Double getSumEndsubjectBalByEndflag(@Param("balflag")Integer balflag);
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query("from TSubjectbal where subjno=:subjno ")
-  TSubjectbal getTSubjectbalBySubjnoWithLock(@Param("subjno")String subjno);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java
deleted file mode 100644
index fb10362..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectdayDao.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.data.FSubjectInfoBean;
-import com.supwisdom.dlpay.framework.data.MerchBean;
-import com.supwisdom.dlpay.framework.domain.TSubjectday;
-import com.supwisdom.dlpay.framework.domain.TSubjectdayPK;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-@Repository
-public interface SubjectdayDao extends JpaRepository<TSubjectday, TSubjectdayPK> {
-
-  @Query(value = "from TSubjectday where accdate=:accdate ")
-  List<TSubjectday> getAllByAccdate(@Param("accdate") String accdate);
-
-  @Query(value = "select a.subjno as shopaccno,a.begindrbal as dramt,a.begincrbal as cramt from TB_SUBJECTDAY a left join (select subjno from TB_SUBJECT where endflag=1) b on a.subjno=b.subjno where a.accdate=:accdate and b.subjno is not null ", nativeQuery = true)
-  List<MerchBean> getEndSubjectbalInfos(@Param("accdate") String accdate);
-
-  @Query(value = "from TSubjectday where accdate=:accdate and subjno=:subjno")
-  TSubjectday getSubjectDayById(@Param("accdate") String accdate, @Param("subjno") String subjno);
-
-  @Query(value = "from TSubjectday t where t.accdate=:accdate and t.subjno in (select subjno from TSubject where subjlevel=1 and endflag=0 ) ")
-  List<TSubjectday> getParentSubjectday(@Param("accdate") String accdate);
-
-  @Query(value = "select sum(sb.begindrbal) as begindrbal,sum(sb.begincrbal) as begincrbal,sum(sb.dramt) as dramt,sum(sb.cramt) as cramt,sum(sb.drbal) as drbal,sum(sb.crbal) as crbal  " +
-      "from TB_SUBJECTDAY sb, TB_SUBJECT s " +
-      "where sb.accdate =:accdate and sb.subjno=s.subjno and s.subjlevel=2 and s.fsubjno=:fsubjno ",nativeQuery = true)
-  FSubjectInfoBean getParentSumInfo(@Param("accdate") String accdate, @Param("fsubjno") String fsubjno);
-
-  @Query(value = "select sum(begindrbal) as begindrbal,sum(begincrbal) as begincrbal,sum(dramt) as dramt,sum(cramt) as cramt,sum(drbal) as drbal,sum(crbal) as crbal " +
-      "from tb_subjectday where accdate=:accdate and subjno in (select subjno from tb_subject where subjlevel=1) ", nativeQuery = true)
-  FSubjectInfoBean getAllParentSubjectSumInfo(@Param("accdate") String accdate);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java
deleted file mode 100644
index a276c61..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/TranstypeDao.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TTranstype;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.stereotype.Repository;
-
-@Repository
-public interface TranstypeDao extends JpaRepository<TTranstype, Integer> {
-  TTranstype findByTranstype(Integer transtype);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
deleted file mode 100644
index e839c01..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherDao.java
+++ /dev/null
@@ -1,40 +0,0 @@
-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 org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-
-import javax.persistence.LockModeType;
-import java.util.List;
-
-public interface VoucherDao extends JpaRepository<TVoucher, Integer> {
-
-  @Query(value = "select count(t.voucherid) as existed from TB_VOUCHER t where t.POSTFLAG=0 ", nativeQuery = true)
-  ExistBean checkExistUnpostVouhcer();
-
-  @Modifying
-  @Query(value="delete from TB_VOUCHER where POSTFLAG=0 ",nativeQuery = true)
-  void deleteUnpostVoucher();
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query(value = "from TVoucher where postflag=0 order by voucherid ")
-  List<TVoucher> getSettleVouchers();
-
-  @Query(value="select va.accno as shopaccno,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=:settledate and va.subjno='2004' and va.accno is not null " +
-      "group by va.accno order by va.accno ", nativeQuery = true)
-  List<MerchBean> getShopVoucherByAccdate(@Param("settledate")Integer settledate);
-
-  @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(@Param("voucherdate") Integer voucherdate, @Param("subjno") String subjno);
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query(value = "from TVoucher where voucherid=:voucherid ")
-  TVoucher findByVoucheridWithLock(@Param("voucherid") Integer 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
deleted file mode 100644
index cfb8cfd..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/VoucherEntryDao.java
+++ /dev/null
@@ -1,26 +0,0 @@
-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.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-import javax.persistence.LockModeType;
-import java.util.List;
-
-@Repository
-public interface VoucherEntryDao extends JpaRepository<TVoucherEntry,TVoucherEntryPK> {
-  @Modifying
-  @Query(value = "delete from TB_VOUCHERENTRY where VOUCHERID in (select VOUCHERID from TB_VOUCHER where POSTFLAG=0)", nativeQuery = true)
-  void deleteUnpostVoucherentry();
-
-  @Query(value = "from TVoucherEntry where voucherid in (select voucherid from TVoucher where voucherdate=:voucherdate) order by subjno,accno,voucherid ")
-  List<TVoucherEntry> getVoucherEntryByVoucherdate(@Param("voucherdate") Integer voucherdate);
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query(value = "from TVoucherEntry t where t.voucherid=:voucherid ")
-  List<TVoucherEntry> getVoucherEntryByVoucherid(@Param("voucherid")Integer voucherid);
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java
deleted file mode 100644
index 7f81bf9..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/VouchernoCtlDao.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.supwisdom.dlpay.framework.dao;
-
-import com.supwisdom.dlpay.framework.domain.TVouchernoCtl;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import javax.persistence.LockModeType;
-
-@Repository
-public interface VouchernoCtlDao extends JpaRepository<TVouchernoCtl, Integer> {
-  @Modifying(clearAutomatically = true)
-  @Query(value = "update TB_VOUCHERNOCTL set PERIODMONTH=:peridmonth,VOUCHERNO=:voucherno where VOUCHERTYPE=1 ", nativeQuery = true)
-  void updateVoucherno(@Param("peridmonth") int peridmonth, @Param("voucherno") int voucherno);
-
-  @Lock(LockModeType.PESSIMISTIC_WRITE)
-  @Query(value = "from TVouchernoCtl where vouchertype=1 ")
-  TVouchernoCtl getVoucherno();
-}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java b/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
deleted file mode 100644
index d3318f0..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/service/DayendSettleService.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.supwisdom.dlpay.framework.service;
-
-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; //日结
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-  boolean doVoucherSettle(String voucherid) throws Exception; //指定凭证入账
-}
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
deleted file mode 100644
index 2f4959b..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/DayendSettleServiceImpl.java
+++ /dev/null
@@ -1,541 +0,0 @@
-package com.supwisdom.dlpay.framework.service.impl;
-
-import com.supwisdom.dlpay.api.dao.DebitCreditDtlDao;
-import com.supwisdom.dlpay.framework.dao.*;
-import com.supwisdom.dlpay.framework.data.FSubjectInfoBean;
-import com.supwisdom.dlpay.framework.data.MerchBean;
-import com.supwisdom.dlpay.framework.data.SubjectInfoBean;
-import com.supwisdom.dlpay.framework.data.VoucherTemp;
-import com.supwisdom.dlpay.framework.domain.*;
-import com.supwisdom.dlpay.framework.service.DayendSettleService;
-import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.DateUtil;
-import com.supwisdom.dlpay.framework.util.MoneyUtil;
-import com.supwisdom.dlpay.framework.util.StringUtil;
-import com.supwisdom.dlpay.framework.util.Subject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Service
-public class DayendSettleServiceImpl implements DayendSettleService {
-  @Autowired
-  private SystemUtilService systemUtilService;
-  @Autowired
-  private SettleLogDao settleLogDao;
-  @Autowired
-  private SettleCtlDao settleCtlDao;
-  @Autowired
-  private PeriodDao periodDao;
-  @Autowired
-  private VouchernoCtlDao vouchernoCtlDao;
-  @Autowired
-  private ShopaccDao shopaccDao;
-  @Autowired
-  private SubjectDao subjectDao;
-  @Autowired
-  private SubjectbalDao subjectbalDao;
-  @Autowired
-  private VoucherDao voucherDao;
-  @Autowired
-  private VoucherEntryDao voucherEntryDao;
-
-  @Autowired
-  private ShopaccdayDao shopaccdayDao;
-  @Autowired
-  private SubjectdayDao subjectdayDao;
-  @Autowired
-  private DebitCreditDtlDao debitCreditDtlDao;
-
-
-  private static final Logger logger = LoggerFactory.getLogger(DayendSettleServiceImpl.class);
-
-  private int hostdate;
-  private int periodYear; // 记账年份
-  private int periodMonth; // 记账月份
-  private int settledate; //结算日期
-  private int lastsettday; //结算前一天
-
-  @Override
-  public TSettleLog doCreateSettleLog() {
-    TSettleLog log = new TSettleLog();
-    log.setStarttime(systemUtilService.getSysdatetime().getHostdatetime());
-    return settleLogDao.save(log);
-  }
-
-  @Override
-  public TSettleLog doUpdateSettleLog(TSettleLog log) {
-    if (null == log) return null;
-    log.setEndtime(systemUtilService.getSysdatetime().getHostdatetime());
-    return settleLogDao.save(log);
-  }
-
-  private boolean doSwitchPeriod() throws Exception {
-    TPeriod period = periodDao.getTPeriodWithLock(periodYear, periodMonth);
-    if (period.getSettleflag() == 1) {
-      throw new Exception("月末结转已完成");
-    }
-    period.setSettleflag(1);
-    periodDao.save(period); //已结
-
-    if (periodMonth >= 12) {
-      periodMonth = 1;
-      periodYear = periodYear + 1; //年份加一
-    } else {
-      periodMonth = periodMonth + 1; //year不变
-    }
-
-    TPeriod nextPerid = periodDao.getPeriod(periodYear, periodMonth);
-    if (null != nextPerid) {
-      if (settledate != Integer.valueOf(nextPerid.getStartdate())) {
-        throw new Exception("下一个会计期间的开始日期不正确");
-      } else if (nextPerid.getSettleflag() == 1) {
-        throw new Exception("下一个会计期间的月末结转已完成");
-      }
-    } else {
-      Integer startdate = periodYear * 10000 + periodMonth * 100 + 1;
-      Integer enddate = DateUtil.getLastDayOfMonth(periodYear, periodMonth);
-      if (settledate != startdate) {
-        throw new Exception("下一个会计期间的开始日期不正确");
-      }
-      nextPerid = new TPeriod();
-      nextPerid.setPeriodYear(periodYear);
-      nextPerid.setPeriodMonth(periodMonth);
-      nextPerid.setStartdate(startdate.toString());
-      nextPerid.setEnddate(enddate.toString());
-      nextPerid.setSettleflag(0);
-      periodDao.save(nextPerid); //保存下个会计期间
-    }
-
-    settleCtlDao.updateSettlePeriod(periodYear, periodMonth);
-    vouchernoCtlDao.updateVoucherno(periodMonth, 0);
-    return true;
-  }
-
-  private void saveVoucher(VoucherTemp voucherTemp) {
-    TVoucher voucher = new TVoucher(periodYear, periodMonth, 0, settledate, settledate, voucherTemp.getTranscnt(), Math.abs(voucherTemp.getTransamt()), voucherTemp.getSummary(), "auto", hostdate);
-    voucher = voucherDao.save(voucher);
-    TVoucherEntry entry1;
-    TVoucherEntry entry2;
-    if (voucherTemp.getTransamt() >= 0) {
-      entry1 = new TVoucherEntry(voucher.getVoucherid(), 1, voucherTemp.getDrsubjno(), voucherTemp.getDraccno(), Math.abs(voucherTemp.getTransamt()), 0D, voucherTemp.getSummary(), voucherTemp.getCrsubjno(), voucherTemp.getCraccno());
-      entry2 = new TVoucherEntry(voucher.getVoucherid(), 2, voucherTemp.getCrsubjno(), voucherTemp.getCraccno(), 0D, Math.abs(voucherTemp.getTransamt()), voucherTemp.getSummary(), voucherTemp.getDrsubjno(), voucherTemp.getDraccno());
-    } else {
-      entry1 = new TVoucherEntry(voucher.getVoucherid(), 1, voucherTemp.getDrsubjno(), voucherTemp.getDraccno(), 0D, Math.abs(voucherTemp.getTransamt()), voucherTemp.getSummary(), voucherTemp.getCrsubjno(), voucherTemp.getCraccno());
-      entry2 = new TVoucherEntry(voucher.getVoucherid(), 2, voucherTemp.getCrsubjno(), voucherTemp.getCraccno(), Math.abs(voucherTemp.getTransamt()), 0D, voucherTemp.getSummary(), voucherTemp.getDrsubjno(), voucherTemp.getDraccno());
-    }
-    voucherEntryDao.save(entry1);
-    voucherEntryDao.save(entry2);
-  }
-
-  @Override
-  public boolean doDayendSettle() throws Exception {
-    TSettlectl tSettlectl = settleCtlDao.findByBooksetnoWithLock(1);
-    if (null == tSettlectl || null == tSettlectl.getBooksetno()) {
-      throw new Exception("初始化错误,T_SETTLECTL 无初始化数据");
-    }
-    tSettlectl.setStatus(1); //结算标记
-    settleCtlDao.save(tSettlectl);
-
-    hostdate = Integer.valueOf(systemUtilService.getSysdatetime().getHostdate());
-    periodYear = tSettlectl.getPeriodYear();
-    periodMonth = tSettlectl.getPeriodMonth();
-    settledate = tSettlectl.getSettledate();
-    lastsettday = Integer.valueOf(DateUtil.getNewDay(tSettlectl.getSettledate().toString(), -1));
-
-    if (settledate >= hostdate) {
-      throw new Exception("日终结算已完成");
-    }
-
-    TPeriod period = periodDao.getPeriod(periodYear, periodMonth);
-    if (null == period) throw new Exception("year=[" + periodYear + "],month=[" + periodMonth + "] t_period not find ");
-    if (settledate > Integer.valueOf(period.getEnddate())) {
-      //月切
-      if (!doSwitchPeriod()) {
-        throw new Exception("月切失败");
-      }
-    }
-
-    //新增科目插入科目余额表(末级科目)
-    List<String> newEndsubjectList = subjectDao.getNewSubject();
-    if (!StringUtil.isEmpty(newEndsubjectList)) {
-      for (String subjno : newEndsubjectList) {
-        TSubjectbal subjectbal = new TSubjectbal(subjno);
-        subjectbalDao.save(subjectbal);
-      }
-    }
-    if (subjectDao.checkSettleSubject().getExisted() > 0) {
-      throw new Exception("初始化数据错误:科目余额表数据没有包含所有的科目余额");
-    }
-
-    //删除未入账凭证
-    if (voucherDao.checkExistUnpostVouhcer().getExisted() > 0) {
-      voucherEntryDao.deleteUnpostVoucherentry();
-      voucherDao.deleteUnpostVoucher();
-    }
-
-    //用户交易凭证
-    List<VoucherTemp> userList = debitCreditDtlDao.getVoucherData(String.valueOf(settledate));
-    if (!StringUtil.isEmpty(userList)) {
-      for (VoucherTemp temp : userList) {
-        saveVoucher(temp);
-      }
-    }
-
-    //凭证号
-    TVouchernoCtl vouchernoCtl = vouchernoCtlDao.getVoucherno();
-    if (null == vouchernoCtl) {
-      vouchernoCtl = new TVouchernoCtl();
-      vouchernoCtl.setVouchertype(1);
-      vouchernoCtl.setPeriodMonth(periodMonth);
-      vouchernoCtl.setVoucherno(0);
-      vouchernoCtlDao.save(vouchernoCtl);
-    }
-    int voucherno = vouchernoCtl.getVoucherno();
-    List<TVoucher> voucherList = voucherDao.getSettleVouchers();
-    if (!StringUtil.isEmpty(voucherList)) {
-      for (TVoucher voucher : voucherList) {
-        voucherno++;
-        voucher.setVoucherno(voucherno);
-        voucher.setPostflag(1);
-        voucherDao.save(voucher);
-      }
-      vouchernoCtl.setVoucherno(voucherno);
-      vouchernoCtlDao.save(vouchernoCtl);
-    }
-
-    Map<String, Double> v_merchbaldict = new HashMap<String, Double>(0);
-    //根据商户昨天日结表生成当天日结表(交易前余额), 新增商户添加记录
-    List<TShopaccday> lastShopaccdays = shopaccdayDao.getShopaccdayByAccdate(String.valueOf(lastsettday));
-    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);
-        v_merchbaldict.put(lastday.getShopaccno(), lastday.getBalance());
-      }
-    }
-    List<String> newShopaccs = shopaccDao.getNewShopacc(String.valueOf(lastsettday)); //新增商户
-    if(!StringUtil.isEmpty(newShopaccs)){
-      for(String accno:newShopaccs){
-        TShopaccday today = new TShopaccday(String.valueOf(settledate), accno, periodYear, periodMonth, 0D, 0D, 0D, 0D);
-        shopaccdayDao.save(today);
-        v_merchbaldict.put(accno, 0D);
-      }
-    }
-
-    List<MerchBean> merchBeanList = voucherDao.getShopVoucherByAccdate(settledate);
-    if (!StringUtil.isEmpty(merchBeanList)) {
-      for (MerchBean merch : merchBeanList) {
-        TShopaccday merchday = shopaccdayDao.getTShopaccdayById(String.valueOf(settledate), merch.getShopaccno());
-        if (null == merchday) {
-          throw new Exception("商户余额表无此商户账号[" + merch.getShopaccno() + "]");
-        }
-        merchday.setDramt(merch.getDramt() == null ? 0D : merch.getDramt());
-        merchday.setCramt(merch.getCramt() == null ? 0D : merch.getCramt());
-        shopaccdayDao.save(merchday);
-      }
-    }
-    shopaccdayDao.updateShopaccdayBalance(String.valueOf(settledate), systemUtilService.getSysdatetime().getHostdatetime()); //批量更新余额,商户日结表生成
-
-    //根据科目昨天日结表生成当天日结表(交易前借贷方余额),新增末级科目插入记录(交易前余额为科目贷方余额)
-    List<TSubjectday> lastSubjectDays = subjectdayDao.getAllByAccdate(String.valueOf(lastsettday));
-    if (!StringUtil.isEmpty(lastSubjectDays)) {
-      for (TSubjectday lastday : lastSubjectDays) {
-        TSubjectday today = new TSubjectday(String.valueOf(settledate), lastday.getSubjno(), periodYear, periodMonth, lastday.getDrbal(), lastday.getCrbal(), 0D, 0D, 0D, 0D);
-        subjectdayDao.save(today);
-      }
-    }
-    List<TSubjectbal> newSubjectBals = subjectbalDao.getUnsettleSubjectbal(String.valueOf(lastsettday));
-    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);
-      }
-    }
-    List<String> newFSubjnos = subjectDao.getNewSubjnos(String.valueOf(settledate)); //新增非末级科目
-    if (!StringUtil.isEmpty(newFSubjnos)) {
-      for (String subjno : newFSubjnos) {
-        double beginDrbal = 0;
-        double beginCrbal = 0;
-        MerchBean balInfo = subjectbalDao.getSubjectInfo(subjno); //统计下级所有科目的交易前余额
-        if (null != balInfo) {
-          beginDrbal = (balInfo.getDramt() == null ? 0 : balInfo.getDramt().doubleValue());
-          beginCrbal = (balInfo.getCramt() == null ? 0 : balInfo.getCramt().doubleValue());
-        }
-        TSubjectday today = new TSubjectday(String.valueOf(settledate), subjno, periodYear, periodMonth, beginDrbal, beginCrbal, 0D, 0D, 0D, 0D);
-        subjectdayDao.save(today);
-      }
-    }
-
-    //初始化末级科目期初余额(包含商户科目)
-    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)) {
-      for (MerchBean bean : subjectList) {
-        v_subjbaldict.put(bean.getShopaccno(), MoneyUtil.formatYuan(bean.getDramt() + bean.getCramt()));
-      }
-    }
-
-    List<SubjectInfoBean> subjInfoList = subjectbalDao.getSubjectbalAndFlag();
-    for (SubjectInfoBean subj : subjInfoList) {
-      TSubjectday tSubjectday = subjectdayDao.getSubjectDayById(String.valueOf(settledate), subj.getSubjno());
-      if (null == tSubjectday) {
-        throw new Exception("科目日结表无此科目记录[" + subj.getSubjno() + "]");
-      }
-
-      v_subjbalflagdict.put(subj.getSubjno(), subj.getBalflag());
-      MerchBean suminfo = voucherDao.getSettleSuminfo(settledate, subj.getSubjno());
-      double sumDramt = ((null == suminfo || null == suminfo.getDramt()) ? 0 : suminfo.getDramt().doubleValue());
-      double sumCramt = ((null == suminfo || null == suminfo.getCramt()) ? 0 : suminfo.getCramt().doubleValue());
-      tSubjectday.setDramt(sumDramt);
-      tSubjectday.setCramt(sumCramt);
-      tSubjectday.setUpdtime(systemUtilService.getSysdatetime().getHostdatetime());
-      if (subj.getBalflag() == 1) {
-        tSubjectday.setDrbal(MoneyUtil.formatYuan(tSubjectday.getBegindrbal() + sumDramt - sumCramt));
-      } else {
-        tSubjectday.setCrbal(MoneyUtil.formatYuan(tSubjectday.getBegincrbal() - sumDramt + sumCramt));
-      }
-      subjectdayDao.save(tSubjectday);
-    }
-    //根据二级更新一级科目日结
-    List<TSubjectday> parentSubject = subjectdayDao.getParentSubjectday(String.valueOf(settledate));
-    for (TSubjectday fsub : parentSubject) {
-      FSubjectInfoBean sumInfo = subjectdayDao.getParentSumInfo(String.valueOf(settledate), fsub.getSubjno());
-      fsub.setBegindrbal((null == sumInfo || null == sumInfo.getBegindrbal()) ? 0D : sumInfo.getBegindrbal());
-      fsub.setBegincrbal((null == sumInfo || null == sumInfo.getBegincrbal()) ? 0D : sumInfo.getBegincrbal());
-      fsub.setDramt((null == sumInfo || null == sumInfo.getDramt()) ? 0D : sumInfo.getDramt());
-      fsub.setCramt((null == sumInfo || null == sumInfo.getCramt()) ? 0D : sumInfo.getCramt());
-      fsub.setDrbal((null == sumInfo || null == sumInfo.getDrbal()) ? 0D : sumInfo.getDrbal());
-      fsub.setCrbal((null == sumInfo || null == sumInfo.getCrbal()) ? 0D : sumInfo.getCrbal());
-      fsub.setUpdtime(systemUtilService.getSysdatetime().getHostdatetime());
-      subjectdayDao.save(fsub);
-    }
-
-    //批量更新凭证明细中商户或科目账户的余额
-    List<TVoucherEntry> entryList = voucherEntryDao.getVoucherEntryByVoucherdate(settledate);
-    if (!StringUtil.isEmpty(entryList)) {
-      for (TVoucherEntry vce : entryList) {
-        if (Subject.SUBJNO_MACHANT_INCOME.equals(vce.getSubjno())) {
-          //商户科目
-          Double befbal = v_merchbaldict.get(vce.getAccno());
-          if (null == befbal) throw new Exception("商户表商户账号[" + vce.getAccno() + "]不存在");
-          v_merchbaldict.put(vce.getAccno(), MoneyUtil.formatYuan(befbal + vce.getCramt() - vce.getDramt())); //更新余额
-          vce.setBalflag(2);
-          vce.setBalance(v_merchbaldict.get(vce.getAccno()));
-          if (Subject.SUBJNO_MACHANT_INCOME.equals(vce.getOppsubjno())) {
-            vce.setOppname(shopaccDao.getShopname(vce.getOppaccno()));
-          } else {
-            vce.setOppname(subjectDao.getSubjectname(vce.getOppsubjno()));
-          }
-          voucherEntryDao.save(vce);
-          Double befMerchbal = v_subjbaldict.get(vce.getSubjno());
-          if (null == befMerchbal) throw new Exception("商户科目号[" + vce.getSubjno() + "]不存在");
-          v_subjbaldict.put(vce.getSubjno(), MoneyUtil.formatYuan(befMerchbal - vce.getDramt() + vce.getCramt())); //商户科目总余额更新
-        } else {
-          //其他科目
-          Integer balflag = v_subjbalflagdict.get(vce.getSubjno());
-          Double befbal = v_subjbaldict.get(vce.getSubjno());
-          if (null == balflag || null == befbal) throw new Exception("科目表科目号[" + vce.getSubjno() + "]不存在");
-          if (balflag == 1) {
-            v_subjbaldict.put(vce.getSubjno(), MoneyUtil.formatYuan(befbal + vce.getDramt() - vce.getCramt()));
-          } else {
-            v_subjbaldict.put(vce.getSubjno(), MoneyUtil.formatYuan(befbal - vce.getDramt() + vce.getCramt()));
-          }
-          vce.setBalflag(balflag);
-          vce.setBalance(v_subjbaldict.get(vce.getSubjno()));
-          if (Subject.SUBJNO_MACHANT_INCOME.equals(vce.getOppsubjno())) {
-            vce.setOppname(shopaccDao.getShopname(vce.getOppaccno()));
-          } else {
-            vce.setOppname(subjectDao.getSubjectname(vce.getOppsubjno()));
-          }
-          voucherEntryDao.save(vce);
-        }
-      }
-    }
-
-    //开始校验
-    //核算商户日结表商户余额 和凭证明细余额是否一致 TODO(新商户收入校验逻辑)
-    for (String shopaccno : v_merchbaldict.keySet()) {
-      TShopaccday tShopaccday = shopaccdayDao.getTShopaccdayById(String.valueOf(settledate), shopaccno);
-      if (!MoneyUtil.moneyEqual(v_merchbaldict.get(shopaccno), tShopaccday.getBalance())) {
-        throw new Exception("结算后检查失败:商户["+shopaccno+"]余额不等,商户日结余额[" + tShopaccday.getBalance() + "]凭证商户余额[" + v_merchbaldict.get(shopaccno) + "]");
-      }
-//      TShopaccbal tShopaccbal = shopaccbalDao.getOne(shopaccno);
-//      tShopaccbal.setBalance(tShopaccday.getBalance());
-//      tShopaccbal.setUpdtime(systemUtilService.getSysdatetime().getHostdatetime());
-//      shopaccbalDao.save(tShopaccbal); //商户期末余额
-    }
-
-    //核算科目日结表科目余额和凭证明细余额是否一致
-    for (String subjno : v_subjbaldict.keySet()) {
-      TSubjectday tSubjectday = subjectdayDao.getSubjectDayById(String.valueOf(settledate), subjno);
-      if (!MoneyUtil.moneyEqual(v_subjbaldict.get(subjno), tSubjectday.getDrbal() + tSubjectday.getCrbal())) {
-        throw new Exception("结算后检查失败:科目日结表期末余额不等,科目号[" + subjno + "],科目余额[" + (tSubjectday.getDrbal() + tSubjectday.getCrbal()) + "],凭证科目余额[" + v_subjbaldict.get(subjno) + "]");
-      }
-      TSubjectbal tSubjectbal = subjectbalDao.getOne(subjno);
-      tSubjectbal.setBegindrbal(tSubjectday.getBegindrbal());
-      tSubjectbal.setBegincrbal(tSubjectday.getBegincrbal());
-      tSubjectbal.setDramt(tSubjectday.getDramt());
-      tSubjectbal.setCramt(tSubjectday.getCramt());
-      tSubjectbal.setDrbal(tSubjectday.getDrbal());
-      tSubjectbal.setCrbal(tSubjectday.getCrbal());
-      tSubjectbal.setUpdtime(systemUtilService.getSysdatetime().getHostdatetime());
-      subjectbalDao.save(tSubjectbal);
-    }
-
-    //核对商户日结表余额表和科目日结表商户余额是否一致
-    TSubjectday shopSubjectday = subjectdayDao.getSubjectDayById(String.valueOf(settledate), Subject.SUBJNO_MACHANT_INCOME);
-    Double merchbal = shopaccdayDao.getSumBalance(String.valueOf(settledate));
-    double shopSubbal = (shopSubjectday == null ? 0 : shopSubjectday.getCrbal());
-    double shopMerchbal = (merchbal == null ? 0 : merchbal);
-    if (!MoneyUtil.moneyEqual(shopSubbal, shopMerchbal)) {
-      throw new Exception("结算后检查失败:商户日结表和科目日结表期末余额不平衡,商户[" + shopMerchbal + "] 科目[" + shopSubbal + "]");
-    }
-
-    //核算一级科目余额是否平衡
-    FSubjectInfoBean allParentSubjbal = subjectdayDao.getAllParentSubjectSumInfo(String.valueOf(settledate));
-    if (!MoneyUtil.moneyEqual(allParentSubjbal.getBegindrbal(), allParentSubjbal.getBegincrbal())) {
-      throw new Exception("结算后检查失败:一级科目余额表期初余额不平衡,借方[" + allParentSubjbal.getBegindrbal() + "],贷方[" + allParentSubjbal.getBegincrbal() + "]");
-    }
-    if (!MoneyUtil.moneyEqual(allParentSubjbal.getDramt(), allParentSubjbal.getCramt())) {
-      throw new Exception("结算后检查失败:一级科目余额表发生额不平衡,借方[" + allParentSubjbal.getDramt() + "],贷方[" + allParentSubjbal.getCramt() + "]");
-    }
-    if (!MoneyUtil.moneyEqual(allParentSubjbal.getDrbal(), allParentSubjbal.getCrbal())) {
-      throw new Exception("结算后检查失败:一级科目余额表期末额不平衡,借方[" + allParentSubjbal.getDrbal() + "]贷方[" + allParentSubjbal.getCrbal() + "]");
-    }
-    //校验科目余额表的balflag=1的总期末余额和balflag=2的总期末余额是否一致
-    Double balflag_1_sumbal = subjectbalDao.getSumEndsubjectBalByEndflag(1);
-    Double balflag_2_sumbal = subjectbalDao.getSumEndsubjectBalByEndflag(2);
-    if (null == balflag_1_sumbal || null == balflag_1_sumbal) throw new Exception("结算后检查失败:科目余额表无数据");
-    if (!MoneyUtil.moneyEqual(balflag_1_sumbal, balflag_2_sumbal)) {
-      throw new Exception("结算后检查失败:科目余额表期末余额不平衡,借方[" + balflag_1_sumbal + "],贷方[" + balflag_2_sumbal + "]");
-    }
-    //TODO: 校验 账户余额汇总值和科目日结表值是否一致
-
-    //日切
-    tSettlectl.setStatus(0); //清标记
-    tSettlectl.setPeriodYear(periodYear);
-    tSettlectl.setPeriodMonth(periodMonth);
-    tSettlectl.setSettledate(Integer.valueOf(DateUtil.getNewDay(String.valueOf(settledate), 1)));
-    tSettlectl.setUpdtime(systemUtilService.getSysdatetime().getHostdatetime());
-    settleCtlDao.save(tSettlectl);
-    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<String> newShopList = shopaccDao.getNewAddShopacc(String.valueOf(settday));
-//    if (!StringUtil.isEmpty(newShopList)) {
-//      for (String accno : newShopList) {
-//        TShopaccbal shopBal = new TShopaccbal(accno);
-//        shopaccbalDao.save(shopBal);
-//      }
-//    }
-//    if (shopaccDao.checkSettleShopacc().getExisted() > 0) {
-//      throw new Exception("初始化数据错误:商户余额表数据没有包含所有有效的商户账户余额");
-//    }
-//
-//    //新增科目插入科目余额表(末级科目)
-//    List<String> newEndsubjectList = subjectDao.getNewSubject();
-//    if (!StringUtil.isEmpty(newEndsubjectList)) {
-//      for (String subjno : newEndsubjectList) {
-//        TSubjectbal subjectbal = new TSubjectbal(subjno);
-//        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 (Subject.SUBJNO_MACHANT_INCOME.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()));
-//      } else {
-//        entry.setOppname(subjectDao.getSubjectname(entry.getOppsubjno()));
-//      }
-//      voucherEntryDao.save(entry);
-//    }
-
-    return true;
-  }
-
-}
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
deleted file mode 100644
index eee9e5a..0000000
--- a/src/main/java/com/supwisdom/dlpay/framework/service/impl/SystemUtilServiceImpl.java
+++ /dev/null
@@ -1,243 +0,0 @@
-package com.supwisdom.dlpay.framework.service.impl;
-
-import com.supwisdom.dlpay.framework.core.DatabaseConfig;
-import com.supwisdom.dlpay.framework.dao.*;
-import com.supwisdom.dlpay.framework.data.SystemDateTime;
-import com.supwisdom.dlpay.framework.domain.*;
-import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.DateUtil;
-import com.supwisdom.dlpay.framework.util.NumberUtil;
-import com.supwisdom.dlpay.framework.util.StringUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-@Service
-public class SystemUtilServiceImpl implements SystemUtilService {
-  @Autowired
-  private DatabaseConfig databaseConfig;
-
-  @Autowired
-  private TaskLockDao taskLockDao;
-  @Autowired
-  private SettleCtlDao settleCtlDao;
-  @Autowired
-  private TranscodeDao transcodeDao;
-  @Autowired
-  private SysparaDao sysparaDao;
-  @Autowired
-  private BusinessparaDao businessparaDao;
-
-  private static final Logger logger = LoggerFactory.getLogger(SystemUtilServiceImpl.class);
-
-  public static class SystemDateTimeImpl implements SystemDateTime {
-    private Date now;
-    private static final SimpleDateFormat sdft = new SimpleDateFormat("yyyyMMddHHmmss");
-
-    public SystemDateTimeImpl(Date now) {
-      this.now = now;
-    }
-
-    @Override
-    public String getHostdate() {
-      return sdft.format(this.now).substring(0, 8);
-    }
-
-    @Override
-    public String getHosttime() {
-      return sdft.format(this.now).substring(8, 14);
-    }
-
-    @Override
-    public String getHostdatetime() {
-      return sdft.format(this.now);
-    }
-
-    @Override
-    public Date getSysdate() {
-      return this.now;
-    }
-  }
-
-  /**
-   * 获取oracle数据库时间
-   */
-  private SystemDateTime getOracleDatetime() {
-    return taskLockDao.getOracleDatetime();
-  }
-
-  private SystemDateTime getPGDatetime() {
-    return taskLockDao.getPGDatetime();
-  }
-
-  @Override
-  public SystemDateTime getSysdatetime() {
-    switch (databaseConfig.getPlatform()) {
-      case "postgresql":
-        return getPGDatetime();
-      default:
-        return getOracleDatetime();
-    }
-  }
-
-  @Override
-  public TTaskLock updateTaskLock(TTaskLock lock) {
-    return taskLockDao.save(lock);
-  }
-
-  @Override
-  public TTaskLock doLockTask(String taskcode, Integer minRecover, String remark) {
-    if (null == minRecover) minRecover = 10; //默认10分钟
-    String hostdatetime = getSysdatetime().getHostdatetime(); //yyyyMMddHHmmss
-    TTaskLock lock = taskLockDao.getTaskLockWithLock(taskcode);
-    if (lock != null) {
-      if (lock.getTaskstatus() == 1 && DateUtil.compareDatetime(DateUtil.getNewTime(hostdatetime, -60 * minRecover), lock.getTasktime()) < 0) {
-        // 被锁,正在执行操作
-        return null;
-      } else {
-        lock.setTaskstatus(1);
-        lock.setTasktime(hostdatetime);
-        taskLockDao.save(lock);
-        return lock;
-      }
-    } else {
-      lock = new TTaskLock();
-      lock.setTaskcode(taskcode);
-      lock.setTaskstatus(1);
-      lock.setTasktime(hostdatetime);
-      lock.setRemark(remark);
-      taskLockDao.save(lock);
-    }
-    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() {
-    switch (databaseConfig.getPlatform()) {
-      case "postgresql":
-        return taskLockDao.getPgRefno();
-      default:
-        return taskLockDao.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;
-  }
-
-  @Override
-  public String getSysparaValue(int paraid) {
-    TSyspara syspara = sysparaDao.findByParaid(paraid);
-    if (null != syspara) return syspara.getParaval();
-    return null;
-  }
-
-  @Override
-  public String getSysparaValue(int paraid, String defaultValue) {
-    String paraval = getSysparaValue(paraid);
-    if (null != paraval) return paraval;
-    return defaultValue;
-  }
-
-  @Override
-  public boolean getSysparaValueAsBoolean(int paraid) {
-    TSyspara syspara = sysparaDao.findByParaid(paraid);
-    if (null != syspara && "1".equals(syspara.getParaval())) return true;
-    return false;
-  }
-
-  @Override
-  public int getSysparaValueAsInt(int paraid, int defaultValue) {
-    TSyspara syspara = sysparaDao.findByParaid(paraid);
-    if (null != syspara && NumberUtil.isNumber(syspara.getParaval())) return Integer.parseInt(syspara.getParaval());
-    return defaultValue;
-  }
-
-  @Override
-  public double getSysparaValueAsDouble(int paraid, double defaultValue) {
-    TSyspara syspara = sysparaDao.findByParaid(paraid);
-    if (null != syspara && NumberUtil.isDecimal(syspara.getParaval())) return Double.parseDouble(syspara.getParaval());
-    return defaultValue;
-  }
-
-  @Override
-  public TSyspara getSyspara(int paraid){
-    return sysparaDao.findByParaid(paraid);
-  }
-
-  @Override
-  public TSyspara getSysparaValueForUpdate(int paraid){
-    return sysparaDao.findByParaidWithLock(paraid);
-  }
-
-  @Override
-  public TSyspara getSysparaValueForUpdateNowait(int paraid){
-    return sysparaDao.findByParaidWithLockNowait(paraid);
-  }
-
-  @Override
-  public String getBusinessValue(String parakey) {
-    if (!StringUtil.isEmpty(parakey)) {
-      TBusinesspara businesspara = businessparaDao.findByParakey(parakey.trim());
-      if (null != businesspara) return businesspara.getParaval();
-    }
-    return null;
-  }
-
-  @Override
-  public String getBusinessValue(String parakey, String defaultValue) {
-    String paraval = getBusinessValue(parakey);
-    if (!StringUtil.isEmpty(paraval)) return paraval;
-    return defaultValue;
-  }
-
-  @Override
-  public TBusinesspara getBusiness(String parakey) {
-    if (!StringUtil.isEmpty(parakey)) return businessparaDao.findByParakey(parakey.trim());
-    return null;
-  }
-
-  @Override
-  public TBusinesspara getBusinessValueForUpdate(String parakey){
-    if (!StringUtil.isEmpty(parakey)) return businessparaDao.findByParakeyForUpdate(parakey.trim());
-    return null;
-  }
-
-  @Override
-  public TBusinesspara getBusinessValueForUpdateNowait(String parakey) {
-    if (!StringUtil.isEmpty(parakey)) return businessparaDao.findByParakeyForUpdateNowait(parakey.trim());
-    return null;
-  }
-
-  @Override
-  public String getSubsystemSignKey(String syscode){
-    // fixme: 验证数据无误性签名秘钥
-    return "";
-  }
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java b/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java
deleted file mode 100644
index 1bd3bd8..0000000
--- a/src/main/java/com/supwisdom/dlpay/system/controller/DtlController.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.supwisdom.dlpay.system.controller;
-
-import com.supwisdom.dlpay.api.domain.TPersondtl;
-import com.supwisdom.dlpay.api.domain.TShopdtl;
-import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.framework.util.WebConstant;
-import com.supwisdom.dlpay.system.bean.ShopdtlSearchBean;
-import com.supwisdom.dlpay.system.bean.TreeSelectNode;
-import com.supwisdom.dlpay.system.bean.UserdtlSearchBean;
-import com.supwisdom.dlpay.system.service.DtlDataService;
-import com.supwisdom.dlpay.system.service.ShopDataService;
-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.*;
-
-import java.util.List;
-
-@Controller
-public class DtlController {
-  @Autowired
-  private ShopDataService shopDataService;
-  @Autowired
-  private DtlDataService dtlDataService;
-
-  /**
-   * ====================================================
-   * 个人流水查询
-   * ====================================================
-   */
-  @GetMapping("/dtl/userdtl")
-  public String userdtlView(Model model) {
-    model.addAttribute("paytypelist", shopDataService.getConsumePaytypes());
-    model.addAttribute("transcodelist", dtlDataService.getAllTranscodes());
-    model.addAttribute("dtlstatuslist", dtlDataService.getAllDtlStatus());
-    return "system/dtl/userdtl";
-  }
-
-  @GetMapping("/dtl/userdtllist")
-  @PreAuthorize("hasPermission('/dtl/userdtl','')")
-  @ResponseBody
-  public PageResult<TPersondtl> searchUserdtlPage(@ModelAttribute UserdtlSearchBean searchBean) {
-    try {
-      Integer pageNo = searchBean.getPage();
-      Integer pageSize = searchBean.getLimit();
-      if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
-      if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
-      return dtlDataService.getPersondtlPage(searchBean, pageNo, pageSize);
-    } catch (Exception e) {
-      e.printStackTrace();
-      return new PageResult<>(99, "系统查询错误");
-    }
-  }
-
-  /**
-   * ====================================================
-   * 商户流水查询
-   * ====================================================
-   */
-  @GetMapping("/dtl/shopdtl")
-  public String shopdtlView(Model model) {
-    model.addAttribute("paytypelist", shopDataService.getConsumePaytypes());
-    model.addAttribute("transcodelist", dtlDataService.getAllTranscodes());
-    model.addAttribute("dtlstatuslist", dtlDataService.getAllDtlStatus());
-    return "system/dtl/shopdtl";
-  }
-
-  @GetMapping("/dtl/shopdtllist")
-  @PreAuthorize("hasPermission('/dtl/shopdtl','')")
-  @ResponseBody
-  public PageResult<TShopdtl> searchUserdtlPage(@ModelAttribute ShopdtlSearchBean searchBean) {
-    try {
-      Integer pageNo = searchBean.getPage();
-      Integer pageSize = searchBean.getLimit();
-      if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
-      if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
-      return dtlDataService.getShopdtlPage(searchBean, pageNo, pageSize);
-    } catch (Exception e) {
-      e.printStackTrace();
-      return new PageResult<>(99, "系统查询错误");
-    }
-  }
-
-  @GetMapping("/dtl/shoptreeselect")
-  @PreAuthorize("hasPermission('/dtl/shopdtl','')")
-  @ResponseBody
-  public List<TreeSelectNode> searchShopTree() {
-    List<TreeSelectNode> tree = dtlDataService.getTreeSelectShops();
-    return tree;
-  }
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java b/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
deleted file mode 100644
index f64753f..0000000
--- a/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
+++ /dev/null
@@ -1,322 +0,0 @@
-package com.supwisdom.dlpay.system.controller;
-
-import com.supwisdom.dlpay.api.bean.JsonResult;
-import com.supwisdom.dlpay.api.domain.TSourceType;
-import com.supwisdom.dlpay.api.domain.TShopPaytype;
-import com.supwisdom.dlpay.api.domain.TShopPaytypeConfig;
-import com.supwisdom.dlpay.framework.domain.TShop;
-import com.supwisdom.dlpay.framework.domain.TShopacc;
-import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.framework.util.StringUtil;
-import com.supwisdom.dlpay.framework.util.TradeDict;
-import com.supwisdom.dlpay.framework.util.WebConstant;
-import com.supwisdom.dlpay.system.bean.ShopConfigBean;
-import com.supwisdom.dlpay.system.service.ParamService;
-import com.supwisdom.dlpay.system.service.ShopDataService;
-import com.supwisdom.dlpay.util.ConstantUtil;
-import com.supwisdom.dlpay.util.WebCheckException;
-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.*;
-
-import java.util.List;
-import java.util.Map;
-
-@Controller
-public class ShopController {
-  @Autowired
-  private ShopDataService shopDataService;
-  @Autowired
-  private ParamService paramService;
-  @Autowired
-  private SystemUtilService systemUtilService;
-
-  @GetMapping("/shop/index")
-  public String shopView() {
-    return "system/shop/index";
-  }
-
-  @GetMapping("/shop/shoptree")
-  @PreAuthorize("hasPermission('/shop/index','')")
-  @ResponseBody
-  public JsonResult shopTreeData() {
-    return JsonResult.ok("OK").put("data", shopDataService.getAllShopNodes());
-  }
-
-  @PostMapping("/shop/deleteshop")
-  @PreAuthorize("hasPermission('/shop/deleteshop','')")
-  @ResponseBody
-  public JsonResult deleteShop(@RequestParam("shopid") Integer shopid) {
-    TShop shop = shopDataService.getShopByShopid(shopid);
-    if (null == shop) {
-      return JsonResult.error("商户不存在,请重新查询");  //商户不存在,请重新查询
-    }
-
-    try {
-      if (shopDataService.deleteShop(shop)) {
-        return JsonResult.ok("删除成功");
-      } else {
-        return JsonResult.error("删除失败");
-      }
-    } catch (WebCheckException ex) {
-      return JsonResult.error(ex.getMessage());
-    } catch (Exception e) {
-      return JsonResult.error("系统处理异常").put("exception", e);
-    }
-  }
-
-  @GetMapping("/shop/getshopinfo")
-  @PreAuthorize("hasPermission('/shop/getshopinfo','')")
-  @ResponseBody
-  public JsonResult getShopInfo(@RequestParam("shopid") Integer shopid) {
-    TShop shop = shopDataService.getShopByShopid(shopid);
-    if (null == shop) {
-      return JsonResult.error("商户不存在,请重新查询");  //商户不存在,请重新查询
-    }
-    return JsonResult.ok("查询成功").put("shop", shop);
-  }
-
-  @PostMapping("/shop/saveorupdate")
-  @PreAuthorize("hasPermission('/shop/saveorupdate','')")
-  @ResponseBody
-  public JsonResult saveOrUpdateShop(@RequestParam("shopid") Integer shopid, @RequestParam("shopname") String shopname,
-                                     @RequestParam("fshopid") Integer fshopid, @RequestParam("shoptype") Integer shoptype,
-                                     @RequestParam(value = "contactman", required = false) String contactman,
-                                     @RequestParam(value = "idtype", required = false) String idtype,
-                                     @RequestParam(value = "idno", required = false) String idno,
-                                     @RequestParam(value = "mobile", required = false) String mobile,
-                                     @RequestParam(value = "tel", required = false) String tel,
-                                     @RequestParam(value = "email", required = false) String email,
-                                     @RequestParam(value = "addr", required = false) String addr,
-                                     @RequestParam(value = "zipcode", required = false) String zipcode) {
-    if (null == shopid || StringUtil.isEmpty(shopname) || null == fshopid || (shoptype != 0 && shoptype != 1)) {
-      return JsonResult.error("参数传递错误");
-    }
-
-    TShop shop;
-    boolean addflag = false;
-    if (shopid == 0) {
-      //新增
-      addflag = true;
-      shop = new TShop();
-      shop.setFshopid(fshopid);
-      shop.setShopname(shopname);
-      shop.setShoptype(shoptype);
-      shop.setStatus(TradeDict.STATUS_NORMAL);
-    } else {
-      //修改
-      shop = shopDataService.getShopByShopid(shopid);
-      if (null == shop) {
-        return JsonResult.error("商户不存在,修改失败!请重新查询");
-      }
-      shop.setFshopid(fshopid);
-      shop.setShopname(shopname);
-//      shop.setShoptype(shoptype); //商户类型不能改
-    }
-    shop.setContactman(contactman == null ? null : contactman.trim());
-    shop.setIdno(idno == null ? null : idno.trim());
-    shop.setIdtype(idtype == null ? null : idtype.trim());
-    if (!StringUtil.isEmpty(shop.getIdno()) && StringUtil.isEmpty(shop.getIdtype())) {
-      return JsonResult.error("填写证件号时必须制定证件类型!");
-    } else if (!StringUtil.isEmpty(shop.getIdno()) && "1".equals(shop.getIdtype()) && !StringUtil.isIdentity(shop.getIdno())) {
-      return JsonResult.error("身份证格式错误!");
-    }
-    shop.setMobile(mobile == null ? null : mobile);
-    if (!StringUtil.isEmpty(shop.getMobile()) && !StringUtil.isMobile(shop.getMobile())) {
-      return JsonResult.error("请正确填写手机号!");
-    }
-    shop.setTel(tel == null ? null : tel.trim());
-    shop.setEmail(email == null ? null : email.trim());
-    if (!StringUtil.isEmpty(shop.getEmail()) && !StringUtil.isEmail(shop.getEmail())) {
-      return JsonResult.error("请正确填写邮箱地址!");
-    }
-    shop.setAddr(addr == null ? null : addr.trim());
-    shop.setZipcode(zipcode == null ? null : zipcode.trim());
-
-    try {
-      if (shopDataService.saveOrUpdateShop(shop)) {
-        return JsonResult.ok(addflag ? "新增成功" : "修改成功").put("shop", shop);
-      } else {
-        return JsonResult.error(addflag ? "新增失败" : "修改失败");
-      }
-    } catch (WebCheckException ex) {
-      return JsonResult.error(ex.getMessage());
-    } catch (Exception e) {
-      e.printStackTrace();
-      return JsonResult.error("系统处理异常").put("exception", e);
-    }
-  }
-
-  /**
-   * ====================================================
-   * 商户支付能力配置
-   * ====================================================
-   */
-  @GetMapping("/shop/config")
-  public String shopConfigView(Model model) {
-    model.addAttribute("paytypelist", shopDataService.getConsumePaytypes());
-    return "system/shop/config";
-  }
-
-  @GetMapping("/shop/shopacctree")
-  @PreAuthorize("hasPermission('/shop/config','')")
-  @ResponseBody
-  public JsonResult shopaccTreeData() {
-    return JsonResult.ok("OK").put("data", shopDataService.getAllShopNodes());
-  }
-
-  @GetMapping("/shop/shoppaytypelist")
-  @PreAuthorize("hasPermission('/shop/shoppaytypelist','')")
-  @ResponseBody
-  public PageResult<ShopConfigBean> getShopPaytypeList(@RequestParam("page") Integer pageNo,
-                                                       @RequestParam("limit") Integer pageSize,
-                                                       @RequestParam(value = "paytype", required = false) String paytype,
-                                                       @RequestParam(value = "shopaccno", required = false) String shopaccno) {
-    try {
-      if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
-      if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
-      return shopDataService.getShopPaytypeInfos(shopaccno, paytype, pageNo, pageSize);
-    } catch (Exception e) {
-      e.printStackTrace();
-      return new PageResult<>(99, "系统查询错误");
-    }
-  }
-
-  @PostMapping("/shop/updatepaytypestat")
-  @PreAuthorize("hasPermission('/shop/updatepaytypestat','')")
-  @ResponseBody
-  public JsonResult updateShopPaytypeStat(@RequestParam("shopaccno") String shopaccno, @RequestParam("paytype") String paytype,
-                                          @RequestParam("state") String state, @RequestParam("optype") String optype) {
-    if (StringUtil.isEmpty(shopaccno) || StringUtil.isEmpty(paytype)
-        || (!ConstantUtil.ENABLE_NO.equals(state) && !ConstantUtil.ENABLE_YES.equals(state))
-        || (!"consume".equals(optype) && !"anonymous".equals(optype) && !"reverse".equals(optype))) {
-      return JsonResult.error("参数传递错误");
-    }
-
-    try {
-      TShopPaytype shopPaytype = shopDataService.getShopPaytype(shopaccno.trim(), paytype.trim());
-      if (null == shopPaytype) {
-        return JsonResult.error("商户支付能力不存在!");
-      }
-
-      if ("consume".equals(optype)) {
-        if (state.equals(shopPaytype.getConsumeEnable())) {
-          return JsonResult.error("状态错误,请重新查询后操作");
-        }
-        shopPaytype.setConsumeEnable(ConstantUtil.ENABLE_YES.equals(state));
-      } else if ("anonymous".equals(optype)) {
-        if (state.equals(shopPaytype.getAnonymousEnable())) {
-          return JsonResult.error("状态错误,请重新查询后操作");
-        }
-        shopPaytype.setAnonymousEnable(ConstantUtil.ENABLE_YES.equals(state));
-      } else if ("reverse".equals(optype)) {
-        if (state.equals(shopPaytype.getReverseEnable())) {
-          return JsonResult.error("状态错误,请重新查询后操作");
-        }
-        shopPaytype.setReverseEnable(ConstantUtil.ENABLE_YES.equals(state));
-      }
-
-      if (shopDataService.saveOrUpdateShopPaytype(shopPaytype)) {
-        return JsonResult.ok(ConstantUtil.ENABLE_YES.equals(state) ? "启用成功" : "关闭成功");
-      } else {
-        return JsonResult.error(ConstantUtil.ENABLE_YES.equals(state) ? "启用失败" : "关闭失败");
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      return JsonResult.error("系统处理异常").put("exception", e);
-    }
-  }
-
-  @GetMapping("/shop/load4addpaytype")
-  @PreAuthorize("hasPermission('/shop/load4addpaytype','')")
-  public String load4AddShopPaytype(Model model) {
-    model.addAttribute("paytypelist", shopDataService.getConsumePaytypes());
-    return "system/shop/configform";
-  }
-
-  @PostMapping("/shop/addshoppaytype")
-  @PreAuthorize("hasPermission('/shop/addshoppaytype','')")
-  @ResponseBody
-  public JsonResult addShoppaytype(@RequestParam("shopaccno") String shopaccno,
-                                   @RequestParam("paytype") String paytype,
-                                   @RequestParam(value = "consumeEnable", required = false, defaultValue = "no") String consumeEnable,
-                                   @RequestParam(value = "anonymousEnable", required = false, defaultValue = "no") String anonymousEnable,
-                                   @RequestParam(value = "reverseEnable", required = false, defaultValue = "no") String reverseEnable) {
-    if (StringUtil.isEmpty(shopaccno) || StringUtil.isEmpty(paytype)) {
-      return JsonResult.error("参数传递错误");
-    }
-    try {
-      TShopacc shopacc = shopDataService.getShopaccByAccno(shopaccno.trim());
-      TSourceType tPaytype = paramService.getPaytype(paytype.trim());
-      if (null == shopacc) {
-        return JsonResult.error("商户账户不存在!");
-      }
-      if (null == tPaytype) {
-        return JsonResult.error("支付方式在系统中不存在!");
-      }
-      TShopPaytype shopPaytype = shopDataService.getShopPaytype(shopaccno.trim(), paytype.trim());
-      if (null != shopPaytype) {
-        return JsonResult.error("商户该支付能力已经存在!");
-      }
-      shopPaytype = new TShopPaytype();
-      shopPaytype.setShopaccno(shopacc.getShopaccno());
-      shopPaytype.setPaytype(tPaytype.getSourceType());
-      shopPaytype.setConsumeEnable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(consumeEnable));
-      shopPaytype.setAnonymousEnable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(anonymousEnable));
-      shopPaytype.setReverseEnable(ConstantUtil.ENABLE_YES.equalsIgnoreCase(reverseEnable));
-      shopPaytype.setCreatetime(systemUtilService.getSysdatetime().getHostdatetime());
-      if (shopDataService.saveOrUpdateShopPaytype(shopPaytype)) {
-        return JsonResult.ok("新增成功");
-      } else {
-        return JsonResult.error("新增失败");
-      }
-    } catch (Exception e) {
-      e.printStackTrace();
-      return JsonResult.error("系统处理异常").put("exception", e);
-    }
-  }
-
-  @GetMapping("/shop/load4paytypepara")
-  @PreAuthorize("hasPermission('/shop/load4paytypepara','')")
-  public String load4AddShopPaytypePara(@RequestParam("shopaccno") String shopaccno,
-                                        @RequestParam("paytype") String paytype,
-                                        Model model) {
-    List<TShopPaytypeConfig> configList = shopDataService.getShopPaytypeConfigs(shopaccno, paytype);
-    model.addAttribute("configlist", configList);
-    model.addAttribute("shopaccno", shopaccno);
-    model.addAttribute("paytype", paytype);
-    return "system/shop/configpara";
-  }
-
-  @PostMapping("/shop/addpaytypepara")
-  @PreAuthorize("hasPermission('/shop/addpaytypepara','')")
-  @ResponseBody
-  public JsonResult addShopPaytypePara(@RequestBody Map<String, String> param) {
-    String shopaccnoHtmlKey = "hid_shopaccno"; //页面上传来shopaccno的KEY
-    String paytypeHtmlKey = "hid_paytype"; //页面上传来paytype的KEY
-    if (null == param || StringUtil.isEmpty(param.get(paytypeHtmlKey)) || StringUtil.isEmpty(param.get(shopaccnoHtmlKey))) {
-      return JsonResult.error("参数传递错误");
-    }
-    try {
-      String shopaccno = param.get(shopaccnoHtmlKey).trim();
-      String paytype = param.get(paytypeHtmlKey).trim();
-      param.remove(shopaccnoHtmlKey);
-      param.remove(paytypeHtmlKey);
-      if (shopDataService.saveOrUpdateShopPaytypeConfig(shopaccno, paytype, param)) {
-        return JsonResult.ok("配置成功");
-      } else {
-        return JsonResult.error("配置失败");
-      }
-    } catch (WebCheckException ex) {
-      return JsonResult.error(ex.getMessage());
-    } catch (Exception e) {
-      e.printStackTrace();
-      return JsonResult.error("系统处理异常").put("exception", e);
-    }
-  }
-
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java b/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java
deleted file mode 100644
index b2eb69b..0000000
--- a/src/main/java/com/supwisdom/dlpay/system/service/ShopDataService.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.supwisdom.dlpay.system.service;
-
-import com.supwisdom.dlpay.api.domain.TSourceType;
-import com.supwisdom.dlpay.api.domain.TShopPaytype;
-import com.supwisdom.dlpay.api.domain.TShopPaytypeConfig;
-import com.supwisdom.dlpay.framework.domain.TShop;
-import com.supwisdom.dlpay.framework.domain.TShopacc;
-import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.system.bean.ShopConfigBean;
-import com.supwisdom.dlpay.system.bean.ZTreeNode;
-import com.supwisdom.dlpay.util.WebCheckException;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.Map;
-
-public interface ShopDataService {
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  List<ZTreeNode> getAllShopNodes();
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  TShop getShopByShopid(Integer shopid);
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-  boolean deleteShop(TShop shop) throws WebCheckException;
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-  boolean saveOrUpdateShop(TShop shop) throws WebCheckException;
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  List<TSourceType> getConsumePaytypes();
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  PageResult<ShopConfigBean> getShopPaytypeInfos(String shopaccno, String paytype, int pageNo, int pageSize);
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  TShopPaytype getShopPaytype(String shopaccno, String paytype);
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  TShopacc getShopaccByAccno(String shopaccno);
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-  boolean saveOrUpdateShopPaytype(TShopPaytype shopPaytype);
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-  List<TShopPaytypeConfig> getShopPaytypeConfigs(String shopaccno, String paytype);
-
-  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-  boolean saveOrUpdateShopPaytypeConfig(String shopaccno, String paytype, Map<String, String> param) throws WebCheckException;
-
-
-}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java
deleted file mode 100644
index 869bf31..0000000
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/DtlDataServiceImpl.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package com.supwisdom.dlpay.system.service.impl;
-
-import com.supwisdom.dlpay.api.dao.PersondtlDao;
-import com.supwisdom.dlpay.api.dao.ShopdtlDao;
-import com.supwisdom.dlpay.api.domain.TPersondtl;
-import com.supwisdom.dlpay.api.domain.TShopdtl;
-import com.supwisdom.dlpay.framework.dao.DictionaryDao;
-import com.supwisdom.dlpay.framework.dao.ShopDao;
-import com.supwisdom.dlpay.framework.dao.TranscodeDao;
-import com.supwisdom.dlpay.framework.domain.TDictionary;
-import com.supwisdom.dlpay.framework.domain.TShop;
-import com.supwisdom.dlpay.framework.domain.TTranscode;
-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.bean.ShopdtlSearchBean;
-import com.supwisdom.dlpay.system.bean.TreeSelectNode;
-import com.supwisdom.dlpay.system.bean.UserdtlSearchBean;
-import com.supwisdom.dlpay.system.service.DtlDataService;
-import com.supwisdom.dlpay.util.ConstantUtil;
-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.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 DtlDataServiceImpl implements DtlDataService {
-  @Autowired
-  private PersondtlDao persondtlDao;
-  @Autowired
-  private ShopdtlDao shopdtlDao;
-  @Autowired
-  private TranscodeDao transcodeDao;
-  @Autowired
-  private DictionaryDao dictionaryDao;
-  @Autowired
-  private ShopDao shopDao;
-
-  @Override
-  public PageResult<TPersondtl> getPersondtlPage(UserdtlSearchBean searchBean, int pageNo, int pageSize) {
-    Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "refno"));
-    Page<TPersondtl> page = persondtlDao.findAll(new Specification<TPersondtl>() {
-      @Override
-      public Predicate toPredicate(Root<TPersondtl> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
-        List<Predicate> predicates = new ArrayList<>();
-        if(!StringUtil.isEmpty(searchBean.getStartAccdate())){
-          predicates.add(criteriaBuilder.ge(root.get("accdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getStartAccdate()))));
-        }
-        if(!StringUtil.isEmpty(searchBean.getEndAccdate())){
-          predicates.add(criteriaBuilder.le(root.get("accdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getEndAccdate()))));
-        }
-        if(!StringUtil.isEmpty(searchBean.getStartTransdate())){
-          predicates.add(criteriaBuilder.ge(root.get("transdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getStartTransdate()))));
-
-        }
-        if(!StringUtil.isEmpty(searchBean.getEndTransdate())){
-          predicates.add(criteriaBuilder.le(root.get("transdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getEndTransdate()))));
-        }
-        if(!StringUtil.isEmpty(searchBean.getPersonname())){
-          predicates.add(criteriaBuilder.like(root.get("userName").as(String.class), "%" + searchBean.getPersonname().trim() + "%"));
-        }
-        if(!StringUtil.isEmpty(searchBean.getSourcetype())){
-          predicates.add(criteriaBuilder.equal(root.get("sourceType").as(String.class), searchBean.getSourcetype().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getTradeflag())){
-          predicates.add(criteriaBuilder.equal(root.get("tradeflag").as(String.class), searchBean.getTradeflag().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getTranscode())){
-          predicates.add(criteriaBuilder.equal(root.get("transcode").as(String.class), searchBean.getTranscode().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getStatus())){
-          predicates.add(criteriaBuilder.equal(root.get("status").as(String.class), searchBean.getStatus().trim()));
-        }
-        return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
-      }
-    }, pageable);
-    return new PageResult<>(page);
-  }
-
-  @Override
-  public PageResult<TShopdtl> getShopdtlPage(ShopdtlSearchBean searchBean, int pageNo, int pageSize) {
-    Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "refno"));
-    Page<TShopdtl> page = shopdtlDao.findAll(new Specification<TShopdtl>() {
-      @Override
-      public Predicate toPredicate(Root<TShopdtl> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
-        List<Predicate> predicates = new ArrayList<>();
-        if(!StringUtil.isEmpty(searchBean.getStartAccdate())){
-          predicates.add(criteriaBuilder.ge(root.get("accdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getStartAccdate()))));
-        }
-        if(!StringUtil.isEmpty(searchBean.getEndAccdate())){
-          predicates.add(criteriaBuilder.le(root.get("accdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getEndAccdate()))));
-        }
-        if(!StringUtil.isEmpty(searchBean.getStartTransdate())){
-          predicates.add(criteriaBuilder.ge(root.get("transdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getStartTransdate()))));
-
-        }
-        if(!StringUtil.isEmpty(searchBean.getEndTransdate())){
-          predicates.add(criteriaBuilder.le(root.get("transdate").as(Integer.class),Integer.valueOf(DateUtil.unParseToDateFormat(searchBean.getEndTransdate()))));
-        }
-        if(!StringUtil.isEmpty(searchBean.getShopname())){
-          predicates.add(criteriaBuilder.like(root.get("shopname").as(String.class), "%" + searchBean.getShopname().trim() + "%"));
-        }
-        if(!StringUtil.isEmpty(searchBean.getShopaccno())){
-          predicates.add(criteriaBuilder.equal(root.get("shopaccno").as(String.class), searchBean.getShopaccno().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getSourcetype())){
-          predicates.add(criteriaBuilder.equal(root.get("sourceType").as(String.class), searchBean.getSourcetype().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getTradeflag())){
-          predicates.add(criteriaBuilder.equal(root.get("tradeflag").as(String.class), searchBean.getTradeflag().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getTranscode())){
-          predicates.add(criteriaBuilder.equal(root.get("transcode").as(String.class), searchBean.getTranscode().trim()));
-        }
-        if(!StringUtil.isEmpty(searchBean.getStatus())){
-          predicates.add(criteriaBuilder.equal(root.get("status").as(String.class), searchBean.getStatus().trim()));
-        }
-        return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
-      }
-    }, pageable);
-    return new PageResult<>(page);
-  }
-
-  @Override
-  public List<TTranscode> getAllTranscodes(){
-    return transcodeDao.findAll();
-  }
-
-  @Override
-  public List<TDictionary> getAllDtlStatus(){
-    List<TDictionary> list = dictionaryDao.findAllByDicttype(ConstantUtil.DICTTYPE_NO2);
-    if(!StringUtil.isEmpty(list)){
-      return list;
-    }
-    return new ArrayList<>(0);
-  }
-
-  @Override
-  public List<TreeSelectNode> getTreeSelectShops() {
-    List<TShop> shoplist = shopDao.getNormalShops();
-    if (StringUtil.isEmpty(shoplist)) {
-      return new ArrayList<>(0);
-    }
-    return getShopSelectTree(shoplist, 0);
-  }
-
-  private List<TreeSelectNode> getShopSelectTree(List<TShop> shoplist, Integer fshopid) {
-    List<TreeSelectNode> result = new ArrayList<>(0);
-    for (TShop shop : shoplist) {
-      if (fshopid.equals(shop.getFshopid())) {
-        TreeSelectNode node = new TreeSelectNode();
-        node.setId(String.valueOf(shop.getShopid()));
-        if(!StringUtil.isEmpty(shop.getShopaccno())){
-          node.setId(shop.getShopaccno()); //替换商户账号
-        }
-        node.setName(shop.getShopname());
-        node.setOpen(StringUtil.isEmpty(shop.getShopaccno()));
-        node.setChecked(false);
-        node.setAccno(shop.getShopaccno());
-        List<TreeSelectNode> children = getShopSelectTree(shoplist, shop.getShopid());
-        if(null!=children && children.size()>0){
-          node.setChildren(children);
-        }else{
-          node.setChildren(null);
-        }
-        result.add(node);
-      }
-    }
-    return result;
-  }
-}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
deleted file mode 100644
index d474e2c..0000000
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/ShopDataServiceImpl.java
+++ /dev/null
@@ -1,278 +0,0 @@
-package com.supwisdom.dlpay.system.service.impl;
-
-import com.supwisdom.dlpay.api.dao.PaytypeConfigDao;
-import com.supwisdom.dlpay.api.dao.SourceTypeDao;
-import com.supwisdom.dlpay.api.dao.ShopPaytypeConfigDao;
-import com.supwisdom.dlpay.api.dao.ShopPaytypeDao;
-import com.supwisdom.dlpay.api.domain.TSourceType;
-import com.supwisdom.dlpay.api.domain.TPaytypeConfig;
-import com.supwisdom.dlpay.api.domain.TShopPaytype;
-import com.supwisdom.dlpay.api.domain.TShopPaytypeConfig;
-import com.supwisdom.dlpay.framework.dao.ShopDao;
-import com.supwisdom.dlpay.framework.dao.ShopaccDao;
-import com.supwisdom.dlpay.framework.data.SystemDateTime;
-import com.supwisdom.dlpay.framework.domain.TShop;
-import com.supwisdom.dlpay.framework.domain.TShopacc;
-import com.supwisdom.dlpay.framework.service.SystemUtilService;
-import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.framework.util.StringUtil;
-import com.supwisdom.dlpay.framework.util.Subject;
-import com.supwisdom.dlpay.framework.util.TradeDict;
-import com.supwisdom.dlpay.system.bean.ShopConfigBean;
-import com.supwisdom.dlpay.system.bean.ZTreeNode;
-import com.supwisdom.dlpay.system.service.ShopDataService;
-import com.supwisdom.dlpay.util.ConstantUtil;
-import com.supwisdom.dlpay.util.WebCheckException;
-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.stereotype.Service;
-import org.springframework.data.jpa.domain.Specification;
-
-import javax.persistence.criteria.*;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-@Service
-public class ShopDataServiceImpl implements ShopDataService {
-  @Autowired
-  private ShopDao shopDao;
-  @Autowired
-  private ShopaccDao shopaccDao;
-  @Autowired
-  private ShopPaytypeDao shopPaytypeDao;
-  @Autowired
-  private SystemUtilService systemUtilService;
-  @Autowired
-  private SourceTypeDao paytypeDao;
-  @Autowired
-  private PaytypeConfigDao paytypeConfigDao;
-  @Autowired
-  private ShopPaytypeConfigDao shopPaytypeConfigDao;
-
-  @Override
-  public List<ZTreeNode> getAllShopNodes() {
-    List<ZTreeNode> result = new ArrayList<>(0);
-    List<TShop> shoplist = shopDao.getNormalShops();
-    if (!StringUtil.isEmpty(shoplist)) {
-      for (TShop shop : shoplist) {
-        if (null == shop || !TradeDict.STATUS_NORMAL.equals(shop.getStatus())) continue; //跳过注销商户
-        ZTreeNode node = new ZTreeNode();
-        node.setId(shop.getShopid().toString());
-        node.setName(shop.getShopid() + "_" + shop.getShopname());
-        node.setpId(shop.getFshopid() == null ? "" : shop.getFshopid().toString());
-        node.setChecked(false);
-        node.setOpen(true);
-        node.setShoptype(shop.getShoptype());
-        node.setShopaccno(StringUtil.isEmpty(shop.getShopaccno()) ? "" : shop.getShopaccno());
-        node.setIconSkin(shop.getShoptype() == 0 ? "pIcon01" : "pIcon02");
-        result.add(node);
-      }
-    }
-    return result;
-  }
-
-  @Override
-  public TShop getShopByShopid(Integer shopid) {
-    if (null != shopid) {
-      return shopDao.getTShopByShopid(shopid);
-    }
-    return null;
-  }
-
-  @Override
-  public boolean deleteShop(TShop shop) throws WebCheckException {
-    if (null != shop) {
-      List<TShop> childShops = shopDao.getChildShopsByShopid(shop.getShopid());
-      if (!StringUtil.isEmpty(childShops))
-        throw new WebCheckException("请先删除下级商户");
-      shop.setStatus(TradeDict.STATUS_CLOSED);
-      shop.setClosedate(systemUtilService.getSysdatetime().getHostdate());
-      shopDao.save(shop);
-      if (!StringUtil.isEmpty(shop.getShopaccno())) {
-        TShopacc shopacc = shopaccDao.getByShopaccno(shop.getShopaccno());
-        if (null == shopacc) throw new WebCheckException("数据异常!对应的商户账户不存在!");
-        shopacc.setStatus(TradeDict.STATUS_CLOSED);
-        shopacc.setClosedate(shop.getClosedate());
-        shopaccDao.save(shopacc);
-      }
-      return true;
-    }
-    return false;
-  }
-
-  @Override
-  public boolean saveOrUpdateShop(TShop shop) throws WebCheckException {
-    if (shop.getFshopid() != 0) {
-      TShop fshop = shopDao.getTShopByShopid(shop.getFshopid());
-      if (null == fshop) {
-        throw new WebCheckException("上级商户不存在!");
-      } else if (fshop.getShoptype() == 1) {
-        throw new WebCheckException("上级商户不是商户组!");
-      }
-    }
-    if (shopDao.checkShopnameExist(shop.getShopname(), shop.getFshopid(), shop.getShopid() == null ? 0 : shop.getShopid()) > 0) {
-      throw new WebCheckException("商户名称在同级下已经存在!");
-    }
-    if (null != shop.getShopid() && shop.getShopid() > 0) {
-      //修改
-      shopDao.save(shop);
-      if (!StringUtil.isEmpty(shop.getShopaccno())) {
-        shopaccDao.updateShopnameByShopaccno(shop.getShopname(), shop.getShopaccno()); //更新商户名
-      }
-      return true;
-    } else {
-      //新增
-      SystemDateTime dt = systemUtilService.getSysdatetime();
-      shop.setOpendate(dt.getHostdate());
-      shopDao.save(shop);
-      if (shop.getShoptype() == 1) {
-        TShopacc shopacc = new TShopacc();
-        shopacc.setShopaccno(String.format("2%09d", shop.getShopid()));
-        shopacc.setShopid(shop.getShopid());
-        shopacc.setShopname(shop.getShopname());
-        shopacc.setSubjno(Subject.SUBJNO_MACHANT_INCOME);
-        shopacc.setStatus(TradeDict.STATUS_NORMAL);
-        shopacc.setOpendate(dt.getHostdate());
-        shopacc.setBalance(0D);
-        shopaccDao.save(shopacc);
-
-        shop.setShopaccno(shopacc.getShopaccno());
-        shopDao.save(shop);
-
-        TShopPaytype shopPaytype = new TShopPaytype();
-        shopPaytype.setShopaccno(shopacc.getShopaccno());
-        shopPaytype.setPaytype(TradeDict.PAYTYPE_BALANCE);
-        shopPaytype.setConsumeEnable(true);
-        shopPaytype.setAnonymousEnable(false);
-        shopPaytype.setReverseEnable(false);
-        shopPaytype.setCreatetime(dt.getHostdatetime());
-        shopPaytypeDao.save(shopPaytype); //默认增加余额支付方式
-      }
-      return true;
-    }
-  }
-
-  @Override
-  public List<TSourceType> getConsumePaytypes() {
-    List<TSourceType> list = paytypeDao.getConsumeSourceTypes();
-    if (!StringUtil.isEmpty(list)) {
-      return list;
-    }
-    return new ArrayList<TSourceType>(0);
-  }
-
-  @Override
-  public PageResult<ShopConfigBean> getShopPaytypeInfos(String shopaccno, String paytype, int pageNo, int pageSize) {
-    Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by("shopaccno", "paytype"));
-
-    Page<TShopPaytype> page = shopPaytypeDao.findAll(new Specification<TShopPaytype>() {
-      @Override
-      public Predicate toPredicate(Root<TShopPaytype> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
-        List<Predicate> predicates = new ArrayList<>();
-        if (!StringUtil.isEmpty(shopaccno)) {
-          predicates.add(criteriaBuilder.equal(root.get("shopaccno").as(String.class), shopaccno.trim()));
-        }
-        if (!StringUtil.isEmpty(paytype)) {
-          predicates.add(criteriaBuilder.equal(root.get("paytype").as(String.class), paytype.trim()));
-        }
-        return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
-      }
-    }, pageable);
-
-    if (null == page || page.getTotalElements() == 0) {
-      return new PageResult<>(99, "无数据");
-    }
-    List<ShopConfigBean> list = new ArrayList<>(0);
-    for (TShopPaytype pt : page.getContent()) {
-      ShopConfigBean bean = new ShopConfigBean();
-      bean.setShopaccno(pt.getShopaccno());
-      TShopacc shopacc = shopaccDao.getByShopaccno(pt.getShopaccno());
-      bean.setShopname(shopacc == null ? "" : shopacc.getShopname());
-      bean.setPaytype(pt.getPaytype());
-      TSourceType tPaytype = paytypeDao.getBySourceType(pt.getPaytype());
-      bean.setPaydesc(tPaytype == null ? "" : tPaytype.getPaydesc());
-      bean.setConsumeEnable(pt.getConsumeEnable());
-      bean.setAnonymousEnable(pt.getAnonymousEnable());
-      bean.setReverseEnable(pt.getReverseEnable());
-      list.add(bean);
-    }
-    return new PageResult<>(page.getTotalElements(), list);
-  }
-
-  @Override
-  public TShopPaytype getShopPaytype(String shopaccno, String paytype) {
-    return shopPaytypeDao.getById(paytype, shopaccno);
-  }
-
-  @Override
-  public TShopacc getShopaccByAccno(String shopaccno) {
-    if (!StringUtil.isEmpty(shopaccno)) {
-      return shopaccDao.getByShopaccno(shopaccno.trim());
-    }
-    return null;
-  }
-
-  @Override
-  public boolean saveOrUpdateShopPaytype(TShopPaytype shopPaytype) {
-    if (null != shopPaytype) {
-      shopPaytypeDao.save(shopPaytype);
-      return true;
-    }
-    return false;
-  }
-
-  @Override
-  public List<TShopPaytypeConfig> getShopPaytypeConfigs(String shopaccno, String paytype) {
-    List<TShopPaytypeConfig> result = new ArrayList<>(0);
-    if (!StringUtil.isEmpty(paytype)) {
-      List<TPaytypeConfig> list = paytypeConfigDao.getByPaytypeOrderByConfigid(paytype.trim());
-      if (!StringUtil.isEmpty(list)) {
-        for (TPaytypeConfig pt : list) {
-          TShopPaytypeConfig spc = shopPaytypeConfigDao.getShopPaytypeConfigById(shopaccno, pt.getPaytype(), pt.getConfigid());
-          if (null == spc) {
-            spc = new TShopPaytypeConfig();
-            spc.setShopaccno(shopaccno);
-            spc.setPaytype(pt.getPaytype());
-            spc.setConfigid(pt.getConfigid());
-            spc.setConfigName(pt.getConfigName());
-            spc.setConfigValue(null);
-          }
-          result.add(spc);
-        }
-      }
-    }
-    return result;
-  }
-
-  @Override
-  public boolean saveOrUpdateShopPaytypeConfig(String shopaccno, String paytype, Map<String, String> param) throws WebCheckException {
-    TShopPaytype shopPaytype = getShopPaytype(shopaccno, paytype);
-    if (null == shopPaytype) {
-      throw new WebCheckException("此商户[" + shopaccno + "]还不具有该支付能力[" + paytype + "]");
-    }
-    for (String key : param.keySet()) {
-      String value = param.get(key);
-      TShopPaytypeConfig spc = shopPaytypeConfigDao.getShopPaytypeConfigById(shopPaytype.getShopaccno(), shopPaytype.getPaytype(), key);
-      if (null != spc) {
-        spc.setConfigValue(StringUtil.isEmpty(value) ? null : value.trim());
-      } else {
-        spc = new TShopPaytypeConfig();
-        spc.setShopaccno(shopPaytype.getShopaccno());
-        spc.setPaytype(shopPaytype.getPaytype());
-        spc.setConfigid(key);
-        spc.setConfigValue(StringUtil.isEmpty(value) ? null : value.trim());
-        TPaytypeConfig paytypeConfig = paytypeConfigDao.getByPaytypeAndAndConfigid(shopPaytype.getPaytype(), key);
-        if (null != paytypeConfig) {
-          spc.setConfigName(paytypeConfig.getConfigName());
-        }
-      }
-      shopPaytypeConfigDao.save(spc);
-    }
-    return true;
-  }
-
-}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt b/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
deleted file mode 100644
index f47651d..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.supwisdom.dlpay.api
-
-import com.supwisdom.dlpay.framework.ResponseBodyBuilder
-import com.supwisdom.dlpay.framework.util.APIRequestParam
-import com.supwisdom.dlpay.framework.util.TradeErrorCode
-import mu.KotlinLogging
-import org.aspectj.lang.ProceedingJoinPoint
-import org.aspectj.lang.annotation.Around
-import org.aspectj.lang.annotation.Aspect
-import org.aspectj.lang.annotation.Pointcut
-import org.springframework.http.ResponseEntity
-import org.springframework.stereotype.Component
-import org.springframework.web.bind.annotation.ExceptionHandler
-import org.springframework.web.bind.annotation.RestControllerAdvice
-import javax.servlet.http.HttpServletRequest
-
-
-@RestControllerAdvice("com.supwisdom.dlpay.api")
-class RestControllerAdvice {
-    val logger = KotlinLogging.logger { }
-
-    @ExceptionHandler
-    fun handleException(ex: Exception, request: HttpServletRequest): ResponseEntity<Any> {
-        logger.error { "Request unhandler exception, url<${request.requestURI}>, ex<${ex.cause}>" }
-        return ResponseEntity.ok().body(ResponseBodyBuilder.create()
-                .exception(TradeErrorCode.BUSINESS_DEAL_ERROR, ex.cause))
-    }
-}
-
-@Component
-@Aspect
-class RestControllerAspect {
-
-    private val logger = KotlinLogging.logger { }
-
-    @Pointcut("@within(org.springframework.web.bind.annotation.RestController)")
-    fun restcontroller() {
-    }
-
-    @Pointcut("@annotation(org.springframework.web.bind.annotation.PostMapping)")
-    fun postmapping() {
-    }
-
-    @Around("restcontroller() && postmapping() && args(.., @RequestBody body)")
-    @Throws(Throwable::class)
-    fun logPostMethods(joinPoint: ProceedingJoinPoint, body: Any): Any {
-        return try {
-            if (body is APIRequestParam) {
-                body.checkParam()
-            }
-            val result = joinPoint.proceed()
-            logger.debug(result.toString())
-            result
-        } catch (t: Throwable) {
-            logger.error { "request error , ex<${t.message}>" }
-            throw t
-        }
-    }
-}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
deleted file mode 100644
index 475a42a..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/shop_api_controller.kt
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.supwisdom.dlpay.api.controller
-
-import com.supwisdom.dlpay.api.bean.OpenShopParam
-import com.supwisdom.dlpay.api.bean.QueryShopParam
-import com.supwisdom.dlpay.framework.ResponseBodyBuilder
-import com.supwisdom.dlpay.api.service.ShopService
-import com.supwisdom.dlpay.exception.RequestParamCheckException
-import com.supwisdom.dlpay.exception.TransactionException
-import com.supwisdom.dlpay.framework.service.CommonService
-import com.supwisdom.dlpay.framework.util.TradeErrorCode
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.http.ResponseEntity
-import org.springframework.web.bind.annotation.*
-import java.net.URLDecoder
-import javax.servlet.http.HttpServletRequest
-import javax.servlet.http.HttpServletResponse
-
-@RestController
-@RequestMapping("/api/shop")
-class ShopAPIController {
-    @Autowired
-    private lateinit var shopService: ShopService
-    @Autowired
-    private lateinit var commonService: CommonService
-
-    @PostMapping("/open")
-    fun openAccount(@RequestBody param: OpenShopParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity<Any> {
-        try {
-            if (!param.checkParam() || !param.checkSign(commonService.getAppidSecretByRequest(request))) {
-                return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
-            }
-            shopService.findByThirdUniqueId(param.shopUniqueId)?.let {
-                return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .fail(TradeErrorCode.BUSINESS_SHOP_EXISTS, "该商户唯一号[${param.shopUniqueId}]已经存在"))
-            }
-
-            param.shopname = param.shopname.let { URLDecoder.decode(param.shopname, Charsets.UTF_8.toString()) } //解码
-            param.contactman = param.contactman?.let { URLDecoder.decode(param.contactman, Charsets.UTF_8.toString()) } //解码
-            param.address = param.address?.let { URLDecoder.decode(param.address, Charsets.UTF_8.toString()) } //解码
-            shopService.registerShop(param).let {
-                return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .data("shopid", it.shopid)
-                        .data("shopaccno", it.shopaccno ?: "")
-                        .success("注册成功"))
-            }
-
-        } catch (ex: RequestParamCheckException) {
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .requestException(ex, "请求参数错误"))
-        } catch (et: TransactionException) {
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .transException(et, "业务处理错误"))
-        }
-    }
-
-    @GetMapping("/query")
-    fun queryShop(@RequestBody param: QueryShopParam, request: HttpServletRequest, response: HttpServletResponse): ResponseEntity<Any> {
-        try {
-            if (param.checkParam() && param.checkSign(commonService.getAppidSecretByRequest(request))) {
-                return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
-            }
-
-            shopService.findByShopBySearch(param.shopid, param.shopaccno, param.shopUniqueId)?.let {
-                return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .data("shop", it)
-                        .success())
-            }
-
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .fail(TradeErrorCode.SHOP_NOT_EXISTS, "商户不存在"))
-        } catch (ex: RequestParamCheckException) {
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .requestException(ex, "请求参数错误"))
-        } catch (et: TransactionException) {
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
-                    .transException(et, "业务处理错误"))
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/repositories/repository_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/repositories/repository_impl.kt
deleted file mode 100644
index e14f947..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/api/repositories/repository_impl.kt
+++ /dev/null
@@ -1,74 +0,0 @@
-package com.supwisdom.dlpay.api.repositories
-
-import com.supwisdom.dlpay.api.domain.TAccount
-import com.supwisdom.dlpay.api.domain.TPersondtl
-import com.supwisdom.dlpay.api.domain.TShopdtl
-import com.supwisdom.dlpay.exception.TransactionProcessException
-import com.supwisdom.dlpay.framework.domain.TShopacc
-import com.supwisdom.dlpay.framework.util.TradeErrorCode
-import org.springframework.stereotype.Repository
-import org.springframework.transaction.annotation.Transactional
-import javax.persistence.EntityManager
-import javax.persistence.PersistenceContext
-
-@Repository
-@Transactional
-class TAccountRepositoryImpl : TAccountRepository {
-
-    @PersistenceContext
-    private lateinit var entityManager: EntityManager
-
-    override fun recalcAccountBalance(accno: String, avaibal: Double, amount: Double, overdraft: Boolean): Int {
-        val account = entityManager.find(TAccount::class.java, accno) ?: return 0
-        if (avaibal.compareTo(account.availbal!!) != 0) {
-            throw TransactionProcessException(TradeErrorCode.ACCOUNT_TRADE_BUSY,
-                    "账户余额已被更新")
-        }
-
-        return entityManager.createQuery("update TAccount a set a.availbal=a.availbal+?1, a.balance=a.balance+?1 " +
-                "where a.accno=?2 and a.availbal=?3")?.run {
-            setParameter(1, amount)
-            setParameter(2, accno)
-            setParameter(3, avaibal)
-            executeUpdate()
-        } ?: throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR, "更新个人账户余额错误")
-    }
-
-    override fun recalcAccountBalance(account: TAccount, amount: Double, overdraft: Boolean): Int {
-        return recalcAccountBalance(account.accno, account.availbal, amount, overdraft)
-    }
-
-    override fun recalcAccountBalance(dtl: TPersondtl, amount: Double, overdraft: Boolean): Int {
-        return entityManager.find(TAccount::class.java, dtl.accountNo)?.let {
-            recalcAccountBalance(it, amount, overdraft).also { count ->
-                if (count == 1) {
-                    dtl.befbal = it.availbal
-                }
-            }
-        } ?: throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR,
-                "交易流水<${dtl.refno}>未找到指定个人账户")
-    }
-}
-
-@Repository
-@Transactional
-class ShopaccRepositoryImpl : TShopaccRepository {
-
-    @PersistenceContext
-    private lateinit var entityManager: EntityManager
-
-    override fun recalcShopBalance(dtl: TShopdtl, amount: Double, overdraft: Boolean): Int {
-        val shopacc = entityManager.find(TShopacc::class.java, dtl.shopaccno)
-                ?: throw TransactionProcessException(TradeErrorCode.ACCOUNT_NOT_EXISTS,
-                        "交易流水<${dtl.refno}>商户账户不存在")
-
-        return entityManager.createQuery("update TShopacc c set c.balance=c.balance+?1" +
-                " where c.shopaccno=?2 and c.balance=?3")?.run {
-            setParameter(1, amount)
-            setParameter(2, dtl.shopaccno)
-            setParameter(3, shopacc.balance)
-            executeUpdate()
-        } ?: throw TransactionProcessException(TradeErrorCode.BUSINESS_DEAL_ERROR,
-                "交易流水<${dtl.refno}>未找到指定商户账户")
-    }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
deleted file mode 100644
index 07c6c40..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/shop_service_impl.kt
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.supwisdom.dlpay.api.service.impl
-
-import com.supwisdom.dlpay.api.bean.OpenShopParam
-import com.supwisdom.dlpay.framework.dao.ShopDao
-import com.supwisdom.dlpay.framework.dao.ShopaccDao
-import com.supwisdom.dlpay.framework.domain.TShop
-import com.supwisdom.dlpay.framework.domain.TShopacc
-import com.supwisdom.dlpay.framework.service.SystemUtilService
-import com.supwisdom.dlpay.framework.util.Subject
-import com.supwisdom.dlpay.api.service.ShopService
-import com.supwisdom.dlpay.exception.TransactionProcessException
-import com.supwisdom.dlpay.framework.util.StringUtil
-import com.supwisdom.dlpay.framework.util.TradeDict
-import com.supwisdom.dlpay.framework.util.TradeErrorCode
-import com.supwisdom.dlpay.util.ConstantUtil
-import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.stereotype.Service
-
-/**
- * Created by shuwei on 2019/4/15.
- */
-@Service
-class ShopServiceImpl : ShopService {
-    @Autowired
-    private lateinit var shopDao: ShopDao
-    @Autowired
-    private lateinit var shopaccDao: ShopaccDao
-    @Autowired
-    private lateinit var systemUtilService: SystemUtilService
-
-    override fun findByThirdUniqueId(uniqueId: String): TShop? {
-       return shopDao.getByThirdUniqueIdenty(uniqueId)
-    }
-
-    override fun registerShop(param: OpenShopParam): TShop {
-        val systemdatetime = systemUtilService.sysdatetime
-        var shop = shopDao.getByThirdUniqueIdentyForUpdate(param.shopUniqueId)
-        if (null != shop) {
-            throw TransactionProcessException(TradeErrorCode.BUSINESS_SHOP_EXISTS, "该商户唯一号[${param.shopUniqueId}]已经存在")
-        }
-        if (null != param.fshopid) {
-            shopDao.getTShopByShopid(param.fshopid).let {
-                if (null == it) {
-                    throw TransactionProcessException(TradeErrorCode.SHOP_NOT_EXISTS, "上级商户不存在已经存在")
-                }
-            }
-        }
-        shop = shopDao.save(TShop().apply {
-            fshopid = param.fshopid
-            shopname = param.shopname
-            shoptype = param.shoptype
-            status = TradeDict.STATUS_NORMAL
-            contactman = param.contactman
-            idtype = param.idtype
-            idno = param.idno
-            mobile = param.mobile
-            email = param.email
-            addr = param.address
-            zipcode = param.zipcode
-            opendate = systemdatetime.hostdate
-            thirdUniqueIdenty = param.shopUniqueId
-        })
-        if (ConstantUtil.SHOPTYPE_GROUP != shop.shoptype) {
-            //非商户组要创建账号
-            val shopaccno = String.format("2%09d", shop.shopid)
-            shopaccDao.save(TShopacc().apply {
-                this.shopaccno = shopaccno
-                this.shopid = shop.shopid
-                this.shopname = shop.shopname
-                this.subjno = Subject.SUBJNO_MACHANT_INCOME
-                this.status = TradeDict.STATUS_NORMAL
-                this.opendate = shop.opendate
-            })
-            shop.shopaccno = shopaccno
-            shopDao.save(shop) //更新账号
-        }
-        return shop
-    }
-
-    override fun findByShopId(shopid: Int): TShop {
-        return shopDao.getTShopByShopid(shopid)
-                ?: throw TransactionProcessException(TradeErrorCode.SHOP_NOT_EXISTS, "商户[ID=$shopid]不存在")
-    }
-
-    override fun findByShopBySearch(shopid: Int?, shopaccno: String?, shopUniqueId: String?): TShop? {
-        return if (null != shopid) {
-            shopDao.getTShopByShopid(shopid)
-        } else if (!StringUtil.isEmpty(shopaccno)) {
-            shopDao.getTShopByShopaccno(shopaccno)
-        } else {
-            shopDao.getByThirdUniqueIdenty(shopUniqueId)
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt
deleted file mode 100644
index f10c1a3..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/pay_service.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.supwisdom.dlpay.api.service
-
-import com.supwisdom.dlpay.api.domain.TAccount
-import com.supwisdom.dlpay.framework.domain.TFeetypeConfig
-import com.supwisdom.dlpay.framework.domain.TShopacc
-import com.supwisdom.dlpay.framework.domain.TSubject
-import org.springframework.transaction.annotation.Propagation
-import org.springframework.transaction.annotation.Transactional
-
-interface AccountUtilServcie {
-
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
-    fun readAccountForUpdateNowait(userid: String): TAccount
-
-
-    fun readAccount(userid: String): TAccount
-
-    fun readShopAcc(shopId: Int): TShopacc
-
-    fun readShopbyShopaccno(shopaccno: String): TShopacc
-
-    fun readSubject(subjno: String): TSubject
-
-    fun readFeetype(feetype: String, paytype: String): TFeetypeConfig
-}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt
deleted file mode 100644
index 697bc11..0000000
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/shop_service.kt
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.supwisdom.dlpay.api.service
-
-import com.supwisdom.dlpay.api.bean.OpenShopParam
-import com.supwisdom.dlpay.framework.domain.TShop
-import org.springframework.transaction.annotation.Propagation
-import org.springframework.transaction.annotation.Transactional
-
-/**
- * Created by shuwei on 2019/4/15.
- */
-interface ShopService {
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
-    fun registerShop(param: OpenShopParam): TShop
-
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
-    fun findByThirdUniqueId(uniqueId: String): TShop?
-
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
-    fun findByShopId(shopid: Int): TShop
-
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
-    fun findByShopBySearch(shopid: Int?, shopaccno: String?, shopUniqueId: String?): TShop?
-}
\ No newline at end of file
diff --git a/src/main/resources/db/migration/V1.3__init_data.sql b/src/main/resources/db/migration/V1.3__init_data.sql
index 46f944d..307edb1 100644
--- a/src/main/resources/db/migration/V1.3__init_data.sql
+++ b/src/main/resources/db/migration/V1.3__init_data.sql
@@ -4,49 +4,3 @@
 INSERT INTO "public"."tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('6', 6, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 INSERT INTO "public"."tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('7', 7, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
 
-CREATE SEQUENCE "public"."seq_regi" INCREMENT 1 MINVALUE  1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
-ALTER SEQUENCE "public"."seq_regi" OWNER TO "watermanager";
-CREATE TABLE "public"."tb_region" (
-  "areano" int4 NOT NULL DEFAULT nextval('seq_regi'::regclass),
-  "address" varchar(255) COLLATE "pg_catalog"."default",
-  "level" int4,
-  "parentid" int4,
-  "areaname" varchar(200) COLLATE "pg_catalog"."default",
-  "remarks" varchar(255) COLLATE "pg_catalog"."default",
-  "parentname" varchar(200) COLLATE "pg_catalog"."default",
-  "available" int4,
-  CONSTRAINT "tb_region_pkey" PRIMARY KEY ("areano")
-);
-ALTER TABLE "public"."tb_region" OWNER TO "watermanager";
-COMMENT ON COLUMN "public"."tb_region"."areano" IS '区域编号';
-COMMENT ON COLUMN "public"."tb_region"."address" IS '详细地址';
-COMMENT ON COLUMN "public"."tb_region"."level" IS '区域级别';
-COMMENT ON COLUMN "public"."tb_region"."parentid" IS '父区域编号,根节点为0';
-COMMENT ON COLUMN "public"."tb_region"."areaname" IS '区域名';
-COMMENT ON COLUMN "public"."tb_region"."remarks" IS '备注';
-COMMENT ON COLUMN "public"."tb_region"."parentname" IS '父区域名';
-COMMENT ON COLUMN "public"."tb_region"."available" IS '是否可用,0否1是';
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES (NULL, 1, 0, '杨浦区', NULL, '无',1);
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES (NULL, 1, 0, '虹口区', NULL, '无',1);
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES ('隆昌路18号', 2, 1, '测试小区1', NULL, '杨浦区',1);
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES ('宁国路77号', 2, 1, '测试小区2', NULL, '杨浦区',1);
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES ('四川北路20号', 2, 2, '虹口小区1', NULL, '虹口区',1);
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES ('测试小区1一号楼', 3, 3, '一号楼', NULL, '测试小区1',1);
-INSERT INTO "public"."tb_region"("address", "level", "parentid", "areaname", "remarks", "parentname","available") VALUES ('测试小区1二号楼', 3, 3, '二号楼', NULL, '测试小区1',0);
-
-
-CREATE TABLE "public"."tb_device" (
-  "deviceno" int4 NOT NULL,
-  "devicename" varchar(200) COLLATE "pg_catalog"."default",
-  "deviceStatus" varchar(100) COLLATE "pg_catalog"."default",
-  "areano" int4,
-  "areaname" varchar(200) COLLATE "pg_catalog"."default",
-  CONSTRAINT "tb_device_pkey" PRIMARY KEY ("deviceno")
-);
-ALTER TABLE "public"."tb_device" OWNER TO "watermanager";
-COMMENT ON COLUMN "public"."tb_device"."deviceno" IS '设备编号';
-COMMENT ON COLUMN "public"."tb_device"."devicename" IS '设备名称';
-COMMENT ON COLUMN "public"."tb_device"."deviceStatus" IS '设备状态';
-COMMENT ON COLUMN "public"."tb_device"."areano" IS '所属区域编号';
-COMMENT ON COLUMN "public"."tb_device"."areaname" IS '所属区域名';
-INSERT INTO "public"."tb_device"("deviceno","devicename", "deviceStatus", "areano", "areaname") VALUES (10000001,'食堂POS01', '正常', 10, '三号楼');