diff --git a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java index bdd5f8f87..7a8bdeed7 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/BaseController.java @@ -221,5 +221,13 @@ public class BaseController { throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(),"商管登录用户不存在"); } return user; + +// MallUserInfo user = new MallUserInfo(); +// user.setId(321127266275430400L); +// user.setName("alitest"); +// user.setTenantId("789"); +// user.setParentTenantId(null); +// user.setIsAdmin(1); +// return user; } } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java index f9174fb06..9b4683b53 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMallAdminController.java @@ -415,7 +415,7 @@ public class WxMallAdminController extends BaseController { } } record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); - PageInfo page = wxEnergyService.meterFloorShopListAsPage(record, 1, 1000,true); + PageInfo page = wxEnergyService.meterCopyListAsPage(record, 1, 1000); return new ResultData(page); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java index 6625ff9d7..380cd8082 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java @@ -106,5 +106,7 @@ public class WxEnergyMeter extends TenantEntity { private Integer isValid; @TableField(exist = false) private Integer hasShop; + @TableField(exist = false) + private String aliseName; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java index 90ec17c9e..e60627af4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeterShopFloor.java @@ -46,15 +46,11 @@ public class WxEnergyMeterShopFloor extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="表编号",name="meterId") private Long meterId; - @TableField(exist = false) - private String name; @io.swagger.annotations.ApiModelProperty(value = "关联的编号", name = "aliseId") private Long aliseId; @TableField(exist = false) private List aliseIdList; - @TableField(exist = false) - private String aliseName; @TableField(exist = false) private List shopIds; diff --git a/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java b/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java index 531050c90..689c0ac3b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxEnergyService.java @@ -40,7 +40,7 @@ public interface WxEnergyService { Map getMeterMap(WxEnergyMeter record); List getMeterIdList(WxEnergyMeterShopFloor record); List getChildMeterIdList(WxEnergyMeterChild record); - PageInfo meterFloorShopListAsPage(WxEnergyMeterShopFloor record, Integer pageIndex, Integer pageSize,boolean replaceId); + PageInfo meterCopyListAsPage(WxEnergyMeterShopFloor record, Integer pageIndex, Integer pageSize); //费用区间 PageInfo timeListAsPage(WxEnergyFeesTime record, Integer pageIndex, Integer pageSize); 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 3c2634da1..67e4a8e3a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java @@ -152,6 +152,12 @@ public class WxEnergyServiceImpl implements WxEnergyService { private FloorBuildingIdDTO getFloorBuildingIds(TenantEntity tenantEntity,List floorIds,List buildingIds) { //如果楼层是全选了的,则代表的是楼座。 + if (null == buildingIds || buildingIds.size() <= 0 ) { + FloorBuildingIdDTO dto = new FloorBuildingIdDTO(); + dto.setType(EnumEnergyMeterShopFloorType.FLOOR); + dto.setIds(floorIds); + return dto; + } //根据楼座id查询楼层 WxMallFloor fq = new WxMallFloor(); fq.updateTenantInfo(tenantEntity); @@ -184,8 +190,10 @@ public class WxEnergyServiceImpl implements WxEnergyService { } }else if (record.getPhysicsType() == EnumEnergyMeterPhysicsType.PUBLIC.getCode() || record.getPhysicsType() == EnumEnergyMeterPhysicsType.SUMMARY.getCode()) { List floorIds = record.getFloorIds(); - List buildindIds = record.getBuildingIds(); - FloorBuildingIdDTO dto = getFloorBuildingIds(record, floorIds, buildindIds); + if (null == floorIds || floorIds.size() <= 0) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"必须选择楼层和楼座"); + } + FloorBuildingIdDTO dto = getFloorBuildingIds(record, floorIds, record.getBuildingIds()); record.setType(dto.getType().getCode()); aliasIds = dto.getIds(); if (null == aliasIds || aliasIds.size() <= 0 ) { @@ -295,13 +303,13 @@ public class WxEnergyServiceImpl implements WxEnergyService { } @Override - public PageInfo meterFloorShopListAsPage(WxEnergyMeterShopFloor record, Integer pageIndex, Integer pageSize,boolean replaceId) { - PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyMeterShopFloorMapper.findList(record)); - if (null != page && null != page.getList() && page.getList().size() > 0 ) { + public PageInfo meterCopyListAsPage(WxEnergyMeterShopFloor record, Integer pageIndex, Integer pageSize) { + List sflist = wxEnergyMeterShopFloorMapper.findList(record); + if (null != sflist && sflist.size() > 0 ) { List meterIdList = new ArrayList(); List shopIdList = new ArrayList(); - for (int i = 0 ; i < page.getList().size(); i++) { - WxEnergyMeterShopFloor sf = page.getList().get(i); + for (int i = 0 ; i < sflist.size(); i++) { + WxEnergyMeterShopFloor sf = sflist.get(i); meterIdList.add(sf.getMeterId()); if (sf.getType() == EnumEnergyMeterShopFloorType.SHOP.getCode()) { shopIdList.add(sf.getAliseId()); @@ -309,55 +317,58 @@ public class WxEnergyServiceImpl implements WxEnergyService { } Map buildingMap = wxMallBuildingService.getBuildingMap(record); Map floorMap = wxMallFloorService.getFloorMap(record); - WxShop sq = new WxShop(); - sq.updateTenantInfo(record); - sq.setIds(shopIdList); - Map shopMap = wxShopService.findShopMap(sq); - WxEnergyMeter mq = new WxEnergyMeter(); - mq.updateTenantInfo(record); - mq.setIds(meterIdList); - List meterList = wxEnergyMeterMapper.findList(mq); - Map meterMap = new HashMap(); - if (null != meterList && meterList.size() > 0 ) { - for (int i = 0 ; i < meterList.size(); i++) { - WxEnergyMeter m = meterList.get(i); - meterMap.put(m.getId(), m); - } + Map shopMap = null; + if (shopIdList.size() > 0 ) { + WxShop sq = new WxShop(); + sq.updateTenantInfo(record); + sq.setIds(shopIdList); + wxShopService.findShopMap(sq); } - for (int i = 0 ; i < page.getList().size(); i++) { - WxEnergyMeterShopFloor sf = page.getList().get(i); - if (null != meterMap ) { - WxEnergyMeter meter = meterMap.get(sf.getMeterId()); - if (null != meter) { - sf.setName(meter.getName()); - if (replaceId) { - sf.setId(meter.getId()); - } - } - } - + + Map meterAliasMap = new HashMap(); + for (int i = 0 ; i < sflist.size(); i++) { + WxEnergyMeterShopFloor sf = sflist.get(i); + String alias = meterAliasMap.get(sf.getMeterId()); + alias = StringUtils.trimToEmpty(alias); if (sf.getType() == EnumEnergyMeterShopFloorType.SHOP.getCode()) { if (null != shopMap ) { WxShop shop = shopMap.get(sf.getAliseId()); if (null != shop) { - sf.setAliseName(shop.getShopNumber()); + alias = alias +"["+EnumEnergyMeterShopFloorType.SHOP.getMessage()+"]"+shop.getShopNumber()+","; } } }else if (sf.getType() == EnumEnergyMeterShopFloorType.BUILDING.getCode()) { if (null != buildingMap ) { String build = buildingMap.get(sf.getAliseId()); - sf.setAliseName(build); + alias = alias +"["+EnumEnergyMeterShopFloorType.BUILDING.getMessage()+"]"+build+","; } }else if (sf.getType() == EnumEnergyMeterShopFloorType.FLOOR.getCode()) { if (null != floorMap ) { String floor = floorMap.get(sf.getAliseId()); - sf.setAliseName(floor); + alias = alias +"["+EnumEnergyMeterShopFloorType.FLOOR.getMessage()+"]"+floor+","; } } + meterAliasMap.put(sf.getMeterId(), alias); } + + WxEnergyMeter mq = new WxEnergyMeter(); + mq.updateTenantInfo(record); + mq.setIds(meterIdList); + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyMeterMapper.findList(mq)); + if (null != page && null != page.getList() && page.getList().size() > 0 ) { + for (int i = 0 ; i < page.getList().size(); i++) { + WxEnergyMeter sf = page.getList().get(i); + if (null != meterAliasMap) { + String aliase = meterAliasMap.get(sf.getId()); + sf.setAliseName(aliase); + } + + } + } + return page; } - return page; + return new PageInfo(new ArrayList()); } @Override @@ -908,6 +919,9 @@ public class WxEnergyServiceImpl implements WxEnergyService { Map shopMap = wxShopService.findShopMap(shopq); for (int i = 0 ; i < record.getMeterReadingList().size(); i ++) { WxEnergyMeterReading r = record.getMeterReadingList().get(i); + if (StringUtils.isBlank(r.getCurNumber())) { + continue; + } //获取上一次的数据 WxEnergyMeterReading pre = findPre(r); if (null != pre) { @@ -1451,10 +1465,16 @@ public class WxEnergyServiceImpl implements WxEnergyService { if (null != shopMap) { shop = shopMap.get(result.getShopId()); } + if (null == shop) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"店铺ID["+result.getShopId()+"]未查询到店铺"); + } WxMerchant merchant = null; if (null != merchantMap) { merchant = merchantMap.get(result.getShopId()); } + if (null == merchant) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"店铺"+shop.getShopNumber()+"未绑定商户,请先绑定商户"); + } WxAllBill bill = result.generateBill(calcute, merchant, shop, user, result.getMoney(), result.getMoneyDeail(), "能源计算自动生成"); billList.add(bill); }