From a16741f6ea59f60b431fdd08733e7326fb723829 Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 26 Aug 2024 20:18:19 +0800 Subject: [PATCH] fix --- .../controller/market/WxEnergyController.java | 56 ++-- .../db/migration/V202408000000005.sql | 4 +- .../po/WxEnergyReadingCalcuteResult.java | 28 +- .../WxEnergyReadingCalcuteResultMapper.java | 2 + .../com/iformall/service/WxEnergyService.java | 6 +- .../service/helper/WxEnergyHelper.java | 57 ++-- .../service/impl/WxEnergyServiceImpl.java | 271 ++++++++++-------- .../WxEnergyReadingCalcuteResultMapper.xml | 25 +- 8 files changed, 244 insertions(+), 205 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java index e787c13b8..cea22d93c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java @@ -13,6 +13,7 @@ import com.iformall.domain.po.WxEnergyMeterChild; import com.iformall.domain.po.WxEnergyMeterReading; import com.iformall.domain.po.WxEnergyMeterShopFloor; import com.iformall.domain.po.WxEnergyReadingCalcute; +import com.iformall.domain.po.WxEnergyReadingCalcuteResult; import com.iformall.domain.po.WxMallFloor; import com.iformall.domain.po.WxShop; import com.iformall.domain.po.WxUserDataRule; @@ -579,7 +580,7 @@ public class WxEnergyController extends BaseController { //得到当前用户ID MallUserInfo user = getUser(); //request.getParameter("timeId"); - wxEnergyService.importReadingCalcute(mFile, user, request, response); + wxEnergyService.importReading(mFile, user, request, response); } catch (Exception e) { logger.error("importReading error.",e); throw new MallinkException(Result.ERROR,e.getMessage()); @@ -639,40 +640,41 @@ public class WxEnergyController extends BaseController { return new ResultData(wxEnergyService.getReadingCalcuteShopNumber(record)); } + @ApiOperation("科目抄表计算数据分页列表接口") + @GetMapping("readingCalcuteResultList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true), + }) + public ResultData readingCalcuteResultList(@ModelAttribute WxEnergyReadingCalcuteResult record, Integer pageNum, Integer pageSize) { + record.updateTenantInfo(getTenantInfo()); + record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); + PageInfo page = wxEnergyService.readingCalcuteResultListAsPage(record, pageNum, pageSize); + return new ResultData(page); + } + @ApiOperation("科目抄表计算记录导出") @GetMapping("readingCalcuteExport") public void readingCalcuteExport(@ModelAttribute WxEnergyReadingCalcute record, HttpServletRequest request, HttpServletResponse response) { - record.updateTenantInfo(getTenantInfo()); - WxEnergyReadingCalcute wrc = wxEnergyService.getReadingCalcuteById(record); - if (null == wrc) { - return; - } - wxEnergyService.exportReadingCalcute(wrc, request, response); - } - - @ApiOperation("科目抄表计算记录导入-修改单价") - @PostMapping(value = "/importReadingCalcute", consumes = "multipart/*") - public void importReadingCalcute(@RequestParam("file") MultipartFile mFile,HttpServletRequest request, HttpServletResponse response) { - try { - //得到当前用户ID - MallUserInfo user = getUser(); - wxEnergyService.importReadingCalcute(mFile, user, request, response); - } catch (Exception e) { - logger.error("importReading error.",e); - throw new MallinkException(Result.ERROR,e.getMessage()); - } +// record.updateTenantInfo(getTenantInfo()); +// WxEnergyReadingCalcute wrc = wxEnergyService.getReadingCalcuteById(record); +// if (null == wrc) { +// return; +// } +// wxEnergyService.exportReadingCalcute(wrc, request, response); } @ApiOperation("计算") @PostMapping("calcute") public ResultData calcute(@RequestBody WxEnergyReadingCalcute record) { - record.updateTenantInfo(getTenantInfo()); - WxEnergyReadingCalcute wrc = wxEnergyService.getReadingCalcuteById(record); - if (null == wrc) { - return new ResultData(Result.ERROR,"id错误"); - } - Integer number = wxEnergyService.calcuteReading(wrc, getUser()); - return new ResultData(number); +// record.updateTenantInfo(getTenantInfo()); +// WxEnergyReadingCalcute wrc = wxEnergyService.getReadingCalcuteById(record); +// if (null == wrc) { +// return new ResultData(Result.ERROR,"id错误"); +// } +// Integer number = wxEnergyService.calcuteReading(wrc, getUser()); +// return new ResultData(number); + return null; } @PostMapping("calcuteIsDel") diff --git a/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql b/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql index f338ac6ec..ca1257354 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202408000000005.sql @@ -1330,9 +1330,10 @@ CREATE TABLE `wx_energy_reading_calcute_result` ( `calcute_id` bigint(20) NOT NULL COMMENT '费用计算ID', `shop_id` bigint(20) NOT NULL COMMENT '店铺ID', `fees_id` bigint(20) NOT NULL COMMENT '科目编号', - `fees_calcute_id` bigint(20) NOT NULL COMMENT '费用标准编号', + `fees_shop_id` bigint(20) NOT NULL COMMENT '店铺科目编号', `meter_id` bigint(20) DEFAULT NULL COMMENT '表编号', `money` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '金额', + `period` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属年月', PRIMARY KEY (`id`), UNIQUE KEY `id_UNIQUE` (`id`), UNIQUE KEY `T_T_F` (`tenant_id`,`calcute_id`,`shop_id`) @@ -1344,3 +1345,4 @@ CREATE TABLE `wx_energy_reading_calcute_result` ( + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyReadingCalcuteResult.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyReadingCalcuteResult.java index 6ac28c81a..99e7c0eef 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyReadingCalcuteResult.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyReadingCalcuteResult.java @@ -6,6 +6,7 @@ import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.EnumYesOrNo; import com.iformall.utils.DateUtils; +import cn.afterturn.easypoi.excel.annotation.Excel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -28,30 +29,49 @@ public class WxEnergyReadingCalcuteResult extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="id",name="id") private Long id; + @Excel(name = "制单时间", format = "yyyy-MM-dd HH:mm:ss", width = 20, orderNum = "13") @io.swagger.annotations.ApiModelProperty(value="createTime",name="createTime") private Date createTime; @io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime") private Date updateTime; + @Excel(name = "计算ID", width = 20, orderNum = "1") @io.swagger.annotations.ApiModelProperty(value="计算ID",name="calcuteId") private Long calcuteId; + @Excel(name = "所属年月", width = 20, orderNum = "2") + @io.swagger.annotations.ApiModelProperty(value="所属年月",name="period") + private String period; + @io.swagger.annotations.ApiModelProperty(value="店铺ID",name="shopId") private Long shopId; + @Excel(name = "店铺号", width = 20, orderNum = "3") + @TableField(exist = false) + private String shopName; + @Excel(name = "楼栋", width = 20, orderNum = "4") + @TableField(exist = false) + private String buildingName; + @Excel(name = "楼层", width = 20, orderNum = "5") + @TableField(exist = false) + private String floorName; @io.swagger.annotations.ApiModelProperty(value="科目ID",name="feesId") private Long feesId; + @Excel(name = "科目", width = 20, orderNum = "6") + @TableField(exist = false) + private String feesName; @io.swagger.annotations.ApiModelProperty(value="费用标准ID",name="feesCalcuteId") - private Long feesCalcuteId; + private Long feesShopId; @io.swagger.annotations.ApiModelProperty(value="表ID",name="meterId") private Long meterId; + @Excel(name = "表号", width = 20, orderNum = "7") + @TableField(exist = false) + private String meterName; - @io.swagger.annotations.ApiModelProperty(value="抄表数据ID",name="readingId") - private Long readingId; - + @Excel(name = "金额", width = 20, orderNum = "8") @io.swagger.annotations.ApiModelProperty(value="金额",name="money") private String money; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyReadingCalcuteResultMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyReadingCalcuteResultMapper.java index 55143c3a4..9d7fbae7e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyReadingCalcuteResultMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyReadingCalcuteResultMapper.java @@ -16,4 +16,6 @@ public interface WxEnergyReadingCalcuteResultMapper extends CommonMapper resultList); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java b/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java index e525194c9..ff3479575 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java @@ -58,7 +58,7 @@ public interface WxEnergyService { List getFeesIdList(WxEnergyFees record); //计算标砖 - List getFeesCalcuteComponentList(WxEnergyFeesShop record); + List> getFeesCalcuteComponentList(WxEnergyFeesShop record); void createFeesShop(WxEnergyFeesShop record); void deleteFeesShop(WxEnergyFeesShop record); WxEnergyFeesShop getShopFeesCalcute(Long id,String tenantId); @@ -78,11 +78,11 @@ public interface WxEnergyService { //抄表科目计算数据 PageInfo readingCalcuteListAsPage(WxEnergyReadingCalcute record, Integer pageIndex, Integer pageSize); void saveOrUpdateReadingCalcute(WxEnergyReadingCalcute record,MallUserInfo userInfo); - WxEnergyReadingCalcute getReadingCalcuteById(WxEnergyReadingCalcute record); + PageInfo readingCalcuteResultListAsPage(WxEnergyReadingCalcuteResult record, Integer pageIndex, Integer pageSize); void exportReadingCalcute(WxEnergyReadingCalcute record,HttpServletRequest request, HttpServletResponse response); - void importReadingCalcute(MultipartFile mFile, MallUserInfo user, HttpServletRequest request, HttpServletResponse response); Integer calcuteReading(WxEnergyReadingCalcute record, MallUserInfo user); void setReadingCalcuteIsDel(WxEnergyReadingCalcute record); List getReadingCalcuteShopNumber(WxEnergyReadingCalcute record); + } diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java index dd2652dae..57cdc2574 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java @@ -1,67 +1,36 @@ package com.iformall.service.helper; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.joda.time.DateTime; -import org.joda.time.Months; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.iformall.domain.dto.NeedPayDTO; -import com.iformall.domain.po.WxEnergyFees; +import com.iformall.domain.po.WxEnergyFeesShop; +import com.iformall.domain.po.WxEnergyFeesTime; import com.iformall.domain.po.WxEnergyMeter; -import com.iformall.domain.po.WxPropertyContract; -import com.iformall.domain.po.WxRentContract; -import com.iformall.domain.vo.WxBillFeesStandardsListVo; -import com.iformall.enums.EnumContractReceivePeriodUnit; -import com.iformall.enums.EnumFeesStandardsCalcuteUnit; -import com.iformall.enums.EnumPriceUnit; -import com.iformall.enums.EnumRentContractAdjustPeriod; -import com.iformall.enums.EnumRentContractAdjustRatioWay; -import com.iformall.enums.EnumRentContractRentInputWay; -import com.iformall.enums.EnumRentContractType; -import com.iformall.enums.EnumRentDayPriceCalcute; -import com.iformall.enums.EnumYesOrNo; -import com.iformall.service.impl.WxRentContractServiceImpl; -import com.iformall.utils.Constant; -import com.iformall.utils.DateUtils; public class WxEnergyHelper { - public static List generateCalcuteComponent() { + public static List> generateCalcuteComponent() { //公共表,公摊总表,当前楼栋面积,当前楼层面积,总面积,店铺公摊系数 - List retList = new ArrayList(); + List> retList = new ArrayList>(); - Map currentBuildingArea = new HashMap(); + Map currentBuildingArea = new HashMap(); currentBuildingArea.put("name", "店铺所属楼栋总计租面积"); currentBuildingArea.put("value", "{#currentBuildingArea#}"); retList.add(currentBuildingArea); - Map currentFloorArea = new HashMap(); + Map currentFloorArea = new HashMap(); currentFloorArea.put("name", "店铺所属楼层总计租面积"); currentFloorArea.put("value", "{#currentFloorArea#}"); retList.add(currentFloorArea); - Map totalArea = new HashMap(); + Map totalArea = new HashMap(); totalArea.put("name", "商场总计租面积"); totalArea.put("value", "{#totalArea#}"); retList.add(totalArea); - Map calcuteRax = new HashMap(); + Map calcuteRax = new HashMap(); calcuteRax.put("name", "公摊系数"); calcuteRax.put("value", "{#calcuteRax#}"); retList.add(calcuteRax); @@ -69,11 +38,17 @@ public class WxEnergyHelper { return retList; } - public static Map generateMeterComponent(WxEnergyMeter meter) { - Map m = new HashMap(); + public static Map generateMeterComponent(WxEnergyMeter meter) { + Map m = new HashMap(); m.put("name", meter.getName()); m.put("value", "{#meter_"+meter.getId()+"#}"); return m; } + + public static String calcuteMoney(WxEnergyFeesTime time,WxEnergyMeter meter,WxEnergyFeesShop shopfee) { + return "0"; + } + + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java index edaadf61e..aaacadd3a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java @@ -179,7 +179,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { List buildindIds = record.getBuildingIds(); FloorBuildingIdDTO dto = getFloorBuildingIds(record, floorIds, buildindIds); record.setType(dto.getType().getCode()); - aliasIds = record.getIds(); + aliasIds = dto.getIds(); if (null == aliasIds || aliasIds.size() <= 0 ) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请选择有效的楼层楼座"); } @@ -507,8 +507,8 @@ public class WxEnergyServiceImpl implements WxEnergyService { } @Override - public List getFeesCalcuteComponentList(WxEnergyFeesShop record) { - List retList = WxEnergyHelper.generateCalcuteComponent(); + public List> getFeesCalcuteComponentList(WxEnergyFeesShop record) { + List> retList = WxEnergyHelper.generateCalcuteComponent(); //公共表,公摊总表,当前楼栋面积,当前楼层面积,总面积,店铺公摊系数 WxEnergyMeter mq = new WxEnergyMeter(); mq.updateTenantInfo(record); @@ -819,8 +819,6 @@ public class WxEnergyServiceImpl implements WxEnergyService { Integer pageSize) { PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyReadingCalcuteMapper.findList(record)); if (null != page && null != page.getList()) { - WxEnergyFeesTime tq = new WxEnergyFeesTime(); - tq.updateTenantInfo(record); WxEnergyFees fq = new WxEnergyFees(); fq.updateTenantInfo(record); Map fessMap = this.getFeesMap(fq); @@ -856,17 +854,13 @@ public class WxEnergyServiceImpl implements WxEnergyService { record.setShopSize(record.getShopIds().size()); record.setShop(JSON.toJSONString(record.getShopIds())); try { -// wxEnergyReadingCalcuteMapper.insert(record); -// WxEnergyFees fees = this.getFeesById(record.getFeesId(),record.getTenantId()); -// if (fees.getIsPublic() == EnumYesOrNo.YES.getCode()) { -// -// }else { -// for (int i = 0 ; i < record.getShopIds().size() ; i ++) { -// Long shopId = record.getShopIds().get(i); -// WxEnergyReadingCalcuteResult cs = generateCalcuteResult(); -// wxEnergyReadingCalcuteResultMapper.insert(cs); -// } -// } + wxEnergyReadingCalcuteMapper.insert(record); + WxEnergyFees fees = this.getFeesById(record.getFeesId(),record.getTenantId()); + if (fees.getIsPublic() == EnumYesOrNo.YES.getCode()) { + generateCalcuteResult(fees, record, record.getShopIds(), EnumEnergyMeterPhysicsType.PUBLIC); + }else { + generateCalcuteResult(fees, record, record.getShopIds(), EnumEnergyMeterPhysicsType.USER); + } } catch (Exception e) { logger.error("保存租赁账单失败,e:" + e.getMessage()); @@ -880,55 +874,141 @@ public class WxEnergyServiceImpl implements WxEnergyService { } } - public void generateUserTypeCalcuteResult(WxEnergyFees fees,WxEnergyReadingCalcute record,List shopIds) { -// for (int i = 0 ; i < shopIds.size(); i ++) { -// Long shopId= shopIds.get(i); -// //根据店铺,所属年月去查询时间区间.根据店铺,时间区间去查对应的抄表数据,根据表来计算总和 -// WxEnergyFeesTimeShop sq = new WxEnergyFeesTimeShop(); -// sq.updateTenantInfo(record); -// sq.setShopId(shopId); -// List timeIds = wxEnergyFeesTimeShopMapper.findTimeIdList(sq); -// if (null == timeIds || timeIds.size() <= 0 ) { -// return; -// } -// //一个年月,一个店铺应该只有一个周期 -// WxEnergyFeesTime tq = new WxEnergyFeesTime(); -// tq.updateTenantInfo(record); -// tq.setIds(timeIds); -// tq.setPeriod(record.getPeriod()); -// List timelist = wxEnergyFeesTimeMapper.findList(tq); -// if (null == timelist || timelist.size() <= 0 ) { -// return; -// } -// WxEnergyFeesTime time = timelist.get(0); -// -// //根据店铺查询计费标准 -// WxEnergyFeesShop csq = new WxEnergyFeesShop(); -// csq.updateTenantInfo(record); -// csq.setShopId(shopId); -// wxEnergyFeesCalcuteShopMapper.findCalcuteIdList(); -// -// //根据店铺去查询表 -// WxEnergyMeter mq = new WxEnergyMeter(); -// mq.updateTenantInfo(record); -// mq.setType(fees.getType()); -// mq.setPhysicsType(EnumEnergyMeterPhysicsType.USER.getCode()); -// List meterList = wxEnergyMeterMapper.findList(mq); -// -// WxEnergyReadingCalcuteResult cs = new WxEnergyReadingCalcuteResult(); -// cs.updateTenantInfo(record); -// cs.setId(idWorker.nextId()); -// cs.setCalcuteId(record.getId()); -// cs.setShopId(shopId); -// cs.setCreateTime(date); -// cs.setUpdateTime(date); -// } + public void generateCalcuteResult(WxEnergyFees fees,WxEnergyReadingCalcute record,List shopIds,EnumEnergyMeterPhysicsType type) { + final IdWorker idWorker = IdWorker.get(); + List resultList = new ArrayList(); + for (int i = 0 ; i < shopIds.size(); i ++) { + Long shopId= shopIds.get(i); + //根据店铺,所属年月去查询时间区间.根据店铺,时间区间去查对应的抄表数据,根据表来计算总和 + WxEnergyFeesTimeShop sq = new WxEnergyFeesTimeShop(); + sq.updateTenantInfo(record); + sq.setShopId(shopId); + List timeIds = wxEnergyFeesTimeShopMapper.findTimeIdList(sq); + if (null == timeIds || timeIds.size() <= 0 ) { + return; + } + //一个年月,一个店铺应该只有一个周期 + WxEnergyFeesTime tq = new WxEnergyFeesTime(); + tq.updateTenantInfo(record); + tq.setIds(timeIds); + tq.setPeriod(record.getPeriod()); + List timelist = wxEnergyFeesTimeMapper.findList(tq); + if (null == timelist || timelist.size() <= 0 ) { + return; + } + WxEnergyFeesTime time = timelist.get(0); + + //根据店铺查询绑定的科目 + WxEnergyFeesShop csq = new WxEnergyFeesShop(); + csq.updateTenantInfo(record); + csq.setShopId(shopId); + List shopFeesList = wxEnergyFeesShopMapper.findList(csq); + if (null == shopFeesList || shopFeesList.size() <= 0 ) { + return; + } + + //根据店铺去查询表 + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setType(fees.getType()); + mq.setPhysicsType(type.getCode()); + List meterList = wxEnergyMeterMapper.findList(mq); + if (null == meterList || meterList.size() <= 0 ) { + return; + } + + //循环店铺科目, + for (int j = 0 ; j < shopFeesList.size() ; j ++) { + WxEnergyFeesShop shopfee = shopFeesList.get(j); + //查询每一个表的抄表数据,求和 + for (int k = 0 ; k < meterList.size() ; k++) { + WxEnergyReadingCalcuteResult cs = new WxEnergyReadingCalcuteResult(); + cs.updateTenantInfo(record); + cs.setId(idWorker.nextId()); + cs.setCalcuteId(record.getId()); + cs.setShopId(shopId); + cs.setCreateTime(new Date()); + cs.setUpdateTime(new Date()); + cs.setFeesId(shopfee.getFeesId()); + cs.setFeesShopId(shopfee.getId()); + WxEnergyMeter meter = meterList.get(k); + cs.setMeterId(meter.getId()); + cs.setMoney(WxEnergyHelper.calcuteMoney(time, meter, shopfee)); + cs.setPeriod(record.getPeriod()); + resultList.add(cs); + } + } + } + if (resultList.size() > 0 ) { + wxEnergyReadingCalcuteResultMapper.insertResults(record.getTenantId(),resultList); + } } @Override - public WxEnergyReadingCalcute getReadingCalcuteById(WxEnergyReadingCalcute record) { - return wxEnergyReadingCalcuteMapper.selectById(record.getId(), record.getTenantId()); - } + public PageInfo readingCalcuteResultListAsPage(WxEnergyReadingCalcuteResult record, Integer pageIndex, + Integer pageSize) { + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyReadingCalcuteResultMapper.findList(record)); + if (null != page && null != page.getList()) { + WxEnergyFees fq = new WxEnergyFees(); + fq.updateTenantInfo(record); + Map fessMap = this.getFeesMap(fq); + Map floorMap = wxMallFloorService.getFloorMap(record); + Map buildingMap = wxMallBuildingService.getBuildingMap(record); + List meterIdList = new ArrayList(); + List shopIdList = new ArrayList(); + for (int i = 0 ; i < page.getList().size(); i++) { + WxEnergyReadingCalcuteResult c = page.getList().get(i); + if (null != fessMap) { + WxEnergyFees fees = fessMap.get(c.getFeesId()); + if (null != fees) { + c.setFeesName(fees.getName()); + } + } + if (null != c.getMeterId()) { + meterIdList.add(c.getMeterId()); + } + shopIdList.add(c.getShopId()); + } + Map meterMap = null; + if (meterIdList.size() > 0 ) { + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setIds(meterIdList); + meterMap = this.getMeterMap(mq); + } + + Map shopMap = null; + if (shopIdList.size() > 0 ) { + WxShop sq = new WxShop(); + sq.updateTenantInfo(record); + sq.setIds(shopIdList); + shopMap = wxShopService.findShopMap(sq); + } + for (int i = 0 ; i < page.getList().size(); i++) { + WxEnergyReadingCalcuteResult c = page.getList().get(i); + if (null != meterMap && null != c.getMeterId()) { + WxEnergyMeter m = meterMap.get(c.getMeterId()); + if (null != m) { + c.setMeterName(m.getName()); + } + } + if (null != shopMap && null != c.getShopId()) { + WxShop s = shopMap.get(c.getShopId()); + if (null != s) { + c.setShopName(s.getShopNumber()); + if (null != floorMap) { + c.setFloorName(floorMap.get(s.getFloor())); + } + if (null != buildingMap) { + c.setBuildingName(buildingMap.get(s.getBuilding())); + } + } + } + } + } + return page; + } + @Override public void exportReadingCalcute(WxEnergyReadingCalcute record, HttpServletRequest request, HttpServletResponse response) { @@ -1053,63 +1133,6 @@ public class WxEnergyServiceImpl implements WxEnergyService { } - @Override - public void importReadingCalcute(MultipartFile mFile, MallUserInfo user, HttpServletRequest request, - HttpServletResponse response) { -// File file = handlerImportFile(mFile,"energyReading"); -// // 需要验证 -// Map excelTitle = WxEnergyMeterReading.generateExcelTitle(); -// String[] needFields = new String[excelTitle.size()]; -// int index = 0; -// for (Iterator it = excelTitle.keySet().iterator(); it.hasNext();) { -// String fi = excelTitle.get(it.next()); -// needFields[index] = fi; -// index = index + 1; -// } -// ExcelImportResult datalist = handleImportFile(file,Map.class,needFields,needFields,new ReadingExcelHandler()); -// if (null == datalist) { -// return ; -// } -// -// List successList = datalist.getList(); -// if(successList.size() > 0) { -// boolean allSuccess = true; -// String cuteId = (String)successList.get(0).get("编码"); -// try { -// successList.parallelStream().forEach(reading -> { -// String id = (String) reading.get("抄表数据编码"); -// WxEnergyMeterReading r = new WxEnergyMeterReading(); -// r.updateTenantInfo(user); -// r.setId(Long.parseLong(id)); -// r.setPrice((String)reading.get("单价(*)")); -// r.setCurNumber((String)reading.get("本次抄表数")); -// r.setUpdateBy(user.getId()); -// r.setUpdateByName(user.getName()); -// r.setUpdateTime(new Date()); -// wxEnergyMeterReadingMapper.updateById(r); -// }); -// } catch (Exception e) { -// logger.error("导入模板失败:"+e.getMessage(),e); -// allSuccess = false; -// } -// if (StringUtils.isNotBlank(cuteId)) { -// WxEnergyReadingCalcute c= new WxEnergyReadingCalcute(); -// c.updateTenantInfo(user); -// c.setId(Long.parseLong(cuteId)); -// c.setIsImported(EnumYesOrNo.YES.getCode()); -// c.setUpdateTime(new Date()); -// c.setUpdateBy(user.getId()); -// c.setUpdateByName(user.getName()); -// if (allSuccess) { -// c.setImportSuccess(EnumYesOrNo.YES.getCode()); -// }else { -// c.setImportSuccess(EnumYesOrNo.NO.getCode()); -// } -// wxEnergyReadingCalcuteMapper.updateById(c); -// } -// -// } - } private Map getFloorBuildingMoney(WxEnergyMeterReading reading,boolean isFloor) { // List list = null; @@ -1338,11 +1361,11 @@ public class WxEnergyServiceImpl implements WxEnergyService { @Override public void setReadingCalcuteIsDel(WxEnergyReadingCalcute record) { - WxEnergyReadingCalcute calcute = this.getReadingCalcuteById(record); - if (null == calcute) { - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "记录未查询到"); - } - wxEnergyReadingCalcuteMapper.setIsDel(record.getId(), record.getTenantId(), record.getIsDel()); +// WxEnergyReadingCalcute calcute = this.getReadingCalcuteById(record); +// if (null == calcute) { +// throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "记录未查询到"); +// } +// wxEnergyReadingCalcuteMapper.setIsDel(record.getId(), record.getTenantId(), record.getIsDel()); } @Override diff --git a/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml index 34e7d5bd6..105ed0776 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml @@ -10,14 +10,14 @@ - + - + - `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`calcute_id`,`shop_id`,`fees_id`,`fees_calcute_id`,`meter_id`,`reading_id`,`money` + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`calcute_id`,`shop_id`,`fees_id`,`fees_shop_id`,`meter_id`,`money`,`period` @@ -29,12 +29,14 @@ and `parent_tenant_id` = #{parentTenantId} + + and `period` = #{period} + and `calcute_id` = #{calcuteId} and `shop_id` = #{shopId} and `fees_id` = #{feesId} - and `fees_calcute_id` = #{feesCalcuteId} + and `fees_shop_id` = #{feesShopId} and `meter_id` = #{meterId} - and `reading_id` = #{readingId} and id in @@ -63,5 +65,18 @@ + + INSERT INTO wx_energy_reading_calcute_result ( + + ) + VALUES + + ( + #{item.id},#{item.tenantId},#{item.parentTenantId},#{item.createTime},#{item.updateTime},#{item.calcuteId}, + #{item.shopId},#{item.feesId},#{item.feesShopId},#{item.meterId},#{item.money},#{item.period} + ) + + +