修改card表,customer表结构,调整客户查询等方法,流水初始化逻辑调整
diff --git a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
index a4cc8ed..7322f57 100644
--- a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
+++ b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay;
 
 import com.supwisdom.dlpay.framework.dao.BusinessparaDao;
+import com.supwisdom.dlpay.framework.domain.TBusinesspara;
 import com.supwisdom.dlpay.framework.util.StringUtil;
 import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
 import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
@@ -38,14 +39,14 @@
 
     @Scheduled(cron = "${payapi.logintime}")
     private void doLogin() {
-        String appid=businessparaDao.findByParakey("payapi.appid").getParaval();
-        String secret=businessparaDao.findByParakey("payapi.secret").getParaval();
-        if(StringUtil.isEmpty(appid)||StringUtil.isEmpty(secret)){
+        TBusinesspara appid=businessparaDao.findByParakey("payapi.appid");
+        TBusinesspara secret=businessparaDao.findByParakey("payapi.secret");
+        if(null==(appid)||null==(secret)){
             logger.info("业务参数appid或secret未配置");
             return;
         }
         ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
-        helper.login(appid, secret);
+        helper.login(appid.getParaval(), secret.getParaval());
         logger.info("登录成功");
     }
 
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index 1e1146a..2d99bcc 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -66,31 +66,7 @@
             resp.setRetmsg("设备未注册");
             return resp;
         }
-        /*if (!req.getTermno().equals("FFFFFFFFFFFF")) {
-            TPsamcard tPsamcard = psamOrKeyCardService.getPsamcardbyTermno(req.getTermno());
-            if (tPsamcard == null) {
-                resp.setRetcode(ErrorCode.ERRIF_POS_NOREG);
-                resp.setRetmsg("设备未注册");
-                return resp;
-            }
-            if (tPsamcard.getStatus().intValue() != 0) {
-                resp.setRetcode(ErrorCode.ERRIF_POS_DISABLE);
-                resp.setRetmsg("终端PSAM卡状态错误");
-                return resp;
-            }
-            if (tPsamcard.getDeviceid() > 0) {
-                if (tPsamcard.getDeviceid().intValue() != tDevice.getDeviceid()) {
-                    resp.setRetcode(ErrorCode.ERRIF_POS_TERMID);
-                    resp.setRetmsg("终端PSAM卡错误");
-                    return resp;
-                }
-            } else {
-                tPsamcard.setDeviceid(tDevice.getDeviceid());
-                tPsamcard.setDevjointime(sysdt.getHostdatetime());
-                tPsamcard.setLastsaved(sysdt.getHostdatetime());
-                psamOrKeyCardService.updatePsamcard(tPsamcard);
-            }
-        }*/
+
         List<TShopSettlement> shoplist=shopSettlementService.getShopByShopid(tDevice.getShopid());
         if (shoplist.size() < 1) {
             resp.setRetcode(ErrorCode.ERRIF_POS_NOSHOP);
@@ -98,31 +74,35 @@
             return resp;
         }
 
+        //TODO:改 GroupID逻辑
         Integer groupid = req.getParagroupid();
