Explorar el Código

优化费用同步

java110 hace 5 años
padre
commit
294c70bc15

+ 110 - 113
java110-db/src/main/resources/mapper/fee/FeeManualCollectionDetailServiceDaoImplMapper.xml

@@ -5,138 +5,135 @@
 <mapper namespace="feeManualCollectionDetailServiceDaoImpl">
 
 
-
-
-
     <!-- 保存托收明细信息 add by wuxw 2018-07-03 -->
     <insert id="saveFeeManualCollectionDetailInfo" parameterType="Map">
         insert into fee_manual_collection_detail(
-amount,fee_name,detail_id,start_time,end_time,state,community_id,collection_id,fee_id
-) values (
-#{amount},#{feeName},#{detailId},#{startTime},#{endTime},#{state},#{communityId},#{collectionId},#{feeId}
-)
+        amount,fee_name,detail_id,start_time,end_time,state,community_id,collection_id,fee_id
+        ) values (
+        #{amount},#{feeName},#{detailId},#{startTime},#{endTime},#{state},#{communityId},#{collectionId},#{feeId}
+        )
     </insert>
 
 
-
     <!-- 查询托收明细信息 add by wuxw 2018-07-03 -->
     <select id="getFeeManualCollectionDetailInfo" parameterType="Map" resultType="Map">
-        select  t.amount,t.fee_name,t.fee_name feeName,t.detail_id,t.detail_id detailId,t.start_time,t.start_time startTime,t.status_cd,t.status_cd statusCd,t.end_time,t.end_time endTime,t.state,t.community_id,t.community_id communityId,t.collection_id,t.collection_id collectionId,t.fee_id,t.fee_id feeId 
-from fee_manual_collection_detail t 
-where 1 =1 
-<if test="amount !=null and amount != ''">
-   and t.amount= #{amount}
-</if> 
-<if test="feeName !=null and feeName != ''">
-   and t.fee_name= #{feeName}
-</if> 
-<if test="detailId !=null and detailId != ''">
-   and t.detail_id= #{detailId}
-</if> 
-<if test="startTime !=null and startTime != ''">
-   and t.start_time= #{startTime}
-</if> 
-<if test="statusCd !=null and statusCd != ''">
-   and t.status_cd= #{statusCd}
-</if> 
-<if test="endTime !=null and endTime != ''">
-   and t.end_time= #{endTime}
-</if> 
-<if test="state !=null and state != ''">
-   and t.state= #{state}
-</if> 
-<if test="communityId !=null and communityId != ''">
-   and t.community_id= #{communityId}
-</if> 
-<if test="collectionId !=null and collectionId != ''">
-   and t.collection_id= #{collectionId}
-</if> 
-<if test="feeId !=null and feeId != ''">
-   and t.fee_id= #{feeId}
-</if> 
-order by t.create_time desc
-<if test="page != -1 and page != null ">
-   limit #{page}, #{row}
-</if> 
+        select t.amount,t.fee_name,t.fee_name feeName,t.detail_id,t.detail_id detailId,t.start_time,t.start_time
+        startTime,t.status_cd,t.status_cd statusCd,t.end_time,t.end_time endTime,t.state,t.community_id,t.community_id
+        communityId,t.collection_id,t.collection_id collectionId,t.fee_id,t.fee_id feeId
+        from fee_manual_collection_detail t
+        where 1 =1
+        <if test="amount !=null and amount != ''">
+            and t.amount= #{amount}
+        </if>
+        <if test="feeName !=null and feeName != ''">
+            and t.fee_name= #{feeName}
+        </if>
+        <if test="detailId !=null and detailId != ''">
+            and t.detail_id= #{detailId}
+        </if>
+        <if test="startTime !=null and startTime != ''">
+            and t.start_time= #{startTime}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.end_time= #{endTime}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="collectionId !=null and collectionId != ''">
+            and t.collection_id= #{collectionId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </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="updateFeeManualCollectionDetailInfo" parameterType="Map">
-        update  fee_manual_collection_detail t set t.status_cd = #{statusCd}
-<if test="newBId != null and newBId != ''">
-,t.b_id = #{newBId}
-</if> 
-<if test="amount !=null and amount != ''">
-, t.amount= #{amount}
-</if> 
-<if test="feeName !=null and feeName != ''">
-, t.fee_name= #{feeName}
-</if> 
-<if test="startTime !=null and startTime != ''">
-, t.start_time= #{startTime}
-</if> 
-<if test="endTime !=null and endTime != ''">
-, t.end_time= #{endTime}
-</if> 
-<if test="state !=null and state != ''">
-, t.state= #{state}
-</if> 
-<if test="communityId !=null and communityId != ''">
-, t.community_id= #{communityId}
-</if> 
-<if test="collectionId !=null and collectionId != ''">
-, t.collection_id= #{collectionId}
-</if> 
-<if test="feeId !=null and feeId != ''">
-, t.fee_id= #{feeId}
-</if> 
- where 1=1 <if test="detailId !=null and detailId != ''">
-and t.detail_id= #{detailId}
-</if> 
+        update fee_manual_collection_detail t set t.status_cd = #{statusCd}
+        <if test="newBId != null and newBId != ''">
+            ,t.b_id = #{newBId}
+        </if>
+        <if test="amount !=null and amount != ''">
+            , t.amount= #{amount}
+        </if>
+        <if test="feeName !=null and feeName != ''">
+            , t.fee_name= #{feeName}
+        </if>
+        <if test="startTime !=null and startTime != ''">
+            , t.start_time= #{startTime}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            , t.end_time= #{endTime}
+        </if>
+        <if test="state !=null and state != ''">
+            , t.state= #{state}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            , t.community_id= #{communityId}
+        </if>
+        <if test="collectionId !=null and collectionId != ''">
+            , t.collection_id= #{collectionId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            , t.fee_id= #{feeId}
+        </if>
+        where 1=1
+        <if test="detailId !=null and detailId != ''">
+            and t.detail_id= #{detailId}
+        </if>
 
     </update>
 
     <!-- 查询托收明细数量 add by wuxw 2018-07-03 -->
