Procházet zdrojové kódy

数据矫正处理模板

java110 před 4 roky
rodič
revize
b189a48f46

+ 76 - 76
java110-bean/src/main/java/com/java110/dto/contract/ContractDto.java

@@ -181,6 +181,14 @@ public class ContractDto extends PageDto implements Serializable {
         this.contractId = contractId;
     }
 
+    public String[] getContractIds() {
+        return contractIds;
+    }
+
+    public void setContractIds(String[] contractIds) {
+        this.contractIds = contractIds;
+    }
+
     public String getObjId() {
         return objId;
     }
@@ -197,6 +205,14 @@ public class ContractDto extends PageDto implements Serializable {
         this.contractName = contractName;
     }
 
+    public String getContractNameLike() {
+        return contractNameLike;
+    }
+
+    public void setContractNameLike(String contractNameLike) {
+        this.contractNameLike = contractNameLike;
+    }
+
     public String getStartTime() {
         return startTime;
     }
@@ -221,6 +237,30 @@ public class ContractDto extends PageDto implements Serializable {
         this.state = state;
     }
 
+    public String[] getStates() {
+        return states;
+    }
+
+    public void setStates(String[] states) {
+        this.states = states;
+    }
+
+    public String[] getNoStates() {
+        return noStates;
+    }
+
+    public void setNoStates(String[] noStates) {
+        this.noStates = noStates;
+    }
+
+    public String getStateDesc() {
+        return stateDesc;
+    }
+
+    public void setStateDesc(String stateDesc) {
+        this.stateDesc = stateDesc;
+    }
+
     public String getContractCode() {
         return contractCode;
     }
@@ -245,68 +285,68 @@ public class ContractDto extends PageDto implements Serializable {
         this.operatorLink = operatorLink;
     }
 
