package com.java110.job.importData.adapt;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.core.factory.GenerateCodeFactory;
|
import com.java110.dto.community.CommunityDto;
|
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.owner.OwnerDto;
|
import com.java110.dto.room.RoomDto;
|
import com.java110.intf.community.ICommunityInnerServiceSMO;
|
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.po.meter.PhoneBillFlow;
|
import com.java110.utils.exception.CmdException;
|
import com.java110.utils.util.BeanConvertUtil;
|
import com.java110.utils.util.DateUtil;
|
import org.mybatis.spring.SqlSessionTemplate;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Service("importPhoneBillFeeV2QueueData")
|
public class ImportPhoneBillFeeV2QueueDataAdapt extends DefaultImportData implements IImportDataAdapt {
|
|
@Autowired
|
private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
|
|
@Autowired
|
private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
|
|
@Autowired
|
private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
|
|
@Autowired
|
private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
|
|
@Autowired
|
private SqlSessionTemplate sqlSessionTemplate;
|
|
@Autowired
|
private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
|
|
// @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());
|
PhoneBillFlow po = BeanConvertUtil.covertBean(data, PhoneBillFlow.class);
|
CommunityDto communityDto = new CommunityDto();
|
communityDto.setCommunityCode(po.getCommunityCode());
|
communityDto.setName(po.getCommunityName());
|
List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
|
if (communityDtos.isEmpty()) {
|
throw new IllegalArgumentException("小区不存在:" + communityDto.getName() + "(" + communityDto.getCommunityCode() + ")");
|
} else if (communityDtos.size() > 1) {
|
throw new IllegalArgumentException("存在多个小区:" + communityDto.getName() + "(" + communityDto.getCommunityCode() + ")");
|
} else {
|
po.setCommunityId(communityDtos.get(0).getCommunityId());
|
}
|
validateRoom(po);
|
|
po.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_waterId));
|
po.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
|
|
sqlSessionTemplate.insert("phoneBillFlowServiceDaoImpl.savePhoneBillFlowInfo", BeanConvertUtil.beanCovertMap(po));
|
// addFee(po, data, assetImportLogDetailDto.getLogId(), assetImportLogDetailDto);
|
int i = 1;
|
}
|
|
private void addFee(PhoneBillFlow po, JSONObject reqJson, String batchId, AssetImportLogDetailDto assetImportLogDetailDto) {
|
PayFeePo payFeePo = BeanConvertUtil.covertBean(reqJson, PayFeePo.class);
|
payFeePo.setCommunityId(po.getCommunityId());
|
payFeePo.setFeeId(po.getFeeId());
|
payFeePo.setAmount(po.getPayableAmount());
|
if (payFeePo.getAmount().isEmpty()){
|
payFeePo.setAmount("-1");
|
}
|
// payFeePo.setSecondaryFeeTypeCd("888800010157");
|
payFeePo.setUserId(Vtil.defaultValue(po.getUserId()));
|
payFeePo.setFeeTypeCd(Vtil.defaultValue(po.getFeeTypeCd(), "630000009"));
|
payFeePo.setConfigId(Vtil.defaultValue(po.getConfigId(), "922026012136272690"));
|
payFeePo.setPayerObjId(po.getRoomId());
|
payFeePo.setBatchId(batchId);
|
payFeePo.setStartTime(po.getYear() + "-" + po.getMonth() + "-" + "01");
|
payFeePo.setEndTime(po.getYear() + "-" + po.getMonth() + "-" + DateUtil.getTotalDaysInMonth(Integer.parseInt(po.getYear()), Integer.parseInt(po.getMonth())));
|
payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
|
payFeePo.setbId("-1");
|
payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
|
payFeePo.setState(FeeDto.STATE_FINISH);
|
payFeePo.setIncomeObjId("102025062610470035");
|
payFeePo.setUserId("-1");
|
|
reqJson.put("feeId", payFeePo.getFeeId());
|
|
|
|
int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
|
if (flag < 1) {
|
throw new CmdException("保存数据失败");
|
}
|
FeeAttrPo feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(po.getCommunityId());
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
|
feeAttrPo.setValue(payFeePo.getEndTime());
|
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(po.getCommunityId());
|
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(po.getCommunityId());
|
ownerDto.setRoomId(reqJson.getString("objId"));
|
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
|
|
if (ownerDtos != null && ownerDtos.size() > 0) {
|
feeAttrPo = new FeeAttrPo();
|
feeAttrPo.setCommunityId(po.getCommunityId());
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
|
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(po.getCommunityId());
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
|
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(po.getCommunityId());
|
feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
|
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("保存数据失败");
|
}
|
}
|
}
|
|
@Autowired
|
private IImportOwnerRoomInnerServiceSMO importOwnerRoomInnerServiceSMOImpl;
|
|
private void validateRoom(PhoneBillFlow po) {
|
RoomDto roomDto = new RoomDto();
|
roomDto.setRoadName(po.getRoadName());
|
roomDto.setFloorNum(Vtil.defaultValueToNumber(po.getFloorNum()));
|
roomDto.setCommunityId(po.getCommunityId());
|
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()) {
|
throw new IllegalArgumentException("未查询到房屋:" + po.getAddress());
|
// ImportOwnerRoomDto importOwnerRoomDto = new ImportOwnerRoomDto();//房屋
|
// importOwnerRoomDto.setUserId(po.getUserId());
|
// 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.setRoomId(importOwnerRoomDto.getRoomId());
|
} else if (roomDtos.size() > 1) {
|
throw new IllegalArgumentException("存在重复的房屋,详见导入详情");
|
} else {
|
po.setRoomId(roomDtos.get(0).getRoomId());
|
}
|
}
|
}
|