Commit 297739e1 by 杨清松

系统启动插入区域公司和相关团队

parent 2dc9815e
package com.xyst.dinas.biz.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.beecode.inz.basis.config.PrepareEventHandlers;
import com.beecode.inz.basis.init.AuthDataInitializer;
import com.beecode.inz.basis.init.DictDataInitializer;
import com.beecode.inz.basis.init.EnterpriseDataInitializer;
import com.xyst.dinas.biz.init.OrganizationDataInitializer;
import com.xyxt.dinas.biz.handler.DinasPrepareEventHandlers;
@Configuration
public class BizDataInitializerConfig {
@Bean
public DinasPrepareEventHandlers prepareEventHandlers() {
return new DinasPrepareEventHandlers();
}
@Bean("com.xyst.dinas.biz.init.OrganizationDataInitializer")
public OrganizationDataInitializer organizationDataInitializer(){
return new OrganizationDataInitializer();
}
}
......@@ -13,4 +13,6 @@ public interface DinasOrganizationDao {
void save(KObject kObject);
List<Map<String, Object>> queryOrganizationByStaffId(UUID uuid);
List<KObject> queryFollowerByStaffId(UUID id);
}
......@@ -12,12 +12,15 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.dao.StaffDAO;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.init.DataInitializer;
import com.beecode.inz.basis.init.exception.DataInitException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xyst.dinas.biz.constant.DinasOrganizationConstant;
import com.xyst.dinas.biz.dao.DinasOrganizationDao;
import com.xyst.dinas.biz.service.DinasOrganizationService;
public class OrganizationDataInitializer implements DataInitializer {
......@@ -25,29 +28,40 @@ public class OrganizationDataInitializer implements DataInitializer {
@Autowired
private DinasOrganizationService dinasOrganizationService;
@Autowired
private DinasOrganizationDao dinasOrganizationDao;
@Autowired
private StaffDAO staffDAO;
private ObjectMapper objectMapper = new ObjectMapper();
@Value(value="classpath*:/com/beecode/inz/basis/organization/groupData.json")
private Resource organizationData;
private Resource[] organizationData;
@Value("${beecode.tenant.username:}")
private String userName;
@Override
public void init() {
OrganizationDataInfo dictDataInfo = objectMapper.convertValue(load(organizationData), OrganizationDataInfo.class);
OrganizationDataInfo dictDataInfo = objectMapper.convertValue(load(organizationData[0]), OrganizationDataInfo.class);
try {
KClass organizationKClass = Amino.getApplicationMetadataContext().getBean(dictDataInfo.getName(), KClass.class);
KObject organization = organizationKClass.newInstance();
HashMap<String, String> data = dictDataInfo.getData();
KObject kObject = toKObject(organization, data);
if (dinasOrganizationService.queryOrganizationByName(kObject.getString("name")) == null) {
//新增集团
kObject.set("createTime", new Date());
dinasOrganizationService.save(kObject);
}
}catch(Exception e) {
e.printStackTrace();
KClass organizationKClass = Amino.getApplicationMetadataContext().getBean(dictDataInfo.getName(), KClass.class);
KObject organization = organizationKClass.newInstance();
HashMap<String, String> data = dictDataInfo.getData();
KObject kObject = toKObject(organization, data);
if (dinasOrganizationService.queryOrganizationByName(kObject.getString("name")) == null) {
//新增集团
kObject.set("id", UUID.randomUUID());
kObject.set("createTime", new Date());
dinasOrganizationService.save(kObject);
saveFollower(kObject);
} else{
KObject organizationByName = dinasOrganizationService.queryOrganizationByName(kObject.getString("name"));
saveFollower(organizationByName);
}
} catch(Exception e) {
e.printStackTrace();
}
}
......@@ -58,6 +72,19 @@ public class OrganizationDataInitializer implements DataInitializer {
return kObject;
}
private void saveFollower(KObject organization) {
if (dinasOrganizationService.queryFollowerByUserName(userName).size() <= 0) {
List<KObject> staffByUsername = staffDAO.listStaffByUsername(userName);
KClass organizationFollowerKClass = Amino.getApplicationMetadataContext().getBean(DinasOrganizationConstant.ORGANIZATION_FOLLOWER_ENTITY, KClass.class);
KObject organizationFollower = organizationFollowerKClass.newInstance();
organizationFollower.set("following", organization);
organizationFollower.set("member", staffByUsername.get(0));
organizationFollower.set("readonly", true);
organizationFollower.set("role", "普通成员");
dinasOrganizationService.save(organizationFollower);
}
}
private JsonNode load(Resource resource){
try {
return objectMapper.readTree(resource.getInputStream());
......
......@@ -89,4 +89,18 @@ public class DinasOrganizationDaoImpl implements DinasOrganizationDao, DinasOrga
}
@Override
public List<KObject> queryFollowerByStaffId(UUID id) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@SuppressWarnings("unchecked")
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery(" from " + ORGANIZATION_FOLLOWER_ENTITY + " as f where f.member.id =:id ", KObject.class);
query.setParameter("id", id);
return query.getResultList();
}
});
}
}
......@@ -41,6 +41,14 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService {
return ResponseObj.success("查询成功", organizations);
}
@Override
public List<KObject> queryFollowerByUserName(String name) {
List<KObject> staffByUsername = staffDAO.listStaffByUsername(name);
KObject staff = staffByUsername.get(0);
List<KObject> list = dinasOrganizationDao.queryFollowerByStaffId(staff.getUuid("id"));
return list;
}
}
package com.xyst.dinas.biz.service;
import java.util.List;
import com.beecode.bcp.type.KObject;
public interface DinasOrganizationService {
......@@ -9,4 +11,6 @@ public interface DinasOrganizationService {
void save(KObject kObject);
Object queryOrganizationByUserName(String name);
List<KObject> queryFollowerByUserName(String name);
}
/**
*
*/
package com.xyxt.dinas.biz.handler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.event.EventListener;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.bap2.common.event.PrepareEvent;
import com.xyst.dinas.biz.init.OrganizationDataInitializer;
public class DinasPrepareEventHandlers {
@Autowired
@Qualifier("com.xyst.dinas.biz.init.OrganizationDataInitializer")
private OrganizationDataInitializer organizationDataInitializer;
@EventListener
@Transactional
public void prepareListener(PrepareEvent event) {
organizationDataInitializer.init();
}
}
......@@ -5,4 +5,5 @@ com.xyst.dinas.biz.config.DinasTypeConfiguration,\
com.xyst.dinas.biz.config.ShipConfiguration,\
com.xyst.dinas.biz.config.CameraConfiguration,\
com.xyst.dinas.biz.config.SceneConfiguration,\
com.xyst.dinas.biz.config.DinasOrganizationConfig
\ No newline at end of file
com.xyst.dinas.biz.config.DinasOrganizationConfig,\
com.xyst.dinas.biz.config.BizDataInitializerConfig
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment