MyTetra Share
Делитесь знаниями!
1
Время создания: 24.12.2020 22:56
Раздел: INFO - JOB - rtneo - Работа над задачами - Объединение контрагентов
Запись: wwwlir/Tetra/master/base/1608821808jg855cwt6b/text.html на raw.githubusercontent.com

import com.groupstp.rtneo.entity.*;

import com.haulmont.cuba.core.entity.*;

import com.haulmont.cuba.core.global.*;

import com.groupstp.rtneo.service.*;

import com.groupstp.rtneo.core.bean.*;

import java.text.SimpleDateFormat;

import com.haulmont.cuba.core.global.ViewRepository;


SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy")

ViewRepository vRep = AppBeans.get(ViewRepository.NAME)


View renterView = getRenterView(vRep)

View creView = getCREView(vRep)


def inn = '3808096980'

def contragent = dataManager.load(Contragent.class).query('select c from rtneo$Contragent c where c.inn = :inn').parameter("inn", inn).one()

def inns = ['3808230890', '3849079510', '3810031323', '3801060504', '3825004185',

'3814001520', '3830905900', '3837001661', '3816005640',

'3819011201', '3820007055', '3821010406', '8506008175']

def cres = dataManager.load(ContragentRealEstate.class)

.query('select cre from rtneo$ContragentRealEstate cre join rtneo$Contragent c on cre.contragent.id = c.id where c.inn in :inns')

.parameter("inns", inns)

.view(creView)

.list()


_(contragent)

cres.each{_(it)}


CommitContext ctx = new CommitContext()


_(df.parse('30-12-2020').compareTo(df.parse('31-12-2020')))


for(def cre : cres){

//Не переносим объекты которые не действительны в 21 году

if(cre.getValidityTo() != null && cre.getValidityTo().compareTo(df.parse('31-12-2020')) <= 0)continue

def new_cre = metadata.getTools().copy(cre)

new_cre.setId(UUID.randomUUID())

new_cre.setValidityFrom(df.parse('01-01-2021'))

new_cre.setContragent(contragent)

new_cre.setCheckProcessing(false)

cre.setValidityTo(df.parse('31-12-2020'))

ctx.addInstanceToCommit(new_cre)

ctx.addInstanceToCommit(cre)

_(new_cre, "json")

for(def cy : cre.getContainerYards()){

def new_cy = metadata.getTools().copy(cy)

new_cy.setId(UUID.randomUUID())

new_cy.setContragentRealEstate(new_cre)

_(new_cy)

ctx.addInstanceToCommit(new_cy)

}

def renters = dataManager.load(RealEstateRenter.class)

.query('select r from rtneo$RealEstateRenter r where r.contragentRealEstate.id = :creId')

.parameter("creId", cre.getId())

.view(renterView)

.list()

_("renters ${renters.size()}")

for(def renter : renters){

//Функционал копирования арендаторов не тестировался

if(renter.getRenterRecord().getValidityTo() != null && renter.getRenterRecord().getValidityTo().compareTo(df.parse('31-12-2020')) <= 0)continue

def new_rent = metadata.getTools().copy(renter)

new_rent.setId(UUID.randomUUID())

new_rent.setContragentRealEstate(new_cre)

new_rent.setContragent(contragent)

def new_rrecord = metadata.getTools().copy(renter.getRenterRecord())

new_rrecord.setId(UUID.randomUUID())

new_rrecord.setValidityFrom(df.parse('01-01-2021'))

renter.getRenterRecord().setValidityTo(df.parse('31-12-2020'))

new_rent.setRenterRecord(new_rrecord)

// ctx.addInstanceToCommit(new_rrecord)

// ctx.addInstanceToCommit(new_rent)

_("RENTER -------------------------------- ${new_rent}")

}

// break

}


_(ctx.getCommitInstances())

dataManager.commit(ctx)



View getRenterView(ViewRepository vRep){

return vRep.getView(RealEstateRenter.class, "_local")

.addProperty("contragentRealEstate", vRep.getView(ContragentRealEstate.class, "_local"))

.addProperty("contractFile", vRep.getView(FileDescriptor.class, "_local"))

.addProperty("category", vRep.getView(RealEstateCategory.class, "_local"))

}

View getCREView(ViewRepository vRep){

return vRep.getView(ContragentRealEstate.class, "_local")

.addProperty("containerYards", vRep.getView(RealEstateContainerYard.class, "_local")

.addProperty("containerYard", vRep.getView(ContainerYard.class, "_base"))

)

.addProperty("type", vRep.getView(RealEstateType.class, "_base"))

.addProperty("wasteGenerationProjects", vRep.getView(WasteGenerationProject.class, "_base"))

.addProperty("rentContract", vRep.getView(ContragentFile.class, "_base"))

.addProperty("landlord", vRep.getView(Contragent.class, "_base"))

.addProperty("realEstate", vRep.getView(RealEstate.class, "_base"))

.addProperty("category", vRep.getView(RealEstateCategory.class, "_base"))

.addProperty("apartments", vRep.getView(RealEstateApartment.class, "_base"))

}


/**

* Логирование

*/

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")}

 
MyTetra Share v.0.59
Яндекс индекс цитирования