package com.java110.job.importData.adapt;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.core.factory.GenerateCodeFactory;
|
import com.java110.dto.fee.FeeAttrDto;
|
import com.java110.dto.fee.FeeDto;
|
import com.java110.dto.importData.ImportOwnerRoomDto;
|
import com.java110.dto.importData.Vtil;
|
import com.java110.dto.log.AssetImportLogDetailDto;
|
import com.java110.dto.meter.MeterWaterDto;
|
import com.java110.dto.owner.OwnerDto;
|
import com.java110.dto.room.RoomDto;
|
import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
|
import com.java110.intf.community.IRoomInnerServiceSMO;
|
import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
|
import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
|
import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
|
import com.java110.intf.user.IOwnerInnerServiceSMO;
|
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.meter.MeterWaterPo;
|
import com.java110.utils.exception.CmdException;
|
import com.java110.utils.util.BeanConvertUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Service("importElectricityFeeV2QueueData")
|
public class ImportElectricityFeeV2QueueDataAdapt extends DefaultImportData implements IImportDataAdapt {
|
|
@Autowired
|
private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
|
|
@Autowired
|
private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
|
|
@Autowired
|
private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
|
|
@Autowired
|
private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
|
|
@Autowired
|
private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
|
|
@Autowired
|
private IImportOwnerRoomInnerServiceSMO importOwnerRoomInnerServiceSMOImpl;
|
// @Autowired
|
// private IPayFeeMonth payFeeMonthImpl;
|
@Override
|
public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
|
|
for (AssetImportLogDetailDto assetImportLogDetailDto : assetImportLogDetailDtos) {
|
|
try {
|
doImportData(assetImportLogDetailDto);
|
updateImportLogDetailState(assetImportLogDetailDto.getDetailId());
|
} catch (Exception e) {
|
e.printStackTrace();
|
updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
|
}
|
}
|
}
|
|
private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) {
|
JSONObject data = JSONObject.parseObject(assetImportLogDetailDto.getContent());
|
MeterWaterPo po = BeanConvertUtil.covertBean(data, MeterWaterPo.class);
|
if (po.getCommunityId() == null) {
|
throw new IllegalArgumentException("未查询到小区:" + po.getCommunityCode() + po.getCommunityName());
|
}
|
validateRoom(po, assetImportLogDetailDto);
|
addFee(po, data, assetImportLogDetailDto.getLogId(), assetImportLogDetailDto);
|
int i = 1;
|
try {
|
Thread.sleep(100);
|
} catch (InterruptedException e) {
|
throw new RuntimeException(e);
|
}
|
}
|
|
private void addFee(MeterWaterPo po, JSONObject reqJson, String batchId, AssetImportLogDetailDto assetImportLogDetailDto) {
|
PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
|
payFeePo.setAmount(po.getUnitPrice());
|
if (payFeePo.getAmount().equals("")){
|
payFeePo.setAmount("-1");
|
}
|
payFeePo.setFeeTypeCd(po.getFeeTypeCd());
|
payFeePo.setConfigId(po.getConfigId());
|
payFeePo.setPayerObjId(po.getObjId());
|
payFeePo.setStartTime(po.getCurReadingTime());
|
payFeePo.setEndTime(po.getPreReadingTime());
|
payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
|
payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
|
payFeePo.setState(FeeDto.STATE_DOING);
|
if (po.getRemark3() != null){
|
po.setRemark(Vtil.defaultValue(po.getRemark()) + po.getRemark3());
|
}
|
int i = meterWaterInnerServiceSMOImpl.queryMeterWatersCountByPo(po);
|
if (i > 0) {
|
throw new IllegalArgumentException("重复的电费导入");
|
}
|
payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
|
payFeePo.setBatchId(batchId);
|
payFeePo.setbId("-1");
|
payFeePo.setIncomeObjId("102025062610470035");
|
payFeePo.setUserId("-1");
|
|
reqJson.put("feeId", payFeePo.getFeeId());
|
ArrayList<MeterWaterPo> meterWaterPos = new ArrayList<>();
|
po.setWaterId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
|
po.setFeeId(payFeePo.getFeeId());
|
meterWaterPos.add(po);
|
meterWaterInnerServiceSMOImpl.saveMeterWaters(meterWaterPos);
|
|
int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
FeeAttrPo feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(reqJson.getString("communityId"));
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
|
feeAttrPo.setValue(reqJson.getString("curReadingTime"));
|
feeAttrPo.setFeeId(payFeePo.getFeeId());
|
feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
|
flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
|
//todo 保存 房屋名称
|
feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(reqJson.getString("communityId"));
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_PAY_OBJECT_NAME);
|
feeAttrPo.setValue(po.getFloorNum() + "-" + po.getUnitNum() + "-" + po.getRoomNum());
|
feeAttrPo.setFeeId(payFeePo.getFeeId());
|
feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
|
flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
|
OwnerDto ownerDto = new OwnerDto();
|
ownerDto.setCommunityId(reqJson.getString("communityId"));
|
ownerDto.setRoomId(reqJson.getString("objId"));
|
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
|
|
|
if (ownerDtos != null && ownerDtos.size() > 0) {
|
feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(reqJson.getString("communityId"));
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
|
if (ownerDtos.size() > 1) {
|
feeAttrPo.setValue("导入信息中不存在业主");
|
}else {
|
feeAttrPo.setValue(ownerDtos.get(0).getOwnerId());
|
}
|
feeAttrPo.setFeeId(payFeePo.getFeeId());
|
feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
|
flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
|
feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(reqJson.getString("communityId"));
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
|
if (ownerDtos.size() > 1) {
|
feeAttrPo.setValue("导入信息中不存在业主");
|
}else {
|
feeAttrPo.setValue(ownerDtos.get(0).getLink());
|
}
|
feeAttrPo.setFeeId(payFeePo.getFeeId());
|
feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
|
flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
|
feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(reqJson.getString("communityId"));
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
|
if (ownerDtos.size() > 1) {
|
feeAttrPo.setValue("导入信息中不存在业主");
|
}else {
|
feeAttrPo.setValue(ownerDtos.get(0).getName());
|
}
|
feeAttrPo.setFeeId(payFeePo.getFeeId());
|
feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
|
flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
}
|
}
|
|
private void validateRoom(MeterWaterPo po, AssetImportLogDetailDto assetImportLogDetailDto) {
|
RoomDto roomDto = new RoomDto();
|
roomDto.setCommunityId(po.getCommunityId());
|
roomDto.setRoadName(po.getRoadName());
|
roomDto.setFloorNum(Vtil.defaultValueToNumber(po.getFloorNum()));
|
roomDto.setUnitNum(Vtil.defaultValueToNumber(po.getUnitNum()));
|
roomDto.setRoomNum(Vtil.defaultValueToNumber(po.getRoomNum()));
|
if (roomDto.getRoomNum().isEmpty()) {
|
roomDto.setRoomNumIsNull("yes");
|
}
|
List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
|
if (roomDtos.isEmpty()) {
|
po.setObjId("1");
|
po.setRemark3("\n\n房屋:" +
|
roomDto.getCommunityId() + "-" + roomDto.getRoadName() + "-" + roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" +
|
roomDto.getRoomNum() + "不存在,该费用存入公司账户");
|
// ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
|
// importOwnerRoomDto.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
|
// importOwnerRoomDto.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
|
// importOwnerRoomDto.setUserId(po.getUserId());
|
// importOwnerRoomDto.setLayerCount("0");
|
// importOwnerRoomDto.setLayer("0");
|
// importOwnerRoomDto.setLift("未知");
|
// importOwnerRoomDto.setSection("10102");
|
// importOwnerRoomDto.setOwnerTypeCd("1001");
|
// importOwnerRoomDto.setPersonType(OwnerDto.PERSON_TYPE_PERSON);
|
// importOwnerRoomDto.setPersonRole(OwnerDto.PERSON_ROLE_OWNER);
|
// importOwnerRoomDto.setRoomSubType(RoomDto.ROOM_SUB_TYPE_HOUSE);
|
// importOwnerRoomDto.setCommunityId(po.getCommunityId());//小区编号
|
// //---------
|
//
|
// importOwnerRoomDto.setRoadName(roomDto.getRoadName());//路名
|
// importOwnerRoomDto.setFloorNum(roomDto.getFloorNum());//弄
|
// importOwnerRoomDto.setUnitNum(roomDto.getUnitNum());//门
|
// importOwnerRoomDto.setRoomNum(roomDto.getRoomNum());//室
|
// importOwnerRoomDto.setDoorRoomNum(roomDto.getUnitNum() + "-" + roomDto.getRoomNum());//门市号
|
// importOwnerRoomDto.setPropertyAddress(
|
// roomDto.getRoadName() + roomDto.getFloorNum() + roomDto.getUnitNum() + roomDto.getRoomNum()
|
// );//业主地址
|
// importOwnerRoomDto.setBuiltUpArea("0");//面积
|
// importOwnerRoomDto.setRoomArea("0");//面积
|
// importOwnerRoomDto.setRoomRent("0");//面积
|
// importOwnerRoomDto.setSellState(RoomDto.STATE_FREE);//房屋状态
|
// importOwnerRoomDto.setRoomState(Vtil.defaultValue(importOwnerRoomDto.getOwnerName()).equals("") ? "2004" : "2001");
|
// int i = importOwnerRoomInnerServiceSMOImpl.saveOwnerRoom(importOwnerRoomDto);
|
//
|
// if (i == 0) {
|
// throw new IllegalArgumentException("房屋添加错误");
|
// }
|
// po.setObjId(importOwnerRoomDto.getRoomId());
|
} else if (roomDtos.size() > 1) {
|
po.setObjId("1");
|
po.setRemark3("\n\n房屋:" +
|
roomDto.getCommunityId() + "-" + roomDto.getRoadName() + "-" + roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" +
|
roomDto.getRoomNum() + "不存在,该费用存入公司账户");
|
} else {
|
po.setObjId(roomDtos.get(0).getRoomId());
|
}
|
}
|
}
|