Browse Source

优化代码

java110 4 years ago
parent
commit
b5600cb5c9
18 changed files with 434 additions and 74 deletions
  1. 9 0
      java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java
  2. 38 19
      java110-bean/src/main/java/com/java110/dto/payFeeBatch/PayFeeBatchDto.java
  3. 9 0
      java110-bean/src/main/java/com/java110/po/fee/PayFeePo.java
  4. 40 25
      java110-bean/src/main/java/com/java110/po/payFeeBatch/PayFeeBatchPo.java
  5. 8 8
      java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml
  6. 2 0
      service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java
  7. 42 2
      service-api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java
  8. 43 0
      service-api/src/main/java/com/java110/api/listener/fee/SaveRoomCreateFeeListener.java
  9. 44 1
      service-api/src/main/java/com/java110/api/listener/meterWater/SaveMeterWaterListener.java
  10. 45 4
      service-api/src/main/java/com/java110/api/listener/meterWater/SaveProxyFeeListener.java
  11. 44 1
      service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportMeterWaterFeeSMOImpl.java
  12. 54 12
      service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportRoomFeeSMOImpl.java
  13. 3 0
      service-fee/src/main/java/com/java110/fee/api/FeeApi.java
  14. 1 0
      service-fee/src/main/java/com/java110/fee/api/MeterWaterApi.java
  15. 4 0
      service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java
  16. 41 0
      service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java
  17. 5 2
      service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java
  18. 2 0
      service-fee/src/main/java/com/java110/fee/listener/fee/AbstractFeeBusinessServiceDataFlowListener.java

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java

