java110 il y a 5 ans
Parent
commit
85fb760497

+ 15 - 1
java110-db/src/main/resources/mapper/fee/MeterWaterServiceDaoImplMapper.xml

@@ -19,7 +19,8 @@
     <!-- 查询水电费信息(Business) add by wuxw 2018-07-03 -->
     <select id="getBusinessMeterWaterInfo" parameterType="Map" resultType="Map">
         select t.remark,t.cur_reading_time,t.cur_reading_time curReadingTime,t.water_id,t.water_id
-        waterId,t.cur_degrees,t.cur_degrees curDegrees,t.operate,t.meter_type,t.meter_type meterType,t.pre_degrees,t.pre_degrees preDegrees,t.obj_id,t.obj_id
+        waterId,t.cur_degrees,t.cur_degrees curDegrees,t.operate,t.meter_type,t.meter_type
+        meterType,t.pre_degrees,t.pre_degrees preDegrees,t.obj_id,t.obj_id
         objId,t.pre_reading_time,t.pre_reading_time preReadingTime,t.b_id,t.b_id bId,t.community_id,t.community_id
         communityId,t.obj_type,t.obj_type objType,t.fee_id,t.fee_id feeId,t.obj_name,t.obj_name objName
         from business_meter_water t
@@ -270,4 +271,17 @@
 
     </select>
 
