package com.java110.job.importData.adapt;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.core.factory.GenerateCodeFactory;
|
import com.java110.dto.community.CommunityDto;
|
import com.java110.dto.dict.DictDto;
|
import com.java110.dto.fee.FeeConfigDto;
|
import com.java110.dto.importData.*;
|
import com.java110.dto.log.AssetImportLogDetailDto;
|
import com.java110.dto.oweFeeCallable.OweFeeCallableDto;
|
import com.java110.dto.owner.OwnerDto;
|
import com.java110.dto.room.RoomDto;
|
import com.java110.fee.dao.IApplyRoomDiscountServiceDao;
|
import com.java110.intf.community.ICommunityInnerServiceSMO;
|
import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
|
import com.java110.intf.dev.IDictV1InnerServiceSMO;
|
import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
|
import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
|
import com.java110.intf.fee.IOweFeeCallableV1InnerServiceSMO;
|
import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
|
import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
|
import com.java110.intf.user.IOwnerInnerServiceSMO;
|
import com.java110.intf.user.IOwnerV1InnerServiceSMO;
|
import com.java110.job.importData.DefaultImportData;
|
import com.java110.job.importData.IImportDataAdapt;
|
import com.java110.po.dict.DictPo;
|
import com.java110.po.fee.FeeAttrPo;
|
import com.java110.po.fee.PayFeePo;
|
import com.java110.po.oweFeeCallable.OweFeeCallablePo;
|
import com.java110.po.owner.OwnerPo;
|
import com.java110.po.purchase.*;
|
import com.java110.po.room.ApplyRoomDiscountPo;
|
import com.java110.po.room.LitigationInfoPo;
|
import com.java110.po.room.PayeeReceiveInfoPo;
|
import com.java110.utils.util.BeanConvertUtil;
|
import org.mybatis.spring.SqlSessionTemplate;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* 房产信息导入 适配器
|
* 前端请求 时 必须传入
|
* param.append('importAdapt', "importRoomOwner");
|
*/
|
@Service("importPurchaseApplyQueueData")
|
public class ImportPurchaseApplyQueueDataAdapt extends DefaultImportData implements IImportDataAdapt {
|
|
@Autowired
|
protected SqlSessionTemplate sqlSessionTemplate;
|
|
@Autowired
|
private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
|
|
@Override
|
public void importData(List<AssetImportLogDetailDto> assetImportLogDetailDtos) {
|
importDatas(assetImportLogDetailDtos);
|
}
|
|
private void importDatas(List<AssetImportLogDetailDto> infos) {
|
for (AssetImportLogDetailDto assetImportLogDetailDto : infos) {
|
|
try {
|
doImportData(assetImportLogDetailDto);
|
|
updateImportLogDetailState(assetImportLogDetailDto.getDetailId());
|
try {
|
Thread.sleep(200);
|
} catch (InterruptedException e) {
|
throw new RuntimeException(e);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
String errorMsg = e.getMessage();
|
// 先判空,再判断包含关系
|
if (errorMsg != null && errorMsg.contains("### Error updating database")) {
|
updateImportLogDetailState(assetImportLogDetailDto.getDetailId(),
|
"未知错误,请联系管理员" + errorMsg);
|
} else {
|
// 补充:这里也建议对 e 做兜底处理,避免传递空的异常信息
|
String finalMsg = errorMsg != null ? errorMsg : e.toString();
|
updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), finalMsg);
|
// 如果原方法 updateImportLogDetailState 接收 Exception 类型参数,可保留:
|
// updateImportLogDetailState(assetImportLogDetailDto.getDetailId(), e);
|
}
|
}
|
}
|
|
}
|
|
/**
|
* 导入数据
|
*
|
* @param assetImportLogDetailDto
|
*/
|
private void doImportData(AssetImportLogDetailDto assetImportLogDetailDto) {
|
|
JSONArray os = JSONObject.parseArray(assetImportLogDetailDto.getContent());
|
|
PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
|
purchaseApplyPo.setApplyDate(Vtil.defaultValue(os.get(2)));
|
purchaseApplyPo.setBId("-1");
|
purchaseApplyPo.setStoreId(os.getString(179));
|
purchaseApplyPo.setCreateUserId(os.getString(180));
|
purchaseApplyPo.setCreateUserName(os.getString(181));
|
purchaseApplyPo.setCommunityId(os.getString(182));
|
purchaseApplyPo.setDescription("");
|
purchaseApplyPo.setResOrderType("10000");
|
purchaseApplyPo.setWarehousingWay("20000");
|
purchaseApplyPo.setYear(os.getString(2));
|
purchaseApplyPo.setMonth(os.getString(3));
|
purchaseApplyPo.setCompany(os.getString(5));
|
purchaseApplyPo.setDepartment(os.getString(6));
|
purchaseApplyPo.setCommunityName(os.getString(7));
|
purchaseApplyPo.setUserName(os.getString(8));
|
purchaseApplyPo.setSerialNo(os.getString(9));
|
purchaseApplyPo.setTripleNo(os.getString(10));
|
purchaseApplyPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyPo.setBudgetQuantity(os.getString(18));
|
purchaseApplyPo.setBudgetPrice(os.getString(19));
|
purchaseApplyPo.setBudgetAmount(os.getString(20));
|
purchaseApplyPo.setReceiver(os.getString(21));
|
purchaseApplyPo.setReceiveAddr(os.getString(22));
|
|
|
PurchaseApplyItem purchaseApplyItem = new PurchaseApplyItem();
|
purchaseApplyItem.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyItem.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
|
purchaseApplyItem.setIsSignReport(os.getString(11));
|
purchaseApplyItem.setSignReportDate(os.getString(12));
|
purchaseApplyItem.setItemNo(os.getString(13));
|
purchaseApplyItem.setType(os.getString(14));
|
purchaseApplyItem.setPurchaseName(os.getString(15));
|
purchaseApplyItem.setModel(os.getString(16));
|
purchaseApplyItem.setUnit(os.getString(17));
|
|
sqlSessionTemplate.insert("purchaseApplyItemServiceDaoImpl.savePurchaseApplyItemInfo", BeanConvertUtil.beanCovertMap(purchaseApplyItem));
|
|
List<PurchaseApplyAudit> purchaseApplyAudits = new ArrayList<>();
|
builderPurchaseApplyAudits(purchaseApplyAudits, purchaseApplyPo.getApplyOrderId(), os);
|
|
for(PurchaseApplyAudit purchaseApplyAudit : purchaseApplyAudits){
|
sqlSessionTemplate.insert("purchaseApplyAuditServiceDaoImpl.savePurchaseApplyAuditInfo", BeanConvertUtil.beanCovertMap(purchaseApplyAudit));
|
}
|
|
PurchaseApplyStock purchaseApplyStock = new PurchaseApplyStock();
|
purchaseApplyStock.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyStock.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
|
purchaseApplyStock.setPurchaseTimes(os.getString(44));
|
purchaseApplyStock.setPurchaseQuantity(os.getString(45));
|
purchaseApplyStock.setPurchasePrice(os.getString(46));
|
purchaseApplyStock.setPurchaseAmount(os.getString(47));
|
purchaseApplyStock.setTotalQuantityJohn(os.getString(48));
|
purchaseApplyStock.setPayableAmountJohn(os.getString(49));
|
purchaseApplyStock.setPaymentTimes(os.getString(51));
|
purchaseApplyStock.setPaymentTotalAmount(os.getString(52));
|
purchaseApplyStock.setUnpaidAmountJohn(os.getString(53));
|
purchaseApplyStock.setUnhappenJohn(os.getString(54));
|
purchaseApplyStock.setStockQuantity(os.getString(55));
|
purchaseApplyStock.setUseQuantity(os.getString(56));
|
purchaseApplyStock.setStockQuantity(os.getString(57));
|
purchaseApplyStock.setPriceJohn(os.getString(58));
|
purchaseApplyStock.setSurplusAmount(os.getString(59));
|
purchaseApplyStock.setKeeperJohn(os.getString(60));
|
|
sqlSessionTemplate.insert("purchaseApplyStockServiceDaoImpl.savePurchaseApplyStockInfo", BeanConvertUtil.beanCovertMap(purchaseApplyStock));
|
|
ResourceStorePo resourceStorePo = new ResourceStorePo();
|
|
// resourceStorePo.setResId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_resId));
|
// resourceStorePo.setStoreId(os.getString(179));
|
// resourceStorePo.set
|
// resourceStorePo.setCommunityId(os.getString(182));
|
List<PurchaseApplyDetailPo> purchaseApplyDetailPos = new ArrayList<>();
|
builderPurchaseApplyDetailPos(purchaseApplyDetailPos, purchaseApplyPo.getApplyOrderId(), os);
|
|
purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);
|
purchaseApplyInnerServiceSMOImpl.savePurchaseApply(purchaseApplyPo);
|
|
List<PurchasePayment> purchasePayments = new ArrayList<>();
|
builderPurchasePayment(purchasePayments, purchaseApplyPo.getApplyOrderId(), os);
|
|
for (PurchasePayment purchasePayment : purchasePayments) {
|
sqlSessionTemplate.insert("purchasePaymentServiceDaoImpl.savePurchasePaymentInfo", BeanConvertUtil.beanCovertMap(purchasePayment));
|
}
|
|
PurchaseReceive purchaseReceive = new PurchaseReceive();
|
purchaseReceive.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseReceive.setApplyOrderId(purchaseApplyPo.getApplyOrderId());
|
purchaseReceive.setReceiveQuantity(os.getString(157));
|
purchaseReceive.setReceiveDate(os.getString(158));
|
purchaseReceive.setReceiveAddress(os.getString(159));
|
purchaseReceive.setSigner(os.getString(160));
|
purchaseReceive.setStockInNo(os.getString(161));
|
purchaseReceive.setStockInDate(os.getString(162));
|
purchaseReceive.setStockOutNo(os.getString(163));
|
purchaseReceive.setStockOutDate(os.getString(164));
|
|
sqlSessionTemplate.insert("purchaseReceiveServiceDaoImpl.savePurchaseReceiveInfo", BeanConvertUtil.beanCovertMap(purchaseReceive));
|
|
PurchaseReturnRecord purchaseReturnRecord = new PurchaseReturnRecord();
|
purchaseReturnRecord.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseReturnRecord.setOrderId(purchaseApplyPo.getApplyOrderId());
|
purchaseReturnRecord.setReturnDate(os.getString(165));
|
purchaseReturnRecord.setReturnQuantity(os.getString(166));
|
purchaseReturnRecord.setReturnPerson(os.getString(167));
|
purchaseReturnRecord.setApprover(os.getString(168));
|
purchaseReturnRecord.setReturnPrice(os.getString(169));
|
purchaseReturnRecord.setReturnTotalPrice(os.getString(170));
|
purchaseReturnRecord.setSupplierName(os.getString(171));
|
purchaseReturnRecord.setReturnStockInNo(os.getString(172));
|
purchaseReturnRecord.setReturnStockInDate(os.getString(173));
|
purchaseReturnRecord.setReturnStockOutNo(os.getString(174));
|
purchaseReturnRecord.setReturnDirection(os.getString(175));
|
|
sqlSessionTemplate.insert("purchaseReturnRecordServiceDaoImpl.insertPurchaseReturnRecord", BeanConvertUtil.beanCovertMap(purchaseReturnRecord));
|
|
|
}
|
|
private void builderPurchasePayment(List<PurchasePayment> purchasePayments, String applyOrderId, JSONArray os) {
|
for (int i = 97; i <= 97 + 12 * 4; i += 12) {
|
PurchasePayment purchasePayment = new PurchasePayment();
|
purchasePayment.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchasePayment.setApplyOrderId(applyOrderId);
|
purchasePayment.setPayableAmount(os.getString(i));
|
purchasePayment.setPaidAmount(os.getString(i+1));
|
purchasePayment.setUnpaidAmount(os.getString(i+2));
|
purchasePayment.setPaymentAmount(os.getString(i+3));
|
purchasePayment.setPaymentCompany(os.getString(i+4));
|
purchasePayment.setPayType(os.getString(i+5));
|
purchasePayment.setPaymentNo(os.getString(i+6));
|
purchasePayment.setInvoiceStatus(os.getString(i+7));
|
purchasePayment.setTaxRate(os.getString(i+8));
|
purchasePayment.setPaymentCompanyAgent(os.getString(i+9));
|
purchasePayment.setPlannedPayDate(os.getString(i+10));
|
purchasePayment.setPayDate(os.getString(i+11));
|
purchasePayments.add(purchasePayment);
|
|
}
|
}
|
|
private void builderPurchaseApplyDetailPos(List<PurchaseApplyDetailPo> purchaseApplyAudits, String applyOrderId, JSONArray os) {
|
for (int i = 61; i <= 61 + 9 * 4; i += 9) {
|
PurchaseApplyDetailPo purchaseApplyDetailPo = new PurchaseApplyDetailPo();
|
purchaseApplyDetailPo.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyDetailPo.setApplyOrderId(applyOrderId);
|
purchaseApplyDetailPo.setResId(os.getString(15));//TODO 添加物品
|
purchaseApplyDetailPo.setPurchaseDate(os.getString(i));
|
purchaseApplyDetailPo.setQuantity(os.getString(i + 1));
|
purchaseApplyDetailPo.setPrice(os.getString(i + 2));
|
purchaseApplyDetailPo.setPurchaseAmount(os.getString(i + 3));
|
purchaseApplyDetailPo.setPurchaser(os.getString(i + 4));
|
purchaseApplyDetailPo.setSupplier(os.getString(i + 5));
|
purchaseApplyDetailPo.setContactPerson(os.getString(i + 6));
|
purchaseApplyDetailPo.setPhone(os.getString(i + 7));
|
purchaseApplyDetailPo.setWechat(os.getString(i + 8));
|
purchaseApplyAudits.add(purchaseApplyDetailPo);
|
}
|
}
|
|
private void builderPurchaseApplyAudits(List<PurchaseApplyAudit> purchaseApplyAudits, String applyOrderId, JSONArray os) {
|
{
|
PurchaseApplyAudit purchaseApplyAudit = new PurchaseApplyAudit();
|
purchaseApplyAudit.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyAudit.setAuditType("审核部门");
|
purchaseApplyAudit.setApplyOrderId(applyOrderId);
|
purchaseApplyAudit.setAuditDate(os.getString(26));
|
purchaseApplyAudit.setOperator(os.getString(27));
|
purchaseApplyAudit.setQuantity(os.getString(28));
|
purchaseApplyAudit.setPrice(os.getString(29));
|
purchaseApplyAudit.setModel(os.getString(30));
|
purchaseApplyAudit.setAuditDept(os.getString(31));
|
purchaseApplyAudit.setAuditor(os.getString(32));
|
purchaseApplyAudits.add(purchaseApplyAudit);
|
}
|
|
|
{
|
PurchaseApplyAudit purchaseApplyAudit = new PurchaseApplyAudit();
|
purchaseApplyAudit.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyAudit.setAuditType("财务部审核");
|
purchaseApplyAudit.setApplyOrderId(applyOrderId);
|
purchaseApplyAudit.setAuditDate(os.getString(33));
|
purchaseApplyAudit.setOperator(os.getString(34));
|
purchaseApplyAudit.setAuditDate(os.getString(35));
|
purchaseApplyAudit.setAuditDept(os.getString(36));
|
purchaseApplyAudit.setAuditor(os.getString(37));
|
purchaseApplyAudit.setAuditOpinion(os.getString(38));
|
purchaseApplyAudit.setRemark(os.getString(39));
|
purchaseApplyAudits.add(purchaseApplyAudit);
|
}
|
|
PurchaseApplyAudit purchaseApplyAudit = new PurchaseApplyAudit();
|
purchaseApplyAudit.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_orderId));
|
purchaseApplyAudit.setAuditType("领导审核");
|
purchaseApplyAudit.setApplyOrderId(applyOrderId);
|
purchaseApplyAudit.setAuditDate(os.getString(40));
|
purchaseApplyAudit.setOperator(os.getString(41));
|
purchaseApplyAudit.setAuditor(os.getString(42));
|
purchaseApplyAudit.setRemark(os.getString(43));
|
purchaseApplyAudits.add(purchaseApplyAudit);
|
}
|
}
|