新增了用户信息查询页面,修改了流水统计功能
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java b/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java
index c7aa81c..ea2a198 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/WaterBudinessConstants.java
@@ -4,4 +4,6 @@
public final static String waterAuthUrl = "water_auth_url";
public final static String waterSinaShortUrl = "water_sina_shorturl";
public final static String WATER_SHOP_ACCNO = "water_shopaccno";
+ public final static String WATER_APPID = "water_appid";
+ public final static String WATER_SECRET = "water_secret";
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java b/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
index b146230..0a8bad2 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/UserDataService.java
@@ -7,6 +7,8 @@
import com.supwisdom.dlpay.framework.domain.TPerson;
import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.system.bean.PersonParamBean;
+import com.supwisdom.dlpay.water.bean.UserAccountSearchBean;
+import com.supwisdom.dlpay.water.pojo.UserAccountDTO;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -48,4 +50,7 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
TPersonIdentity updateAccamount(String thirdUid,Double amount);
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<UserAccountDTO> queryUserAccByParam(UserAccountSearchBean param);
}
diff --git a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
index a43a761..18e921c 100644
--- a/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
@@ -14,12 +14,21 @@
import com.supwisdom.dlpay.framework.util.*;
import com.supwisdom.dlpay.system.bean.PersonParamBean;
import com.supwisdom.dlpay.system.service.UserDataService;
+import com.supwisdom.dlpay.water.bean.UserAccountSearchBean;
+import com.supwisdom.dlpay.water.pojo.UserAccountDTO;
+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;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import java.util.List;
import java.util.Optional;
@@ -35,6 +44,8 @@
private SystemUtilService systemUtilService;
@Autowired
private PersonIdentityDao personIdentityDao;
+ @PersistenceContext
+ private EntityManager em;
@Override
public PageResult<TPerson> getPersonsByKey(PersonParamBean param) {
@@ -191,7 +202,7 @@
if (null == personIdentity) {
throw new RuntimeException("未找到用户id为" + thirdUid + "的用户");
}
- personIdentity.setCoamount(personIdentity.getCoamount() == null ? amount : personIdentity.getCoamount() + amount);
+ personIdentity.setCoamount(personIdentity.getCoamount() == null ? amount : add(personIdentity.getCoamount(),amount));
personIdentityDao.save(personIdentity);
return personIdentity;
}
@@ -202,8 +213,51 @@
if (null == personIdentity) {
throw new RuntimeException("未找到用户id为" + thirdUid + "的用户");
}
- personIdentity.setAccamount(personIdentity.getAccamount() == null ? amount : personIdentity.getAccamount() + amount);
+ personIdentity.setAccamount(personIdentity.getAccamount() == null ? amount : add(personIdentity.getAccamount(),amount));
personIdentityDao.save(personIdentity);
return personIdentity;
}
+
+ @Override
+ public PageResult<UserAccountDTO> queryUserAccByParam(UserAccountSearchBean param) {
+ StringBuffer querySql = new StringBuffer("select t1.status,t1.third_uid cardno,t1.accamount,t1.coamount,t2.name username from tb_person_identity t1 left join tb_person t2 on t1.userid=t2.userid where 1=1");
+ StringBuffer countSql = new StringBuffer("select count(t1.userid) from tb_person_identity t1 left join tb_person t2 on t1.userid=t2.userid where 1=1");
+ if (!StringUtil.isEmpty(param.getCardno())) {
+ querySql.append(" and t1.third_uid like :cardno");
+ countSql.append(" and t1.third_uid like :cardno");
+ }
+ if (!StringUtil.isEmpty(param.getUsername())) {
+ querySql.append(" and t2.name like :username");
+ countSql.append(" and t2.name like :username");
+ }
+ Query query = em.createNativeQuery(querySql.toString());
+ Query countQuery = em.createNativeQuery(countSql.toString());
+ if (!StringUtil.isEmpty(param.getCardno())) {
+ query.setParameter("cardno", "%"+param.getCardno().trim()+"%");
+ countQuery.setParameter("cardno", "%"+param.getCardno().trim()+"%");
+ }
+ if (!StringUtil.isEmpty(param.getUsername())) {
+ query.setParameter("username", "%"+param.getUsername().trim()+"%");
+ countQuery.setParameter("username", "%"+param.getUsername().trim()+"%");
+ }
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(UserAccountDTO.class));
+ query.setFirstResult((param.getPageNo() - 1) * param.getPageSize());
+ query.setMaxResults(param.getPageSize());
+ BigInteger count = (BigInteger) countQuery.getSingleResult();
+ List<UserAccountDTO> list = query.getResultList();
+ list.forEach(user -> user.setNotaccamount(subtract(user.getCoamount(),user.getAccamount())));
+ return new PageResult<>(count.longValue(), list);
+ }
+
+ private double subtract(Double minuend,Double subtractor){
+ return new BigDecimal(String.valueOf(minuend))
+ .subtract(new BigDecimal(String.valueOf(subtractor)))
+ .doubleValue();
+ }
+
+ private double add(Double d1,Double d2){
+ return new BigDecimal(String.valueOf(d1)).add(
+ new BigDecimal(String.valueOf(d2))
+ ).doubleValue();
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlCountSearchBean.java b/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlCountSearchBean.java
index 46e447e..faaed87 100644
--- a/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlCountSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlCountSearchBean.java
@@ -3,16 +3,16 @@
import com.supwisdom.dlpay.system.bean.PageBean;
public class TransdtlCountSearchBean extends PageBean {
- private String transtime;
+ private String accdate;
private String devicename;
private Integer areano;
- public String getTranstime() {
- return transtime;
+ public String getAccdate() {
+ return accdate;
}
- public void setTranstime(String transtime) {
- this.transtime = transtime;
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
}
public String getDevicename() {
diff --git a/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlSearchBean.java b/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlSearchBean.java
index 5b281e7..2ba5abe 100644
--- a/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlSearchBean.java
+++ b/src/main/java/com/supwisdom/dlpay/water/bean/TransdtlSearchBean.java
@@ -4,18 +4,36 @@
public class TransdtlSearchBean extends PageBean {
- private String transtime;
+ private String transdate;
+ private String accdate;
private String devicename;
private String deviceno;
private String username;
private Integer areano;
+ private Boolean notacc;
- public String getTranstime() {
- return transtime;
+ public Boolean getNotacc() {
+ return notacc;
}
- public void setTranstime(String transtime) {
- this.transtime = transtime;
+ public void setNotacc(Boolean notacc) {
+ this.notacc = notacc;
+ }
+
+ public String getTransdate() {
+ return transdate;
+ }
+
+ public void setTransdate(String transdate) {
+ this.transdate = transdate;
+ }
+
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
}
public String getDevicename() {
diff --git a/src/main/java/com/supwisdom/dlpay/water/bean/UserAccountSearchBean.java b/src/main/java/com/supwisdom/dlpay/water/bean/UserAccountSearchBean.java
new file mode 100644
index 0000000..afab99d
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/water/bean/UserAccountSearchBean.java
@@ -0,0 +1,24 @@
+package com.supwisdom.dlpay.water.bean;
+
+import com.supwisdom.dlpay.system.bean.PageBean;
+
+public class UserAccountSearchBean extends PageBean {
+ private String username;
+ private String cardno;
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java b/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java
index 88265bb..275c951 100644
--- a/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/domain/TAccdtl.java
@@ -31,7 +31,7 @@
@Column(length = 32)
private String userid;
- @Column(name = "bankcardno", length = 32)
+ @Column(name = "citizencardno", length = 32)
private String citizenCardno;
@Column(length = 20)
diff --git a/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtlCount.java b/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtlCount.java
index 598b0ad..64e5b13 100644
--- a/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtlCount.java
+++ b/src/main/java/com/supwisdom/dlpay/water/domain/TTransdtlCount.java
@@ -7,30 +7,23 @@
@Table(name = "tb_transdtl_count",
indexes = {@Index(name = "trasndtl_count_accdate", columnList = "accdate"),
@Index(name = "transdtl_count_areano", columnList = "areano"),
- @Index(name = "transdtl_count_devicename", columnList = "devicename"),
- @Index(name = "transdtl_count_idx", columnList = "accdate, areano, deviceno", unique = true)})
+ @Index(name = "transdtl_count_idx", columnList = "accdate, areano, deviceno,mode", unique = true)})
@SequenceGenerator(name = "SEQ_TRANSDTL_COUNT", sequenceName = "SEQ_TRANSDTL_COUNT", allocationSize = 1, initialValue = 1000)
public class TTransdtlCount {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_TRANSDTL_COUNT")
@Column(name = "id", length = 18)
- private String id;
+ private Integer id;
@Column(name = "accdate", length = 8)
private String accdate;
- @Column(name = "areano", length = 32)
- private String areano;
-
- @Column(name = "areaname", length = 200)
- private String areaname;
+ @Column(name = "areano")
+ private Integer areano;
@Column(name = "deviceno", length = 8)
private String deviceno;
- @Column(name = "devicename", length = 200)
- private String devicename;
-
@Column(name = "mode", length = 20)
private String mode;
@@ -40,14 +33,14 @@
@Column(precision = 10, scale = 2)
private Double amount;
- @Column(name = "water_in_100ml", precision = 10)
- private Integer waterSumHundredLitre;
+ @Column(name = "water", precision = 10)
+ private Integer water;
- public String getId() {
+ public Integer getId() {
return id;
}
- public void setId(String id) {
+ public void setId(Integer id) {
this.id = id;
}
@@ -59,22 +52,14 @@
this.accdate = accdate;
}
- public String getAreano() {
+ public Integer getAreano() {
return areano;
}
- public void setAreano(String areano) {
+ public void setAreano(Integer areano) {
this.areano = areano;
}
- public String getAreaname() {
- return areaname;
- }
-
- public void setAreaname(String areaname) {
- this.areaname = areaname;
- }
-
public String getDeviceno() {
return deviceno;
}
@@ -83,14 +68,6 @@
this.deviceno = deviceno;
}
- public String getDevicename() {
- return devicename;
- }
-
- public void setDevicename(String devicename) {
- this.devicename = devicename;
- }
-
public String getMode() {
return mode;
}
@@ -115,11 +92,11 @@
this.amount = amount;
}
- public Integer getWaterSumHundredLitre() {
- return waterSumHundredLitre;
+ public Integer getWater() {
+ return water;
}
- public void setWaterSumHundredLitre(Integer waterSumHundredLitre) {
- this.waterSumHundredLitre = waterSumHundredLitre;
+ public void setWater(Integer water) {
+ this.water = water;
}
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java b/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
index c99b406..c928620 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/PayInit.java
@@ -1,6 +1,9 @@
package com.supwisdom.dlpay.water.pay;
import com.supwisdom.dlpay.api.bean.ApiVersionResponse;
+import com.supwisdom.dlpay.framework.service.BusinessparaService;
+import com.supwisdom.dlpay.framework.util.Constants;
+import com.supwisdom.dlpay.framework.util.WaterBudinessConstants;
import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
import com.supwisdom.dlpay.paysdk.proxy.ApiCommonProxy;
import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
@@ -19,10 +22,12 @@
@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
public class PayInit {
- @Value("${water.appid}")
+
+ @Autowired
+ private BusinessparaService businessparaService;
+
private String appid;
- @Value("${water.secret}")
private String secret;
@Autowired
@@ -33,6 +38,8 @@
@PostConstruct
public void login() {
+ appid=businessparaService.findByParakey(WaterBudinessConstants.WATER_APPID).getParaval();
+ secret=businessparaService.findByParakey(WaterBudinessConstants.WATER_SECRET).getParaval();
ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
helper.login(appid,secret);
ApiVersionResponse version = apiCommonProxy.apiVersion();
diff --git a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
index 1eeb82f..17696e6 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pay/WaterPayAsyncTask.java
@@ -53,6 +53,16 @@
@Async("waterPay")
public void waterPay(Integer cobillno) {
TCollectdtl collectdtl = collectdtlService.findByCobillnoForUpdate(cobillno);
+ if (TradeDict.PAY_MODE_CARD.equals(collectdtl.getMode())) {
+ waterCardPay(collectdtl);
+ } else if (TradeDict.PAY_MODE_QRCODE.equals(collectdtl.getMode())) {
+
+ } else {
+ logger.error("暂不支持的消费类型");
+ }
+ }
+
+ private void waterCardPay(TCollectdtl collectdtl) {
// 是否已生成入账流水
if (collectdtl.getEntryno() != null) {
TAccdtl accdtl = accdtlService.findByBillno(collectdtl.getEntryno());
@@ -88,7 +98,7 @@
// 进行消费确认
payConfirm(accdtl);
} else if (TradeDict.DTL_STATUS_SUCCESS.equals(queryResult.getStatus())) {
- // 查询得到状态为success或fail,记录下状态
+ // 查询得到状态为success,记录下状态
userDataService.updateAccamount(accdtl.getCitizenCardno(), accdtl.getAmount());
cofirmAcc(queryResult.getStatus(), accdtl.getBillno(), accdtl.getRefno());
} else if (TradeDict.DTL_STATUS_FAIL.equals(queryResult.getStatus())) {
@@ -175,6 +185,7 @@
if (0 == queryResult.getRetcode()) {
accStatus = queryResult.getStatus();
if (TradeDict.DTL_STATUS_SUCCESS.equals(accStatus)) {
+ accStatus = TradeDict.DTL_STATUS_SUCCESS;
userDataService.updateAccamount(initAccdtl.getCitizenCardno(), initAccdtl.getAmount());
}
} else {
diff --git a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java b/src/main/java/com/supwisdom/dlpay/water/pojo/TAccdtlDTO.java
similarity index 67%
copy from src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
copy to src/main/java/com/supwisdom/dlpay/water/pojo/TAccdtlDTO.java
index 76c4ea5..0c73da9 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pojo/TAccdtlDTO.java
@@ -1,47 +1,29 @@
package com.supwisdom.dlpay.water.pojo;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-
-
-@Entity
-public class TTransdtlDTO {
- @Id
- @Column
+public class TAccdtlDTO {
private String billno;
- @Column
private String deviceno;
- @Column
private String devicename;
- @Column
- private Integer waterSumHundredLitre;
- @Column
+ private Integer watersumhundredlitre;
private Double amount;
- @Column
private String username;
- @Column
- private String bankcardno;
- @Column
+ private String citizencardno;
private String transdate;
- @Column
+ private String transtime;
private String mode;
- @Column
private String status;
- @Column
private String areaname;
- @Column
private Integer areano;
- @Column
private String cardphyid;
+ private String accdate;
+ private String refno;
-
- public String getCardphyid() {
- return cardphyid;
+ public String getTranstime() {
+ return transtime;
}
- public void setCardphyid(String cardphyid) {
- this.cardphyid = cardphyid;
+ public void setTranstime(String transtime) {
+ this.transtime = transtime;
}
public String getBillno() {
@@ -68,12 +50,12 @@
this.devicename = devicename;
}
- public Integer getWaterSumHundredLitre() {
- return waterSumHundredLitre;
+ public Integer getWatersumhundredlitre() {
+ return watersumhundredlitre;
}
- public void setWaterSumHundredLitre(Integer waterSumHundredLitre) {
- this.waterSumHundredLitre = waterSumHundredLitre;
+ public void setWatersumhundredlitre(Integer watersumhundredlitre) {
+ this.watersumhundredlitre = watersumhundredlitre;
}
public Double getAmount() {
@@ -92,12 +74,12 @@
this.username = username;
}
- public String getBankcardno() {
- return bankcardno;
+ public String getCitizencardno() {
+ return citizencardno;
}
- public void setBankcardno(String bankcardno) {
- this.bankcardno = bankcardno;
+ public void setCitizencardno(String citizencardno) {
+ this.citizencardno = citizencardno;
}
public String getTransdate() {
@@ -139,4 +121,28 @@
public void setAreano(Integer areano) {
this.areano = areano;
}
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
+
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
+ }
+
+ public String getRefno() {
+ return refno;
+ }
+
+ public void setRefno(String refno) {
+ this.refno = refno;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java b/src/main/java/com/supwisdom/dlpay/water/pojo/TCollectdtlDTO.java
similarity index 75%
rename from src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
rename to src/main/java/com/supwisdom/dlpay/water/pojo/TCollectdtlDTO.java
index 76c4ea5..0c4079d 100644
--- a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlDTO.java
+++ b/src/main/java/com/supwisdom/dlpay/water/pojo/TCollectdtlDTO.java
@@ -6,10 +6,10 @@
@Entity
-public class TTransdtlDTO {
+public class TCollectdtlDTO {
@Id
@Column
- private String billno;
+ private String cobillno;
@Column
private String deviceno;
@Column
@@ -21,7 +21,7 @@
@Column
private String username;
@Column
- private String bankcardno;
+ private String citizencardno;
@Column
private String transdate;
@Column
@@ -34,7 +34,26 @@
private Integer areano;
@Column
private String cardphyid;
+ @Column
+ private String accdate;
+ @Column
+ private String entryno;
+ public String getEntryno() {
+ return entryno;
+ }
+
+ public void setEntryno(String entryno) {
+ this.entryno = entryno;
+ }
+
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
+ }
public String getCardphyid() {
return cardphyid;
@@ -44,12 +63,12 @@
this.cardphyid = cardphyid;
}
- public String getBillno() {
- return billno;
+ public String getCobillno() {
+ return cobillno;
}
- public void setBillno(String billno) {
- this.billno = billno;
+ public void setCobillno(String cobillno) {
+ this.cobillno = cobillno;
}
public String getDeviceno() {
@@ -92,12 +111,12 @@
this.username = username;
}
- public String getBankcardno() {
- return bankcardno;
+ public String getCitizencardno() {
+ return citizencardno;
}
- public void setBankcardno(String bankcardno) {
- this.bankcardno = bankcardno;
+ public void setCitizencardno(String citizencardno) {
+ this.citizencardno = citizencardno;
}
public String getTransdate() {
diff --git a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlCountDTO.java b/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlCountDTO.java
new file mode 100644
index 0000000..4325164
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlCountDTO.java
@@ -0,0 +1,76 @@
+package com.supwisdom.dlpay.water.pojo;
+
+import java.math.BigInteger;
+
+public class TTransdtlCountDTO {
+
+ private String accdate;
+
+ private Integer areano;
+
+ private String deviceno;
+
+ private String mode;
+
+ private BigInteger count;
+
+ private Double amount;
+
+ private BigInteger water;
+
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
+ }
+
+ public Integer getAreano() {
+ return areano;
+ }
+
+ public void setAreano(Integer areano) {
+ this.areano = areano;
+ }
+
+ public String getDeviceno() {
+ return deviceno;
+ }
+
+ public void setDeviceno(String deviceno) {
+ this.deviceno = deviceno;
+ }
+
+ public String getMode() {
+ return mode;
+ }
+
+ public void setMode(String mode) {
+ this.mode = mode;
+ }
+
+ public BigInteger getCount() {
+ return count;
+ }
+
+ public void setCount(BigInteger count) {
+ this.count = count;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Double amount) {
+ this.amount = amount;
+ }
+
+ public BigInteger getWater() {
+ return water;
+ }
+
+ public void setWater(BigInteger water) {
+ this.water = water;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlCountVO.java b/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlCountVO.java
new file mode 100644
index 0000000..e338ef2
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/water/pojo/TTransdtlCountVO.java
@@ -0,0 +1,94 @@
+package com.supwisdom.dlpay.water.pojo;
+
+public class TTransdtlCountVO {
+ private Integer id;
+ private String accdate;
+ private Integer areano;
+ private String deviceno;
+ private String mode;
+ private Integer count;
+ private Double amount;
+ private Integer water;
+ private String devicename;
+ private String areaname;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getAccdate() {
+ return accdate;
+ }
+
+ public void setAccdate(String accdate) {
+ this.accdate = accdate;
+ }
+
+ public Integer getAreano() {
+ return areano;
+ }
+
+ public void setAreano(Integer areano) {
+ this.areano = areano;
+ }
+
+ public String getDeviceno() {
+ return deviceno;
+ }
+
+ public void setDeviceno(String deviceno) {
+ this.deviceno = deviceno;
+ }
+
+ public String getMode() {
+ return mode;
+ }
+
+ public void setMode(String mode) {
+ this.mode = mode;
+ }
+
+ public Integer getCount() {
+ return count;
+ }
+
+ public void setCount(Integer count) {
+ this.count = count;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Double amount) {
+ this.amount = amount;
+ }
+
+ public Integer getWater() {
+ return water;
+ }
+
+ public void setWater(Integer water) {
+ this.water = water;
+ }
+
+ public String getDevicename() {
+ return devicename;
+ }
+
+ public void setDevicename(String devicename) {
+ this.devicename = devicename;
+ }
+
+ public String getAreaname() {
+ return areaname;
+ }
+
+ public void setAreaname(String areaname) {
+ this.areaname = areaname;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/water/pojo/UserAccountDTO.java b/src/main/java/com/supwisdom/dlpay/water/pojo/UserAccountDTO.java
new file mode 100644
index 0000000..f38944a
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/water/pojo/UserAccountDTO.java
@@ -0,0 +1,58 @@
+package com.supwisdom.dlpay.water.pojo;
+
+public class UserAccountDTO {
+ private String username;
+ private String cardno;
+ private Double notaccamount;
+ private Double accamount;
+ private Double coamount;
+ private String status;
+
+ public Double getAccamount() {
+ return accamount;
+ }
+
+ public void setAccamount(Double accamount) {
+ this.accamount = accamount;
+ }
+
+ public Double getCoamount() {
+ return coamount;
+ }
+
+ public void setCoamount(Double coamount) {
+ this.coamount = coamount;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public Double getNotaccamount() {
+ return notaccamount;
+ }
+
+ public void setNotaccamount(Double notaccamount) {
+ this.notaccamount = notaccamount;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/AccdtlService.java b/src/main/java/com/supwisdom/dlpay/water/service/AccdtlService.java
index 8580f45..e31d939 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/AccdtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/AccdtlService.java
@@ -3,7 +3,10 @@
import com.supwisdom.dlpay.api.bean.ConfirmAccParam;
import com.supwisdom.dlpay.api.bean.InitAccParam;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.water.bean.TransdtlSearchBean;
import com.supwisdom.dlpay.water.domain.TAccdtl;
+import com.supwisdom.dlpay.water.pojo.TAccdtlDTO;
import org.springframework.transaction.annotation.Transactional;
public interface AccdtlService {
@@ -18,4 +21,7 @@
@Transactional(rollbackFor = Exception.class)
TAccdtl findByBillno(String billno);
+
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ PageResult<TAccdtlDTO> queryAccdtlByParam(TransdtlSearchBean param);
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java b/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
index 9a38e4c..683c3f9 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/CollectdtlService.java
@@ -1,14 +1,14 @@
package com.supwisdom.dlpay.water.service;
import com.supwisdom.dlpay.framework.util.PageResult;
-import com.supwisdom.dlpay.water.QrcodeQueryRequest;
import com.supwisdom.dlpay.water.UploadRecordRequest;
import com.supwisdom.dlpay.water.UserAuthRequest;
import com.supwisdom.dlpay.water.bean.TransdtlCountSearchBean;
import com.supwisdom.dlpay.water.domain.TCollectdtl;
import com.supwisdom.dlpay.water.domain.TTransdtlCount;
-import com.supwisdom.dlpay.water.pojo.TTransdtlDTO;
+import com.supwisdom.dlpay.water.pojo.TCollectdtlDTO;
import com.supwisdom.dlpay.water.bean.TransdtlSearchBean;
+import com.supwisdom.dlpay.water.pojo.TTransdtlCountVO;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -28,14 +28,17 @@
TCollectdtl userAuth(UserAuthRequest param);
@Transactional(rollbackFor = Exception.class)
- PageResult<TTransdtlDTO> queryTransdtlDTOByParam(TransdtlSearchBean param);
+ PageResult<TCollectdtlDTO> queryTransdtlDTOByParam(TransdtlSearchBean param);
@Transactional(rollbackFor = Exception.class,readOnly = true)
- PageResult<TTransdtlCount> queryTransdtlCountByParam(TransdtlCountSearchBean param);
+ PageResult<TTransdtlCountVO> queryTransdtlCountByParam(TransdtlCountSearchBean param);
@Transactional(rollbackFor = Exception.class)
List<TCollectdtl> queryTransdtlNotEntry();
@Transactional(rollbackFor = Exception.class)
TCollectdtl findByCobillnoForUpdate(Integer cobillno);
+
+ @Transactional(rollbackFor = Exception.class)
+ void generateCountdtl(String accdate);
}
diff --git a/src/main/java/com/supwisdom/dlpay/water/service/impl/AccdtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/water/service/impl/AccdtlServiceImpl.java
index 54033bc..16b3a5d 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/impl/AccdtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/impl/AccdtlServiceImpl.java
@@ -3,17 +3,29 @@
import com.supwisdom.dlpay.api.bean.ConfirmAccParam;
import com.supwisdom.dlpay.api.bean.InitAccParam;
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.water.bean.TransdtlSearchBean;
import com.supwisdom.dlpay.water.dao.AccdtlDao;
import com.supwisdom.dlpay.water.dao.CollectdtlDao;
import com.supwisdom.dlpay.water.domain.TAccdtl;
import com.supwisdom.dlpay.water.domain.TCollectdtl;
+import com.supwisdom.dlpay.water.pojo.TAccdtlDTO;
import com.supwisdom.dlpay.water.service.AccdtlService;
+import org.hibernate.query.internal.NativeQueryImpl;
+import org.hibernate.transform.Transformers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import java.math.BigInteger;
+import java.util.List;
+
@Service
public class AccdtlServiceImpl implements AccdtlService {
@@ -29,6 +41,9 @@
@Autowired
private SystemUtilService systemUtilService;
+ @PersistenceContext
+ private EntityManager em;
+
@Override
public TAccdtl initAcc(InitAccParam param) {
TAccdtl accdtl = accdtlDao.findByBillnoForUpdate(param.getBillno());
@@ -103,4 +118,85 @@
}
return accdtl;
}
+
+ @Override
+ public PageResult<TAccdtlDTO> queryAccdtlByParam(TransdtlSearchBean param) {
+ StringBuffer querySql = new StringBuffer("select t1.billno,t1.amount,t1.citizencardno,t1.cardphyid,t1.deviceno,t1.mode,t1.status,t1.transdate,t1.refno,t1.transtime,t1.accdate,t1.water_in_100ml watersumhundredlitre,t1.name username,t2.devicename,t2.areaname,t2.areano " +
+ "from (select dtl.*,person.name from tb_accentrydtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
+ "(select device.deviceno,device.devicename,area.areaname,area.areano from tb_device device,tb_area area where device.areano = area.areano) t2 " +
+ "where t1.deviceno = t2.deviceno");
+ StringBuffer countSql = new StringBuffer("select count(billno) " +
+ "from (select dtl.*,person.name from tb_accentrydtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
+ "(select device.deviceno,device.devicename,area.areaname,area.areano from tb_device device,tb_area area where device.areano = area.areano) t2 " +
+ "where t1.deviceno = t2.deviceno");
+ if (!StringUtil.isEmpty(param.getTransdate())) {
+ querySql.append(" and transdate >= :mintransdate");
+ querySql.append(" and transdate <= :maxtransdate");
+
+ countSql.append(" and transdate >= :mintransdate");
+ countSql.append(" and transdate <= :maxtransdate");
+ }
+ if (!StringUtil.isEmpty(param.getAccdate())) {
+ querySql.append(" and accdate >= :minaccdate");
+ querySql.append(" and accdate <= :maxaccdate");
+
+ countSql.append(" and accdate >= :minaccdate");
+ countSql.append(" and accdate <= :maxaccdate");
+ }
+ if (!StringUtil.isEmpty(param.getUsername())) {
+ querySql.append(" and name like :username");
+ countSql.append(" and name like :username");
+ }
+ if (!StringUtil.isEmpty(param.getDeviceno())) {
+ querySql.append(" and t1.deviceno like :deviceno");
+ countSql.append(" and t1.deviceno like :deviceno");
+ }
+ if (!StringUtil.isEmpty(param.getDevicename())) {
+ querySql.append(" and devicename like :devicename");
+ countSql.append(" and devicename like :devicename");
+ }
+ if (null != param.getAreano()) {
+ querySql.append(" and areano =:areano");
+ countSql.append(" and areano =:areano");
+ }
+ querySql.append(" order by billno desc");
+ Query query = em.createNativeQuery(querySql.toString());
+ Query countQuery = em.createNativeQuery(countSql.toString());
+ if (!StringUtil.isEmpty(param.getTransdate())) {
+ String[] timerange = param.getTransdate().replace("-", "").split(" ");
+ query.setParameter("mintransdate", timerange[0]);
+ query.setParameter("maxtransdate", timerange[1]);
+ countQuery.setParameter("mintransdate", timerange[0]);
+ countQuery.setParameter("maxtransdate", timerange[1]);
+ }
+ if (!StringUtil.isEmpty(param.getAccdate())) {
+ String[] timerange = param.getAccdate().replace("-", "").split(" ");
+ query.setParameter("minaccdate", timerange[0]);
+ query.setParameter("maxaccdate", timerange[1]);
+ countQuery.setParameter("minaccdate", timerange[0]);
+ countQuery.setParameter("maxaccdate", timerange[1]);
+ }
+ if (!StringUtil.isEmpty(param.getUsername())) {
+ query.setParameter("username", "%" + param.getUsername().trim() + "%");
+ countQuery.setParameter("username", "%" + param.getUsername().trim() + "%");
+ }
+ if (!StringUtil.isEmpty(param.getDeviceno())) {
+ query.setParameter("deviceno", "%" + param.getDeviceno().trim() + "%");
+ countQuery.setParameter("deviceno", "%" + param.getDeviceno().trim() + "%");
+ }
+ if (!StringUtil.isEmpty(param.getDevicename())) {
+ query.setParameter("devicename", "%" + param.getDevicename().trim() + "%");
+ countQuery.setParameter("devicename", "%" + param.getDevicename().trim() + "%");
+ }
+ if (null != param.getAreano()) {
+ query.setParameter("areano", param.getAreano());
+ countQuery.setParameter("areano", param.getAreano());
+ }
+ query.setFirstResult((param.getPageNo() - 1)*param.getPageSize());
+ query.setMaxResults(param.getPageSize());
+ query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(TAccdtlDTO.class));
+ List<TAccdtlDTO> list = query.getResultList();
+ BigInteger count = (BigInteger) countQuery.getSingleResult();
+ return new PageResult<>(count.longValue(), list);
+ }
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt b/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt
index a182b93..867d471 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/WaterManagerApplication.kt
@@ -1,9 +1,7 @@
package com.supwisdom.dlpay
import io.lettuce.core.ReadFrom
-import org.bouncycastle.crypto.tls.ConnectionEnd.server
import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.data.redis.RedisProperties
import org.springframework.boot.runApplication
@@ -23,6 +21,7 @@
@Configuration
+@EnableScheduling
@EnableRedisRepositories
class AppConfig {
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
index 67345a9..73a42b8 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/api_controller.kt
@@ -1,13 +1,11 @@
package com.supwisdom.dlpay.water.controller
-import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
import com.supwisdom.dlpay.framework.service.BusinessparaService
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.*
import com.supwisdom.dlpay.system.service.UserDataService
import com.supwisdom.dlpay.water.*
-import com.supwisdom.dlpay.water.domain.TAccdtl
import com.supwisdom.dlpay.water.domain.TCollectdtl
import com.supwisdom.dlpay.water.pay.WaterPayAsyncTask
import com.supwisdom.dlpay.water.service.AccdtlService
@@ -97,7 +95,7 @@
}
//2. 通过 deviceno 查询设备费率参数
val deviceParam = deviceService.getParaMapByDeviceno(param.deviceno)
- //3. 创建 transdtl 记录初始流水
+ //3. 创建 collectdtl 记录初始流水
val trans = TCollectdtl().apply {
mode = TradeDict.PAY_MODE_CARD
transDate = param.termdate
@@ -204,26 +202,26 @@
@PostMapping("/uploadrecord")
fun transdtlUpload(param: UploadRecordRequest): ResponseEntity<Any> {
- // 1. 根据 cobillno 查询 transdtl , 并加锁
- val querycodtl = collectdtlService.queryTrans(param.cobillno)
+ // 1. 根据 cobillno 查询 collectdtl , 并加锁
+ val querycodtl = collectdtlService.queryTrans(param.cobillno)
?: return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(WaterErrorCode.DATA_NOTFOUND_ERROR, "采集流水号未找到"))
- // 流水是否重复上传
- if (!querycodtl.uploadStatus) {
- val dtl = collectdtlService.saveDeviceDtlData(param)
- userDataService.updateCoamount(dtl.citizenCardno, param.amount/100.0)
- // 是否立即扣费
- if (param.amount >= deviceService.getParaMapByDeviceno(param.deviceno)[WaterDeviceParam.imdDecThreshold]!!.toInt()) {
- // 刷卡消费
- if (TradeDict.PAY_MODE_CARD == dtl.mode) {
- // 立即异步扣费
- waterPayAsyncTask.waterPay(querycodtl.cobillno)
- }
+ // 流水是否重复上传
+ if (!querycodtl.uploadStatus) {
+ val dtl = collectdtlService.saveDeviceDtlData(param)
+ userDataService.updateCoamount(dtl.citizenCardno, param.amount / 100.0)
+ // 是否立即扣费
+ if (param.amount >= deviceService.getParaMapByDeviceno(param.deviceno)[WaterDeviceParam.imdDecThreshold]!!.toInt()) {
+ // 刷卡消费
+ if (TradeDict.PAY_MODE_CARD == dtl.mode) {
+ // 立即异步扣费
+ waterPayAsyncTask.waterPay(querycodtl.cobillno)
}
- return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.cobillNo, dtl.cobillno)
- .success())
}
- return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.cobillNo, querycodtl.cobillno)
+ return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.cobillNo, dtl.cobillno)
.success())
+ }
+ return ResponseEntity.ok(ResponseBodyBuilder.create().data(WaterDeviceParam.cobillNo, querycodtl.cobillno)
+ .success())
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
index 4cf3e21..3fbb271 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
@@ -3,18 +3,12 @@
import com.supwisdom.dlpay.api.bean.JsonResult
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
import com.supwisdom.dlpay.framework.util.*
+import com.supwisdom.dlpay.system.service.UserDataService
import com.supwisdom.dlpay.util.WebCheckException
import com.supwisdom.dlpay.water.bean.*
-import com.supwisdom.dlpay.water.domain.TDevice
-import com.supwisdom.dlpay.water.domain.TArea
-import com.supwisdom.dlpay.water.pojo.TTransdtlDTO
-import com.supwisdom.dlpay.water.service.DeviceService
-import com.supwisdom.dlpay.water.service.AreaService
-import com.supwisdom.dlpay.water.service.CollectdtlService
-import com.supwisdom.dlpay.water.domain.TAreaparaGroup
-import com.supwisdom.dlpay.water.domain.TTransdtlCount
-import com.supwisdom.dlpay.water.pojo.TAreaparaBindDTO
-import com.supwisdom.dlpay.water.service.TAreaparaService
+import com.supwisdom.dlpay.water.domain.*
+import com.supwisdom.dlpay.water.pojo.*
+import com.supwisdom.dlpay.water.service.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
import org.springframework.stereotype.Controller
@@ -77,7 +71,7 @@
@GetMapping("/region/areano")
@ResponseBody
- fun queryAreaByAreano(@RequestParam("areano")areano: Int): PageResult<TArea> {
+ fun queryAreaByAreano(@RequestParam("areano") areano: Int): PageResult<TArea> {
try {
if (areano < 0) {
return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
@@ -360,22 +354,24 @@
}
@Controller
-class TransdtlController {
+class CollectdtlController {
@Autowired
private lateinit var collectdtlService: CollectdtlService
- @GetMapping("/transdtl/index")
- fun dtlIndexView() = "system/transdtl/index"
+ @GetMapping("/collectdtl/index")
+ fun dtlIndexView() = "system/collectdtl/index"
- @GetMapping("/transdtl/list")
+ @GetMapping("/collectdtl/list")
@ResponseBody
fun queryTransdtl(@RequestParam("devicename", required = false) devicename: String,
@RequestParam("deviceno", required = false) deviceno: String,
@RequestParam("areano", required = false) areanoStr: String,
- @RequestParam("transtime", required = false) transtime: String,
+ @RequestParam("transdate", required = false) transdate: String,
+ @RequestParam("accdate", required = false) accdate: String,
@RequestParam("username", required = false) username: String,
+ @RequestParam("notacc", required = false) notacc: Boolean,
@RequestParam("page", defaultValue = "1", required = false) pageNo: Int,
- @RequestParam("limit", defaultValue = "10", required = false) pageSize: Int): PageResult<TTransdtlDTO> {
+ @RequestParam("limit", defaultValue = "10", required = false) pageSize: Int): PageResult<TCollectdtlDTO> {
try {
if (pageNo < 1 || pageSize < 1) {
return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
@@ -393,12 +389,14 @@
this.deviceno = deviceno
this.areano = areano
this.username = username
- this.transtime = transtime
+ this.transdate = transdate
+ this.accdate = accdate
+ this.notacc = notacc
}
collectdtlService.queryTransdtlDTOByParam(searchBean)?.let {
return it
}
- return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "设备未找到")
+ return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "采集流水未找到")
} catch (ex: Exception) {
return PageResult(WaterErrorCode.PROCESS_ERROR, "服务器繁忙,请稍后再试")
}
@@ -411,9 +409,9 @@
@ResponseBody
fun queryDtlCount(@RequestParam("devicename", required = false) devicename: String?,
@RequestParam("areano", required = false) areanoStr: String?,
- @RequestParam("transtime", required = false) transtime: String?,
+ @RequestParam("accdate", required = false) accdate: String?,
@RequestParam("page", defaultValue = "1", required = false) pageNo: Int,
- @RequestParam("limit", defaultValue = "10", required = false) pageSize: Int): PageResult<TTransdtlCount> {
+ @RequestParam("limit", defaultValue = "10", required = false) pageSize: Int): PageResult<TTransdtlCountVO> {
try {
if (pageNo < 1 || pageSize < 1) {
return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
@@ -429,7 +427,7 @@
this.pageSize = pageSize
this.devicename = devicename
this.areano = areano
- this.transtime = transtime
+ this.accdate = accdate
}
collectdtlService.queryTransdtlCountByParam(searchBean)?.let {
return it
@@ -490,8 +488,8 @@
@PostMapping("/areapara/editareapara")
@ResponseBody
fun editAreapara(@RequestBody param: HashMap<String, String>?): JsonResult {
- val groupidHtmlKey = "form_areapara_groupid" //页面上传来groupid的KEY
- val groupnameHtmlKey = "form_areapara_groupname" //页面上传来groupname的KEY
+ val groupidHtmlKey = "waterform_areapara_groupid" //页面上传来groupid的KEY
+ val groupnameHtmlKey = "waterform_areapara_groupname" //页面上传来groupname的KEY
if (null == param || !NumberUtil.isDigits(param[groupidHtmlKey]) || StringUtil.isEmpty(groupnameHtmlKey)) {
return JsonResult.error("参数传递错误")
}
@@ -614,4 +612,79 @@
PageResult(WaterErrorCode.PROCESS_ERROR, "服务器繁忙,请稍后再试")
}
}
-}
\ No newline at end of file
+}
+
+@Controller
+class AccdtlController {
+
+ @Autowired
+ private lateinit var accdtlService: AccdtlService
+
+ @GetMapping("/accdtl/index")
+ fun dtlIndexView() = "system/accdtl/index"
+
+ @GetMapping("/accdtl/list")
+ @ResponseBody
+ fun queryAccdtl(@RequestParam("devicename", required = false) devicename: String?,
+ @RequestParam("deviceno", required = false) deviceno: String?,
+ @RequestParam("areano", required = false) areano: Int?,
+ @RequestParam("transdate", required = false) transdate: String?,
+ @RequestParam("accdate", required = false) accdate: String?,
+ @RequestParam("username", required = false) username: String?,
+ @RequestParam("page", defaultValue = "1", required = false) pageNo: Int?,
+ @RequestParam("limit", defaultValue = "10", required = false) pageSize: Int?): PageResult<TAccdtlDTO> {
+ try {
+ if (pageNo!! < 1 || pageSize!! < 1) {
+ return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
+ }
+ val searchBean = TransdtlSearchBean().apply {
+ this.pageNo = pageNo
+ this.pageSize = pageSize
+ this.devicename = devicename
+ this.deviceno = deviceno
+ this.areano = areano
+ this.username = username
+ this.transdate = transdate
+ this.accdate = accdate
+ }
+ accdtlService.queryAccdtlByParam(searchBean)?.let {
+ return it
+ }
+ return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "采集流水未找到")
+ } catch (ex: Exception) {
+ return PageResult(WaterErrorCode.PROCESS_ERROR, "系统繁忙,请稍后重试")
+ }
+ }
+}
+
+@Controller
+class UserAccountController {
+ @Autowired
+ private lateinit var userDataService: UserDataService
+
+ @GetMapping("useracc/index")
+ fun userAccIndexView() = "system/useraccount/index"
+
+ @GetMapping("useracc/list")
+ @ResponseBody
+ fun queryUserAcc(@RequestParam("username", required = false) username: String?,
+ @RequestParam("cardno", required = false) cardno: String?,
+ @RequestParam("page", defaultValue = "1", required = false) pageNo: Int?,
+ @RequestParam("limit", defaultValue = "10", required = false) pageSize: Int?): PageResult<UserAccountDTO> {
+ try {
+ if (pageNo!! < 1 || pageSize!! < 1) {
+ return PageResult(WaterErrorCode.REQUEST_DATA_ERROR, "请求参数错误")
+ }
+ val searchBean = UserAccountSearchBean().apply {
+ this.username = username
+ this.cardno = cardno
+ }
+ userDataService.queryUserAccByParam(searchBean)?.let {
+ return it
+ }
+ return PageResult(WaterErrorCode.DATA_NOTFOUND_ERROR, "采集流水未找到")
+ } catch (ex: Exception) {
+ return PageResult(WaterErrorCode.PROCESS_ERROR, "系统繁忙,请稍后重试")
+ }
+ }
+}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt b/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
index 60c2dd8..affc99e 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/scheduler_task.kt
@@ -1,16 +1,16 @@
package com.supwisdom.dlpay.water
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy
import com.supwisdom.dlpay.water.pay.WaterPayAsyncTask
import com.supwisdom.dlpay.water.service.CollectdtlService
import mu.KotlinLogging
import net.javacrumbs.shedlock.core.SchedulerLock
import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.scheduling.annotation.EnableScheduling
import org.springframework.scheduling.annotation.Scheduled
import org.springframework.stereotype.Component
@Component
-@EnableScheduling
class CollectdtlQueryResultSchedulerTask {
private val logger = KotlinLogging.logger { }
@@ -21,7 +21,7 @@
@Autowired
private lateinit var waterPayAsyncTask: WaterPayAsyncTask
- @Scheduled(cron = "*/30 * * * * ?")
+ @Scheduled(cron = "0 */10 * * * ?")
@SchedulerLock(name = "dealCollectdtlAccountEntry", lockAtMostForString = "PT10M")
fun queryCollectdtlResult() {
val collectdtlList = collectdtlService.queryTransdtlNotEntry()
@@ -32,4 +32,36 @@
waterPayAsyncTask.waterPay(collectdtl.cobillno)
}
}
+}
+
+@Component
+class GenerateCountdtlSchedulerTask{
+ @Autowired
+ private lateinit var collectdtlService: CollectdtlService
+
+ @Autowired
+ private lateinit var systemUtilsService: SystemUtilService
+ @Scheduled(cron = "0 0 1 * * ?")
+ @SchedulerLock(name = "generateCountdtl",lockAtMostForString = "PT10M")
+ fun generateCountdtl() {
+ collectdtlService.generateCountdtl(systemUtilsService.sysdatetime.hostdate)
+ }
+}
+
+@Component
+class RefreshJwtSchedulerTask {
+
+ private val logger = KotlinLogging.logger { }
+
+ @Autowired
+ private lateinit var apiLoginProxy: ApiLoginProxy
+
+ @Scheduled(cron = "0 */20 * * * ?")
+ @SchedulerLock(name = "refreshJwt", lockAtMostForString = "PT10M")
+ fun refreshJwt() {
+ val response = apiLoginProxy.refresh()
+ if (response.retcode != 0) {
+ logger.error { "刷新jwt失败!状态码:"+response.retcode+" 错误信息:"+response.retmsg}
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
index 7799cc5..bf1480d 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/service/collectdtl_service.kt
@@ -10,17 +10,21 @@
import com.supwisdom.dlpay.water.bean.TransdtlCountSearchBean
import com.supwisdom.dlpay.water.dao.CollectdtlDao
import com.supwisdom.dlpay.water.domain.TCollectdtl
-import com.supwisdom.dlpay.water.pojo.TTransdtlDTO
+import com.supwisdom.dlpay.water.pojo.TCollectdtlDTO
import com.supwisdom.dlpay.water.bean.TransdtlSearchBean
-import com.supwisdom.dlpay.water.dao.AccdtlDao
import com.supwisdom.dlpay.water.dao.TransdtlCountDao
import com.supwisdom.dlpay.water.domain.TTransdtlCount
+import com.supwisdom.dlpay.water.pojo.TTransdtlCountDTO
+import com.supwisdom.dlpay.water.pojo.TTransdtlCountVO
import mu.KotlinLogging
+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.jpa.domain.Specification
import org.springframework.stereotype.Service
import java.lang.RuntimeException
+import java.math.BigInteger
import java.util.ArrayList
import javax.persistence.EntityManager
import javax.persistence.criteria.Predicate
@@ -76,25 +80,38 @@
return dtl
}
- override fun queryTransdtlDTOByParam(param: TransdtlSearchBean): PageResult<TTransdtlDTO>? {
- val sql = StringBuffer("select t1.cobillno,t1.amount,t1.bankcardno,t1.cardphyid,t1.deviceno,t1.mode,t1.status,t1.transdate,t1.transtime,t1.water_in_100ml water_sum_hundred_litre,t1.name username,t2.devicename,t2.areaname,t2.areano " +
- "from (select dtl.*,person.name from tb_transdtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
+ override fun queryTransdtlDTOByParam(param: TransdtlSearchBean): PageResult<TCollectdtlDTO>? {
+ val sql = StringBuffer("select t1.cobillno,t1.amount,t1.citizencardno,t1.cardphyid,t1.deviceno,t1.mode,t1.status,t1.transdate,t1.entryno,t1.transtime,t1.accdate,t1.water_in_100ml water_sum_hundred_litre,t1.name username,t2.devicename,t2.areaname,t2.areano " +
+ "from (select dtl.*,person.name from tb_collectdtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
"(select device.deviceno,device.devicename,area.areaname,area.areano from tb_device device,tb_area area where device.areano = area.areano) t2 " +
"where t1.deviceno = t2.deviceno")
val countSql = StringBuffer("select count(cobillno) " +
- "from (select dtl.*,person.name from tb_transdtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
+ "from (select dtl.*,person.name from tb_collectdtl dtl left join tb_person person on dtl.userid = person.userid) t1," +
"(select device.deviceno,device.devicename,area.areaname,area.areano from tb_device device,tb_area area where device.areano = area.areano) t2 " +
"where t1.deviceno = t2.deviceno")
val map: HashMap<String, Int> = HashMap()
var position = 1
- if (!StringUtil.isEmpty(param.transtime)) {
+ if (param.notacc) {
+ sql.append(" and status='wip'")
+ countSql.append(" and status='wip'")
+ }
+ if (!StringUtil.isEmpty(param.transdate)) {
sql.append(" and transdate >=?")
countSql.append(" and transdate >=?")
sql.append(" and transdate <=?")
countSql.append(" and transdate <=?")
- map["mindate"] = position++
- map["maxdate"] = position++
+ map["mintransdate"] = position++
+ map["maxtransdate"] = position++
+ }
+ if (!StringUtil.isEmpty(param.accdate)) {
+ sql.append(" and accdate >=?")
+ countSql.append(" and accdate >=?")
+
+ sql.append(" and accdate <=?")
+ countSql.append(" and accdate <=?")
+ map["minaccdate"] = position++
+ map["maxaccdate"] = position++
}
if (!StringUtil.isEmpty(param.username)) {
sql.append(" and name like ?")
@@ -117,7 +134,7 @@
map.put("areano", position++)
}
sql.append(" order by cobillno desc limit " + param.pageSize + " offset " + (param.pageNo - 1) * param.pageSize)
- val query = em.createNativeQuery(sql.toString(), TTransdtlDTO::class.java)
+ val query = em.createNativeQuery(sql.toString(), TCollectdtlDTO::class.java)
val countQuery = em.createNativeQuery(countSql.toString())
map["devicename"]?.let {
query.setParameter(it, "%" + param.devicename + "%")
@@ -135,19 +152,26 @@
query.setParameter(it, "%" + param.username + "%")
countQuery.setParameter(it, "%" + param.username + "%")
}
- map["mindate"]?.let {
+ map["mintransdate"]?.let {
- val timerange = param.transtime.replace("-", "").split(" ")
+ val timerange = param.transdate.replace("-", "").split(" ")
query.setParameter(it, timerange[0])
- query.setParameter(map["maxdate"]!!, timerange[1])
+ query.setParameter(map["maxtransdate"]!!, timerange[1])
countQuery.setParameter(it, timerange[0])
- countQuery.setParameter(map["maxdate"]!!, timerange[1])
+ countQuery.setParameter(map["maxtransdate"]!!, timerange[1])
}
- val transdtlDTO: List<TTransdtlDTO> = query.resultList as List<TTransdtlDTO>
+ map["minaccdate"]?.let {
+ val timerange = param.accdate.replace("-", "").split(" ")
+ query.setParameter(it, timerange[0])
+ query.setParameter(map["maxaccdate"]!!, timerange[1])
+ countQuery.setParameter(it, timerange[0])
+ countQuery.setParameter(map["maxaccdate"]!!, timerange[1])
+ }
+ val collectdtlDTO: List<TCollectdtlDTO> = query.resultList as List<TCollectdtlDTO>
val count: Int = countQuery.singleResult.toString().toInt()
- val result: PageResult<TTransdtlDTO> = PageResult()
+ val result: PageResult<TCollectdtlDTO> = PageResult()
result.apply {
- this.data = transdtlDTO
+ this.data = collectdtlDTO
this.count = count.toLong()
this.code = 0
this.msg = "成功"
@@ -155,32 +179,83 @@
return result
}
- override fun queryTransdtlCountByParam(param: TransdtlCountSearchBean): PageResult<TTransdtlCount> {
- val pageable = PageRequest.of(param.pageNo - 1, param.pageSize)
- val specification = Specification<TTransdtlCount> { root, query, cb ->
- val predicates = ArrayList<Predicate>()
- if (param.areano != null) {
- predicates.add(cb.equal(root.get<Int>("areano").`as`(Int::class.java), param.areano))
- }
- if (!StringUtil.isEmpty(param.devicename)) {
- predicates.add(cb.like(root.get("devicename"), "%" + param.devicename.trim() + "%"))
- }
- if (!StringUtil.isEmpty(param.transtime)) {
- val timerange = param.transtime.replace("-", "").split(" ")
- predicates.add(cb.greaterThanOrEqualTo(root.get("accdate"), timerange[0]))
- predicates.add(cb.lessThanOrEqualTo(root.get("accdate"), timerange[1]))
- }
- query.where(*predicates.toTypedArray()).restriction
+ override fun queryTransdtlCountByParam(param: TransdtlCountSearchBean): PageResult<TTransdtlCountVO> {
+ val querySql = StringBuffer("select t1.*,t2.devicename,t2.areaname from (select * from tb_transdtl_count) t1 left join " +
+ "(select device.deviceno,device.devicename,area.areaname from tb_device device left join tb_area area on device.areano = area.areano) t2 " +
+ "on t1.deviceno=t2.deviceno where 1=1")
+ val countSql = StringBuffer("select count(id) from (select * from tb_transdtl_count) t1 left join " +
+ "(select device.deviceno,device.devicename,area.areaname from tb_device device left join tb_area area on device.areano = area.areano) t2 " +
+ "on t1.deviceno=t2.deviceno where 1=1")
+ if (!StringUtil.isEmpty(param.accdate)) {
+ querySql.append(" and accdate>:minaccdate")
+ querySql.append(" and accdate<:maxaccdate")
+ countSql.append(" and accdate>:minaccdate")
+ countSql.append(" and accdate<:maxaccdate")
}
- val dtlCountPage = transdtlCountDao.findAll(specification, pageable)
- return PageResult<TTransdtlCount>(dtlCountPage)
+ if (!StringUtil.isEmpty(param.devicename)) {
+ querySql.append(" and devicename like :devicename")
+ countSql.append(" and devicename like :devicename")
+ }
+ param.areano?.let {
+ querySql.append(" and areano=:areano")
+ countSql.append(" and areano=:areano")
+
+ }
+ querySql.append(" order by id desc")
+ val query = em.createNativeQuery(querySql.toString())
+ val countQuery = em.createNativeQuery(countSql.toString())
+ if (!StringUtil.isEmpty(param.accdate)) {
+ val timerange = param.accdate.replace("-", "").split(" ")
+ query.setParameter("minaccdate", timerange[0])
+ query.setParameter("maxaccdate", timerange[1])
+ countQuery.setParameter("minaccdate", timerange[0])
+ countQuery.setParameter("maxaccdate", timerange[1])
+ }
+ if (!StringUtil.isEmpty(param.devicename)) {
+ query.setParameter("devicename", "%"+param.devicename.trim()+"%")
+ countQuery.setParameter("devicename", "%"+param.devicename.trim()+"%")
+ }
+ param.areano?.let {
+ query.setParameter("areano", param.areano)
+ countQuery.setParameter("areano", param.areano)
+ }
+ query.firstResult = (param.pageNo - 1) * param.pageSize
+ query.maxResults = param.pageSize
+ query.unwrap(NativeQueryImpl::class.java).setResultTransformer(Transformers.aliasToBean(TTransdtlCountVO::class.java))
+ val list = query.resultList as List<TTransdtlCountVO>
+ val count = countQuery.singleResult as BigInteger
+ return PageResult(count.longValueExact(),list)
}
override fun queryTransdtlNotEntry(): List<TCollectdtl>? {
- return collectdtlDao.findWipCollectdtl(PageRequest.of(0,10))
+ return collectdtlDao.findWipCollectdtl(PageRequest.of(0, 10))
}
override fun findByCobillnoForUpdate(cobillno: Int?): TCollectdtl {
return collectdtlDao.findByCobillnoForUpdate(cobillno) ?: throw RuntimeException("采集流水号:" + cobillno + "未找到")
}
+
+ override fun generateCountdtl(accdate: String?) {
+ val querySql = "select t3.deviceno,t3.areano,coalesce(t4.accdate,:accdate) accdate,t4.mode,coalesce(t4.amount,0) amount,coalesce(t4.water,0) water,coalesce(t4.count,0) " +
+ "count from tb_device t3 LEFT JOIN (select t1.deviceno,t1.accdate,t1.mode,t1.amount,t1.water,t1.count,t2.areano from (select deviceno,accdate,mode,sum(amount) amount,sum(water_in_100ml) water,count(cobillno) count " +
+ "from tb_collectdtl where accdate=:accdate and status = 'success' group by deviceno,mode,accdate) t1 LEFT JOIN " +
+ "(select deviceno,areano from tb_device) t2 on t1.deviceno=t2.deviceno) t4 on t3.deviceno=t4.deviceno"
+ val query = em.createNativeQuery(querySql)
+ query.setParameter("accdate", accdate)
+ query.unwrap(NativeQueryImpl::class.java).setResultTransformer(Transformers.aliasToBean(TTransdtlCountDTO::class.java))
+ val countDTOList = query.resultList as List<TTransdtlCountDTO>
+ val list = ArrayList<TTransdtlCount>()
+ countDTOList.forEach {
+ val transCount = TTransdtlCount()
+ transCount.accdate = it.accdate
+ transCount.amount = it.amount
+ transCount.water = it.water.toInt()
+ transCount.count = it.count.toInt()
+ transCount.mode = it.mode
+ transCount.areano = it.areano
+ transCount.deviceno = it.deviceno
+ list.add(transCount)
+ }
+ transdtlCountDao.saveAll(list)
+ }
}
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 28dbe72..3c4413d 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -25,7 +25,4 @@
################################################
# user password
auth.password.bcrypt.length=10
-payapi.url=https://yy.dlsmk.cn/payapi
-#appid secret
-water.appid=700001
-water.secret=5f788ce433ec44f299351cdf7f137e81
\ No newline at end of file
+payapi.url=https://yy.dlsmk.cn/payapi
\ No newline at end of file
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index ea6e5d8..d3bcb53 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -25,10 +25,12 @@
Insert into TB_FUNCTION (ID,CREATETIME,ISLEAF,LASTSAVED,MENUICON,MENUURL,NAME,ORDERNUM,PARENTID) values ('2',null,1,null,'layui-icon-home','/home/console','控制台',1,'1');
INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (6, NULL, 1, NULL, 'layui-icon-set', '/region/index', '区域管理', 2, 1);
INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (7, NULL, 1, NULL, 'layui-icon-set', '/device/index', '设备管理', 3, 1);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (8, NULL, 1, NULL, 'layui-icon-set', '/transdtl/index', '流水查询', 4, 1);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (9, NULL, 1, NULL, 'layui-icon-set', '/dtlcount/index', '流水统计', 5, 1);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (10, NULL, 1, NULL, 'layui-icon-set', '/areapara/index', '设备参数组管理', 6, 1);
-INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (11, NULL, 1, NULL, 'layui-icon-set', '/areaparabind/index', '水控参数区域绑定', 7, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (8, NULL, 1, NULL, 'layui-icon-set', '/collectdtl/index', '采集流水查询', 4, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (9, NULL, 1, NULL, 'layui-icon-set', '/dtlcount/index', '流水统计', 6, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (10, NULL, 1, NULL, 'layui-icon-set', '/areapara/index', '设备参数组管理', 7, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (11, NULL, 1, NULL, 'layui-icon-set', '/areaparabind/index', '水控参数区域绑定', 8, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (12, NULL, 1, NULL, 'layui-icon-set', '/accdtl/index', '入账流水查询', 5, 1);
+INSERT INTO "tb_function"("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid") VALUES (13, NULL, 1, NULL, 'layui-icon-set', '/useracc/index', '用户账户查询', 9, 1);
Insert into TB_ROLE_FUNCTION (ID,FUNCTIONID,ROLEID) values ('5','5','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
Insert into TB_ROLE_FUNCTION (ID,FUNCTIONID,ROLEID) values ('1','1','d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -41,6 +43,8 @@
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('9', 9, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('10', 10, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('11', 11, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('12', 12, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_role_function"("id", "functionid", "permissions", "roleid") VALUES ('13', 13, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -109,8 +113,8 @@
INSERT INTO "tb_devicefeeconfig"("areano", "feecfgversion", "feeconfig") VALUES (1, NULL, 1);
INSERT INTO "tb_feeconfig"("id", "amount", "max_water_litre", "cfg_version") VALUES (1, 1, 50, NULL);
-INSERT INTO "tb_person_identity"("third_uid", "createtime", "lockflag", "lossflag", "status", "userid", "cardphyid","coamount","accamount") VALUES ('25002882', NULL, 0, 0, '1', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '6655ec27',0,0);
-INSERT INTO "tb_person_identity"("third_uid", "accamount", "cardphyid", "coamount", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('25002885', 0, '6655ec27', 0, NULL, 0, 0, '1', 'f3yctKs5+bs1iMU4m8JUvPOus7SbDbrd');
+INSERT INTO "tb_person_identity"("third_uid", "accamount", "cardphyid", "coamount", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('25002882', 0, '6655ec27', 0, NULL, 0, 0, 'normal', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_person_identity"("third_uid", "accamount", "cardphyid", "coamount", "createtime", "lockflag", "lossflag", "status", "userid") VALUES ('25002885', 0, '6655ec27', 0, NULL, 0, 0, 'normal', 'f3yctKs5+bs1iMU4m8JUvPOus7SbDbrd');
INSERT INTO "tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '王富贵', NULL, NULL, '1', NULL, NULL);
INSERT INTO "tb_person"("userid", "addr", "country", "email", "idno", "idtype", "lastsaved", "mobile", "name", "nation", "sex", "status", "tel", "zipcode") VALUES ('f3yctKs5+bs1iMU4m8JUvPOus7SbDbrd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '蔡程应', NULL, NULL, '1', NULL, NULL);
@@ -118,6 +122,9 @@
INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_auth_url', 'http://172.28.43.20:8080/water/api/device/confirm?cobillno=');
INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_sina_shorturl', 'http://api.t.sina.com.cn/short_url/shorten.json?source=2223392143');
INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_shopaccno', '2000000010');
+INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_appid', '700001');
+INSERT INTO "tb_businesspara"("parakey", "paraval") VALUES ('water_secret', '5f788ce433ec44f299351cdf7f137e81');
+
INSERT INTO "tb_area"("areano", "address", "areaname", "available", "arealevel", "parentid", "remarks") VALUES (1, '测试路1号', '测试区域', 1, 1, 0, '测试');
INSERT INTO "tb_device"("deviceid", "areano", "linecheck", "devistatus", "devicename", "deviceno", "soft_verno") VALUES (1, 1, '20190813143440', 'normal', '测试POS01', '10000001', NULL);
diff --git a/src/main/resources/templates/system/transdtl/index.html b/src/main/resources/templates/system/accdtl/index.html
similarity index 67%
rename from src/main/resources/templates/system/transdtl/index.html
rename to src/main/resources/templates/system/accdtl/index.html
index 475a84d..4675e26 100644
--- a/src/main/resources/templates/system/transdtl/index.html
+++ b/src/main/resources/templates/system/accdtl/index.html
@@ -1,9 +1,9 @@
<div class="layui-card">
<div class="layui-card-header">
- <h2 class="header-title">流水查询</h2>
+ <h2 class="header-title">入账流水查询</h2>
<span class="layui-breadcrumb pull-right">
<a href="#">主页</a>
- <a><cite>流水查询</cite></a>
+ <a><cite>入账流水查询</cite></a>
</span>
</div>
<div class="layui-card-body">
@@ -11,21 +11,21 @@
<div class="layui-fluid">
<div class="layui-row">
<div class="layui-col-md4">
- <label style="width: 60px" class="layui-form-label">交易日期</label>
+ <label style="width: 60px" class="layui-form-label">采集日期</label>
<input style="width: 200px" type="text" class="layui-input"
- id="waterdtl-transtime-search-value" readonly="readonly">
+ id="wateraccdtl-transdate-search-value" readonly="readonly">
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备名称</label>
- <input id="waterdtl-devicename-search-value" class="layui-input search-input" type="text"/>
+ <input id="wateraccdtl-devicename-search-value" class="layui-input search-input" type="text"/>
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备编号</label>
- <input id="waterdtl-deviceno-search-value" class="layui-input search-input" type="text"
+ <input id="wateraccdtl-deviceno-search-value" class="layui-input search-input" type="text"
maxlength="8"/>
</div>
<div class="layui-col-md2">
- <button id="btn-search-waterdtl" class="layui-btn icon-btn" data-type="search"
+ <button id="btn-search-wateraccdtl" class="layui-btn icon-btn" data-type="search"
style="margin-left: 100px"><i
class="layui-icon"></i>查询
</button>
@@ -34,13 +34,18 @@
<div style="margin-top: 20px"/>
<div class="layui-row">
<div class="layui-col-md4">
+ <label style="width: 60px" class="layui-form-label">入账日期</label>
+ <input style="width: 200px" type="text" class="layui-input"
+ id="wateraccdtl-accdate-search-value" readonly="readonly">
+ </div>
+ <div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">市民姓名</label>
- <input style="width: 200px" id="waterdtl-username-search-value" class="layui-input search-input"
+ <input id="wateraccdtl-username-search-value" class="layui-input search-input"
type="text"/>
</div>
- <div class="layui-col-md4">
+ <div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="water-transdtl-parentId" id="waterdtl-select-region" lay-search>
+ <select name="wateraccdtl-transdtl-parentId" id="wateraccdtl-select-region" lay-search>
</select>
</div>
@@ -59,7 +64,7 @@
<div class="layui-fluid" style="padding: 0">
<div class="layui-row">
<div>
- <table class="layui-table" id="waterdtltable" lay-filter="waterdtltable"></table>
+ <table class="layui-table" id="wateraccdtltable" lay-filter="wateraccdtltable"></table>
</div>
</div>
</div>
@@ -74,7 +79,12 @@
let laydate = layui.laydate;
// 渲染日期选择框
laydate.render({
- elem: '#waterdtl-transtime-search-value',
+ elem: '#wateraccdtl-transdate-search-value',
+ range: true,
+ trigger: 'click'
+ })
+ laydate.render({
+ elem: '#wateraccdtl-accdate-search-value',
range: true,
trigger: 'click'
})
@@ -89,7 +99,7 @@
for (var i = 0; i < regions.length; i++) {
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
- $("#waterdtl-select-region").html(html);
+ $("#wateraccdtl-select-region").html(html);
}
form.render('select')
},
@@ -99,35 +109,39 @@
});
// 渲染表格
table.render({
- elem: '#waterdtltable',
- url: '[[@{/transdtl/list}]]',
+ elem: '#wateraccdtltable',
+ url: '[[@{/accdtl/list}]]',
where: {
devicename: '',
deviceno: '',
areano: '',
username: '',
- transtime: ''
+ transdate: '',
+ accdate: '',
},
page: true,
cols: [
[
- {field: 'cobillno', align: 'center', title: '流水号'},
+ {field: 'billno', align: 'center', title: '流水号'},
{field: 'deviceno', align: 'center', title: '设备号'},
{field: 'devicename', align: 'center', title: '设备名称'},
{field: 'areaname', align: 'center', title: '区域'},
- {field: 'waterSumHundredLitre', align: 'center', title: '用水量'},
+ {field: 'watersumhundredlitre', align: 'center', title: '用水量'},
{field: 'amount', align: 'center', title: '金额'},
{field: 'username', align: 'center', title: '姓名'},
- {field: 'bankcardno', align: 'center', title: '卡号'},
+ {field: 'citizencardno', align: 'center', title: '卡号'},
{field: 'cardphyid', align: 'center', title: '物理卡号'},
+ {field: 'accdate', align: 'center', title: '入账日期',
+ templet:function (item) {
+ return formatDate(item.accdate)
+ }},
+ {field: 'refno', align: 'center', title: '支付中心流水'},
{
field: 'transdate',
align: 'center',
- title: '交易时间',
+ title: '采集时间',
templet: function (item) {
- var date = item.transdate
- date = date.slice(0, 4) + '/' + date.slice(4)
- return date.slice(0, 7) + '/' + date.slice(7)
+ return formatDate(item.transdate)
}
},
{
@@ -167,21 +181,23 @@
});
// 搜索按钮点击事件
- $('#btn-search-waterdtl').click(function () {
- var devicename = $('#waterdtl-devicename-search-value').val().trim();
- var deviceno = $('#waterdtl-deviceno-search-value').val().trim();
- var areano = $('#waterdtl-select-region').val();
- var username = $('#waterdtl-username-search-value').val().trim();
- var transtime = $('#waterdtl-transtime-search-value').val();
- table.reload('waterdtltable', {
+ $('#btn-search-wateraccdtl').click(function () {
+ var devicename = $('#wateraccdtl-devicename-search-value').val().trim();
+ var deviceno = $('#wateraccdtl-deviceno-search-value').val().trim();
+ var areano = $('#wateraccdtl-select-region').val();
+ var username = $('#wateraccdtl-username-search-value').val().trim();
+ var transdate = $('#wateraccdtl-transdate-search-value').val();
+ var accdate = $('#wateraccdtl-accdate-search-value').val();
+ table.reload('wateraccdtltable', {
where: {
devicename: devicename,
deviceno: deviceno,
areano: areano,
username: username,
- transtime: transtime
+ transdate: transdate,
+ accdate: accdate,
},
- url: "[[@{/transdtl/list}]]",
+ url: "[[@{/accdtl/list}]]",
page: {
curr: 1
},
@@ -191,6 +207,12 @@
});
});
});
+ function formatDate(date){
+ if (date == null) {
+ return ''
+ }
+ return date.substring(0,4)+'-'+date.substring(4,6)+'-'+date.substring(6,8);
+ }
</script>
diff --git a/src/main/resources/templates/system/areapara/form.html b/src/main/resources/templates/system/areapara/form.html
index cca0af8..3e18d81 100644
--- a/src/main/resources/templates/system/areapara/form.html
+++ b/src/main/resources/templates/system/areapara/form.html
@@ -1,17 +1,17 @@
-<form id="areapara-form" lay-filter="areapara-form-filter" class="layui-form model-form"
+<form id="waterareapara-form" lay-filter="waterareapara-form-filter" class="layui-form model-form"
style="padding: 30px 25px 10px 25px;">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">参数组编号</label>
<div class="layui-input-inline">
- <input name="form_areapara_groupid" id="form-areapara-groupid" type="text" class="layui-input" style="background-color:#fafafa;"
+ <input name="waterform_areapara_groupid" id="waterform-areapara-groupid" type="text" class="layui-input" style="background-color:#fafafa;"
th:value="${areaparaGroup.groupid}" autocomplete="off" readonly="readonly"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">参数组名称</label>
<div class="layui-input-inline">
- <input name="form_areapara_groupname" id="form-areapara-groupname" type="text" maxlength="20" class="layui-input"
+ <input name="waterform_areapara_groupname" id="waterform-areapara-groupname" type="text" maxlength="20" class="layui-input"
th:value="${areaparaGroup.groupname}" autocomplete="off" lay-verify="required" required/>
</div>
</div>
diff --git a/src/main/resources/templates/system/areapara/index.html b/src/main/resources/templates/system/areapara/index.html
index b99f469..1807e9b 100644
--- a/src/main/resources/templates/system/areapara/index.html
+++ b/src/main/resources/templates/system/areapara/index.html
@@ -9,18 +9,18 @@
<div class="layui-card-body">
<div class="layui-form toolbar">
搜索:
- <input id="search-areaparagroup-groupname" class="layui-input search-input" maxlength="20" type="text" placeholder="输入参数组名称"/> 
- <button id="btn-search-areaparagroup" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
+ <input id="watersearch-areaparagroup-groupname" class="layui-input search-input" maxlength="20" type="text" placeholder="输入参数组名称"/> 
+ <button id="waterbtn-search-areaparagroup" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
</button>
- <button id="search-areaparagroup-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
+ <button id="watersearch-areaparagroup-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
</div>
- <table class="layui-table" id="areaparagroupTable" lay-filter="areaparagroupTable-filter"></table>
+ <table class="layui-table" id="waterareaparagroupTable" lay-filter="waterareaparagroupTable-filter"></table>
</div>
</div>
<!-- 表格操作列 -->
-<script type="text/html" id="areaparagroup-table-bar">
+<script type="text/html" id="waterareaparagroup-table-bar">
<a class="layui-btn layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"/>修改</a>
{{# if(!d.globalflag){ }}
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"/>删除</a>
@@ -34,7 +34,7 @@
var admin = layui.admin;
// 渲染表格
table.render({
- elem: '#areaparagroupTable',
+ elem: '#waterareaparagroupTable',
url: '[[@{/areapara/grouplist}]]',
page: true,
cols: [
@@ -57,25 +57,25 @@
return '';
}
},
- {align: 'center', title: '操作', width: 250, toolbar: '#areaparagroup-table-bar', fixed: 'right'}
+ {align: 'center', title: '操作', width: 250, toolbar: '#waterareaparagroup-table-bar', fixed: 'right'}
]
]
});
// 搜索按钮点击事件
- $('#btn-search-areaparagroup').click(function () {
- var paraname = $("#search-areaparagroup-groupname").val().trim();
- table.reload('areaparagroupTable', {where: {groupname: paraname}, page: {curr: 1},text:{none:"没有符合查询条件的参数组"}});
+ $('#waterbtn-search-areaparagroup').click(function () {
+ var paraname = $("#watersearch-areaparagroup-groupname").val().trim();
+ table.reload('waterareaparagroupTable', {where: {groupname: paraname}, page: {curr: 1},text:{none:"没有符合查询条件的参数组"}});
});
- $('#search-areaparagroup-add').click(function () {
+ $('#watersearch-areaparagroup-add').click(function () {
admin.popupCenter({
title: "新增设备参数组",
path: '[[@{/areapara/loadadd}]]',
area: '1200px',
offset: '10px',
finish: function () {
- table.reload('areaparagroupTable',{
+ table.reload('waterareaparagroupTable',{
where:{groupname:""},
url:'[[@{/areapara/grouplist}]]',
page:{
@@ -87,7 +87,7 @@
});
//监听单元格
- table.on('tool(areaparagroupTable-filter)', function (obj) {
+ table.on('tool(waterareaparagroupTable-filter)', function (obj) {
var data = obj.data;
if('del' == obj.event){
@@ -112,7 +112,7 @@
} else {
layer.msg(data.msg, {icon: 2});
}
- table.reload('areaparagroupTable');
+ table.reload('waterareaparagroupTable');
}, function (err) {
admin.errorBack(err)
});
@@ -124,7 +124,7 @@
area: '1200px',
offset: '10px',
finish: function () {
- table.reload('areaparagroupTable');
+ table.reload('waterareaparagroupTable');
}
});
}
diff --git a/src/main/resources/templates/system/areaparabind/form.html b/src/main/resources/templates/system/areaparabind/form.html
index a34a9d5..24f23df 100644
--- a/src/main/resources/templates/system/areaparabind/form.html
+++ b/src/main/resources/templates/system/areaparabind/form.html
@@ -1,10 +1,10 @@
-<div id="areaparabind-form" lay-filter="areaparabind-form-filter" class="layui-form model-form"
+<div id="waterareaparabind-form" lay-filter="waterareaparabind-form-filter" class="layui-form model-form"
style="padding: 30px 25px 10px 25px;">
<div class="layui-form-item">
<div class="layui-input-inline" style="width: 300px;">
<label class="layui-form-label">参数组</label>
<div class="layui-input-block">
- <select lay-verify="required" class="layui-select" id="areaparabind-form-select-groupid">
+ <select lay-verify="required" class="layui-select" id="waterareaparabind-form-select-groupid">
<option th:each="gp:${grouplist}" th:value="${gp.groupid}"
th:text="${gp.groupname}"></option>
</select> 
@@ -18,13 +18,13 @@
<div class="layui-card-body">
<div class="layui-form toolbar">
区域:
- <input id="search-areaparabind-form-searchkey" type="text" class="layui-input search-input"
+ <input id="watersearch-areaparabind-form-searchkey" type="text" class="layui-input search-input"
maxlength="20" style="width: 200px;" placeholder="输入区域名称"/> 
- <button id="btn-search-areaparabind-form" class="layui-btn icon-btn"><i
+ <button id="waterbtn-search-areaparabind-form" class="layui-btn icon-btn"><i
class="layui-icon"></i>搜索
</button>
- <table class="layui-table" id="areaparabindformTable" lay-filter="areaparabindformTable-filter"></table>
+ <table class="layui-table" id="waterareaparabindformTable" lay-filter="waterareaparabindformTable-filter"></table>
</div>
</div>
</div>
@@ -55,7 +55,7 @@
// 渲染表格
table.render({
- elem: '#areaparabindformTable',
+ elem: '#waterareaparabindformTable',
url: '[[@{/areapara/arealist}]]',
where:{
searchkey:''
@@ -65,7 +65,7 @@
page: false,
cols: [
[
- {type: 'checkbox', style: "#areaparabind-form-css", fixed: 'left'},
+ {type: 'checkbox', style: "#waterareaparabind-form-css", fixed: 'left'},
{field: 'areano', title: '区域编号', align: 'center'},
{field: 'areaname', title: '区域名称', align: 'center'},
{field: 'address', title: '详细地址', align: 'center'},
@@ -78,15 +78,15 @@
});
// 搜索按钮点击事件
- $('#btn-search-areaparabind-form').click(function () {
- var searchkey = $("#search-areaparabind-form-searchkey").val();
- table.reload('areaparabindformTable', {where: {searchkey: searchkey}});
+ $('#waterbtn-search-areaparabind-form').click(function () {
+ var searchkey = $("#watersearch-areaparabind-form-searchkey").val();
+ table.reload('waterareaparabindformTable', {where: {searchkey: searchkey}});
});
form.on('submit(form-submit)', function (el) {
- var groupid = $("#areaparabind-form-select-groupid").val();
- var checkStatus = table.checkStatus('areaparabindformTable');
+ var groupid = $("#waterareaparabind-form-select-groupid").val();
+ var checkStatus = table.checkStatus('waterareaparabindformTable');
var data = checkStatus.data;
var areanos = [];
if ("" == groupid) {
@@ -117,7 +117,7 @@
layer.closeAll('loading');
if (result.code == 200) {
layer.msg(result.msg, {icon: 1});
- table.reload('areaparabindformTable');
+ table.reload('waterareaparabindformTable');
admin.finishPopupCenter();
} else if (result.code == 401) {
layer.msg(result.msg, {icon: 2, time: 1500}, function () {
diff --git a/src/main/resources/templates/system/areaparabind/index.html b/src/main/resources/templates/system/areaparabind/index.html
index 1d600b0..d923a76 100644
--- a/src/main/resources/templates/system/areaparabind/index.html
+++ b/src/main/resources/templates/system/areaparabind/index.html
@@ -9,18 +9,18 @@
<div class="layui-card-body">
<div class="layui-form toolbar">
搜索:
- <input id="search-areaparabind-searchkey" class="layui-input search-input" maxlength="20" type="text" style="width: 300px;" placeholder="输入参数组名称或区域名称"/> 
- <button id="btn-search-areaparabind" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
+ <input id="watersearch-areaparabind-searchkey" class="layui-input search-input" maxlength="20" type="text" style="width: 300px;" placeholder="输入参数组名称或区域名称"/> 
+ <button id="waterbtn-search-areaparabind" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
</button>
- <button id="search-areaparabind-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
+ <button id="watersearch-areaparabind-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新 增</button>
</div>
- <table class="layui-table" id="areaparabindTable" lay-filter="areaparabindTable-filter"></table>
+ <table class="layui-table" id="waterareaparabindTable" lay-filter="waterareaparabindTable-filter"></table>
</div>
</div>
<!-- 表格操作列 -->
-<script type="text/html" id="areaparabind-table-bar">
+<script type="text/html" id="waterareaparabind-table-bar">
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
</script>
@@ -31,7 +31,7 @@
var admin = layui.admin;
// 渲染表格
table.render({
- elem: '#areaparabindTable',
+ elem: '#waterareaparabindTable',
url: '[[@{/areapara/areaparabindlist}]]',
page: true,
cols: [
@@ -45,25 +45,25 @@
return admin.formatDate(d.lastsaved);
}
},
- {align: 'center', title: '操作', width: 100, toolbar: '#areaparabind-table-bar', fixed: 'right'}
+ {align: 'center', title: '操作', width: 100, toolbar: '#waterareaparabind-table-bar', fixed: 'right'}
]
]
});
// 搜索按钮点击事件
- $('#btn-search-areaparabind').click(function () {
- var searchkey = $("#search-areaparabind-searchkey").val();
- table.reload('areaparabindTable', {where: {searchkey: searchkey}, page: {curr: 1}});
+ $('#waterbtn-search-areaparabind').click(function () {
+ var searchkey = $("#watersearch-areaparabind-searchkey").val();
+ table.reload('waterareaparabindTable', {where: {searchkey: searchkey}, page: {curr: 1}});
});
- $('#search-areaparabind-add').click(function () {
+ $('#watersearch-areaparabind-add').click(function () {
admin.popupCenter({
title: "新增区域参数组绑定关系",
path: '[[@{/areapara/loadbindadd}]]',
area: '900px',
offset: '0px',
finish: function () {
- table.reload('areaparabindTable',{
+ table.reload('waterareaparabindTable',{
where:{searchkey:""},
url:'[[@{/areapara/areaparabindlist}]]',
page:{
@@ -75,7 +75,7 @@
});
//监听单元格
- table.on('tool(areaparabindTable-filter)', function (obj) {
+ table.on('tool(waterareaparabindTable-filter)', function (obj) {
var data = obj.data;
if('del' == obj.event){
@@ -100,7 +100,7 @@
} else {
layer.msg(data.msg, {icon: 2});
}
- table.reload('areaparabindTable');
+ table.reload('waterareaparabindTable');
}, function (err) {
admin.errorBack(err)
});
diff --git a/src/main/resources/templates/system/transdtl/index.html b/src/main/resources/templates/system/collectdtl/index.html
similarity index 60%
copy from src/main/resources/templates/system/transdtl/index.html
copy to src/main/resources/templates/system/collectdtl/index.html
index 475a84d..6377f91 100644
--- a/src/main/resources/templates/system/transdtl/index.html
+++ b/src/main/resources/templates/system/collectdtl/index.html
@@ -1,9 +1,9 @@
<div class="layui-card">
<div class="layui-card-header">
- <h2 class="header-title">流水查询</h2>
+ <h2 class="header-title">采集流水查询</h2>
<span class="layui-breadcrumb pull-right">
<a href="#">主页</a>
- <a><cite>流水查询</cite></a>
+ <a><cite>采集流水查询</cite></a>
</span>
</div>
<div class="layui-card-body">
@@ -11,21 +11,21 @@
<div class="layui-fluid">
<div class="layui-row">
<div class="layui-col-md4">
- <label style="width: 60px" class="layui-form-label">交易日期</label>
+ <label style="width: 60px" class="layui-form-label">采集日期</label>
<input style="width: 200px" type="text" class="layui-input"
- id="waterdtl-transtime-search-value" readonly="readonly">
+ id="watercollectdtl-transdate-search-value" readonly="readonly">
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备名称</label>
- <input id="waterdtl-devicename-search-value" class="layui-input search-input" type="text"/>
+ <input id="watercollectdtl-devicename-search-value" class="layui-input search-input" type="text"/>
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备编号</label>
- <input id="waterdtl-deviceno-search-value" class="layui-input search-input" type="text"
+ <input id="watercollectdtl-deviceno-search-value" class="layui-input search-input" type="text"
maxlength="8"/>
</div>
<div class="layui-col-md2">
- <button id="btn-search-waterdtl" class="layui-btn icon-btn" data-type="search"
+ <button id="btn-search-watercollectdtl" class="layui-btn icon-btn" data-type="search"
style="margin-left: 100px"><i
class="layui-icon"></i>查询
</button>
@@ -34,16 +34,26 @@
<div style="margin-top: 20px"/>
<div class="layui-row">
<div class="layui-col-md4">
+ <label style="width: 60px" class="layui-form-label">入账日期</label>
+ <input style="width: 200px" type="text" class="layui-input"
+ id="watercollectdtl-accdate-search-value" readonly="readonly">
+ </div>
+ <div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">市民姓名</label>
- <input style="width: 200px" id="waterdtl-username-search-value" class="layui-input search-input"
+ <input id="watercollectdtl-username-search-value" class="layui-input search-input"
type="text"/>
</div>
- <div class="layui-col-md4">
+ <div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="water-transdtl-parentId" id="waterdtl-select-region" lay-search>
+ <select name="watercollectdtl-transdtl-parentId" id="watercollectdtl-select-region" lay-search>
</select>
</div>
+ <div class="layui-col-md2">
+ <label style="margin-right: 97px"></label>
+ <input type="checkbox" id="watercollectdtl-notacc-switch"
+ lay-skin="switch" lay-text="未入账|未入账" lay-filter="watercollectdtl-notacc-switch">
+ </div>
</div>
</div>
</div>
@@ -59,7 +69,7 @@
<div class="layui-fluid" style="padding: 0">
<div class="layui-row">
<div>
- <table class="layui-table" id="waterdtltable" lay-filter="waterdtltable"></table>
+ <table class="layui-table" id="watercollectdtltable" lay-filter="watercollectdtltable"></table>
</div>
</div>
</div>
@@ -73,8 +83,14 @@
let admin = layui.admin;
let laydate = layui.laydate;
// 渲染日期选择框
+ form.render('checkbox')
laydate.render({
- elem: '#waterdtl-transtime-search-value',
+ elem: '#watercollectdtl-transdate-search-value',
+ range: true,
+ trigger: 'click'
+ })
+ laydate.render({
+ elem: '#watercollectdtl-accdate-search-value',
range: true,
trigger: 'click'
})
@@ -89,7 +105,7 @@
for (var i = 0; i < regions.length; i++) {
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
- $("#waterdtl-select-region").html(html);
+ $("#watercollectdtl-select-region").html(html);
}
form.render('select')
},
@@ -99,14 +115,16 @@
});
// 渲染表格
table.render({
- elem: '#waterdtltable',
- url: '[[@{/transdtl/list}]]',
+ elem: '#watercollectdtltable',
+ url: '[[@{/collectdtl/list}]]',
where: {
devicename: '',
deviceno: '',
areano: '',
username: '',
- transtime: ''
+ transdate: '',
+ accdate: '',
+ notacc: false
},
page: true,
cols: [
@@ -118,16 +136,20 @@
{field: 'waterSumHundredLitre', align: 'center', title: '用水量'},
{field: 'amount', align: 'center', title: '金额'},
{field: 'username', align: 'center', title: '姓名'},
- {field: 'bankcardno', align: 'center', title: '卡号'},
+ {field: 'citizencardno', align: 'center', title: '卡号'},
{field: 'cardphyid', align: 'center', title: '物理卡号'},
+ {field: 'accdate', align: 'center', title: '入账日期',
+ templet:function (item) {
+ return formatDate(item.accdate)
+ }
+ },
+ {field: 'entryno', align: 'center', title: '入账流水号'},
{
field: 'transdate',
align: 'center',
- title: '交易时间',
+ title: '采集时间',
templet: function (item) {
- var date = item.transdate
- date = date.slice(0, 4) + '/' + date.slice(4)
- return date.slice(0, 7) + '/' + date.slice(7)
+ return formatDate(item.transdate)
}
},
{
@@ -166,22 +188,39 @@
]
});
+ // 未入账开关选择
+ var notacc;
+ form.on('switch(watercollectdtl-notacc-switch)', function (data) {
+ notacc = data.elem.checked;
+ $('#watercollectdtl-devicename-search-value').val('');
+ $('#watercollectdtl-deviceno-search-value').val('');
+ $("#watercollectdtl-select-region").get(0).selectedIndex = 0;
+ $('#watercollectdtl-username-search-value').val('');
+ $('#watercollectdtl-transdate-search-value').val('');
+ $('#watercollectdtl-accdate-search-value').val('');
+ // 重新渲染下拉框
+ form.render('select')
+ $('#btn-search-watercollectdtl').click()
+ });
// 搜索按钮点击事件
- $('#btn-search-waterdtl').click(function () {
- var devicename = $('#waterdtl-devicename-search-value').val().trim();
- var deviceno = $('#waterdtl-deviceno-search-value').val().trim();
- var areano = $('#waterdtl-select-region').val();
- var username = $('#waterdtl-username-search-value').val().trim();
- var transtime = $('#waterdtl-transtime-search-value').val();
- table.reload('waterdtltable', {
+ $('#btn-search-watercollectdtl').click(function () {
+ var devicename = $('#watercollectdtl-devicename-search-value').val().trim();
+ var deviceno = $('#watercollectdtl-deviceno-search-value').val().trim();
+ var areano = $('#watercollectdtl-select-region').val();
+ var username = $('#watercollectdtl-username-search-value').val().trim();
+ var transdate = $('#watercollectdtl-transdate-search-value').val();
+ var accdate = $('#watercollectdtl-accdate-search-value').val();
+ table.reload('watercollectdtltable', {
where: {
devicename: devicename,
deviceno: deviceno,
areano: areano,
username: username,
- transtime: transtime
+ transdate: transdate,
+ accdate: accdate,
+ notacc: notacc
},
- url: "[[@{/transdtl/list}]]",
+ url: "[[@{/collectdtl/list}]]",
page: {
curr: 1
},
@@ -191,6 +230,12 @@
});
});
});
+ function formatDate(date){
+ if (date == null) {
+ return ''
+ }
+ return date.substring(0,4)+'-'+date.substring(4,6)+'-'+date.substring(6,8);
+ }
</script>
diff --git a/src/main/resources/templates/system/device/index.html b/src/main/resources/templates/system/device/index.html
index 6a90044..28a82fb 100644
--- a/src/main/resources/templates/system/device/index.html
+++ b/src/main/resources/templates/system/device/index.html
@@ -12,20 +12,20 @@
<div class="layui-row">
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备名称</label>
- <input id="devicename-search-value" class="layui-input search-input" type="text"/>
+ <input id="waterdevice-devicename-search-value" class="layui-input search-input" type="text"/>
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备编号</label>
- <input id="deviceno-search-value" class="layui-input search-input" type="text" maxlength="8"/>
+ <input id="waterdevice-deviceno-search-value" class="layui-input search-input" type="text" maxlength="8"/>
</div>
<div class="layui-col-md4">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="water-device-parentId" id="select-region" lay-search>
+ <select name="waterdevice-parentId" id="waterdevice-select-region" lay-search>
</select>
</div>
<div class="layui-col-md2">
- <button id="btn-search-device" class="layui-btn icon-btn" data-type="search"
+ <button id="waterdevice-btn-search" class="layui-btn icon-btn" data-type="search"
style="margin-left: 100px"><i
class="layui-icon"></i>查询
</button>
@@ -34,7 +34,7 @@
<div style="margin-top: 20px"/>
<div class="layui-row">
<label style="width: 60px" class="layui-form-label">设备状态</label>
- <select name="water-device-status" id="select-status">
+ <select name="waterdevice-status" id="waterdevice-select-status">
</select>
</div>
@@ -45,7 +45,7 @@
<!--</button>-->
<!--<button id="btn-export-excel" class="layui-btn icon-btn" data-type="export"><i class="layui-icon"></i>导出excel-->
<!--</button>-->
- <button id="btn-add-device" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新增
+ <button id="waterdevice-btn-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>新增
</button>
<!--<button id="btn-add-device" class="layui-btn icon-btn" data-type="add"><i class="layui-icon "></i>模板下载-->
<!--</button>-->
@@ -54,7 +54,7 @@
<div class="layui-fluid" style="padding: 0">
<div class="layui-row">
<div>
- <table class="layui-table" id="devicetable" lay-filter="devicetable"></table>
+ <table class="layui-table" id="waterdevicetable" lay-filter="waterdevicetable"></table>
</div>
</div>
</div>
@@ -77,7 +77,7 @@
for (var i = 0; i < regions.length; i++) {
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
- $("#select-region").html(html);
+ $("#waterdevice-select-region").html(html);
form.render('select')
}
},
@@ -96,7 +96,7 @@
for (var i = 0; i < status.length; i++) {
html += '<option value="' + status[i].dictValue + '">' + status[i].dictKey + '</option>'
}
- $("#select-status").html(html);
+ $("#waterdevice-select-status").html(html);
form.render('select')
}
},
@@ -106,7 +106,7 @@
})
// 渲染表格
table.render({
- elem: '#devicetable',
+ elem: '#waterdevicetable',
url: '[[@{/device/list}]]',
page: true,
cols: [
@@ -157,20 +157,20 @@
// 搜索事件
function search() {
- var devicename = $('#devicename-search-value').val().trim();
- var deviceno = $('#deviceno-search-value').val().trim();
- var areano = $('#select-region').val();
+ var devicename = $('#waterdevice-devicename-search-value').val().trim();
+ var deviceno = $('#waterdevice-deviceno-search-value').val().trim();
+ var areano = $('#waterdevice-select-region').val();
var status;
- if ($('#select-status').val() === '正常') {
+ if ($('#waterdevice-select-status').val() === '正常') {
status = 'normal'
- } else if ($('#select-status').val() === '注销') {
+ } else if ($('#waterdevice-select-status').val() === '注销') {
status = 'closed'
- } else if ($('#select-status').val() === '签出') {
+ } else if ($('#waterdevice-select-status').val() === '签出') {
status = 'logout'
} else {
- status = $('#select-status').val()
+ status = $('#waterdevice-select-status').val()
}
- table.reload('devicetable', {
+ table.reload('waterdevicetable', {
where: {
devicename: devicename,
deviceno: deviceno,
@@ -187,9 +187,9 @@
});
}
// 给搜索按钮绑定搜索事件
- $("#btn-search-device").on('click', search)
+ $("#waterdevice-btn-search").on('click', search)
- $('#btn-add-device').click(function () {
+ $('#waterdevice-btn-add').click(function () {
showModel();
});
let showModel = function (data) {
@@ -204,14 +204,14 @@
finish: function () {
// 新增时删除搜索条件
if (!data) {
- $('#devicename-search-value').val('');
- $('#deviceno-search-value').val('');
- $("#select-status").get(0).selectedIndex=0;
- $("#select-region").get(0).selectedIndex=0;
+ $('#waterdevice-devicename-search-value').val('');
+ $('#waterdevice-deviceno-search-value').val('');
+ $("#waterdevice-select-status").get(0).selectedIndex=0;
+ $("#waterdevice-select-region").get(0).selectedIndex=0;
// 重新渲染下拉框
form.render('select')
}
- $("#btn-search-device").click();
+ $("#waterdevice-btn-search").click();
}
});
};
@@ -225,7 +225,7 @@
});
};
// 工具条点击事件
- table.on('tool(devicetable)', function (obj) {
+ table.on('tool(waterdevicetable)', function (obj) {
let data = obj.data;
let layEvent = obj.event;
if (layEvent === 'edit') {
@@ -257,7 +257,7 @@
} else {
layer.msg(data.retmsg, {icon: 2});
}
- $("#btn-search-device").click();
+ $("#waterdevice-btn-search").click();
}, function (ret) {
console.log(ret);
layer.closeAll('loading');
diff --git a/src/main/resources/templates/system/dtlcount/index.html b/src/main/resources/templates/system/dtlcount/index.html
index 8b1fe25..89a7fbe 100644
--- a/src/main/resources/templates/system/dtlcount/index.html
+++ b/src/main/resources/templates/system/dtlcount/index.html
@@ -11,22 +11,22 @@
<div class="layui-fluid">
<div class="layui-row">
<div class="layui-col-md4">
- <label style="width: 60px" class="layui-form-label">交易日期</label>
+ <label style="width: 60px" class="layui-form-label">入账日期</label>
<input style="width: 200px" type="text" class="layui-input"
- id="dtlcount-transtime-search-value" readonly="readonly">
+ id="waterdtlcount-accdate-search-value" readonly="readonly">
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">设备名称</label>
- <input id="dtlcount-devicename-search-value" class="layui-input search-input" type="text"/>
+ <input id="waterdtlcount-devicename-search-value" class="layui-input search-input" type="text"/>
</div>
<div class="layui-col-md3">
<label style="width: 60px" class="layui-form-label">所在小区</label>
- <select name="water-dtlcount-parentId" id="dtlcount-select-region" lay-search>
+ <select name="waterdtlcount-dtlcount-parentId" id="waterdtlcount-select-region" lay-search>
</select>
</div>
<div class="layui-col-md2">
- <button id="btn-search-dtlcount" class="layui-btn icon-btn" data-type="search"
+ <button id="btn-search-waterdtlcount" class="layui-btn icon-btn" data-type="search"
style="margin-left: 100px"><i
class="layui-icon"></i>查询
</button>
@@ -46,14 +46,13 @@
<div class="layui-fluid" style="padding: 0">
<div class="layui-row">
<div>
- <table class="layui-table" id="dtlcounttable" lay-filter="dtlcounttable"></table>
+ <table class="layui-table" id="waterdtlcounttable" lay-filter="waterdtlcounttable"></table>
</div>
</div>
</div>
</div>
</div>
<script>
-
layui.use(['form', 'table', 'layer', 'admin', 'element', 'laydate'], function () {
let form = layui.form;
let table = layui.table;
@@ -61,7 +60,7 @@
let laydate = layui.laydate;
// 渲染日期选择框
laydate.render({
- elem: '#dtlcount-transtime-search-value',
+ elem: '#waterdtlcount-accdate-search-value',
range: true,
trigger:'click'
})
@@ -76,7 +75,7 @@
for (var i = 0; i < regions.length; i++) {
html += '<option value="' + regions[i].areano + '">' + regions[i].areaName + '</option>'
}
- $("#dtlcount-select-region").html(html);
+ $("#waterdtlcount-select-region").html(html);
}
form.render('select')
},
@@ -86,12 +85,12 @@
});
// 渲染表格
table.render({
- elem: '#dtlcounttable',
+ elem: '#waterdtlcounttable',
url: '[[@{/dtlcount/list}]]',
where: {
devicename: '',
areano: '',
- transtime: ''
+ accdate: ''
},
page: true,
cols: [
@@ -102,34 +101,44 @@
{field: 'areano', align: 'center', title: '区域编号', width: 110},
{field: 'areaname', align: 'center', title: '区域'},
{field: 'count', align: 'center', title: '交易笔数'},
- {field: 'mode', align: 'center', title: '记录模式'},
- {field: 'waterSumHundredLitre', align: 'center', title: '用水量', width: 85},
+ {field: 'mode', align: 'center', title: '记录模式',
+ templet:function (item) {
+ let mode = item.mode
+ if (mode == 'qrcode') {
+ return '扫码';
+ }else if (mode == 'card') {
+ return '刷卡';
+ } else if (null == mode) {
+ return '无';
+ } else {
+ return mode;
+ }
+ }},
+ {field: 'water', align: 'center', title: '用水量', width: 85},
{field: 'amount', align: 'center', title: '金额', width: 75},
{
field: 'accdate',
align: 'center',
- title: '确认日期',
+ title: '入账日期',
width: 105,
- // templet: function (item) {
- // var date = item.transdate
- // date = date.slice(0, 4) + '/' + date.slice(4)
- // return date.slice(0, 7) + '/' + date.slice(7)
- // }
+ templet: function (item) {
+ return formatDate(item.accdate)
+ }
}
]
]
});
// 搜索按钮点击事件
- $('#btn-search-dtlcount').click(function () {
- var devicename = $('#dtlcount-devicename-search-value').val();
- var areano = $('#dtlcount-select-region').val();
- var transtime = $('#dtlcount-transtime-search-value').val();
- table.reload('dtlcounttable', {
+ $('#btn-search-waterdtlcount').click(function () {
+ var devicename = $('#waterdtlcount-devicename-search-value').val();
+ var areano = $('#waterdtlcount-select-region').val();
+ var accdate = $('#waterdtlcount-accdate-search-value').val();
+ table.reload('waterdtlcounttable', {
where: {
devicename: devicename,
areano: areano,
- transtime: transtime
+ accdate: accdate
},
url: "[[@{/dtlcount/list}]]",
page:{
@@ -141,6 +150,12 @@
});
});
});
+ function formatDate(date){
+ if (date == null) {
+ return ''
+ }
+ return date.substring(0,4)+'-'+date.substring(4,6)+'-'+date.substring(6,8)
+ }
</script>
diff --git a/src/main/resources/templates/system/region/form.html b/src/main/resources/templates/system/region/form.html
index f4fc7c8..8d72dc0 100644
--- a/src/main/resources/templates/system/region/form.html
+++ b/src/main/resources/templates/system/region/form.html
@@ -45,6 +45,7 @@
var region_form_func = admin.getTempData('t_func');
// 清除admin域中的数据
admin.putTempData('t_func', '');
+ console.log($("#areano").val())
if (region_form_func) {
$('input[name="areano"]').attr('readonly', 'readonly');
region_form_func.parentName = region_form_func.parentName == null ? "无" : region_form_func.parentName
diff --git a/src/main/resources/templates/system/region/index.html b/src/main/resources/templates/system/region/index.html
index 871456f..61b8a9e 100644
--- a/src/main/resources/templates/system/region/index.html
+++ b/src/main/resources/templates/system/region/index.html
@@ -9,11 +9,11 @@
<div class="layui-card-body">
<div class="layui-form toolbar">
区域名称:
- <input id="search-value" class="layui-input search-input" type="text" placeholder="输入区域名称"/> 
- <button id="btn-search-region" class="layui-btn icon-btn" data-type="search"><i
+ <input id="waterarea-search-value" class="layui-input search-input" type="text" placeholder="输入区域名称"/> 
+ <button id="waterarea-btn-search" class="layui-btn icon-btn" data-type="search"><i
class="layui-icon"></i>查询
</button>
- <button id="btn-add-region" class="layui-btn icon-btn" data-type="add" style="float: right"><i
+ <button id="waterarea-btn-add" class="layui-btn icon-btn" data-type="add" style="float: right"><i
class="layui-icon"></i>新增区域
</button>
</div>
@@ -25,10 +25,10 @@
<div class="layui-fluid" style="padding-top: 0">
<div class="layui-row layui-col-space20">
<div class="layui-col-md2" style="border: 1px solid #e6e6e6; margin-top: 25px" id="water-area-tree-css">
- <div id="regiontree"></div>
+ <div id="waterarea-tree"></div>
</div>
<div class="layui-col-md10">
- <table class="layui-table" id="regiontable" lay-filter="regiontable"></table>
+ <table class="layui-table" id="waterareatable" lay-filter="waterareatable"></table>
</div>
</div>
</div>
@@ -54,7 +54,7 @@
// 渲染表格
table.render({
- elem: '#regiontable',
+ elem: '#waterareatable',
url: '[[@{/region/search}]]',
page: true,
toolbar: true,
@@ -89,9 +89,9 @@
});
// 搜索按钮点击事件
- $('#btn-search-region').click(function () {
- let key = $('#search-value').val();
- table.reload('regiontable', {
+ $('#waterarea-btn-search').click(function () {
+ let key = $('#waterarea-search-value').val();
+ table.reload('waterareatable', {
where: {searchkey: key},
url: "[[@{/region/search}]]",
page: {
@@ -102,7 +102,7 @@
}
});
});
- $('#btn-add-region').click(function () {
+ $('#waterarea-btn-add').click(function () {
showModel();
});
let showModel = function (data) {
@@ -123,7 +123,7 @@
var treeData = region_index_shortenTitle(data.regions);
layui.use('tree', function () {
var tree = layui.tree;
- tree.reload('regiontree', {
+ tree.reload('waterarea-tree', {
data: treeData
})
});
@@ -136,8 +136,8 @@
}
});
// 更新表格
- let key = data ? $('#search-value').val() : '';
- table.reload('regiontable', {
+ let key = data ? $('#waterarea-search-value').val() : '';
+ table.reload('waterareatable', {
where: {searchkey: key},
url: "[[@{/region/search}]]",
page: {
@@ -160,7 +160,7 @@
});
};
// 工具条点击事件
- table.on('tool(regiontable)', function (obj) {
+ table.on('tool(waterareatable)', function (obj) {
let data = obj.data;
let layEvent = obj.event;
if (layEvent === 'edit') {
@@ -191,7 +191,7 @@
var treeData = region_index_shortenTitle(data.regions);
layui.use('tree', function () {
var tree = layui.tree;
- tree.reload('regiontree', {
+ tree.reload('waterarea-tree', {
data: treeData
})
});
@@ -204,8 +204,8 @@
}
});
// 更新表格
- let key = $('#search-value').val();
- table.reload('regiontable', {
+ let key = $('#waterarea-search-value').val();
+ table.reload('waterareatable', {
where: {searchkey: key},
url: "[[@{/region/search}]]",
page: {
@@ -223,7 +223,7 @@
} else {
layer.msg(data.retmsg, {icon: 2});
}
- table.reload('regiontable', {});
+ table.reload('waterareatable', {});
}, function (ret) {
console.log(ret);
layer.closeAll('loading');
@@ -244,11 +244,11 @@
layui.use('tree', function () {
var tree = layui.tree;
var inst1 = tree.render({
- elem: '#regiontree' //绑定元素
+ elem: '#waterarea-tree' //绑定元素
, data: treeData
- , id: 'regiontree'
+ , id: 'waterarea-tree'
, click: function (region) {
- table.reload("regiontable", {
+ table.reload("waterareatable", {
url: '[[@{/region/areano}]]',
where: {
areano: region.data.id
diff --git a/src/main/resources/templates/system/useraccount/index.html b/src/main/resources/templates/system/useraccount/index.html
new file mode 100644
index 0000000..eae659b
--- /dev/null
+++ b/src/main/resources/templates/system/useraccount/index.html
@@ -0,0 +1,104 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">用户帐号查询</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#">主页</a>
+ <a><cite>用户账号查询</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <div class="layui-fluid">
+ <div class="layui-row">
+ <div class="layui-col-md4">
+ <label style="width: 60px" class="layui-form-label">姓名</label>
+ <input type="text" class="layui-input search-input"
+ id="wateruseracc-username-search-value">
+ </div>
+ <div class="layui-col-md6">
+ <label style="width: 60px" class="layui-form-label">市民卡号</label>
+ <input id="wateruseracc-cardno-search-value" class="layui-input search-input" type="text"/>
+ </div>
+ <div class="layui-col-md2">
+ <button id="btn-search-useracc" class="layui-btn icon-btn" data-type="search"
+ style="margin-left: 100px"><i
+ class="layui-icon"></i>查询
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ <hr/>
+ <div class="layui-fluid" style="padding: 0">
+ <div class="layui-row">
+ <div>
+ <table class="layui-table" id="wateruseracctable" lay-filter="wateruseracctable"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script>
+
+ layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+ let form = layui.form;
+ let table = layui.table;
+ let admin = layui.admin;
+ // 渲染表格
+ table.render({
+ elem: '#wateruseracctable',
+ url: '[[@{/useracc/list}]]',
+ where: {
+ username: '',
+ cardno: ''
+ },
+ page: true,
+ cols: [
+ [
+ {field: 'username', align: 'center', title: '姓名'},
+ {field: 'cardno', align: 'center', title: '卡号'},
+ {field: 'notaccamount', align: 'center', title: '未入账金额'},
+ {
+ field: 'status',
+ align: 'center',
+ title: '账户状态',
+ templet: function (item) {
+ if (item.status === 'normal') {
+ return '正常'
+ } else if (item.status === 'abnormal') {
+ return '异常'
+ } else if (item.status === 'unuse') {
+ return '未启用';
+ } else if (item.status === 'closed') {
+ return '注销';
+ } else {
+ return item.status
+ }
+ }
+ }
+ ]
+ ]
+ });
+
+ // 搜索按钮点击事件
+ $('#btn-search-useracc').click(function () {
+ var username = $('#wateruseracc-username-search-value').val().trim();
+ var cardno = $('#wateruseracc-cardno-search-value').val().trim();
+ table.reload('wateruseracctable', {
+ where: {
+ username: username,
+ cardno: cardno
+ },
+ url: "[[@{/useracc/list}]]",
+ page: {
+ curr: 1
+ },
+ text: {
+ none: '没有符合查询条件的流水'
+ }
+ });
+ });
+ });
+</script>
+
+