java110-bean/src/main/java/com/java110/po/meterWater/MeterWaterPo.java
@@ -19,6 +19,7 @@ private String feeId; private double price; private Date createTime; private String statusCd = "0"; public String getRemark() { return remark; @@ -131,4 +132,12 @@ public void setPrice(double price) { this.price = price; } public String getStatusCd() { return statusCd; } public void setStatusCd(String statusCd) { this.statusCd = statusCd; } } java110-db/src/main/resources/mapper/fee/MeterWaterV1ServiceDaoImplMapper.xml
New file @@ -0,0 +1,178 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="meterWaterV1ServiceDaoImpl"> <!-- 保存水电抄表信息 add by wuxw 2018-07-03 --> <insert id="saveMeterWaterInfo" parameterType="Map"> insert into meter_water( remark,obj_name,fee_id,cur_reading_time,water_id,cur_degrees,price,meter_type,pre_degrees,obj_id,pre_reading_time,community_id,obj_type ) values ( #{remark},#{objName},#{feeId},#{curReadingTime},#{waterId},#{curDegrees},#{price},#{meterType},#{preDegrees},#{objId},#{preReadingTime},#{communityId},#{objType} ) </insert> <!-- 查询水电抄表信息 add by wuxw 2018-07-03 --> <select id="getMeterWaterInfo" parameterType="Map" resultType="Map"> select t.status_cd,t.status_cd statusCd,t.remark,t.obj_name,t.obj_name objName,t.fee_id,t.fee_id feeId,t.cur_reading_time,t.cur_reading_time curReadingTime,t.water_id,t.water_id waterId,t.cur_degrees,t.cur_degrees curDegrees,t.price,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.community_id,t.community_id communityId,t.obj_type,t.obj_type objType from meter_water t where 1 =1 <if test="statusCd !=null and statusCd != ''"> and t.status_cd= #{statusCd} </if> <if test="remark !=null and remark != ''"> and t.remark= #{remark} </if> <if test="objName !=null and objName != ''"> and t.obj_name= #{objName} </if> <if test="feeId !=null and feeId != ''"> and t.fee_id= #{feeId} </if> <if test="curReadingTime !=null and curReadingTime != ''"> and t.cur_reading_time= #{curReadingTime} </if> <if test="waterId !=null and waterId != ''"> and t.water_id= #{waterId} </if> <if test="curDegrees !=null and curDegrees != ''"> and t.cur_degrees= #{curDegrees} </if> <if test="price !=null and price != ''"> and t.price= #{price} </if> <if test="meterType !=null and meterType != ''"> and t.meter_type= #{meterType} </if> <if test="preDegrees !=null and preDegrees != ''"> and t.pre_degrees= #{preDegrees} </if> <if test="objId !=null and objId != ''"> and t.obj_id= #{objId} </if> <if test="preReadingTime !=null and preReadingTime != ''"> and t.pre_reading_time= #{preReadingTime} </if> <if test="communityId !=null and communityId != ''"> and t.community_id= #{communityId} </if> <if test="objType !=null and objType != ''"> and t.obj_type= #{objType} </if> order by t.create_time desc <if test="page != -1 and page != null "> limit #{page}, #{row} </if> </select> <!-- 修改水电抄表信息 add by wuxw 2018-07-03 --> <update id="updateMeterWaterInfo" parameterType="Map"> update meter_water t set t.status_cd = #{statusCd} <if test="newBId != null and newBId != ''"> ,t.b_id = #{newBId} </if> <if test="remark !=null and remark != ''"> , t.remark= #{remark} </if> <if test="objName !=null and objName != ''"> , t.obj_name= #{objName} </if> <if test="feeId !=null and feeId != ''"> , t.fee_id= #{feeId} </if> <if test="curReadingTime !=null and curReadingTime != ''"> , t.cur_reading_time= #{curReadingTime} </if> <if test="curDegrees !=null and curDegrees != ''"> , t.cur_degrees= #{curDegrees} </if> <if test="price !=null and price != ''"> , t.price= #{price} </if> <if test="meterType !=null and meterType != ''"> , t.meter_type= #{meterType} </if> <if test="preDegrees !=null and preDegrees != ''"> , t.pre_degrees= #{preDegrees} </if> <if test="objId !=null and objId != ''"> , t.obj_id= #{objId} </if> <if test="preReadingTime !=null and preReadingTime != ''"> , t.pre_reading_time= #{preReadingTime} </if> <if test="communityId !=null and communityId != ''"> , t.community_id= #{communityId} </if> <if test="objType !=null and objType != ''"> , t.obj_type= #{objType} </if> where 1=1 <if test="waterId !=null and waterId != ''"> and t.water_id= #{waterId} </if> </update> <!-- 查询水电抄表数量 add by wuxw 2018-07-03 --> <select id="queryMeterWatersCount" parameterType="Map" resultType="Map"> select count(1) count from meter_water t where 1 =1 <if test="statusCd !=null and statusCd != ''"> and t.status_cd= #{statusCd} </if> <if test="remark !=null and remark != ''"> and t.remark= #{remark} </if> <if test="objName !=null and objName != ''"> and t.obj_name= #{objName} </if> <if test="feeId !=null and feeId != ''"> and t.fee_id= #{feeId} </if> <if test="curReadingTime !=null and curReadingTime != ''"> and t.cur_reading_time= #{curReadingTime} </if> <if test="waterId !=null and waterId != ''"> and t.water_id= #{waterId} </if> <if test="curDegrees !=null and curDegrees != ''"> and t.cur_degrees= #{curDegrees} </if> <if test="price !=null and price != ''"> and t.price= #{price} </if> <if test="meterType !=null and meterType != ''"> and t.meter_type= #{meterType} </if> <if test="preDegrees !=null and preDegrees != ''"> and t.pre_degrees= #{preDegrees} </if> <if test="objId !=null and objId != ''"> and t.obj_id= #{objId} </if> <if test="preReadingTime !=null and preReadingTime != ''"> and t.pre_reading_time= #{preReadingTime} </if> <if test="communityId !=null and communityId != ''"> and t.community_id= #{communityId} </if> <if test="objType !=null and objType != ''"> and t.obj_type= #{objType} </if> </select> </mapper> java110-interface/src/main/java/com/java110/intf/fee/IMeterWaterV1InnerServiceSMO.java
New file @@ -0,0 +1,68 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 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; import org.springframework.web.bind.annotation.RequestMethod; import java.util.List; /** * 类表述: 服务之前调用的接口类,不对外提供接口能力 只用于接口建调用 * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @FeignClient(name = "fee-service", configuration = {FeignConfiguration.class}) @RequestMapping("/meterWaterV1Api") public interface IMeterWaterV1InnerServiceSMO { @RequestMapping(value = "/saveMeterWater", method = RequestMethod.POST) public int saveMeterWater(@RequestBody MeterWaterPo meterWaterPo); @RequestMapping(value = "/updateMeterWater", method = RequestMethod.POST) public int updateMeterWater(@RequestBody MeterWaterPo meterWaterPo); @RequestMapping(value = "/deleteMeterWater", method = RequestMethod.POST) public int deleteMeterWater(@RequestBody MeterWaterPo meterWaterPo); /** * <p>查询小区楼信息</p> * * * @param meterWaterDto 数据对象分享 * @return MeterWaterDto 对象数据 */ @RequestMapping(value = "/queryMeterWaters", method = RequestMethod.POST) List<MeterWaterDto> queryMeterWaters(@RequestBody MeterWaterDto meterWaterDto); /** * 查询<p>小区楼</p>总记录数 * * @param meterWaterDto 数据对象分享 * @return 小区下的小区楼记录数 */ @RequestMapping(value = "/queryMeterWatersCount", method = RequestMethod.POST) int queryMeterWatersCount(@RequestBody MeterWaterDto meterWaterDto); } service-api/src/main/java/com/java110/api/listener/meterWater/DeleteMeterWaterListener.java
File was deleted service-api/src/main/java/com/java110/api/listener/meterWater/UpdateMeterWaterListener.java
File was deleted service-fee/src/main/java/com/java110/fee/cmd/meterWater/DeleteMeterWaterCmd.java
New file @@ -0,0 +1,113 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.cmd.meterWater; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.annotation.Java110Transactional; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.dto.fee.FeeDto; import com.java110.dto.meterWater.MeterWaterDto; import com.java110.intf.fee.IFeeInnerServiceSMO; import com.java110.intf.fee.IMeterWaterInnerServiceSMO; import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO; import com.java110.intf.fee.IPayFeeV1InnerServiceSMO; import com.java110.po.fee.PayFeePo; import com.java110.po.meterWater.MeterWaterPo; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.vo.ResultVo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; /** * 类表述:删除 * 服务编码:meterWater.deleteMeterWater * 请求路劲:/app/meterWater.DeleteMeterWater * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @Java110Cmd(serviceCode = "meterWater.deleteMeterWater") public class DeleteMeterWaterCmd extends Cmd { private static Logger logger = LoggerFactory.getLogger(DeleteMeterWaterCmd.class); @Autowired private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl; @Autowired private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl; @Autowired private IFeeInnerServiceSMO feeInnerServiceSMOImpl; @Autowired private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "waterId", "waterId不能为空"); Assert.hasKeyAndValue(reqJson, "communityId", "communityId不能为空"); } @Override @Java110Transactional public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { MeterWaterDto meterWaterDto = new MeterWaterDto(); meterWaterDto.setWaterId(reqJson.getString("waterId")); meterWaterDto.setCommunityId(reqJson.getString("communityId")); List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto); Assert.listOnlyOne(meterWaterDtos, "数据异常未找到费用信息"); int flag = 0; //判断费用是否已经被删除 FeeDto feeDto = new FeeDto(); feeDto.setFeeId(meterWaterDtos.get(0).getFeeId()); feeDto.setCommunityId(meterWaterDtos.get(0).getCommunityId()); List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto); if (feeDtos != null && feeDtos.size() > 0) { PayFeePo payFeePo = new PayFeePo(); payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId()); payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId()); flag = payFeeV1InnerServiceSMOImpl.deletePayFee(payFeePo); if (flag < 1) { throw new CmdException("删除数据失败"); } } MeterWaterPo meterWaterPo = BeanConvertUtil.covertBean(reqJson, MeterWaterPo.class); flag = meterWaterV1InnerServiceSMOImpl.deleteMeterWater(meterWaterPo); if (flag < 1) { throw new CmdException("删除数据失败"); } cmdDataFlowContext.setResponseEntity(ResultVo.success()); } } service-fee/src/main/java/com/java110/fee/cmd/meterWater/ListMeterWaterCmd.javaold mode 100755 new mode 100644
File was renamed from service-api/src/main/java/com/java110/api/listener/meterWater/ListMeterWatersListener.java @@ -1,35 +1,66 @@ package com.java110.api.listener.meterWater; /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.cmd.meterWater; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.api.listener.AbstractServiceApiListener; import com.java110.core.annotation.Java110Listener; import com.java110.core.context.DataFlowContext; import com.java110.core.event.service.api.ServiceDataFlowEvent; import com.java110.core.annotation.Java110Cmd; import com.java110.core.annotation.Java110Transactional; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.RoomDto; import com.java110.dto.meterWater.MeterWaterDto; import com.java110.dto.parking.ParkingSpaceDto; import com.java110.intf.community.IParkingSpaceInnerServiceSMO; import com.java110.intf.community.IRoomInnerServiceSMO; import com.java110.intf.fee.IMeterWaterInnerServiceSMO; import com.java110.utils.constant.ServiceCodeMeterWaterConstant; import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO; import com.java110.po.meterWater.MeterWaterPo; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import java.util.ArrayList; import com.java110.dto.meterWater.MeterWaterDto; import java.util.List; import java.util.ArrayList; import org.springframework.http.ResponseEntity; import org.springframework.http.HttpStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 查询小区侦听类 * 类表述:查询 * 服务编码:meterWater.listMeterWater * 请求路劲:/app/meterWater.ListMeterWater * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @Java110Listener("listMeterWatersListener") public class ListMeterWatersListener extends AbstractServiceApiListener { @Java110Cmd(serviceCode = "meterWater.listMeterWaters") public class ListMeterWaterCmd extends Cmd { private static Logger logger = LoggerFactory.getLogger(ListMeterWaterCmd.class); @Autowired private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl; @Autowired private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl; @@ -41,38 +72,13 @@ private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl; @Override public String getServiceCode() { return ServiceCodeMeterWaterConstant.LIST_METERWATERS; } @Override public HttpMethod getHttpMethod() { return HttpMethod.GET; } @Override public int getOrder() { return DEFAULT_ORDER; } public IMeterWaterInnerServiceSMO getMeterWaterInnerServiceSMOImpl() { return meterWaterInnerServiceSMOImpl; } public void setMeterWaterInnerServiceSMOImpl(IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl) { this.meterWaterInnerServiceSMOImpl = meterWaterInnerServiceSMOImpl; } @Override protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) { public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { super.validatePageInfo(reqJson); Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID"); } @Override protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) { public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException { MeterWaterDto meterWaterDto = BeanConvertUtil.covertBean(reqJson, MeterWaterDto.class); ResultVo resultVo = null; @@ -97,7 +103,6 @@ ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK); context.setResponseEntity(responseEntity); } private boolean freshFeeDtoParam(MeterWaterDto meterWaterDto, JSONObject reqJson) { service-fee/src/main/java/com/java110/fee/cmd/meterWater/SaveMeterWaterCmd.javaold mode 100755 new mode 100644
File was renamed from service-api/src/main/java/com/java110/api/listener/meterWater/SaveMeterWaterListener.java @@ -1,11 +1,26 @@ package com.java110.api.listener.meterWater; /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.cmd.meterWater; import com.alibaba.fastjson.JSONObject; import com.java110.api.bmo.meterWater.IMeterWaterBMO; import com.java110.api.listener.AbstractServiceApiPlusListener; import com.java110.core.annotation.Java110Listener; import com.java110.core.context.DataFlowContext; import com.java110.core.event.service.api.ServiceDataFlowEvent; import com.java110.core.annotation.Java110Cmd; import com.java110.core.annotation.Java110Transactional; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.RoomDto; import com.java110.dto.fee.FeeAttrDto; @@ -15,35 +30,47 @@ import com.java110.dto.payFeeBatch.PayFeeBatchDto; import com.java110.dto.user.UserDto; import com.java110.intf.community.IRoomInnerServiceSMO; import com.java110.intf.fee.IFeeAttrInnerServiceSMO; import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO; import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO; import com.java110.intf.fee.IPayFeeV1InnerServiceSMO; import com.java110.intf.user.IOwnerInnerServiceSMO; import com.java110.intf.user.IUserInnerServiceSMO; import com.java110.po.fee.FeeAttrPo; import com.java110.po.fee.PayFeePo; import com.java110.po.meterWater.MeterWaterPo; import com.java110.po.payFeeBatch.PayFeeBatchPo; import com.java110.utils.cache.MappingCache; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.utils.constant.CommonConstant; import com.java110.utils.constant.ServiceCodeMeterWaterConstant; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 保存商户侦听 * add by wuxw 2019-06-30 * 类表述:保存 * 服务编码:meterWater.saveMeterWater * 请求路劲:/app/meterWater.SaveMeterWater * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @Java110Listener("saveMeterWaterListener") public class SaveMeterWaterListener extends AbstractServiceApiPlusListener { @Java110Cmd(serviceCode = "meterWater.saveMeterWater") public class SaveMeterWaterCmd extends Cmd { @Autowired private IMeterWaterBMO meterWaterBMOImpl; private static Logger logger = LoggerFactory.getLogger(SaveMeterWaterCmd.class); public static final String CODE_PREFIX_ID = "10"; @Autowired private IRoomInnerServiceSMO roomInnerServiceSMOImpl; @@ -67,10 +94,18 @@ @Autowired private IUserInnerServiceSMO userInnerServiceSMOImpl; @Autowired private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl; @Autowired private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl; @Autowired private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl; @Override protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) { //Assert.hasKeyAndValue(reqJson, "xxx", "xxx"); public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "feeTypeCd", "请求报文中未包含费用类型"); Assert.hasKeyAndValue(reqJson, "configId", "请求报文中未包含费用项"); Assert.hasKeyAndValue(reqJson, "objType", "请求报文中未包含objType"); @@ -81,18 +116,13 @@ Assert.hasKeyAndValue(reqJson, "curReadingTime", "请求报文中未包含curReadingTime"); Assert.hasKeyAndValue(reqJson, "objType", "请求报文中未包含objType"); Assert.hasKeyAndValue(reqJson, "meterType", "请求报文中未包含抄表类型"); } @Override protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) { // if (FeeConfigDto.FEE_TYPE_CD_WATER.equals(reqJson.getString("feeTypeCd"))) { // reqJson.put("meterType", "1010"); // } else if (FeeConfigDto.FEE_TYPE_CD_GAS.equals(reqJson.getString("feeTypeCd"))) { // reqJson.put("meterType", "3030"); // } else { // reqJson.put("meterType", "2020"); // } //获取抄表对象id(即房屋id) @Java110Transactional public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { String objId = reqJson.getString("objId"); RoomDto roomDto = new RoomDto(); roomDto.setRoomId(objId); @@ -124,11 +154,11 @@ if (waterRemarkList.contains(communityId) && FeeConfigDto.FEE_TYPE_CD_METER.equals(reqJson.getString("feeTypeCd"))) { reqJson.put("feeId", "-1"); meterWaterBMOImpl.addMeterWater(reqJson, context); addMeterWater(reqJson); } else if (electricRemarkList.contains(communityId) && FeeConfigDto.FEE_TYPE_CD_WATER.equals(reqJson.getString("feeTypeCd"))) { reqJson.put("feeId", "-1"); meterWaterBMOImpl.addMeterWater(reqJson, context); addMeterWater(reqJson); } else { PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class); payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId)); @@ -142,15 +172,21 @@ payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE); payFeePo.setState(FeeDto.STATE_DOING); payFeePo.setBatchId(reqJson.getString("batchId")); payFeePo.setUserId(context.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID)); super.insert(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO); payFeePo.setUserId("-1"); int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo); if (flag < 1) { throw new CmdException("保存数据失败"); } FeeAttrPo feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(reqJson.getString("communityId")); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME); feeAttrPo.setValue(reqJson.getString("curReadingTime")); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId("-1"); super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId)); flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo); if (flag < 1) { throw new CmdException("保存数据失败"); } OwnerDto ownerDto = new OwnerDto(); ownerDto.setCommunityId(reqJson.getString("communityId")); ownerDto.setRoomId(reqJson.getString("objId")); @@ -162,29 +198,56 @@ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID); feeAttrPo.setValue(ownerDtos.get(0).getOwnerId()); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId("-2"); super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId)); flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo); if (flag < 1) { throw new CmdException("保存数据失败"); } feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(reqJson.getString("communityId")); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK); feeAttrPo.setValue(ownerDtos.get(0).getLink()); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId("-3"); super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId)); flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo); if (flag < 1) { throw new CmdException("保存数据失败"); } feeAttrPo = new FeeAttrPo(); feeAttrPo.setCommunityId(reqJson.getString("communityId")); feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME); feeAttrPo.setValue(ownerDtos.get(0).getName()); feeAttrPo.setFeeId(payFeePo.getFeeId()); feeAttrPo.setAttrId("-4"); super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO); feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId)); flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo); if (flag < 1) { throw new CmdException("保存数据失败"); } } reqJson.put("feeId", payFeePo.getFeeId()); meterWaterBMOImpl.addMeterWater(reqJson, context); addMeterWater(reqJson); } cmdDataFlowContext.setResponseEntity(ResultVo.success()); } /** * 添加小区信息 * * @param paramInJson 接口调用放传入入参 * @return 订单服务能够接受的报文 */ public void addMeterWater(JSONObject paramInJson) { MeterWaterPo meterWaterPo = BeanConvertUtil.covertBean(paramInJson, MeterWaterPo.class); meterWaterPo.setWaterId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID)); int flag = meterWaterV1InnerServiceSMOImpl.saveMeterWater(meterWaterPo); if (flag < 1) { throw new CmdException("保存数据失败"); } } /** * 生成批次号 @@ -211,16 +274,6 @@ } reqJson.put("batchId", payFeeBatchPo.getBatchId()); } @Override public String getServiceCode() { return ServiceCodeMeterWaterConstant.ADD_METERWATER; } @Override public HttpMethod getHttpMethod() { return HttpMethod.POST; } } service-fee/src/main/java/com/java110/fee/cmd/meterWater/UpdateMeterWaterCmd.java
New file @@ -0,0 +1,165 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.cmd.meterWater; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.annotation.Java110Transactional; import com.java110.core.context.DataFlowContext; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.RoomDto; import com.java110.dto.meterWater.MeterWaterDto; import com.java110.intf.community.IRoomInnerServiceSMO; import com.java110.intf.fee.IMeterWaterInnerServiceSMO; import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO; import com.java110.intf.fee.IPayFeeV1InnerServiceSMO; import com.java110.po.fee.PayFeePo; import com.java110.po.meterWater.MeterWaterPo; import com.java110.utils.cache.MappingCache; import com.java110.utils.constant.BusinessTypeConstant; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 类表述:更新 * 服务编码:meterWater.updateMeterWater * 请求路劲:/app/meterWater.UpdateMeterWater * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @Java110Cmd(serviceCode = "meterWater.updateMeterWater") public class UpdateMeterWaterCmd extends Cmd { private static Logger logger = LoggerFactory.getLogger(UpdateMeterWaterCmd.class); @Autowired private IMeterWaterV1InnerServiceSMO meterWaterV1InnerServiceSMOImpl; @Autowired private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl; @Autowired private IRoomInnerServiceSMO roomInnerServiceSMOImpl; @Autowired private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl; //域 public static final String DOMAIN_COMMON = "DOMAIN.COMMON"; //键(水费黑名单) public static final String WATER_BLACK_LIST = "WATER_BLACK_LIST"; //键(电费黑名单) public static final String ELECTRIC_BLACK_LIST = "ELECTRIC_BLACK_LIST"; @Override public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) { Assert.hasKeyAndValue(reqJson, "waterId", "waterId不能为空"); Assert.hasKeyAndValue(reqJson, "preDegrees", "请求报文中未包含preDegrees"); Assert.hasKeyAndValue(reqJson, "curDegrees", "请求报文中未包含curDegrees"); Assert.hasKeyAndValue(reqJson, "preReadingTime", "请求报文中未包含preReadingTime"); Assert.hasKeyAndValue(reqJson, "curReadingTime", "请求报文中未包含curReadingTime"); Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含communityId"); } @Override @Java110Transactional public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { MeterWaterDto meterWaterDto = new MeterWaterDto(); meterWaterDto.setWaterId(reqJson.getString("waterId")); meterWaterDto.setCommunityId(reqJson.getString("communityId")); List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto); Assert.listOnlyOne(meterWaterDtos, "数据异常未找到费用信息"); RoomDto roomDto = new RoomDto(); roomDto.setRoomId(meterWaterDtos.get(0).getObjId()); List<RoomDto> roomList = roomInnerServiceSMOImpl.queryRooms(roomDto); Assert.listOnlyOne(roomList, "查询房屋信息错误!"); //获取抄表对象所属小区id String communityId = roomList.get(0).getCommunityId(); //获取抄表类型 String meterType = meterWaterDtos.get(0).getMeterType(); //取出开关映射的备注值(水费黑名单) String waterRemark = MappingCache.getRemark(DOMAIN_COMMON, WATER_BLACK_LIST); List<String> waterRemarkList = new ArrayList<>(); if (!StringUtil.isEmpty(waterRemark)) { String[] waterSplit = waterRemark.split(","); //将数组转成list集合(水费黑名单集合) waterRemarkList = Arrays.asList(waterSplit); } //取出开关映射的备注值(电费黑名单) String electricRemark = MappingCache.getRemark(DOMAIN_COMMON, ELECTRIC_BLACK_LIST); List<String> electricRemarkList = new ArrayList<>(); if (!StringUtil.isEmpty(electricRemark)) { String[] electricSplit = electricRemark.split(","); //将数组转成list集合(电费黑名单集合) electricRemarkList = Arrays.asList(electricSplit); } //如果是水费,且在水费黑名单就直接生成水费记录,不生成费用 if (waterRemarkList.contains(communityId) && meterType.equals("2020")) { updateMeterWater(reqJson); } else if (electricRemarkList.contains(communityId) && meterType.equals("1010")) { updateMeterWater(reqJson); } else { PayFeePo payFeePo = new PayFeePo(); payFeePo.setFeeId(meterWaterDtos.get(0).getFeeId()); payFeePo.setCommunityId(meterWaterDtos.get(0).getCommunityId()); payFeePo.setStartTime(reqJson.getString("preReadingTime")); //payFeePo.setEndTime(reqJson.getString("curReadingTime")); int flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo); if (flag < 1) { throw new CmdException("更新数据失败"); } updateMeterWater(reqJson); } cmdDataFlowContext.setResponseEntity(ResultVo.success()); } /** * 添加活动信息 * * @param paramInJson 接口调用放传入入参 * @return 订单服务能够接受的报文 */ public void updateMeterWater(JSONObject paramInJson) { MeterWaterPo meterWaterPo = BeanConvertUtil.covertBean(paramInJson, MeterWaterPo.class); int flag = meterWaterV1InnerServiceSMOImpl.updateMeterWater(meterWaterPo); if (flag < 1) { throw new CmdException("更新数据失败"); } } } service-fee/src/main/java/com/java110/fee/dao/IMeterWaterV1ServiceDao.java
New file @@ -0,0 +1,77 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.dao; import com.java110.utils.exception.DAOException; import com.java110.entity.merchant.BoMerchant; import com.java110.entity.merchant.BoMerchantAttr; import com.java110.entity.merchant.Merchant; import com.java110.entity.merchant.MerchantAttr; import java.util.List; import java.util.Map; /** * 类表述: * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ public interface IMeterWaterV1ServiceDao { /** * 保存 水电抄表信息 * @param info * @throws DAOException DAO异常 */ int saveMeterWaterInfo(Map info) throws DAOException; /** * 查询水电抄表信息(instance过程) * 根据bId 查询水电抄表信息 * @param info bId 信息 * @return 水电抄表信息 * @throws DAOException DAO异常 */ List<Map> getMeterWaterInfo(Map info) throws DAOException; /** * 修改水电抄表信息 * @param info 修改信息 * @throws DAOException DAO异常 */ int updateMeterWaterInfo(Map info) throws DAOException; /** * 查询水电抄表总数 * * @param info 水电抄表信息 * @return 水电抄表数量 */ int queryMeterWatersCount(Map info); } service-fee/src/main/java/com/java110/fee/dao/impl/MeterWaterV1ServiceDaoImpl.java
New file @@ -0,0 +1,112 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.dao.impl; import com.alibaba.fastjson.JSONObject; import com.java110.utils.constant.ResponseConstant; import com.java110.utils.exception.DAOException; import com.java110.utils.util.DateUtil; import com.java110.core.base.dao.BaseServiceDao; import com.java110.fee.dao.IMeterWaterV1ServiceDao; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; /** * 类表述: * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @Service("meterWaterV1ServiceDaoImpl") public class MeterWaterV1ServiceDaoImpl extends BaseServiceDao implements IMeterWaterV1ServiceDao { private static Logger logger = LoggerFactory.getLogger(MeterWaterV1ServiceDaoImpl.class); /** * 保存水电抄表信息 到 instance * @param info bId 信息 * @throws DAOException DAO异常 */ @Override public int saveMeterWaterInfo(Map info) throws DAOException { logger.debug("保存 saveMeterWaterInfo 入参 info : {}",info); int saveFlag = sqlSessionTemplate.insert("meterWaterV1ServiceDaoImpl.saveMeterWaterInfo",info); return saveFlag; } /** * 查询水电抄表信息(instance) * @param info bId 信息 * @return List<Map> * @throws DAOException DAO异常 */ @Override public List<Map> getMeterWaterInfo(Map info) throws DAOException { logger.debug("查询 getMeterWaterInfo 入参 info : {}",info); List<Map> businessMeterWaterInfos = sqlSessionTemplate.selectList("meterWaterV1ServiceDaoImpl.getMeterWaterInfo",info); return businessMeterWaterInfos; } /** * 修改水电抄表信息 * @param info 修改信息 * @throws DAOException DAO异常 */ @Override public int updateMeterWaterInfo(Map info) throws DAOException { logger.debug("修改 updateMeterWaterInfo 入参 info : {}",info); int saveFlag = sqlSessionTemplate.update("meterWaterV1ServiceDaoImpl.updateMeterWaterInfo",info); return saveFlag; } /** * 查询水电抄表数量 * @param info 水电抄表信息 * @return 水电抄表数量 */ @Override public int queryMeterWatersCount(Map info) { logger.debug("查询 queryMeterWatersCount 入参 info : {}",info); List<Map> businessMeterWaterInfos = sqlSessionTemplate.selectList("meterWaterV1ServiceDaoImpl.queryMeterWatersCount", info); if (businessMeterWaterInfos.size() < 1) { return 0; } return Integer.parseInt(businessMeterWaterInfos.get(0).get("count").toString()); } } service-fee/src/main/java/com/java110/fee/smo/impl/MeterWaterV1InnerServiceSMOImpl.java
New file @@ -0,0 +1,89 @@ /* * Copyright 2017-2020 吴学文 and java110 team. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.java110.fee.smo.impl; import com.java110.fee.dao.IMeterWaterV1ServiceDao; import com.java110.intf.fee.IMeterWaterV1InnerServiceSMO; import com.java110.dto.meterWater.MeterWaterDto; import com.java110.po.meterWater.MeterWaterPo; import com.java110.utils.util.BeanConvertUtil; import com.java110.core.base.smo.BaseServiceSMO; import com.java110.dto.user.UserDto; import com.java110.dto.PageDto; 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.List; /** * 类表述: 服务之前调用的接口实现类,不对外提供接口能力 只用于接口建调用 * add by 吴学文 at 2022-07-21 09:17:10 mail: 928255095@qq.com * open source address: https://gitee.com/wuxw7/MicroCommunity * 官网:http://www.homecommunity.cn * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行 */ @RestController public class MeterWaterV1InnerServiceSMOImpl extends BaseServiceSMO implements IMeterWaterV1InnerServiceSMO { @Autowired private IMeterWaterV1ServiceDao meterWaterV1ServiceDaoImpl; @Override public int saveMeterWater(@RequestBody MeterWaterPo meterWaterPo) { int saveFlag = meterWaterV1ServiceDaoImpl.saveMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterPo)); return saveFlag; } @Override public int updateMeterWater(@RequestBody MeterWaterPo meterWaterPo) { int saveFlag = meterWaterV1ServiceDaoImpl.updateMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterPo)); return saveFlag; } @Override public int deleteMeterWater(@RequestBody MeterWaterPo meterWaterPo) { meterWaterPo.setStatusCd("1"); int saveFlag = meterWaterV1ServiceDaoImpl.updateMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterPo)); return saveFlag; } @Override public List<MeterWaterDto> queryMeterWaters(@RequestBody MeterWaterDto meterWaterDto) { //校验是否传了 分页信息 int page = meterWaterDto.getPage(); if (page != PageDto.DEFAULT_PAGE) { meterWaterDto.setPage((page - 1) * meterWaterDto.getRow()); } List<MeterWaterDto> meterWaters = BeanConvertUtil.covertBeanList(meterWaterV1ServiceDaoImpl.getMeterWaterInfo(BeanConvertUtil.beanCovertMap(meterWaterDto)), MeterWaterDto.class); return meterWaters; } @Override public int queryMeterWatersCount(@RequestBody MeterWaterDto meterWaterDto) { return meterWaterV1ServiceDaoImpl.queryMeterWatersCount(BeanConvertUtil.beanCovertMap(meterWaterDto)); } }