Browse Source

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

java110 4 years ago
parent
commit
d18bb996a5

+ 7 - 1
service-api/src/main/java/com/java110/api/listener/fee/DeleteFeeListener.java

@@ -11,6 +11,7 @@ import com.java110.dto.fee.FeeDto;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceCodeConstant;
 import com.java110.utils.util.Assert;
 import org.slf4j.Logger;
@@ -73,6 +74,11 @@ public class DeleteFeeListener extends AbstractServiceApiPlusListener {
 //            throw new IllegalArgumentException("当前费用为默认费用不能做删除");
 //        }
 
+        String feeValidate = MappingCache.getValue("DELETE_FEE_VALIDATE");
+        if ("ON".equals(feeValidate)) {
+            return;
+        }
+
         //判断是否已经存在 缴费记录
         FeeDetailDto feeDetailDto = new FeeDetailDto();
         feeDetailDto.setCommunityId(reqJson.getString("communityId"));
@@ -81,7 +87,7 @@ public class DeleteFeeListener extends AbstractServiceApiPlusListener {
         List<FeeDetailDto> feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
         //Assert.listOnlyOne(feeDetailDtos, "存在缴费记录,不能取消,如果需要取消,请先退费");
 
-        if(feeDetailDtos != null && feeDetailDtos.size()>0){
+        if (feeDetailDtos != null && feeDetailDtos.size() > 0) {
             throw new IllegalArgumentException("存在缴费记录,不能取消,如果需要取消,请先退费");
         }
 

+ 1 - 0
service-job/src/main/java/com/java110/job/JobServiceApplication.java

@@ -40,6 +40,7 @@ import java.nio.charset.Charset;
         "com.java110.intf.store",
         "com.java110.intf.report",
         "com.java110.intf.acct",
+        "com.java110.intf.oa",
         "com.java110.intf.goods"
 })
 @EnableScheduling

+ 69 - 21
service-job/src/main/java/com/java110/job/adapt/fee/asyn/impl/UpdateFeeOwnerInfoImpl.java

@@ -5,16 +5,17 @@ import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.RoomDto;
 import com.java110.dto.fee.FeeAttrDto;
 import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.owner.OwnerDto;
 import com.java110.entity.order.Business;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
 import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
 import com.java110.job.adapt.fee.asyn.IUpdateFeeOwnerInfo;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.owner.OwnerPo;
-import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -38,49 +39,65 @@ public class UpdateFeeOwnerInfoImpl implements IUpdateFeeOwnerInfo {
 
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+    @Autowired
+    private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
 
 
     @Override
     @Async
     public void doUpdate(Business business, JSONObject businessOwner) {
         OwnerPo ownerPo = BeanConvertUtil.covertBean(businessOwner, OwnerPo.class);
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(ownerPo.getMemberId());
+        ownerDto.setCommunityId(ownerPo.getCommunityId());
+        ownerDto.setOwnerTypeCd(OwnerDto.OWNER_TYPE_CD_OWNER);
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+        if (ownerDtos == null) { // 不是业主 不管他
+            return;
+        }
 
-        RoomDto roomDto = new RoomDto();
-        roomDto.setOwnerId(ownerPo.getOwnerId());
+        List<FeeDto> feeDtos = getRoomFee(ownerPo);
+        if (feeDtos != null) {
+            for (FeeDto tmpFeeDto : feeDtos) {
+                doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
+            }
+        }
+
+        feeDtos = getOwnerCarFee(ownerPo);
+        if (feeDtos != null) {
+            for (FeeDto tmpFeeDto : feeDtos) {
+                doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
+            }
+        }
+
+
+    }
+
+    private List<FeeDto> getOwnerCarFee(OwnerPo ownerPo) {
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setOwnerId(ownerPo.getOwnerId());
         //这种情况说明 业主已经删掉了 需要查询状态为 1 的数据
-        List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
+        List<OwnerCarDto> ownerCarDtos = ownerCarV1InnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
 
         //没有房屋时返回
-        if (rooms == null || rooms.size() < 1) {
-            return;
+        if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+            return null;
         }
 
-        OwnerDto ownerDto = new OwnerDto();
-        ownerDto.setMemberId(ownerPo.getMemberId());
-        ownerDto.setCommunityId(ownerPo.getCommunityId());
-        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
-        Assert.listOnlyOne(ownerDtos, "业主不存在");
 
         //拿到小区ID
         String communityId = ownerPo.getCommunityId();
 
         List<String> payerObjIds = new ArrayList<>();
-        for (RoomDto tRoomDto : rooms) {
-            payerObjIds.add(tRoomDto.getUnitId());
-            payerObjIds.add(tRoomDto.getRoomId());
-            payerObjIds.add(tRoomDto.getFloorId());
+        for (OwnerCarDto tmpOwnerCarDto : ownerCarDtos) {
+            payerObjIds.add(tmpOwnerCarDto.getCarId());
         }
-
         FeeDto feeDto = new FeeDto();
         feeDto.setCommunityId(communityId);
         feeDto.setPayerObjIds(payerObjIds.toArray(new String[payerObjIds.size()]));
         feeDto.setState(FeeDto.STATE_DOING);
         List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
-
-        for (FeeDto tmpFeeDto : feeDtos) {
-            doDealFeeDto(tmpFeeDto, ownerDtos.get(0));
-        }
-
+        return feeDtos;
     }
 
     private void doDealFeeDto(FeeDto tmpFeeDto, OwnerDto ownerDto) {
@@ -134,4 +151,35 @@ public class UpdateFeeOwnerInfoImpl implements IUpdateFeeOwnerInfo {
         }
         return null;
     }
+
+
+    public List<FeeDto> getRoomFee(OwnerPo ownerPo) {
+        RoomDto roomDto = new RoomDto();
+        roomDto.setOwnerId(ownerPo.getOwnerId());
+        //这种情况说明 业主已经删掉了 需要查询状态为 1 的数据
+        List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
+
+        //没有房屋时返回
+        if (rooms == null || rooms.size() < 1) {
+            return null;
+        }
+
+
+        //拿到小区ID
+        String communityId = ownerPo.getCommunityId();
+
+        List<String> payerObjIds = new ArrayList<>();
+        for (RoomDto tRoomDto : rooms) {
+            payerObjIds.add(tRoomDto.getUnitId());
+            payerObjIds.add(tRoomDto.getRoomId());
+            payerObjIds.add(tRoomDto.getFloorId());
+        }
+        FeeDto feeDto = new FeeDto();
+        feeDto.setCommunityId(communityId);
+        feeDto.setPayerObjIds(payerObjIds.toArray(new String[payerObjIds.size()]));
+        feeDto.setState(FeeDto.STATE_DOING);
+        List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+        return feeDtos;
+    }
+
 }

+ 6 - 0
service-oa/src/main/java/com/java110/oa/bmo/oaWorkflowForm/impl/GetOaWorkflowFormBMOImpl.java

@@ -16,6 +16,7 @@ import com.java110.intf.oa.IWorkflowDataFileV1InnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.oa.bmo.oaWorkflowForm.IGetOaWorkflowFormBMO;
 import com.java110.po.workflowDataFile.WorkflowDataFilePo;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -138,6 +139,11 @@ public class GetOaWorkflowFormBMOImpl implements IGetOaWorkflowFormBMO {
         if (workflowDataFileDtos == null || workflowDataFileDtos.size() < 1) {
             return;
         }
+        String imgUrl = MappingCache.getValue("IMG_PATH");
+        imgUrl += (!StringUtil.isEmpty(imgUrl) && imgUrl.endsWith("/") ? "" : "/");
+        for(WorkflowDataFileDto tmpWorkflowDataFileDto: workflowDataFileDtos){
+            tmpWorkflowDataFileDto.setRealFileName(imgUrl + tmpWorkflowDataFileDto.getRealFileName());
+        }
 
         datas.get(0).put("files",workflowDataFileDtos);
     }