+
+    <!-- 批量插入费用 -->
+    <insert id="insertMeterWaters" parameterType="Map">
+        insert into meter_water
+        (remark,status_cd,cur_reading_time,water_id,cur_degrees,meter_type,pre_degrees,obj_id,pre_reading_time,b_id,
+        community_id,obj_type,fee_id,obj_name)
+        VALUES
+        <foreach collection="meterWaterPos" item="item" separator=",">
+            (#{item.remark},'0',#{item.curReadingTime},#{item.waterId},#{item.curDegrees},#{item.meterType},#{item.preDegrees},
+            '-1',#{item.objId},#{item.preReadingTime},'-1',#{item.communityId},#{item.objType},#{item.feeId},#{item.objName})
+        </foreach>
+    </insert>
+
 </mapper>

+ 11 - 1
java110-interface/src/main/java/com/java110/intf/fee/IMeterWaterInnerServiceSMO.java

@@ -2,6 +2,7 @@ package com.java110.intf.fee;
 
 import com.java110.config.feign.FeignConfiguration;
 import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.po.meterWater.MeterWaterPo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -24,7 +25,6 @@ public interface IMeterWaterInnerServiceSMO {
     /**
      * <p>查询小区楼信息</p>
      *
-     *
      * @param meterWaterDto 数据对象分享
      * @return MeterWaterDto 对象数据
      */
@@ -39,4 +39,14 @@ public interface IMeterWaterInnerServiceSMO {
      */
     @RequestMapping(value = "/queryMeterWatersCount", method = RequestMethod.POST)
     int queryMeterWatersCount(@RequestBody MeterWaterDto meterWaterDto);
+
+
+    /**
+     * <p>添加抄表对象</p>
+     *
+     * @param meterWaterPos 抄表对象
+     * @return MeterWaterDto 对象数据
+     */
+    @RequestMapping(value = "/saveMeterWaters", method = RequestMethod.POST)
+    int saveMeterWaters(@RequestBody List<MeterWaterPo> meterWaterPos);
 }

+ 24 - 5
service-fee/src/main/java/com/java110/fee/api/MeterWaterApi.java

@@ -1,13 +1,12 @@
 package com.java110.fee.api;
 
+import com.alibaba.fastjson.JSONObject;
 import com.java110.dto.meterWater.MeterWaterDto;
 import com.java110.fee.bmo.meterWater.IQueryPreMeterWater;
+import com.java110.utils.util.Assert;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping(value = "/meterWater")
@@ -53,6 +52,26 @@ public class MeterWaterApi {
     @RequestMapping(value = "/queryExportRoomAndMeterWater", method = RequestMethod.GET)
     public ResponseEntity<String> queryExportRoomAndMeterWater(@RequestParam(value = "communityId") String communityId,
                                                                @RequestParam(value = "meterType") String meterType) {
-        return  queryPreMeterWaterImpl.queryExportRoomAndMeterWater(communityId,meterType);
+        return queryPreMeterWaterImpl.queryExportRoomAndMeterWater(communityId, meterType);
     }
+
+    /**
+     * 导入水电抄表
+     *
+     * @param reqJson 请求报文
+     * @return
+     * @serviceCode /meterWater/importMeterWater
+     * @path /app/meterWater/importMeterWater
+     */
+    @RequestMapping(value = "/importMeterWater", method = RequestMethod.POST)
+    public ResponseEntity<String> importMeterWater(@RequestBody String reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求信息中未包含小区信息");
+        Assert.hasKeyAndValue(reqJson, "configId", "请求信息中未包含费用项");
+        Assert.hasKeyAndValue(reqJson, "storeId", "请求信息中未包含商户信息");
+        Assert.hasKeyAndValue(reqJson, "feeTypeCd", "请求信息中未包含费用类型");
+        return queryPreMeterWaterImpl.importMeterWater(JSONObject.parseObject(reqJson));
+    }
+
+
 }

+ 10 - 0
service-fee/src/main/java/com/java110/fee/bmo/meterWater/IQueryPreMeterWater.java

@@ -1,5 +1,6 @@
 package com.java110.fee.bmo.meterWater;
 
+import com.alibaba.fastjson.JSONObject;
 import com.java110.dto.meterWater.MeterWaterDto;
 import org.springframework.http.ResponseEntity;
 
@@ -24,4 +25,13 @@ public interface IQueryPreMeterWater {
      * @return
      */
     ResponseEntity<String> queryExportRoomAndMeterWater(String communityId, String meterType);
+
+    /**
+     * 导入
+     *
+     * @param reqJson 请求报文
+     * @return
+     */
+    ResponseEntity<String> importMeterWater(JSONObject reqJson);
+
 }

+ 99 - 0
service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java

@@ -1,7 +1,10 @@
 package com.java110.fee.bmo.meterWater.impl;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.meterWater.ImportExportMeterWaterDto;
 import com.java110.dto.meterWater.MeterWaterDto;
@@ -9,7 +12,11 @@ import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.fee.bmo.meterWater.IQueryPreMeterWater;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.meterWater.MeterWaterPo;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
@@ -40,6 +47,9 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
     @Autowired
     private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
 
     @Override
     public ResponseEntity<String> query(MeterWaterDto meterWaterDto, String roomNum) {
@@ -78,6 +88,95 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
         return ResultVo.createResponseEntity(1, importExportMeterWaterDtos.size(), importExportMeterWaterDtos);
     }
 
+    @Override
+    public ResponseEntity<String> importMeterWater(JSONObject reqJson) {
+        String communityId = reqJson.getString("communityId");
+        String storeId = reqJson.getString("storeId");
+        String configId = reqJson.getString("configId");
+        String userId = reqJson.getString("userId");
+        String feeTypeCd = reqJson.getString("feeTypeCd");
+        JSONArray importMeteWaterFees = reqJson.getJSONArray("importMeteWaterFees");
+        JSONObject meteWaterJson = null;
+        ImportExportMeterWaterDto importExportMeterWaterDto = null;
+
+        List<PayFeePo> fees = new ArrayList<>();
+        List<MeterWaterPo> meterWaterPos = new ArrayList<>();
+        for (int meteWaterIndex = 0; meteWaterIndex < importMeteWaterFees.size(); meteWaterIndex++) {
+            meteWaterJson = importMeteWaterFees.getJSONObject(meteWaterIndex);
+
+            importExportMeterWaterDto = BeanConvertUtil.covertBean(meteWaterJson, ImportExportMeterWaterDto.class);
+
+            dealImportExportMeterWater(importExportMeterWaterDto,
+                    communityId,
+                    storeId,
+                    configId,
+                    userId,
+                    feeTypeCd,
+                    fees,
+                    meterWaterPos
+            );
+        }
+
+        if (fees.size() < 1 || meterWaterPos.size() < 1) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "批量抄表失败");
+        }
+
+        feeInnerServiceSMOImpl.saveFee(fees);
+
+        meterWaterInnerServiceSMOImpl.saveMeterWaters(meterWaterPos);
+        return ResultVo.success();
+    }
+
+    private void dealImportExportMeterWater(ImportExportMeterWaterDto importExportMeterWaterDto, String communityId,
+                                            String storeId, String configId, String userId, String feeTypeCd,
+                                            List<PayFeePo> fees, List<MeterWaterPo> meterWaterPos) {
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(communityId);
+        roomDto.setFloorNum(importExportMeterWaterDto.getFloorNum());
+        roomDto.setUnitNum(importExportMeterWaterDto.getUnitNum());
+        roomDto.setRoomNum(importExportMeterWaterDto.getRoomNum());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        Assert.listOnlyOne(roomDtos, "房屋未找到或找到多条" + importExportMeterWaterDto.getFloorNum() + "-" + importExportMeterWaterDto.getUnitNum() + "-" + importExportMeterWaterDto.getRoomNum());
+
+        if (FeeConfigDto.FEE_TYPE_CD_WATER.equals(feeTypeCd)) {
+            importExportMeterWaterDto.setMeterType("1010");
+        } else {
+            importExportMeterWaterDto.setMeterType("2020");
+        }
+
+        PayFeePo payFeePo = new PayFeePo();
+        payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        payFeePo.setIncomeObjId(storeId);
+        payFeePo.setAmount("-1");
+        payFeePo.setStartTime(importExportMeterWaterDto.getPreReadingTime());
+        payFeePo.setEndTime(importExportMeterWaterDto.getPreReadingTime());
+        payFeePo.setPayerObjId(roomDtos.get(0).getRoomId());
+        //payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+        payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
+        payFeePo.setState(FeeDto.STATE_DOING);
+        payFeePo.setUserId(userId);
+        payFeePo.setFeeTypeCd(feeTypeCd);
+        payFeePo.setConfigId(configId);
+        fees.add(payFeePo);
+
+        MeterWaterPo meterWaterPo = new MeterWaterPo();
+        meterWaterPo.setCommunityId(communityId);
+        meterWaterPo.setCurDegrees(importExportMeterWaterDto.getCurDegrees());
+        meterWaterPo.setCurReadingTime(importExportMeterWaterDto.getCurReadingTime());
+        meterWaterPo.setFeeId(payFeePo.getFeeId());
+        meterWaterPo.setMeterType(importExportMeterWaterDto.getMeterType());
+        meterWaterPo.setObjId(roomDtos.get(0).getRoomId());
+        meterWaterPo.setObjName(importExportMeterWaterDto.getFloorNum() + "栋" + importExportMeterWaterDto.getUnitNum() + "单元" + importExportMeterWaterDto.getRoomNum() + "室");
+        meterWaterPo.setObjType(MeterWaterDto.OBJ_TYPE_ROOM);
+        meterWaterPo.setPreDegrees(importExportMeterWaterDto.getPreDegrees());
+        meterWaterPo.setPreReadingTime(importExportMeterWaterDto.getPreReadingTime());
+        meterWaterPo.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
+        meterWaterPos.add(meterWaterPo);
+    }
+
     private boolean freshFeeDtoParam(MeterWaterDto meterWaterDto, String roomNum) {
 
         if (StringUtil.isEmpty(roomNum)) {

+ 8 - 7
service-fee/src/main/java/com/java110/fee/dao/IMeterWaterServiceDao.java

@@ -10,23 +10,24 @@ import java.util.Map;
  * 水电费组件内部之间使用,没有给外围系统提供服务能力
  * 水电费服务接口类,要求全部以字符串传输,方便微服务化
  * 新建客户,修改客户,删除客户,查询客户等功能
- *
+ * <p>
  * Created by wuxw on 2016/12/27.
  */
 public interface IMeterWaterServiceDao {
 
     /**
      * 保存 水电费信息
+     *
      * @param businessMeterWaterInfo 水电费信息 封装
      * @throws DAOException 操作数据库异常
      */
     void saveBusinessMeterWaterInfo(Map businessMeterWaterInfo) throws DAOException;
 
 
-
     /**
      * 查询水电费信息(business过程)
      * 根据bId 查询水电费信息
+     *
      * @param info bId 信息
      * @return 水电费信息
      * @throws DAOException DAO异常
@@ -34,21 +35,19 @@ public interface IMeterWaterServiceDao {
     List<Map> getBusinessMeterWaterInfo(Map info) throws DAOException;
 
 
-
-
     /**
      * 保存 水电费信息 Business数据到 Instance中
+     *
      * @param info
      * @throws DAOException DAO异常
      */
     void saveMeterWaterInfoInstance(Map info) throws DAOException;
 
 
-
-
     /**
      * 查询水电费信息(instance过程)
      * 根据bId 查询水电费信息
+     *
      * @param info bId 信息
      * @return 水电费信息
      * @throws DAOException DAO异常
@@ -56,9 +55,9 @@ public interface IMeterWaterServiceDao {
     List<Map> getMeterWaterInfo(Map info) throws DAOException;
 
 
-
     /**
      * 修改水电费信息
+     *
      * @param info 修改信息
      * @throws DAOException DAO异常
      */
@@ -73,4 +72,6 @@ public interface IMeterWaterServiceDao {
      */
     int queryMeterWatersCount(Map info);
 
+    int insertMeterWaters(Map info);
+
 }

+ 8 - 0
service-fee/src/main/java/com/java110/fee/dao/impl/MeterWaterServiceDaoImpl.java

@@ -125,5 +125,13 @@ public class MeterWaterServiceDaoImpl extends BaseServiceDao implements IMeterWa
         return Integer.parseInt(businessMeterWaterInfos.get(0).get("count").toString());
     }
 
+    @Override
+    public int insertMeterWaters(Map info) {
+
+        int saveFlag = sqlSessionTemplate.insert("meterWaterServiceDaoImpl.insertMeterWaters", info);
+
+        return saveFlag;
+    }
+
 
 }

+ 16 - 0
service-fee/src/main/java/com/java110/fee/smo/impl/MeterWaterInnerServiceSMOImpl.java

@@ -8,13 +8,17 @@ import com.java110.dto.PageDto;
 import com.java110.dto.meterWater.MeterWaterDto;
 import com.java110.dto.user.UserDto;
 import com.java110.fee.dao.IMeterWaterServiceDao;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.meterWater.MeterWaterPo;
 import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName FloorInnerServiceSMOImpl
@@ -94,6 +98,18 @@ public class MeterWaterInnerServiceSMOImpl extends BaseServiceSMO implements IMe
         return meterWaterServiceDaoImpl.queryMeterWatersCount(BeanConvertUtil.beanCovertMap(meterWaterDto));
     }
 
