就餐规则提供按月计算功能
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index 7d42137..828f338 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -345,7 +345,13 @@
}
private Double getDiscountAmount(String termdate, String custid, Double amount, DiscountBean bean) {
- Integer limit = transDtlService.getDiscountLimitToday(termdate, custid, bean.getRuleid());
+ Integer limit;
+ if(RestaurantConstant.RULEMODE_MONTH.equals(bean.getRulemode())){
+ limit=transDtlService.getDiscountLimitMonth(termdate.substring(0,6),custid,bean.getRuleid());
+ }else{
+ limit=transDtlService.getDiscountLimitToday(termdate,custid,bean.getRuleid());
+ }
+
if (bean.getLimitcnt() > limit) {
if (RestaurantConstant.RULETYPE_REDUCTION.equals(bean.getRuletype())) {
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java
index 2da979b..3b5ad3e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountBean.java
@@ -6,16 +6,18 @@
private Integer limitcnt;
private Double amount;
private Integer ruleid;
+ private String rulemode;
public DiscountBean(){
}
- public DiscountBean(String ruletype, Integer limitcnt, Double amount, Integer ruleid) {
+ public DiscountBean(String ruletype, Integer limitcnt, Double amount, Integer ruleid, String rulemode) {
this.ruletype = ruletype;
this.limitcnt = limitcnt;
this.amount = amount;
this.ruleid = ruleid;
+ this.rulemode = rulemode;
}
public Integer getRuleid() {
@@ -49,4 +51,12 @@
public void setAmount(Double amount) {
this.amount = amount;
}
+
+ public String getRulemode() {
+ return rulemode;
+ }
+
+ public void setRulemode(String rulemode) {
+ this.rulemode = rulemode;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountRuleShowBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountRuleShowBean.java
index bcdd42e..080e8ff 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountRuleShowBean.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/DiscountRuleShowBean.java
@@ -12,6 +12,7 @@
private String remark;
private String starttime;
private String endtime;
+ private String rulemode;
public Integer getRuleid() {
return ruleid;
@@ -100,4 +101,12 @@
public void setEndtime(String endtime) {
this.endtime = endtime;
}
+
+ public String getRulemode() {
+ return rulemode;
+ }
+
+ public void setRulemode(String rulemode) {
+ this.rulemode = rulemode;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
index e62d925..0cfc2cd 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/DeviceDiscountRuleController.java
@@ -140,6 +140,7 @@
@RequestParam("amount") String amount,
@RequestParam("limitcnt") Integer limitcnt,
@RequestParam("listid") String listid,
+ @RequestParam("rulemode") String rulemode,
// @RequestParam(value = "file", required = false) MultipartFile file,
@AuthenticationPrincipal UserDetails operUser) {
try {
@@ -164,7 +165,7 @@
return JsonResult.error("登录过期,请重新登录");
}
- if (deviceDiscountRuleService.saveNewDiscountRule(rulename.trim(), ruletype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), Double.parseDouble(amount), limitcnt, listid, oper)) {
+ if (deviceDiscountRuleService.saveNewDiscountRule(rulename.trim(), ruletype, DateUtil.unParseToDateFormat(starttime), DateUtil.unParseToDateFormat(endtime), Double.parseDouble(amount), limitcnt, listid, oper,rulemode)) {
return JsonResult.ok("新增成功");
} else {
return JsonResult.error("新增失败");
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustTypeDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustTypeDao.java
index 22208ed..7beb09c 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustTypeDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustTypeDao.java
@@ -1,7 +1,6 @@
package com.supwisdom.dlpay.restaurant.dao;
-import com.supwisdom.dlpay.restaurant.domain.TArea;
import com.supwisdom.dlpay.restaurant.domain.TCustType;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
index 1c5f920..5df3122 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/TransDtlDao.java
@@ -44,10 +44,14 @@
List<TTransDtl> findAllByStatusAndTransdate(String status,String date);
+
TTransDtl getByTransdateAndTermidAndTermsqlno(String transdate,Integer termid,Integer termsqlno);
Integer countByAccdateAndCustidAndRuleid(String accdate,String custid,Integer ruleid);
+ @Query(value = "select count(refno) from tb_transdtl where substr(accdate,1,6)=?1 and custid=?2 and ruleid=?3",nativeQuery = true)
+ Integer countTrandtlByAccdateAndCustidAndRuleidWithMonth(String accdate,String custid,Integer ruleid);
+
@Query("select min(accdate) from TTransDtl")
String getMinTransdate();
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDiscountRule.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDiscountRule.java
index 7ada260..df03d6d 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDiscountRule.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TDiscountRule.java
@@ -55,6 +55,9 @@
@Column(name = "REMARK", length = 600)
private String remark;
+ @Column(name = "RULEMODE", length = 10)
+ private String rulemode;
+
public Integer getRuleid() {
return ruleid;
}
@@ -174,4 +177,12 @@
public void setDetailStatus(Integer detailStatus) {
this.detailStatus = detailStatus;
}
+
+ public String getRulemode() {
+ return rulemode;
+ }
+
+ public void setRulemode(String rulemode) {
+ this.rulemode = rulemode;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
index bf3baef..5feeb1c 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/DeviceDiscountRuleService.java
@@ -26,7 +26,7 @@
@Transactional(rollbackFor = Exception.class)
boolean saveNewDiscountRule(String rulename, String ruletype, String starttime,
- String endtime, Double amount, Integer limitcnt, String listid, TOperator oper) throws Exception;
+ String endtime, Double amount, Integer limitcnt, String listid, TOperator oper,String rulemode) throws Exception;
@Transactional(rollbackFor = Exception.class, readOnly = true)
PageResult<TDiscountDetail> getDiscountRuleDetails(String searchkey, int ruleid, int pageNo, int pageSize);
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
index cb9be96..35e48fd 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/TransDtlService.java
@@ -53,4 +53,7 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
Integer getDiscountLimitToday(String termdate,String custid,Integer ruleid);
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+ Integer getDiscountLimitMonth(String termdate,String custid,Integer ruleid);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
index 39a7177..934e8b5 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/DeviceDiscountRuleServiceImpl.java
@@ -96,6 +96,7 @@
bean.setStarttime(rule.getStarttime().substring(0, 2) + ":" + rule.getStarttime().substring(2));
bean.setEndtime(rule.getEndtime().substring(0, 2) + ":" + rule.getEndtime().substring(2));
bean.setTimeperiod(bean.getStarttime() + " ~ " + bean.getEndtime());
+ bean.setRulemode(rule.getRulemode());
result.add(bean);
}
}
@@ -174,7 +175,7 @@
@Override
public boolean saveNewDiscountRule(String rulename, String ruletype, String starttime,
- String endtime, Double amount, Integer limitcnt, String listid, TOperator oper) throws Exception {
+ String endtime, Double amount, Integer limitcnt, String listid, TOperator oper,String rulemode) throws Exception {
TDiscountRule rule = new TDiscountRule();
if (discountRuleDao.checkRulenameExists(rulename) > 0) {
throw new WebCheckException("餐补名称已经存在!");
@@ -192,6 +193,7 @@
rule.setCreatetime(systime);
rule.setLastsaved(systime);
rule.setVerno(1);
+ rule.setRulemode(rulemode);
rule = discountRuleDao.save(rule);
/*String filename = file.getOriginalFilename();
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
index f5f5344..a8731bc 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/TransDtlServiceImpl.java
@@ -299,5 +299,10 @@
return transDtlDao.countByAccdateAndCustidAndRuleid(termdate,custid,ruleid);
}
+ @Override
+ public Integer getDiscountLimitMonth(String termdate, String custid, Integer ruleid) {
+ return transDtlDao.countTrandtlByAccdateAndCustidAndRuleidWithMonth(termdate,custid,ruleid);
+ }
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
index d5732cc..a231f87 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/util/RestaurantConstant.java
@@ -78,6 +78,9 @@
public static final String CHKDTL_RESOLVED_FAIL = "fail"; //补账失败
public static final String CHKDTL_RESOLVED_HANGUP="hangup"; //挂起
+ public static final String RULEMODE_MONTH="month"; //按月
+ public static final String RULEMODE_DAY="day"; //按日
+
public static final String TRANSDTL_STATEMENT_LASTDATE = "transdtl.statement.lastdate"; //统计日期
}
diff --git a/src/main/resources/templates/restaurant/discountrule/rule.html b/src/main/resources/templates/restaurant/discountrule/rule.html
index 7d4706c..55a2568 100644
--- a/src/main/resources/templates/restaurant/discountrule/rule.html
+++ b/src/main/resources/templates/restaurant/discountrule/rule.html
@@ -66,6 +66,18 @@
}
},
{
+ field: 'rulemode', title: '餐补模式', align: 'center', width: 120, sort: true, templet: function (d) {
+ console.log(d);
+ if ('day' == d.rulemode) {
+ return '按日';
+ } else if ('month' == d.rulemode) {
+ return '按月';
+ } else {
+ return '按日';
+ }
+ }
+ },
+ {
field: 'amount', title: '金额/折率', align: 'center', sort: true, templet: function (d) {
if ('discount' == d.ruletype) {
return d.amount + '折';
@@ -89,7 +101,7 @@
}
}
},
- {field: 'remark', title: '备注', align: 'center'},
+ /* {field: 'remark', title: '备注', align: 'center'},*/
{align: 'center', title: '操作', width: 250, toolbar: '#discountrule-table-bar', fixed: 'right'}
]
]
diff --git a/src/main/resources/templates/restaurant/discountrule/ruleform.html b/src/main/resources/templates/restaurant/discountrule/ruleform.html
index 0eed2ad..b521c85 100644
--- a/src/main/resources/templates/restaurant/discountrule/ruleform.html
+++ b/src/main/resources/templates/restaurant/discountrule/ruleform.html
@@ -10,6 +10,15 @@
</div>
<div class="layui-form-item">
+ <label class="layui-form-label">餐补模式</label>
+ <div class="layui-input-block">
+ <input type="radio" name="rulemode" id="form-discountrule-rulemode-day" lay-filter="discountrule-rulemode-filter" value="day" title="按日" checked/>
+ <input type="radio" name="rulemode" id="form-discountrule-rulemode-month" lay-filter="discountrule-rulemode-filter" value="month" title="按月" />
+
+ </div>
+ </div>
+
+ <div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">* </span>餐补名称</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="rulename" id="form-discountrule-rulename" maxlength="20" style="width: 90%;"
@@ -172,7 +181,7 @@
formData.append("endtime", vdata.endtime);
formData.append("amount", vdata.amount);
formData.append("limitcnt", vdata.limitcnt);
-
+ formData.append("rulemode", vdata.rulemode);
formData.append("listid",vdata.listid);
// var flag = false;
// var files = $('#form-discountrule-records').prop('files');