|
|
|
@@ -152,6 +152,12 @@ public class WxEnergyServiceImpl implements WxEnergyService { |
|
|
|
|
|
|
|
private FloorBuildingIdDTO getFloorBuildingIds(TenantEntity tenantEntity,List<Long> floorIds,List<Long> 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<Long> floorIds = record.getFloorIds(); |
|
|
|
List<Long> 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<WxEnergyMeterShopFloor> meterFloorShopListAsPage(WxEnergyMeterShopFloor record, Integer pageIndex, Integer pageSize,boolean replaceId) { |
|
|
|
PageInfo<WxEnergyMeterShopFloor> page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyMeterShopFloorMapper.findList(record)); |
|
|
|
if (null != page && null != page.getList() && page.getList().size() > 0 ) { |
|
|
|
public PageInfo<WxEnergyMeter> meterCopyListAsPage(WxEnergyMeterShopFloor record, Integer pageIndex, Integer pageSize) { |
|
|
|
List<WxEnergyMeterShopFloor> sflist = wxEnergyMeterShopFloorMapper.findList(record); |
|
|
|
if (null != sflist && sflist.size() > 0 ) { |
|
|
|
List<Long> meterIdList = new ArrayList<Long>(); |
|
|
|
List<Long> shopIdList = new ArrayList<Long>(); |
|
|
|
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<Long, String> buildingMap = wxMallBuildingService.getBuildingMap(record); |
|
|
|
Map<Long, String> floorMap = wxMallFloorService.getFloorMap(record); |
|
|
|
WxShop sq = new WxShop(); |
|
|
|
sq.updateTenantInfo(record); |
|
|
|
sq.setIds(shopIdList); |
|
|
|
Map<Long, WxShop> shopMap = wxShopService.findShopMap(sq); |
|
|
|
|
|
|
|
WxEnergyMeter mq = new WxEnergyMeter(); |
|
|
|
mq.updateTenantInfo(record); |
|
|
|
mq.setIds(meterIdList); |
|
|
|
List<WxEnergyMeter> meterList = wxEnergyMeterMapper.findList(mq); |
|
|
|
Map<Long,WxEnergyMeter> meterMap = new HashMap<Long,WxEnergyMeter>(); |
|
|
|
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<Long, WxShop> 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<Long,String> meterAliasMap = new HashMap<Long,String>(); |
|
|
|
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<WxEnergyMeter> 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<WxEnergyMeter>(new ArrayList<WxEnergyMeter>()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
@@ -908,6 +919,9 @@ public class WxEnergyServiceImpl implements WxEnergyService { |
|
|
|
Map<Long,WxShop> 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); |
|
|
|
} |
|
|
|
|