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 assetImportLogDetailDtos) { importDatas(assetImportLogDetailDtos); } private void importDatas(List 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 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 purchaseApplyDetailPos = new ArrayList<>(); builderPurchaseApplyDetailPos(purchaseApplyDetailPos, purchaseApplyPo.getApplyOrderId(), os); purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos); purchaseApplyInnerServiceSMOImpl.savePurchaseApply(purchaseApplyPo); List 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 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 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 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); } }