diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java index a9d1ab890..904081a20 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/WxShopController.java @@ -192,7 +192,7 @@ public class WxShopController extends BaseController { @ApiOperation("导入") @PostMapping(value = "/importShop", consumes = "multipart/*") - public void importShop(@RequestParam("poiFile") MultipartFile mFile,HttpServletRequest request, HttpServletResponse response) { + public void importShop(@RequestParam("file") MultipartFile mFile,HttpServletRequest request, HttpServletResponse response) { File lFile = handlerImportFile(mFile,"wxshop"); wxShopService.importShop(getTenantInfo(), lFile,request, response); } 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 380cd8082..f37d0c568 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyMeter.java @@ -108,5 +108,8 @@ public class WxEnergyMeter extends TenantEntity { private Integer hasShop; @TableField(exist = false) private String aliseName; - + @TableField(exist = false) + private Long parentMeterId; + @TableField(exist = false) + private List notInIds; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java index e98bfd4a8..a02aa857b 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java @@ -149,7 +149,7 @@ public class WxShop extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "租金单位", name = "rentUnit") private Integer rentUnit; - @io.swagger.annotations.ApiModelProperty(value = "租金单位", name = "rentUnit") + @io.swagger.annotations.ApiModelProperty(value = "公摊系数", name = "pulicRate") private String pulicRate; @io.swagger.annotations.ApiModelProperty(value = "树里面的类型", name = "treeType") diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxShopVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxShopVo.java index 80f12da7b..f4408c3a3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxShopVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxShopVo.java @@ -50,7 +50,7 @@ public class WxShopVo extends WxShop { @Excel(name="计租面积",width = 20,orderNum = "13") private String operationArea; - @io.swagger.annotations.ApiModelProperty(value="计租面积",name="publicRate") + @io.swagger.annotations.ApiModelProperty(value="计租面积",name="pulicRate") @Excel(name="公摊系数",width = 20,orderNum = "14") - private String publicRate; + private String pulicRate; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java index 3dbef7855..4da75336e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxEnergyMeterChildMapper.java @@ -16,6 +16,8 @@ public interface WxEnergyMeterChildMapper extends CommonMapper findChildMeterIdList(WxEnergyMeterChild wxBillRent); + List findParentMeterIdList(WxEnergyMeterChild wxBillRent); + void deleteByCondition(WxEnergyMeterChild wxBillRent); } 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 eea847367..042c504e0 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxEnergyHelper.java @@ -200,6 +200,7 @@ public class WxEnergyHelper { mrq.setMeterIds(childmids); mrq.setStartTime(time.getStartTime()); mrq.setEndTime(time.getEndTime()); + mrq.setIsConfirm(EnumYesOrNo.YES.getCode()); BigDecimal totalNumber = wxEnergyMeterReadingMapper.findNumberSum(mrq); if (null == totalNumber || totalNumber.compareTo(new BigDecimal(0)) <= 0 ) { totalNumber = new BigDecimal(0); @@ -223,6 +224,7 @@ public class WxEnergyHelper { mrq.setMeterIds(userMeterList); mrq.setStartTime(time.getStartTime()); mrq.setEndTime(time.getEndTime()); + mrq.setIsConfirm(EnumYesOrNo.YES.getCode()); BigDecimal totalNumber = wxEnergyMeterReadingMapper.findNumberSum(mrq); if (null == totalNumber || totalNumber.compareTo(new BigDecimal(0)) <= 0 ) { 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 c8a35749a..75d64e41c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxEnergyServiceImpl.java @@ -117,6 +117,15 @@ public class WxEnergyServiceImpl implements WxEnergyService { record.setIds(aliseIdList); } } + if (null != record.getParentMeterId()) { + WxEnergyMeterChild mcq = new WxEnergyMeterChild(); + mcq.updateTenantInfo(record); + mcq.setParentMeterId(record.getParentMeterId()); + List notinIds = wxEnergyMeterChildMapper.findChildMeterIdList(mcq); + if (null != notinIds && notinIds.size() > 0 ) { + record.setNotInIds(notinIds); + } + } PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxEnergyMeterMapper.findList(record)); return page; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java index ca517ce9e..dac18b788 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxShopServiceImpl.java @@ -9,20 +9,28 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.MerchantPoiT; +import com.iformall.domain.vo.MerchantPoiTNew; import com.iformall.domain.vo.WxNotRentShopVo; import com.iformall.domain.vo.WxShopVo; import com.iformall.enums.*; +import com.iformall.exception.MallinkException; import com.iformall.mapper.WxMerchantMapper; import com.iformall.mapper.WxMerchantShopMapper; import com.iformall.mapper.WxRentContractMapper; import com.iformall.mapper.WxShopMapper; import com.iformall.service.*; +import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; +import cn.afterturn.easypoi.handler.impl.ExcelDataHandlerDefaultImpl; +import cn.afterturn.easypoi.handler.inter.IExcelDataHandler; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.session.UnknownSessionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -288,7 +296,6 @@ public class WxShopServiceImpl implements WxShopService { BeanUtils.copyProperties(vo, shop); vo.setBuildingName(buildingMap.get(vo.getBuilding())); vo.setFloorName(floorMap.get(vo.getFloor())); - vo.setPublicRate(shop.getPulicRate()); Long merchangId = shopMerchantIdMap.get(vo.getId()); if (null != merchangId) { WxMerchant merchant = merchantMap.get(merchangId); @@ -577,7 +584,69 @@ public class WxShopServiceImpl implements WxShopService { ImportParams params = new ImportParams(); // 需要验证 String[] needFields = new String[]{"ID", "公摊系数"}; - String[] allFields = new String[] {"ID","楼座","楼层"}; + String[] allFields = new String[] {"ID","楼座","楼层","租赁商户","负责人电话","负责人","品牌","经营业态","计租面积","公摊系数"}; + ExcelImportResult datalist = handleImportFile(file,WxShopVo.class,allFields,needFields,new ExcelHandler()); + if (null == datalist) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"解析模版失败,请检查模版格式"); + } + + List successList = datalist.getList(); + if(null != successList && successList.size() > 0 ) { + try { + successList.parallelStream().forEach(shopBase -> { + try { + Long shopId = shopBase.getId(); + if (null != shopId) { + WxShop s = new WxShop(); + s.updateTenantInfo(tenantEntity); + s.setId(shopId); + s.setPulicRate(shopBase.getPulicRate()); + wxShopMapper.updateById(s); + } + } catch (UnknownSessionException ue) { + logger.error("session :"+ue.getMessage()); + } + }); + } catch (Exception e) { + logger.error("更新地理信息失败:"+e.getMessage(),e); + } + } + } + + private class ExcelHandler extends ExcelDataHandlerDefaultImpl { + @Override + public Object importHandler(MerchantPoiTNew obj, String name, Object value) { + if (value == null) { + value = ""; + } + return super.importHandler(obj, name, value); + } + + } + + private ExcelImportResult handleImportFile(File file,Class dataClazz,String[] importFields,String[] needFields,IExcelDataHandler handler) { + ImportParams params = new ImportParams(); + // 需要验证 + params.setImportFields(importFields); + handler.setNeedHandlerFields(needFields); + params.setNeedVerify(true); + ExcelImportResult datalist = null; + try { + datalist = ExcelImportUtil.importExcelMore(file, dataClazz, params); + } catch (Exception e) { + logger.error(e.getMessage(),e); + // 删除缓存文件 + file.delete(); + return null; + } + // 删除缓存文件 + file.delete(); + + if(datalist == null) { + logger.error("导入模板失败: 模板数据解析失败"); + return null; + } + return datalist; } @Override diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml index 2ed1c631d..cd2f67a32 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterChildMapper.xml @@ -54,6 +54,12 @@ + + delete from wx_energy_meter_child where `tenant_id` = #{tenantId} and `parent_meter_id` = #{parentMeterId} and `child_meter_id` = #{childMeterId} diff --git a/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml b/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml index a5d543622..1c0a1b15f 100644 --- a/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxEnergyMeterMapper.xml @@ -36,6 +36,12 @@ and name like concat('%', #{name},'%') and `physics_type` in (1,2) and `has_fee` = #{hasFee} + + and id not in + + #{nidItem} + + and physics_type in