-        if (groupid == 0) {
+       /* if (groupid == 0) {
             groupid = 1;
-        }
+        }*/
         TDevparaGroup group = deviceParamService.getDevparaGroupByGroupid(groupid);
         if (null == group) {
-            resp.setRetcode(ErrorCode.ERRIF_POS_NOFUNC);
-            resp.setRetmsg("未找到" + req.getDevphyid() + "参数组");
-            return resp;
+            group=deviceParamService.getDefaultDevparaGroup();
+            if(null ==group){
+                resp.setRetcode(ErrorCode.ERRIF_POS_NOFUNC);
+                resp.setRetmsg("未找到" + req.getDevphyid() + "参数组");
+                return resp;
+            }
         }
-
         tDevice.setRunstatus(1);
         tDevice.setLastlogintime(sysdt);
         deviceService.saveDevice(tDevice);
 
-        TDevparaBind bind = deviceParamService.getDevparaBindByDeviceid(tDevice.getId());
-        if (null == bind) {
-            bind = new TDevparaBind();
-            bind.setDeviceid(tDevice.getId());
+        if(group.getGlobalflag()==false){
+            TDevparaBind bind = deviceParamService.getDevparaBindByDeviceid(tDevice.getId());
+            if (null == bind) {
+                bind = new TDevparaBind();
+                bind.setDeviceid(tDevice.getId());
+            }
+            bind.setGroupid(group.getGroupid());
+            bind.setLastsaved(sysdt);
+            devparaBindDao.save(bind);
         }
-        bind.setGroupid(group.getGroupid());
-        bind.setLastsaved(sysdt);
-        devparaBindDao.save(bind);
         Integer onlineseqno = transDtlService.getMaxSeqnoToday(tDevice.getId(), req.getTermdate());
-
         resp.setCardverno(req.getCardverno());
         resp.setOnlineseqno(onlineseqno + 1);
         resp.setOfflineseqno(1);
@@ -145,14 +125,24 @@
             resp.setRetmsg("设备不存在");
             return resp;
         }
-        // 检查卡状态
+        //TODO:改 检查卡状态
         TCard tCard = cardService.getCardByCardnoAndCardphyid(req.getCardno(), req.getCardphyid());
         if (null == tCard) {
             resp.setRetcode(ErrorCode.ERRIF_CARD_NOTEXIST);
             resp.setRetmsg("卡号[" + req.getCardno() + "]不存在");
             return resp;
         }
-
+        if (!tCard.getStatus().equals(RestaurantConstant.STATUS_CARD_NORMAL)){
+            resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
+            resp.setRetmsg("卡号[" + req.getCardno() + "]已注销");
+            return resp;
+        }
+        if(!tCard.getTransstatus().equals(RestaurantConstant.STATUS_CARD_NORMAL)){
+            resp.setRetmsg("卡号[" + req.getCardno() + "]状态异常;");
+            resp.setRetcode(ErrorCode.ERRIF_CARD_DISABLED);
+            return resp;
+        }
+        //TODO:改 这个意思不大
         TCustomer customer=customerService.getCustomerByCustid(tCard.getCustid());
         if(null==customer){
             resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
@@ -161,7 +151,15 @@
         }
         Double managefee=0.0;
 
+        TTransDtl odtl=transDtlService.getPosTransdtl(tDevice.getId(),req.getTermseqno(),req.getTermdate());
 
+        if(null!=odtl){
+            resp.setRetcode(ErrorCode.ERRIF_POS_SEQNO_REPEAT);
+            resp.setRetmsg("该pos当日流水重复");
+            return resp;
+        }
+
+        //TODO:改 同一流水号判重??二维码消费逻辑:请求核心平台解码获取身份
         TTransDtl tTransdtl = new TTransDtl();
         tTransdtl.setAccdate(systemUtilService.getAccdate());
         tTransdtl.setTermid(tDevice.getId());
@@ -179,7 +177,7 @@
         tTransdtl.setAmount(0D);
         tTransdtl.setManagefee(0.0);
         tTransdtl.setRevflag(0);
-        List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime();
+        List<TMealtype> mealtypes = mealTypeDao.findAllByOrderByEndtime(); //TODO:改 餐次设备时钟
         try {
             for (TMealtype m : mealtypes) {
                 if (DateUtil.compareTime(m.getEndtime(), req.getTermtime())) {
@@ -205,7 +203,16 @@
             tTransdtl.setCustname("");
         }
 
-        transDtlService.saveTransdtl(tTransdtl);
+        TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
+
+/*        CitizenCardPayinitParam param=new CitizenCardPayinitParam();
+        param.setBillno(dtl.getBillno());
+        param.setShopaccno(dtl.getShopid());
+        param.setTransdate(dtl.getTransdate());
+        param.setTranstime(dtl.getTranstime());
+        param.setCardNo(dtl.getCardno());
+        param.setAmount(0);
+        CitizenPayResponse response=payApiService.citizencardPayinit(param);*/
         resp.setBillno(tTransdtl.getBillno());
         resp.setRetcode(ErrorCode.ERRIF_OK);
         resp.setAnonymous(false);
@@ -226,12 +233,8 @@
     @Override
     public PosPayConfirmResp doPayConfirm(PosPayConfirmReq req) {
         PosPayConfirmResp resp = new PosPayConfirmResp();
-   /* if (!clientSessionService.checkRequestSign(req)) {
-      resp.setRetcode(ErrorCode.ERRIF_SIGN_ERROR);
-      resp.setRetmsg("签名验证失败");
-      return resp;
-    }*/
-        TTransDtl tTransdtl = transDtlService.getTransDtlByBillno(req.getBillno());
+
+        TTransDtl tTransdtl = transDtlService.getTransDtlByBillno(req.getBillno()); //TODO:改 事务加锁改状态
         if (null == tTransdtl) {
             resp.setRetcode(ErrorCode.ERRIF_POSDTL_NOTEXIST);
             resp.setRetmsg("交易参考号" + req.getBillno() + "不存在");
@@ -243,55 +246,39 @@
             resp.setRetmsg("客户" + tTransdtl.getCustid() + "不存在");
             return resp;
         }
-        Integer extamount = 0;
+
+        Integer extamount = 0; //TODO:改 餐补规则的应用??
         if (cus.getCusttype() == 1) {
             extamount += 100;
         }
 
+        Integer posamount=req.getAmount();
+
+
+
         tTransdtl.setAmount(req.getAmount() / 100.0);
-        tTransdtl.setManagefee(extamount / 100.0);
+        tTransdtl.setManagefee(extamount / 100.0); //managefeetype :mealer discount
         tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
-        TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
-        CitizenCardPayinitParam param=new CitizenCardPayinitParam();
-        param.setBillno(dtl.getBillno());
-        param.setShopaccno(dtl.getShopid());
-        param.setTransdate(dtl.getTransdate());
-        param.setTranstime(dtl.getTranstime());
-        param.setCardNo(dtl.getCardno());
-        param.setDtltype("canteen");
-        param.setAmount(0);
-        CitizenPayResponse response=payApiService.citizencardPayinit(param);
+        transDtlService.saveTransdtl(tTransdtl);
 
-        if(response.getRetcode()!=0){
-            tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
-            tTransdtl.setAttr1(response.getRetmsg());
-            transDtlService.saveTransdtl(tTransdtl);
-            resp.setRetcode(response.getRetcode()+"");
-            resp.setRetmsg(response.getRetmsg());
-            return resp;
-        }
-        CitizenCardPayfinishParam finishparam=new CitizenCardPayfinishParam();
-        finishparam.setRefno(response.getRefno());
-        CitizenPayResponse finishresp=payApiService.citizencardPayFinish(finishparam);
-        if(finishresp.getRetcode()!=0){
-            tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
-            tTransdtl.setAttr1(finishresp.getRetmsg());
-            transDtlService.saveTransdtl(tTransdtl);
-            resp.setRetcode(finishresp.getRetcode()+"");
-            resp.setRetmsg(finishresp.getRetmsg());
-            return resp;
-        }
 
+
+        //TODO:调核心平台初始化确认 逻辑缺!!!
         tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
         transDtlService.saveTransdtl(tTransdtl);
 
+
         resp.setBillno(req.getBillno());
-        Double retAmount=finishresp.getAmount()*100;
+        Double retAmount=tTransdtl.getAmount()*100;
         resp.setAmount(retAmount.intValue());
         resp.setExtraamt(extamount*100);
         resp.setUserid(cus.getCustid());
         resp.setUsername(cus.getCustname());
-        resp.setRequire_query(false);
+        if(RestaurantConstant.STATUS_TRANSDTL_WAIT.equals(tTransdtl.getStatus())){
+            resp.setRequire_query(true);
+        }else{
+            resp.setRequire_query(false);
+        }
         resp.setBalance(0);
         resp.setRetcode(ErrorCode.ERRIF_OK);
         return resp;
@@ -322,7 +309,7 @@
         resp.setExtraamt(retExtamt.intValue());
         resp.setUserid(cus.getCustid());
         resp.setUsername(cus.getCustname());
-        resp.setRequire_query(true);
+        resp.setRequire_query(true); //TODO:改 什么时候成功
         resp.setBalance(0);
         resp.setRetcode(ErrorCode.ERRIF_OK);
         return resp;
@@ -599,7 +586,7 @@
             err+="卡对应人员不存在;";
         } else {
             transDtl.setCustid(customer.getCustid());
-            transDtl.setCustname(customer.getCardno());
+            transDtl.setCustname(customer.getCustname());
         }
 
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerExportBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerExportBean.java
new file mode 100644
index 0000000..adcdd79
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerExportBean.java
@@ -0,0 +1,42 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+
+public class CustomerExportBean {
+    private String custname;
+    private String phone;
+    private String cardno;
+    private String bankcardno;
+
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCardno() {
+        return cardno;
+    }
+
+    public void setCardno(String cardno) {
+        this.cardno = cardno;
+    }
+
+    public String getBankcardno() {
+        return bankcardno;
+    }
+
+    public void setBankcardno(String bankcardno) {
+        this.bankcardno = bankcardno;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
new file mode 100644
index 0000000..8a5c01a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSaveBean.java
@@ -0,0 +1,143 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+
+public class CustomerSaveBean {
+    private String custid;
+    private Integer custtype;
+    private String custname;
+    private String operid;
+    private String idno;
+    private String idtype;
+    private String phone;
+    private String batchno;
+    private String lastsaved;
+    private String status;
+    private String cardno;
+    private String cardphyid;
+    private String bankcardno;
+
+    public String getCustid() {
+        return custid;
+    }
+
+    public void setCustid(String custid) {
+        this.custid = custid;
+    }
+
+    public Integer getCusttype() {
+        return custtype;
+    }
+
+    public void setCusttype(Integer custtype) {
+        this.custtype = custtype;
+    }
+
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+
+    public String getOperid() {
+        return operid;
+    }
+
+    public void setOperid(String operid) {
+        this.operid = operid;
+    }
+
+    public String getIdno() {
+        return idno;
+    }
+
+    public void setIdno(String idno) {
+        this.idno = idno;
+    }
+
+    public String getIdtype() {
+        return idtype;
+    }
+
+    public void setIdtype(String idtype) {
+        this.idtype = idtype;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getBatchno() {
+        return batchno;
+    }
+
+    public void setBatchno(String batchno) {
+        this.batchno = batchno;
+    }
+
+    public String getLastsaved() {
+        return lastsaved;
+    }
+
+    public void setLastsaved(String lastsaved) {
+        this.lastsaved = lastsaved;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getCardno() {
+        return cardno;
+    }
+
+    public void setCardno(String cardno) {
+        this.cardno = cardno;
+    }
+
+    public String getCardphyid() {
+        return cardphyid;
+    }
+
+    public void setCardphyid(String cardphyid) {
+        this.cardphyid = cardphyid;
+    }
+
+    public String getBankcardno() {
+        return bankcardno;
+    }
+
+    public void setBankcardno(String bankcardno) {
+
+        this.bankcardno = bankcardno;
+    }
+
+    @Override
+    public String toString() {
+        return "CustomerSaveBean{" +
+                "custid='" + custid + '\'' +
+                ", custtype=" + custtype +
+                ", custname='" + custname + '\'' +
+                ", operid='" + operid + '\'' +
+                ", idno='" + idno + '\'' +
+                ", idtype='" + idtype + '\'' +
+                ", phone='" + phone + '\'' +
+                ", batchno='" + batchno + '\'' +
+                ", lastsaved='" + lastsaved + '\'' +
+                ", status='" + status + '\'' +
+                ", cardno='" + cardno + '\'' +
+                ", cardphyid='" + cardphyid + '\'' +
+                ", bankcardno='" + bankcardno + '\'' +
+                '}';
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerShowBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerShowBean.java
new file mode 100644
index 0000000..c053e2e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerShowBean.java
@@ -0,0 +1,84 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+
+import javax.persistence.Column;
+
+public class CustomerShowBean {
+    private String custid;
+    private Integer custtype;
+    private String custname;
+    private String phone;
+    private String cardno;
+    private String cardphyid;
+    private String bankcardno;
+
+    public CustomerShowBean(){
+
+    }
+
+    public CustomerShowBean(String custid, Integer custtype, String custname, String phone, String cardno, String cardphyid, String bankcardno) {
+        this.custid = custid;
+        this.custtype = custtype;
+        this.custname = custname;
+        this.phone = phone;
+        this.cardno = cardno;
+        this.cardphyid = cardphyid;
+        this.bankcardno = bankcardno;
+    }
+
+    public String getCustid() {
+        return custid;
+    }
+
+    public void setCustid(String custid) {
+        this.custid = custid;
+    }
+
+    public Integer getCusttype() {
+        return custtype;
+    }
+
+    public void setCusttype(Integer custtype) {
+        this.custtype = custtype;
+    }
+
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCardno() {
+        return cardno;
+    }
+
+    public void setCardno(String cardno) {
+        this.cardno = cardno;
+    }
+
+    public String getCardphyid() {
+        return cardphyid;
+    }
+
+    public void setCardphyid(String cardphyid) {
+        this.cardphyid = cardphyid;
+    }
+
+    public String getBankcardno() {
+        return bankcardno;
+    }
+
+    public void setBankcardno(String bankcardno) {
+        this.bankcardno = bankcardno;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
index 5f303b3..38435b8 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -6,7 +6,9 @@
 import com.supwisdom.dlpay.framework.util.ExportExcel;
 import com.supwisdom.dlpay.framework.util.PageResult;
 import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.restaurant.bean.CustomerSaveBean;
 import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerShowBean;
 import com.supwisdom.dlpay.restaurant.domain.TCustType;
 import com.supwisdom.dlpay.restaurant.domain.TCustomer;
 import com.supwisdom.dlpay.restaurant.service.CustTypeService;
@@ -52,7 +54,7 @@
     @RequestMapping("/list")
     @PreAuthorize("hasPermission('/customer/list','')")
     @ResponseBody
-    public PageResult<TCustomer> getDataList(@RequestParam("page") Integer pageNo,
+    public PageResult<CustomerShowBean> getDataList(@RequestParam("page") Integer pageNo,
                                              @RequestParam("limit") Integer pageSize,
                                              @RequestParam(value = "searchkey", required = false) String searchKey) {
         try {
@@ -62,7 +64,9 @@
             searchBean.setPageNo(pageNo);
             searchBean.setCustname(searchKey);
             searchBean.setPageSize(pageSize);
-            return customerService.getCustomerByCustname(searchBean);
+            PageResult<CustomerShowBean> bean= customerService.getCustomerByCustname(searchBean);
+
+            return bean;
         } catch (Exception e) {
             e.printStackTrace();
             return new PageResult<>(99, "系统查询错误");
@@ -81,7 +85,7 @@
     @PostMapping("/add")
     @PreAuthorize("hasPermission('/customer/add','')")
     @ResponseBody
-    public JsonResult add(@RequestBody TCustomer customer) {
+    public JsonResult add(@RequestBody CustomerSaveBean customer) {
         if (customer != null) {
             return customerService.saveCustomer(customer);
         } else {
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceParamController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceParamController.java
index afaacae..8c0c7bd 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceParamController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceParamController.java
@@ -131,7 +131,8 @@
     try {
       if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
       if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
-      return deviceParamService.getDevparaBindInfos(searchkey, pageNo, pageSize);
+      PageResult<DevparaBindBean> result= deviceParamService.getDevparaBindInfos(searchkey, pageNo, pageSize);
+      return result;
     } catch (Exception e) {
       e.printStackTrace();
       return new PageResult<>(99, "系统查询错误");
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
index dc55b15..d1f234d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CardDao.java
@@ -10,10 +10,17 @@
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Repository
 public interface CardDao extends JpaRepository<TCard, TCardPk> {
 
     @Query(value = "update TB_CARD set STATUS=:status where CARDNO=:cardno", nativeQuery = true)
     void updateStatus(@Param("cardno") Integer cardno,@Param("status") Integer status);
 
+    List<TCard> findAllByCustid(String custid);
+
+    List<TCard> findAllByCardno(String cardno);
+
+    Integer countByCardno(String cardno);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
index f8d8c64..40e6f99 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
@@ -15,12 +15,4 @@
 
     Page<TCustomer> findAllByCustnameContaining(String custname, Pageable pageable);
 
-
-    Integer countByCardno(String cardno);
-
-    Integer countByBankcardno(String bankcardno);
-
-    List<TCustomer> findAllByCardno(String cardno);
-
-    List<TCustomer> findAllByCardnoAndCardphyid(String cardno,String cardphyid);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java
index d9b52fe..04033ee 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/DevparaGroupDao.java
@@ -13,6 +13,8 @@
 
   TDevparaGroup findByGroupid(int groupid);
 
+  TDevparaGroup findByGlobalflag(Boolean t);
+
   @Query("select count(t.groupid) from TDevparaGroup t where t.groupname=?1 ")
   long checkGroupnameExists(String groupname);
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
index 61133b3..f2b60b6 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
@@ -42,4 +42,6 @@
 
     List<TTransDtl> findAllByStatus(String status);
 
+    TTransDtl getByTransdateAndTermidAndTermsqlno(String transdate,Integer termid,Integer termsqlno);
+
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
index 3ee3479..85d3174 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCard.java
@@ -11,10 +11,12 @@
     private String custid;
     private String cardphyid;
     private String  status;
-    private Integer lossflag;
+    private Integer transstatus;
     private String opendate;
     private String closedate;
     private String cardverno;
+    private String expiredate;
+    private String bankcardno;
 
 
     @Id
@@ -53,13 +55,13 @@
     public void setStatus(String status) {
         this.status = status;
     }
-    @Column(name = "lossflag" ,length = 1)
-    public Integer getLossflag() {
-        return lossflag;
+    @Column(name = "transstatus" ,length = 1)
+    public Integer getTransstatus() {
+        return transstatus;
     }
 
-    public void setLossflag(Integer lossflag) {
-        this.lossflag = lossflag;
+    public void setTransstatus(Integer transstatus) {
+        this.transstatus = transstatus;
     }
 
     @Column(name = "opendate" ,length = 8)
@@ -87,4 +89,22 @@
     public void setCardverno(String cardverno) {
         this.cardverno = cardverno;
     }
+
+    @Column(name = "expiredate" ,length = 8)
+    public String getExpiredate() {
+        return expiredate;
+    }
+
+    public void setExpiredate(String expiredate) {
+        this.expiredate = expiredate;
+    }
+
+    @Column(name = "bankcardno" ,length = 20)
+    public String getBankcardno() {
+        return bankcardno;
+    }
+
+    public void setBankcardno(String bankcardno) {
+        this.bankcardno = bankcardno;
+    }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
index a237010..e6070a4 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
@@ -14,11 +14,8 @@
     private Integer custtype;
     private String custname;
     private String operid;
-    private String cardno;
-    private String cardphyid;
     private String idno;
     private String idtype;
-    private String bankcardno;
     private String phone;
     private String batchno;
     private String lastsaved;
@@ -55,16 +52,6 @@
         this.custtype = custtype;
     }
 
-    @Column(name = "CARDNO", length = 32)
-    public String getCardno() {
-        return cardno;
-    }
-
-    public void setCardno(String cardno) {
-        this.cardno = cardno;
-    }
-
-
     @Column(name = "IDNO", length = 20)
     public String getIdno() {
         return idno;
@@ -75,16 +62,6 @@
     }
 
 
-    @Column(name = "BANKCARDNO", length = 30)
-    public String getBankcardno() {
-        return bankcardno;
-    }
-
-    public void setBankcardno(String bankcardno) {
-        this.bankcardno = bankcardno;
-    }
-
-
     @Column(name = "BATCHNO", length = 14)
     public String getBatchno() {
         return batchno;
@@ -141,13 +118,4 @@
     public void setStatus(String status) {
         this.status = status;
     }
-
-    @Column(name = "cardphyid", length = 8)
-    public String getCardphyid() {
-        return cardphyid;
-    }
-
-    public void setCardphyid(String cardphyid) {
-        this.cardphyid = cardphyid;
-    }
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
index ac82e55..d22b33a 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
@@ -2,7 +2,9 @@
 
 import com.supwisdom.dlpay.api.bean.JsonResult;
 import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.restaurant.bean.CustomerSaveBean;
 import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.CustomerShowBean;
 import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
 import com.supwisdom.dlpay.restaurant.domain.TCustomer;
 import com.supwisdom.dlpay.restaurant.domain.TDevice;
@@ -16,14 +18,14 @@
 
 public interface CustomerService {
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
-    PageResult<TCustomer> getCustomerByCustname(CustomerSearchBean param);
+    PageResult<CustomerShowBean> getCustomerByCustname(CustomerSearchBean param);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
     TCustomer getCustomerByCustid(String custid);
 
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    JsonResult saveCustomer(TCustomer customer);
+    JsonResult saveCustomer(CustomerSaveBean customer);
 
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceParamService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceParamService.java
index 8b6ba10..94b18ca 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceParamService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceParamService.java
@@ -21,6 +21,9 @@
   @Transactional(rollbackFor = Exception.class, readOnly = true)
   TDevparaGroup getDevparaGroupByGroupid(int groupid);
 
+  @Transactional(rollbackFor = Exception.class, readOnly = true)
+  TDevparaGroup getDefaultDevparaGroup();
+
   @Transactional(rollbackFor = Exception.class)
   boolean deleteDevparaGroup(TDevparaGroup group) throws WebCheckException;
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
index fbbbbc5..adfcc0f 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
@@ -28,6 +28,10 @@
     TTransDtl getTransDtlByBillno(String billno);
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    TTransDtl getPosTransdtl(Integer termid,Integer termsqlno,String termdate);
+
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     JsonResult revertTransdtl(TTransDtl dtl);
 
 
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
index 9184d9c..1d393e1 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
@@ -3,7 +3,7 @@
 import com.supwisdom.dlpay.api.bean.JsonResult;
 import com.supwisdom.dlpay.framework.service.SystemUtilService;
 import com.supwisdom.dlpay.framework.util.*;
-import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.*;
 import com.supwisdom.dlpay.restaurant.dao.CardDao;
 import com.supwisdom.dlpay.restaurant.dao.CardverDao;
 import com.supwisdom.dlpay.restaurant.dao.CustomerDao;
@@ -11,8 +11,11 @@
 import com.supwisdom.dlpay.restaurant.domain.TCardPk;
 import com.supwisdom.dlpay.restaurant.domain.TCardver;
 import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import com.supwisdom.dlpay.restaurant.service.CardService;
 import com.supwisdom.dlpay.restaurant.service.CustomerService;
 import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
@@ -20,9 +23,13 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.InputStream;
+import java.math.BigInteger;
 import java.util.*;
 
 
@@ -36,18 +43,38 @@
     private SystemUtilService systemUtilService;
     @Autowired
     private CardDao cardDao;
+    @Autowired
+    private CardService cardService;
 
     @Autowired
     private CardverDao cardverDao;
 
+    @PersistenceContext
+    private EntityManager entityManager;
+
     @Override
-    public PageResult<TCustomer> getCustomerByCustname(CustomerSearchBean param) {
-        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
-                , Sort.by("custid"));
-        if (null != param.getCustname()) {
-            return new PageResult<>(customerDao.findAllByCustnameContaining(param.getCustname(), pageable));
+    public PageResult<CustomerShowBean> getCustomerByCustname(CustomerSearchBean param) {
+        StringBuffer querySql = new StringBuffer("select t.cardno,t.custid,c.custname, " +
+                "t.bankcardno,t.cardphyid,c.phone,c.custtype from Tb_card t " +
+                "left join tb_customer c on t.custid=c.custid ");
+        StringBuffer countSql = new StringBuffer("select count(*) as cnt from Tb_card t left join tb_customer c on t.custid=c.custid ");
+        if (!StringUtil.isEmpty(param.getCustname())) {
+            querySql.append(" where  c.custname like :str ");
+            countSql.append(" where  c.custname like :str ");
         }
-        return new PageResult<>(customerDao.findAll(pageable));
+        querySql.append(" order by t.cardno ");
+        Query query = entityManager.createNativeQuery(querySql.toString());
+        Query countQuery = entityManager.createNativeQuery(countSql.toString());
+        if (!StringUtil.isEmpty(param.getCustname())) {
+            query.setParameter("str", "%" + param.getCustname().trim() + "%");
+            countQuery.setParameter("str", "%" + param.getCustname().trim() + "%");
+        }
+        query.setFirstResult((param.getPageNo() - 1) * param.getPageSize());
+        query.setMaxResults(param.getPageSize()); //分页显示
+        query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(CustomerShowBean.class));
+        List<CustomerShowBean> list = query.getResultList();
+        BigInteger count = (BigInteger) countQuery.getSingleResult();
+        return new PageResult<>(count.longValue(), list);
     }
 
     @Override
@@ -60,46 +87,56 @@
     }
 
     @Override
-    public JsonResult saveCustomer(TCustomer customer) {
+    public JsonResult saveCustomer(CustomerSaveBean customer) {
         if (StringUtil.isEmpty(customer.getCustid())) {
-            List<TCustomer> cust =
-                    customerDao.findAllByCardnoAndCardphyid(customer.getCardno(), customer.getCardphyid());
-            if (cust.size() != 0) {
-                return JsonResult.error("用户" + cust.get(0).getCustname() + "已拥有该卡");
+            TCard card =
+                    cardService.getCardByCardnoAndCardphyid(customer.getCardno(), customer.getCardphyid());
+            if (null!=card) {
+                return JsonResult.error("用户" + customer.getCustname() + "已拥有该卡");
             }
         }
-        customer.setLastsaved(DateUtil.getNow("yyyyMMddHHmmss"));
-        TCustomer cus = customerDao.save(customer);
+
+        TCustomer cus=new TCustomer();
+        cus.setCusttype(customer.getCusttype());
+        cus.setBatchno(customer.getBatchno());
+        cus.setLastsaved(DateUtil.getNow("yyyyMMddHHmmss"));
+        cus.setPhone(customer.getPhone());
+        cus.setCustname(customer.getCustname());
+        cus.setIdno(customer.getIdno());
+        cus.setIdtype(customer.getIdtype());
+        cus.setStatus(RestaurantConstant.STATUS_CARD_NORMAL);
+        cus = customerDao.save(cus);
         if (null != cus) {
             String cardverno = systemUtilService.getCardverno();
             String date = DateUtil.getNow("yyyyMMdd");
             TCard card = new TCard();
-            card.setCardno(cus.getCardno());
+            card.setCardno(customer.getCardno());
             card.setOpendate(date);
             card.setCustid(cus.getCustid());
             card.setStatus("normal");
-            card.setCardphyid(cus.getCardphyid());
+            card.setCardphyid(customer.getCardphyid());
             card.setCardverno(cardverno);
-            cardDao.save(card);
+            card.setBankcardno(customer.getBankcardno());
+            card.setExpiredate("");
+            card=cardDao.save(card);
 
-
-            saveCardver(cardverno, date, cus, card.getStatus(), RestaurantConstant.STATUS_CARD_NORMAL);
+            saveCardver(cardverno, date, card, card.getStatus(), RestaurantConstant.STATUS_CARD_NORMAL);
         }
 
         return JsonResult.ok("成功");
     }
 
 
-    private void saveCardver(String cardverno, String date, TCustomer cus, String status, String optype) {
+    private void saveCardver(String cardverno, String date, TCard card, String status, String optype) {
         TCardver tCardver = new TCardver();
         tCardver.setAccdate(date);
-        tCardver.setCardno(cus.getCardno());
-        tCardver.setCardphyid(cus.getCardphyid());
+        tCardver.setCardno(card.getCardno());
+        tCardver.setCardphyid(card.getCardphyid());
 
         tCardver.setAdderflag(1);
         tCardver.setOptype(optype);
         tCardver.setStatus(status);
-        tCardver.setCustid(cus.getCustid());
+        tCardver.setCustid(card.getCustid());
         tCardver.setCreatetime(DateUtil.getNow("yyyyMMddHHmmss"));
         tCardver.setCardverno(cardverno);
         cardverDao.save(tCardver);
@@ -110,13 +147,15 @@
 
         TCustomer customer = customerDao.findById(custid).get();
         String cardverno = systemUtilService.getCardverno();
-        TCardPk pk = new TCardPk(customer.getCardphyid(), customer.getCardno());
-        TCard card = cardDao.findById(pk).get();
-        card.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
-        card.setCardverno(cardverno);
-        cardDao.save(card);
-        String date = DateUtil.getNow("yyyyMMdd");
-        saveCardver(cardverno, date, customer, card.getStatus(), RestaurantConstant.STATUS_CARD_LOGOUT);
+        List<TCard> card = cardDao.findAllByCustid(custid);
+        for(TCard c:card){
+            c.setStatus(RestaurantConstant.STATUS_CARD_LOGOUT);
+            c.setCardverno(cardverno);
+            cardDao.save(c);
+            String date = DateUtil.getNow("yyyyMMdd");
+            saveCardver(cardverno, date, c, c.getStatus(), RestaurantConstant.STATUS_CARD_LOGOUT);
+        }
+
 
 
         customerDao.deleteById(custid);
@@ -132,7 +171,7 @@
             return JsonResult.error("文件格式错误,请选择excel文件格式(.xls/.xlsx)");
         }
 
-        List<TCustomer> sList = new ArrayList<>();
+        List<CustomerSaveBean> sList = new ArrayList<>();
 //    InputStream excelstream = new FileInputStream(savePath+"/"+fname);
         InputStream excelstream = file.getInputStream();
         List<Object[][]> oList = null;
@@ -156,11 +195,11 @@
                 if (StringUtil.isEmpty((String) data[i][0]) || StringUtil.isEmpty((String) data[i][1]) || StringUtil.isEmpty((String) data[i][2])) {
                     msg = msg + "第" + i + "行,关键字段缺失。<br/>";
                     failCnt += 1;
-                } else if (customerDao.countByCardno((String) data[i][1]) > 0) {
+                } else if (cardDao.countByCardno((String) data[i][1]) > 0) {
                     msg = msg + "第" + i + "行,该市名卡已存在。<br/>";
                     failCnt += 1;
                 } else {
-                    TCustomer d = new TCustomer();
+                    CustomerSaveBean d = new CustomerSaveBean();
                     d.setCustname((String) data[i][0]);
                     String cardno = (String) data[i][1];
                     d.setCardno(cardno);
@@ -182,7 +221,7 @@
         return resp;*/
         String batchno = DateUtil.getNow("yyyyMMddHHmmss");
         if (StringUtil.isEmpty(msg)) {
-            for (TCustomer d : sList) {
+            for (CustomerSaveBean d : sList) {
                 d.setBatchno(batchno);
                 saveCustomer(d);
             }
@@ -200,14 +239,15 @@
         }; //表头
         String fileName0 = "客户名单";// 保存数据
         String[][] info0 = {{}};
-        List<TCustomer> dtl = customerDao.findAll();
+        List<CustomerExportBean> dtl = getCustomerExport();
+
         Integer cnt = dtl.size();
         if (cnt > 0) {
             System.out.println("---init here---");
             info0 = new String[cnt][titles0.length];
 
             for (int i = 0; i < cnt; i++) {
-                TCustomer t = dtl.get(i);
+                CustomerExportBean t = dtl.get(i);
                 info0[i][0] = t.getCardno();
                 info0[i][1] = t.getCustname();
                 info0[i][2] = t.getPhone();
@@ -225,5 +265,14 @@
         return JsonResult.error("操作失败");
     }
 
+    private  List<CustomerExportBean> getCustomerExport() {
+        StringBuffer querySql = new StringBuffer(
+                "select c.custname,c.phone,t.cardno,t.bankcardno from tb_card t left join tb_customer c on t.custid=c.custid");
+
+        Query query = entityManager.createNativeQuery(querySql.toString());
+        query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(CustomerExportBean.class));
+        List<CustomerExportBean> list = query.getResultList();
+        return list;
+    }
 
 }
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
index c76a7c5..7530e47 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
@@ -36,6 +36,7 @@
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 @Service
 public class DeviceDiscountRuleServiceImpl implements DeviceDiscountRuleService {
@@ -51,6 +52,8 @@
     private CustomerDao customerDao;
     @Autowired
     private DeviceDao deviceDao;
+    @Autowired
+    private CardDao cardDao;
 
     @PersistenceContext
     private EntityManager entityManager;
@@ -152,9 +155,10 @@
 
     private TCustomer getCustomerByCardno(String cardno) {
         if (!StringUtil.isEmpty(cardno)) {
-            List<TCustomer> list = customerDao.findAllByCardno(cardno.trim());
-            if (!StringUtil.isEmpty(list)) {
-                return list.get(0);
+            TCard clst=cardDao.findAllByCardno(cardno).get(0);
+            Optional<TCustomer> list = customerDao.findById(clst.getCustid());
+            if (list.isPresent()) {
+                return list.get();
             }
         }
         return null;
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
index 865114d..2c3e714 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceParamServiceImpl.java
@@ -61,6 +61,11 @@
   }
 
   @Override
+  public TDevparaGroup getDefaultDevparaGroup() {
+    return devparaGroupDao.findByGlobalflag(true);
+  }
+
+  @Override
   public boolean deleteDevparaGroup(TDevparaGroup group) throws WebCheckException {
     if (null != group) {
       if (group.getGlobalflag()) {
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
index e004451..06b5a37 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
@@ -152,6 +152,11 @@
         return transDtlDao.getByBillno(billno);
     }
 
+    @Override
+    public TTransDtl getPosTransdtl(Integer termid, Integer termsqlno, String termdate) {
+        return transDtlDao.getByTransdateAndTermidAndTermsqlno(termdate,termid,termsqlno);
+    }
+
 
     @Override
     public JsonResult revertTransdtl(TTransDtl dtl) {
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index b65eed5..5c28f58 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -1,5 +1,7 @@
-INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('200001', 'ROLE_THIRD_SHOP;ROLE_THIRD_DEPOSIT;ROLE_THIRD_ADMIN;ROLE_THIRD_CONSUME;ROLE_THIRD_COMMON', 'oUw2NmA09ficiVWD4TUQLDOkPyzQa3VzbjjsW0B2qTk=', 'normal', NULL, '$2a$10$Iaftjij0mOzWY3Yo3e83geMT2ExqsP4b84enC454xFoxP1rKDWl/e');
-INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('100001', 'ROLE_THIRD_ADMIN', 'oUw2NmA09ficiVWD4TUQLDOkPyzQa3VzbjjsW0B2qTk=', 'normal', NULL, '$2a$10$dcHoUeXbjMJw7YV5UyW/PugQYBK3MlNudXuqfeciSn.sr1fYwEHTK');
+INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('200001', 'ROLE_THIRD_SHOP;ROLE_THIRD_DEPOSIT;ROLE_THIRD_ADMIN;ROLE_THIRD_CONSUME;ROLE_THIRD_COMMON', 'dc1d26c0d43e442588092c8d45c21bce', 'normal', NULL, '$2a$10$Iaftjij0mOzWY3Yo3e83geMT2ExqsP4b84enC454xFoxP1rKDWl/e');
+--INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('100001', 'ROLE_THIRD_ADMIN', 'oUw2NmA09ficiVWD4TUQLDOkPyzQa3VzbjjsW0B2qTk=', 'normal', NULL, '$2a$10$dcHoUeXbjMJw7YV5UyW/PugQYBK3MlNudXuqfeciSn.sr1fYwEHTK');
+INSERT INTO "tb_apiclient" (appid,roles,secret,status,thirdurl,bcrypt_secret) VALUES ('3000004', 'ROLE_THIRD_SHOP;ROLE_THIRD_DEPOSIT;ROLE_THIRD_CONSUME', 'c9ae5b4fe5014b5b9eb19e1a0797a3a3', 'normal', NULL, '$2a$10$XvsC6sUyXhKhZvvfKK7.t.UVu8PuP5Mc5UdblLZzsVCtAsT6i2NBK');
+
 
 INSERT INTO "tb_devpara" (paraname,groupid,maxval,minval,paradesc,paraval,valtype) VALUES ('communicate_time', 1, '255', '0', '终端请求超时时间(单位:秒)', '3', 'N');
 INSERT INTO "tb_devpara" (paraname,groupid,maxval,minval,paradesc,paraval,valtype) VALUES ('socket_switch', 1, NULL, NULL, '长连接是否启用(0不启用,1启用)', '1', 'B');
@@ -439,10 +441,10 @@
 INSERT INTO "tb_custtype" (custtypeid,custtypename,feetype) VALUES (2, '外部人员', NULL);
 INSERT INTO "tb_custtype" (custtypeid,custtypename,feetype) VALUES (1, '内部人员', NULL);
 
-insert into "tb_businesspara" (parakey,paravalue) values('upgrade_url','http://172.28.43.252:9977/file/download');
-insert into "tb_businesspara" (parakey,paravalue) values('upgrade_version','posa711dali-1.');
-INSERT INTO "tb_businesspara" (parakey,paravalue) VALUES ('payapi.appid', '200001');
-INSERT INTO "tb_businesspara" (parakey,paravalue) VALUES ('payapi.secret', 'dc1d26c0d43e442588092c8d45c21bce');
+insert into "tb_businesspara" (parakey,paraval) values('upgrade_url','http://172.28.43.252:9977/file/download');
+insert into "tb_businesspara" (parakey,paraval) values('upgrade_version','posa711dali-1.');
+INSERT INTO "tb_businesspara" (parakey,paraval) VALUES ('payapi.appid', '200001');
+INSERT INTO "tb_businesspara" (parakey,paraval) VALUES ('payapi.secret', 'dc1d26c0d43e442588092c8d45c21bce');
 
 
 CREATE SEQUENCE SEQ_REFNO