|
|||||||
Установка категорий из файла
Время создания: 08.04.2021 09:14
Раздел: INFO - JOB - rtneo - Работа над задачами - Категоризация
Запись: wwwlir/Tetra/master/base/1617844472tqm5zib2nq/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
import com.groupstp.rtneo.entity.*; import com.haulmont.cuba.core.global.*; import com.groupstp.rtneo.service.*; import com.haulmont.cuba.core.sys.SecurityContext; import com.haulmont.cuba.core.sys.AppContext; import com.haulmont.cuba.core.entity.FileDescriptor import com.haulmont.cuba.core.app.FileStorageAPI import java.io.InputStream import java.io.InputStreamReader import java.io.ByteArrayOutputStream import org.apache.commons.io.IOUtils import java.nio.charset.StandardCharsets; import com.opencsv.CSVReader; import org.apache.commons.collections.CollectionUtils import java.util.stream.Collectors; import com.haulmont.cuba.core.global.ViewRepository; HashMap<String, RealEstateCategory> category = categoryInit() FileStorageAPI fileStorageAPI=AppBeans.get(FileStorageAPI.NAME); String id='fabf0eb9-cfcd-204c-3cde-e196e89640e1' FileDescriptor fd = dataManager.load(FileDescriptor.class) .id(UuidProvider.fromString(id)) .view(View.MINIMAL) .optional().orElse(null);
if(fd == null){throw new RuntimeException("fileNotFound")} InputStream inputStream=fileStorageAPI.openStream(fd) CSVReader reader = new CSVReader(new InputStreamReader(inputStream, "UTF-8")); List<String> list = reader.readAll().stream().skip(1) // .map{e->e[0]} .collect(Collectors.toList()) //list.each{_(it)} ViewRepository vRep = AppBeans.get(ViewRepository.NAME) View creView = vRep.getView(ContragentRealEstate.class, "_local").addProperty("category", vRep.getView(RealEstateCategory.class, "_local")) for(def item : list){ List<ContragentRealEstate> cres = dataManager.load(ContragentRealEstate.class) .query('select cre from rtneo$ContragentRealEstate cre where cre.contragent.personalAccount = :pa and cre.realEstate.cadastralNumber = :cad and (select count(s) from sec$SessionLogEntry s where s.user.login = cre.contragent.user.login) = 0 and (select count(p) from rtneo$Payment p where p.inn = cre.contragent.inn) = 0') .parameter("pa", item[2]) .parameter("cad", item[0]) .view(creView) .list()
RealEstateCategory reCat = category.get(item[3]) cres.stream() .peek{_(it)} .forEach{ it.setCategory(reCat) // dataManager.commit(it) } } HashMap<String, RealEstateCategory> categoryInit(){ def categories = ["продукты": "99035938-4cb2-7805-137c-463135af7b44", "склад": "e55b4b8a-4540-7917-7e4f-9259fe8ecf24", "баня": "341d6981-1d3f-40f0-1a5d-35e40dd6dcd2", "жилой дом": "98f062f7-f447-0720-103c-f16e1dfce2f5", "гараж": "a0c51642-1951-4f39-b432-7a870e3791a2", "Жилое в СНТ": "e043c039-7061-4330-5e3a-6d76372d4b14", "спецтовары": "5c70978f-2e47-6cd7-b7bc-f3ed125abdcb", "гостиница": "19ddea75-efdc-1183-bceb-079dd66cd95e", "офис": "0a64596e-af08-5239-1b01-3c7bf7481f54", "Нежилое в СНТ": "258aab55-815a-ae9b-c2a7-630e85262263", "кафе": "3fe1c3f2-6d0f-4db1-c72d-7449709e4c98", "салон красоты": "51fd362e-596b-ca2e-6054-c5850f3fc776", "промтовары": "e171f083-544f-3e7c-c573-b89cbffc54ff", "иные": "2d7b41c2-0090-26f4-6284-da0931709a03", "автостоянка": "61ae9a56-6be5-6261-1f51-b4177aa904c3", "СНТ": "258aab55-815a-ae9b-c2a7-630e85262263", "образовательные": "18d6cbcd-7ccb-3bea-f2ee-865e659f3e1c", "квартира": "eab380cd-b05e-6117-ebe2-7ae34ac3542b", "СТО": "beb8d1b1-9726-9fb3-1932-f98472999f63", "столовая": "b2ce997c-b1da-2694-e804-4ce733f4449a", "производство": "183491eb-9ae2-1f69-6f96-0cb88d4895c2", "химчистка": "39c088ea-b886-59a0-cf74-97ccf83933ea", "технические": "11e5097b-7f00-27c8-f989-3cb3d80a2f55"]
HashMap<String, Category> cat = [:] categories.entrySet() .stream() .forEach{ cat.put(it.getKey(), dataManager.load(RealEstateCategory.class).id(UUID.fromString(it.getValue())).one()) } return cat; } /** * Логирование */ import com.haulmont.cuba.core.app.serialization.EntitySerializationAPI; import com.groupstp.rtneo.util.JsonUtil; import java.text.DateFormat; import java.text.SimpleDateFormat; private _(Object obj, String... options){ if(obj == null){log("LOG.ERROR: Object is null!!!");return} if(options.size() == 0){log(obj)} for(def option : options){ if(option.equals("str")){log(obj)} if(option.equals("for")){obj.each({_(it)})} if(option.equals("json")){ EntitySerializationAPI entitySerializationAPI = AppBeans.get(EntitySerializationAPI.NAME) try{log(entitySerializationAPI.toJson(obj))} catch(Exception e){log("LOG.ERROR: JSON entity serialization failed")} } if(option.equals("objJson")){ JsonUtil jsonUtil = AppBeans.get(JsonUtil.NAME) try{log.(jsonUtil.toJson(obj))} catch(Exception e){log("LOG.ERROR: JSON object serialization failed")} } if(option.equals("date")){ DateFormat df = new SimpleDateFormat("dd.MM.yyyy"); try{log(df.format(obj))} catch(Exception e){log("LOG.ERROR: Failed date format")} } } } private log2(Object obj){log.debug(obj)} private log(Object obj){log.result.append("${obj}\n")} |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|