Commit e2d1d0e7 by shiwenbo

新建区域公司时自动新建同名的部门与其关联

parent 3d841a3a
...@@ -4,10 +4,9 @@ import java.util.Date; ...@@ -4,10 +4,9 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.UUID;
import com.beecode.inz.common.BaseConstants;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
...@@ -18,10 +17,10 @@ import com.beecode.bcp.type.KClass; ...@@ -18,10 +17,10 @@ import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.beecode.inz.basis.init.DataInitializer; import com.beecode.inz.basis.init.DataInitializer;
import com.beecode.inz.basis.init.exception.DataInitException; import com.beecode.inz.basis.init.exception.DataInitException;
import com.beecode.inz.common.BaseConstants;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.xyst.dinas.biz.constant.DinasOrganizationConstant; import com.xyst.dinas.biz.constant.DinasOrganizationConstant;
import com.xyst.dinas.biz.dao.DinasOrganizationDao;
import com.xyst.dinas.biz.service.DinasOrganizationService; import com.xyst.dinas.biz.service.DinasOrganizationService;
public class OrganizationDataInitializer implements DataInitializer { public class OrganizationDataInitializer implements DataInitializer {
...@@ -30,9 +29,6 @@ public class OrganizationDataInitializer implements DataInitializer { ...@@ -30,9 +29,6 @@ public class OrganizationDataInitializer implements DataInitializer {
private DinasOrganizationService dinasOrganizationService; private DinasOrganizationService dinasOrganizationService;
@Autowired @Autowired
private DinasOrganizationDao dinasOrganizationDao;
@Autowired
private StaffDAO staffDAO; private StaffDAO staffDAO;
private ObjectMapper objectMapper = new ObjectMapper(); private ObjectMapper objectMapper = new ObjectMapper();
...@@ -57,6 +53,7 @@ public class OrganizationDataInitializer implements DataInitializer { ...@@ -57,6 +53,7 @@ public class OrganizationDataInitializer implements DataInitializer {
kObject.set(BaseConstants.CREATE_TIME, new Date()); kObject.set(BaseConstants.CREATE_TIME, new Date());
dinasOrganizationService.save(kObject); dinasOrganizationService.save(kObject);
saveFollower(kObject); saveFollower(kObject);
dinasOrganizationService.createRelDepartment(kObject.getUuid("id"));
} else{ } else{
KObject organizationByName = dinasOrganizationService.queryOrganizationByName(kObject.getString("name")); KObject organizationByName = dinasOrganizationService.queryOrganizationByName(kObject.getString("name"));
saveFollower(organizationByName); saveFollower(organizationByName);
......
package com.xyst.dinas.biz.internal.service; package com.xyst.dinas.biz.internal.service;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import javax.transaction.Transactional;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.beecode.amino.core.Amino;
import com.beecode.bap.department.service.DepartmentService;
import com.beecode.bap.department.util.ChineseToEnglishUtil;
import com.beecode.bap.staff.BapContext; import com.beecode.bap.staff.BapContext;
import com.beecode.bap.staff.dao.StaffDAO; import com.beecode.bap.staff.dao.StaffDAO;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj; import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.biz.dao.DinasOrganizationDao; import com.xyst.dinas.biz.dao.DinasOrganizationDao;
import com.xyst.dinas.biz.service.DinasOrganizationService; import com.xyst.dinas.biz.service.DinasOrganizationService;
...@@ -25,6 +35,9 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService { ...@@ -25,6 +35,9 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService {
@Autowired @Autowired
public BapContext bapContext; public BapContext bapContext;
@Autowired
public DepartmentService departmentService;
@Override @Override
public KObject queryOrganizationByName(String name) { public KObject queryOrganizationByName(String name) {
return dinasOrganizationDao.queryOrganizationByName(name); return dinasOrganizationDao.queryOrganizationByName(name);
...@@ -81,4 +94,37 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService { ...@@ -81,4 +94,37 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService {
return UUID.fromString(obj.getString("id")); return UUID.fromString(obj.getString("id"));
} }
@Override
@Transactional
public UUID createRelDepartment(UUID id) {
KObject kobj = dinasOrganizationDao.load(id);
KObject quangongsi = departmentService.getByName("全公司").get(0);
KObject department = Amino.getApplicationMetadataContext().getBean("com.beecode.bap.department.datamodel.Department", KClass.class).newInstance();
department.set("name", kobj.getString("name"));
department.set("shortname", ChineseToEnglishUtil.getPinYinHeadChar(kobj.getString("name")));
department.set("code", departmentService.getLastDeptCode());
department.set("parentId", quangongsi.getUuid("id"));
department.set("orgId", quangongsi.getUuid("orgId"));
department.set("level", 1);
department.set("createTime", new Date());
department.set("createUser", getCurrentLoginStaff().getUuid("id"));
department.set("paths", quangongsi.getString("paths") + "$" + department.getUuid("id"));
department.set("enable", true);
departmentService.create(department);
kobj.set("department", department);
dinasOrganizationDao.save(kobj);
return department.getUuid("id");
}
private KObject getCurrentLoginStaff(){
String currentStaff = (String) ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest().getSession().getAttribute("currentStaff");
if (null == currentStaff || currentStaff.trim().length() == 0 ) {
throw new RuntimeException("从session中获取职员失败");
}
KClass kClass = Amino.getApplicationMetadataContext().getBean("com.beecode.bap.staff.datamodel.Staff",
KClass.class);
KObject staff = JSONObjectUtils.toObject(currentStaff, kClass);
return staff;
}
} }
...@@ -28,4 +28,6 @@ public interface DinasOrganizationService { ...@@ -28,4 +28,6 @@ public interface DinasOrganizationService {
UUID getCurrentRegionalCompanyId(); UUID getCurrentRegionalCompanyId();
UUID createRelDepartment(UUID id);
} }
...@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.biz.service.DinasOrganizationService; import com.xyst.dinas.biz.service.DinasOrganizationService;
@RestController @RestController
...@@ -43,4 +44,16 @@ public class DinasOrganizationController { ...@@ -43,4 +44,16 @@ public class DinasOrganizationController {
public Object queryPositionIsUse(@PathVariable("id") String id) { public Object queryPositionIsUse(@PathVariable("id") String id) {
return dinasOrganizationService.queryStaffByRegionalCompany(UUID.fromString(id)); return dinasOrganizationService.queryStaffByRegionalCompany(UUID.fromString(id));
} }
/**
* 根据区域公司自动生成对应的部门并关联起来
* @param id 区域公司id
* @return
*/
@ResponseBody
@RequestMapping(value = "/dinasBiz/organization/createRelDepartment", method = RequestMethod.POST, consumes = "application/json")
public Object createRelDepartment(@RequestBody String body) {
String id = new JSONObject(body).getString("id");
return ResponseObj.success("关联部门生成成功", dinasOrganizationService.createRelDepartment(UUID.fromString(id)));
}
} }
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