From 35f6fd253b610d06735619ce9d2fd00ca335efdc Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 18:58:43 +0800 Subject: [PATCH 01/66] fix --- .../market/WxFinancePrintController.java | 28 ++++++++++ .../iformall/print/PrintDataParseHandler.java | 33 ----------- .../service/WxFinancePrintService.java | 3 + .../impl/WxFinancePrintServiceImpl.java | 55 +++++++++++++++---- 4 files changed, 74 insertions(+), 45 deletions(-) delete mode 100644 mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index 092b3a260..feda7ceee 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -1,5 +1,6 @@ package com.iformall.controller.market; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.iformall.annotation.TenantIgnore; import com.iformall.common.Result; import com.iformall.common.ResultData; @@ -31,6 +32,9 @@ import org.springframework.web.bind.annotation.RestController; /** * https://www.lodop.net/index.html https://github.com/myliuxia/kr-print-designer?tab=readme-ov-file + +打印项目是独立部署,无法跟后台集成登录。 + * @author Administrator */ @RestController @@ -83,6 +87,20 @@ public class WxFinancePrintController extends BaseController { return new ResultData(); } + @ApiOperation("费用区间列表") + @PostMapping("copyTemplates") + @TenantIgnore + public ResultData copyTemplates(@RequestBody WxFinancePrintTemplate record) { + if (null == record.getId()) { + return new ResultData(Result.ERROR,"参数不对"); + } + WxFinancePrintTemplate template = wxFinancePrintService.getTemplateById(record.getId()); + template.setId(null); + template.setName(template.getName()+"复制"); + wxFinancePrintService.saveOrUpdate(template); + return new ResultData(); + } + @ApiOperation("费用区间列表") @PostMapping("setTemplatesDel") @TenantIgnore @@ -94,4 +112,14 @@ public class WxFinancePrintController extends BaseController { return new ResultData(); } + @ApiOperation("预览") + @GetMapping("getTemplateData") + @TenantIgnore + public ResultData viewTemplate(@RequestBody String tenantId,Integer type,List dataIds) { + if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == type) { + return new ResultData(Result.ERROR,"参数不对"); + } + return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,type,dataIds)); + } + } diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java deleted file mode 100644 index 9fd4ff18f..000000000 --- a/mallinkService/src/main/java/com/iformall/print/PrintDataParseHandler.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.iformall.print; - -import lombok.Data; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.iformall.domain.po.WxFinancePrintData; -import com.iformall.enums.EnumFinancePrintDataType; -import com.iformall.enums.EnumYesOrNo; -import com.iformall.print.entity.PrintComponent; -import com.iformall.print.entity.component.table.PrintBraidTable; -import com.iformall.print.entity.component.table.PrintBraidTableColumns; -import com.iformall.print.entity.component.table.PrintBraidTableColumnsTrSet; - -@Data -public class PrintDataParseHandler implements Serializable { - - private static final long serialVersionUID = 1L; - - //根据类型来解析传进来的对象 - private Map getComponentValuesMap(EnumFinancePrintDataType type,Object object) { - return null; - } - public static JSONObject parseData(EnumFinancePrintDataType type,WxFinancePrintData data,Map valueMap) { - return null; - } - -} diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index b262d211b..898cbc8a0 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -1,6 +1,8 @@ package com.iformall.service; import java.util.List; +import java.util.Map; + import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; /** @@ -12,4 +14,5 @@ public interface WxFinancePrintService { WxFinancePrintTemplate getTemplateById(Long id); void saveOrUpdate(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); + List parseTemplateData(String tenantId,Integer type,List dataIds); } 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 ba15dc4c1..fca793bcb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -4,22 +4,27 @@ package com.iformall.service.impl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; -import com.iformall.enums.EnumYesOrNo; +import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumFinancePrintDataType; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxFinancePrintDataMapper; import com.iformall.mapper.WxFinancePrintTemplateMapper; import com.iformall.service.WxFinancePrintService; - +import com.iformall.service.WxFinanceService; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** */ @@ -32,6 +37,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Autowired WxFinancePrintTemplateMapper wxFinancePrintTemplateMapper; + @Lazy + @Autowired + WxFinanceService wxFinanceService; + @Override public List printDataList(WxFinancePrintData record) { return wxFinancePrintDataMapper.findList(record); @@ -49,19 +58,30 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Override public void saveOrUpdate(WxFinancePrintTemplate record) { + boolean isGenarated = false; + if (StringUtils.isBlank(record.getContent())) { + Map map = new HashMap(); + map.put("title", record.getName()); + map.put("type", record.getType()); + map.put("width", 770); + map.put("height", 500); + map.put("pageWidth", 215); + map.put("pageHeight", 140); + map.put("id", String.valueOf(record.getId())); + map.put("defaultValue", 0); + record.setContent(JSON.toJSONString(map)); + isGenarated = true; + } Date date = new Date(); if (record.getId() == null) { final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); record.setCreateTime(date); record.setUpdateTime(date); - if (null != record.getContentJson()) { - JSONObject o = record.getContentJson(); - o.put("type", record.getType()); - o.put("id", String.valueOf(record.getId())); - o.put("defaultValue", 0); - record.setContent(JSON.toJSONString(o)); - } + JSONObject o = record.getContentJson(); + o.put("defaultValue", 0); + o.put("title", record.getName()); + record.setContent(JSON.toJSONString(o)); try { wxFinancePrintTemplateMapper.insert(record); } catch (Exception e) { @@ -71,9 +91,8 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } else { if (null != record.getContentJson()) { JSONObject o = record.getContentJson(); - o.put("type", record.getType()); - o.put("id", String.valueOf(record.getId())); o.put("defaultValue", 0); + o.put("title", record.getName()); record.setContent(JSON.toJSONString(o)); } record.setUpdateTime(date); @@ -87,5 +106,17 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { wxFinancePrintTemplateMapper.updateById(record); } + @Override + public List parseTemplateData(String tenantId, Integer type, List dataIds) { + EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(type); +// //付款单 +// if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { +// TenantEntity tenantEntity = new TenantEntity(); +// tenantEntity.setTenantId(tenantId); +// WxFinanceReceive receive = wxFinanceService.getReceiveById(tenantEntity, id); +// } + return null; + } + } From 9b56961674315ed8741ebf51fd4b6f2f4840f6f9 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 19:10:23 +0800 Subject: [PATCH 02/66] fix --- .../java/com/iformall/print/PrintDataHandler.java | 8 ++++++++ .../print/entity/component/html/PrintHtml.java | 13 +++++++++++++ .../service/impl/WxFinancePrintServiceImpl.java | 9 +++++---- 3 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/print/entity/component/html/PrintHtml.java diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java index ad909a732..88ff429d7 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java @@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONObject; import com.iformall.domain.po.WxFinancePrintData; import com.iformall.enums.EnumYesOrNo; import com.iformall.print.entity.PrintComponent; +import com.iformall.print.entity.component.html.PrintHtml; import com.iformall.print.entity.component.table.PrintBraidTable; import com.iformall.print.entity.component.table.PrintBraidTableColumns; import com.iformall.print.entity.component.table.PrintBraidTableColumnsTrSet; @@ -66,6 +67,13 @@ public class PrintDataHandler implements Serializable { } table.setColumnsAttr(columnsAttr); return table; + }else if ("braid-html".equals(data.getPrintDataType())) { + PrintHtml html = new PrintHtml(); + html.setTitle(data.getName()); + html.setIsEdit(data.getIsEdit()); + html.setName("html"); + html.setValue(dataJson.getString("html")); + return html; } return null; } diff --git a/mallinkService/src/main/java/com/iformall/print/entity/component/html/PrintHtml.java b/mallinkService/src/main/java/com/iformall/print/entity/component/html/PrintHtml.java new file mode 100644 index 000000000..9e78a09ec --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/entity/component/html/PrintHtml.java @@ -0,0 +1,13 @@ +package com.iformall.print.entity.component.html; + +import lombok.Data; +import com.iformall.print.entity.PrintComponent; + +@Data +public class PrintHtml extends PrintComponent { + + private static final long serialVersionUID = 1L; + private String type="braid-html"; + //打印项默认内容 + private String defaultValue; +} 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 fca793bcb..dd64bf454 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -61,13 +61,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { boolean isGenarated = false; if (StringUtils.isBlank(record.getContent())) { Map map = new HashMap(); - map.put("title", record.getName()); - map.put("type", record.getType()); map.put("width", 770); map.put("height", 500); map.put("pageWidth", 215); map.put("pageHeight", 140); - map.put("id", String.valueOf(record.getId())); map.put("defaultValue", 0); record.setContent(JSON.toJSONString(map)); isGenarated = true; @@ -79,8 +76,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { record.setCreateTime(date); record.setUpdateTime(date); JSONObject o = record.getContentJson(); + o.put("id", String.valueOf(record.getId())); o.put("defaultValue", 0); o.put("title", record.getName()); + o.put("type", record.getType()); record.setContent(JSON.toJSONString(o)); try { wxFinancePrintTemplateMapper.insert(record); @@ -91,8 +90,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } else { if (null != record.getContentJson()) { JSONObject o = record.getContentJson(); + o.put("id", String.valueOf(record.getId())); o.put("defaultValue", 0); o.put("title", record.getName()); + o.put("type", record.getType()); record.setContent(JSON.toJSONString(o)); } record.setUpdateTime(date); @@ -108,7 +109,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Override public List parseTemplateData(String tenantId, Integer type, List dataIds) { - EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(type); +// EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(type); // //付款单 // if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { // TenantEntity tenantEntity = new TenantEntity(); From 84e3a2b126a0fc1ea870d98b1ab744d4bacfe427 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 19:24:11 +0800 Subject: [PATCH 03/66] fix --- .../iformall/controller/market/WxFinancePrintController.java | 2 +- .../src/main/resources/db/migration/V202408000000001.sql | 2 +- .../com/iformall/service/impl/WxFinancePrintServiceImpl.java | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index feda7ceee..b1700386d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -108,7 +108,7 @@ public class WxFinancePrintController extends BaseController { if (null == record.getTenantId()) { return new ResultData(Result.ERROR,"参数不对"); } - wxFinancePrintService.saveOrUpdate(record); + wxFinancePrintService.setTemplatesDel(record); return new ResultData(); } diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql index feaa34e87..064a7c12c 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql @@ -791,7 +791,7 @@ CREATE TABLE `wx_finance_print_template` ( `update_time` datetime DEFAULT NULL COMMENT '更新时间', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `name` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '模板名称', - `is_del` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL, + `is_del` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '0', `content` text COLLATE utf8mb4_unicode_ci COMMENT '内容', `type` int(1) NOT NULL COMMENT '类型', PRIMARY KEY (`id`) 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 dd64bf454..1f1bb6bd8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -65,7 +65,6 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { map.put("height", 500); map.put("pageWidth", 215); map.put("pageHeight", 140); - map.put("defaultValue", 0); record.setContent(JSON.toJSONString(map)); isGenarated = true; } @@ -77,7 +76,6 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { record.setUpdateTime(date); JSONObject o = record.getContentJson(); o.put("id", String.valueOf(record.getId())); - o.put("defaultValue", 0); o.put("title", record.getName()); o.put("type", record.getType()); record.setContent(JSON.toJSONString(o)); @@ -91,7 +89,6 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { if (null != record.getContentJson()) { JSONObject o = record.getContentJson(); o.put("id", String.valueOf(record.getId())); - o.put("defaultValue", 0); o.put("title", record.getName()); o.put("type", record.getType()); record.setContent(JSON.toJSONString(o)); From d99424f1cfa8b99edf6c164199b6e1a82b5c52fa Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 19:32:42 +0800 Subject: [PATCH 04/66] fix --- .../src/main/java/com/iformall/print/PrintDataHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java index 88ff429d7..9c722be01 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java @@ -40,6 +40,7 @@ public class PrintDataHandler implements Serializable { table.setIsEdit(data.getIsEdit()); table.setName(dataJson.getString("fieldName")); table.setValue("{"+data.getName()+"}"); + table.setTabelHtml(dataJson.getString("tableHtml")); List columnsAttr = new ArrayList(); JSONArray columns = dataJson.getJSONArray("columns"); if (null != columns) { From a8bda1fa604115e307ab1f31482a00f44824a1cb Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 19:57:52 +0800 Subject: [PATCH 05/66] fix --- .../market/WxFinanceController.java | 16 +++++++-------- .../domain/po/WxFinancePrintTemplate.java | 5 +++++ .../impl/WxFinancePrintServiceImpl.java | 20 +++++++++---------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 467c3d049..726c14f08 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -312,14 +312,6 @@ public class WxFinanceController extends BaseController { return new ResultData(page); } - @ApiOperation("过账") - @PostMapping("receiveFinish") - public ResultData receiveFinish(@RequestBody WxFinanceReceive record) { - record.updateTenantInfo(getTenantInfo()); - wxFinanceService.finishReceive(record, getUser()); - return new ResultData(); - } - @ApiOperation("打印项项目需要获取的租户号") @GetMapping("templateCurrentTenant") @TenantIgnore @@ -352,4 +344,12 @@ public class WxFinanceController extends BaseController { return new ResultData(page); } + @ApiOperation("过账") + @PostMapping("receiveFinish") + public ResultData receiveFinish(@RequestBody WxFinanceReceive record) { + record.updateTenantInfo(getTenantInfo()); + wxFinanceService.finishReceive(record, getUser()); + return new ResultData(); + } + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java index a02c47f2e..2d4af1464 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java @@ -1,6 +1,7 @@ package com.iformall.domain.po; import java.util.Date; +import java.util.List; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -27,6 +28,8 @@ public class WxFinancePrintTemplate extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="name",name="name") private String name; + @TableField(exist = false) + private String title; @io.swagger.annotations.ApiModelProperty(value="createTime",name="createTime") private Date createTime; @@ -50,5 +53,7 @@ public class WxFinancePrintTemplate extends TenantEntity { } return null; } + @TableField(exist = false) + private List tempItems; } 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 1f1bb6bd8..10b3f7939 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -58,15 +58,13 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Override public void saveOrUpdate(WxFinancePrintTemplate record) { - boolean isGenarated = false; + Map map = new HashMap(); if (StringUtils.isBlank(record.getContent())) { - Map map = new HashMap(); map.put("width", 770); map.put("height", 500); map.put("pageWidth", 215); map.put("pageHeight", 140); record.setContent(JSON.toJSONString(map)); - isGenarated = true; } Date date = new Date(); if (record.getId() == null) { @@ -74,10 +72,12 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { record.setId(idWorker.nextId()); record.setCreateTime(date); record.setUpdateTime(date); + record.setName(record.getTitle()); JSONObject o = record.getContentJson(); o.put("id", String.valueOf(record.getId())); o.put("title", record.getName()); o.put("type", record.getType()); + o.put("tempItems", record.getTempItems()); record.setContent(JSON.toJSONString(o)); try { wxFinancePrintTemplateMapper.insert(record); @@ -86,13 +86,13 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } } else { - if (null != record.getContentJson()) { - JSONObject o = record.getContentJson(); - o.put("id", String.valueOf(record.getId())); - o.put("title", record.getName()); - o.put("type", record.getType()); - record.setContent(JSON.toJSONString(o)); - } + JSONObject o = record.getContentJson(); + o.put("id", String.valueOf(record.getId())); + o.put("title", record.getName()); + o.put("type", record.getType()); + o.put("tempItems", record.getTempItems()); + record.setContent(JSON.toJSONString(o)); + record.setName(record.getTitle()); record.setUpdateTime(date); wxFinancePrintTemplateMapper.updateById(record); } From b9cf4fd78b2b3b28f0f35e4675017dc9f90e8e42 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 20:24:11 +0800 Subject: [PATCH 06/66] fix --- .../market/WxFinanceController.java | 2 +- .../market/WxFinancePrintController.java | 15 +++- .../service/WxFinancePrintService.java | 4 +- .../impl/WxFinancePrintServiceImpl.java | 79 ++++++++++++------- 4 files changed, 66 insertions(+), 34 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 726c14f08..82a31160b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -320,7 +320,7 @@ public class WxFinanceController extends BaseController { } @GetMapping("finishStatus") - public ResultData receiveSetoffStatus() { + public ResultData finishStatus() { List list = new ArrayList(); for (EnumFinanceFinishStatus t : EnumFinanceFinishStatus.values()) { Map m = new HashMap(); diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index b1700386d..e8c602e6b 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -83,7 +83,18 @@ public class WxFinancePrintController extends BaseController { if (null == record.getTenantId()) { return new ResultData(Result.ERROR,"参数不对"); } - wxFinancePrintService.saveOrUpdate(record); + wxFinancePrintService.save(record); + return new ResultData(); + } + + @ApiOperation("费用区间列表") + @PostMapping("updateTemplates") + @TenantIgnore + public ResultData updateTemplates(@RequestBody WxFinancePrintTemplate record) { + if (null == record.getTenantId()) { + return new ResultData(Result.ERROR,"参数不对"); + } + wxFinancePrintService.update(record); return new ResultData(); } @@ -97,7 +108,7 @@ public class WxFinancePrintController extends BaseController { WxFinancePrintTemplate template = wxFinancePrintService.getTemplateById(record.getId()); template.setId(null); template.setName(template.getName()+"复制"); - wxFinancePrintService.saveOrUpdate(template); + wxFinancePrintService.copy(template); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index 898cbc8a0..c19766f10 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -12,7 +12,9 @@ public interface WxFinancePrintService { List printDataList(WxFinancePrintData record); List printTemplateList(WxFinancePrintTemplate record); WxFinancePrintTemplate getTemplateById(Long id); - void saveOrUpdate(WxFinancePrintTemplate record); + void save(WxFinancePrintTemplate record); + void update(WxFinancePrintTemplate record); + void copy(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); List parseTemplateData(String tenantId,Integer type,List dataIds); } 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 10b3f7939..f12390655 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -57,45 +57,64 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } @Override - public void saveOrUpdate(WxFinancePrintTemplate record) { + public void save(WxFinancePrintTemplate record) { + Date date = new Date(); + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setCreateTime(date); + record.setUpdateTime(date); + record.setName(record.getTitle()); + Map map = new HashMap(); + map.put("width", 770); + map.put("height", 500); + map.put("pageWidth", 215); + map.put("pageHeight", 140); + map.put("tempItems", record.getTempItems()); + map.put("id", String.valueOf(record.getId())); + map.put("title", record.getName()); + map.put("type", record.getType()); + record.setContent(JSON.toJSONString(map)); + try { + wxFinancePrintTemplateMapper.insert(record); + } catch (Exception e) { + logger.error("保存模板失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + } + + @Override + public void update(WxFinancePrintTemplate record) { + WxFinancePrintTemplate t = getTemplateById(record.getId()); Map map = new HashMap(); if (StringUtils.isBlank(record.getContent())) { map.put("width", 770); map.put("height", 500); map.put("pageWidth", 215); map.put("pageHeight", 140); + map.put("id", String.valueOf(t.getId())); + map.put("title", record.getName()); + map.put("type", t.getType()); + map.put("tempItems", record.getTempItems()); record.setContent(JSON.toJSONString(map)); } Date date = new Date(); - if (record.getId() == null) { - final IdWorker idWorker = IdWorker.get(); - record.setId(idWorker.nextId()); - record.setCreateTime(date); - record.setUpdateTime(date); - record.setName(record.getTitle()); - JSONObject o = record.getContentJson(); - o.put("id", String.valueOf(record.getId())); - o.put("title", record.getName()); - o.put("type", record.getType()); - o.put("tempItems", record.getTempItems()); - record.setContent(JSON.toJSONString(o)); - try { - wxFinancePrintTemplateMapper.insert(record); - } catch (Exception e) { - logger.error("保存模板失败,e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); - } - } else { - JSONObject o = record.getContentJson(); - o.put("id", String.valueOf(record.getId())); - o.put("title", record.getName()); - o.put("type", record.getType()); - o.put("tempItems", record.getTempItems()); - record.setContent(JSON.toJSONString(o)); - record.setName(record.getTitle()); - record.setUpdateTime(date); - wxFinancePrintTemplateMapper.updateById(record); - } + JSONObject o = record.getContentJson(); + o.put("title", record.getName()); + o.put("tempItems", record.getTempItems()); + record.setContent(JSON.toJSONString(o)); + record.setName(record.getTitle()); + record.setUpdateTime(date); + wxFinancePrintTemplateMapper.updateById(record); + } + + @Override + public void copy(WxFinancePrintTemplate record) { + WxFinancePrintTemplate t = getTemplateById(record.getId()); + final IdWorker idWorker = IdWorker.get(); + t.setId(idWorker.nextId()); + t.setCreateTime(new Date()); + t.setUpdateTime(new Date()); + wxFinancePrintTemplateMapper.insert(record); } @Override From 0f41a1646b840a0afaaa0bd77ea3d203e4e27be2 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 20:37:14 +0800 Subject: [PATCH 07/66] fix --- .../iformall/controller/market/WxFinancePrintController.java | 5 +---- .../com/iformall/service/impl/WxFinancePrintServiceImpl.java | 3 ++- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index e8c602e6b..e5f90f02f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -105,10 +105,7 @@ public class WxFinancePrintController extends BaseController { if (null == record.getId()) { return new ResultData(Result.ERROR,"参数不对"); } - WxFinancePrintTemplate template = wxFinancePrintService.getTemplateById(record.getId()); - template.setId(null); - template.setName(template.getName()+"复制"); - wxFinancePrintService.copy(template); + wxFinancePrintService.copy(record); return new ResultData(); } 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 f12390655..abb341472 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -86,7 +86,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { public void update(WxFinancePrintTemplate record) { WxFinancePrintTemplate t = getTemplateById(record.getId()); Map map = new HashMap(); - if (StringUtils.isBlank(record.getContent())) { + if (null == record.getContentJson()) { map.put("width", 770); map.put("height", 500); map.put("pageWidth", 215); @@ -114,6 +114,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { t.setId(idWorker.nextId()); t.setCreateTime(new Date()); t.setUpdateTime(new Date()); + t.setName(t.getName()+"复制"); wxFinancePrintTemplateMapper.insert(record); } From b77f8b509b92539c1664d5bdc013dda5b09fb2ab Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 21:03:16 +0800 Subject: [PATCH 08/66] fix --- .../com/iformall/domain/po/WxFinancePrintTemplate.java | 2 ++ .../service/impl/WxFinancePrintServiceImpl.java | 10 ++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java index 2d4af1464..a5ac59413 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintTemplate.java @@ -54,6 +54,8 @@ public class WxFinancePrintTemplate extends TenantEntity { return null; } @TableField(exist = false) + private JSONObject contentJsonUpdate; + @TableField(exist = false) private List tempItems; } 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 abb341472..0dae107f0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -86,21 +86,19 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { public void update(WxFinancePrintTemplate record) { WxFinancePrintTemplate t = getTemplateById(record.getId()); Map map = new HashMap(); - if (null == record.getContentJson()) { + if (null == record.getContentJsonUpdate()) { map.put("width", 770); map.put("height", 500); map.put("pageWidth", 215); map.put("pageHeight", 140); map.put("id", String.valueOf(t.getId())); - map.put("title", record.getName()); + map.put("title", record.getTitle()); map.put("type", t.getType()); - map.put("tempItems", record.getTempItems()); record.setContent(JSON.toJSONString(map)); } Date date = new Date(); - JSONObject o = record.getContentJson(); - o.put("title", record.getName()); - o.put("tempItems", record.getTempItems()); + JSONObject o = record.getContentJsonUpdate(); + o.put("title", record.getTitle()); record.setContent(JSON.toJSONString(o)); record.setName(record.getTitle()); record.setUpdateTime(date); From 6471d435c7ac931a162f1052b6ec42168983bca2 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 21:15:27 +0800 Subject: [PATCH 09/66] fix --- .../market/WxFinanceController.java | 25 +++++++++++++++++++ .../enums/EnumFinanceReceiveStatus.java | 2 +- .../impl/WxFinancePrintServiceImpl.java | 4 ++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 82a31160b..ed675efc0 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -19,6 +19,7 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.FinanceBillSetoffSum; import com.iformall.domain.vo.WxFinanceReceiveVo; import com.iformall.enums.EnumBillAllType; +import com.iformall.enums.EnumFinanceCashierType; import com.iformall.enums.EnumFinanceFinishStatus; import com.iformall.enums.EnumFinanceReceiveStatus; import com.iformall.enums.EnumFinanceReceiveType; @@ -258,6 +259,18 @@ public class WxFinanceController extends BaseController { return new ResultData(list); } + @GetMapping("cashierTypes") + public ResultData cashierTypes() { + List list = new ArrayList(); + for (EnumFinanceCashierType t : EnumFinanceCashierType.values()) { + Map m = new HashMap(); + m.put("id", t.getCode()); + m.put("name", t.getMessage()); + list.add(m); + } + return new ResultData(list); + } + @ApiOperation("收款记录列表") @GetMapping("receiveList") @ApiImplicitParams({ @@ -331,6 +344,18 @@ public class WxFinanceController extends BaseController { return new ResultData(list); } + @GetMapping("finishReceiveStatus") + public ResultData finishReceiveStatus() { + List list = new ArrayList(); + for (EnumFinanceReceiveStatus t : EnumFinanceReceiveStatus.getFinishStatus()) { + Map m = new HashMap(); + m.put("id", t.getCode()); + m.put("name", t.getMessage()); + list.add(m); + } + return new ResultData(list); + } + @ApiOperation("过账列表") @GetMapping("finishList") @ApiImplicitParams({ diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java index 4a9cd627e..a23b50292 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java @@ -39,7 +39,7 @@ public enum EnumFinanceReceiveStatus { return message; } - public static List getSetoff() { + public static List getFinishStatus() { List list = new ArrayList(); list.add(NORMAL); list.add(FINISH); 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 0dae107f0..a7a084ccd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -16,6 +16,7 @@ import com.iformall.domain.po.WxFinancePrintTemplate; import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumFinancePrintDataType; +import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxFinancePrintDataMapper; import com.iformall.mapper.WxFinancePrintTemplateMapper; @@ -113,7 +114,8 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { t.setCreateTime(new Date()); t.setUpdateTime(new Date()); t.setName(t.getName()+"复制"); - wxFinancePrintTemplateMapper.insert(record); + t.setIsDel(EnumYesOrNo.NO.getCode()); + wxFinancePrintTemplateMapper.insert(t); } @Override From ad859ed5edd62f1db38c1652daa858a79487f738 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 5 Aug 2024 21:36:36 +0800 Subject: [PATCH 10/66] fix --- .../controller/market/WxFinanceController.java | 16 ++++++++++++++++ .../com/iformall/domain/po/WxFinanceReceive.java | 2 ++ .../service/impl/WxFinancePrintServiceImpl.java | 3 +++ 3 files changed, 21 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index ed675efc0..8758db8ae 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -369,6 +369,22 @@ public class WxFinanceController extends BaseController { return new ResultData(page); } + @ApiOperation("过账列表") + @GetMapping("finishReceiveList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + }) + public ResultData finishList(@ModelAttribute WxFinanceReceive record, Integer pageNum, Integer pageSize) { + if (null == record.getFinishId()) { + return new ResultData(Result.ERROR,"finishId参数不能为空"); + } + record.updateTenantInfo(getTenantInfo()); + record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); + PageInfo page = wxFinanceService.receiveVoListAsPage(record, pageNum, pageSize); + return new ResultData(page); + } + @ApiOperation("过账") @PostMapping("receiveFinish") public ResultData receiveFinish(@RequestBody WxFinanceReceive record) { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java index 0ba950744..e6387bf71 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java @@ -158,5 +158,7 @@ public class WxFinanceReceive extends TenantEntity { private String shopIds; @TableField(exist = false) private Integer finishStatus; + @TableField(exist = false) + private Long finishId; } 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 a7a084ccd..6e39a50f0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -115,6 +115,9 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { t.setUpdateTime(new Date()); t.setName(t.getName()+"复制"); t.setIsDel(EnumYesOrNo.NO.getCode()); + if (StringUtils.isNotBlank(t.getContent())) { + t.setContent(t.getContent().replaceAll("uuid", "olduuid")); + } wxFinancePrintTemplateMapper.insert(t); } From 8a1b83fd3606bcf57d72b15a26a1a8e254bac64a Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 00:36:50 +0800 Subject: [PATCH 11/66] fix --- .../WxRentContractDepositTypeController.java | 16 +++ .../market/WxFinanceController.java | 79 ++++++++++++- .../db/migration/V202408000000001.sql | 102 ++++++++++++++++ .../iformall/common/SysConfigConstant.java | 1 + .../iformall/domain/po/WxFinanceFinish.java | 6 + .../iformall/domain/po/WxFinanceReceive.java | 17 +-- .../domain/po/WxFinanceReceivePayway.java | 2 + .../domain/vo/WxFinanceReceiveSumVo.java | 18 +++ .../com/iformall/enums/EnumBillAllType.java | 2 +- .../enums/EnumFinanceReceiveStatus.java | 5 +- .../mapper/WxFinanceReceiveMapper.java | 7 ++ .../iformall/service/WxFinanceService.java | 8 +- .../service/impl/WxFinanceServiceImpl.java | 111 +++++++++++++++++- .../mapper/WxFinanceFinishMapper.xml | 1 + .../mapper/WxFinanceReceiveMapper.xml | 42 +++++-- 15 files changed, 380 insertions(+), 37 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/WxFinanceReceiveSumVo.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractDepositTypeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractDepositTypeController.java index f805ea5e5..846049dcf 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractDepositTypeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractDepositTypeController.java @@ -6,6 +6,7 @@ import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.base.BaseEntity; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumFeesStandardsCalcuteUnit; +import com.iformall.enums.EnumFeesStandardsTimeUnit; import com.iformall.enums.EnumYesOrNo; import com.iformall.service.*; @@ -62,6 +63,21 @@ public class WxRentContractDepositTypeController extends WxContractBaseControlle } return new ResultData(); } + + @ApiOperation("查询物业合同时间单位列表") + @GetMapping("typeTimeUnitList") + public ResultData typeTimeUnitList() { + List enumList = EnumBillAllType.getTimeUnites(EnumBillAllType.RENT_DEPOSIT.getCode()); + if (null != enumList) { + Map retMap = new HashMap(); + for (int i = 0 ; i < enumList.size(); i++) { + EnumFeesStandardsTimeUnit cu = enumList.get(i); + retMap.put(cu.getCode(), cu.getMessage()); + } + return new ResultData(retMap); + } + return new ResultData(); + } } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 8758db8ae..094b31ada 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -5,8 +5,10 @@ import com.github.pagehelper.PageInfo; import com.iformall.annotation.TenantIgnore; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.common.SysConfigConstant; import com.iformall.controller.base.BaseController; import com.iformall.domain.dto.FinanceSetOffDTO; +import com.iformall.domain.po.SysConfig; import com.iformall.domain.po.WxAllBill; import com.iformall.domain.po.WxBillPayWay; import com.iformall.domain.po.WxEnergyFees; @@ -17,6 +19,7 @@ import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.WxFinanceReceiveSetoff; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.FinanceBillSetoffSum; +import com.iformall.domain.vo.WxFinanceReceiveSumVo; import com.iformall.domain.vo.WxFinanceReceiveVo; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumFinanceCashierType; @@ -24,6 +27,7 @@ import com.iformall.enums.EnumFinanceFinishStatus; import com.iformall.enums.EnumFinanceReceiveStatus; import com.iformall.enums.EnumFinanceReceiveType; import com.iformall.enums.EnumYesOrNo; +import com.iformall.service.SysConfigService; import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinanceService; import io.swagger.annotations.Api; @@ -57,6 +61,8 @@ public class WxFinanceController extends BaseController { private WxFinanceService wxFinanceService; @Autowired WxEnergyService wxEnergyService; + @Autowired + private SysConfigService sysConfigService; /** * 账单类型(非能源) @@ -302,7 +308,7 @@ public class WxFinanceController extends BaseController { @PostMapping("receiveRedSet") public ResultData receiveRedSet(@RequestBody WxFinanceReceive record) { WxFinanceReceive receive = wxFinanceService.getReceiveById(this.getTenantInfo(), record.getId()); - if (receive.getStatus().intValue() != EnumFinanceReceiveStatus.FINISH.getCode().intValue()) { + if (receive.getIsFinish().intValue() == EnumYesOrNo.NO.getCode().intValue()) { return new ResultData(Result.ERROR,"该状态不允许操作"); } if (StringUtils.isNotBlank(record.getRemark())) { @@ -356,7 +362,7 @@ public class WxFinanceController extends BaseController { return new ResultData(list); } - @ApiOperation("过账列表") + @ApiOperation("结账列表") @GetMapping("finishList") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @@ -369,7 +375,15 @@ public class WxFinanceController extends BaseController { return new ResultData(page); } - @ApiOperation("过账列表") + @ApiOperation("结账") + @PostMapping("saveFinish") + public ResultData saveFinish(@RequestBody WxFinanceFinish record) { + record.updateTenantInfo(getTenantInfo()); + wxFinanceService.saveOrUpdateFinish(record, getUser()); + return new ResultData(); + } + + @ApiOperation("结账列表") @GetMapping("finishReceiveList") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @@ -380,17 +394,70 @@ public class WxFinanceController extends BaseController { return new ResultData(Result.ERROR,"finishId参数不能为空"); } record.updateTenantInfo(getTenantInfo()); - record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); + WxFinanceFinish finish = wxFinanceService.getFinishById(record, record.getFinishId()); + record.setCreateTimeBegin(finish.getStartDate()); + record.setCreateTimeEnd(finish.getEndDate()); + record.setFinishStatus(EnumYesOrNo.YES.getCode()); + record.setSortColumns("status asc,create_time asc"); PageInfo page = wxFinanceService.receiveVoListAsPage(record, pageNum, pageSize); return new ResultData(page); } - @ApiOperation("过账") + @ApiOperation("结账列表") + @GetMapping("finishReceiveSum") + public ResultData finishReceiveSum(@ModelAttribute WxFinanceReceive record, Integer pageNum, Integer pageSize) { + if (null == record.getFinishId()) { + return new ResultData(Result.ERROR,"finishId参数不能为空"); + } + record.updateTenantInfo(getTenantInfo()); + WxFinanceFinish finish = wxFinanceService.getFinishById(record, record.getFinishId()); + record.setCreateTimeBegin(finish.getStartDate()); + record.setCreateTimeEnd(finish.getEndDate()); + record.setFinishStatus(EnumYesOrNo.YES.getCode()); + WxFinanceReceiveSumVo page = wxFinanceService.getReceiveSum(record); + return new ResultData(page); + } + + @ApiOperation("结账") @PostMapping("receiveFinish") - public ResultData receiveFinish(@RequestBody WxFinanceReceive record) { + public ResultData receiveFinish(@RequestBody WxFinanceFinish record) { + if (null == record.getId()) { + return new ResultData(Result.ERROR,"finishId参数不能为空"); + } record.updateTenantInfo(getTenantInfo()); wxFinanceService.finishReceive(record, getUser()); return new ResultData(); } + @ApiOperation("批次结账") + @PostMapping("batchReceiveFinish") + public ResultData batchReceiveFinish(@RequestBody WxFinanceFinish record) { + if (null == record.getId() || null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { + return new ResultData(Result.ERROR,"请选择"); + } + record.updateTenantInfo(getTenantInfo()); + WxFinanceFinish finish = wxFinanceService.getFinishById(record, record.getId()); + WxFinanceReceive rq = new WxFinanceReceive(); + rq.setCreateTimeBegin(finish.getStartDate()); + rq.setCreateTimeEnd(finish.getEndDate()); + rq.setFinishStatus(EnumYesOrNo.YES.getCode()); + rq.setIsFinish(EnumYesOrNo.NO.getCode()); + rq.updateTenantInfo(record); + Integer count = wxFinanceService.getReceiveUnFinisedCount(rq); + boolean isAll = false; + if (null != count && count > record.getReceiveIds().size()) { + }else { + isAll = true; + } + wxFinanceService.batchFinishReceive(record, getUser(),isAll); + return new ResultData(); + } + + @ApiOperation("截止时间") + @GetMapping("getReceiveEndTime") + public ResultData getReceiveEndTime() { + SysConfig config = sysConfigService.getByKey(SysConfigConstant.finance_receive_end_date, getTenantInfo()); + return new ResultData(config.getConfigItemValue()); + } + } diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql index 064a7c12c..6f34baa2f 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql @@ -798,3 +798,105 @@ CREATE TABLE `wx_finance_print_template` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='租赁合同'; +alter table wx_finance_receive_0 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_1 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_2 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_3 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_4 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_5 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_6 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_7 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_8 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_9 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_10 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_11 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_12 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_13 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_14 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_15 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_16 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_17 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_18 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_19 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_20 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_21 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_22 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_23 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_24 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_25 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_26 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_27 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_28 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_29 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_30 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_31 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_32 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_33 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_34 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_35 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_36 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_37 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_38 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_39 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_40 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_41 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_42 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_43 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_44 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_45 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_46 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_47 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_48 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_49 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_50 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_51 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_52 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_53 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_54 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_55 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_56 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_57 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_58 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_59 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_60 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_61 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_62 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_63 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_64 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_65 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_66 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_67 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_68 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_69 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_70 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_71 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_72 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_73 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_74 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_75 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_76 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_77 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_78 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_79 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_80 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_81 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_82 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_83 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_84 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_85 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_86 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_87 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_88 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_89 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_90 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_91 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_92 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_93 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_94 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_95 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_96 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_97 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_98 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; +alter table wx_finance_receive_99 add column is_finish int(1) not null default 0 comment '是否已经结账完成'; + + diff --git a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java index aaf5c21ac..8ec72aabd 100644 --- a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java +++ b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java @@ -12,4 +12,5 @@ public class SysConfigConstant { public static final String merchant_Login_CheckPhone = "merchantLoginCheckPhone"; public static final String bill_before_days = "billBeforeDays"; public static final String bill_near_days = "billNearDays"; + public static final String finance_receive_end_date = "financeReceiveEndDate"; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java index 8fe433928..3145700c8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java @@ -72,4 +72,10 @@ public class WxFinanceFinish extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "name", name = "name") private String name; + + @TableField(exist = false) + private List receiveIds; + + @TableField(exist = false) + private Date receiveEndTime; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java index e6387bf71..56c4cc4f9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java @@ -69,18 +69,6 @@ public class WxFinanceReceive extends TenantEntity { return new BigDecimal(receiveMoney).subtract(new BigDecimal(useMoney)).toPlainString(); } - @TableField(exist = false) - private String totalMoney; - public String getTotalMoney() { - if (StringUtils.isBlank(setOffMoney)) { - setOffMoney = "0"; - } - if (StringUtils.isBlank(receiveMoney)) { - receiveMoney = "0"; - } - return new BigDecimal(receiveMoney).add(new BigDecimal(setOffMoney)).toPlainString(); - } - @io.swagger.annotations.ApiModelProperty(value = "状态EnumFinanceReceiveStatus", name = "status") private Integer status; @TableField(exist = false) @@ -92,6 +80,9 @@ public class WxFinanceReceive extends TenantEntity { return null; } + @io.swagger.annotations.ApiModelProperty(value = "是否已结账完成", name = "isFinish") + private Integer isFinish; + @io.swagger.annotations.ApiModelProperty(value = "类型EnumFinanceCashierType", name = "type") private Integer type; @TableField(exist = false) @@ -106,7 +97,7 @@ public class WxFinanceReceive extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "类型EnumFinanceReceiveType", name = "type") private Integer receiveType; @TableField(exist = false) - private String receivetypeName; + private String receiveTypeName; public String getReceiveTypeName() { if (null != receiveType) { return EnumFinanceReceiveType.getEnum(receiveType).getMessage(); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceivePayway.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceivePayway.java index 9146273fd..b6cb74799 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceivePayway.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceivePayway.java @@ -33,6 +33,8 @@ public class WxFinanceReceivePayway extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="支付方式",name="payWay") private Long payWay; + @TableField(exist = false) + private String payWayName; @io.swagger.annotations.ApiModelProperty(value="实收金额",name="receive") private String receive; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxFinanceReceiveSumVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxFinanceReceiveSumVo.java new file mode 100644 index 000000000..f52602e1c --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxFinanceReceiveSumVo.java @@ -0,0 +1,18 @@ +package com.iformall.domain.vo; + +import lombok.Data; +import java.io.Serializable; +import java.util.List; +import com.iformall.domain.po.WxFinanceReceivePayway; + +@Data +public class WxFinanceReceiveSumVo implements Serializable { + + private static final long serialVersionUID = 1L; + + String totalReceive; + String totalSetoff; + String totalPay; + + List payWays; +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java index 83b282bef..1defecde8 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java @@ -8,7 +8,7 @@ public enum EnumBillAllType { RENT(1,"租金",1L,false), RENT_BUSSINESS_MANAGE(11,"商业管理费",2L,false), RENT_OPERATION_MANAGE(12,"运营管理费",3L,false), - RENT_DEPOSIT(13,"租赁押金",null,true), + RENT_DEPOSIT(13,"租赁押金",null,false), PROPERTY(2,"物业",5L,false), PROPERTY_DEPOSIT(21,"物业押金",6L,true), DAILY(3, "能耗(水电空调)费",null,false), diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java index a23b50292..7cc0d1bee 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFinanceReceiveStatus.java @@ -10,8 +10,7 @@ public enum EnumFinanceReceiveStatus { NORMAL(1,"正常"), INVALID(2,"作废"), - RED_SETOFF(3, "红冲"), - FINISH(4,"已审核过账") + RED_SETOFF(3, "红冲") ; public static EnumFinanceReceiveStatus getEnum(Integer code) { @@ -42,7 +41,7 @@ public enum EnumFinanceReceiveStatus { public static List getFinishStatus() { List list = new ArrayList(); list.add(NORMAL); - list.add(FINISH); + list.add(RED_SETOFF); return list; } } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java index a4945f067..5bd37a61d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java @@ -2,6 +2,9 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.domain.po.WxFinanceReceivePayway; +import com.iformall.domain.vo.WxFinanceReceiveSumVo; + import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,5 +21,9 @@ public interface WxFinanceReceiveMapper extends CommonMapper getMerchantAdvanceGroupSumList(WxFinanceReceive record); void finish(WxFinanceReceive wxBillRent); + + WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); + + List getReceivePayWaySum(WxFinanceReceive record); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index 60c5c2c40..b579af684 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -12,6 +12,7 @@ import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.WxFinanceReceiveSetoff; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.FinanceBillSetoffSum; +import com.iformall.domain.vo.WxFinanceReceiveSumVo; import com.iformall.domain.vo.WxFinanceReceiveVo; /** */ @@ -32,7 +33,6 @@ public interface WxFinanceService { WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); void invalidReceive(WxFinanceReceive record,MallUserInfo user,String remark); void redSetoffReceive(WxFinanceReceive record,MallUserInfo user); - void finishReceive(WxFinanceReceive record,MallUserInfo user); //预收款 List calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); FinanceBillSetoffSum getBillSetoffSum(WxFinanceReceive record); @@ -42,4 +42,10 @@ public interface WxFinanceService { //结账 PageInfo finishListAsPage(WxFinanceFinish record, Integer pageIndex, Integer pageSize); + WxFinanceFinish getFinishById(TenantEntity tenantEntity,Long id); + void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user); + WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); + void finishReceive(WxFinanceFinish record,MallUserInfo user); + Integer getReceiveUnFinisedCount(WxFinanceReceive record); + void batchFinishReceive(WxFinanceFinish record,MallUserInfo user,boolean isAll); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 46fdc3002..37b90440a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -28,10 +28,12 @@ import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.FinanceBillSetoffSum; import com.iformall.domain.vo.FinanceSetOffDetailVo; +import com.iformall.domain.vo.WxFinanceReceiveSumVo; import com.iformall.domain.vo.WxFinanceReceiveVo; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillStatus; import com.iformall.enums.EnumFinanceCashierType; +import com.iformall.enums.EnumFinanceFinishStatus; import com.iformall.enums.EnumFinanceReceiveStatus; import com.iformall.enums.EnumFinanceReceiveType; import com.iformall.enums.EnumYesOrNo; @@ -969,11 +971,6 @@ public class WxFinanceServiceImpl implements WxFinanceService { wxFinanceReceiveMapper.insert(record); } - @Override - public void finishReceive(WxFinanceReceive record, MallUserInfo user) { - wxFinanceReceiveMapper.finish(record); - } - @Override public PageInfo receiveSetoffListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize) { @@ -1004,5 +1001,109 @@ public class WxFinanceServiceImpl implements WxFinanceService { return page; } + @Override + public WxFinanceFinish getFinishById(TenantEntity tenantEntity, Long id) { + return wxFinanceFinishMapper.selectById(id, tenantEntity.getTenantId()); + } + + @Override + public void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user) { + Date date = new Date(); + if (record.getId() == null) { + final IdWorker idWorker = IdWorker.get(); + record.setId(idWorker.nextId()); + record.setCreateTime(date); + record.setCreateBy(user.getId()); + record.setCreateByName(user.getName()); + record.setUpdateTime(date); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + try { + wxFinanceFinishMapper.insert(record); + } catch (Exception e) { + logger.error("保存失败,e:" + e.getMessage()); + throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); + } + } else { + record.setUpdateTime(date); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + wxFinanceFinishMapper.updateById(record); + } + } + + @Override + public WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record) { + initQueryParam(record); + WxFinanceReceiveSumVo vo = wxFinanceReceiveMapper.getReceiveSum(record); + if (null != vo ) { + List pays = wxFinanceReceiveMapper.getReceivePayWaySum(record); + if (null != pays) { + WxBillPayWay pq = new WxBillPayWay(); + pq.updateTenantInfo(record); + Map paywayMap = this.getPayWayMap(pq); + for (int i = 0 ; i < pays.size() ; i ++) { + WxFinanceReceivePayway rpw = pays.get(i); + if (null != paywayMap && null != rpw.getPayWay()) { + WxBillPayWay pw = paywayMap.get(rpw.getPayWay()); + if (null != pw) { + rpw.setPayWayName(pw.getName()); + } + } + } + vo.setPayWays(pays); + } + } + return vo; + } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public void finishReceive(WxFinanceFinish record, MallUserInfo user) { + WxFinanceFinish finish = this.getFinishById(record, record.getId()); + //更新批次, + WxFinanceFinish ff = new WxFinanceFinish(); + ff.updateTenantInfo(record); + ff.setId(finish.getId()); + ff.setStatus(EnumFinanceFinishStatus.COMPLETE.getCode()); + ff.setUpdateTime(new Date()); + ff.setUpdateBy(user.getId()); + ff.setUpdateByName(user.getName()); + wxFinanceFinishMapper.updateById(ff); + //更新收付款记录 + WxFinanceReceive fr = new WxFinanceReceive(); + fr.updateTenantInfo(record); + fr.setCreateTimeBegin(finish.getStartDate()); + fr.setCreateTimeEnd(finish.getEndDate()); + fr.setFinishStatus(EnumYesOrNo.YES.getCode()); + fr.setIsFinish(EnumYesOrNo.NO.getCode()); + wxFinanceReceiveMapper.finish(fr); + } + + @Override + public Integer getReceiveUnFinisedCount(WxFinanceReceive record) { + return null; + } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public void batchFinishReceive(WxFinanceFinish record, MallUserInfo user,boolean isAll) { + //更新收付款记录 + WxFinanceReceive fr = new WxFinanceReceive(); + fr.updateTenantInfo(record); + fr.setIds(record.getReceiveIds()); + wxFinanceReceiveMapper.finish(fr); + //如果主 + if (isAll) { + WxFinanceFinish ff = new WxFinanceFinish(); + ff.updateTenantInfo(record); + ff.setId(record.getId()); + ff.setStatus(EnumFinanceFinishStatus.COMPLETE.getCode()); + ff.setUpdateTime(new Date()); + ff.setUpdateBy(user.getId()); + ff.setUpdateByName(user.getName()); + wxFinanceFinishMapper.updateById(ff); + } + } } diff --git a/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml index df1510595..dc7511681 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml @@ -58,5 +58,6 @@ from wx_finance_finish where id = #{id} and `tenant_id` = #{tenantId} + diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml index c21ab8415..f98536cda 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml @@ -24,12 +24,13 @@ + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`receive_money`,`pay_money`,`set_off_money`,`use_money`,`status`,`type`, `receive_type`,`money_detail`,`create_by`,`create_by_name`,`update_by`,`update_by_name`,`merchant_id`,`rent_shop_type`,`remark`, - `fees_id`,`is_print` + `fees_id`,`is_print`,`is_finish` @@ -51,7 +52,8 @@ and `fees_id` = #{feesId} and `rent_shop_type` = #{rentShopType} and `is_print` = #{isPrint} - and `status` in (1,4) + and `is_finish` = #{isFinish} + and `status` in (1,3) and merchant_id in @@ -98,12 +100,36 @@ group by fees_id - - update wx_finance_receive set status = 4 where status = 1 - and id in - - #{idItem} - + + + + + + + + + + + + + + + update wx_finance_receive set is_finish = 1 + From 4a886f9d8f9cfe03651246835ef92494dc06e661 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 08:45:35 +0800 Subject: [PATCH 12/66] fix --- .../src/main/resources/mapper/WxFinanceReceiveMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml index f98536cda..fa051b108 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml @@ -106,7 +106,7 @@ - select sum(CAST(ifnull(receive_money,'0') AS DECIMAL(20,2))) total_receive , sum(CAST(ifnull(set_off_money,'0') AS DECIMAL(20,2))) total_setoff, From d46137255db0242e11c812fb228d1f72b87dcd03 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 09:22:09 +0800 Subject: [PATCH 13/66] fix --- .../service/impl/WxAllBillServiceImpl.java | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) 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 e3046f5a4..33a6a3b0c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -13,6 +13,7 @@ import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxAllBill; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillPayWay; +import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxMerchantBUser; import com.iformall.domain.po.WxPropertyContract; @@ -32,10 +33,12 @@ import com.iformall.mapper.WxRentContractMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxAllBillService; import com.iformall.service.WxBillActionService; +import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinanceService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxMerchantTradeDailyService; import com.iformall.service.WxPayAccountBillService; +import com.iformall.service.WxShopService; import com.iformall.service.helper.WxBillAllHelper; import com.iformall.utils.Constant; import com.iformall.utils.DateUtils; @@ -93,6 +96,9 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill @Lazy @Autowired WxMerchantService wxMerchantService; + @Lazy + @Autowired + WxShopService wxShopService; @Lazy @Autowired @@ -102,6 +108,10 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill @Autowired WxFinanceService wxFinanceService; + @Lazy + @Autowired + WxEnergyService wxEnergyService; + @Autowired WxRentContractMapper wxRentContractMapper; @@ -146,7 +156,48 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill @Override public PageInfo listAsPage(WxAllBill record, Integer pageIndex, Integer pageSize) { updateQueryParam(record); - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAllBillMapper.findList(record)); + PageInfo billRentList = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAllBillMapper.findList(record)); + if (null == billRentList) { + return null; + } + Map rentContractMap = new HashMap(); + if (null != billRentList.getList()) { + + List merchantIds = new ArrayList(); + for (int i = 0 ; i < billRentList.getList().size() ; i ++) { + WxAllBill ab = billRentList.getList().get(i); + merchantIds.add(ab.getMerchantId()); + } + + Map shopNumberMap = wxShopService.getMerchantShopNumberMap(record, merchantIds, null); + WxMerchant mq = new WxMerchant(); + mq.updateTenantInfo(record); + mq.setIds(merchantIds); + Map merchantMap = wxMerchantService.findMerchantMap(mq); + + WxEnergyFees fq = new WxEnergyFees(); + fq.updateTenantInfo(record); + Map feesMap = wxEnergyService.getFeesMap(fq); + for (int i = 0 ; i < billRentList.getList().size() ; i ++) { + WxAllBill e = billRentList.getList().get(i); + if (null != shopNumberMap) { + e.setShopNumber(shopNumberMap.get(e.getMerchantId())); + } + if (null != merchantMap) { + WxMerchant m = merchantMap.get(e.getMerchantId()); + if (null != m) { + e.setMerchantName(m.getName()); + } + } + if (null != feesMap) { + WxEnergyFees f = feesMap.get(e.getEnergyFeesId()); + if (null != f) { + e.setEnergyFeesName(f.getName()); + } + } + } + } + return billRentList; } @Override From a2ea9abf44315fb5843bf030944a0a03b1cade41 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 09:56:19 +0800 Subject: [PATCH 14/66] fix --- .../java/com/iformall/domain/po/WxAllBill.java | 9 +++++++++ .../service/impl/WxAllBillServiceImpl.java | 17 ++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) 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 403e2cb34..648a920b3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -10,6 +10,7 @@ import com.iformall.domain.vo.FinanceSetOffDetailVo; import com.iformall.domain.vo.WxBillFeesStandardsListVo; import com.iformall.enums.EnumBillAction; import com.iformall.enums.EnumBillAllType; +import com.iformall.enums.EnumBillStatus; import lombok.Data; import lombok.EqualsAndHashCode; @@ -135,6 +136,14 @@ public class WxAllBill extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "账单状态EnumBillStatus", name = "status") public Integer status; @TableField(exist = false) + private String statusName; + public String getStatusName() { + if (null != status) { + return EnumBillStatus.getEnum(status).getMessage(); + } + return null; + } + @TableField(exist = false) public List statusList; @io.swagger.annotations.ApiModelProperty(value = "费用科目", name = "energyFeesId") 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 33a6a3b0c..1a747919d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -156,16 +156,15 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill @Override public PageInfo listAsPage(WxAllBill record, Integer pageIndex, Integer pageSize) { updateQueryParam(record); - PageInfo billRentList = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAllBillMapper.findList(record)); - if (null == billRentList) { + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxAllBillMapper.findList(record)); + if (null == page) { return null; } - Map rentContractMap = new HashMap(); - if (null != billRentList.getList()) { + if (null != page.getList() && page.getList().size() > 0 ) { List merchantIds = new ArrayList(); - for (int i = 0 ; i < billRentList.getList().size() ; i ++) { - WxAllBill ab = billRentList.getList().get(i); + for (int i = 0 ; i < page.getList().size() ; i ++) { + WxAllBill ab = page.getList().get(i); merchantIds.add(ab.getMerchantId()); } @@ -178,8 +177,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill WxEnergyFees fq = new WxEnergyFees(); fq.updateTenantInfo(record); Map feesMap = wxEnergyService.getFeesMap(fq); - for (int i = 0 ; i < billRentList.getList().size() ; i ++) { - WxAllBill e = billRentList.getList().get(i); + for (int i = 0 ; i < page.getList().size() ; i ++) { + WxAllBill e = page.getList().get(i); if (null != shopNumberMap) { e.setShopNumber(shopNumberMap.get(e.getMerchantId())); } @@ -197,7 +196,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill } } } - return billRentList; + return page; } @Override From 599411d8298d7739389f57e4ebe74f6bdab1a067 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 10:55:56 +0800 Subject: [PATCH 15/66] fix --- .../java/com/iformall/service/helper/WxRentContractHelper.java | 2 ++ .../java/com/iformall/service/impl/WxFinanceServiceImpl.java | 1 + 2 files changed, 3 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index d84b7353f..c08079436 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -483,10 +483,12 @@ public class WxRentContractHelper { //不是一个月的。但是按整月算的 int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01"); for (int i = 0 ; i < months; i++) { + //当前时间到当前月底 Date currentMonthEnd = DateUtils.getLastDayForMonth(start); NeedPayDTO np = getMonthPay(start, currentMonthEnd, price, decimalSize, validDays, dayPriceCalcute, monthAvageDays); start = DateUtils.getDaySet(currentMonthEnd,Calendar.DATE,1); total = total.add(np.getMoney()); + //TODO 这个月底到下个月 } return total.toPlainString(); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 37b90440a..446a4286c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -1018,6 +1018,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { record.setUpdateTime(date); record.setUpdateBy(user.getId()); record.setUpdateByName(user.getName()); + record.setStatus(EnumFinanceFinishStatus.READY.getCode()); try { wxFinanceFinishMapper.insert(record); } catch (Exception e) { From db3f91ece81ce5c24166e24fedae73b011efb9a3 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 14:44:26 +0800 Subject: [PATCH 16/66] fix --- .../market/WxFinanceController.java | 2 +- .../enums/EnumContractReceivePeriodUnit.java | 1 + .../service/helper/WxRentContractHelper.java | 84 +++++++++++++------ .../impl/WxRentContractServiceImpl.java | 19 ++--- 4 files changed, 68 insertions(+), 38 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 094b31ada..29ea3fb8a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -457,7 +457,7 @@ public class WxFinanceController extends BaseController { @GetMapping("getReceiveEndTime") public ResultData getReceiveEndTime() { SysConfig config = sysConfigService.getByKey(SysConfigConstant.finance_receive_end_date, getTenantInfo()); - return new ResultData(config.getConfigItemValue()); + return new ResultData(config); } } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java b/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java index e62fa8497..03535ebb2 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumContractReceivePeriodUnit.java @@ -63,6 +63,7 @@ public enum EnumContractReceivePeriodUnit { instance.add(Calendar.MONTH, period); //instance.add(Calendar.DAY_OF_MONTH, -1); instance.add(Calendar.SECOND, -1); + return instance.getTime(); } //几个季度之后 }else if (unit == QUARTER.getCode().intValue()) { diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index c08079436..ff05b076b 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -468,29 +468,65 @@ public class WxRentContractHelper { if (null == validDays || validDays.size() <= 0 ) { return "0"; } - NeedPayDTO np = getMonthPay(start, end, price, decimalSize, validDays, dayPriceCalcute, monthAvageDays); + NeedPayDTO np = getCurrentMonthPay(start, end, price, decimalSize, validDays, dayPriceCalcute, monthAvageDays); return np.getMoney().toPlainString(); } - Calendar instance = Calendar.getInstance(); - instance.setTime(start); - instance = EnumContractReceivePeriodUnit.getAfterCalendarDay(instance, receivePeriod, dayType); - if(sd.format(instance.getTime()).equals(sd.format(end))){ - List validDays = getValidDays(start,end,freeDays); - if (null == validDays || validDays.size() <= 0 ) { - return "0"; - } - //不是一个月的。但是按整月算的 - int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01"); - for (int i = 0 ; i < months; i++) { - //当前时间到当前月底 - Date currentMonthEnd = DateUtils.getLastDayForMonth(start); - NeedPayDTO np = getMonthPay(start, currentMonthEnd, price, decimalSize, validDays, dayPriceCalcute, monthAvageDays); - start = DateUtils.getDaySet(currentMonthEnd,Calendar.DATE,1); - total = total.add(np.getMoney()); - //TODO 这个月底到下个月 + //正好是一个周期开始 + boolean isPeriodStart = false; + //如果是按自然季度,如果start不是1号,则也不是一个周期 + if (EnumContractReceivePeriodUnit.QUARTER.getCode().intValue() == dayType) { + String startday = sdD.format(start); + if ("1".equals(startday)) { + isPeriodStart = true; } - return total.toPlainString(); + }else { + isPeriodStart = true; + } + if (isPeriodStart) { + Calendar instance = Calendar.getInstance(); + instance.setTime(start); + instance = EnumContractReceivePeriodUnit.getAfterCalendarDay(instance, receivePeriod, dayType); + if(sd.format(instance.getTime()).equals(sd.format(end))){ + List validDays = getValidDays(start,end,freeDays); + if (null == validDays || validDays.size() <= 0 ) { + return "0"; + } + //如果该周期内是全部有效的,则用月份*金额 + int allDays = DateUtils.daysBetween(start,end)+1; + boolean isFull = false; + if (allDays == validDays.size()) { + isFull = true; + } + //不是一个月的。但是按整月算的 + int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01"); + if (isFull) { + return price.multiply(new BigDecimal(months)).toPlainString(); + } + //计费每个周期开始时间 + Calendar periodStart = Calendar.getInstance(); + periodStart.setTime(start); + for (int i = 0 ; i < months; i++) { + //每个计费1个月结束时间,可能是跨月的 + Date periodEnd = EnumContractReceivePeriodUnit.getAfterCalendarDay(periodStart, i+1, EnumContractReceivePeriodUnit.MONTH.getCode()).getTime(); + + //当前开始时间到当前月底 + Date currentMonthEnd = DateUtils.getLastDayForMonth(start); + NeedPayDTO np = getCurrentMonthPay(start, currentMonthEnd, price, decimalSize, validDays, dayPriceCalcute, monthAvageDays); + total = total.add(np.getMoney()); + + if(periodEnd.after(currentMonthEnd)) { + start = DateUtils.getDaySet(currentMonthEnd,Calendar.DATE,1); + NeedPayDTO lnp = getCurrentMonthPay(start, periodEnd, price, decimalSize, validDays, dayPriceCalcute, monthAvageDays); + total = total.add(lnp.getMoney()); + }else { + start = DateUtils.getDaySet(currentMonthEnd,Calendar.DATE,1); + periodStart.setTime(start); + } + + } + return total.toPlainString(); + } } //开始到这个月底 @@ -499,7 +535,7 @@ public class WxRentContractHelper { if (null == currValidDays || currValidDays.size() <= 0 ) { return "0"; } - NeedPayDTO np = getMonthPay(start, lastMonthDay, price, decimalSize, currValidDays, dayPriceCalcute, monthAvageDays); + NeedPayDTO np = getCurrentMonthPay(start, lastMonthDay, price, decimalSize, currValidDays, dayPriceCalcute, monthAvageDays); total = total.add(np.getMoney()); System.out.println("首1月>>>>"+DateUtils.date2String(start)+">>>"+DateUtils.date2String(lastMonthDay)+">>>>"+total.toPlainString()); @@ -511,7 +547,7 @@ public class WxRentContractHelper { List _validDays = getValidDays(newStartDate,currentMonthEnd,freeDays); if (null == _validDays ||_validDays.size() <= 0 ) { }else { - NeedPayDTO _np = getMonthPay(newStartDate, currentMonthEnd, price, decimalSize, _validDays, dayPriceCalcute, monthAvageDays); + NeedPayDTO _np = getCurrentMonthPay(newStartDate, currentMonthEnd, price, decimalSize, _validDays, dayPriceCalcute, monthAvageDays); System.out.println(i+2+"月>>>>"+DateUtils.date2String(newStartDate)+">>>>"+DateUtils.date2String(currentMonthEnd)+">>>>"+_np.getMoney().toPlainString()); newStartDate = DateUtils.getDaySet(currentMonthEnd,Calendar.DATE,1); total = total.add(_np.getMoney()); @@ -525,7 +561,7 @@ public class WxRentContractHelper { if (null == lastValidDays || lastValidDays.size() <= 0 ) { return "0"; } - NeedPayDTO enp = getMonthPay(last, end, price, decimalSize, lastValidDays, dayPriceCalcute, monthAvageDays); + NeedPayDTO enp = getCurrentMonthPay(last, end, price, decimalSize, lastValidDays, dayPriceCalcute, monthAvageDays); total = total.add(enp.getMoney()); System.out.println("末月>>>>"+DateUtils.date2String(last)+">>>"+DateUtils.date2String(end)+">>>>"+enp.getMoney().toPlainString()); } @@ -551,7 +587,8 @@ public class WxRentContractHelper { return validDays; } - private static NeedPayDTO getMonthPay(Date start,Date end, BigDecimal priceMonth,Integer decimalSize,List validDays,Integer dayPriceCalcute,Integer monthAvageDays) { + //查询当前月内的金额 + private static NeedPayDTO getCurrentMonthPay(Date start,Date end, BigDecimal priceMonth,Integer decimalSize,List validDays,Integer dayPriceCalcute,Integer monthAvageDays) { NeedPayDTO np = new NeedPayDTO(); //当月实际天数 int md = DateUtils.getMonthDayCount(start);; @@ -762,7 +799,6 @@ public class WxRentContractHelper { //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); //System.out.println(monthMoney); - } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 53fa8fd2c..9874b712f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1259,6 +1259,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { int index = 0; for (int i = 0; i < billTimeVoList.size(); i++) { BillTimeVo billTimeVo = billTimeVoList.get(i); + if (i == 4) { + String aa = "000"; + } //计算金额 String needpay = "0"; //商业管理费 @@ -1298,6 +1301,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { operatingManageFeeNeedpayFront = WxRentContractHelper.getNeedPayMoney(freePeriods,wxRentContract,operationManagerPriceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod); } }else{ + //这一年到期和下一年开始的期间,从这一年到期时间分开来进行计算。因为涉及到年租金调整等 TODO 如何把这两块单独生成账单 if(billTimeVo.getStartDate().before(endDate)){ if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType()) && EnumMissTimeType.PERIOD.getCode().equals(0)) { //设置跳点率为年周期 price不变 @@ -1390,6 +1394,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setNeedPay(needpay); //wxBillRent.setOwe(needpay); wxBillRent.setReceivePay(needpay); + logger.debug(">>>>"+DateUtils.date2String(billTimeVo.getStartDate())+">>>>"+DateUtils.date2String(billTimeVo.getEndDate())+">>>>"+needpay); //商业管理费 wxBillRent.setBussinessManageFeeNeedPay(bussinessManageFeeNeedpay); //运营管理费 @@ -1897,22 +1902,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { //instance.add(Calendar.DATE, -1); timeVo.setEndDate(instance.getTime()); - //自然月 + //自然月,应该是从本月开始到本月结束 if(adjustPeriod.equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ if(count == 0){ timeVo.setEndDate(EnumContractReceivePeriodUnit.getAfterCalendarNarDay(timeVo.getStartDate(), receivePeriod, dayType)); - /** - if(receivePeriod == 1) { //周期1个月 头一个月到当月底 头一个月或者头一个季度 - timeVo.setEndDate(DateUtils.getLastDayForMonth(timeVo.getStartDate())); - }else{ - Date firstDay = DateUtils.getFirstDayForCurrMonth(start); - instance.clear(); - instance.setTime(firstDay); - //最后一个期有余,加上残月,不整除时,最后一个月有余,否则为0 - instance.add(dayType, receivePeriod); - instance.add(Calendar.DAY_OF_MONTH, -1); - timeVo.setEndDate(instance.getTime()); - }*/ } } From ff6ce5ac61bc3133edd0f0a08c103bc57e4095e4 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 16:12:44 +0800 Subject: [PATCH 17/66] fix --- .../impl/WxPropertyContractServiceImpl.java | 2 +- .../impl/WxRentContractServiceImpl.java | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index dcfe7c141..46a65cf6b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -691,7 +691,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService List billTimeVoList = new ArrayList<>(); if(saveDb){ - billTimeVoList = WxRentContractServiceImpl.initBillTimeList(wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate(),wxPropertyContract.getAdjustPeriod(),dayType,receivePeriod); + billTimeVoList = WxRentContractServiceImpl.initBillTimeList(yearList,wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate(),wxPropertyContract.getAdjustPeriod(),dayType,receivePeriod); }else{ //预账单编辑账期,生成金额 for (WxAllBill rent:wxPropertyContract.getPreviewBillRentList()) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 9874b712f..9b572c270 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1241,7 +1241,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { List billTimeVoList = new ArrayList<>(); if(saveDb){ - billTimeVoList = initBillTimeList(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate(),wxRentContract.getAdjustPeriod(),dayType,receivePeriod); + billTimeVoList = initBillTimeList(yearList,wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate(),wxRentContract.getAdjustPeriod(),dayType,receivePeriod); }else{ //预账单编辑账期,生成金额 for (WxAllBill rent:wxRentContract.getPreviewBillRentList()) { @@ -1259,9 +1259,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { int index = 0; for (int i = 0; i < billTimeVoList.size(); i++) { BillTimeVo billTimeVo = billTimeVoList.get(i); - if (i == 4) { - String aa = "000"; - } //计算金额 String needpay = "0"; //商业管理费 @@ -1876,11 +1873,16 @@ public class WxRentContractServiceImpl implements WxRentContractService { // return wxRentContractMapper.getShopType(wxRentContract); // } - - public static List initBillTimeList(Date start,Date end,Integer adjustPeriod,Integer dayType,int receivePeriod){ + //yearList,每年的合同截止日期,到这个截止日之前之后,需要拆开时间 + public static List initBillTimeList(List yearList,Date start,Date end,Integer adjustPeriod,Integer dayType,int receivePeriod){ List list = new ArrayList<>(); int count = 0; - while (true){ + List yearsEndList = new ArrayList(); + yearsEndList.addAll(yearList); + if (yearsEndList.size() > 0) { + yearsEndList.remove(0); + } + while (true) { BillTimeVo timeVo = new BillTimeVo(); //开始时间 @@ -1909,6 +1911,15 @@ public class WxRentContractServiceImpl implements WxRentContractService { } } + //如果是到了每年的截止时间,第一年忽略(是开始时间) + if (null != yearsEndList && yearsEndList.size() > 0 ) { + Date yearEndDate = yearsEndList.get(0); + if (timeVo.getEndDate().after(yearEndDate)) { + timeVo.setEndDate(yearEndDate); + yearsEndList.remove(yearEndDate); + } + } + if(timeVo.getEndDate().after(end)){ timeVo.setEndDate(end); } @@ -1916,7 +1927,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { list.add(timeVo); //next - //start = DateUtils.getDaySet(timeVo.getEndDate(),Calendar.DATE,1); start = DateUtils.getDaySet(timeVo.getEndDate(),Calendar.SECOND,1); if(start.after(end)) { @@ -1930,7 +1940,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { logger.error("initBillTimeList() warnCount max error !!!"); break; } - } + } return list; } From 064ffb64a64fbf911cb3cb4af78b1e9b3aa04e63 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 16:21:38 +0800 Subject: [PATCH 18/66] fix --- .../src/main/java/com/iformall/enums/EnumBillAllType.java | 2 +- .../com/iformall/service/impl/WxRentContractServiceImpl.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java index 1defecde8..83b282bef 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java @@ -8,7 +8,7 @@ public enum EnumBillAllType { RENT(1,"租金",1L,false), RENT_BUSSINESS_MANAGE(11,"商业管理费",2L,false), RENT_OPERATION_MANAGE(12,"运营管理费",3L,false), - RENT_DEPOSIT(13,"租赁押金",null,false), + RENT_DEPOSIT(13,"租赁押金",null,true), PROPERTY(2,"物业",5L,false), PROPERTY_DEPOSIT(21,"物业押金",6L,true), DAILY(3, "能耗(水电空调)费",null,false), diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 9b572c270..78ff911b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1917,6 +1917,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (timeVo.getEndDate().after(yearEndDate)) { timeVo.setEndDate(yearEndDate); yearsEndList.remove(yearEndDate); + }else if(timeVo.getEndDate().equals(yearEndDate)) { + yearsEndList.remove(yearEndDate); } } From e3ba8ecb130c4c3a65e161029c472c1ae2961b39 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 16:32:32 +0800 Subject: [PATCH 19/66] fix --- .../com/iformall/service/impl/WxRentContractServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 78ff911b7..1d363abcd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1914,6 +1914,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //如果是到了每年的截止时间,第一年忽略(是开始时间) if (null != yearsEndList && yearsEndList.size() > 0 ) { Date yearEndDate = yearsEndList.get(0); + yearEndDate = DateUtils.getDayEnd(yearEndDate); if (timeVo.getEndDate().after(yearEndDate)) { timeVo.setEndDate(yearEndDate); yearsEndList.remove(yearEndDate); From c62072ddc600d9f077b9feb7aaa441c232f7be45 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 17:03:36 +0800 Subject: [PATCH 20/66] fix --- .../impl/WxRentContractServiceImpl.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 1d363abcd..ed2d7fcc5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1910,16 +1910,25 @@ public class WxRentContractServiceImpl implements WxRentContractService { timeVo.setEndDate(EnumContractReceivePeriodUnit.getAfterCalendarNarDay(timeVo.getStartDate(), receivePeriod, dayType)); } } + if (count >= 12) { + String a = ""; + } //如果是到了每年的截止时间,第一年忽略(是开始时间) if (null != yearsEndList && yearsEndList.size() > 0 ) { - Date yearEndDate = yearsEndList.get(0); - yearEndDate = DateUtils.getDayEnd(yearEndDate); - if (timeVo.getEndDate().after(yearEndDate)) { - timeVo.setEndDate(yearEndDate); - yearsEndList.remove(yearEndDate); - }else if(timeVo.getEndDate().equals(yearEndDate)) { - yearsEndList.remove(yearEndDate); + Date yearEndDateStart = yearsEndList.get(0); + if (timeVo.getStartDate().equals(yearEndDateStart)) { + yearsEndList.remove(yearEndDateStart); + }else if (timeVo.getStartDate().after(yearEndDateStart)) { + //do nothing + }else if (timeVo.getStartDate().before(yearEndDateStart)) { + Date yearEndDateEnd = DateUtils.getDayEnd(yearEndDateStart); + if (timeVo.getEndDate().after(yearEndDateEnd)) { + timeVo.setEndDate(yearEndDateEnd); + yearsEndList.remove(yearEndDateStart); + }else if(timeVo.getEndDate().equals(yearEndDateEnd)) { + yearsEndList.remove(yearEndDateStart); + } } } From 655bb28b40e148647215605e142e24afbd517bbf Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 17:26:31 +0800 Subject: [PATCH 21/66] fix --- .../java/com/iformall/controller/rent/WxAllBillController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index ce74c66c1..aae536110 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -670,6 +670,7 @@ public class WxAllBillController extends BillBaseController { } } + record.setIsPreview(EnumYesOrNo.NO.getCode()); record.setSortColumns("status asc, starttime asc , merchant_id desc"); return new ResultData(wxAllBillService.listAsPage(record, pageNum, pageSize)); } From de71bc12e57fc796d269269376eea04aa6d6ec7e Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 17:28:32 +0800 Subject: [PATCH 22/66] fix --- .../java/com/iformall/controller/rent/WxAllBillController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index aae536110..78c41de60 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -712,8 +712,8 @@ public class WxAllBillController extends BillBaseController { record.setOweBillLastTime(billAllHelper.getDateBefore(getOweBillBeforeDays())); record.setNearBillLastTime(billAllHelper.getDateBefore(getNearBillBeforeDays())); } - } + record.setIsPreview(EnumYesOrNo.NO.getCode()); return new ResultData(wxAllBillService.getBillMonthSum(record)); } From c68b0cfbd41c7952aa0969c2a17e912867b3a4fb Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 17:44:20 +0800 Subject: [PATCH 23/66] fix --- mallinkService/src/main/resources/mapper/WxAllBillMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml index 7819fc89e..c694051ba 100644 --- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml @@ -67,8 +67,8 @@ and `property_contract_id` = #{propertyContractId} and `parent_bill_id` = #{parentBillId} and `is_preview` = #{isPreview} - and `starttime` <= #{starttime} - and `endtime` >= #{endtime} + and `starttime` >= #{starttime} + and `endtime` <= #{endtime} and date_format(starttime,'%Y-%m') <= #{month} and date_format(endtime,'%Y-%m') >= #{month} From e44cdbf84c4a08f0171d70bec5df541620e8308f Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 18:22:32 +0800 Subject: [PATCH 24/66] fix --- .../service/helper/WxRentContractHelper.java | 4 ++-- .../service/impl/WxRentContractServiceImpl.java | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index ff05b076b..cb00818ef 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -166,7 +166,7 @@ public class WxRentContractHelper { if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { for (int i = 1; i < size; i++) { - BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); + BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(100)); priceD = priceD.add(divide); priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } @@ -186,7 +186,7 @@ public class WxRentContractHelper { if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) && revenueYears.size() == size) { _p = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); }else { - _p = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); + _p = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(100)); } priceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index ed2d7fcc5..618dab41f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -819,12 +819,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillDeposit.setPriceDetail("合同押金项["+fees.getName()+"]"+depositFee.getPrice()+"元"+"/"+fees.getCalcuteUnitName()); } wxBillDeposit.setPay("0"); - //String needpay = wxRentContract.getDeposit(); - String count = "1"; - if (null != depositFee.getCalcuteUnit() && depositFee.getCalcuteUnit().intValue() == EnumFeesStandardsCalcuteUnit.MM.getCode().intValue()) { - count = wxRentContract.getRentArea(); - } - String needpay = depositFee.calcuteTotalMoney(wxRentContract.getDecimalSize(), null, null, count, true, null, null); + String needpay = wxRentContract.getDeposit(); +// String count = "1"; +// if (null != depositFee.getCalcuteUnit() && depositFee.getCalcuteUnit().intValue() == EnumFeesStandardsCalcuteUnit.MM.getCode().intValue()) { +// count = wxRentContract.getRentArea(); +// } +// String needpay = depositFee.calcuteTotalMoney(wxRentContract.getDecimalSize(), null, null, count, true, null, null); wxBillDeposit.setReceivePay(needpay); wxBillDeposit.setNeedPay(needpay); //wxBillDeposit.setOwe(needpay); From 1291d4943c8608fc84e58be12f44d8a164a8581b Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 19:25:36 +0800 Subject: [PATCH 25/66] fix --- .../main/java/com/iformall/domain/po/WxRentContract.java | 8 +++++++- .../iformall/service/impl/WxRentContractServiceImpl.java | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 5c49f2f5b..74f5f4cba 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -469,10 +469,16 @@ public class WxRentContract extends TenantEntity { public void calcutePrice() { //如果是按铺位数算,price不用计算,是填写的值 - if (!this.type.equals(EnumRentContractType.RENT_BY_COUNT.getCode())) { + if (this.type.equals(EnumRentContractType.RENT_BY_AREA.getCode()) || this.type.equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { if (StringUtils.isNotBlank(this.rentArea) && StringUtils.isNotBlank(this.rentPrice)) { this.price = new BigDecimal(this.rentArea).multiply(new BigDecimal(this.rentPrice)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } + }else if (this.type.equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { + if (StringUtils.isBlank(revenue)) { + this.price = "0"; + }else { + this.price = new BigDecimal(this.revenue).multiply(new BigDecimal(this.payRatio)).divide(new BigDecimal(100),Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); + } } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 618dab41f..d4768e15d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -677,13 +677,13 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (StringUtils.isBlank(revenue)) { revenue = "0"; } - record.setPrice(new BigDecimal(record.getPayRatio()).multiply(new BigDecimal(revenue)).setScale(Constant.default_long_decimal_size,RoundingMode.HALF_UP).toPlainString()); + record.setPrice(new BigDecimal(record.getPayRatio()).multiply(new BigDecimal(revenue)).divide(new BigDecimal(100),Constant.default_long_decimal_size,RoundingMode.HALF_UP).toPlainString()); }else if (record.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { String revenue = record.getRevenue(); if (StringUtils.isBlank(revenue)) { revenue = "0"; } - BigDecimal renevuePrice = new BigDecimal(record.getPayRatio()).multiply(new BigDecimal(revenue)); + BigDecimal renevuePrice = new BigDecimal(record.getPayRatio()).multiply(new BigDecimal(revenue)).divide(new BigDecimal(100),Constant.default_long_decimal_size,RoundingMode.HALF_UP); BigDecimal rentPrice = null; //联营取高,如果是固定金额的话,取固定金额. 不固定的金额,会传price. if (null != record.getRevenueFixedRentPrice() && record.getRevenueFixedRentPrice().intValue() == EnumYesOrNo.YES.getCode()){ From 27360e72cf5462a209535483c71231c27e4c9f72 Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 20:33:25 +0800 Subject: [PATCH 26/66] fix --- .../service/helper/WxRentContractHelper.java | 124 +++++------------- 1 file changed, 32 insertions(+), 92 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index cb00818ef..1df28b685 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -133,24 +133,16 @@ public class WxRentContractHelper { //计算每年租金基数值(合铺录入),具体计算在合同创建时,会根据合同的PriceUnit来根据此基数来计算 private static String[] calcuteRentPriceByJoin(WxRentContract wxRentContract) { + //租金的年调整 String adjustRatio = wxRentContract.getAdjustRatio(); List integers = JSONArray.parseArray(adjustRatio, Integer.class); integers.add(0, 0); int size = integers.size(); String[] priceArrs = new String[size]; - //如果是联营扣点租金取高,是固定租金 - BigDecimal priceD = null; - if (null != wxRentContract.getRevenueFixedRentPrice() && - wxRentContract.getRevenueFixedRentPrice().intValue() == EnumYesOrNo.YES.getCode()) { - priceArrs[0] = wxRentContract.getRevenueRentPrice(); - priceD = new BigDecimal(wxRentContract.getRevenueRentPrice()); - }else { - priceArrs[0] = wxRentContract.getPrice(); - priceD = new BigDecimal(wxRentContract.getPrice()); - } - //BigDecimal priceD = new BigDecimal(wxRentContract.getPrice()); - + priceArrs[0] = wxRentContract.getPrice(); + BigDecimal priceD = new BigDecimal(wxRentContract.getPrice()); + //联营扣点年调整。 String revenueYear = wxRentContract.getRevenueRatioSet(); List revenueYears = null; @@ -162,107 +154,55 @@ public class WxRentContractHelper { revenueYears.add(0,0L); //联营扣点取高单独计算联营扣点调整。 - String[] revenuePriceArrs = calcuteRevenuePriceByRentAreaJoint(wxRentContract,revenueYears,size); - if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { for (int i = 1; i < size; i++) { - BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(100)); + //如果纯联营扣点,没有租金的年增长,用联营扣点的年增长;联营扣点取高时priceD已是最高值 + String _update = ""; + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + _update = String.valueOf(revenueYears.get(i)); + }else { + _update = String.valueOf(integers.get(i)); + } + BigDecimal divide = priceD.multiply(new BigDecimal(_update)).divide(new BigDecimal(100)); priceD = priceD.add(divide); priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { for (int i = 1; i < size; i++) { - priceD = priceD.add(new BigDecimal(integers.get(i))); + String _update = ""; + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + _update = String.valueOf(revenueYears.get(i)); + }else { + _update = String.valueOf(integers.get(i)); + } + priceD = priceD.add(new BigDecimal(_update)); priceArrs[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ for (int i = 1; i < size; i++) { - priceArrs[i] = new BigDecimal(integers.get(i)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); + String _update = ""; + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + _update = String.valueOf(revenueYears.get(i)); + }else { + _update = String.valueOf(integers.get(i)); + } + priceArrs[i] = new BigDecimal(_update).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } }else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ for (int i = 1; i < size; i++) { - BigDecimal _p = null; - //联营扣点才乘保底营业额 - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) && revenueYears.size() == size) { - _p = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000)); + String _update = ""; + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + _update = String.valueOf(revenueYears.get(i)); }else { - _p = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(100)); + _update = String.valueOf(integers.get(i)); } - priceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); + priceArrs[i] = priceD.multiply(new BigDecimal(_update)).divide(new BigDecimal(100)).toPlainString(); } } - //租金和联营取高 - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { - for (int i = 0 ; i < priceArrs.length; i ++) { - if (new BigDecimal(priceArrs[i]).compareTo(new BigDecimal(revenuePriceArrs[i])) < 0) { - priceArrs[i] = revenuePriceArrs[i]; - } - } - } - - return priceArrs; - } - - //联营面积取高计算联营扣点调整。 - private static String[] calcuteRevenuePriceByRentAreaJoint(WxRentContract wxRentContract,List revenueYears,int size) { - //联营面积取高时,联营扣点调整比率设置 - String[] revenuePriceArrs = new String[size]; - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { - String _revenuePriceD = null; - if (null != wxRentContract.getRevenueFixedRentPrice() && wxRentContract.getRevenueFixedRentPrice().intValue() == EnumYesOrNo.YES.getCode().intValue()) { - _revenuePriceD = wxRentContract.getRevenueRentPrice(); - }else { - _revenuePriceD = new BigDecimal(wxRentContract.getRevenue()).multiply(new BigDecimal(wxRentContract.getPayRatio())) - .divide(new BigDecimal(10000)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); - } - revenuePriceArrs[0] = _revenuePriceD; - BigDecimal revenuePriceD = new BigDecimal(_revenuePriceD); - //联营扣点调整比率 - String revenueRationSet = wxRentContract.getRevenueRatioSet(); - List revenueRationSets = null; - if (!StringUtils.isBlank(revenueRationSet)) { - revenueRationSets = JSONArray.parseArray(revenueRationSet, Long.class); - }else { - revenueRationSets = new ArrayList(); - } - revenueRationSets.add(0,0L); - - if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { - for (int i = 1; i < size; i++) { - //联营扣点算法 - if (revenueYears.size() == size && revenueRationSets.size() == size) { - BigDecimal _p = new BigDecimal(revenueYears.get(i)).multiply(new BigDecimal(revenueRationSets.get(i))).divide(new BigDecimal(10000)); - revenuePriceD = revenuePriceD.add(_p); - } - revenuePriceArrs[i] = revenuePriceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); - } - } else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { - for (int i = 1; i < size; i++) { - if (revenueYears.size() == size && revenueRationSets.size() == size) { - revenuePriceD = revenuePriceD.add(new BigDecimal(revenueRationSets.get(i))); - } - revenuePriceArrs[i] = revenuePriceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); - } - } else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ - for (int i = 1; i < size; i++) { - revenuePriceArrs[i] = new BigDecimal(revenueRationSets.get(i)) - .setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); - } - }else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ - for (int i = 1; i < size; i++) { - BigDecimal _p = new BigDecimal(0) ; - if (revenueYears.size() == size && revenueRationSets.size() == size) { - _p = new BigDecimal(revenueRationSets.get(i)).multiply(new BigDecimal(revenueYears.get(i))).divide(new BigDecimal(10000)); - } - revenuePriceArrs[i] = _p.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); - } - } - } - return revenuePriceArrs; + return priceArrs; } - //合铺计算某项计费 private static String[] calcuteRatioByJoin(Integer decimalSize,Integer ratioWay,String ratio,String ratioFirstYearPrice) { List integers = JSONArray.parseArray(ratio, Integer.class); From 6e52f68d8fde1d38dc13273b61804146329ceaea Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 21:08:17 +0800 Subject: [PATCH 27/66] fix --- .../iformall/domain/po/WxRentContract.java | 6 -- .../service/helper/WxRentContractHelper.java | 70 +++++++++++++++++-- .../impl/WxRentContractServiceImpl.java | 11 +-- 3 files changed, 66 insertions(+), 21 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 74f5f4cba..c631a33a8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -473,12 +473,6 @@ public class WxRentContract extends TenantEntity { if (StringUtils.isNotBlank(this.rentArea) && StringUtils.isNotBlank(this.rentPrice)) { this.price = new BigDecimal(this.rentArea).multiply(new BigDecimal(this.rentPrice)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); } - }else if (this.type.equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { - if (StringUtils.isBlank(revenue)) { - this.price = "0"; - }else { - this.price = new BigDecimal(this.revenue).multiply(new BigDecimal(this.payRatio)).divide(new BigDecimal(100),Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); - } } } diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index 1df28b685..65dfb9fb3 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -153,12 +153,15 @@ public class WxRentContractHelper { } revenueYears.add(0,0L); - //联营扣点取高单独计算联营扣点调整。 + //联营扣点取高单据计算联营扣点方式的,再跟租金的对比取高 + String[] revenuePriceArrs = calcuteRevenuePriceByRentAreaJoint(wxRentContract,revenueYears,size); + + //计算所有租金的 if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { for (int i = 1; i < size; i++) { //如果纯联营扣点,没有租金的年增长,用联营扣点的年增长;联营扣点取高时priceD已是最高值 String _update = ""; - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { _update = String.valueOf(revenueYears.get(i)); }else { _update = String.valueOf(integers.get(i)); @@ -170,7 +173,7 @@ public class WxRentContractHelper { } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { for (int i = 1; i < size; i++) { String _update = ""; - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { _update = String.valueOf(revenueYears.get(i)); }else { _update = String.valueOf(integers.get(i)); @@ -181,7 +184,7 @@ public class WxRentContractHelper { } else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ for (int i = 1; i < size; i++) { String _update = ""; - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { _update = String.valueOf(revenueYears.get(i)); }else { _update = String.valueOf(integers.get(i)); @@ -191,7 +194,7 @@ public class WxRentContractHelper { }else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ for (int i = 1; i < size; i++) { String _update = ""; - if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) || wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { _update = String.valueOf(revenueYears.get(i)); }else { _update = String.valueOf(integers.get(i)); @@ -200,9 +203,66 @@ public class WxRentContractHelper { } } + //租金和联营取高 + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (null != revenuePriceArrs) { + for (int i = 0 ; i < priceArrs.length; i ++) { + if (new BigDecimal(priceArrs[i]).compareTo(new BigDecimal(revenuePriceArrs[i])) < 0) { + priceArrs[i] = revenuePriceArrs[i]; + } + } + } + } + return priceArrs; } + //联营面积取高计算联营扣点调整。 + private static String[] calcuteRevenuePriceByRentAreaJoint(WxRentContract wxRentContract,List revenueYears,int size) { + //联营面积取高时,联营扣点调整比率设置 + String[] revenuePriceArrs = new String[size]; + if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (StringUtils.isBlank(wxRentContract.getRevenue())) { + return null; + } + String _revenuePriceD = new BigDecimal(wxRentContract.getRevenue()).multiply(new BigDecimal(wxRentContract.getPayRatio())) + .divide(new BigDecimal(100)).toPlainString(); + revenuePriceArrs[0] = _revenuePriceD; + + BigDecimal revenuePriceD = new BigDecimal(_revenuePriceD); + if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { + for (int i = 1; i < size; i++) { + //联营扣点算法 + if (revenueYears.size() == size) { + BigDecimal _p = new BigDecimal(revenueYears.get(i)).multiply(revenuePriceD).divide(new BigDecimal(100)); + revenuePriceD = revenuePriceD.add(_p); + } + revenuePriceArrs[i] = revenuePriceD.toPlainString(); + } + } else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { + for (int i = 1; i < size; i++) { + if (revenueYears.size() == size) { + revenuePriceD = revenuePriceD.add(new BigDecimal(revenueYears.get(i))); + } + revenuePriceArrs[i] = revenuePriceD.toPlainString(); + } + } else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ + for (int i = 1; i < size; i++) { + revenuePriceArrs[i] = new BigDecimal(revenueYears.get(i)).toPlainString(); + } + }else if (wxRentContract.getRevenueRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ + for (int i = 1; i < size; i++) { + BigDecimal _p = new BigDecimal(0) ; + if (revenueYears.size() == size) { + _p = new BigDecimal(revenueYears.get(i)).multiply(revenuePriceD).divide(new BigDecimal(100)); + } + revenuePriceArrs[i] = _p.toPlainString(); + } + } + } + return revenuePriceArrs; + } + //合铺计算某项计费 private static String[] calcuteRatioByJoin(Integer decimalSize,Integer ratioWay,String ratio,String ratioFirstYearPrice) { List integers = JSONArray.parseArray(ratio, Integer.class); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index d4768e15d..dc94bb5b3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -679,11 +679,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { } record.setPrice(new BigDecimal(record.getPayRatio()).multiply(new BigDecimal(revenue)).divide(new BigDecimal(100),Constant.default_long_decimal_size,RoundingMode.HALF_UP).toPlainString()); }else if (record.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { - String revenue = record.getRevenue(); - if (StringUtils.isBlank(revenue)) { - revenue = "0"; - } - BigDecimal renevuePrice = new BigDecimal(record.getPayRatio()).multiply(new BigDecimal(revenue)).divide(new BigDecimal(100),Constant.default_long_decimal_size,RoundingMode.HALF_UP); BigDecimal rentPrice = null; //联营取高,如果是固定金额的话,取固定金额. 不固定的金额,会传price. if (null != record.getRevenueFixedRentPrice() && record.getRevenueFixedRentPrice().intValue() == EnumYesOrNo.YES.getCode()){ @@ -691,11 +686,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { }else { rentPrice = new BigDecimal(record.getPrice()); } - if (renevuePrice.compareTo(rentPrice) > 0 ) { - record.setPrice(renevuePrice.toPlainString()); - }else { - record.setPrice(rentPrice.toPlainString()); - } + record.setPrice(rentPrice.toPlainString()); } } } From ce46efed1863d7393a396cbde8eb647dfaad2e2e Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 6 Aug 2024 22:44:26 +0800 Subject: [PATCH 28/66] fix --- .../market/WxFinancePrintController.java | 17 ++++-- .../db/migration/V202408000000001.sql | 2 +- .../domain/po/WxFinancePrintData.java | 4 +- .../java/com/iformall/domain/vo/PrintVo.java | 16 +++++ .../enums/EnumFinancePrintDataType.java | 4 +- ...andler.java => PrintComponentHandler.java} | 2 +- .../print/data/PrintBillDataHandler.java | 17 ++++++ .../data/PrintFinanceReceiveDataHandler.java | 33 ++++++++++ .../service/WxFinancePrintService.java | 5 +- .../iformall/service/WxFinanceService.java | 1 + .../impl/WxFinancePrintServiceImpl.java | 61 ++++++++++++++++--- .../service/impl/WxFinanceServiceImpl.java | 6 ++ 12 files changed, 147 insertions(+), 21 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java rename mallinkService/src/main/java/com/iformall/print/{PrintDataHandler.java => PrintComponentHandler.java} (98%) create mode 100644 mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java create mode 100644 mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index e5f90f02f..52ea04cf8 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -121,13 +121,22 @@ public class WxFinancePrintController extends BaseController { } @ApiOperation("预览") - @GetMapping("getTemplateData") + @PostMapping("viewTemplate") @TenantIgnore - public ResultData viewTemplate(@RequestBody String tenantId,Integer type,List dataIds) { - if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == type) { + public ResultData viewTemplate(@RequestBody String tenantId,Long templateId,List dataIds) { + if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == templateId) { return new ResultData(Result.ERROR,"参数不对"); } - return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,type,dataIds)); + return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,templateId,dataIds)); + } + + @ApiOperation("") + @GetMapping("needUpdate") + @TenantIgnore + public ResultData version() { + Map retMap = new HashMap(); + retMap.put("isUpdate", "0"); + return new ResultData(retMap); } } diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql index 6f34baa2f..db350ccf7 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000001.sql @@ -779,7 +779,7 @@ CREATE TABLE `wx_finance_print_data` ( `type` int(1) NOT NULL COMMENT '类型', `sort` int(1) NOT NULL DEFAULT '0' COMMENT '排序', `print_data_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '打印的字段类型', - `print_data_json` json DEFAULT NULL COMMENT '配置项', + `print_data_json` text COLLATE utf8mb4_unicode_ci COMMENT '配置项', `is_edit` int(1) NOT NULL DEFAULT '0' COMMENT '是否可编辑', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='租赁合同'; 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 c326c527a..ebbb035f7 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinancePrintData.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.BaseEntity; -import com.iformall.print.PrintDataHandler; +import com.iformall.print.PrintComponentHandler; import lombok.Data; import lombok.EqualsAndHashCode; @@ -42,7 +42,7 @@ public class WxFinancePrintData extends BaseEntity { @TableField(exist = false) private Object printComponents; public Object getPrintComponents() { - printComponents = PrintDataHandler.parseComponent(this); + printComponents = PrintComponentHandler.parseComponent(this); return printComponents; } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java new file mode 100644 index 000000000..42df07dad --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/PrintVo.java @@ -0,0 +1,16 @@ +package com.iformall.domain.vo; + +import lombok.Data; +import java.io.Serializable; +import com.alibaba.fastjson.JSONObject; + +@Data +public class PrintVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + private Long dataId; + + private JSONObject template; + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java b/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java index 542d30afa..7eb9f66bf 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java @@ -2,8 +2,8 @@ package com.iformall.enums; public enum EnumFinancePrintDataType { - FINANCE_BILL(1,"财务账单"), - FINANCE_RECEIVE(2,"财务收款单") + FINANCE_RECEIVE(1,"财务收付款数据"), + BILL(2,"账单数据") ; public static EnumFinancePrintDataType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java similarity index 98% rename from mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java rename to mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java index 9c722be01..3c99d2448 100644 --- a/mallinkService/src/main/java/com/iformall/print/PrintDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/PrintComponentHandler.java @@ -20,7 +20,7 @@ import com.iformall.print.entity.component.table.PrintBraidTableColumnsTrSet; import com.iformall.print.entity.component.txt.PrintBraidTxt; @Data -public class PrintDataHandler implements Serializable { +public class PrintComponentHandler implements Serializable { private static final long serialVersionUID = 1L; diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java new file mode 100644 index 000000000..b0af13722 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java @@ -0,0 +1,17 @@ +package com.iformall.print.data; + +import lombok.Data; +import java.io.Serializable; +import com.alibaba.fastjson.JSONObject; +import com.iformall.domain.po.WxAllBill; + +@Data +public class PrintBillDataHandler implements Serializable { + + private static final long serialVersionUID = 1L; + + public static JSONObject parse(String templateContent,WxAllBill re) { + return null; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java new file mode 100644 index 000000000..bcfc7f7a7 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java @@ -0,0 +1,33 @@ +package com.iformall.print.data; + +import lombok.Data; +import java.io.Serializable; +import com.alibaba.fastjson.JSONObject; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.utils.DateUtils; +/** + * 财务数据解析 + * 跟 WxFinancePrintData 里面的字段对应 + * + * @author Administrator + * + */ +@Data +public class PrintFinanceReceiveDataHandler implements Serializable { + + private static final long serialVersionUID = 1L; + + public static JSONObject parse(String templateContent,WxFinanceReceive re) { + //把所有可能的组件里面需要的内容都解析出来 + if (StringUtils.isBlank(templateContent)) { + return null; + } + templateContent = templateContent.replaceAll("id", String.valueOf(re.getId())); + templateContent = templateContent.replaceAll("createTime", DateUtils.date2String(re.getCreateTime())); + templateContent = templateContent.replaceAll("feesId", DateUtils.date2String(re.getCreateTime())); + + return null; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index c19766f10..ae9719da2 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -1,10 +1,9 @@ package com.iformall.service; import java.util.List; -import java.util.Map; - import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; +import com.iformall.domain.vo.PrintVo; /** */ public interface WxFinancePrintService { @@ -16,5 +15,5 @@ public interface WxFinancePrintService { void update(WxFinancePrintTemplate record); void copy(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); - List parseTemplateData(String tenantId,Integer type,List dataIds); + List parseTemplateData(String tenantId,Long templateId,List dataIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index b579af684..392bf8e7d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -28,6 +28,7 @@ public interface WxFinanceService { //收付款 PageInfo receiveVoListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); + List findReceiveList(WxFinanceReceive record); List createReceive(WxFinanceReceive record,MallUserInfo user); List createPay(WxFinanceReceive record,MallUserInfo user); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); 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 6e39a50f0..2c38d949d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -11,17 +11,24 @@ import com.alibaba.fastjson.JSONObject; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxAllBill; import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.PrintVo; import com.iformall.enums.EnumFinancePrintDataType; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxFinancePrintDataMapper; import com.iformall.mapper.WxFinancePrintTemplateMapper; +import com.iformall.print.data.PrintBillDataHandler; +import com.iformall.print.data.PrintFinanceReceiveDataHandler; +import com.iformall.service.WxAllBillService; import com.iformall.service.WxFinancePrintService; import com.iformall.service.WxFinanceService; + +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -42,6 +49,10 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Autowired WxFinanceService wxFinanceService; + @Lazy + @Autowired + WxAllBillService wxAllBillService; + @Override public List printDataList(WxFinancePrintData record) { return wxFinancePrintDataMapper.findList(record); @@ -128,14 +139,48 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } @Override - public List parseTemplateData(String tenantId, Integer type, List dataIds) { -// EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(type); -// //付款单 -// if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { -// TenantEntity tenantEntity = new TenantEntity(); -// tenantEntity.setTenantId(tenantId); -// WxFinanceReceive receive = wxFinanceService.getReceiveById(tenantEntity, id); -// } + public List parseTemplateData(String tenantId, Long templateId, List dataIds) { + WxFinancePrintTemplate template = this.getTemplateById(templateId); + if (null == template) { + return null; + } + EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(template.getType()); + //付款单 + if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { + WxFinanceReceive receiveq = new WxFinanceReceive(); + receiveq.setTenantId(tenantId); + receiveq.setIds(dataIds); + List receiveList = wxFinanceService.findReceiveList(receiveq); + if (null == receiveList || receiveList.size() <= 0 ) { + return null; + } + List voList = new ArrayList(); + for (int i = 0 ; i < receiveList.size(); i ++) { + WxFinanceReceive re = receiveList.get(i); + PrintVo vo = new PrintVo(); + vo.setDataId(templateId); + vo.setTemplate(PrintFinanceReceiveDataHandler.parse(template.getContent(), re)); + voList.add(vo); + } + return voList; + }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.BILL.getCode()) { + WxAllBill bq = new WxAllBill(); + bq.setTenantId(tenantId); + bq.setIds(dataIds); + List billAllList = wxAllBillService.list(bq); + if (null == billAllList || billAllList.size() <= 0 ) { + return null; + } + List voList = new ArrayList(); + for (int i = 0 ; i < billAllList.size(); i ++) { + WxAllBill re = billAllList.get(i); + PrintVo vo = new PrintVo(); + vo.setDataId(templateId); + vo.setTemplate(PrintBillDataHandler.parse(template.getContent(), re)); + voList.add(vo); + } + return voList; + } return null; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 446a4286c..91dc33b6c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -490,6 +490,12 @@ public class WxFinanceServiceImpl implements WxFinanceService { return pageVo; } + @Override + public List findReceiveList(WxFinanceReceive record) { + initQueryParam(record); + return wxFinanceReceiveMapper.findList(record); + } + private void sortBills(List billList) { Collections.sort(billList, new Comparator() { @Override From 913cc0ba02c423c696e2971fd068549de3a31f99 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 00:20:47 +0800 Subject: [PATCH 29/66] fix --- .../print/data/AbstractPrintDataParser.java | 31 +++++++++ .../print/data/PrintBillDataHandler.java | 63 ++++++++++++++++--- .../data/PrintFinanceReceiveDataHandler.java | 58 ++++++++++++----- .../impl/WxFinancePrintServiceImpl.java | 28 ++++++++- .../service/impl/WxFinanceServiceImpl.java | 6 +- 5 files changed, 157 insertions(+), 29 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/print/data/AbstractPrintDataParser.java diff --git a/mallinkService/src/main/java/com/iformall/print/data/AbstractPrintDataParser.java b/mallinkService/src/main/java/com/iformall/print/data/AbstractPrintDataParser.java new file mode 100644 index 000000000..eb1fe2228 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/AbstractPrintDataParser.java @@ -0,0 +1,31 @@ +package com.iformall.print.data; + +import java.util.Map; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxMerchant; + +public abstract class AbstractPrintDataParser { + + public JSONObject parse(String templateContent,Object re,Map merchantMap,Map feesMap) { + //把所有可能的组件里面需要的内容都解析出来 + if (StringUtils.isBlank(templateContent)) { + return null; + } + JSONObject o = JSON.parseObject(templateContent); + JSONArray items = o.getJSONArray("tempItems"); + if (null != items) { + for (int i = 0 ; i < items.size() ; i ++) { + JSONObject ov = items.getJSONObject(i); + ov.put("value", getObjectValue(ov.getString("name"),re,merchantMap,feesMap)); + } + } + return o; + } + + public abstract Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap); +} diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java index b0af13722..8dd59cd97 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java @@ -1,17 +1,62 @@ package com.iformall.print.data; -import lombok.Data; -import java.io.Serializable; -import com.alibaba.fastjson.JSONObject; +import java.util.Map; + +import org.springframework.stereotype.Service; + import com.iformall.domain.po.WxAllBill; +import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.domain.po.WxMerchant; +import com.iformall.utils.DateUtils; -@Data -public class PrintBillDataHandler implements Serializable { +@Service +public class PrintBillDataHandler extends AbstractPrintDataParser { - private static final long serialVersionUID = 1L; - public static JSONObject parse(String templateContent,WxAllBill re) { - return null; - } + @Override + public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap) { + WxAllBill receive = (WxAllBill) o; + if (name.equals("id")) { + return receive.getId(); + }else if (name.equals("createtime")) { + return DateUtils.date2String(receive.getCreatetime()); + }else if (name.equals("receivePay")) { + return receive.getReceivePay(); + }else if (name.equals("pay")) { + return receive.getPay(); + }else if (name.equals("setOff")) { + return receive.getSetOff(); + }else if (name.equals("starttime")) { + return DateUtils.date2String(receive.getStarttime()); + }else if (name.equals("endtime")) { + return DateUtils.date2String(receive.getEndtime()); + }else if (name.equals("owe")) { + return receive.getOwe(); + }else if (name.equals("statusName")) { + return receive.getStatusName(); + }else if (name.equals("merchantName")) { + if (null != merchantMap) { + WxMerchant m = merchantMap.get(receive.getMerchantId()); + if (null != m) { + return m.getName(); + } + } + return ""; + }else if (name.equals("energyFeesName")) { + if (null != feesMap) { + WxEnergyFees f = feesMap.get(receive.getEnergyFeesId()); + if (null != f) { + return f.getName(); + } + } + return ""; + }else if (name.equals("returnPay")) { + return receive.getReturnPay(); + }else if (name.equals("billRemark")) { + return receive.getBillRemark(); + } + return o; + } } diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java index bcfc7f7a7..e98b540f5 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java @@ -1,11 +1,14 @@ package com.iformall.print.data; -import lombok.Data; -import java.io.Serializable; -import com.alibaba.fastjson.JSONObject; -import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +import java.util.Map; + +import org.springframework.stereotype.Service; + +import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.domain.po.WxMerchant; import com.iformall.utils.DateUtils; + /** * 财务数据解析 * 跟 WxFinancePrintData 里面的字段对应 @@ -13,21 +16,42 @@ import com.iformall.utils.DateUtils; * @author Administrator * */ -@Data -public class PrintFinanceReceiveDataHandler implements Serializable { +@Service +public class PrintFinanceReceiveDataHandler extends AbstractPrintDataParser { - private static final long serialVersionUID = 1L; - - public static JSONObject parse(String templateContent,WxFinanceReceive re) { - //把所有可能的组件里面需要的内容都解析出来 - if (StringUtils.isBlank(templateContent)) { - return null; + @Override + public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap) { + WxFinanceReceive receive = (WxFinanceReceive) o; + if (name.equals("id")) { + return receive.getId(); + }else if (name.equals("createTime")) { + return DateUtils.date2String(receive.getCreateTime()); + }else if (name.equals("receiveMoney")) { + return receive.getReceiveMoney(); + }else if (name.equals("payMoney")) { + return receive.getPayMoney(); + }else if (name.equals("setOffMoney")) { + return receive.getSetOffMoney(); + }else if (name.equals("useMoney")) { + return receive.getUseMoney(); + }else if (name.equals("receiveTypeName")) { + return receive.getReceiveTypeName(); + }else if (name.equals("createByName")) { + return receive.getCreateByName(); + }else if (name.equals("moneyDetail")) { + return receive.getMoneyDetail(); + }else if (name.equals("remark")) { + return receive.getRemark(); + }else if (name.equals("merchantName")) { + if (null != merchantMap) { + WxMerchant m = merchantMap.get(receive.getMerchantId()); + if (null != m) { + return receive.getRemark(); + } + } + return ""; } - templateContent = templateContent.replaceAll("id", String.valueOf(re.getId())); - templateContent = templateContent.replaceAll("createTime", DateUtils.date2String(re.getCreateTime())); - templateContent = templateContent.replaceAll("feesId", DateUtils.date2String(re.getCreateTime())); - - return null; + return o; } } 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 2c38d949d..bdce60af1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -12,9 +12,11 @@ import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.po.WxAllBill; +import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.PrintVo; import com.iformall.enums.EnumFinancePrintDataType; @@ -25,8 +27,10 @@ import com.iformall.mapper.WxFinancePrintTemplateMapper; import com.iformall.print.data.PrintBillDataHandler; import com.iformall.print.data.PrintFinanceReceiveDataHandler; import com.iformall.service.WxAllBillService; +import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinancePrintService; import com.iformall.service.WxFinanceService; +import com.iformall.service.WxMerchantService; import java.util.ArrayList; import java.util.Date; @@ -49,10 +53,24 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Autowired WxFinanceService wxFinanceService; + @Lazy + @Autowired + WxEnergyService wxEnergyService; + @Lazy @Autowired WxAllBillService wxAllBillService; + @Autowired + PrintFinanceReceiveDataHandler printFinanceReceiveDataHandler; + + @Autowired + PrintBillDataHandler printBillDataHandler; + + @Lazy + @Autowired + WxMerchantService wxMerchantService; + @Override public List printDataList(WxFinancePrintData record) { return wxFinancePrintDataMapper.findList(record); @@ -145,6 +163,12 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { return null; } EnumFinancePrintDataType printDatatype = EnumFinancePrintDataType.getEnum(template.getType()); + WxMerchant mq = new WxMerchant(); + mq.setTenantId(tenantId); + Map merchantMap = wxMerchantService.findMerchantMap(mq); + WxEnergyFees feq = new WxEnergyFees(); + feq.setTenantId(tenantId); + Map feesMap = wxEnergyService.getFeesMap(feq); //付款单 if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.FINANCE_RECEIVE.getCode()) { WxFinanceReceive receiveq = new WxFinanceReceive(); @@ -159,7 +183,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { WxFinanceReceive re = receiveList.get(i); PrintVo vo = new PrintVo(); vo.setDataId(templateId); - vo.setTemplate(PrintFinanceReceiveDataHandler.parse(template.getContent(), re)); + vo.setTemplate(printFinanceReceiveDataHandler.parse(template.getContent(), re,merchantMap,feesMap)); voList.add(vo); } return voList; @@ -176,7 +200,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { WxAllBill re = billAllList.get(i); PrintVo vo = new PrintVo(); vo.setDataId(templateId); - vo.setTemplate(PrintBillDataHandler.parse(template.getContent(), re)); + vo.setTemplate(printBillDataHandler.parse(template.getContent(), re,merchantMap,feesMap)); voList.add(vo); } return voList; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 91dc33b6c..23b6c6a8c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -529,6 +529,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { final IdWorker idWorker = IdWorker.get(); Long receiveId = idWorker.nextId(); List receivePayWayList = new ArrayList(); + StringBuffer moneyDetail = new StringBuffer(); if (null != record.getPayWays()) { for (int i = 0 ; i < record.getPayWays().size() ; i ++) { WxBillPayWay payWay = record.getPayWays().get(i); @@ -549,6 +550,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { rpw.setUpdateTime(new Date()); rpw.setIsDel(EnumYesOrNo.NO.getCode()); receivePayWayList.add(rpw); + moneyDetail.append(payWay.getName()).append(":").append(payWay.getMoney()).append("元"); } } } @@ -560,7 +562,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { //创建主收款单 WxFinanceReceive addreceive = generateReceive(receiveId,user, EnumFinanceCashierType.RECEIVE,EnumFinanceReceiveType.RECEIVE, receiveTotal.toPlainString(),null, record.getMerchantId(), null, record.getRemark()); if (receiveTotal.compareTo(new BigDecimal(0)) > 0) { - addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays())); + addreceive.setMoneyDetail(moneyDetail.toString()); wxFinanceReceivePaywayMapper.insertPayWays(record.getTenantId(),receivePayWayList); } WxMerchant merchant = new WxMerchant(); @@ -733,6 +735,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { final IdWorker idWorker = IdWorker.get(); Long receiveId = idWorker.nextId(); List receivePayWayList = new ArrayList(); + StringBuffer moneyDetail = new StringBuffer(); if (null != record.getPayWays()) { for (int i = 0 ; i < record.getPayWays().size() ; i ++) { WxBillPayWay payWay = record.getPayWays().get(i); @@ -752,6 +755,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { rpw.setUpdateTime(new Date()); rpw.setIsDel(EnumYesOrNo.NO.getCode()); receivePayWayList.add(rpw); + moneyDetail.append(payWay.getName()).append(":").append(payWay.getMoney()).append("元"); } } List bills = record.getBills(); From 9c8960dc26e3afb272dfe7b9b23b0f2d965f3726 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 02:06:12 +0800 Subject: [PATCH 30/66] fix --- .../controller/rent/WxAllBillController.java | 47 +++++++++++++++++++ .../service/helper/WxBillAllHelper.java | 2 +- .../main/resources/mapper/WxAllBillMapper.xml | 2 +- 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 78c41de60..1f596a8b3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -214,6 +214,53 @@ public class WxAllBillController extends BillBaseController { if (null != wxMerchant.getOnlyOwe() && EnumYesOrNo.YES.getCode().intValue() == wxMerchant.getOnlyOwe().intValue()) { wxMerchant.setOweBillBeforeDays(getOweBillBeforeDays()); } + + wxMerchant.setBillType(EnumBillAllType.RENT.getCode()); + WxBillSum rentSum = billAllHelper.getBillSum(wxMerchant,starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode()); + WxBillSum rentBussinessManageSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.RENT_OPERATION_MANAGE.getCode()); + WxBillSum rentOperationManageSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.RENT_DEPOSIT.getCode()); + WxBillSum rentDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.PROPERTY.getCode()); + WxBillSum propertySum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.PROPERTY_DEPOSIT.getCode()); + WxBillSum propertyDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.DAILY.getCode()); + WxBillSum dailySum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.OTHER.getCode()); + WxBillSum otherSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + wxMerchant.setBillType(EnumBillAllType.OTHER_DEPOSIT.getCode()); + WxBillSum otherDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + + vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentBussinessManageSum.getNeedPay(),rentOperationManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), + propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay())); + vo.setPaid(billAllHelper.calcuteSum(rentSum.getPaid(),rentBussinessManageSum.getPaid(),rentOperationManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(), + propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid())); + vo.setOwe(billAllHelper.calcuteSum(rentSum.getOwe(),rentBussinessManageSum.getOwe(),rentOperationManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(), + propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe())); + + List sumlist = new ArrayList<>(); + sumlist.add(rentSum); + sumlist.add(rentBussinessManageSum); + sumlist.add(rentOperationManageSum); + sumlist.add(rentDepositSum); + sumlist.add(propertySum); + sumlist.add(propertyDepositSum); + sumlist.add(dailySum); + sumlist.add(otherSum); + sumlist.add(otherDepositSum); + vo.setBillSumList(sumlist); + return new ResultData(vo); } diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java index 0dad960a4..69962ef71 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java @@ -118,7 +118,7 @@ public class WxBillAllHelper { return wxAllBillService.getBillHotNotify(br); } - private String calcuteSum(String... money) { + public String calcuteSum(String... money) { if (null != money) { BigDecimal total = new BigDecimal(0); for (int i = 0 ; i < money.length ; i++) { diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml index c694051ba..7a91c57b7 100644 --- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml @@ -182,7 +182,7 @@ 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, - MIN(br.starttime) min_begin_time from wx_all_bill + MIN(starttime) min_begin_time from wx_all_bill group by bill_type From 5036b40e70aa1141deab6403c13493dba432a0d5 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 02:16:20 +0800 Subject: [PATCH 31/66] fix --- .../iformall/controller/rent/WxAllBillController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 1f596a8b3..6558ccddf 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -217,30 +217,39 @@ public class WxAllBillController extends BillBaseController { wxMerchant.setBillType(EnumBillAllType.RENT.getCode()); WxBillSum rentSum = billAllHelper.getBillSum(wxMerchant,starttime, enttime); + rentSum.setBillName(EnumBillAllType.RENT.getMessage()); wxMerchant.setBillType(EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode()); WxBillSum rentBussinessManageSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + rentBussinessManageSum.setBillName(EnumBillAllType.RENT_BUSSINESS_MANAGE.getMessage()); wxMerchant.setBillType(EnumBillAllType.RENT_OPERATION_MANAGE.getCode()); WxBillSum rentOperationManageSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + rentOperationManageSum.setBillName(EnumBillAllType.RENT_OPERATION_MANAGE.getMessage()); wxMerchant.setBillType(EnumBillAllType.RENT_DEPOSIT.getCode()); WxBillSum rentDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + rentDepositSum.setBillName(EnumBillAllType.RENT_DEPOSIT.getMessage()); wxMerchant.setBillType(EnumBillAllType.PROPERTY.getCode()); WxBillSum propertySum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + propertySum.setBillName(EnumBillAllType.PROPERTY.getMessage()); wxMerchant.setBillType(EnumBillAllType.PROPERTY_DEPOSIT.getCode()); WxBillSum propertyDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + propertyDepositSum.setBillName(EnumBillAllType.PROPERTY_DEPOSIT.getMessage()); wxMerchant.setBillType(EnumBillAllType.DAILY.getCode()); WxBillSum dailySum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + dailySum.setBillName(EnumBillAllType.DAILY.getMessage()); wxMerchant.setBillType(EnumBillAllType.OTHER.getCode()); WxBillSum otherSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + otherSum.setBillName(EnumBillAllType.OTHER.getMessage()); wxMerchant.setBillType(EnumBillAllType.OTHER_DEPOSIT.getCode()); WxBillSum otherDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); + otherDepositSum.setBillName(EnumBillAllType.OTHER_DEPOSIT.getMessage()); vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentBussinessManageSum.getNeedPay(),rentOperationManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay())); From 827a35cb501c4dca3aafc4fbe76d5c4c0d562796 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 08:51:29 +0800 Subject: [PATCH 32/66] fix --- .../market/WxFinancePrintController.java | 2 +- .../controller/rent/WxAllBillController.java | 16 +++++ .../domain/vo/PrintMerchantSettleVo.java | 18 ++++++ .../enums/EnumFinancePrintDataType.java | 5 +- .../print/data/PrintBillDataHandler.java | 2 +- .../data/PrintFinanceReceiveDataHandler.java | 2 +- .../data/PrintMerchantSettleDataHandler.java | 63 +++++++++++++++++++ .../service/WxFinancePrintService.java | 3 +- .../impl/WxFinancePrintServiceImpl.java | 24 ++++++- 9 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java create mode 100644 mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java index 52ea04cf8..6622a8e74 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinancePrintController.java @@ -127,7 +127,7 @@ public class WxFinancePrintController extends BaseController { if (StringUtils.isBlank(tenantId)||null == dataIds || dataIds.size() <= 0 || null == templateId) { return new ResultData(Result.ERROR,"参数不对"); } - return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,templateId,dataIds)); + return new ResultData(wxFinancePrintService.parseTemplateData(tenantId,templateId,dataIds,null)); } @ApiOperation("") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 6558ccddf..123fdbada 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; @@ -36,6 +37,7 @@ import com.iformall.service.SysConfigService; import com.iformall.service.WxAllBillService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxEnergyService; +import com.iformall.service.WxFinancePrintService; import com.iformall.service.WxFinanceService; import com.iformall.service.WxMerchantService; import com.iformall.service.WxPayAccountBillService; @@ -98,6 +100,9 @@ public class WxAllBillController extends BillBaseController { @Autowired WxAllBillService wxAllBillService; + @Autowired + private WxFinancePrintService wxFinancePrintService; + /** * 商户账单汇总计费列表 * @param wxMerchant @@ -772,5 +777,16 @@ public class WxAllBillController extends BillBaseController { record.setIsPreview(EnumYesOrNo.NO.getCode()); return new ResultData(wxAllBillService.getBillMonthSum(record)); } + + @ApiOperation("预览结算单") + @PostMapping("viewSettleTemplate") + @TenantIgnore + public ResultData viewSettleTemplate(@RequestBody WxMerchant merchant,Long templateId) { + if (null == merchant.getId()) { + return new ResultData(Result.ERROR,"清选择商户"); + } + merchant.updateTenantInfo(getTenantInfo()); + return new ResultData(wxFinancePrintService.parseTemplateData(merchant.getTenantId(),templateId,null,merchant)); + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java new file mode 100644 index 000000000..77fea0df5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/PrintMerchantSettleVo.java @@ -0,0 +1,18 @@ +package com.iformall.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class PrintMerchantSettleVo implements Serializable{ + + private static final long serialVersionUID = 1L; + + private Date startDate; + + private Date endDate; + + private Date ReceiveDate; +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java b/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java index 7eb9f66bf..b7a6e7a60 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFinancePrintDataType.java @@ -2,8 +2,9 @@ package com.iformall.enums; public enum EnumFinancePrintDataType { - FINANCE_RECEIVE(1,"财务收付款数据"), - BILL(2,"账单数据") + FINANCE_RECEIVE(1,"财务收付款单"), + BILL(2,"账单"), + RENT_OWE(3,"结算单") ; public static EnumFinancePrintDataType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java index 8dd59cd97..93f344858 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintBillDataHandler.java @@ -56,7 +56,7 @@ public class PrintBillDataHandler extends AbstractPrintDataParser { }else if (name.equals("billRemark")) { return receive.getBillRemark(); } - return o; + return null; } } diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java index e98b540f5..86ed6ceb1 100644 --- a/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintFinanceReceiveDataHandler.java @@ -51,7 +51,7 @@ public class PrintFinanceReceiveDataHandler extends AbstractPrintDataParser { } return ""; } - return o; + return null; } } diff --git a/mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java b/mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java new file mode 100644 index 000000000..9accf50d6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/print/data/PrintMerchantSettleDataHandler.java @@ -0,0 +1,63 @@ +package com.iformall.print.data; + +import java.util.Map; + +import org.springframework.stereotype.Service; + +import com.iformall.domain.po.WxAllBill; +import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxFinanceReceive; +import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.vo.PrintMerchantSettleVo; +import com.iformall.utils.DateUtils; + +@Service +public class PrintMerchantSettleDataHandler extends AbstractPrintDataParser { + + + @Override + public Object getObjectValue(String name, Object o,Map merchantMap,Map feesMap) { + PrintMerchantSettleVo receive = (PrintMerchantSettleVo) o; +// if (name.equals("id")) { +// return receive.getId(); +// }else if (name.equals("createtime")) { +// return DateUtils.date2String(receive.getCreatetime()); +// }else if (name.equals("receivePay")) { +// return receive.getReceivePay(); +// }else if (name.equals("pay")) { +// return receive.getPay(); +// }else if (name.equals("setOff")) { +// return receive.getSetOff(); +// }else if (name.equals("starttime")) { +// return DateUtils.date2String(receive.getStarttime()); +// }else if (name.equals("endtime")) { +// return DateUtils.date2String(receive.getEndtime()); +// }else if (name.equals("owe")) { +// return receive.getOwe(); +// }else if (name.equals("statusName")) { +// return receive.getStatusName(); +// }else if (name.equals("merchantName")) { +// if (null != merchantMap) { +// WxMerchant m = merchantMap.get(receive.getMerchantId()); +// if (null != m) { +// return m.getName(); +// } +// } +// return ""; +// }else if (name.equals("energyFeesName")) { +// if (null != feesMap) { +// WxEnergyFees f = feesMap.get(receive.getEnergyFeesId()); +// if (null != f) { +// return f.getName(); +// } +// } +// return ""; +// }else if (name.equals("returnPay")) { +// return receive.getReturnPay(); +// }else if (name.equals("billRemark")) { +// return receive.getBillRemark(); +// } + return null; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java index ae9719da2..2b8f69e7e 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinancePrintService.java @@ -3,6 +3,7 @@ package com.iformall.service; import java.util.List; import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; +import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.PrintVo; /** */ @@ -15,5 +16,5 @@ public interface WxFinancePrintService { void update(WxFinancePrintTemplate record); void copy(WxFinancePrintTemplate record); void setTemplatesDel(WxFinancePrintTemplate record); - List parseTemplateData(String tenantId,Long templateId,List dataIds); + List parseTemplateData(String tenantId,Long templateId,List dataIds,BaseEntity entity); } 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 bdce60af1..9d1028548 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinancePrintServiceImpl.java @@ -17,7 +17,9 @@ import com.iformall.domain.po.WxFinancePrintData; import com.iformall.domain.po.WxFinancePrintTemplate; import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.PrintMerchantSettleVo; import com.iformall.domain.vo.PrintVo; import com.iformall.enums.EnumFinancePrintDataType; import com.iformall.enums.EnumYesOrNo; @@ -26,6 +28,7 @@ import com.iformall.mapper.WxFinancePrintDataMapper; import com.iformall.mapper.WxFinancePrintTemplateMapper; import com.iformall.print.data.PrintBillDataHandler; import com.iformall.print.data.PrintFinanceReceiveDataHandler; +import com.iformall.print.data.PrintMerchantSettleDataHandler; import com.iformall.service.WxAllBillService; import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinancePrintService; @@ -67,6 +70,9 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { @Autowired PrintBillDataHandler printBillDataHandler; + @Autowired + PrintMerchantSettleDataHandler printMerchantSettleDataHandler; + @Lazy @Autowired WxMerchantService wxMerchantService; @@ -157,7 +163,7 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { } @Override - public List parseTemplateData(String tenantId, Long templateId, List dataIds) { + public List parseTemplateData(String tenantId, Long templateId, List dataIds,BaseEntity entity) { WxFinancePrintTemplate template = this.getTemplateById(templateId); if (null == template) { return null; @@ -204,6 +210,22 @@ public class WxFinancePrintServiceImpl implements WxFinancePrintService { voList.add(vo); } return voList; + }else if (printDatatype.getCode().intValue() == EnumFinancePrintDataType.RENT_OWE.getCode()) { + WxMerchant bq = (WxMerchant) entity; + List merchantList = wxMerchantService.findList(bq); + if (null == merchantList || merchantList.size() <= 0 ) { + return null; + } + WxMerchant m = merchantList.get(0); + List voList = new ArrayList(); + //TODO 获取结算单信息 + PrintMerchantSettleVo sv = null; + + PrintVo vo = new PrintVo(); + vo.setDataId(templateId); + vo.setTemplate(printMerchantSettleDataHandler.parse(template.getContent(), sv,merchantMap,feesMap)); + voList.add(vo); + return voList; } return null; } From 53b67a230da1a80e96cfa70d0b1b5bc89a5cda21 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 09:33:49 +0800 Subject: [PATCH 33/66] fix --- .../com/iformall/domain/po/WxRentContract.java | 4 +--- .../service/impl/WxRentContractServiceImpl.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index c631a33a8..9f706c889 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -310,9 +310,6 @@ public class WxRentContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "联营扣点比率", name = "payRatio") private String payRatio; -// @io.swagger.annotations.ApiModelProperty(value = "联营扣点跳点设置", name = "busDiscountRatio") -// private String busDiscountRatio; - @io.swagger.annotations.ApiModelProperty(value = "保底营业额", name = "revenue") private String revenue; @@ -492,6 +489,7 @@ public class WxRentContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "合同类型", name = "contractType") private Integer contractType; + //联营扣点跳点设置 @TableField(exist = false) private List revenueJumps; @io.swagger.annotations.ApiModelProperty(value = "联营跳点设置说明", name = "revenueJumpsRemark") diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index dc94bb5b3..e7cf878fd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -754,12 +754,14 @@ public class WxRentContractServiceImpl implements WxRentContractService { List jlist = new ArrayList(); for (int i = 0 ; i < record.getRevenueJumps().size(); i++) { WxRentContractRevenueJump jp = record.getRevenueJumps().get(i); - jp.updateTenantInfo(record); - jp.setId(idWorker.nextId()); - jp.setRentContractId(record.getId()); - jp.setCreateTime(new Date()); - jp.setUpdateTime(new Date()); - jlist.add(jp); + if (StringUtils.isNotBlank(jp.getMinMoney())) { + jp.updateTenantInfo(record); + jp.setId(idWorker.nextId()); + jp.setRentContractId(record.getId()); + jp.setCreateTime(new Date()); + jp.setUpdateTime(new Date()); + jlist.add(jp); + } } if (jlist.size() > 0 ) { wxRentContractRevenueJumpMapper.inertJumps(record.getTenantId(), jlist); From 25096de8f089f2f98d15427f4a24cc8055c5d202 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 10:28:40 +0800 Subject: [PATCH 34/66] fix --- .../com/iformall/service/impl/WxRentContractServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index e7cf878fd..9382c5bc7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1209,7 +1209,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { WxRentContractFreePeriod fp = freePeriods.get(i); List dates = DateUtils.getAllDays(fp.getStartDate(), fp.getEndDate()); if (null != dates && dates.size() > 0 ) { - allDate.retainAll(dates); + allDate.removeAll(dates); allDate.addAll(dates); } } From 4630690a5b199047542eccaee7611067c39735b4 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 10:58:41 +0800 Subject: [PATCH 35/66] fix --- .../service/helper/WxRentContractHelper.java | 72 +++++++++++-------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index 65dfb9fb3..71a64b64f 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -584,9 +584,53 @@ public class WxRentContractHelper { if (validDays.size() <= 0 ) { return null; } + return validDays; } + public static void main(String[] args) { + Date start = DateUtils.str2Date("2024-08-05 00:00:00").getTime(); + Date end = DateUtils.str2Date("2025-11-04 23:59:59").getTime(); + + Date d1 = DateUtils.str2Date("2024-07-31 00:00:00").getTime(); + Date d2 = DateUtils.str2Date("2024-08-03 00:00:00").getTime(); + Date d3 = DateUtils.str2Date("2024-08-06 00:00:00").getTime(); + Date d4 = DateUtils.str2Date("2024-08-31 00:00:00").getTime(); + Date d5 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); + Date d6 = DateUtils.str2Date("2024-09-11 00:00:00").getTime(); + Date d7 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); + + List freeDays = new ArrayList(); +// freeDays.add(d1); +// freeDays.add(d2); +// freeDays.add(d3); +// freeDays.add(d4); +// freeDays.add(d5); +// freeDays.add(d6); +// freeDays.add(d7); + + Date d11 = DateUtils.str2Date("2024-08-20 00:00:00").getTime(); + Date d21 = DateUtils.str2Date("2024-09-19 00:00:00").getTime(); + List frees1 = DateUtils.getAllDays(d11, d21); + freeDays.addAll(frees1); + + Date d111 = DateUtils.str2Date("2024-10-01 00:00:00").getTime(); + Date d211 = DateUtils.str2Date("2024-10-31 00:00:00").getTime(); + List frees2 = DateUtils.getAllDays(d111, d211); + freeDays.addAll(frees2); + + + Date d11111 = DateUtils.str2Date("2024-09-07 00:00:00").getTime(); + Date d21111 = DateUtils.str2Date("2024-10-06 00:00:00").getTime(); + List dds = getValidDays(d11111,d21111,freeDays); + System.out.println(dds.size()); + //String dayMoney = getNeedPay(freeDays, 2, new BigDecimal(10), start, end, EnumRentDayPriceCalcute.AVERAGE_DAYS, 30); + //System.out.println(dayMoney); + + //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); + //System.out.println(monthMoney); + } + //查询当前月内的金额 private static NeedPayDTO getCurrentMonthPay(Date start,Date end, BigDecimal priceMonth,Integer decimalSize,List validDays,Integer dayPriceCalcute,Integer monthAvageDays) { NeedPayDTO np = new NeedPayDTO(); @@ -772,33 +816,5 @@ public class WxRentContractHelper { } return 0; } - - public static void main(String[] args) { - Date start = DateUtils.str2Date("2024-08-05 00:00:00").getTime(); - Date end = DateUtils.str2Date("2025-11-04 23:59:59").getTime(); - - Date d1 = DateUtils.str2Date("2024-07-31 00:00:00").getTime(); - Date d2 = DateUtils.str2Date("2024-08-03 00:00:00").getTime(); - Date d3 = DateUtils.str2Date("2024-08-06 00:00:00").getTime(); - Date d4 = DateUtils.str2Date("2024-08-31 00:00:00").getTime(); - Date d5 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); - Date d6 = DateUtils.str2Date("2024-09-11 00:00:00").getTime(); - Date d7 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); - - List freeDays = new ArrayList(); - freeDays.add(d1); - freeDays.add(d2); - freeDays.add(d3); - freeDays.add(d4); - freeDays.add(d5); - freeDays.add(d6); - freeDays.add(d7); - - //String dayMoney = getNeedPay(freeDays, 2, new BigDecimal(10), start, end, EnumRentDayPriceCalcute.AVERAGE_DAYS, 30); - //System.out.println(dayMoney); - - //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); - //System.out.println(monthMoney); - } } From 47e13cd55590abd77a90930dd1aa7ad401e6babf Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 10:59:05 +0800 Subject: [PATCH 36/66] fix --- .../service/helper/WxRentContractHelper.java | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index 71a64b64f..722e9e0a1 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -588,49 +588,6 @@ public class WxRentContractHelper { return validDays; } - public static void main(String[] args) { - Date start = DateUtils.str2Date("2024-08-05 00:00:00").getTime(); - Date end = DateUtils.str2Date("2025-11-04 23:59:59").getTime(); - - Date d1 = DateUtils.str2Date("2024-07-31 00:00:00").getTime(); - Date d2 = DateUtils.str2Date("2024-08-03 00:00:00").getTime(); - Date d3 = DateUtils.str2Date("2024-08-06 00:00:00").getTime(); - Date d4 = DateUtils.str2Date("2024-08-31 00:00:00").getTime(); - Date d5 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); - Date d6 = DateUtils.str2Date("2024-09-11 00:00:00").getTime(); - Date d7 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); - - List freeDays = new ArrayList(); -// freeDays.add(d1); -// freeDays.add(d2); -// freeDays.add(d3); -// freeDays.add(d4); -// freeDays.add(d5); -// freeDays.add(d6); -// freeDays.add(d7); - - Date d11 = DateUtils.str2Date("2024-08-20 00:00:00").getTime(); - Date d21 = DateUtils.str2Date("2024-09-19 00:00:00").getTime(); - List frees1 = DateUtils.getAllDays(d11, d21); - freeDays.addAll(frees1); - - Date d111 = DateUtils.str2Date("2024-10-01 00:00:00").getTime(); - Date d211 = DateUtils.str2Date("2024-10-31 00:00:00").getTime(); - List frees2 = DateUtils.getAllDays(d111, d211); - freeDays.addAll(frees2); - - - Date d11111 = DateUtils.str2Date("2024-09-07 00:00:00").getTime(); - Date d21111 = DateUtils.str2Date("2024-10-06 00:00:00").getTime(); - List dds = getValidDays(d11111,d21111,freeDays); - System.out.println(dds.size()); - //String dayMoney = getNeedPay(freeDays, 2, new BigDecimal(10), start, end, EnumRentDayPriceCalcute.AVERAGE_DAYS, 30); - //System.out.println(dayMoney); - - //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); - //System.out.println(monthMoney); - } - //查询当前月内的金额 private static NeedPayDTO getCurrentMonthPay(Date start,Date end, BigDecimal priceMonth,Integer decimalSize,List validDays,Integer dayPriceCalcute,Integer monthAvageDays) { NeedPayDTO np = new NeedPayDTO(); @@ -816,5 +773,48 @@ public class WxRentContractHelper { } return 0; } + + public static void main(String[] args) { + Date start = DateUtils.str2Date("2024-08-05 00:00:00").getTime(); + Date end = DateUtils.str2Date("2025-11-04 23:59:59").getTime(); + + Date d1 = DateUtils.str2Date("2024-07-31 00:00:00").getTime(); + Date d2 = DateUtils.str2Date("2024-08-03 00:00:00").getTime(); + Date d3 = DateUtils.str2Date("2024-08-06 00:00:00").getTime(); + Date d4 = DateUtils.str2Date("2024-08-31 00:00:00").getTime(); + Date d5 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); + Date d6 = DateUtils.str2Date("2024-09-11 00:00:00").getTime(); + Date d7 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); + + List freeDays = new ArrayList(); +// freeDays.add(d1); +// freeDays.add(d2); +// freeDays.add(d3); +// freeDays.add(d4); +// freeDays.add(d5); +// freeDays.add(d6); +// freeDays.add(d7); + + Date d11 = DateUtils.str2Date("2024-08-20 00:00:00").getTime(); + Date d21 = DateUtils.str2Date("2024-09-19 00:00:00").getTime(); + List frees1 = DateUtils.getAllDays(d11, d21); + freeDays.addAll(frees1); + + Date d111 = DateUtils.str2Date("2024-10-01 00:00:00").getTime(); + Date d211 = DateUtils.str2Date("2024-10-31 00:00:00").getTime(); + List frees2 = DateUtils.getAllDays(d111, d211); + freeDays.addAll(frees2); + + + Date d11111 = DateUtils.str2Date("2024-09-07 00:00:00").getTime(); + Date d21111 = DateUtils.str2Date("2024-10-06 00:00:00").getTime(); + List dds = getValidDays(d11111,d21111,freeDays); + System.out.println(dds.size()); + //String dayMoney = getNeedPay(freeDays, 2, new BigDecimal(10), start, end, EnumRentDayPriceCalcute.AVERAGE_DAYS, 30); + //System.out.println(dayMoney); + + //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); + //System.out.println(monthMoney); + } } From 6748f80e9eca09fe050395fea0ea3aee45e03e53 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 13:31:22 +0800 Subject: [PATCH 37/66] fix --- .../com/iformall/domain/po/WxEnergyFees.java | 10 +-- .../impl/WxPropertyContractServiceImpl.java | 61 ++++--------------- 2 files changed, 18 insertions(+), 53 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java index a97967256..df92e39c1 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java @@ -129,7 +129,7 @@ public class WxEnergyFees extends TenantEntity { priceD = priceD.multiply(new BigDecimal(count)); return priceD.toPlainString(); } - + //按天计算 if (this.timeUnit.intValue() == EnumFeesStandardsTimeUnit.DAY.getCode().intValue()) { BigDecimal priceD = new BigDecimal(this.price); priceD = priceD.multiply(new BigDecimal(count)); @@ -157,12 +157,12 @@ public class WxEnergyFees extends TenantEntity { } }else { Date startMonthEndDay = DateUtils.getLastDayForMonth(start); - int startDays = DateUtils.daysBetween(start, startMonthEndDay); - int startMonthDays = DateUtils.daysBetween(startMonthFirstDay, startMonthEndDay); + int startDays = DateUtils.daysBetween(start, startMonthEndDay)+1; + int startMonthDays = DateUtils.daysBetween(startMonthFirstDay, startMonthEndDay)+1; Date endMontFirstDay = DateUtils.getFirstDayForCurrMonth(end); - int endDays = DateUtils.daysBetween(endMontFirstDay, end); - int endMonthDays = DateUtils.daysBetween(endMontFirstDay, endMonthLastDay); + int endDays = DateUtils.daysBetween(endMontFirstDay, end)+1; + int endMonthDays = DateUtils.daysBetween(endMontFirstDay, endMonthLastDay)+1; int months = WxRentContractHelper.getMonths(sd.format(DateUtils.getDaySet(startMonthEndDay, Calendar.DATE, 1)),sd.format(DateUtils.getDaySet(endMontFirstDay, Calendar.DATE, -1))); months++; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 46a65cf6b..a44101f08 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -622,18 +622,23 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService if (wxPropertyContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) { BigDecimal priceD = new BigDecimal(price); for (int i = 1; i < size; i++) { - priceD = priceD.add(priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(100))); - priceArr[i] = priceD.setScale(wxPropertyContract.getDecimalSize(), RoundingMode.HALF_EVEN).toPlainString(); + priceD = priceD.add(priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000))); + priceArr[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_EVEN).toPlainString(); } } else if (wxPropertyContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) { BigDecimal priceD = new BigDecimal(price); for (int i = 1; i < size; i++) { - priceD = priceD.add(new BigDecimal(integers.get(i))); - priceArr[i] = priceD.setScale(wxPropertyContract.getDecimalSize(), RoundingMode.HALF_EVEN).toPlainString(); + priceD = priceD.add(new BigDecimal(integers.get(i)).divide(new BigDecimal(100))); + priceArr[i] = priceD.setScale(Constant.default_long_decimal_size, RoundingMode.HALF_EVEN).toPlainString(); } - } else { - for (int i = 1; i < size; i++) { - priceArr[i] = new BigDecimal(integers.get(i)).setScale(wxPropertyContract.getDecimalSize(), RoundingMode.HALF_EVEN).toPlainString(); + }else if (wxPropertyContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.CUSTOM.getCode())){ + for (int i = 1; i < size; i++) { + priceArr[i] = new BigDecimal(integers.get(i)).divide(new BigDecimal(100)).setScale(Constant.default_long_decimal_size, RoundingMode.HALF_UP).toPlainString(); + } + }else if (wxPropertyContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.FIX_RATIO.getCode())){ + BigDecimal priceD = new BigDecimal(price); + for (int i = 1; i < size; i++) { + priceArr[i] = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(100)).toPlainString(); } } @@ -921,47 +926,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService needpay = WxRentContractHelper.getMonthNeedPay(null,wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,wxRentContract.getDayPriceCalcute(),wxRentContract.getMonthAverageDays()); return needpay; } - - SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); - SimpleDateFormat sdD = new SimpleDateFormat("d"); - SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat sdMR = new SimpleDateFormat("MM-dd"); - - if(i == billTimeVoListSize - 1){//最后 - if(sdMR.format(startDate).equals(sdMR.format(wxRentContract.getStartDate())) && sdMR.format(endDate).equals(sdMR.format(wxRentContract.getEndDate())) ){ - int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01"); - months++; - needpay = new BigDecimal(months).multiply(priceD).toPlainString(); - }else { - needpay = WxRentContractHelper.getMonthNeedPay(null,wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,wxRentContract.getDayPriceCalcute(),wxRentContract.getMonthAverageDays()); - } - }else if(i == 0){//第一期 - if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ - if(isFirstDay(startDate)){ - int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01"); - months++; - needpay = new BigDecimal(months).multiply(priceD).toPlainString(); - }else{ - needpay = WxRentContractHelper.getMonthNeedPay(null,wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,wxRentContract.getDayPriceCalcute(),wxRentContract.getMonthAverageDays()); - } - }else{ - if(isFirstDay(startDate)){ - int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01"); - if(isFirstDay(startDate)){ - months++; - } - needpay = new BigDecimal(months).multiply(priceD).toPlainString(); - }else{ - needpay = WxRentContractHelper.getMonthNeedPay(null,wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,wxRentContract.getDayPriceCalcute(),wxRentContract.getMonthAverageDays()); - } - } - }else{//中间 - int months = WxRentContractHelper.getMonths(sdM.format(startDate)+"-01",sdM.format(endDate)+"-01"); - if(isFirstDay(startDate)){ - months++; - } - needpay = new BigDecimal(months).multiply(priceD).toPlainString(); - } + needpay = WxRentContractHelper.getMonthNeedPay(null,wxRentContract.getDecimalSize(),priceD, startDate, endDate,dayType,receivePeriod,wxRentContract.getDayPriceCalcute(),wxRentContract.getMonthAverageDays()); } return needpay; } From a920728d5d95063e90a014affe917f2db2c21e2d Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 14:12:40 +0800 Subject: [PATCH 38/66] fix --- .../com/iformall/domain/po/WxAllBill.java | 17 +++++++ .../com/iformall/domain/po/WxEnergyFees.java | 47 ++----------------- .../service/helper/WxRentContractHelper.java | 2 +- .../impl/WxPropertyContractServiceImpl.java | 9 ++-- 4 files changed, 29 insertions(+), 46 deletions(-) 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 648a920b3..0ff98575e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -11,6 +11,7 @@ import com.iformall.domain.vo.WxBillFeesStandardsListVo; import com.iformall.enums.EnumBillAction; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillStatus; +import com.iformall.utils.DateUtils; import lombok.Data; import lombok.EqualsAndHashCode; @@ -105,6 +106,14 @@ public class WxAllBill extends TenantEntity { @Excel(name = "周期开始时间", format = "yyyy-MM-dd", width = 20, orderNum = "4") @io.swagger.annotations.ApiModelProperty(value="开始时间",name="starttime") public Date starttime; + @TableField(exist = false) + private String starttimeStr; + public String getStarttimeStr() { + if (null != starttime) { + starttimeStr = DateUtils.date2String(starttime); + } + return starttimeStr; + } @Excel(name = "周期结束时间", format = "yyyy-MM-dd", width = 20, orderNum = "5") @io.swagger.annotations.ApiModelProperty(value="结束时间",name="endtime") @@ -113,6 +122,14 @@ public class WxAllBill extends TenantEntity { public Date endtimeBegin; @TableField(exist = false) public Date endtimeEnd; + @TableField(exist = false) + private String endtimeStr; + public String getEndtimeStr() { + if (null != endtime) { + endtimeStr = DateUtils.date2String(endtime); + } + return endtimeStr; + } @Excel(name = "欠缴金额(元)", width = 20, orderNum = "11") @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java index df92e39c1..683a1e3e9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumBillAllType; +import com.iformall.enums.EnumContractReceivePeriodUnit; import com.iformall.enums.EnumEnergyPublicCalcuteRule; import com.iformall.enums.EnumFeesStandardsCalcuteUnit; import com.iformall.enums.EnumFeesStandardsTimeUnit; @@ -19,6 +20,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; @@ -118,7 +120,8 @@ public class WxEnergyFees extends TenantEntity { return ""; } - public String calcuteTotalMoney(Integer decimalSize,Date start,Date end,String count,boolean isFixed,EnumRentDayPriceCalcute priceCalcute,Integer monthDays ) { + public String calcuteTotalMoney(Integer decimalSize,Date start,Date end,String count,boolean isFixed,EnumRentDayPriceCalcute priceCalcute,Integer monthDays, + EnumContractReceivePeriodUnit dayType,Integer receivePeriod ) { if (StringUtils.isBlank(count)) { count = "1"; } @@ -141,47 +144,7 @@ public class WxEnergyFees extends TenantEntity { priceMonth = new BigDecimal(price).divide(new BigDecimal(12),Constant.default_long_decimal_size,BigDecimal.ROUND_HALF_UP); } priceMonth = priceMonth.multiply(new BigDecimal(count)); - - //如果开始时间是1号,结束时间是当月最后一天,则是整月,*月数。 - //如果不是整月,跨月了的,则计算: 开始时间到当月底+ 中间整月 + 结束时间月1号到结束时间 - SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - Date startMonthFirstDay = DateUtils.getFirstDayForCurrMonth(start); - Date endMonthLastDay = DateUtils.getLastDayForMonth(end); - if(sd.format(start).equals(sd.format(startMonthFirstDay)) && sd.format(end).equals(sd.format(endMonthLastDay)) ){ - int months = WxRentContractHelper.getMonths(sd.format(start),sd.format(end)); - months++; - if (months > 0 ) { - return priceMonth.multiply(new BigDecimal(months)).toPlainString(); - }else { - return priceMonth.toPlainString(); - } - }else { - Date startMonthEndDay = DateUtils.getLastDayForMonth(start); - int startDays = DateUtils.daysBetween(start, startMonthEndDay)+1; - int startMonthDays = DateUtils.daysBetween(startMonthFirstDay, startMonthEndDay)+1; - - Date endMontFirstDay = DateUtils.getFirstDayForCurrMonth(end); - int endDays = DateUtils.daysBetween(endMontFirstDay, end)+1; - int endMonthDays = DateUtils.daysBetween(endMontFirstDay, endMonthLastDay)+1; - - int months = WxRentContractHelper.getMonths(sd.format(DateUtils.getDaySet(startMonthEndDay, Calendar.DATE, 1)),sd.format(DateUtils.getDaySet(endMontFirstDay, Calendar.DATE, -1))); - months++; - - if (startDays > 0 ) { - priceMonth = priceMonth.multiply(new BigDecimal(startDays)).divide(new BigDecimal(startMonthDays),Constant.default_long_decimal_size,BigDecimal.ROUND_HALF_UP); - } - - if (endDays > 0 ) { - priceMonth = priceMonth.multiply(new BigDecimal(endDays)).divide(new BigDecimal(endMonthDays),Constant.default_long_decimal_size,BigDecimal.ROUND_HALF_UP); - } - - if (months > 0 ) { - priceMonth = priceMonth.multiply(new BigDecimal(months)); - } - - return priceMonth.toPlainString(); - - } + return WxRentContractHelper.getMonthNeedPay(null,decimalSize,priceMonth, start, end,dayType.getCode(),receivePeriod,priceCalcute.getCode(),monthDays); } } diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index 722e9e0a1..dc9fcb53f 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -411,7 +411,7 @@ public class WxRentContractHelper { if (null != fees.getCalcuteUnit() && fees.getCalcuteUnit().intValue() == EnumFeesStandardsCalcuteUnit.MM.getCode().intValue()) { count = rentArea; } - vo.setTotal(fees.calcuteTotalMoney(decimalSize, billStartDate, billEndDate, count,true,null,null)); + vo.setTotal(fees.calcuteTotalMoney(decimalSize, billStartDate, billEndDate, count,true,null,null,null,null)); vo.setReceiveDate(DateUtils.getDaySet(billStartDate,Calendar.DATE,-1)); vo.setFeeStandards(fees); retList.add(vo); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index a44101f08..b6caeca0c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -889,11 +889,14 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService WxBillFeesStandardsListVo bfsvo = unFixedList.get(j); WxEnergyFees feeStandars = bfsvo.getFeeStandards(); if(EnumFeesStandardsCalcuteUnit.MM.getCode().intValue() == feeStandars.getCalcuteUnit().intValue()) { - bfsvo.setTotal(feeStandars.calcuteTotalMoney(wxPropertyContract.getDecimalSize(), start, end,wxPropertyContract.getRentArea(),false,dayPrice,wxPropertyContract.getMonthAverageDays())); + bfsvo.setTotal(feeStandars.calcuteTotalMoney(wxPropertyContract.getDecimalSize(), start, end,wxPropertyContract.getRentArea(),false,dayPrice, + wxPropertyContract.getMonthAverageDays(),EnumContractReceivePeriodUnit.getEnum(wxPropertyContract.getReceivePeriodUnit()),wxPropertyContract.getReceivePeriod())); }else if (EnumFeesStandardsCalcuteUnit.HU.getCode().intValue() == feeStandars.getCalcuteUnit().intValue()) { - bfsvo.setTotal(feeStandars.calcuteTotalMoney(wxPropertyContract.getDecimalSize(), start, end,"1",false,dayPrice,wxPropertyContract.getMonthAverageDays())); + bfsvo.setTotal(feeStandars.calcuteTotalMoney(wxPropertyContract.getDecimalSize(), start, end,"1",false,dayPrice,wxPropertyContract.getMonthAverageDays(), + EnumContractReceivePeriodUnit.getEnum(wxPropertyContract.getReceivePeriodUnit()),wxPropertyContract.getReceivePeriod())); }else { - bfsvo.setTotal(feeStandars.calcuteTotalMoney(wxPropertyContract.getDecimalSize(), start, end,"1",false,dayPrice,wxPropertyContract.getMonthAverageDays())); + bfsvo.setTotal(feeStandars.calcuteTotalMoney(wxPropertyContract.getDecimalSize(), start, end,"1",false,dayPrice,wxPropertyContract.getMonthAverageDays(), + EnumContractReceivePeriodUnit.getEnum(wxPropertyContract.getReceivePeriodUnit()),wxPropertyContract.getReceivePeriod())); } bfsvo.setStart(start); bfsvo.setEnd(end); From f13810ab693c3451bd7383d7c5febd4de721d4dc Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 14:40:07 +0800 Subject: [PATCH 39/66] fix --- .../main/java/com/iformall/domain/po/WxPropertyContract.java | 2 +- .../iformall/service/impl/WxPropertyContractServiceImpl.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java index 9fe6bedd8..ddba07f15 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java @@ -205,7 +205,7 @@ public class WxPropertyContract extends TenantEntity { private String subjectName; - @io.swagger.annotations.ApiModelProperty(value = "1按租赁日生产2按计租日生成账单", name = "rentStartType") + @io.swagger.annotations.ApiModelProperty(value = "1按租赁日生产2按计租日生成账单EnumRentStartType", name = "rentStartType") private Integer rentStartType; @io.swagger.annotations.ApiModelProperty(value = "操作类型1区分租赁物业2合并租赁物业", name = "operationType") diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index b6caeca0c..9a10ab811 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -425,7 +425,10 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //重新生成 record.setRentalStartDate(wxPropertyContract.getRentalStartDate()); record.setRentalEndDate(wxPropertyContract.getRentalEndDate()); - record.setRentStartType(wxPropertyContract.getRentStartType()); + //切换的时候需要用传过来的类型 + if (null == record.getRentStartType()) { + record.setRentStartType(wxPropertyContract.getRentStartType()); + } record.setStartDate(wxPropertyContract.getStartDate()); record.setEndDate(wxPropertyContract.getEndDate()); record.setAdjustPeriod(wxPropertyContract.getAdjustPeriod()); From 424b5c1ddacb0fd6a7f41aa91fabf4427e0606fc Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 14:57:57 +0800 Subject: [PATCH 40/66] fix --- .../iformall/service/impl/WxPropertyContractServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 9a10ab811..2c3259223 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -834,6 +834,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService private WxAllBill generateBillProperty(WxPayAccountBill wxPayAccountBill,WxPropertyContract wxPropertyContract,Integer isPreview,Date start,Date end,Date receiveDate,String needpay, MallUserInfo user,Integer billcount,Map shopInfo,String standarsTotal,String remark,Long parentBillId,Long feesStandardsId) { + if (StringUtils.isBlank(needpay)) { + needpay = "0"; + }else { + needpay = new BigDecimal(needpay).setScale(wxPropertyContract.getDecimalSize(),BigDecimal.ROUND_HALF_UP).toPlainString(); + } final IdWorker idWorker = IdWorker.get(); WxAllBill wxBillProperty = new WxAllBill(); wxBillProperty.setIsPreview(isPreview); From f4dcddf5c8bd3cbaca3f402026bd467834d8dd76 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 15:52:05 +0800 Subject: [PATCH 41/66] fix --- .../db/migration/V202408000000002.sql | 7 +++++ .../domain/po/WxPropertyContract.java | 6 ++++ .../iformall/domain/po/WxRentContract.java | 6 ++++ .../impl/WxPropertyContractServiceImpl.java | 10 +++++++ .../impl/WxRentContractServiceImpl.java | 29 +++++++++---------- .../mapper/WxPropertyContractMapper.xml | 5 +++- .../resources/mapper/WxRentContractMapper.xml | 9 ++++-- 7 files changed, 53 insertions(+), 19 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V202408000000002.sql diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000002.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000002.sql new file mode 100644 index 000000000..dfa5545de --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000002.sql @@ -0,0 +1,7 @@ +ALTER TABLE wx_rent_contract ADD COLUMN first_bill_date_start timestamp COMMENT '首期账单开始时间'; +ALTER TABLE wx_rent_contract ADD COLUMN first_bill_date_end timestamp COMMENT '首期账单结束时间'; + +ALTER TABLE wx_property_contract ADD COLUMN first_bill_date_start timestamp COMMENT '首期账单开始时间'; +ALTER TABLE wx_property_contract ADD COLUMN first_bill_date_end timestamp COMMENT '首期账单结束时间'; + + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java index ddba07f15..bb1a7e0bc 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java @@ -242,6 +242,12 @@ public class WxPropertyContract extends TenantEntity { private String shopNumbers; @TableField(exist = false) private List shopIdsQuery; + + @io.swagger.annotations.ApiModelProperty(value = "首期账单开始时间", name = "firstBillDateStart") + private Date firstBillDateStart; + + @io.swagger.annotations.ApiModelProperty(value = "首期账单结束时间", name = "firstBillDateEnd") + private Date firstBillDateEnd; //查询过期提醒 @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 9f706c889..03d478bbd 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -447,6 +447,12 @@ public class WxRentContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "设计文件", name = "outDateNotifyPhone") private String designFile; + @io.swagger.annotations.ApiModelProperty(value = "首期账单开始时间", name = "firstBillDateStart") + private Date firstBillDateStart; + + @io.swagger.annotations.ApiModelProperty(value = "首期账单结束时间", name = "firstBillDateEnd") + private Date firstBillDateEnd; + //查询过期提醒 @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 2c3259223..332ad3e80 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -711,6 +711,16 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } } + if (null != billTimeVoList && billTimeVoList.size() > 0 ) { + BillTimeVo firstBillTime = billTimeVoList.get(0); + WxPropertyContract cupdate = new WxPropertyContract(); + cupdate.updateTenantInfo(wxPropertyContract); + cupdate.setId(wxPropertyContract.getId()); + cupdate.setFirstBillDateStart(firstBillTime.getStartDate()); + cupdate.setFirstBillDateEnd(firstBillTime.getEndDate()); + wxPropertyContractMapper.updateById(cupdate); + } + //结算其他金额 Date billStartDate = null; Date billEndDate = null; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 9382c5bc7..cb44d4304 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -825,22 +825,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { int dayType = wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode()) ? Calendar.DAY_OF_MONTH : Calendar.MONTH; Date date = new Date(); - Calendar instance = Calendar.getInstance(); - instance.setTime(wxRentContract.getRentalStartDate()); - instance.add(Calendar.DAY_OF_MONTH, -1); - Date time = instance.getTime(); - //wxBillDeposit.setReceiveDate(time); - - //账单开始时间 - instance.clear(); - instance.setTime(time); - instance.add(Calendar.DAY_OF_MONTH, 1); - wxBillDeposit.setStarttime(instance.getTime()); - //账单结束时间 - instance.clear(); - instance.setTime(time); - instance.add(dayType, wxRentContract.getLease()); - wxBillDeposit.setEndtime(instance.getTime()); + wxBillDeposit.setStarttime(wxRentContract.getFirstBillDateStart()); + wxBillDeposit.setEndtime(wxRentContract.getFirstBillDateEnd()); + wxBillDeposit.setStatus(EnumBillStatus.WAIT_PAY.getCode()); //wxBillDeposit.setExpiredDay(0L); //wxBillDeposit.setReceiveDate(time); @@ -1245,6 +1232,16 @@ public class WxRentContractServiceImpl implements WxRentContractService { billTimeVoList.add(billTimeVo); } } + + if (null != billTimeVoList && billTimeVoList.size() > 0 ) { + BillTimeVo firstBillTime = billTimeVoList.get(0); + WxRentContract cupdate = new WxRentContract(); + cupdate.updateTenantInfo(wxRentContract); + cupdate.setId(wxRentContract.getId()); + cupdate.setFirstBillDateStart(firstBillTime.getStartDate()); + cupdate.setFirstBillDateEnd(firstBillTime.getEndDate()); + wxRentContractMapper.updateById(cupdate); + } //免租期 List freePeriods = getFreeDays(wxRentContract); diff --git a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml index f77dc3917..963e71dfa 100644 --- a/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxPropertyContractMapper.xml @@ -64,13 +64,16 @@ + + + `id`,`merchant_id`,`decimal_size`,`price`,`rental_start_date`,`rental_end_date`,`create_type`,`shop_ids`,`shop_numbers`, `sign_date`,`receive_period`,`tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`,`price_detail`, `deposit`,`pay_date`,`is_del`,`merchant_name`,`brand`,`business_id`,`receive_period_unit`,`create_by`,`update_by`, - `shop_type`,`updatetime`,`createtime`,`rent_area`,`rent_shop_type`,`fees_standards_info`, + `shop_type`,`updatetime`,`createtime`,`rent_area`,`rent_shop_type`,`fees_standards_info`,`first_bill_date_start`,`first_bill_date_end`, `link_person`,`link_phone`,`pay_account`,`filename`,`lease`,`rent_contract_id`,`day_price_calcute`,`month_average_days`, `start_date`,`end_date`,`apply_status`,`adjust_period`,`business_type`,adjust_ratio,`rent_info`,fixed_price, `file_names`,price_unit,rent_price,subject_name,rent_start_type,`operation_type`,late_pay_ratio,late_pay_day,end_contract_time,out_date_notify_days,out_date_notify_phone diff --git a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml index c9b39a10a..e7a2a7f6a 100644 --- a/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxRentContractMapper.xml @@ -131,6 +131,9 @@ + + + @@ -138,7 +141,7 @@ `shop_type_sub`,`lease_purpose`,`contractual_rules`,`delivery_date`,`delivery_grace_period`,`opening_date`,`business_hours`,`scope_metre`, `decimal_size`,`price`,`rental_start_date`,`rental_end_date`,`sign_date`,`receive_period`,`receive_period_unit`, `tenant_id`,`parent_tenant_id`,`filepath`,`status`,`contract_number`,`price_detail`,`create_by`,`update_by`, - `first_party_bank_info`,`second_party_bank_info`,`second_party_tax_info`,`day_price_calcute`, + `first_party_bank_info`,`second_party_bank_info`,`second_party_tax_info`,`day_price_calcute`,`first_bill_date_start`,`first_bill_date_end`, `property_name`,`property_fee`,`fee_cycle`,`water_fee`,`electricity_fees`,`month_average_days`,`free_period_remark`, `deposit`,cashtype_content_lsit,cashtype_lsit,`pay_date`,`is_del`,`merchant_name`,`revenue_jumps_remark`, `brand`,`business_id`,`shop_type`,`shop_type_str`,`updatetime`,`createtime`,`link_person`,`link_phone`,`link_address`, @@ -382,6 +385,8 @@ + + @@ -390,7 +395,7 @@ rc.price as rent_price,rc.contract_number,rc.shop_name,rc.type,rc.apply_status,rc.price_detail,rc.revenue_fixed_rent_price,rc.revenue_rent_price, rc.rent_shop_type,rc.rent_info,pc.price as property_price,rc.merchant_id,pc.`status` as property_status, rc.price_unit as rent_price_unit,pc.price_unit as property_price_unit,rc.day_price_calcute,rc.free_period_remark, - rc.business_type businessType,rc.month_average_days,rc.revenue_jumps_remark + rc.business_type businessType,rc.month_average_days,rc.revenue_jumps_remark,rc.first_bill_date_start,rc.first_bill_date_end from wx_rent_contract rc left join wx_property_contract pc on rc.id=pc.rent_contract_id From f11f72b744d5df5816921fb2b46a5cd34851015b Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 16:01:20 +0800 Subject: [PATCH 42/66] fix --- .../com/iformall/service/impl/WxPropertyContractServiceImpl.java | 1 + .../com/iformall/service/impl/WxRentContractServiceImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 332ad3e80..32691dde6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -718,6 +718,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService cupdate.setId(wxPropertyContract.getId()); cupdate.setFirstBillDateStart(firstBillTime.getStartDate()); cupdate.setFirstBillDateEnd(firstBillTime.getEndDate()); + cupdate.setDecimalSize(null);//去掉默认的,避免更新 wxPropertyContractMapper.updateById(cupdate); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index cb44d4304..8bef23e2e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1240,6 +1240,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { cupdate.setId(wxRentContract.getId()); cupdate.setFirstBillDateStart(firstBillTime.getStartDate()); cupdate.setFirstBillDateEnd(firstBillTime.getEndDate()); + cupdate.setDecimalSize(null);//去掉默认的,避免更新 wxRentContractMapper.updateById(cupdate); } From 4e4d19f27229a9dc4951afe62c945d55d47a2f7b Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 16:43:00 +0800 Subject: [PATCH 43/66] fix --- .../src/main/java/com/iformall/domain/po/WxAllBill.java | 2 -- .../iformall/service/impl/WxPropertyContractServiceImpl.java | 3 +-- mallinkService/src/main/resources/mapper/WxAllBillMapper.xml | 2 -- 3 files changed, 1 insertion(+), 6 deletions(-) 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 0ff98575e..7915eccca 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxAllBill.java @@ -315,8 +315,6 @@ public class WxAllBill extends TenantEntity { @TableField(exist = false) private Integer hasParentBillId; @TableField(exist = false) - private Integer hasFeesStardarsId; - @TableField(exist = false) private List propertyContractIds; @TableField(exist = false) private List notInIds; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 32691dde6..26869308a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -258,10 +258,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxBillRent.setSortColumns("starttime asc"); wxBillRent.updateTenantInfo(tenantEntity); //一次性的和非一次性的都有这个属性,过滤掉,就是物业主账单 - wxBillRent.setHasFeesStardarsId(EnumYesOrNo.NO.getCode()); + wxBillRent.setHasParentBillId(EnumYesOrNo.NO.getCode()); List retList = wxAllBillMapper.findList(wxBillRent); //非一次性的有这个属性 - wxBillRent.setHasFeesStardarsId(EnumYesOrNo.YES.getCode()); wxBillRent.setHasParentBillId(EnumYesOrNo.YES.getCode()); List unFixedList = wxAllBillMapper.findList(wxBillRent); Map> childMap = null; diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml index 7a91c57b7..e9fff4bee 100644 --- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml @@ -88,8 +88,6 @@ and `merchant_id` is not null and `parent_bill_id` is not null and `parent_bill_id` is null - and `energy_fees_id` is not null - and `energy_fees_id` is null and `energy_reading_calcuteId` = #{energyReadingCalcuteId} and `energy_reading_id` = #{energyReadingId} From 82d0aa50791693d0ee1cebae239d774e4b641fc2 Mon Sep 17 00:00:00 2001 From: winter Date: Wed, 7 Aug 2024 17:22:32 +0800 Subject: [PATCH 44/66] fix --- .../controller/rent/WxAllBillController.java | 81 +++++++------------ .../com/iformall/domain/vo/WxBillSum.java | 6 +- .../com/iformall/mapper/WxAllBillMapper.java | 2 + .../iformall/service/WxAllBillService.java | 17 +--- .../service/helper/WxBillAllHelper.java | 6 ++ .../service/impl/WxAllBillServiceImpl.java | 6 ++ .../impl/WxPropertyContractServiceImpl.java | 9 ++- .../main/resources/mapper/WxAllBillMapper.xml | 14 ++++ 8 files changed, 68 insertions(+), 73 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java index 123fdbada..65f7380b3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java @@ -219,61 +219,34 @@ public class WxAllBillController extends BillBaseController { if (null != wxMerchant.getOnlyOwe() && EnumYesOrNo.YES.getCode().intValue() == wxMerchant.getOnlyOwe().intValue()) { wxMerchant.setOweBillBeforeDays(getOweBillBeforeDays()); } + //根据科目来 + List sumList = billAllHelper.getFeesBillSum(wxMerchant,starttime, enttime); + if (null == sumList ) { + return new ResultData(); + } - wxMerchant.setBillType(EnumBillAllType.RENT.getCode()); - WxBillSum rentSum = billAllHelper.getBillSum(wxMerchant,starttime, enttime); - rentSum.setBillName(EnumBillAllType.RENT.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode()); - WxBillSum rentBussinessManageSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - rentBussinessManageSum.setBillName(EnumBillAllType.RENT_BUSSINESS_MANAGE.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.RENT_OPERATION_MANAGE.getCode()); - WxBillSum rentOperationManageSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - rentOperationManageSum.setBillName(EnumBillAllType.RENT_OPERATION_MANAGE.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.RENT_DEPOSIT.getCode()); - WxBillSum rentDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - rentDepositSum.setBillName(EnumBillAllType.RENT_DEPOSIT.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.PROPERTY.getCode()); - WxBillSum propertySum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - propertySum.setBillName(EnumBillAllType.PROPERTY.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.PROPERTY_DEPOSIT.getCode()); - WxBillSum propertyDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - propertyDepositSum.setBillName(EnumBillAllType.PROPERTY_DEPOSIT.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.DAILY.getCode()); - WxBillSum dailySum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - dailySum.setBillName(EnumBillAllType.DAILY.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.OTHER.getCode()); - WxBillSum otherSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - otherSum.setBillName(EnumBillAllType.OTHER.getMessage()); - - wxMerchant.setBillType(EnumBillAllType.OTHER_DEPOSIT.getCode()); - WxBillSum otherDepositSum = billAllHelper.getBillSum(wxMerchant, starttime, enttime); - otherDepositSum.setBillName(EnumBillAllType.OTHER_DEPOSIT.getMessage()); - - vo.setNeedPay(billAllHelper.calcuteSum(rentSum.getNeedPay(),rentBussinessManageSum.getNeedPay(),rentOperationManageSum.getNeedPay(),rentDepositSum.getNeedPay(),propertySum.getNeedPay(), - propertyDepositSum.getNeedPay(),dailySum.getNeedPay(),otherSum.getNeedPay(),otherDepositSum.getNeedPay())); - vo.setPaid(billAllHelper.calcuteSum(rentSum.getPaid(),rentBussinessManageSum.getPaid(),rentOperationManageSum.getPaid(),rentDepositSum.getPaid(),propertySum.getPaid(), - propertyDepositSum.getPaid(),dailySum.getPaid(),otherSum.getPaid(),otherDepositSum.getPaid())); - vo.setOwe(billAllHelper.calcuteSum(rentSum.getOwe(),rentBussinessManageSum.getOwe(),rentOperationManageSum.getOwe(),rentDepositSum.getOwe(),propertySum.getOwe(), - propertyDepositSum.getOwe(),dailySum.getOwe(),otherSum.getOwe(),otherDepositSum.getOwe())); - - List sumlist = new ArrayList<>(); - sumlist.add(rentSum); - sumlist.add(rentBussinessManageSum); - sumlist.add(rentOperationManageSum); - sumlist.add(rentDepositSum); - sumlist.add(propertySum); - sumlist.add(propertyDepositSum); - sumlist.add(dailySum); - sumlist.add(otherSum); - sumlist.add(otherDepositSum); - vo.setBillSumList(sumlist); + WxEnergyFees fq = new WxEnergyFees(); + fq.updateTenantInfo(wxMerchant); + Map feesMap = wxEnergyService.getFeesMap(fq); + BigDecimal needpay = new BigDecimal(0); + BigDecimal paid = new BigDecimal(0); + BigDecimal owe = new BigDecimal(0); + for (int i = 0 ; i < sumList.size() ; i ++) { + WxBillSum s = sumList.get(i); + if (null != s.getEnergyFeesId() && null != feesMap) { + WxEnergyFees fees = feesMap.get(s.getEnergyFeesId()); + if (null != fees) { + s.setBillName(fees.getName()); + } + needpay = needpay.add(s.getNeedPayNumber()); + paid = paid.add(s.getPaidNumber()); + owe = owe.add(s.getOweNumber()); + } + } + vo.setNeedPay(needpay.toPlainString()); + vo.setPaid(paid.toPlainString()); + vo.setOwe(owe.toPlainString()); + vo.setBillSumList(sumList); return new ResultData(vo); } 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 0c8890755..6a1a9cdc8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillSum.java @@ -13,7 +13,11 @@ import com.baomidou.mybatisplus.annotation.TableField; public class WxBillSum implements Serializable { private static final long serialVersionUID = 1L; - + + private Long energyFeesId; + @TableField(exist = false) + private String energyFeesName; + //应收总金额 private String needPay = "0"; @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java index 11904f673..d317842a7 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxAllBillMapper.java @@ -30,6 +30,8 @@ public interface WxAllBillMapper extends CommonMapper { WxBillSum getBillMonthSum(WxAllBill wxBillRent); + List getFeesBillSum(WxAllBill wxBillRent); + List getMerchantIdList(WxAllBill wxBillRent); List getBillHotNotify(WxAllBill wxBillRent); diff --git a/mallinkService/src/main/java/com/iformall/service/WxAllBillService.java b/mallinkService/src/main/java/com/iformall/service/WxAllBillService.java index 441af9ab6..a32542bb1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxAllBillService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxAllBillService.java @@ -29,6 +29,8 @@ public interface WxAllBillService { WxBillSum getBillMonthSum(WxAllBill wxBillRent); + List getFeesBillSum(WxAllBill wxBillRent); + PageInfo listAsPage(WxAllBill record, Integer pageIndex, Integer pageSize); List getMerchantIds(WxAllBill wxBillRent); @@ -73,19 +75,4 @@ public interface WxAllBillService { void deleteEnergyReadingBills(WxAllBill wxBillDaily); - - - - - - - - - - - - - - - } diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java index 69962ef71..5fb9ebda2 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java @@ -112,6 +112,12 @@ public class WxBillAllHelper { return rentSum; } + public List getFeesBillSum(WxMerchant wxMerchant,Date starttime, Date enttime) { + WxAllBill br = new WxAllBill(); + updateQueryParm(wxMerchant, br,starttime,enttime); + return wxAllBillService.getFeesBillSum(br); + } + public List getBillHotNotify(WxMerchant wxMerchant,Date starttime, Date enttime) { WxAllBill br = new WxAllBill(); updateQueryParm(wxMerchant, br,starttime,enttime); 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 1a747919d..0f0692cb5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java @@ -152,6 +152,12 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill updateQueryParam(wxBillRent); return wxAllBillMapper.getBillMonthSum(wxBillRent); } + + @Override + public List getFeesBillSum(WxAllBill wxBillRent) { + updateQueryParam(wxBillRent); + return wxAllBillMapper.getFeesBillSum(wxBillRent); + } @Override public PageInfo listAsPage(WxAllBill record, Integer pageIndex, Integer pageSize) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 26869308a..9d04adec0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -257,10 +257,13 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxBillRent.setPropertyContractId(id); wxBillRent.setSortColumns("starttime asc"); wxBillRent.updateTenantInfo(tenantEntity); - //一次性的和非一次性的都有这个属性,过滤掉,就是物业主账单 - wxBillRent.setHasParentBillId(EnumYesOrNo.NO.getCode()); + //物业主账单 + wxBillRent.setEnergyFeesId(EnumBillAllType.PROPERTY.getEnergyFeesId()); List retList = wxAllBillMapper.findList(wxBillRent); - //非一次性的有这个属性 + + //获取非一次性的, + wxBillRent.setEnergyFeesId(null); + wxBillRent.setBillType(EnumBillAllType.PROPERTY.getCode()); wxBillRent.setHasParentBillId(EnumYesOrNo.YES.getCode()); List unFixedList = wxAllBillMapper.findList(wxBillRent); Map> childMap = null; diff --git a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml index e9fff4bee..d76b5e514 100644 --- a/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxAllBillMapper.xml @@ -151,6 +151,7 @@ + +