-    public Date getCreateTime() {
-        return createTime;
+    public String getContractParentId() {
+        return contractParentId;
     }
 
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
+    public void setContractParentId(String contractParentId) {
+        this.contractParentId = contractParentId;
     }
 
-    public String getStatusCd() {
-        return statusCd;
+    public String getObjName() {
+        return objName;
     }
 
-    public void setStatusCd(String statusCd) {
-        this.statusCd = statusCd;
+    public void setObjName(String objName) {
+        this.objName = objName;
     }
 
-    public List<ContractAttrDto> getAttrs() {
-        return attrs;
+    public String getObjPersonName() {
+        return objPersonName;
     }
 
-    public void setAttrs(List<ContractAttrDto> attrs) {
-        this.attrs = attrs;
+    public void setObjPersonName(String objPersonName) {
+        this.objPersonName = objPersonName;
     }
 
-    public String getContractTypeName() {
-        return contractTypeName;
+    public String getObjPersonId() {
+        return objPersonId;
     }
 
-    public void setContractTypeName(String contractTypeName) {
-        this.contractTypeName = contractTypeName;
+    public void setObjPersonId(String objPersonId) {
+        this.objPersonId = objPersonId;
     }
 
-    public String getStateName() {
-        return stateName;
+    public Date getCreateTime() {
+        return createTime;
     }
 
-    public void setStateName(String stateName) {
-        this.stateName = stateName;
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
     }
 
-    public String getStateDesc() {
-        return stateDesc;
+    public String getStatusCd() {
+        return statusCd;
     }
 
-    public void setStateDesc(String stateDesc) {
-        this.stateDesc = stateDesc;
+    public void setStatusCd(String statusCd) {
+        this.statusCd = statusCd;
     }
 
-    public String[] getNoStates() {
-        return noStates;
+    public String getContractTypeName() {
+        return contractTypeName;
     }
 
-    public void setNoStates(String[] noStates) {
-        this.noStates = noStates;
+    public void setContractTypeName(String contractTypeName) {
+        this.contractTypeName = contractTypeName;
     }
 
-    public String getContractParentId() {
-        return contractParentId;
+    public String getStateName() {
+        return stateName;
     }
 
-    public void setContractParentId(String contractParentId) {
-        this.contractParentId = contractParentId;
+    public void setStateName(String stateName) {
+        this.stateName = stateName;
     }
 
     public String getParentContractCode() {
@@ -397,46 +437,6 @@ public class ContractDto extends PageDto implements Serializable {
         this.startUserId = startUserId;
     }
 
-    public String[] getContractIds() {
-        return contractIds;
-    }
-
-    public void setContractIds(String[] contractIds) {
-        this.contractIds = contractIds;
-    }
-
-    public String getObjName() {
-        return objName;
-    }
-
-    public void setObjName(String objName) {
-        this.objName = objName;
-    }
-
-    public String getObjPersonName() {
-        return objPersonName;
-    }
-
-    public void setObjPersonName(String objPersonName) {
-        this.objPersonName = objPersonName;
-    }
-
-    public String getObjPersonId() {
-        return objPersonId;
-    }
-
-    public void setObjPersonId(String objPersonId) {
-        this.objPersonId = objPersonId;
-    }
-
-    public String[] getStates() {
-        return states;
-    }
-
-    public void setStates(String[] states) {
-        this.states = states;
-    }
-
     public String getCommunityId() {
         return communityId;
     }
@@ -445,11 +445,11 @@ public class ContractDto extends PageDto implements Serializable {
         this.communityId = communityId;
     }
 
-    public String getContractNameLike() {
-        return contractNameLike;
+    public List<ContractAttrDto> getAttrs() {
+        return attrs;
     }
 
-    public void setContractNameLike(String contractNameLike) {
-        this.contractNameLike = contractNameLike;
+    public void setAttrs(List<ContractAttrDto> attrs) {
+        this.attrs = attrs;
     }
 }

+ 279 - 0
service-job/src/main/java/com/java110/job/task/fee/CorrectionDataTemplate.java

@@ -0,0 +1,279 @@
+package com.java110.job.task.fee;
+
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.contract.ContractDto;
+import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.logSystemError.LogSystemErrorDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.task.TaskDto;
+import com.java110.intf.common.ILogSystemErrorInnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.store.IContractInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.job.quartz.TaskSystemQuartz;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.logSystemError.LogSystemErrorPo;
+import com.java110.service.smo.ISaveSystemErrorSMO;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ExceptionUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName GenerateOwnerBillTemplate
+ * @Description TODO  矫正数据处理类
+ * @Author wuxw
+ * @Date 2020/6/4 8:33
+ * @Version 1.0
+ * add by wuxw 2020/6/4
+ **/
+@Component
+public class CorrectionDataTemplate extends TaskSystemQuartz {
+
+    public static final double DEFAULT_ROW = 200.0;
+
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private ILogSystemErrorInnerServiceSMO logSystemErrorInnerServiceSMOImpl;
+
+    @Autowired
+    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
+
+    @Override
+    protected void process(TaskDto taskDto) throws Exception {
+
+        // 获取小区
+        List<CommunityDto> communityDtos = getAllCommunity();
+
+        for (CommunityDto communityDto : communityDtos) {
+            correctionDataFee(taskDto, communityDto);
+        }
+
+    }
+
+    /**
+     * 根据小区生成账单
+     *
+     * @param communityDto
+     */
+    private void correctionDataFee(TaskDto taskDto, CommunityDto communityDto) {
+
+        //查询费用项
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(communityDto.getCommunityId());
+
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+
+        for (FeeConfigDto tmpFeeConfigDto : feeConfigDtos) {
+            try {
+                GenerateOweFeeByFeeConfig(taskDto, tmpFeeConfigDto);
+            } catch (Exception e) {
+                LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+                logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+                logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
+                logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+                saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+                logger.error("矫正数据出错" + tmpFeeConfigDto.getConfigId(), e);
+            }
+        }
+
+
+    }
+
+    /**
+     * 按费用项来出账
+     *
+     * @param taskDto
+     * @param feeConfigDto
+     */
+    private void GenerateOweFeeByFeeConfig(TaskDto taskDto, FeeConfigDto feeConfigDto) throws Exception {
+
+        //当前费用项是否
+        FeeDto feeDto = new FeeDto();
+        feeDto.setConfigId(feeConfigDto.getConfigId());
+        feeDto.setCommunityId(feeConfigDto.getCommunityId());
+
+        //先查询总数
+        int count = feeInnerServiceSMOImpl.queryFeesCount(feeDto);
+
+        double record = Math.ceil(count / DEFAULT_ROW);
+
+        for (int page = 1; page <= record; page++) {
+            try {
+                feeDto.setPage(page);
+                feeDto.setRow(new Double(DEFAULT_ROW).intValue());
+                List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
+                //没有关联费用
+                if (feeDtos == null || feeDtos.size() < 1) {
+                    continue;
+                }
+                for (FeeDto tmpFeeDto : feeDtos) {
+                    try {
+                        correctionData(tmpFeeDto, feeConfigDto);
+                    } catch (Exception e) {
+                        LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+                        logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+                        logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
+                        logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+                        saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+                        logger.error("矫正数据出错", e);
+                    }
+                }
+            } catch (Exception e) {
+                LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+                logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+                logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_JOB);
+                logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+                saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+                logger.error("矫正数据出错" + feeConfigDto.getConfigId(), e);
+            }
+        }
+
+    }
+
+    /**
+     * 生成 费用
+     *
+     * @param feeDto
+     */
+    private void correctionData(FeeDto feeDto, FeeConfigDto feeConfigDto) {
+
+        //费用 根据房屋 车辆 合同去查询 业主信息
+
+        String objName = "";
+        String ownerId = "";
+        String tel = "";
+        String name = "";
+
+        if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(feeDto.getPayerObjId());
+            roomDto.setCommunityId(feeDto.getCommunityId());
+            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+            if (roomDtos == null || roomDtos.size() != 1) {
+                return;
+            }
+            roomDto = roomDtos.get(0);
+            objName = roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + roomDto.getRoomNum();
+
+            OwnerDto ownerDto = new OwnerDto();
+            ownerDto.setRoomId(roomDto.getRoomId());
+            List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+
+            if (ownerDtos != null && ownerDtos.size() > 0) {
+                ownerId = ownerDtos.get(0).getOwnerId();
+                tel = ownerDtos.get(0).getLink();
+                name = ownerDtos.get(0).getName();
+            }
+        } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {
+            OwnerCarDto ownerCarDto = new OwnerCarDto();
+            ownerCarDto.setCarId(feeDto.getPayerObjId());
+            ownerCarDto.setCommunityId(feeDto.getCommunityId());
+            List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+            if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+                return;
+            }
+            objName = ownerCarDtos.get(0).getCarNum();
+            ownerId = ownerCarDtos.get(0).getOwnerId();
+            tel = ownerCarDtos.get(0).getLink();
+            name = ownerCarDtos.get(0).getOwnerName();
+        } else if (FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(feeDto.getPayerObjType())) {
+
+
+            ContractDto contractDto = new ContractDto();
+            contractDto.setContractId(feeDto.getPayerObjId());
+            List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
+
+            if (contractDtos == null || contractDtos.size() < 1) {
+                return;
+            }
+
+            objName = contractDtos.get(0).getContractCode();
+            tel = contractDtos.get(0).getbLink();
+            name = contractDtos.get(0).getPartyB();
+        }
+
+        updateFeeAttr(FeeAttrDto.SPEC_CD_OWNER_ID, ownerId, feeDto);
+        updateFeeAttr(FeeAttrDto.SPEC_CD_OWNER_NAME, name, feeDto);
+        updateFeeAttr(FeeAttrDto.SPEC_CD_OWNER_LINK, tel, feeDto);
+        updateFeeAttr(FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME, objName, feeDto);
+
+    }
+
+    private void updateFeeAttr(String specCd, String value, FeeDto feeDto) {
+
+        if (StringUtil.isEmpty(value)) {
+            return;
+        }
+
+        FeeAttrPo curFeeAttrPo = null;
+
+        for (FeeAttrDto feeAttrDto : feeDto.getFeeAttrDtos()) {
+            if (specCd.equals(feeAttrDto.getSpecCd())) {
+                curFeeAttrPo = BeanConvertUtil.covertBean(feeAttrDto, FeeAttrPo.class);
+            }
+        }
+
+        if (curFeeAttrPo == null) {
+            curFeeAttrPo = new FeeAttrPo();
+            curFeeAttrPo.setFeeId(feeDto.getFeeId());
+            curFeeAttrPo.setCommunityId(feeDto.getCommunityId());
+            curFeeAttrPo.setValue(value);
+            curFeeAttrPo.setSpecCd(specCd);
+            curFeeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+            List<FeeAttrPo> feeAttrPos = new ArrayList<>();
+            feeAttrPos.add(curFeeAttrPo);
+            feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos);
+
+            return;
+        }
+
+        curFeeAttrPo.setValue(value);
+        feeAttrInnerServiceSMOImpl.updateFeeAttr(curFeeAttrPo);
+
+    }
+}