From 2673144c9062080e352456e4ce0ef70a0d9b6269 Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 1 Sep 2024 13:17:08 +0800 Subject: [PATCH] fix --- .../controller/market/WxEnergyController.java | 40 +++++++++- .../domain/po/WxEnergyFeesTimeShop.java | 6 ++ .../domain/po/WxEnergyMeterReading.java | 3 + .../mapper/WxEnergyFeesTimeMapper.java | 1 - .../mapper/WxEnergyFeesTimeShopMapper.java | 4 + .../mapper/WxEnergyMeterReadingMapper.java | 2 + .../com/iformall/service/WxEnergyService.java | 4 + .../service/impl/WxEnergyServiceImpl.java | 77 ++++++++++++++++--- .../mapper/WxEnergyFeesTimeMapper.xml | 2 +- .../mapper/WxEnergyFeesTimeShopMapper.xml | 12 ++- .../mapper/WxEnergyMeterReadingMapper.xml | 12 ++- .../WxEnergyReadingCalcuteResultMapper.xml | 6 ++ 12 files changed, 152 insertions(+), 17 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 91f4ec848..80034f9a5 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxEnergyController.java @@ -462,11 +462,25 @@ public class WxEnergyController extends BaseController { } @ApiOperation("费用区间自动时间") - @GetMapping("periodAutoTimes") + @PostMapping("periodAutoTimes") public ResultData periodAutoTimes(@ModelAttribute WxEnergyFeesTime record) { + List dateList = wxEnergyService.findLastTimeEndGroup(record); + if (null != dateList && dateList.size() > 1 ) { + return new ResultData(Result.ERROR,"所选店铺表类型最近一次结束时间不相同,不能一起增加"); + } + Date start = null; + if (null == dateList || dateList.size() <= 0 ) { + //之前没有的话,就从年月第一天开始 + start = DateUtils.stringToDate(record.getPeriod()+"01", DateUtils.DATE_PATTERN_NOSPACE); + }else { + //开始时间取接受时间后的一天 + start = DateUtils.getTimeAfterDays(1, dateList.get(0)); + start = DateUtils.getDayBegin(start); + } + Date end = DateUtils.getTimeAfterMonths(1, start); Map retMap = new HashMap(); - retMap.put("startTime", new Date()); - retMap.put("endTime", new Date()); + retMap.put("startTime", start); + retMap.put("endTime", end); return new ResultData(retMap); } @@ -640,6 +654,13 @@ public class WxEnergyController extends BaseController { return new ResultData(); } + @PostMapping("readingConfirm") + public ResultData readingConfirm(@RequestBody WxEnergyMeterReading record) { + record.updateTenantInfo(getTenantInfo()); + wxEnergyService.setReadingConfirm(record); + return new ResultData(); + } + @ApiOperation("新建科目抄表计算数据") @PostMapping("createReadingCalcute") public ResultData createReadingCalcute(@RequestBody WxEnergyReadingCalcute record) { @@ -686,7 +707,11 @@ public class WxEnergyController extends BaseController { @GetMapping("readingCalcuteShopList") public ResultData readingCalcuteShopList(@ModelAttribute WxEnergyReadingCalcute record) { record.updateTenantInfo(getTenantInfo()); - return new ResultData(wxEnergyService.getReadingCalcuteShopNumber(record)); + List slist = wxEnergyService.getReadingCalcuteShopNumber(record); + if (null == slist) { + slist = new ArrayList(); + } + return new ResultData(slist); } @ApiOperation("科目抄表计算数据分页列表接口") @@ -712,6 +737,13 @@ public class WxEnergyController extends BaseController { return new ResultData(page); } + @PostMapping("readingCalcuteResultDel") + public ResultData readingCalcuteResultDel(@RequestBody WxEnergyReadingCalcuteResult record) { + record.updateTenantInfo(getTenantInfo()); + wxEnergyService.deleteReadingCalcuteResult(record.getId(),record); + return new ResultData(); + } + @ApiOperation("科目抄表计算记录导出") @GetMapping("readingCalcuteResultExport") public void readingCalcuteResultExport(@ModelAttribute WxEnergyReadingCalcuteResult record, HttpServletRequest request, HttpServletResponse response) { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesTimeShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesTimeShop.java index 88720e35d..01450fe97 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesTimeShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFeesTimeShop.java @@ -47,6 +47,12 @@ public class WxEnergyFeesTimeShop extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "时间区间编号", name = "timeId") private Long timeId; + @io.swagger.annotations.ApiModelProperty(value="startTime",name="startTime") + private Date startTime; + + @io.swagger.annotations.ApiModelProperty(value="endTime",name="endTime") + private Date endTime; + @io.swagger.annotations.ApiModelProperty(value="店铺编号",name="shopId") private Long shopId; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java index 5df6c1982..6f593bde2 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterReading.java @@ -100,6 +100,9 @@ public class WxEnergyMeterReading extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="表名",name="meterName") private String meterName; + @io.swagger.annotations.ApiModelProperty(value="是否确认",name="isConfirm") + private Integer isConfirm; + @io.swagger.annotations.ApiModelProperty(value="是否删除",name="isDel") private Integer isDel; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesTimeMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesTimeMapper.java index df82c877e..6d42e6e98 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesTimeMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyFeesTimeMapper.java @@ -14,5 +14,4 @@ public interface WxEnergyFeesTimeMapper extends CommonMapper findShopIdList(WxEnergyFeesTimeShop wxBillRent); List findTimeIdList(WxEnergyFeesTimeShop wxBillRent); + + List findLastTimeEndGroup(WxEnergyFeesTimeShop wxBillRent); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java index d6bbfbefc..f27038b79 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterReadingMapper.java @@ -19,5 +19,7 @@ public interface WxEnergyMeterReadingMapper extends CommonMapper getTimeMap(WxEnergyFeesTime record); void timeDel(WxEnergyFeesTime record); List getTimeShopNumber(WxEnergyFeesTime record); + List findLastTimeEndGroup(WxEnergyFeesTime record); //费用科目 PageInfo feesListAsPage(WxEnergyFees record, Integer pageIndex, Integer pageSize,boolean isSetOff); @@ -74,6 +76,7 @@ public interface WxEnergyService { void commitReading(WxEnergyMeterReading record,MallUserInfo userInfo); WxEnergyMeterReading getReadingById(WxEnergyMeterReading record); void setReadingIsDel(WxEnergyMeterReading record); + void setReadingConfirm(WxEnergyMeterReading record); void exportReading(WxEnergyMeterReading record,HttpServletRequest request, HttpServletResponse response); void importReading(MultipartFile mFile, MallUserInfo user, HttpServletRequest request, HttpServletResponse response); @@ -86,6 +89,7 @@ public interface WxEnergyService { void createBill(WxEnergyReadingCalcute record, MallUserInfo user); void setReadingCalcuteIsDel(WxEnergyReadingCalcute record); List getReadingCalcuteShopNumber(WxEnergyReadingCalcute record); + void deleteReadingCalcuteResult(Long id,TenantEntity tenantEntity); } 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 9f80185a4..f9d1338f2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java @@ -305,6 +305,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { //查询是不是已经有了 WxEnergyFeesTimeShop tsq = new WxEnergyFeesTimeShop(); + tsq.updateTenantInfo(record); tsq.setPeriod(record.getPeriod()); tsq.setShopIds(record.getShopIds()); tsq.setType(record.getType()); @@ -312,7 +313,13 @@ public class WxEnergyServiceImpl implements WxEnergyService { if (null != scount && scount > 0 ) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"所选店铺已存在该年月的"+record.getTypeName()+"区间"); } - + //检查最近一次的是不是属于同一周期 + tsq.setPeriod(null); + List list = wxEnergyFeesTimeShopMapper.findLastTimeEndGroup(tsq); + if (null != list && list.size() > 1) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"所选店铺最近一次的"+record.getTypeName()+"区间截止时间不一致"); + } + final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); record.setCreateTime(date); @@ -328,6 +335,10 @@ public class WxEnergyServiceImpl implements WxEnergyService { ts.setShopId(shopId); ts.setPeriod(record.getPeriod()); ts.setType(record.getType()); + ts.setCreateTime(new Date()); + ts.setUpdateTime(new Date()); + ts.setStartTime(record.getStartTime()); + ts.setEndTime(record.getEndTime()); wxEnergyFeesTimeShopMapper.insert(ts); } @@ -335,10 +346,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { logger.error("保存租赁账单失败,e:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } - } else { - record.setUpdateTime(date); - wxEnergyFeesTimeMapper.updateById(record); - } + } } @Override @@ -383,6 +391,16 @@ public class WxEnergyServiceImpl implements WxEnergyService { return wxShopService.getShopNumberList(sq); } + @Override + public List findLastTimeEndGroup(WxEnergyFeesTime record) { + WxEnergyFeesTimeShop tsq = new WxEnergyFeesTimeShop(); + tsq.updateTenantInfo(record); + tsq.setShopIds(record.getShopIds()); + tsq.setType(record.getType()); + List list = wxEnergyFeesTimeShopMapper.findLastTimeEndGroup(tsq); + return list; + } + @Override public PageInfo feesListAsPage(WxEnergyFees record, Integer pageIndex, Integer pageSize,boolean isSetOff) { @@ -874,6 +892,11 @@ public class WxEnergyServiceImpl implements WxEnergyService { wxEnergyMeterReadingMapper.setIsDel(record.getId(), record.getTenantId(), record.getIsDel()); } + @Override + public void setReadingConfirm(WxEnergyMeterReading record) { + wxEnergyMeterReadingMapper.setConfirm(record); + } + @Override public void exportReading(WxEnergyMeterReading record, HttpServletRequest request, HttpServletResponse response) { List> execlList = new ArrayList>(); @@ -1062,13 +1085,25 @@ public class WxEnergyServiceImpl implements WxEnergyService { for (int i = 0 ; i < shopIds.size(); i ++) { Long shopId= shopIds.get(i); WxShop shop = shopMap.get(shopId); + + //如果店铺已经存在了计算,则不允许重复 + WxEnergyReadingCalcuteResult crq = new WxEnergyReadingCalcuteResult(); + crq.updateTenantInfo(record); + crq.setShopId(shopId); + crq.setPeriod(record.getPeriod()); + crq.setFeesId(record.getFeesId()); + List list = wxEnergyReadingCalcuteResultMapper.findList(crq); + if (null != list && list.size() > 0 ) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"店铺"+shop.getShopNumber()+"科目["+fees.getName()+"]该年月已存在计算记录,不能重复计算"); + } + //根据店铺,所属年月去查询时间区间.根据店铺,时间区间去查对应的抄表数据,根据表来计算总和 WxEnergyFeesTimeShop sq = new WxEnergyFeesTimeShop(); sq.updateTenantInfo(record); sq.setShopId(shopId); List timeIds = wxEnergyFeesTimeShopMapper.findTimeIdList(sq); if (null == timeIds || timeIds.size() <= 0 ) { - return; + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"店铺"+shop.getShopNumber()+"未设置抄表区间"); } //一个年月,一个店铺应该只有一个周期 WxEnergyFeesTime tq = new WxEnergyFeesTime(); @@ -1077,7 +1112,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { tq.setPeriod(record.getPeriod()); List timelist = wxEnergyFeesTimeMapper.findList(tq); if (null == timelist || timelist.size() <= 0 ) { - return; + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"店铺"+shop.getShopNumber()+"未设置抄表区间"); } WxEnergyFeesTime time = timelist.get(0); @@ -1087,7 +1122,7 @@ public class WxEnergyServiceImpl implements WxEnergyService { csq.setShopId(shopId); List shopFeesList = wxEnergyFeesShopMapper.findList(csq); if (null == shopFeesList || shopFeesList.size() <= 0 ) { - return; + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"店铺"+shop.getShopNumber()+"未设置费用标准"); } //循环店铺科目, @@ -1115,9 +1150,24 @@ public class WxEnergyServiceImpl implements WxEnergyService { } } + private void initReadingCalcuteResultQueryParam(WxEnergyReadingCalcuteResult record) { + if (StringUtils.isNotBlank(record.getShopName())) { + WxShop sq = new WxShop(); + sq.updateTenantInfo(record); + sq.setShopNumber(record.getShopName()); + List shopIds = wxShopService.getShopIds(sq); + if (null == shopIds || shopIds.size() <= 0 ) { + record.setId(-1L); + }else { + record.setShopIds(shopIds); + } + } + } + @Override public PageInfo readingCalcuteResultListAsPage(WxEnergyReadingCalcuteResult record, Integer pageIndex, Integer pageSize) { + initReadingCalcuteResultQueryParam(record); PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyReadingCalcuteResultMapper.findList(record)); if (null != page && null != page.getList()) { WxEnergyFees fq = new WxEnergyFees(); @@ -1166,7 +1216,11 @@ public class WxEnergyServiceImpl implements WxEnergyService { @Override public void exportReadingCalcuteResult(WxEnergyReadingCalcuteResult record, HttpServletRequest request, HttpServletResponse response) { PageInfo page = readingCalcuteResultListAsPage(record, 1, 10000); - excelService.exportExcel(page.getList(), null, "能源计算结果", WxEnergyReadingCalcuteResult.class, "能源计算结果.xlsx", response, false); + List list = new ArrayList(); + if (null != page && null != page.getList() && page.getList().size() > 0 ) { + list = page.getList(); + } + excelService.exportExcel(list, null, "能源计算结果", WxEnergyReadingCalcuteResult.class, "能源计算结果.xlsx", response, false); } private File handlerImportFile(MultipartFile mFile,String fileNamePre) { @@ -1343,4 +1397,9 @@ public class WxEnergyServiceImpl implements WxEnergyService { return null; } + @Override + public void deleteReadingCalcuteResult(Long id, TenantEntity tenantEntity) { + wxEnergyReadingCalcuteResultMapper.deleteById(id); + } + } diff --git a/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeMapper.xml index 646248a6e..fa999cb15 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeMapper.xml @@ -56,6 +56,6 @@ update wx_energy_fees_time set is_del = #{isDel} where id = #{id} and `tenant_id` = #{tenantId} - + diff --git a/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeShopMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeShopMapper.xml index 1cb362428..a49fad1c6 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyFeesTimeShopMapper.xml @@ -9,12 +9,14 @@ + + - `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`period`,`time_id`,`shop_id`,`type` + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`period`,`time_id`,`start_time`,`end_time`,`shop_id`,`type` @@ -82,5 +84,13 @@ + + diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml index ce98be8f2..0b3ec847f 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterReadingMapper.xml @@ -24,6 +24,7 @@ + @@ -31,7 +32,7 @@ `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`cur_number`,`pre_number`,`pre_time`,`pre_by`,`pre_by_name`,`start_time`,`end_time`,`create_by`,`create_by_name`, - `update_by`,`update_by_name`,`remark`,`meter_id`,`meter_type`,`meter_rate`,`meter_name`,`is_del`,`building_name`,`floor_name`,`shop_name` + `update_by`,`update_by_name`,`remark`,`meter_id`,`meter_type`,`meter_rate`,`meter_name`,`is_del`,`is_confirm`,`building_name`,`floor_name`,`shop_name` @@ -48,6 +49,7 @@ and `meter_type` = #{meterType} and meter_name like concat('%', #{meterName},'%') and `is_del` = #{isDel} + and `is_confirm` = #{isConfirm} and create_by_name like concat('%', #{createByName},'%') and meter_id in @@ -92,6 +94,14 @@ from wx_energy_meter_reading + + + update wx_energy_meter_reading set is_confirm = 1 + where id in + + #{idItem} + + diff --git a/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml index 1e69670a2..000cf3cf0 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyReadingCalcuteResultMapper.xml @@ -37,6 +37,12 @@ and `shop_id` = #{shopId} and `fees_id` = #{feesId} and `fees_shop_id` = #{feesShopId} + + and shop_id in + + #{sidItem} + + and fees_id in