+    @Override
+    public int saveMeterWaters(@RequestBody List<MeterWaterPo> meterWaterPos) {
+        List<Map> fees = new ArrayList<>();
+        for (MeterWaterPo payFeePo : meterWaterPos) {
+            fees.add(BeanConvertUtil.beanCovertMap(payFeePo));
+        }
+
+        Map info = new HashMap();
+        info.put("meterWaterPos", fees);
+        return meterWaterServiceDaoImpl.insertMeterWaters(info);
+    }
+
     public IMeterWaterServiceDao getMeterWaterServiceDaoImpl() {
         return meterWaterServiceDaoImpl;
     }

+ 1 - 1
service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportMeterWaterSMOImpl.java

@@ -59,7 +59,7 @@ public class ExportMeterWaterSMOImpl extends BaseComponentSMO implements IExport
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         MultiValueMap headers = new HttpHeaders();
         headers.add("content-type", "application/octet-stream;charset=UTF-8");
-        headers.add("Content-Disposition", "attachment;filename=feeImport_" + DateUtil.getyyyyMMddhhmmssDateString() + ".xlsx");
+        headers.add("Content-Disposition", "attachment;filename=meteWaterImport_" + DateUtil.getyyyyMMddhhmmssDateString() + ".xlsx");
         headers.add("Pargam", "no-cache");
         headers.add("Cache-Control", "no-cache");
         //headers.add("Content-Disposition", "attachment; filename=" + outParam.getString("fileName"));

