Commit f340a851 by shiwenbo

修改岗位管理模型依赖

parent 297739e1
......@@ -15,4 +15,6 @@ public interface DinasOrganizationDao {
List<Map<String, Object>> queryOrganizationByStaffId(UUID uuid);
List<KObject> queryFollowerByStaffId(UUID id);
KObject load(UUID id);
}
......@@ -103,4 +103,9 @@ public class DinasOrganizationDaoImpl implements DinasOrganizationDao, DinasOrga
});
}
@Override
public KObject load(UUID id) {
return (KObject) template.load(ORGANIZATION_ENTITY, id);
}
}
......@@ -2,6 +2,7 @@ package com.xyst.dinas.biz.internal.service;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.hibernate.Session;
import org.hibernate.query.Query;
......@@ -49,6 +50,11 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService {
return list;
}
@Override
public KObject load(UUID id) {
return dinasOrganizationDao.load(id);
}
}
......@@ -2,6 +2,7 @@ package com.xyst.dinas.biz.internal.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
......@@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.BapContext;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
......@@ -18,6 +20,7 @@ import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.xyst.dinas.biz.constant.PositionConstant;
import com.xyst.dinas.biz.dao.PositionDao;
import com.xyst.dinas.biz.service.DinasOrganizationService;
import com.xyst.dinas.biz.service.PositionService;
public class PositionServiceImpl implements PositionService, PositionConstant {
......@@ -28,13 +31,19 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
@Autowired
private StaffService staffService;
@Autowired
public BapContext bapContext;
@Autowired
public DinasOrganizationService dinasOrganizationService;
@Override
@Transactional
public Object saveAndUpdate(JSONObject jsonObject) {
try{
KObject staff = AminoContextHolder.getContext().getStaff();
//当前登录人所在区域公司
KObject department = staff.get("department");
KObject currentRegionalCompany = getCurrentLoginRegionalCompany();
if (jsonObject.isNull("id") || StringUtils.isEmpty(jsonObject.getString("id"))) {
//新建
KClass kClass = Amino.getApplicationMetadataContext().getBean(ENTITY, KClass.class);
......@@ -43,30 +52,30 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
kObject.set("id", UUID.randomUUID());
kObject.set("creator", staff);
kObject.set("createTime", new Date());
kObject.set("regionalCompany", department);
kObject.set("regionalCompany", currentRegionalCompany);
positionDao.save(kObject);
} else {
//编辑
KObject kObject = positionDao.load(UUID.fromString(jsonObject.getString("id")));
//如果岗位名称更改,更改已经关联的岗位名称
if (!kObject.getString("name").equals(jsonObject.getString("name"))) {
List<KObject> allStaffByDeptList = staffService.getAllByDept(department.getUuid("id"));
if (allStaffByDeptList.size() > 0 && allStaffByDeptList != null) {
for (int i = 0; i < allStaffByDeptList.size(); i++) {
KObject staffByDept = allStaffByDeptList.get(i);
//如果岗位不为空
if (StringUtils.isNotEmpty(staffByDept.getString("name"))) {
if (kObject.getString("name").equals(staffByDept.getString("duty"))) {
//编辑员工岗位
staffByDept.set("duty", jsonObject.getString("name"));
staffService.modify(staffByDept);
}
}
}
}
}
// if (!kObject.getString("name").equals(jsonObject.getString("name"))) {
// List<KObject> allStaffByDeptList = staffService.getAllByDept(department.getUuid("id"));
// if (allStaffByDeptList.size() > 0 && allStaffByDeptList != null) {
// for (int i = 0; i < allStaffByDeptList.size(); i++) {
// KObject staffByDept = allStaffByDeptList.get(i);
// //如果岗位不为空
// if (StringUtils.isNotEmpty(staffByDept.getString("name"))) {
// if (kObject.getString("name").equals(staffByDept.getString("duty"))) {
// //编辑员工岗位
// staffByDept.set("duty", jsonObject.getString("name"));
// staffService.modify(staffByDept);
// }
//
// }
// }
// }
// }
kObject.set("modifyTime", new Date());
kObject.set("modifier", staff);
kObject.set("name", jsonObject.getString("name"));
......@@ -111,4 +120,18 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
return flag;
}
/**
* 获取当前登录的区域公司
* @return
*/
public KObject getCurrentLoginRegionalCompany() {
Map<String, String> map = bapContext.getCurrentUserDatas();
String currentRegionalCompany = map.get("currentRegionalCompany");
JSONObject obj = new JSONObject(currentRegionalCompany);
KObject regionalCompany = dinasOrganizationService.load(UUID.fromString(obj.getString("id")));
return regionalCompany;
}
}
package com.xyst.dinas.biz.service;
import java.util.List;
import java.util.UUID;
import com.beecode.bcp.type.KObject;
......@@ -13,4 +14,6 @@ public interface DinasOrganizationService {
Object queryOrganizationByUserName(String name);
List<KObject> queryFollowerByUserName(String name);
KObject load(UUID id);
}
......@@ -13,7 +13,7 @@
<dataModel id='235230b3-0e48-46b9-bc48-07e750f16722' multiVersion='' domainInherit='undefined' tableName='xyst_dinas_position'>
<parent>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</parent>
<parent>com.beecode.inz.common.datamodel.BaseInfo</parent>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionalCompany' columnName='regional_company' title='区域公司' type='com.beecode.bap.department.datamodel.Department' default='' precision='' isArray='false'>
<attribute id='c4154a1b-f727-48cf-9ef0-ad1bee512504' name='regionalCompany' columnName='regional_company' title='区域公司' type='com.xyst.dinas.biz.datamodel.Organization' default='' precision='' isArray='false'>
<annotation id='00caecc1-35aa-4342-90c8-250f84609fe4' attributeId='55efd3f5-036a-4ac4-83c9-14e22cf5465a' name='length' value='undefined'>
</annotation>
<annotation id='95a6dd6d-c676-4265-9c8b-d115c13b472f' attributeId='43768653-e259-4b0f-8c9d-8739f030675b' name='mappingType' value='many-to-one'>
......
......@@ -25,7 +25,7 @@
</innerScene>
<innerScene title='权限过滤'>
<id>4a2e48e2-5bdd-467c-bbc3-d31a02f55087</id>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene/javaImplement>
<javaImplement>com.xyst.dinas.biz.scene.XystDinasCommonAllScene</javaImplement>
<defaultExecute>true</defaultExecute>
<hide>true</hide>
</innerScene>
......@@ -39,20 +39,20 @@
<description></description>
</field>
<field title='区域公司id'>
<name>department.id</name>
<name>regionalCompany.id</name>
<type>uuid</type>
<ref>
<type></type>
<name>com.beecode.bap.department.datamodel.Department</name>
<name>com.xyst.dinas.biz.datamodel.Organization</name>
</ref>
<description></description>
</field>
<field title='区域公司名称'>
<name>department.name</name>
<name>regionalCompany.name</name>
<type>string</type>
<ref>
<type></type>
<name>com.beecode.bap.department.datamodel.Department</name>
<name>com.xyst.dinas.biz.datamodel.Organization</name>
</ref>
<description></description>
</field>
......
......@@ -7,10 +7,10 @@
<description>岗位</description>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.Organization</dependency>
<dependency>bcp.type.constraint.StringLength</dependency>
<dependency>com.beecode.inz.common.datamodel.BaseInfo</dependency>
<dependency>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</dependency>
<dependency>com.beecode.bap.department.datamodel.Department</dependency>
<content>
<m:class>
<m:parents>
......@@ -23,7 +23,7 @@
<m:id>c4154a1b-f727-48cf-9ef0-ad1bee512504</m:id>
<m:name>regionalCompany</m:name>
<m:title>区域公司</m:title>
<m:type>com.beecode.bap.department.datamodel.Department</m:type>
<m:type>com.xyst.dinas.biz.datamodel.Organization</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
......
......@@ -48,21 +48,21 @@
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>department.id</m:name>
<m:name>regionalCompany.id</m:name>
<m:title>区域公司id</m:title>
<m:type>uuid</m:type>
<m:ref>
<m:name>com.beecode.bap.department.datamodel.Department</m:name>
<m:name>com.xyst.dinas.biz.datamodel.Organization</m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>department.name</m:name>
<m:name>regionalCompany.name</m:name>
<m:title>区域公司名称</m:title>
<m:type>string</m:type>
<m:ref>
<m:name>com.beecode.bap.department.datamodel.Department</m:name>
<m:name>com.xyst.dinas.biz.datamodel.Organization</m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
......
......@@ -42,7 +42,7 @@
<property name="name" type="nstring" not-null="false">
<column name="name" length="50"></column>
</property>
<many-to-one name="regionalCompany" entity-name="com.beecode.bap.department.datamodel.Department" fetch="select">
<many-to-one name="regionalCompany" entity-name="com.xyst.dinas.biz.datamodel.Organization" fetch="select">
<column name="regional_company" not-null="false"/>
</many-to-one>
<property name="description" type="nstring" not-null="false">
......
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