chengf
2025-07-25 ee4d1b668d1666cdec803b037ce8181763154bb6
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.dict.DictDto;
import com.java110.dto.fee.FeeAttrDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
@@ -9,26 +10,35 @@
import com.java110.dto.importData.ImportFeeDto;
import com.java110.dto.importData.ImportRoomFee;
import com.java110.dto.log.AssetImportLogDetailDto;
import com.java110.dto.menu.MenuDto;
import com.java110.dto.menu.MenuUserDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.payFee.PayFeeBatchDto;
import com.java110.dto.payFee.PayFeeDetailRefreshFeeMonthDto;
import com.java110.dto.room.RoomDto;
import com.java110.dto.user.UserDto;
import com.java110.fee.cmd.fee.SaveRoomCreateFeeCmd;
import com.java110.intf.community.IRoomInnerServiceSMO;
import com.java110.intf.dev.IDictV1InnerServiceSMO;
import com.java110.intf.fee.*;
import com.java110.intf.user.IMenuUserV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.job.cmd.ImportSaveRoomCreateFeeCmd;
import com.java110.job.importData.DefaultImportData;
import com.java110.job.importData.IImportDataAdapt;
import com.java110.po.fee.FeeAttrPo;
import com.java110.po.fee.PayFeePo;
import com.java110.po.importFee.ImportFeeDetailPo;
import com.java110.po.importFee.ImportFeePo;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ListUtil;
import com.java110.utils.util.StringUtil;
import com.java110.po.payFee.PayFeeBatchPo;
import com.java110.utils.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@@ -65,6 +75,12 @@
    @Autowired
    private IImportFeeInnerServiceSMO importFeeInnerServiceSMOImpl;
    @Autowired
    private IDictV1InnerServiceSMO iDictV1InnerServiceSMO;
    @Autowired
    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
    //    @Autowired
//    private IPayFeeMonth payFeeMonthImpl;
    @Override
@@ -106,6 +122,15 @@
            return;
        }
        List<ImportRoomFee> rooms = new ArrayList<>();
        DictDto dictDto = new DictDto();
        dictDto.setName(importRoomFee.getFeeTypeCd());
        List<DictDto> dictDtos = iDictV1InnerServiceSMO.queryDicts(dictDto);
        try {
            importRoomFee.setFeeTypeCd(dictDtos.get(0).getStatusCd());
        }catch (Exception e){
            throw new IllegalArgumentException("查询费用类型异常");
        }
        String[] objNames;
        objNames = importRoomFee.getPayerObjName().split("-", 3);
@@ -186,6 +211,7 @@
            feeConfigDto.setFeeNameEq(importRoomFee.getFeeName());
        }
        feeConfigDto.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_DYNAMIC);
        feeConfigDto.setComputingFormula(null);
        List<FeeConfigDto> feeConfigDtos = payFeeConfigV1InnerServiceSMOImpl.queryPayFeeConfigs(feeConfigDto);
        if (ListUtil.isNull(feeConfigDtos)) {
            throw new IllegalArgumentException("费用项不存在,或者费用项公式不是动态费用");
@@ -206,18 +232,55 @@
            payFeePo.setPayerObjId(importRoomFee.getRoomId());
            payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
        }
        FeeDto feeDto = new FeeDto();
        feeDto.setFeeTypeCd(importRoomFee.getFeeTypeCd());
        feeDto.setCommunityId(importRoomFee.getCommunityId());
        String dateStr = importRoomFee.getStartTime();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            feeDto.setStartTime(sdf.parse(importRoomFee.getStartTime()));
            feeDto.setEndTime(sdf.parse(importRoomFee.getEndTime()));
        } catch (ParseException e) {
            throw new RuntimeException("导入起始时间异常");
        }
        feeDto.setPayerObjId(payFeePo.getPayerObjId());
        int feeDtos = feeInnerServiceSMOImpl.queryFeesCount(feeDto);
        if(feeDtos > 0){
//            throw new IllegalArgumentException("重复的费用");
        }
        payFeePo.setUserId(importRoomFee.getUserId());
        payFeePo.setIncomeObjId(importRoomFee.getStoreId());
        FeeConfigDto payFeePo1 = new FeeConfigDto();
        payFeePo1.setFeeTypeCd(importRoomFee.getFeeTypeCd());
        List<FeeConfigDto> feeConfigDtos1 = payFeeConfigV1InnerServiceSMOImpl.queryPayFeeConfigs(payFeePo1);
        payFeePo.setFeeTypeCd(feeConfigDtos.get(0).getFeeTypeCd());
        payFeePo.setFeeTypeCd(importRoomFee.getFeeTypeCd());
        payFeePo.setFeeFlag(feeConfigDtos.get(0).getFeeFlag());
        payFeePo.setAmount(importRoomFee.getAmount());
        payFeePo.setBatchId(batchId);
        payFeePo.setEndTime(importRoomFee.getStartTime());
        payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        payFeePo.setStartTime(importRoomFee.getStartTime());
        if(payFeePo.getAmount() == null && importRoomFee.getFeeName() == null){
            throw new IllegalArgumentException("收费内容和收费金额不能同时为空");
        }
        if(payFeePo.getAmount() == null){
            if(importRoomFee.getFeeName() == null){
                throw new IllegalArgumentException("收费内容为空");
            }
            else if (importRoomFee.getStartTime() == null){
                throw new IllegalArgumentException("收费起始时间为空");
            }
            else if (importRoomFee.getEndTime() == null){
                throw new IllegalArgumentException("收费结束时间为空");
            }
            else{
            }
        }
        payFeePos.add(payFeePo);
        FeeAttrPo feeAttrPo = new FeeAttrPo();
@@ -361,4 +424,25 @@
        importFeeDetailInnerServiceSMOImpl.saveImportFeeDetails(importFeeDetailPos);
    }
    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());
    }
}