Commit 14ccddb8 by 杨清松

岗位管理

parent 6744c315
package com.xyst.dinas.biz.constant;
public interface PositionConstant {
/**
* 实体名
*/
String ENTITY = "com.xyst.dinas.biz.datamodel.Position";
}
package com.xyst.dinas.biz.dao;
import java.util.List;
import java.util.UUID;
import com.beecode.bcp.type.KObject;
public interface PositionDao {
void save(KObject kObject);
KObject load(UUID fromString);
void update(KObject kObject);
List<KObject> queryPositionByDept(UUID uuid);
}
package com.xyst.dinas.biz.internal.dao;
import java.util.List;
import java.util.UUID;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.orm.hibernate5.HibernateOperations;
import com.beecode.bcp.type.KObject;
import com.xyst.dinas.biz.constant.PositionConstant;
import com.xyst.dinas.biz.dao.PositionDao;
public class PositionDaoImpl implements PositionDao, PositionConstant {
@Autowired
private HibernateOperations template;
@Override
public void save(KObject kObject) {
template.save(kObject);
}
@Override
public KObject load(UUID id) {
return (KObject) template.load(ENTITY, id);
}
@Override
public void update(KObject kObject) {
template.update(kObject);
}
@Override
public List<KObject> queryPositionByDept(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 "+ ENTITY + " where (discard is null or discard = 0) and regionalCompany.id =:id", KObject.class);
query.setParameter("id", id);
return query.getResultList();
}
});
}
}
package com.xyst.dinas.biz.internal.service;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino;
import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject;
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.PositionService;
public class PositionServiceImpl implements PositionService, PositionConstant {
@Autowired
private PositionDao positionDao;
@Override
@Transactional
public Object saveAndUpdate(JSONObject jsonObject) {
try{
KObject staff = AminoContextHolder.getContext().getStaff();
//当前登录人所在区域公司
KObject department = staff.get("department");
if (jsonObject.isNull("id") || StringUtils.isEmpty(jsonObject.getString("id"))) {
//新建
KClass kClass = Amino.getApplicationMetadataContext().getBean(ENTITY, KClass.class);
KObject kObject = JSONObjectUtils.toObject(jsonObject.toString(), kClass);
kObject.set("id", UUID.randomUUID());
kObject.set("creator", staff);
kObject.set("createTime", new Date());
kObject.set("regionalCompany", department);
positionDao.save(kObject);
} else {
//编辑
KObject kObject = positionDao.load(UUID.fromString(jsonObject.getString("id")));
kObject.set("modifyTime", new Date());
kObject.set("modifier", staff);
kObject.set("name", jsonObject.getString("name"));
kObject.set("description", jsonObject.getString("description"));
positionDao.update(kObject);
}
return ResponseObj.success();
} catch(Exception e){
e.printStackTrace();
return ResponseObj.error(e.getMessage());
}
}
@Override
public Object queryPositionByDept() {
KObject staff = AminoContextHolder.getContext().getStaff();
KObject department = staff.get("department");
List<KObject> positionList = positionDao.queryPositionByDept(department.getUuid("id"));
return ResponseObj.success("操作成功", positionList);
}
}
package com.xyst.dinas.biz.service;
import org.json.JSONObject;
public interface PositionService {
Object saveAndUpdate(JSONObject jsonObject);
Object queryPositionByDept();
}
package com.xyst.dinas.biz.web;
import java.util.UUID;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.xyst.dinas.biz.service.PositionService;
@RestController
public class PositionController {
@Autowired
private PositionService positionService;
@ResponseBody
@RequestMapping(value = "/biz/position/saveAndUpdate", method = RequestMethod.POST, consumes = "application/json")
public Object saveAndUpdate(@RequestBody String body) {
return positionService.saveAndUpdate(new JSONObject(body));
}
/**
* @Description: 根据当前登录人部门查询岗位
* @param id
* @return return_type
* @throws
*/
@ResponseBody
@RequestMapping(value = "/biz/position/queryPositionByDept", method = RequestMethod.GET)
public Object queryPositionByDept() {
return positionService.queryPositionByDept();
}
}
<model>
<header>
<type>bcp.biz.Bill</type>
<package>com.xyst.dinas.biz.bill</package>
<title>岗位</title>
<name>Position</name>
<description>岗位</description>
</header>
<content>
<bill>
<data>
{"baseData":{"name":"Position","title":"岗位","billModel":"com.beecode.bap.biztrait.BasicBillBiztrait","functionLibrarys":[],"description":"岗位","dataModel":"com.xyst.dinas.biz.datamodel.Position"},"serial":{"serialData":[{"segment":"literal","segmentData":"EM"},{"segment":"sequence","segmentData":{"start-with":0,"increment":1,"min":0,"max":99999,"length":5,"cycle":true,"cut-direction":"left","pad-string":"0","pad-direction":"left","cache-size":10}}],"buildTime":"add"},"formula":[],"workflow":{"workflow":"","processParamConfig":[]},"print":[],"authority":[]}
</data>
</bill>
</content>
</model>
\ No newline at end of file
<model>
<header>
<type>bcp.type.DataModel</type>
<package>com.xyst.dinas.biz.datamodel</package>
<title>岗位</title>
<name>Position</name>
<tags></tags>
<description>岗位</description>
<templateName>mk.ide.ui.editor.data.model.template.bill</templateName>
<tablePrefix>xyst_dinas_</tablePrefix>
</header>
<content>
<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'>
<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'>
</annotation>
</attribute>
<attribute id='cbb5b983-299b-4259-97d9-6470651bb18b' name='name' columnName='name' title='岗位名称' type='string' default='' precision='' isArray='false'>
<annotation id='ea154cb8-f939-4e9f-9793-9673d984161f' attributeId='ffc0a199-4038-4ebf-a94f-a0f12bfc76dd' name='length' value='50'>
</annotation>
</attribute>
<attribute id='0933ceb1-f327-4372-a316-cffa1c80991a' name='description' columnName='description' title='描述' type='string' default='' precision='' isArray='false'>
<annotation id='6f08f4ca-1f77-4ed4-a627-0fb8843959fa' attributeId='dfbeaa83-63dc-4638-b55a-8dda62d74dd4' name='length' value='500'>
</annotation>
</attribute>
<hibernate>/xyst.dinas.biz/src/main/resources/config/Position.hbm.xml</hibernate>
</dataModel>
</content>
</model>
\ No newline at end of file
<model>
<header>
<type>inz.query.Query</type>
<package>com.xyst.dinas.biz.query</package>
<name>Position</name>
<title>岗位</title>
<tags></tags>
<description>岗位</description>
</header>
<content>
<customQuery id='241a1768-8db1-4ebe-a299-f07a2a69cca3'>
<kclass>com.xyst.dinas.biz.datamodel.Position</kclass>
<authorityItem>com.xyst.dinas.biz.auth.PositionList</authorityItem>
<innerScene title='全部'>
<id>ff924d2d-ce4b-4acb-a123-211a923a03d8</id>
<javaImplement>com.beecode.inz.common.scene.CommonAllScene</javaImplement>
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<innerScene title='已废弃'>
<id>15aa9bba-a2a7-4fb4-ac74-4477e3429cee</id>
<javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</javaImplement>
<defaultExecute></defaultExecute>
<hide></hide>
</innerScene>
<field title='id'>
<name>id</name>
<type>uuid</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='区域公司id'>
<name>department.id</name>
<type>uuid</type>
<ref>
<type></type>
<name>com.beecode.bap.department.datamodel.Department</name>
</ref>
<description></description>
</field>
<field title='区域公司名称'>
<name>department.name</name>
<type>string</type>
<ref>
<type></type>
<name>com.beecode.bap.department.datamodel.Department</name>
</ref>
<description></description>
</field>
<field title='创建时间'>
<name>createTime</name>
<type>datetime</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='创建人'>
<name>creator.name</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='修改时间'>
<name>modifyTime</name>
<type>datetime</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='修改人'>
<name>modifier.name</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='废弃'>
<name>discard</name>
<type>boolean</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='名称'>
<name>name</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
<field title='描述'>
<name>description</name>
<type>string</type>
<ref>
<type></type>
<name></name>
</ref>
<description></description>
</field>
</customQuery>
</content>
</model>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-sequence">
<specification>1.0</specification>
<id>12eab197-5cc0-4dbf-96ab-eecd0b13232c</id>
<name>com.xyst.dinas.biz.bill.Position$sequence</name>
<title>岗位$sequence</title>
<description>岗位</description>
<define>bcp.sequence</define>
<define-version>1.0</define-version>
<content>
<m:sequence>
<m:start-with>0</m:start-with>
<m:increment>1</m:increment>
<m:max>99999</m:max>
<m:min>0</m:min>
<m:cycle>true</m:cycle>
<m:cache-size>10</m:cache-size>
</m:sequence>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-serial">
<specification>1.0</specification>
<id>e54c3a90-a21c-489b-ab55-cda37706e8e5</id>
<name>com.xyst.dinas.biz.bill.Position$serial</name>
<title>岗位$serial</title>
<description>岗位</description>
<define>bcp.serial</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.Position</dependency>
<dependency>com.xyst.dinas.biz.bill.Position$sequence</dependency>
<content>
<m:serial>
<m:input>com.xyst.dinas.biz.datamodel.Position</m:input>
<m:functionLibrarys/>
<m:segments>
<m:literal>
<m:value>EM</m:value>
</m:literal>
<m:sequence>
<m:length>5</m:length>
<m:pad-direction>left</m:pad-direction>
<m:pad-string>0</m:pad-string>
<m:key>com.xyst.dinas.biz.bill.Position$serial</m:key>
<m:sequenceName>com.xyst.dinas.biz.bill.Position$sequence</m:sequenceName>
</m:sequence>
</m:segments>
</m:serial>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-biztype">
<specification>1.0</specification>
<id>5cd3ab7c-6fab-41f9-9921-780195eb24a2</id>
<name>com.xyst.dinas.biz.bill.Position</name>
<title>岗位</title>
<description>岗位</description>
<define>bcp.biz.Biztype</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.bill.Position$serial</dependency>
<dependency>com.xyst.dinas.biz.datamodel.Position</dependency>
<dependency>com.beecode.bap.biztrait.BasicBillBiztrait</dependency>
<content>
<m:biztype>
<m:type>com.xyst.dinas.biz.datamodel.Position</m:type>
<m:inheritances>
<m:inheritance>
<m:biztrait>com.beecode.bap.biztrait.BasicBillBiztrait</m:biztrait>
<m:config type="xml">
<m:content>&lt;billBasictraitConfig&gt;&lt;formulas/&gt;&lt;parents&gt;&lt;parent&gt;&lt;billCodeConfig&gt;&lt;serialName&gt;com.xyst.dinas.biz.bill.Position$serial&lt;/serialName&gt;&lt;buildTime&gt;add&lt;/buildTime&gt;&lt;/billCodeConfig&gt;&lt;/parent&gt;&lt;parent&gt;&lt;workflowConfig&gt;&lt;workflow&gt;&lt;/workflow&gt;&lt;/workflowConfig&gt;&lt;/parent&gt;&lt;parent&gt;&lt;printConfig&gt;&lt;templates/&gt;&lt;/printConfig&gt;&lt;/parent&gt;&lt;/parents&gt;&lt;functionLibrarys/&gt;&lt;/billBasictraitConfig&gt;</m:content>
</m:config>
</m:inheritance>
</m:inheritances>
<m:methodAuthorityItems/>
</m:biztype>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/bcp-type">
<specification>1.0</specification>
<id>235230b3-0e48-46b9-bc48-07e750f16722</id>
<name>com.xyst.dinas.biz.datamodel.Position</name>
<title>岗位</title>
<description>岗位</description>
<define>bcp.type.Class</define>
<define-version>1.0</define-version>
<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>
<m:parent>com.beecode.bap.biztrait.datamodel.BasicBillRequirement</m:parent>
<m:parent>com.beecode.inz.common.datamodel.BaseInfo</m:parent>
</m:parents>
<m:attributes>
<m:attribute>
<m:annotations/>
<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:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
<m:value>50</m:value>
</m:annotation>
</m:annotations>
<m:id>cbb5b983-299b-4259-97d9-6470651bb18b</m:id>
<m:name>name</m:name>
<m:title>岗位名称</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
<m:attribute>
<m:annotations>
<m:annotation>
<m:type>bcp.type.constraint.StringLength</m:type>
<m:value>500</m:value>
</m:annotation>
</m:annotations>
<m:id>0933ceb1-f327-4372-a316-cffa1c80991a</m:id>
<m:name>description</m:name>
<m:title>描述</m:title>
<m:type>string</m:type>
<m:description></m:description>
<m:default></m:default>
</m:attribute>
</m:attributes>
</m:class>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.beecode.cn/schema/amino-metadata" xmlns:m="http://www.beecode.cn/schema/inz-query">
<specification>1.0</specification>
<id>241a1768-8db1-4ebe-a299-f07a2a69cca3</id>
<name>com.xyst.dinas.biz.query.Position</name>
<title>岗位</title>
<description>岗位</description>
<define>inz.query.Query</define>
<define-version>1.0</define-version>
<dependency>com.xyst.dinas.biz.datamodel.Position</dependency>
<content>
<m:query>
<m:type>com.xyst.dinas.biz.datamodel.Position</m:type>
<m:dataProcessor></m:dataProcessor>
<m:authorityItem>com.xyst.dinas.biz.auth.PositionList</m:authorityItem>
<m:innerScenes>
<m:innerScene>
<m:id>ff924d2d-ce4b-4acb-a123-211a923a03d8</m:id>
<m:title>全部</m:title>
<m:javaImplement>com.beecode.inz.common.scene.CommonAllScene</m:javaImplement>
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
<m:innerScene>
<m:id>15aa9bba-a2a7-4fb4-ac74-4477e3429cee</m:id>
<m:title>已废弃</m:title>
<m:javaImplement>com.beecode.inz.common.scene.DefaultDiscardScene</m:javaImplement>
<m:defaultExecute></m:defaultExecute>
<m:hide></m:hide>
</m:innerScene>
</m:innerScenes>
<m:fields>
<m:field>
<m:name>id</m:name>
<m:title>id</m:title>
<m:type>uuid</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>department.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:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>department.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:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>createTime</m:name>
<m:title>创建时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>creator.name</m:name>
<m:title>创建人</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>modifyTime</m:name>
<m:title>修改时间</m:title>
<m:type>datetime</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>modifier.name</m:name>
<m:title>修改人</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>discard</m:name>
<m:title>废弃</m:title>
<m:type>boolean</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>name</m:name>
<m:title>名称</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
<m:field>
<m:name>description</m:name>
<m:title>描述</m:title>
<m:type>string</m:type>
<m:ref>
<m:name></m:name>
<m:type></m:type>
</m:ref>
<m:desc></m:desc>
</m:field>
</m:fields>
</m:query>
</content>
</metadata>
<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping xmlns="http://www.hibernate.org/xsd/hibernate-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-mapping
http://www.hibernate.org/xsd/hibernate-mapping/hibernate-mapping-4.0.xsd">
<class entity-name="com.xyst.dinas.biz.datamodel.Position" table="xyst_dinas_position" optimistic-lock="version">
<tuplizer entity-mode="dynamic-map" class="com.beecode.bcp.store.hibernate.KObjectEntityTuplizer"/>
<id name="id" type="uuid-binary" column="id" length="16">
<generator class="assigned" />
</id>
<version name="version" type="int" column="version"/>
<property name="createTime" type="timestamp" not-null="false">
<column name="create_time"></column>
</property>
<many-to-one name="creator" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="creator_id" not-null="false"/>
</many-to-one>
<property name="modifyTime" type="timestamp" not-null="false">
<column name="modify_time"></column>
</property>
<many-to-one name="modifier" entity-name="com.beecode.bap.staff.datamodel.Staff" fetch="select">
<column name="modifier_id" not-null="false"/>
</many-to-one>
<property name="billState" type="nstring" not-null="false">
<column name="bill_state" length="100"></column>
</property>
<many-to-one name="bizProcess" entity-name="com.beecode.bap.workflow.datamodel.BizProcess" fetch="select">
<column name="biz_process_id" not-null="false"/>
</many-to-one>
<property name="billCode" type="nstring" not-null="false">
<column name="bill_code" length="200"></column>
</property>
<property name="discard" type="boolean" not-null="false">
<column name="discard"></column>
</property>
<property name="del" type="boolean" not-null="false">
<column name="del"></column>
</property>
<property name="approveState" type="integer" not-null="false">
<column name="approve_state"></column>
</property>
<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">
<column name="regional_company" not-null="false"/>
</many-to-one>
<property name="description" type="nstring" not-null="false">
<column name="description" length="500"></column>
</property>
</class>
</hibernate-mapping>
\ No newline at end of file
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