+ 34 - 38
service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportRoomFeeSMOImpl.java

@@ -5,7 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.entity.assetImport.ImportRoomFee;
+import com.java110.dto.meterWater.ImportExportMeterWaterDto;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.front.smo.assetImport.IImportRoomFeeSMO;
 import com.java110.utils.constant.ServiceConstant;
@@ -58,7 +58,7 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
 
             Workbook workbook = ImportExcelUtils.createWorkbook(uploadFile);  //工作簿
 
-            List<ImportRoomFee> rooms = new ArrayList<ImportRoomFee>();
+            List<ImportExportMeterWaterDto> rooms = new ArrayList<ImportExportMeterWaterDto>();
 
             //获取楼信息
             getRooms(workbook, rooms);
@@ -72,16 +72,14 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
 
     /**
      * 处理ExcelData数据
-     *
-     * @param roomFees 房屋费用
      */
     private ResponseEntity<String> dealExcelData(IPageData pd,
-                                                 List<ImportRoomFee> roomFees,
+                                                 List<ImportExportMeterWaterDto> rooms,
 
                                                  ComponentValidateResult result) {
         ResponseEntity<String> responseEntity = null;
         //保存单元信息 和 楼栋信息
-        responseEntity = savedRoomFees(pd, roomFees, result);
+        responseEntity = savedRoomFees(pd, rooms, result);
 
         if (responseEntity == null || responseEntity.getStatusCode() != HttpStatus.OK) {
             return responseEntity;
@@ -90,9 +88,10 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
         return responseEntity;
     }
 
-    private ResponseEntity<String> savedRoomFees(IPageData pd, List<ImportRoomFee> roomFees, ComponentValidateResult result) {
+    private ResponseEntity<String> savedRoomFees(IPageData pd, List<ImportExportMeterWaterDto> rooms, ComponentValidateResult result) {
 
-        if (roomFees.size() < 1) {
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        if (rooms.size() < 1) {
             throw new IllegalArgumentException("没有数据需要处理");
         }
 
@@ -100,12 +99,14 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
         data.put("importFeeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         data.put("storeId", result.getStoreId());
         data.put("userId", result.getUserId());
+        data.put("configId", reqJson.getString("configId"));
+        data.put("feeTypeCd", reqJson.getString("feeTypeCd"));
         data.put("communityId", result.getCommunityId());
 
-        List<ImportRoomFee> tmpImportRoomFees = new ArrayList<>();
-        for (int roomIndex = 0; roomIndex < roomFees.size(); roomIndex++) {
+        List<ImportExportMeterWaterDto> tmpImportRoomFees = new ArrayList<>();
+        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
 
-            tmpImportRoomFees.add(roomFees.get(roomIndex));
+            tmpImportRoomFees.add(rooms.get(roomIndex));
 
             if (roomIndex % DEFAULT_ADD_FEE_COUNT == 0 && roomIndex != 0) {
 
@@ -125,14 +126,14 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
      * 创建费用
      *
      * @param pd
-     * @param tmpImportRoomFee
+     * @param tmpImportRoomFees
      */
-    private void createRoomFee(IPageData pd, List<ImportRoomFee> tmpImportRoomFee, JSONObject data) {
+    private void createRoomFee(IPageData pd, List<ImportExportMeterWaterDto> tmpImportRoomFees, JSONObject data) {
 
-        JSONArray importRoomFees = JSONArray.parseArray(JSONObject.toJSONString(tmpImportRoomFee));
-        data.put("importRoomFees", importRoomFees);
+        JSONArray importRoomFees = JSONArray.parseArray(JSONObject.toJSONString(tmpImportRoomFees));
+        data.put("importMeteWaterFees", importRoomFees);
 
-        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feeApi/importRoomFees";
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/meterWater/importMeterWater";
 
         this.callCenterService(restTemplate, pd, data.toJSONString(), apiUrl, HttpMethod.POST);
     }
@@ -144,11 +145,11 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
      * @param workbook
      * @param rooms
      */
-    private void getRooms(Workbook workbook, List<ImportRoomFee> rooms) {
+    private void getRooms(Workbook workbook, List<ImportExportMeterWaterDto> rooms) {
         Sheet sheet = null;
         sheet = ImportExcelUtils.getSheet(workbook, "房屋费用信息");
         List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
-        ImportRoomFee importRoomFee = null;
+        ImportExportMeterWaterDto importRoomFee = null;
         for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
             Object[] os = oList.get(osIndex);
             if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过
@@ -157,34 +158,29 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
             if (StringUtil.isNullOrNone(os[0])) {
                 continue;
             }
-
-            //费用名称没有填写,默认跳过
-            if (StringUtil.isNullOrNone(os[4])) {
-                continue;
-            }
-            Assert.hasValue(os[1], (osIndex + 1) + "行单元编号不能为空");
-            Assert.hasValue(os[2], (osIndex + 1) + "行房屋编号不能为空");
-            Assert.hasValue(os[3], (osIndex + 1) + "行费用名称不能为空");
-            Assert.hasValue(os[4], (osIndex + 1) + "行开始时间不能为空");
-            Assert.hasValue(os[5], (osIndex + 1) + "行结束时间不能为空");
-            Assert.hasValue(os[6], (osIndex + 1) + "行费用不能为空");
+            Assert.hasValue(os[1], (osIndex + 1) + "单元编号不能为空");
+            Assert.hasValue(os[2], (osIndex + 1) + "房屋编号不能为空");
+            Assert.hasValue(os[3], (osIndex + 1) + "上期度数不能为空");
+            Assert.hasValue(os[4], (osIndex + 1) + "上期度数时间不能为空");
+            Assert.hasValue(os[5], (osIndex + 1) + "本期度数不能为空");
+            Assert.hasValue(os[6], (osIndex + 1) + "本期度数时间不能为空");
 
 //
 
-            String startTime = excelDoubleToDate(os[4].toString());
-            String endTime = excelDoubleToDate(os[5].toString());
-            Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD 文本格式");
-            Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD 文本格式");
+            String startTime = excelDoubleToDate(os[5].toString());
+            String endTime = excelDoubleToDate(os[6].toString());
+            Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_A, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD hh:mm:ss 文本格式");
+            Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_A, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD hh:mm:ss 文本格式");
 
 
-            importRoomFee = new ImportRoomFee();
+            importRoomFee = new ImportExportMeterWaterDto();
             importRoomFee.setFloorNum(os[0].toString());
             importRoomFee.setUnitNum(os[1].toString());
             importRoomFee.setRoomNum(os[2].toString());
-            importRoomFee.setFeeName(os[3].toString());
-            importRoomFee.setStartTime(startTime);
-            importRoomFee.setEndTime(endTime);
-            importRoomFee.setAmount(os[6].toString());
+            importRoomFee.setPreDegrees(os[3].toString());
+            importRoomFee.setPreReadingTime(startTime);
+            importRoomFee.setCurDegrees(endTime);
+            importRoomFee.setCurReadingTime(os[6].toString());
             rooms.add(importRoomFee);
         }
     }