package com.glxp.api.controller.basic; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.glxp.api.annotation.Log; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.constant.BasicProcessStatus; import com.glxp.api.constant.BusinessType; import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.BasicCorpsExportLogEntity; import com.glxp.api.entity.basic.BasicProductsExportLogEntity; import com.glxp.api.entity.sync.SyncDataSetEntity; import com.glxp.api.http.HttpOkClient; import com.glxp.api.req.basic.BasicCorpsExportRequest; import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest; import com.glxp.api.res.basic.BasicCorpExportLogResponse; import com.glxp.api.res.basic.UdiRelevanceExportJsonResponse; import com.glxp.api.service.basic.BasicCorpExportLogService; import com.glxp.api.service.basic.BasicCorpService; import com.glxp.api.service.basic.BasicProductsExportLogService; import com.glxp.api.service.sync.SyncDataSetService; import com.glxp.api.util.ExcelUtil; import org.springframework.beans.BeanUtils; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Service public class BasicGenExcelService { @Resource SyncDataSetService syncDataSetService; @Resource HttpOkClient httpOkClient; // public String getIpUrl() { SyncDataSetEntity syncDataSetEntity = syncDataSetService.findSet(); return syncDataSetEntity.getSyncIp(); } // @Resource BasicCorpExportLogService basicCorpExportLogService; @Resource BasicCorpService basicUnitMaintainService; @Resource BasicProductsExportLogService basicProductsExportLogService; // @Resource // UdiRelevanceService udiRelevanceService; // @Resource // SystemParamConfigService systemParamConfigService; // //往来单位导出excel文件 @Async @Log(title = "单据管理", businessType = BusinessType.UPDATE) public void exportCorp(String genKey, BasicCorpsExportRequest basicCorpsExportRequest) { BasicCorpsExportLogEntity corpExportLogEntity = basicCorpExportLogService.selectByGenKey(genKey); List> excelData = new ArrayList<>(); List head = new ArrayList<>(); head.add("往来单位ID"); head.add("往来单位名称"); head.add("往来单位拼音简写"); head.add("地址"); head.add("联系人"); head.add("联系电话"); head.add("社会信用号"); head.add("往来单位状态"); head.add("往来单位类型"); head.add("thirdId"); head.add("thirdName"); head.add("thirdI1d"); head.add("thirdName1"); head.add("thirdId2"); head.add("thirdName2"); head.add("thirdId3"); head.add("thirdName3"); head.add("thirdId4"); head.add("thirdName4"); excelData.add(head); //选中导出 if (basicCorpsExportRequest.getIds() != null && basicCorpsExportRequest.getIds().size() > 0) { List ids = basicCorpsExportRequest.getIds(); for (Integer id : ids) { BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest(); filterRequest.setId(id); List> genDatas = genExcelData(filterRequest); if (genDatas != null && genDatas.size() > 0) { excelData.addAll(genDatas); } } } else {//一键导出 BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest(); BeanUtils.copyProperties(basicCorpsExportRequest, filterRequest); filterRequest.setPage(null); List> genDatas = genExcelData(filterRequest); if (genDatas != null && genDatas.size() > 0) { excelData.addAll(genDatas); } } String sheetName = "往来单位信息"; File file = new File(corpExportLogEntity.getFilePath()); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } new ExcelUtil().exportExcel(excelData, sheetName, corpExportLogEntity.getFilePath(), 20); corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); basicCorpExportLogService.updateCorpExportLog(corpExportLogEntity); } // // //上传往来单位SMP // @Async // public void uploadCorpSmp(String genKey, CorpsExportRequest corpsExportRequest) { // PostCorpsRequest postCorpsRequest = new PostCorpsRequest(); // postCorpsRequest.setGenKey(genKey); // List corpImportDetailEntities = new ArrayList<>(); // CorpExportLogEntity corpExportLogEntity = corpExportLogService.selectByGenKey(genKey); // //选中导出 // if (corpsExportRequest.getIds() != null && corpsExportRequest.getIds().size() > 0) { // List ids = corpsExportRequest.getIds(); // for (Integer id : ids) { // BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest(); // filterRequest.setId(id); // List unitMaintainEntities = basicUnitMaintainService.filterList(filterRequest); // if (unitMaintainEntities != null && unitMaintainEntities.size() > 0) { // for (BasicUnitMaintainEntity basicUnitMaintainEntity : unitMaintainEntities) { // CorpImportDetailEntity corpImportDetailEntity = new CorpImportDetailEntity(); // BeanUtils.copyProperties(basicUnitMaintainEntity, corpImportDetailEntity); // corpImportDetailEntities.add(corpImportDetailEntity); // } // postCorpsRequest.setDatas(corpImportDetailEntities); // // } // } // // // } else {//一键导出 // BasicUnitMaintainFilterRequest filterRequest = new BasicUnitMaintainFilterRequest(); // BeanUtils.copyProperties(corpsExportRequest, filterRequest); // // List unitMaintainEntities = basicUnitMaintainService.filterList(filterRequest); // if (unitMaintainEntities != null && unitMaintainEntities.size() > 0) { // for (BasicUnitMaintainEntity basicUnitMaintainEntity : unitMaintainEntities) { // CorpImportDetailEntity corpImportDetailEntity = new CorpImportDetailEntity(); // BeanUtils.copyProperties(basicUnitMaintainEntity, corpImportDetailEntity); // corpImportDetailEntities.add(corpImportDetailEntity); // } // postCorpsRequest.setDatas(corpImportDetailEntities); // // } // } // // //todo 上传SMP //// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("smp_service_ip"); //// if (systemParamConfigEntity != null) { // String response = httpOkClient.uCloudPost(getIpUrl() + "/udiwms/basic/corps/upload", postCorpsRequest); // BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference() { // }); // if (baseResponse.getCode() == 20000) { // corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); // } else { // corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); // } //// } else { //// corpExportLogEntity.setRemark("SMP服务IP地址未定义!"); //// corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); //// } // // // corpExportLogService.updateCorpExportLog(corpExportLogEntity); // } // // @Async @Log(title = "单据管理", businessType = BusinessType.UPDATE) public void uploadCorpSmpJson(String genKey, BasicCorpExportLogResponse exportData) { BasicCorpsExportLogEntity corpExportLogEntity = basicCorpExportLogService.selectByGenKey(genKey); String response = httpOkClient.uCloudPost(getIpUrl() + "/spssync/basic/corp/upload", exportData); BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference() { }); if (baseResponse.getCode() == 20000) { corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); } else { corpExportLogEntity.setRemark(baseResponse.getMessage()); corpExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); } basicCorpExportLogService.updateCorpExportLog(corpExportLogEntity); } // // // @Async // public void exportUdiInfo(String genKey, UdiInfoExportRequest udiInfoExportRequest) { // BasicProductsExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey); // List> excelData = new ArrayList<>(); // List head = new ArrayList<>(); // head.add("udiCode"); // head.add("医保编码"); // head.add("商品条码"); // head.add("thirdId"); // head.add("thirdId1"); // head.add("thirdId2"); // head.add("thirdId3"); // head.add("thirdId4"); // head.add("是否以使用单元入库"); // excelData.add(head); // //选中导出 // if (udiInfoExportRequest.getUuids() != null && udiInfoExportRequest.getUuids().size() > 0) { // List uuids = udiInfoExportRequest.getUuids(); // for (String uuid : uuids) { // FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); // filterUdiInfoRequest.setUuid(uuid); // List> genDatas = genExcelData(filterUdiInfoRequest); // if (genDatas != null && genDatas.size() > 0) { // excelData.addAll(genDatas); // } // } // // } else {//一键导出 // FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); // BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest); // filterUdiInfoRequest.setPage(null); // List> genDatas = genExcelData(filterUdiInfoRequest); // if (genDatas != null && genDatas.size() > 0) { // excelData.addAll(genDatas); // } // } // // String sheetName = "UDI产品信息对照"; // // File file = new File(udiInfoExportLogEntity.getFilePath()); // if (!file.exists()) { // try { // file.createNewFile(); // } catch (IOException e) { // e.printStackTrace(); // } // } // new ExcelUtil().exportExcel(excelData, sheetName, udiInfoExportLogEntity.getFilePath(), 20); // udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); // udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity); // } // @Async @Log(title = "单据管理", businessType = BusinessType.UPDATE) public void uploadProductsSmpJson(String genKey, UdiRelevanceExportJsonResponse exportData) { BasicProductsExportLogEntity basicProductsExportLogEntity = basicProductsExportLogService.selectByGenKey(genKey); // String response = HttpClient.uCloudPost(spsSyncUrl + "/udiwms/basic/products/upload", exportData); String response = httpOkClient.uCloudPost(getIpUrl() + "/spssync/basic/udiinfo/upload", exportData); BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference() { }); if (baseResponse.getCode() == 20000) { basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); } else { basicProductsExportLogEntity.setRemark(baseResponse.getMessage()); basicProductsExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); } basicProductsExportLogService.updateUdiInfoExportLog(basicProductsExportLogEntity); } // // // @Async // public void uploadProductsSmp(String genKey, UdiInfoExportRequest udiInfoExportRequest) { // BasicProductsExportLogEntity udiInfoExportLogEntity = udiInfoExportLogService.selectByGenKey(genKey); // PostUdiInfoRequest postUdiInfoRequest = new PostUdiInfoRequest(); // postUdiInfoRequest.setGenKey(genKey); // //选中导出 // if (udiInfoExportRequest.getUuids() != null && udiInfoExportRequest.getUuids().size() > 0) { // List udiInfoImportDetailEntities = new ArrayList<>(); // List uuids = udiInfoExportRequest.getUuids(); // for (String uuid : uuids) { // FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); // filterUdiInfoRequest.setUuid(uuid); // List genDatas = genSmpData(filterUdiInfoRequest); // udiInfoImportDetailEntities.addAll(genDatas); // } // postUdiInfoRequest.setDatas(udiInfoImportDetailEntities); // // } else {//一键导出 // FilterUdiInfoRequest filterUdiInfoRequest = new FilterUdiInfoRequest(); // BeanUtils.copyProperties(udiInfoExportRequest, filterUdiInfoRequest); // List genDatas = genSmpData(filterUdiInfoRequest); // postUdiInfoRequest.setDatas(genDatas); // } // //todo 上传SMP //// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("smp_service_ip"); //// if (systemParamConfigEntity != null) { // String response = httpOkClient.uCloudPost(getIpUrl() + "/udiwms/basic/products/upload", postUdiInfoRequest); // BaseResponse baseResponse = JSONObject.parseObject(response, new TypeReference() { // }); // if (baseResponse.getCode() == 20000) { // udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS); // } else { // udiInfoExportLogEntity.setRemark(baseResponse.getMessage()); // udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); // } //// } else { //// udiInfoExportLogEntity.setRemark("SMP服务IP地址未定义!"); //// udiInfoExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL); //// } // udiInfoExportLogService.updateUdiInfoExportLog(udiInfoExportLogEntity); // } // public List> genExcelData(BasicUnitMaintainFilterRequest filterUdiInfoRequest) { List> excelData = new ArrayList<>(); List unitMaintainEntities = basicUnitMaintainService.filterList(filterUdiInfoRequest); for (BasicCorpEntity basicUnitMaintainEntity : unitMaintainEntities) { List rows = new ArrayList<>(); rows.add(basicUnitMaintainEntity.getErpId()); rows.add(basicUnitMaintainEntity.getName()); rows.add(basicUnitMaintainEntity.getSpell()); rows.add(basicUnitMaintainEntity.getAddr()); rows.add(basicUnitMaintainEntity.getContact()); rows.add(basicUnitMaintainEntity.getMobile()); rows.add(basicUnitMaintainEntity.getCreditNo()); rows.add(String.valueOf(basicUnitMaintainEntity.getStatus())); rows.add(basicUnitMaintainEntity.getType()); rows.add(basicUnitMaintainEntity.getThirdId()); rows.add(basicUnitMaintainEntity.getThirdName()); rows.add(basicUnitMaintainEntity.getThirdId1()); rows.add(basicUnitMaintainEntity.getThirdName1()); rows.add(basicUnitMaintainEntity.getThirdId2()); rows.add(basicUnitMaintainEntity.getThirdName2()); rows.add(basicUnitMaintainEntity.getThirdId3()); rows.add(basicUnitMaintainEntity.getThirdName3()); rows.add(basicUnitMaintainEntity.getThirdId4()); rows.add(basicUnitMaintainEntity.getThirdName4()); excelData.add(rows); } return excelData; } // // public List> genExcelData(FilterUdiInfoRequest filterUdiInfoRequest) { // // List> excelData = new ArrayList<>(); // List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); // for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { // List rows = new ArrayList<>(); // if (udiRelevanceResponse.getProductType() == ConstantStatus.PRODUCT_TYPE_THIRD) // rows.add(null); // else // rows.add(udiRelevanceResponse.getNameCode()); // rows.add(udiRelevanceResponse.getYbbm()); // rows.add(udiRelevanceResponse.getSptm()); // rows.add(udiRelevanceResponse.getThirdId()); // rows.add(udiRelevanceResponse.getThirdId1()); // rows.add(udiRelevanceResponse.getThirdId2()); // rows.add(udiRelevanceResponse.getThirdId3()); // rows.add(udiRelevanceResponse.getThirdId4()); // if (udiRelevanceResponse.getIsUseDy() == 1) { // rows.add("是"); // } else { // rows.add("否"); // } // excelData.add(rows); // } // return excelData; // } // // public List genSmpData(FilterUdiInfoRequest filterUdiInfoRequest) { // List udiInfoImportDetailEntities = new ArrayList<>(); // List udiRelevanceResponses = udiRelevanceService.filterUdiRelevance(filterUdiInfoRequest); // for (UdiRelevanceResponse udiRelevanceResponse : udiRelevanceResponses) { // BasicProductsImportDetailEntity udiInfoImportDetailEntity = new BasicProductsImportDetailEntity(); // udiInfoImportDetailEntity.setUdiCode(udiRelevanceResponse.getNameCode()); // udiInfoImportDetailEntity.setYbbm(udiRelevanceResponse.getYbbm()); // udiInfoImportDetailEntity.setSptm(udiRelevanceResponse.getSptm()); // udiInfoImportDetailEntity.setThirdId(udiRelevanceResponse.getThirdId()); // udiInfoImportDetailEntity.setThirdId1(udiRelevanceResponse.getThirdId1()); // udiInfoImportDetailEntity.setThirdId2(udiRelevanceResponse.getThirdId2()); // udiInfoImportDetailEntity.setThirdId3(udiRelevanceResponse.getThirdId3()); // udiInfoImportDetailEntity.setThirdId4(udiRelevanceResponse.getThirdId4()); // if (udiRelevanceResponse.getIsUseDy() == 1) { // udiInfoImportDetailEntity.setIsUseDy("是"); // } else { // udiInfoImportDetailEntity.setIsUseDy("否"); // } // udiInfoImportDetailEntities.add(udiInfoImportDetailEntity); // } // return udiInfoImportDetailEntities; // } }