-     <select id="queryFeeManualCollectionDetailsCount" parameterType="Map" resultType="Map">
-        select  count(1) count 
-from fee_manual_collection_detail t 
-where 1 =1 
-<if test="amount !=null and amount != ''">
-   and t.amount= #{amount}
-</if> 
-<if test="feeName !=null and feeName != ''">
-   and t.fee_name= #{feeName}
-</if> 
-<if test="detailId !=null and detailId != ''">
-   and t.detail_id= #{detailId}
-</if> 
-<if test="startTime !=null and startTime != ''">
-   and t.start_time= #{startTime}
-</if> 
-<if test="statusCd !=null and statusCd != ''">
-   and t.status_cd= #{statusCd}
-</if> 
-<if test="endTime !=null and endTime != ''">
-   and t.end_time= #{endTime}
-</if> 
-<if test="state !=null and state != ''">
-   and t.state= #{state}
-</if> 
-<if test="communityId !=null and communityId != ''">
-   and t.community_id= #{communityId}
-</if> 
-<if test="collectionId !=null and collectionId != ''">
-   and t.collection_id= #{collectionId}
-</if> 
-<if test="feeId !=null and feeId != ''">
-   and t.fee_id= #{feeId}
-</if> 
+    <select id="queryFeeManualCollectionDetailsCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from fee_manual_collection_detail t
+        where 1 =1
+        <if test="amount !=null and amount != ''">
+            and t.amount= #{amount}
+        </if>
+        <if test="feeName !=null and feeName != ''">
+            and t.fee_name= #{feeName}
+        </if>
+        <if test="detailId !=null and detailId != ''">
+            and t.detail_id= #{detailId}
+        </if>
+        <if test="startTime !=null and startTime != ''">
+            and t.start_time= #{startTime}
+        </if>
+        <if test="statusCd !=null and statusCd != ''">
+            and t.status_cd= #{statusCd}
+        </if>
+        <if test="endTime !=null and endTime != ''">
+            and t.end_time= #{endTime}
+        </if>
+        <if test="state !=null and state != ''">
+            and t.state= #{state}
+        </if>
+        <if test="communityId !=null and communityId != ''">
+            and t.community_id= #{communityId}
+        </if>
+        <if test="collectionId !=null and collectionId != ''">
+            and t.collection_id= #{collectionId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id= #{feeId}
+        </if>
 
 
-     </select>
+    </select>
 
 </mapper>

+ 46 - 11
service-fee/src/main/java/com/java110/fee/bmo/feeManualCollection/impl/SaveFeeManualCollectionBMOImpl.java

@@ -3,6 +3,7 @@ package com.java110.fee.bmo.feeManualCollection.impl;
 import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.RoomDto;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeManualCollection.FeeManualCollectionDto;
 import com.java110.dto.feeManualCollectionDetail.FeeManualCollectionDetailDto;
@@ -10,6 +11,7 @@ import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.owner.OwnerDto;
 import com.java110.fee.bmo.feeManualCollection.ISaveFeeManualCollectionBMO;
 import com.java110.intf.IFeeManualCollectionDetailInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
 import com.java110.intf.fee.IFeeManualCollectionInnerServiceSMO;
 import com.java110.intf.user.IOwnerCarInnerServiceSMO;
@@ -17,6 +19,7 @@ import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.po.feeManualCollection.FeeManualCollectionPo;
 import com.java110.po.feeManualCollectionDetail.FeeManualCollectionDetailPo;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
