diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java index 975073830..973588cb0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -142,8 +142,24 @@ public class WxAllBill extends TenantEntity { if (StringUtils.isBlank(returnPay)) { returnPay = "0"; } + //如果是押金,则不计算已退金额 + boolean isDeposit = false; + if (null != billType) { + for (EnumBillAllType types : EnumBillAllType.getDepositTypes()) { + if (types.getCode().intValue() == billType.intValue()) { + isDeposit = true; + break; + } + } + + } if (StringUtils.isNotBlank(receivePay) && StringUtils.isNotBlank(pay)) { - String o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).add(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); + String o = "0"; + if (isDeposit) { + o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).subtract(new BigDecimal(setOff)).toPlainString(); + }else { + o = new BigDecimal(receivePay).subtract(new BigDecimal(pay)).add(new BigDecimal(returnPay)).subtract(new BigDecimal(setOff)).toPlainString(); + } return o; } return "0"; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java index 8bbaac082..f2fac51fc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java @@ -38,6 +38,8 @@ public class WxFinancePrintData extends BaseEntity { private String printDataJson; @io.swagger.annotations.ApiModelProperty(value="是否可编辑",name="isEdit") private Integer isEdit; + @io.swagger.annotations.ApiModelProperty(value="默认值",name="defaultValue") + private String defaultValue; @TableField(exist = false) private Object printComponents; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java index 6a1a9cdc8..cac9f93c5 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java @@ -8,6 +8,7 @@ import java.util.Date; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.baomidou.mybatisplus.annotation.TableField; +import com.iformall.utils.DateUtils; @Data public class WxBillSum implements Serializable { @@ -33,7 +34,23 @@ public class WxBillSum implements Serializable { private BigDecimal oweNumber; private Date minDate; + @TableField(exist = false) + private String minDateStr; + public String getMinDateStr() { + if (null != minDate) { + minDateStr = DateUtils.date2String(minDate,DateUtils.DATE_PATTERN); + } + return minDateStr; + } private Date maxDate; + @TableField(exist = false) + private String maxDateStr; + public String getMaxDateStr() { + if (null != maxDate) { + maxDateStr = DateUtils.date2String(maxDate,DateUtils.DATE_PATTERN); + } + return maxDateStr; + } //手续费 private String servicePay = "0"; @@ -146,5 +163,7 @@ public class WxBillSum implements Serializable { private String billName; @TableField(exist = false) private Integer billType; + @TableField(exist = false) + private String taxRate; } diff --git a/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java index decbb0ed3..25da36645 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java @@ -79,6 +79,7 @@ public class PrintComponentHandler implements Serializable { html.setTitle(data.getName()); html.setIsEdit(data.getIsEdit()); html.setValue(dataJson.getString("html")); + html.setDefaultValue(data.getDefaultValue()); return html; }else if ("braid-html-table".equals(data.getPrintDataType())) { PrintHtml html = new PrintHtml(); @@ -86,6 +87,7 @@ public class PrintComponentHandler implements Serializable { html.setIsEdit(data.getIsEdit()); html.setValue(dataJson.getString("html")); html.setIsFmCustomizedTable(EnumYesOrNo.YES.getCode()); + html.setDefaultValue(data.getDefaultValue()); return html; } return null; diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java index 89151dc13..aed8d05ec 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintCustomedTableDataHandler.java @@ -1,5 +1,6 @@ package com.iformall.print.data; +import java.util.Iterator; import java.util.List; import org.jsoup.Jsoup; @@ -15,7 +16,19 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; public class PrintCustomedTableDataHandler{ - public String getTableContent(String componentContent,JSONArray datas){ + public String getTableContent(String componentContent,JSONArray datas,JSONObject entity){ + if (null != entity) { + for (Iterator it = entity.keySet().iterator(); it.hasNext();) { + String fieldName = it.next(); + Object o = entity.get(fieldName); + componentContent = componentContent.replaceAll("{"+fieldName+"}", String.valueOf(o)); + } + } + componentContent = getTableListContent(componentContent,datas); + return componentContent; + } + + private String getTableListContent(String componentContent,JSONArray datas) { if (null == datas || datas.size() <= 0) { return componentContent; } @@ -71,7 +84,7 @@ public class PrintCustomedTableDataHandler{ } sb.append(""); } - return null; + return sb.toString(); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java index 33da1529b..5e660c336 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -395,10 +395,20 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill break; } } - String owe = wxBillRent.getOwe(); -// if (isDeposit && ) { -// -// } + if (isDeposit) { + String setoff = dbBill.getSetOff(); + if (StringUtils.isBlank(setoff)) { + setoff = "0"; + } + String pay = dbBill.getPay(); + if (StringUtils.isBlank(pay)) { + pay = "0"; + } + BigDecimal needReturn = new BigDecimal(pay).add(new BigDecimal(setoff)).subtract(new BigDecimal(wxBillRent.getReturnPay())); + if (needReturn.compareTo(new BigDecimal(0)) == 0) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + } wxAllBillMapper.updateById(wxBillRent); this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(), diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java index 181d5a095..8722e32a2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -240,7 +240,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { //表格解析 String componentContent = ov.getString("value"); if (null != billList) { - printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); + printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList)),JSON.parseObject(JSON.toJSONString(re))); } }else { ov.put("value", printFinanceReceiveDataHandler.getObjectValue(ov.getString("name"),re,merchantMap,feesMap,shopNumber)); @@ -303,23 +303,40 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { List sumlist = new ArrayList(); BigDecimal receiveTotal = new BigDecimal(0); BigDecimal payTotal = new BigDecimal(0); - BigDecimal setoffTotal = new BigDecimal(0); - BigDecimal returnTotal = new BigDecimal(0); + BigDecimal oweTotal = new BigDecimal(0); for (int k = 0 ; k< bq.getBillSumList().size() ; k++) { WxBillSum billSum = bq.getBillSumList().get(k); if (feesId.contains(billSum.getEnergyFeesId())) { + WxEnergyFees fee = feesMap.get(billSum.getEnergyFeesId()); + billSum.setTaxRate(fee.getTaxRate()); sumlist.add(billSum); + receiveTotal = receiveTotal.add(billSum.getNeedPayNumber()); + payTotal = payTotal.add(billSum.getPaidNumber()); + oweTotal = oweTotal.add(billSum.getOweNumber()); + } - } + WxBillSum heji = new WxBillSum(); + heji.setBillName("合计"); + heji.setNeedPay(receiveTotal.toPlainString()); + sumlist.add(heji); + WxBillSum yishou = new WxBillSum(); + yishou.setBillName("已收"); + yishou.setNeedPay(payTotal.toPlainString()); + sumlist.add(yishou); + + WxBillSum owe = new WxBillSum(); + owe.setBillName("本期应收"); + owe.setNeedPay(payTotal.toPlainString()); + sumlist.add(owe); String componentContent = ov.getString("value"); -// if (null != billList) { -// printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(billList))); -// } + if (null != sumlist && sumlist.size() > 0 ) { + printCustomedTableDataHandler.getTableContent(componentContent, JSON.parseArray(JSON.toJSONString(sumlist)),JSON.parseObject(JSON.toJSONString(bq))); + } }else { - //ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),sv,merchantMap,feesMap)); + ov.put("value", printMerchantSettleDataHandler.getObjectValue(ov.getString("name"),bq,merchantMap,feesMap)); } } diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml index d76b5e514..581bd8c9e 100644 --- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml @@ -73,18 +73,41 @@ and date_format(starttime,'%Y-%m') <= #{month} and date_format(endtime,'%Y-%m') >= #{month} - and (`starttime` <= #{oweBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7)) + and ( + (`starttime` <= #{oweBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`starttime` <= #{oweBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and (`starttime` > #{oweBillLastTime} and `starttime` <= #{nearBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7)) + and ( + (`starttime` > #{oweBillLastTime} and `starttime` <= #{nearBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`starttime` > #{oweBillLastTime} and `starttime` <= #{nearBillLastTime} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and (`starttime` <= #{needPayStartDay} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7)) + and ( + (`starttime` <= #{needPayStartDay} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`starttime` <= #{needPayStartDay} and `receive_pay` - `pay` - IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and ( `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') < 0 or status in (8,9)) + and ( + ( `receive_pay` - `pay` - IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') < 0 and bill_type not in (13,21,5)) + or + ( `receive_pay` - `pay` - IFNULL(`set_off`,'0') < 0 and bill_type in (13,21,5)) + or status in (8,9) + ) + + + and ( + (`last_owe_call_time` is not null and `receive_pay` - `pay`- IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) and bill_type not in (13,21,5)) + or + (`last_owe_call_time` is not null and `receive_pay` - `pay`- IFNULL(`set_off`,'0') > 0 and status not in (3,6,7) and bill_type in (13,21,5)) + ) - and (`last_owe_call_time` is not null and `receive_pay` - `pay`- IFNULL(`set_off`,'0') + IFNULL(`return_pay`,'0') > 0 and status not in (3,6,7) ) and `merchant_id` is not null and `parent_bill_id` is not null and `parent_bill_id` is null @@ -193,7 +216,9 @@ select bill_type, count(1) total_count , - sum(CAST(`receive_pay` AS DECIMAL(20,2)) - CAST(`pay` AS DECIMAL(20,2)) - CAST(IFNULL(`set_off`,'0') AS DECIMAL(20,2)) + CAST(IFNULL(`return_pay`,'0') AS DECIMAL(20,2))) total_money, + case when bill_type in (13,21,5) then sum(CAST(`receive_pay` AS DECIMAL(20,2)) - CAST(`pay` AS DECIMAL(20,2)) - CAST(IFNULL(`set_off`,'0') AS DECIMAL(20,2)) ) + else sum(CAST(`receive_pay` AS DECIMAL(20,2)) - CAST(`pay` AS DECIMAL(20,2)) - CAST(IFNULL(`set_off`,'0') AS DECIMAL(20,2)) + CAST(IFNULL(`return_pay`,'0') AS DECIMAL(20,2))) + end as total_money, MIN(starttime) min_begin_time from wx_all_bill group by bill_type diff --git a/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml b/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml index 91a6f7c14..ada8def8f 100644 --- a/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinancePrintDataMapper.xml @@ -11,10 +11,11 @@ + - `id`,`name`,`is_del`,`remark`,`type`,`sort`,`print_data_type`,`print_data_json`,`is_edit` + `id`,`name`,`is_del`,`remark`,`type`,`sort`,`print_data_type`,`print_data_json`,`is_edit`,`default_value`