@@ -127,6 +127,7 @@ public class FeeDto extends PageDto implements Serializable {
     private String carTypeCd;
     private String cycle;
     private double feeTotalPrice;
+    private String batchId;
 
     public String getAmount() {
         return amount;
@@ -616,4 +617,12 @@ public class FeeDto extends PageDto implements Serializable {
     public void setFeeTotalPrice(double feeTotalPrice) {
         this.feeTotalPrice = feeTotalPrice;
     }
+
+    public String getBatchId() {
+        return batchId;
+    }
+
+    public void setBatchId(String batchId) {
+        this.batchId = batchId;
+    }
 }

+ 38 - 19
java110-bean/src/main/java/com/java110/dto/payFeeBatch/PayFeeBatchDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.payFeeBatch;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -14,13 +15,18 @@ import java.util.Date;
  **/
 public class PayFeeBatchDto extends PageDto implements Serializable {
 
+    public static final String STATE_NORMAL = "2006001"; // 正常
+    public static final String STATE_APPLY = "2007001"; // 申请
+    public static final String STATE_SUCCESS = "2008001"; // 审核通过
+    public static final String STATE_FAIL = "2009001"; // 审核通过
+
     private String msg;
-private String createUserId;
-private String createUserName;
-private String remark;
-private String state;
-private String batchId;
-private String communityId;
+    private String createUserId;
+    private String createUserName;
+    private String remark;
+    private String state;
+    private String batchId;
+    private String communityId;
 
 
     private Date createTime;
@@ -31,43 +37,56 @@ private String communityId;
     public String getMsg() {
         return msg;
     }
-public void setMsg(String msg) {
+
+    public void setMsg(String msg) {
         this.msg = msg;
     }
-public String getCreateUserId() {
+
+    public String getCreateUserId() {
         return createUserId;
     }
-public void setCreateUserId(String createUserId) {
+
+    public void setCreateUserId(String createUserId) {
         this.createUserId = createUserId;
     }
-public String getCreateUserName() {
+
+    public String getCreateUserName() {
         return createUserName;
     }
-public void setCreateUserName(String createUserName) {
+
+    public void setCreateUserName(String createUserName) {
         this.createUserName = createUserName;
     }
-public String getRemark() {
+
+    public String getRemark() {
         return remark;
     }
-public void setRemark(String remark) {
+
+    public void setRemark(String remark) {
         this.remark = remark;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getBatchId() {
+
+    public String getBatchId() {
         return batchId;
     }
-public void setBatchId(String batchId) {
+
+    public void setBatchId(String batchId) {
         this.batchId = batchId;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
 

+ 9 - 0
java110-bean/src/main/java/com/java110/po/fee/PayFeePo.java

@@ -28,6 +28,7 @@ public class PayFeePo implements Serializable {
     private String payerObjType;
     private String statusCd;
     private String createTime;
+    private String batchId;
 
     public String getFeeId() {
         return feeId;
@@ -148,4 +149,12 @@ public class PayFeePo implements Serializable {
     public void setCreateTime(String createTime) {
         this.createTime = createTime;
     }
+
+    public String getBatchId() {
+        return batchId;
+    }
+
+    public void setBatchId(String batchId) {
+        this.batchId = batchId;
+    }
 }

+ 40 - 25
java110-bean/src/main/java/com/java110/po/payFeeBatch/PayFeeBatchPo.java

@@ -16,7 +16,7 @@
 package com.java110.po.payFeeBatch;
 
 import java.io.Serializable;
-import java.util.Date;
+
 /**
  * 类表述: Po 数据模型实体对象 基本保持与数据库模型一直 用于 增加修改删除 等时的数据载体
  * add by 吴学文 at 2021-09-22 18:00:13 mail: 928255095@qq.com
@@ -28,62 +28,77 @@ import java.util.Date;
 public class PayFeeBatchPo implements Serializable {
 
     private String msg;
-private String createUserId;
-private String createUserName;
-private String statusCd = "0";
-private String remark;
-private String state;
-private String batchId;
-private String communityId;
-public String getMsg() {
+    private String createUserId;
+    private String createUserName;
+    private String statusCd = "0";
+    private String remark;
+    private String state;
+    private String batchId;
+    private String communityId;
+
+    public String getMsg() {
         return msg;
     }
-public void setMsg(String msg) {
+
+    public void setMsg(String msg) {
         this.msg = msg;
     }
-public String getCreateUserId() {
+
+    public String getCreateUserId() {
         return createUserId;
     }
-public void setCreateUserId(String createUserId) {
+
+    public void setCreateUserId(String createUserId) {
         this.createUserId = createUserId;
     }
-public String getCreateUserName() {
+
+    public String getCreateUserName() {
         return createUserName;
     }
-public void setCreateUserName(String createUserName) {
+
+    public void setCreateUserName(String createUserName) {
         this.createUserName = createUserName;
     }
-public String getStatusCd() {
+
+    public String getStatusCd() {
         return statusCd;
     }
-public void setStatusCd(String statusCd) {
+
+    public void setStatusCd(String statusCd) {
         this.statusCd = statusCd;
     }
-public String getRemark() {
+
+    public String getRemark() {
         return remark;
     }
-public void setRemark(String remark) {
+
+    public void setRemark(String remark) {
         this.remark = remark;
     }
-public String getState() {
+
+    public String getState() {
         return state;
     }
-public void setState(String state) {
+
+    public void setState(String state) {
         this.state = state;
     }
-public String getBatchId() {
+
+    public String getBatchId() {
         return batchId;
     }
-public void setBatchId(String batchId) {
+
+    public void setBatchId(String batchId) {
         this.batchId = batchId;
     }
-public String getCommunityId() {
+
+    public String getCommunityId() {
         return communityId;
     }
-public void setCommunityId(String communityId) {
+
+    public void setCommunityId(String communityId) {
         this.communityId = communityId;
     }
 
 
-
 }

+ 8 - 8
java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml

@@ -7,10 +7,10 @@
     <!-- 保存费用信息 add by wuxw 2018-07-03 -->
     <insert id="saveBusinessFeeInfo" parameterType="Map">
         insert into business_pay_fee(
-        amount,operate,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type
+        amount,operate,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type,batch_id
         ) values (
         #{amount},#{operate},#{incomeObjId},#{feeTypeCd},#{startTime},#{endTime},#{communityId},#{bId},#{feeId},#{userId},#{payerObjId},
-        #{feeFlag},#{state},#{configId},#{payerObjType}
+        #{feeFlag},#{state},#{configId},#{payerObjType},#{batchId}
         )
     </insert>
 
@@ -21,7 +21,7 @@
         feeTypeCd,t.start_time,t.start_time startTime,t.end_time,t.end_time endTime,t.community_id,t.community_id
         communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id userId,t.payer_obj_id,t.payer_obj_id
         payerObjId,t.fee_flag,t.fee_flag feeFlag,t.state,t.config_id,t.config_id
-        configId,t.payer_obj_type,t.payer_obj_type payerObjType
+        configId,t.payer_obj_type,t.payer_obj_type payerObjType,t.batch_id,t.batch_id batchId
         from business_pay_fee t
         where 1 =1
         <if test="amount !=null and amount != ''">
@@ -76,10 +76,10 @@
     <!-- 保存费用信息至 instance表中 add by wuxw 2018-07-03 -->
     <insert id="saveFeeInfoInstance" parameterType="Map">
         insert into pay_fee(
-        amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type
+        amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type,batch_id
         ) select
         t.amount,t.income_obj_id,t.fee_type_cd,t.start_time,'0',t.end_time,t.community_id,t.b_id,t.fee_id,t.user_id,t.payer_obj_id
-        ,t.fee_flag,t.state,t.config_id,t.payer_obj_type
+        ,t.fee_flag,t.state,t.config_id,t.payer_obj_type,t.batch_id
         from business_pay_fee t where 1=1
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
@@ -143,7 +143,7 @@
         billTypeName,pfa.value importFeeName,ifd.end_time importFeeEndTime,mw.cur_degrees curDegrees,mw.pre_degrees
         preDegrees,
         mw.pre_reading_time preReadingTime,mw.cur_reading_time curReadingTime,pfa1.`value` deadlineTime,mw.price mwPrice,
-        pfa2.`value` ownerName
+        pfa2.`value` ownerName,t.batch_id,t.batch_id batchId
         from pay_fee t
         INNER join pay_fee_config pfc on t.config_id = pfc.config_id and
         pfc.status_cd = '0'
@@ -783,11 +783,11 @@
     <!-- 批量插入费用 -->
     <insert id="insertFees" parameterType="Map">
         insert into pay_fee (amount,status_cd,income_obj_id,fee_type_cd,start_time,end_time,community_id,b_id,fee_id,
-        user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type)
+        user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type,batch_id)
         VALUES
         <foreach collection="payFeePos" item="item" separator=",">
             (#{item.amount},'0',#{item.incomeObjId},#{item.feeTypeCd},#{item.startTime},#{item.endTime},#{item.communityId},
-            '-1',#{item.feeId},#{item.userId},#{item.payerObjId},#{item.feeFlag},#{item.state},#{item.configId},#{item.payerObjType})
+            '-1',#{item.feeId},#{item.userId},#{item.payerObjId},#{item.feeFlag},#{item.state},#{item.configId},#{item.payerObjType},#{item.batchId})
         </foreach>
     </insert>
 

+ 2 - 0
service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java

@@ -617,6 +617,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit.put("payerObjType", FeeDto.PAYER_OBJ_TYPE_CAR);
         businessUnit.put("feeFlag", paramInJson.getString("feeFlag"));
         businessUnit.put("state", "2008001");
+        businessUnit.put("batchId", paramInJson.getString("batchId"));
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
         paramInJson.put("feeId", businessUnit.getString("feeId"));
@@ -701,6 +702,7 @@ public class FeeBMOImpl extends ApiBaseBMO implements IFeeBMO {
         businessUnit.put("payerObjType", "3333");
         businessUnit.put("feeFlag", paramInJson.getString("feeFlag"));
         businessUnit.put("state", "2008001");
+        businessUnit.put("batchId", paramInJson.getString("batchId"));
         businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeePo.class.getSimpleName(), businessUnit);
         paramInJson.put("feeId", businessUnit.getString("feeId"));

+ 42 - 2
service-api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java

@@ -7,15 +7,21 @@ 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.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.parking.ParkingSpaceDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.center.AppService;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.util.Assert;
@@ -61,6 +67,12 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
     @Autowired
     private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE;
@@ -108,7 +120,8 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
                 throw new IllegalArgumentException("结束时间错误" + reqJson.getString("endTime"));
             }
         }
-
+        //生成批次
+        generatorBatch(reqJson);
         //判断收费范围
         OwnerCarDto ownerCarDto = new OwnerCarDto();
 
@@ -116,7 +129,7 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
 //            ownerCarDto.setCommunityId(reqJson.getString("communityId"));
 //            ownerCarDto.setValid("1");
 //            ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
-            reqJson.put("locationObjId","");//刷成空
+            reqJson.put("locationObjId", "");//刷成空
             ownerCarDtos = getOwnerCarByParkingArea(reqJson);
         } else if ("2000".equals(reqJson.getString("locationTypeCd"))) {//车辆
             //ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
@@ -177,6 +190,33 @@ public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListene
         return ownerCarDtos;
     }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
     private void queryOwnerCar(JSONObject reqJson, List<String> psIds, List<OwnerCarDto> ownerCarDtos) {
         OwnerCarDto ownerCarDto = new OwnerCarDto();
         ownerCarDto.setCommunityId(reqJson.getString("communityId"));

+ 43 - 0
service-api/src/main/java/com/java110/api/listener/fee/SaveRoomCreateFeeListener.java

@@ -7,15 +7,21 @@ 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.factory.GenerateCodeFactory;
 import com.java110.dto.RoomDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.center.AppService;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.util.Assert;
@@ -61,6 +67,12 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_SAVE_ROOM_CREATE_FEE;
@@ -96,6 +108,7 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
         reqJson.put("feeFlag", feeConfigDtos.get(0).getFeeFlag());
         reqJson.put("configEndTime", feeConfigDtos.get(0).getEndTime());
 
+
         if (FeeDto.FEE_FLAG_ONCE.equals(feeConfigDtos.get(0).getFeeFlag()) && reqJson.containsKey("endTime")) {
             Date endTime = null;
             Date configEndTime = null;
@@ -109,6 +122,9 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
                 throw new IllegalArgumentException("结束时间错误" + reqJson.getString("endTime"));
             }
         }
+
+        //生成批次号
+        generatorBatch(reqJson);
         //判断收费范围
         RoomDto roomDto = new RoomDto();
         /*if (reqJson.containsKey("roomState") && RoomDto.STATE_SELL.equals(reqJson.getString("roomState"))) {
@@ -154,6 +170,33 @@ public class SaveRoomCreateFeeListener extends AbstractServiceApiListener {
         dealRoomFee(roomDtos, context, reqJson, event);
     }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
     private void dealRoomFee(List<RoomDto> roomDtos, DataFlowContext context, JSONObject reqJson, ServiceDataFlowEvent event) throws ParseException {
         AppService service = event.getAppService();
         List<String> roomIds = new ArrayList<>();

+ 44 - 1
service-api/src/main/java/com/java110/api/listener/meterWater/SaveMeterWaterListener.java

@@ -11,11 +11,16 @@ import com.java110.dto.RoomDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
 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.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
@@ -55,6 +60,14 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
 
+
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
@@ -85,6 +98,8 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
         roomDto.setRoomId(objId);
         List<RoomDto> roomList = roomInnerServiceSMOImpl.queryRooms(roomDto);
         Assert.listOnlyOne(roomList, "查询房屋信息错误!");
+        //生成批次
+        generatorBatch(reqJson);
         //获取抄表对象所属小区id
         String communityId = roomList.get(0).getCommunityId();
         //获取表类型
@@ -124,6 +139,7 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
             payFeePo.setPayerObjType(reqJson.getString("objType"));
             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);
             FeeAttrPo feeAttrPo = new FeeAttrPo();
@@ -168,6 +184,33 @@ public class SaveMeterWaterListener extends AbstractServiceApiPlusListener {
         }
     }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
     @Override
     public String getServiceCode() {
         return ServiceCodeMeterWaterConstant.ADD_METERWATER;

+ 45 - 4
service-api/src/main/java/com/java110/api/listener/meterWater/SaveProxyFeeListener.java

@@ -9,19 +9,24 @@ import com.java110.core.context.DataFlowContext;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeAttrDto;
-import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeePo;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.ServiceCodeMeterWaterConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 
+import java.util.List;
+
 /**
  * 保存商户侦听
  * add by wuxw 2019-06-30
@@ -35,6 +40,12 @@ public class SaveProxyFeeListener extends AbstractServiceApiPlusListener {
     @Autowired
     private IFeeBMO feeBMOImpl;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
@@ -54,6 +65,8 @@ public class SaveProxyFeeListener extends AbstractServiceApiPlusListener {
     @Override
     protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
 
+        //生成批次
+        generatorBatch(reqJson);
 
         PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
         payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
@@ -66,6 +79,7 @@ public class SaveProxyFeeListener extends AbstractServiceApiPlusListener {
         payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
         payFeePo.setState(FeeDto.STATE_DOING);
         payFeePo.setUserId(context.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        payFeePo.setBatchId(reqJson.getString("batchId"));
 
         super.insert(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
 
@@ -75,7 +89,7 @@ public class SaveProxyFeeListener extends AbstractServiceApiPlusListener {
         feeAttrPo.setValue(reqJson.getString("consumption"));
         feeAttrPo.setFeeId(payFeePo.getFeeId());
         feeAttrPo.setAttrId("-1");
-        super.insert(context,feeAttrPo,BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+        super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
 
         feeAttrPo = new FeeAttrPo();
         feeAttrPo.setCommunityId(reqJson.getString("communityId"));
@@ -83,8 +97,35 @@ public class SaveProxyFeeListener extends AbstractServiceApiPlusListener {
         feeAttrPo.setValue(reqJson.getString("endTime"));
         feeAttrPo.setFeeId(payFeePo.getFeeId());
         feeAttrPo.setAttrId("-2");
-        super.insert(context,feeAttrPo,BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+        super.insert(context, feeAttrPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+
+    }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
     }
 
     @Override

+ 44 - 1
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportMeterWaterFeeSMOImpl.java

@@ -7,8 +7,13 @@ import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.meterWater.ImportExportMeterWaterDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.api.smo.assetImport.IImportMeterWaterFeeSMO;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
@@ -49,6 +54,13 @@ public class ImportMeterWaterFeeSMOImpl extends DefaultAbstractComponentSMO impl
     @Autowired
     private RestTemplate restTemplate;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
 
@@ -117,13 +129,17 @@ public class ImportMeterWaterFeeSMOImpl extends DefaultAbstractComponentSMO impl
             throw new IllegalArgumentException("没有数据需要处理");
         }
 
+        //生成批次
         JSONObject data = JSONObject.parseObject(pd.getReqData());
+        data.put("userId", pd.getUserId());
+        data.put("communityId", result.getCommunityId());
+        generatorBatch(data);
+
         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<ImportExportMeterWaterDto> tmpImportRoomFees = new ArrayList<>();
         for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
@@ -266,6 +282,33 @@ public class ImportMeterWaterFeeSMOImpl extends DefaultAbstractComponentSMO impl
         }
     }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
 
     //解析Excel日期格式
     public static String excelDoubleToDate(String strDate) {

+ 54 - 12
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportRoomFeeSMOImpl.java

@@ -3,18 +3,21 @@ package com.java110.api.smo.assetImport.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.smo.DefaultAbstractComponentSMO;
+import com.java110.api.smo.assetImport.IImportRoomFeeSMO;
 import com.java110.config.properties.code.Java110Properties;
 import com.java110.core.client.FtpUploadTemplate;
 import com.java110.core.client.OssUploadTemplate;
-import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.entity.assetImport.ImportRoomFee;
 import com.java110.entity.component.ComponentValidateResult;
-import com.java110.api.smo.assetImport.IImportRoomFeeSMO;
+import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.cache.MappingCache;
-import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -29,7 +32,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
 
-
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -61,6 +63,12 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
     @Autowired
     private OssUploadTemplate ossUploadTemplate;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
 
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
@@ -82,7 +90,7 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
                 getRooms(workbook, rooms);
                 // 保存数据
                 return dealExcelData(pd, rooms, result);
-            }else{
+            } else {
                 List<ImportRoomFee> cars = new ArrayList<ImportRoomFee>();
                 //获取楼信息
                 getCars(workbook, cars);
@@ -118,15 +126,14 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
     }
 
 
-
     @Override
 
     public ResponseEntity<String> importTempData(IPageData pd) {
         ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
         JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
-        ImportRoomFee importRoomFee = BeanConvertUtil.covertBean(paramIn,ImportRoomFee.class);
+        ImportRoomFee importRoomFee = BeanConvertUtil.covertBean(paramIn, ImportRoomFee.class);
         importRoomFee.setRoomId(paramIn.getString("objId"));
-        if(paramIn.containsKey("objType") && FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(paramIn.getString("objType"))){
+        if (paramIn.containsKey("objType") && FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(paramIn.getString("objType"))) {
             importRoomFee.setContractId(paramIn.getString("objId"));
             importRoomFee.setRoomId("");
         }
@@ -154,6 +161,7 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
 
         return responseEntity;
     }
+
     /**
      * 处理ExcelData数据
      *
@@ -184,11 +192,14 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
         paramOut.put("successCount", 0);
         paramOut.put("errorCount", 0);
 
+        //生成批次
         JSONObject data = JSONObject.parseObject(pd.getReqData());
+        data.put("userId", pd.getUserId());
+        data.put("communityId", result.getCommunityId());
+        generatorBatch(data);
         data.put("storeId", result.getStoreId());
         data.put("importFeeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         data.put("userId", result.getUserId());
-        data.put("communityId", result.getCommunityId());
         List<ImportRoomFee> tmpImportRoomFees = new ArrayList<>();
         for (int roomIndex = 0; roomIndex < roomFees.size(); roomIndex++) {
             tmpImportRoomFees.add(roomFees.get(roomIndex));
@@ -214,12 +225,16 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
         JSONObject paramOut = new JSONObject();
         paramOut.put("successCount", 0);
         paramOut.put("errorCount", 0);
-
         JSONObject data = JSONObject.parseObject(pd.getReqData());
+        data.put("communityId", result.getCommunityId());
+        data.put("userId", pd.getUserId());
+        generatorBatch(data);
+
+
         data.put("storeId", result.getStoreId());
         data.put("importFeeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
         data.put("userId", result.getUserId());
-        data.put("communityId", result.getCommunityId());
+
         List<ImportRoomFee> tmpImportCarFees = new ArrayList<>();
         for (int carIndex = 0; carIndex < carFees.size(); carIndex++) {
             tmpImportCarFees.add(carFees.get(carIndex));
@@ -252,7 +267,7 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
 
         String apiUrl = "/feeApi/importRoomFees";
 
-        if(!StringUtil.isEmpty(tmpImportRoomFee.get(0).getContractId())){
+        if (!StringUtil.isEmpty(tmpImportRoomFee.get(0).getContractId())) {
             apiUrl = "/feeApi/importContractFees";
         }
 
@@ -420,6 +435,33 @@ public class ImportRoomFeeSMOImpl extends DefaultAbstractComponentSMO implements
         }
     }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
 
     //解析Excel日期格式
     public static String excelDoubleToDate(String strDate) {

+ 3 - 0
service-fee/src/main/java/com/java110/fee/api/FeeApi.java

@@ -292,6 +292,7 @@ public class FeeApi extends BaseController {
         Assert.hasKeyAndValue(reqJson, "feeTypeCd", "未包含费用类型");
         Assert.hasKeyAndValue(reqJson, "storeId", "未包含商户信息");
         Assert.hasKeyAndValue(reqJson, "userId", "未包含用户信息");
+        Assert.hasKeyAndValue(reqJson, "batchId", "未包含用户信息");
 
         return importRoomFeeImpl.importFee(reqJson);
     }
@@ -312,6 +313,7 @@ public class FeeApi extends BaseController {
         Assert.hasKeyAndValue(reqJson, "feeTypeCd", "未包含费用类型");
         Assert.hasKeyAndValue(reqJson, "storeId", "未包含商户信息");
         Assert.hasKeyAndValue(reqJson, "userId", "未包含用户信息");
+        Assert.hasKeyAndValue(reqJson, "batchId", "未包含批次信息");
 
         return importRoomFeeImpl.importCarFee(reqJson);
     }
@@ -332,6 +334,7 @@ public class FeeApi extends BaseController {
         Assert.hasKeyAndValue(reqJson, "feeTypeCd", "未包含费用类型");
         Assert.hasKeyAndValue(reqJson, "storeId", "未包含商户信息");
         Assert.hasKeyAndValue(reqJson, "userId", "未包含用户信息");
+        Assert.hasKeyAndValue(reqJson, "batchId", "未包含批次信息");
 
         return importRoomFeeImpl.importContractFees(reqJson);
     }

+ 1 - 0
service-fee/src/main/java/com/java110/fee/api/MeterWaterApi.java

@@ -70,6 +70,7 @@ public class MeterWaterApi {
         Assert.hasKeyAndValue(reqJson, "configId", "请求信息中未包含费用项");
         Assert.hasKeyAndValue(reqJson, "storeId", "请求信息中未包含商户信息");
         Assert.hasKeyAndValue(reqJson, "feeTypeCd", "请求信息中未包含费用类型");
+        Assert.hasKeyAndValue(reqJson, "batchId", "请求信息中未包含批次号");
         return queryPreMeterWaterImpl.importMeterWater(reqJson);
     }
 

+ 4 - 0
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java

@@ -95,6 +95,7 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
         String storeId = reqJson.getString("storeId");
         String userId = reqJson.getString("userId");
         String feeName = reqJson.getString("feeName");
+        String batchId = reqJson.getString("batchId");
 
 
         JSONArray importRoomFees = reqJson.getJSONArray("importRoomFees");
@@ -180,6 +181,7 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
             payFeePo.setFeeTypeCd(feeTypeCd);
             payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
             payFeePo.setAmount(importRoomFee.getAmount());
+            payFeePo.setBatchId(batchId);
             //payFeePo.setStartTime(importRoomFee.getStartTime());
             payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
 
@@ -301,6 +303,7 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
         String storeId = reqJson.getString("storeId");
         String userId = reqJson.getString("userId");
         String feeName = reqJson.getString("feeName");
+        String batchId = reqJson.getString("batchId");
 
         if (StringUtil.isEmpty(feeName)) {
             feeName = IMPORT_FEE_NAME;
@@ -358,6 +361,7 @@ public class ImportRoomFeeImpl implements IImportRoomFee {
             payFeePo.setFeeTypeCd(feeTypeCd);
             payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
             payFeePo.setAmount(importCarFee.getAmount());
+            payFeePo.setBatchId(batchId);
             //payFeePo.setStartTime(importRoomFee.getStartTime());
             payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
 

+ 41 - 0
service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java

@@ -10,16 +10,20 @@ import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeFormula.FeeFormulaDto;
 import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.fee.bmo.importFee.IFeeSharingBMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.*;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeConfigPo;
 import com.java110.po.fee.PayFeePo;
 import com.java110.po.importFee.ImportFeePo;
 import com.java110.po.importFeeDetail.ImportFeeDetailPo;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
@@ -69,6 +73,12 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     /**
      * 添加小区信息
      *
@@ -85,6 +95,9 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
 
         Assert.listOnlyOne(communityDtos, "未找到小区信息");
 
+        //生成批次
+        generatorBatch(reqJson);
+
         String scope = reqJson.getString("scope");
         RoomDto roomDto = new RoomDto();
         String[] states = null;
@@ -299,6 +312,7 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
         payFeePo.setFeeTypeCd(reqJson.getString("feeTypeCd"));
         payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
         payFeePo.setAmount(amount + "");
+        payFeePo.setBatchId(reqJson.getString("batchId"));
         //payFeePo.setStartTime(importRoomFee.getStartTime());
         payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
 
@@ -442,4 +456,31 @@ public class FeeSharingBMOImpl implements IFeeSharingBMO {
         }
     }
 
+    /**
+     * 生成批次号
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "用户不存在");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("正常");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("生成批次失败");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
 }

+ 5 - 2
service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java

@@ -118,6 +118,7 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
         String configId = reqJson.getString("configId");
         String userId = reqJson.getString("userId");
         String feeTypeCd = reqJson.getString("feeTypeCd");
+        String batchId = reqJson.getString("batchId");
         JSONArray importMeteWaterFees = reqJson.getJSONArray("importMeteWaterFees");
         JSONObject meteWaterJson = null;
         ImportExportMeterWaterDto importExportMeterWaterDto = null;
@@ -138,7 +139,8 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
                     feeTypeCd,
                     fees,
                     meterWaterPos,
-                    feeAttrPos
+                    feeAttrPos,
+                    batchId
             );
         }
 
@@ -159,7 +161,7 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
 
     private void dealImportExportMeterWater(ImportExportMeterWaterDto importExportMeterWaterDto, String communityId,
                                             String storeId, String configId, String userId, String feeTypeCd,
-                                            List<PayFeePo> fees, List<MeterWaterPo> meterWaterPos, List<FeeAttrPo> feeAttrPos) {
+                                            List<PayFeePo> fees, List<MeterWaterPo> meterWaterPos, List<FeeAttrPo> feeAttrPos, String batchId) {
 
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(communityId);
@@ -193,6 +195,7 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
         payFeePo.setStartTime(importExportMeterWaterDto.getPreReadingTime());
         payFeePo.setEndTime(importExportMeterWaterDto.getPreReadingTime());
         payFeePo.setPayerObjId(roomDtos.get(0).getRoomId());
+        payFeePo.setBatchId(batchId);
         //payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
         payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
 

+ 2 - 0
service-fee/src/main/java/com/java110/fee/listener/fee/AbstractFeeBusinessServiceDataFlowListener.java

@@ -51,6 +51,7 @@ public abstract class AbstractFeeBusinessServiceDataFlowListener extends Abstrac
         businessFeeInfo.put("state", businessFeeInfo.get("state"));
         businessFeeInfo.put("configId", businessFeeInfo.get("config_id"));
         businessFeeInfo.put("billType", businessFeeInfo.get("bill_type"));
+        businessFeeInfo.put("batchId", businessFeeInfo.get("batch_id"));
 
         businessFeeInfo.remove("bId");
         businessFeeInfo.put("statusCd", statusCd);
@@ -91,6 +92,7 @@ public abstract class AbstractFeeBusinessServiceDataFlowListener extends Abstrac
         currentFeeInfo.put("state", currentFeeInfo.get("state"));
         currentFeeInfo.put("configId", currentFeeInfo.get("config_id"));
         currentFeeInfo.put("billType", currentFeeInfo.get("bill_type"));
+        currentFeeInfo.put("batchId", currentFeeInfo.get("batch_id"));
 
         currentFeeInfo.put("operate", StatusConstant.OPERATE_DEL);
         getFeeServiceDaoImpl().saveBusinessFeeInfo(currentFeeInfo);