@@ -48,6 +51,9 @@ public class SaveFeeManualCollectionBMOImpl implements ISaveFeeManualCollectionB
     @Autowired
     private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
 
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
     /**
      * 添加小区信息
      *
@@ -57,6 +63,15 @@ public class SaveFeeManualCollectionBMOImpl implements ISaveFeeManualCollectionB
     @Java110Transactional
     public ResponseEntity<String> save(FeeManualCollectionPo feeManualCollectionPo) {
 
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomId(feeManualCollectionPo.getRoomId());
+        roomDto.setCommunityId(feeManualCollectionPo.getCommunityId());
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        Assert.listOnlyOne(roomDtos, "未找到房屋信息");
+
+        roomDto = roomDtos.get(0);
+
         FeeDto feeDto = new FeeDto();
         feeDto.setPayerObjId(feeManualCollectionPo.getRoomId());
         feeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
@@ -98,18 +113,28 @@ public class SaveFeeManualCollectionBMOImpl implements ISaveFeeManualCollectionB
             return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "当前房屋不存在托收费用");
         }
 
-        feeManualCollectionPo.setOwnerId(ownerDtos.get(0).getOwnerId());
-        feeManualCollectionPo.setLink(ownerCarDtos.get(0).getLink());
-        feeManualCollectionPo.setOwnerName(ownerCarDtos.get(0).getOwnerName());
-        feeManualCollectionPo.setState(FeeManualCollectionDto.STATE_COLLECTION);
-
-        feeManualCollectionPo.setCollectionId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
-        int flag = feeManualCollectionInnerServiceSMOImpl.saveFeeManualCollection(feeManualCollectionPo);
-
-        if (flag < 1) {
-            return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+        FeeManualCollectionDto feeManualCollectionDto = new FeeManualCollectionDto();
+        feeManualCollectionDto.setRoomId(roomDto.getRoomId());
+        feeManualCollectionDto.setCommunityId(roomDto.getCommunityId());
+        List<FeeManualCollectionDto> feeManualCollectionDtos = feeManualCollectionInnerServiceSMOImpl.queryFeeManualCollections(feeManualCollectionDto);
+        if (feeManualCollectionDtos == null || feeManualCollectionDtos.size() < 1) {
+            feeManualCollectionPo.setOwnerId(ownerDtos.get(0).getOwnerId());
+            feeManualCollectionPo.setLink(ownerCarDtos.get(0).getLink());
+            feeManualCollectionPo.setOwnerName(ownerCarDtos.get(0).getOwnerName());
+            feeManualCollectionPo.setState(FeeManualCollectionDto.STATE_COLLECTION);
+            feeManualCollectionPo.setRoomArea(roomDto.getBuiltUpArea());
+            feeManualCollectionPo.setRoomName(roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + roomDto.getRoomNum());
+            feeManualCollectionPo.setCollectionId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
+            int flag = feeManualCollectionInnerServiceSMOImpl.saveFeeManualCollection(feeManualCollectionPo);
+
+            if (flag < 1) {
+                return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+            }
+        } else {
+            feeManualCollectionPo = BeanConvertUtil.covertBean(feeManualCollectionDtos.get(0), FeeManualCollectionPo.class);
         }
 
+
         for (FeeDto tmpFeeDto : tmpFeeDtos) {
             saveFeeManualCollectionDetailInfo(tmpFeeDto, feeManualCollectionPo);
         }
@@ -129,7 +154,17 @@ public class SaveFeeManualCollectionBMOImpl implements ISaveFeeManualCollectionB
         feeManualCollectionDetailPo.setFeeName(StringUtil.isEmpty(tmpFeeDto.getImportFeeName()) ? tmpFeeDto.getFeeName() : tmpFeeDto.getImportFeeName());
         feeManualCollectionDetailPo.setStartTime(DateUtil.getFormatTimeString(tmpFeeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
         feeManualCollectionDetailPo.setState(FeeManualCollectionDetailDto.STATE_COLLECTION);
-        feeManualCollectionDetailInnerServiceSMOImpl.saveFeeManualCollectionDetail(feeManualCollectionDetailPo);
+        FeeManualCollectionDetailDto feeManualCollectionDetailDto = new FeeManualCollectionDetailDto();
+        feeManualCollectionDetailDto.setFeeId(tmpFeeDto.getFeeId());
+        feeManualCollectionDetailDto.setCollectionId(feeManualCollectionPo.getCollectionId());
+        feeManualCollectionDetailDto.setCommunityId(feeManualCollectionPo.getCommunityId());
+        List<FeeManualCollectionDetailDto> feeManualCollectionDetailDtos = feeManualCollectionDetailInnerServiceSMOImpl.queryFeeManualCollectionDetails(feeManualCollectionDetailDto);
+        if (feeManualCollectionDetailDtos == null || feeManualCollectionDetailDtos.size() < 1) {
+            feeManualCollectionDetailInnerServiceSMOImpl.saveFeeManualCollectionDetail(feeManualCollectionDetailPo);
+        } else {
+            feeManualCollectionDetailPo.setDetailId(feeManualCollectionDetailDtos.get(0).getDetailId());
+            feeManualCollectionDetailInnerServiceSMOImpl.updateFeeManualCollectionDetail(feeManualCollectionDetailPo);
+        }
     }
 
     /**