基础对象初始化

yun-zuoyi
alwaysfrin 7 years ago
parent cebf362c5b
commit a208e592bd

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="i3plus-pojo-model" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-base</artifactId>
<dependencies>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-model</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,17 @@
package cn.estsh.i3plus.pojo.base.jpa;
import cn.estsh.i3plus.pojo.base.jpa.factory.BaseRepositoryFactoryBean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
/**
* @Description : jps
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-13 14:55
* @Modify:
**/
//@Configuration
//@EnableJpaRepositories(basePackages = {"cn.estsh.**"}, repositoryFactoryBeanClass = BaseRepositoryFactoryBean.class)//指定自己的工厂类
public class JpaConfig {
}

@ -0,0 +1,206 @@
package cn.estsh.i3plus.pojo.base.jpa.dao;
import cn.estsh.i3plus.pojo.model.common.Pager;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.NoRepositoryBean;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @Description : Repository
* @Reference : jpaRepository
* @Author : alwaysfrin
* @CreateDate : 2018-09-13 10:34
* @Modify:
**/
@NoRepositoryBean
public interface BaseRepository <T, ID extends Serializable> extends JpaRepository<T, ID> {
/**
* <br/>
* idlong0
* uuid
* @param item
*
* @throws Exception
*/
T insert(T item);
/**
*
*
* @param item
*
* @throws Exception
*/
void update(Object... item);
/**
* ql
* @param qlString jpaql
* @param values qlT,
* @return
*/
int executeUpdate(String qlString, Object... values);
/**
* ql
* @param qlString jpaql
* @param params keyqlvalue
* @return
*/
int executeUpdate(String qlString, Map<String, Object> params);
/**
* ql
* @param qlString jpaql
* @param values qlT
* @return
* @throws Exception
*/
int executeUpdate(String qlString, List<Object> values);
/**
*
* @param propName
* @param propValue
*/
public void deleteByProperties(String propName, Object propValue);
/**
*
* @param propName
* @param propValue
*/
public void deleteByProperties(String[] propName, Object[] propValue);
/**
*
* @param conditionName
* @param conditionValue
* @param propertyName
* @param propertyValue
*/
public int updateByProperties(String conditionName, Object conditionValue, String propertyName, Object propertyValue);
/**
*
* @param conditionName
* @param conditionValue
* @param propertyName
* @param propertyValue
*/
public int updateByProperties(String conditionName, Object conditionValue, String[] propertyName, Object[] propertyValue);
/**
*
* @param conditionName
* @param conditionValue
* @param propertyName
* @param propertyValue
*/
public int updateByProperties(String[] conditionName, Object[] conditionValue, String propertyName, Object propertyValue);
/**
*
* @param conditionName
* @param conditionValue
* @param propertyName
* @param propertyValue
*/
public int updateByProperties(String[] conditionName, Object[] conditionValue, String[] propertyName, Object[] propertyValue);
public T getById(long id);
public List<T> list();
public List<T> list(final String hql);
public List<T> listPager(Pager pager);
public List<T> findByPage(final String hql, final int offset,final int pageSize);
public List<T> findByPage(final String hql, final Object[] values, final int offset, final int pageSize);
public List<T> findByProperty(String propertyName, Object value);
public List<T> findByProperty(String[] propertyNames, Object[] values);
public List<T> findByProperty(String propertyName, Object value,String orderByStuff);
public List<T> findByProperty(String[] propertyNames, Object[] values,String orderByStuff);
public T getByProperty(String propertyName, Object value);
public T getByProperty(String[] propertyNames, Object[] values);
public int listCount();
public int findByPropertyCount(String propertyName, Object value);
public int findByPropertyCount(String[] propertyNames, Object[] values);
public List<T> findByPropertyPage(String propertyName, Object value,String orderByStuff,Pager pager);
public List<T> findByPropertyPage(String[] propertyNames, Object[] values,String orderByStuff,Pager pager);
public List<T> findByHql(String hql);
public List<T> findByHqlWhere(String hqlWhere);
public List<T> findByHqlWhere(String hqlWhere,String[] propertyNames, Object[] values,String orderByStuff);
public int findByHqlWhereCount(String hqlWhere,String[] propertyNames, Object[] values);
public List<T> findByHqlWherePage(String hqlWhere, Pager pager,String[] propertyNames, Object[] values,String orderByStuff);
public List<T> findByHqlWherePage(String hqlWhere, Pager pager);
public int findByHqlWhereCount(String hqlWhere);
public int findByHqlCount(String hql);
public int findByHqlCount(String hql,String[] paramName,Object[] paramValue);
public List<T> findByHqlPage(String hql, Pager pager);
public List<T> findByHqlPage(String hql, Pager pager,String[] paramName,Object[] paramValue);
public List findBySql(String sql);
public List<?> findBySql(String sql,Class entity);
public List findBySqlPage(String sql,Pager pager);
public List<?> findBySqlPage(String sql,Class entity,Pager pager);
public int executeSql(String sql);
public int findBySqlCount(String sql);
public double findBySqlSumDouble(String sql,String columnName);
public double findByHqlDouble(String hql);
public long findByHqlLong(String hql);
public List<T> findByHqlTopWhere(String hqlWhere,int topNum);
public List<T> findColumnsByHql(String hql, String hqlWhere, String orderByStuff, Pager pager);
/********************** 多表联查返回Object[]数组根据hql查询翻页信息 开始 ****************************/
public List<Object[]> findByHqlObjects(String hql);
public List<Object[]> findByHqlObjects(String hql,String[] paramName,Object[] paramValue);
public List<Object[]> findByHqlPageObjects(String hql, Pager pager);
public List<Object[]> findByHqlPageObjects(String hql, Pager pager,String[] paramName,Object[] paramValue);
public List<Object[]> findBySqlObjList(String sql);
public List<Object[]> findBySqlObjListByPager(String sql,Pager pager);
}

@ -0,0 +1,770 @@
package cn.estsh.i3plus.pojo.base.jpa.daoimpl;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.base.tool.SnowflakeIdMaker;
import cn.estsh.i3plus.pojo.model.common.Pager;
import org.hibernate.SQLQuery;
import org.hibernate.query.NativeQuery;
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
import org.springframework.util.CollectionUtils;
import javax.persistence.EntityManager;
import javax.persistence.Id;
import javax.persistence.Query;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.util.*;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-13 11:24
* @Modify:
**/
public class BaseRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRepository<T, Serializable>
implements BaseRepository<T, Serializable> {
/**
*
*/
private final EntityManager entityManager;
private Class<T> persistentClass;
public BaseRepositoryImpl(Class<T> tClass, EntityManager em) {
super(tClass, em);
this.entityManager = em;
this.persistentClass = tClass;
}
private void setParameter(Query query, String[] propName, Object[] propValue) {
String name = null;
Object value = null;
for (int i = 0; i < propName.length; i++) {
name = propName[i];
value = propValue[i];
if (value != null) {
if ((value instanceof Object[])) {
query.setParameter(name.replace(".", ""), (Object[]) value);
} else if ((value instanceof Collection)) {
query.setParameter(name.replace(".", ""), (Collection) value);
} else {
query.setParameter(name.replace(".", ""), value);
}
}
}
}
private void appendQL(StringBuffer sb, String[] propName, Object[] propValue) {
String name = null;
Object value = null;
for (int i = 0; i < propName.length; i++) {
name = propName[i];
value = propValue[i];
if (((value instanceof Object[])) || ((value instanceof Collection))) {
Object[] arraySerializable = (Object[]) value;
if ((arraySerializable != null) && (arraySerializable.length > 0)) {
sb.append(" and o." + name + " in (:" + name.replace(".", "") + ")");
}
} else if (value == null) {
sb.append(" and o." + name + " is null ");
} else {
sb.append(" and o." + name + "=:" + name.replace(".", ""));
}
}
}
@Override
public T insert(T item) {
return innerSave(item);
}
@Override
public <S extends T> S save(S entity) {
//复写save方法若id为0或空则新增不然则修改
return (S) innerSave(entity);
}
@Override
public void update(Object... item) {
if (null != item) {
for (Object entity : item) {
entityManager.merge(entity);
}
}
}
@Override
public int executeUpdate(String qlString, Object... values) {
Query query = entityManager.createQuery(qlString);
if (values != null) {
for (int i = 0; i < values.length; i++) {
query.setParameter(i + 1, values[i]);
}
}
return query.executeUpdate();
}
@Override
public int executeUpdate(String qlString, Map<String, Object> params) {
Query query = entityManager.createQuery(qlString);
for (String name : params.keySet()) {
query.setParameter(name, params.get(name));
}
return query.executeUpdate();
}
@Override
public int executeUpdate(String qlString, List<Object> values) {
Query query = entityManager.createQuery(qlString);
for (int i = 0; i < values.size(); i++) {
query.setParameter(i + 1, values.get(i));
}
return query.executeUpdate();
}
@Override
public void deleteByProperties(String propName, Object propValue) {
deleteByProperties(new String[] { propName }, new Object[] { propValue });
}
@Override
public void deleteByProperties(String[] propName, Object[] propValue) {
if ((propName != null) && (propName.length > 0) && (propValue != null) && (propValue.length > 0) && (propValue.length == propName.length)) {
StringBuffer sb = new StringBuffer("delete from " + persistentClass.getName() + " o where ");
appendQL(sb,propName,propValue);
Query query = entityManager.createQuery(sb.toString());
setParameter(query,propName,propValue);
query.executeUpdate();
}else{
throw new IllegalArgumentException("Method deleteByProperties argument is illegal!propName:" + propName + ",propValue:" + propValue);
}
}
@Override
public int updateByProperties(String conditionName, Object conditionValue, String propertyName, Object propertyValue) {
return updateByProperties(new String[] { conditionName }, new Object[] { conditionValue }, new String[] { propertyName }, new Object[] { propertyValue });
}
@Override
public int updateByProperties(String conditionName, Object conditionValue, String[] propertyName, Object[] propertyValue) {
return updateByProperties(new String[] { conditionName }, new Object[] { conditionValue }, propertyName, propertyValue);
}
@Override
public int updateByProperties(String[] conditionName, Object[] conditionValue, String propertyName, Object propertyValue) {
return updateByProperties(conditionName, conditionValue, new String[] { propertyName }, new Object[] { propertyValue });
}
@Override
public int updateByProperties(String[] conditionName, Object[] conditionValue, String[] propertyName, Object[] propertyValue) {
if ((propertyName != null) && (propertyName.length > 0) && (propertyValue != null)
&& (propertyValue.length > 0) && (propertyName.length == propertyValue.length)
&& (conditionValue != null) && (conditionValue.length > 0)) {
StringBuffer sb = new StringBuffer();
sb.append("update " + persistentClass.getName() + " o set ");
for (int i = 0; i < propertyName.length; i++) {
sb.append(propertyName[i] + " = :p_" + propertyName[i] + ",");
}
sb.deleteCharAt(sb.length() - 1);
sb.append(" where ");
appendQL(sb, conditionName, conditionValue);
Query query = entityManager.createQuery(sb.toString());
for (int i = 0; i < propertyName.length; i++) {
query.setParameter("p_" + propertyName[i], propertyValue[i]);
}
setParameter(query, conditionName, conditionValue);
return query.executeUpdate();
} else {
throw new IllegalArgumentException("Method updateByProperties argument is illegal!conditionName:" + conditionName
+ ",conditionValue:" + conditionValue + ",propertyName:" + propertyName + ",propertyValue:" + propertyValue);
}
}
@Override
public T getById(long id) {
return this.getOne(id);
}
@Override
public List<T> list() {
return this.findAll();
}
@Override
public List<T> listPager(Pager pager) {
return entityManager.createQuery("from " + persistentClass.getName())
.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
@Override
public List<T> list(final String hql) {
return entityManager.createQuery(hql).getResultList();
}
@Override
public List<T> findByPage(String hql, int offset, int pageSize) {
return entityManager.createQuery("from " + persistentClass.getName())
.setFirstResult(offset)
.setMaxResults(pageSize)
.getResultList();
}
@Override
public List<T> findByPage(String hql, Object[] values, int offset, int pageSize) {
Query query = entityManager.createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
return query.setFirstResult(offset).setMaxResults(pageSize).getResultList();
}
@Override
public List<T> findByProperty(String propertyName, Object value) {
String queryString = "from " + persistentClass.getSimpleName() + " as model where model." + propertyName + "= :" + propertyName;
return entityManager.createQuery(queryString).setParameter(propertyName, value).getResultList();
}
@Override
public List<T> findByProperty(String[] propertyNames, Object[] values) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model ");
int size = propertyNames.length;
if (size > 0) {
queryString.append("where 1=1 ");
}
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
Query queryObject = entityManager.createQuery(queryString.toString());
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
return queryObject.getResultList();
}
@Override
public List<T> findByProperty(String propertyName, Object value, String orderByStuff) {
String queryString = "from " + persistentClass.getSimpleName() + " as model where model." + propertyName + "= :" + propertyName + " " + orderByStuff;
return entityManager.createQuery(queryString).setParameter(propertyName, value).getResultList();
}
@Override
public List<T> findByProperty(String[] propertyNames, Object[] values, String orderByStuff) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model ");
int size = propertyNames.length;
if (size > 0) {
queryString.append("where 1=1 ");
}
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
queryString.append(" " + orderByStuff);
Query queryObject = entityManager.createQuery(queryString.toString());
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
return queryObject.getResultList();
}
@Override
public T getByProperty(String propertyName, Object value) {
String queryString = "from " + persistentClass.getSimpleName() + " as model where model." + propertyName + "= :" + propertyName;
try {
return (T) entityManager.createQuery(queryString).setParameter(propertyName, value).getSingleResult();
}catch(Exception e){
return null;
}
}
@Override
public T getByProperty(String[] propertyNames, Object[] values) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model ");
int size = propertyNames.length;
if (size > 0) {
queryString.append("where 1=1 ");
}
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
Query queryObject = entityManager.createQuery(queryString.toString());
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
try{
return (T) queryObject.getSingleResult();
}catch(Exception e){
return null;
}
}
@Override
public int listCount() {
return entityManager.createQuery("select count(distinct model) from " + persistentClass.getName() + " as model",Integer.class)
.getSingleResult();
}
@Override
public int findByPropertyCount(String propertyName, Object value) {
String queryString = "select count(distinct model) from " + persistentClass.getName() + " as model where model." + propertyName + "= :" + propertyName;
return entityManager.createQuery(queryString,Integer.class)
.setParameter(propertyName, value)
.getSingleResult();
}
@Override
public int findByPropertyCount(String[] propertyNames, Object[] values) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getName() + " as model");
int size = propertyNames.length;
if (size > 0) {
queryString.append(" where 1=1 ");
}
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
Query queryObject = entityManager.createQuery(queryString.toString(),Integer.class);
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
return (int) queryObject.getSingleResult();
}
@Override
public List<T> findByPropertyPage(String propertyName, Object value, String orderByStuff, Pager pager) {
String queryString = "from " + persistentClass.getSimpleName() + " as model where model." + propertyName + "= :" + propertyName + " " + orderByStuff;
return entityManager.createQuery(queryString)
.setParameter(propertyName, value)
.getResultList();
}
@Override
public List<T> findByPropertyPage(String[] propertyNames, Object[] values, String orderByStuff, Pager pager) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model ");
int size = propertyNames.length;
if (size > 0) {
queryString.append("where 1=1 ");
}
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
if(orderByStuff != null && orderByStuff.length() > 0){
queryString.append(orderByStuff);
}
Query queryObject = entityManager.createQuery(queryString.toString());
for (int i = 0; i < size; i++) {
queryObject.setParameter(propertyNames[i], values[i]);
}
return queryObject.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()).getResultList();
}
@Override
public List<T> findByHql(String hql) {
return entityManager.createQuery(hql).getResultList();
}
@Override
public List<T> findByHqlWhere(String hqlWhere) {
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
return entityManager.createQuery(queryString.toString()).getResultList();
}
@Override
public List<T> findByHqlWhere(String hqlWhere, String[] propertyNames, Object[] values, String orderByStuff) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
int size = propertyNames.length;
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
queryString.append("" + orderByStuff);
Query queryObject = entityManager.createQuery(queryString.toString());
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
return queryObject.getResultList();
}
@Override
public int findByHqlWhereCount(String hqlWhere, String[] propertyNames, Object[] values) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
int size = propertyNames.length;
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
Query queryObject = entityManager.createQuery(queryString.toString());
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
return entityManager.createQuery(queryString.toString(),Integer.class).getSingleResult();
}
@Override
public List<T> findByHqlWherePage(String hqlWhere, Pager pager, String[] propertyNames, Object[] values, String orderByStuff) {
if(propertyNames.length != values.length){
throw new IllegalArgumentException("参数名的数量和参数值不匹配!propertyNames:" + propertyNames.length + ",values:" + values.length);
}
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
int size = propertyNames.length;
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryString.append(" and model." + propertyNames[i] + "= :" + propertyNames[i]);
}
}
queryString.append(" " + orderByStuff);
Query queryObject = entityManager.createQuery(queryString.toString()).setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize());
for (int i = 0; i < size; i++) {
if(values[i] != null) {
queryObject.setParameter(propertyNames[i], values[i]);
}
}
return queryObject.getResultList();
}
@Override
public List<T> findByHqlWherePage(String hqlWhere, Pager pager) {
return entityManager.createQuery(hqlWhere)
.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
@Override
public int findByHqlWhereCount(String hqlWhere) {
StringBuffer queryString = new StringBuffer();
queryString.append("select count(distinct model) from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
return entityManager.createQuery(queryString.toString(),Integer.class).getSingleResult();
}
@Override
public int findByHqlCount(String hql) {
return entityManager.createQuery(hql,Integer.class).getSingleResult();
}
@Override
public int findByHqlCount(String hql, String[] paramName, Object[] paramValue) {
Query queryObject = entityManager.createQuery(hql,Integer.class);
for(int i=0;i<paramName.length;i++){
if(paramValue[i] != null) {
queryObject.setParameter(paramName[i], paramValue[i].toString());
}
}
return (int) queryObject.getSingleResult();
}
@Override
public List<T> findByHqlPage(String hqlWhere, Pager pager) {
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
return entityManager.createQuery(queryString.toString())
.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
@Override
public List<T> findByHqlPage(String hql, Pager pager, String[] paramName, Object[] paramValue) {
Query queryObject = entityManager.createQuery(hql);
for(int i=0;i<paramName.length;i++){
if(paramValue[i] != null) {
queryObject.setParameter(paramName[i], paramValue[i].toString());
}
}
return queryObject.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
@Override
public List findBySql(String sql) {
return entityManager.createNativeQuery(sql).getResultList();
}
@Override
public List<?> findBySql(String sql, Class entity) {
return entityManager.createNativeQuery(sql,entity).getResultList();
}
@Override
public List findBySqlPage(String sql, Pager pager) {
return entityManager.createNativeQuery(sql)
.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
@Override
public List<?> findBySqlPage(String sql, Class entity, Pager pager) {
return entityManager.createNativeQuery(sql,entity)
.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
@Override
public int executeSql(String sql) {
return entityManager.createNativeQuery(sql).executeUpdate();
}
@Override
public int findBySqlCount(String sql) {
return (int) entityManager.createNativeQuery("select count(*) from ( " + sql + " ) as usertable",Integer.class).getSingleResult();
}
@Override
public double findBySqlSumDouble(String sql, String columnName) {
return (double) entityManager.createNativeQuery("select sum(" + columnName + ") from ( " + sql + " ) as usertable",Double.class)
.getSingleResult();
}
@Override
public double findByHqlDouble(String hql) {
return entityManager.createQuery(hql,Double.class).getSingleResult();
}
@Override
public long findByHqlLong(String hql) {
return entityManager.createQuery(hql,Long.class).getSingleResult();
}
@Override
public List<T> findByHqlTopWhere(String hqlWhere, int topNum) {
StringBuffer queryString = new StringBuffer();
queryString.append("from " + persistentClass.getSimpleName() + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
return entityManager.createQuery(queryString.toString()).setFirstResult(0).setMaxResults(topNum).getResultList();
}
@Override
public List<T> findColumnsByHql(String hql, String hqlWhere, String orderByStuff, Pager pager) {
StringBuffer queryString = new StringBuffer();
queryString.append(hql + " as model where 1=1 ");
if (hqlWhere != null && hqlWhere.length() > 0) {
queryString.append(hqlWhere);
}
queryString.append(" " + orderByStuff);
return entityManager.createQuery(queryString.toString()).setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()).getResultList();
}
@Override
public List<Object[]> findByHqlObjects(String hql) {
return entityManager.createQuery(hql).getResultList();
}
@Override
public List<Object[]> findByHqlObjects(String hql, String[] paramName, Object[] paramValue) {
Query queryObject = entityManager.createQuery(hql);
for(int i=0;i<paramName.length;i++){
if(paramValue[i] != null) {
queryObject.setParameter(paramName[i], paramValue[i].toString());
}
}
return queryObject.getResultList();
}
@Override
public List<Object[]> findByHqlPageObjects(String hql, Pager pager) {
return entityManager.createQuery(hql).setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()).getResultList();
}
@Override
public List<Object[]> findByHqlPageObjects(String hql, Pager pager, String[] paramName, Object[] paramValue) {
Query queryObject = entityManager.createQuery(hql);
for(int i=0;i<paramName.length;i++){
if(paramValue[i] != null) {
queryObject.setParameter(paramName[i], paramValue[i].toString());
}
}
return queryObject.setFirstResult(pager.getStartRow()).setMaxResults(pager.getPageSize()).getResultList();
}
@Override
public List<Object[]> findBySqlObjList(String sql) {
return entityManager.createNativeQuery(sql).getResultList();
}
@Override
public List<Object[]> findBySqlObjListByPager(String sql, Pager pager) {
return entityManager.createNativeQuery(sql)
.setFirstResult(pager.getStartRow())
.setMaxResults(pager.getPageSize())
.getResultList();
}
/**
*
* @param item
* @return
*/
private T innerSave(T item) {
try {
if(item==null)return null;
Class<?> clazz = item.getClass();
//获取主键
Field idField = clazz.getField("id");
if(idField == null){
idField = clazz.getField("primaryKey");
}
if(idField == null){
// 遍历所有属性,以@Id声明确认主键
Field[] fields = clazz.getFields();
for(Field f : fields){
if(f.getAnnotation(Id.class) != null){
idField = f;
break;
}
}
}
if(idField != null){
Class<?> type = idField.getType();
Object val = idField.get(item);
if((type == long.class || type == Long.class) && (val == null || Long.parseLong(val.toString()) == 0)){
// long类型主键以snowflake为主键
idField.set(item, new SnowflakeIdMaker().nextId());
} else if(type == String.class && (val==null || "".equals(val))){
// String类型主键以UUID为主键
idField.set(item, UUID.randomUUID().toString().replace("-", "").toLowerCase());
}
}
entityManager.merge(item);
entityManager.flush();
if(idField!=null){
return item;
}else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}

@ -0,0 +1,53 @@
package cn.estsh.i3plus.pojo.base.jpa.factory;
import cn.estsh.i3plus.pojo.base.jpa.daoimpl.BaseRepositoryImpl;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.support.JpaRepositoryFactory;
import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean;
import org.springframework.data.repository.core.RepositoryInformation;
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.data.repository.core.support.RepositoryFactorySupport;
import javax.persistence.EntityManager;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-13 14:55
* @Modify:
**/
public class BaseRepositoryFactoryBean<R extends JpaRepository<T, I>, T, I extends Serializable> extends JpaRepositoryFactoryBean<R, T, I> {
public BaseRepositoryFactoryBean(Class<? extends R> repositoryInterface) {
super(repositoryInterface);
}
@Override
protected RepositoryFactorySupport createRepositoryFactory(EntityManager em) {
return new BaseRepositoryFactory(em);
}
//创建一个内部类,该类不用在外部访问
private static class BaseRepositoryFactory<T, I extends Serializable> extends JpaRepositoryFactory {
private final EntityManager em;
public BaseRepositoryFactory(EntityManager em) {
super(em);
this.em = em;
}
//设置具体的实现类是BaseRepositoryImpl
@Override
protected Object getTargetRepository(RepositoryInformation information) {
return new BaseRepositoryImpl<T, I>((Class<T>) information.getDomainType(), em);
}
//设置具体的实现类的class
@Override
protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
return BaseRepositoryImpl.class;
}
}
}

@ -0,0 +1,116 @@
package cn.estsh.i3plus.pojo.base.tool;
/**
* @Description : 使SnowFlakeID
* @Reference : SnowFlake
* id
* iddatacenterIdworkerId
* @Author : alwaysfrin
* @CreateDate : 2018-09-11 16:35
* @Modify:
**/
public class SnowflakeIdMaker {
private long workerId;
private long datacenterId;
private long sequence;
public SnowflakeIdMaker(){
this.workerId = 1;
this.datacenterId = 1;
this.sequence = 1;
}
public SnowflakeIdMaker(long workerId, long datacenterId, long sequence){
// sanity check for workerId
if (workerId > maxWorkerId || workerId < 0) {
throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0",maxWorkerId));
}
if (datacenterId > maxDatacenterId || datacenterId < 0) {
throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0",maxDatacenterId));
}
// System.out.printf("worker starting. timestamp left shift %d, datacenter id bits %d, worker id bits %d, sequence bits %d, workerid %d",
// timestampLeftShift, datacenterIdBits, workerIdBits, sequenceBits, workerId);
this.workerId = workerId;
this.datacenterId = datacenterId;
this.sequence = sequence;
}
private long twepoch = 1288834974657L;
private long workerIdBits = 5L;
private long datacenterIdBits = 5L;
private long maxWorkerId = -1L ^ (-1L << workerIdBits);
private long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
private long sequenceBits = 12L;
private long workerIdShift = sequenceBits;
private long datacenterIdShift = sequenceBits + workerIdBits;
private long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
private long sequenceMask = -1L ^ (-1L << sequenceBits);
private long lastTimestamp = -1L;
private long getWorkerId(){
return workerId;
}
private long getDatacenterId(){
return datacenterId;
}
private long getTimestamp(){
return System.currentTimeMillis();
}
public synchronized long nextId() {
long timestamp = timeGen();
if (timestamp < lastTimestamp) {
System.err.printf("clock is moving backwards. Rejecting requests until %d.", lastTimestamp);
throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds",
lastTimestamp - timestamp));
}
if (lastTimestamp == timestamp) {
sequence = (sequence + 1) & sequenceMask;
if (sequence == 0) {
timestamp = tilNextMillis(lastTimestamp);
}
} else {
sequence = 0;
}
lastTimestamp = timestamp;
return ((timestamp - twepoch) << timestampLeftShift) |
(datacenterId << datacenterIdShift) |
(workerId << workerIdShift) |
sequence;
}
private long tilNextMillis(long lastTimestamp) {
long timestamp = timeGen();
while (timestamp <= lastTimestamp) {
timestamp = timeGen();
}
return timestamp;
}
private long timeGen(){
return System.currentTimeMillis();
}
//---------------测试---------------
public static void main(String[] args) {
System.out.println(new SnowflakeIdMaker().nextId());
SnowflakeIdMaker worker = new SnowflakeIdMaker();
for (int i = 0; i < 10; i++) {
System.out.println(worker.nextId());
}
worker = new SnowflakeIdMaker(1,1,1);
for (int i = 0; i < 10; i++) {
System.out.println(worker.nextId());
}
}
}

@ -0,0 +1,4 @@
#Created by Apache Maven 3.5.0
version=1.0-SNAPSHOT
groupId=i3plus.pojo
artifactId=i3plus-pojo-base

@ -0,0 +1,6 @@
cn\estsh\i3plus\pojo\base\jpa\JpaConfig.class
cn\estsh\i3plus\pojo\base\jpa\factory\BaseRepositoryFactoryBean$BaseRepositoryFactory.class
cn\estsh\i3plus\pojo\base\tool\SnowflakeIdMaker.class
cn\estsh\i3plus\pojo\base\jpa\daoimpl\BaseRepositoryImpl.class
cn\estsh\i3plus\pojo\base\jpa\dao\BaseRepository.class
cn\estsh\i3plus\pojo\base\jpa\factory\BaseRepositoryFactoryBean.class

@ -0,0 +1,5 @@
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-base\src\main\java\cn\estsh\i3plus\pojo\base\tool\SnowflakeIdMaker.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-base\src\main\java\cn\estsh\i3plus\pojo\base\jpa\JpaConfig.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-base\src\main\java\cn\estsh\i3plus\pojo\base\jpa\daoimpl\BaseRepositoryImpl.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-base\src\main\java\cn\estsh\i3plus\pojo\base\jpa\factory\BaseRepositoryFactoryBean.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-base\src\main\java\cn\estsh\i3plus\pojo\base\jpa\dao\BaseRepository.java

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="i3plus-pojo-model" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-factory</artifactId>
<dependencies>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,65 @@
package cn.estsh.i3plus.pojo.factory.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
@Entity
@Table(name="machine_factory")
@Api("工厂")
public class MachineFactory extends BaseBean {
@Column(name="factory_code")
@ApiParam("工厂代码")
private String factoryCode;
@Column(name="factory_name")
@ApiParam("工厂名称")
private String factoryName;
public MachineFactory() {
}
public MachineFactory(String factoryCode, String factoryName) {
this.factoryCode = factoryCode;
this.factoryName = factoryName;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getFactoryName() {
return factoryName;
}
public void setFactoryName(String factoryName) {
this.factoryName = factoryName;
}
@Override
public String toString() {
return "MachineFactory{" +
"factoryCode='" + factoryCode + '\'' +
", factoryName='" + factoryName + '\'' +
", id=" + id +
", createDate='" + createDatetime + '\'' +
", modifyDate='" + modifyDatetime + '\'' +
'}';
}
}

@ -0,0 +1,10 @@
create database i3wms;
use i3wms;
create table machine_factory(
id long,
factory_name varchar(50)
);
insert into machine_factory values(1,'geely');
insert into machine_factory values(2,'benz');
insert into machine_factory values(3,'bmw');

@ -0,0 +1,10 @@
create database i3wms;
use i3wms;
create table machine_factory(
id long,
factory_name varchar(50)
);
insert into machine_factory values(1,'geely');
insert into machine_factory values(2,'benz');
insert into machine_factory values(3,'bmw');

@ -0,0 +1,4 @@
#Created by Apache Maven 3.5.0
version=1.0-SNAPSHOT
groupId=i3plus.pojo
artifactId=i3plus-pojo-factory

@ -0,0 +1 @@
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-factory\src\main\java\cn\estsh\i3plus\pojo\factory\bean\MachineFactory.java

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-mes</artifactId>
</project>

@ -0,0 +1,20 @@
package pojo;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify::
**/
public class WorkPlan {
private String desc;
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

@ -0,0 +1,4 @@
#Created by Apache Maven 3.5.0
version=1.0-SNAPSHOT
groupId=i3plus.pojo
artifactId=i3plus-pojo-mes

@ -0,0 +1 @@
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-mes\src\main\java\pojo\WorkPlan.java

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-model</artifactId>
</project>

@ -0,0 +1,83 @@
package cn.estsh.i3plus.pojo.model.base;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
@Data
@Entity
//以子类table为准
@javax.persistence.Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class BaseBean implements Serializable {
private static final long serialVersionUID = 1L;
//此处使用hibernate的主键策略方式
//手动设置,使用iplus-platform-common中的idtool生成
@Id
@GeneratedValue(generator = "IDGenerator")
@GenericGenerator(name = "IDGenerator", strategy = "assigned")
@Column(name="id")
@ApiParam(value = "主键",example = "0")
public Long id;
//get单独处理
public Long getId() {
if(id != null) {
return id.longValue();
}else{
return id;
}
}
@Column(name="factory_code")
@ApiParam(value = "工厂代码")
public String factoryCode;
@Column(name="is_valid")
@ApiParam(value = "有效性",example = "1")
public Integer isValid; //EnumUtil.isValid;
@Column(name="create_user")
@ApiParam(value = "创建日期")
public String createUser;
@Column(name="create_date")
@ApiParam(value = "创建日期")
public String createDatetime;
@Column(name="modify_user")
@ApiParam(value = "修改人")
public String modifyUser;
@Column(name="modify_date")
@ApiParam(value = "修改日期")
public String modifyDatetime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value="创建日期查询用,查询起始日期",example = "2000-01-01 01:00:00")
public transient String createDateTimeStart;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value="创建日期查询用,查询结束日期",example = "2000-01-01 01:00:00")
public transient String createDateTimeEnd;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value="修改日期查询用,查询起始日期",example = "用于前台查询")
public transient String modifyDateTimeStart;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value = "修改日期查询用,查询结束日期",example = "用于前台查询")
public transient String modifyDateTimeEnd;
}

@ -0,0 +1,77 @@
package cn.estsh.i3plus.pojo.model.base;
import cn.estsh.i3plus.pojo.model.busi.OperateUser;
import cn.estsh.i3plus.pojo.model.common.Pager;
import io.swagger.annotations.ApiParam;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class BaseModelBean<Obj> {
@ApiParam("操作对象")
private Obj obj;
@ApiParam("翻页")
private Pager pager;
private String OrdersString;
@ApiParam("操作用户")
private OperateUser operateUser;
public BaseModelBean(Obj obj, Pager pager) {
this.obj = obj;
this.pager = pager;
}
public BaseModelBean() {
}
public BaseModelBean(Obj obj, OperateUser operateUser) {
this.obj = obj;
this.operateUser = operateUser;
}
public BaseModelBean(Obj obj, Pager pager, OperateUser operateUser) {
this.obj = obj;
this.pager = pager;
this.operateUser = operateUser;
}
public Obj getObj() {
return obj;
}
public void setObj(Obj obj) {
this.obj = obj;
}
public Pager getPager() {
return pager;
}
public void setPager(Pager pager) {
this.pager = pager;
}
public String getOrdersString() {
return OrdersString;
}
public void setOrdersString(String ordersString) {
OrdersString = ordersString;
}
public OperateUser getOperateUser() {
return operateUser;
}
public void setOperateUser(OperateUser operateUser) {
this.operateUser = operateUser;
}
}

@ -0,0 +1,88 @@
package cn.estsh.i3plus.pojo.model.busi;
import io.swagger.annotations.ApiParam;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class OperateUser implements Serializable {
@ApiParam("用户代码")
private String userCode;
@ApiParam("用户姓名")
private String userName;
@ApiParam("站点代码")
private String siteCode;
@ApiParam("语言代码")
private String languageCode;
@ApiParam("登陆方式")
private String loginType;
public OperateUser() {
}
public OperateUser(String userCode, String userName, String siteCode) {
this.userCode = userCode;
this.userName = userName;
this.siteCode = siteCode;
}
public OperateUser(String userCode, String userName, String siteCode, String languageCode, String loginType) {
this.userCode = userCode;
this.userName = userName;
this.siteCode = siteCode;
this.languageCode = languageCode;
this.loginType = loginType;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSiteCode() {
return siteCode;
}
public void setSiteCode(String siteCode) {
this.siteCode = siteCode;
}
public String getLanguageCode() {
return languageCode;
}
public void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}
public String getLoginType() {
return loginType;
}
public void setLoginType(String loginType) {
this.loginType = loginType;
}
}

@ -0,0 +1,189 @@
package cn.estsh.i3plus.pojo.model.busi;
import cn.estsh.i3plus.pojo.model.common.Pager;
import io.swagger.annotations.ApiParam;
import java.util.List;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class ResultBean<Obj>{
@ApiParam("是否成功")
private boolean success;
@ApiParam("信息代码-国际化")
private String code;
@ApiParam("操作消息")
private String msg;
@ApiParam("错误消息")
private String errorMsg;
@ApiParam("http路径")
private String url;
@ApiParam("List结果集")
private List<Obj> resultList;
@ApiParam("单个结果")
private Obj resultObject;
@ApiParam("Map结果集")
private Map<String, Object> resultMap;
@ApiParam("翻页操作")
private Pager pager;
@ApiParam("总记录数")
private int totalCount;
public ResultBean() {
success = false;
}
public ResultBean(boolean success,String code, String message) {
this.success = success;
this.code = code;
if(this.success) {
this.msg = message;
}else{
this.errorMsg = message;
}
}
public ResultBean(boolean success,String code, String msg, String errorMsg) {
this.success = success;
this.code = code;
this.msg = msg;
this.errorMsg = errorMsg;
}
public ResultBean(boolean success, List<Obj> resultList) {
this.success = success;
this.resultList = resultList;
}
public ResultBean(boolean success, Obj resultObject) {
this.success = success;
this.resultObject = resultObject;
}
public ResultBean(boolean success, String message, List<Obj> resultList) {
this.success = success;
this.msg = message;
this.resultList = resultList;
}
public ResultBean(boolean success, String message, Obj resultObject) {
this.success = success;
this.msg = message;
this.resultObject = resultObject;
}
public ResultBean(boolean success, List<Obj> resultList, Pager pager) {
this.success = success;
this.resultList = resultList;
this.pager = pager;
}
public ResultBean(boolean success, String message, List<Obj> resultList, Pager pager) {
this.success = success;
this.msg = message;
this.resultList = resultList;
this.pager = pager;
}
public ResultBean(boolean success, String message, Obj resultObject, Pager pager) {
this.success = success;
this.msg = message;
this.resultObject = resultObject;
this.pager = pager;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public List<Obj> getResultList() {
return resultList;
}
public void setResultList(List<Obj> resultList) {
this.resultList = resultList;
}
public Object getResultObject() {
return resultObject;
}
public void setResultObject(Obj resultObject) {
this.resultObject = resultObject;
}
public Pager getPager() {
return pager;
}
public void setPager(Pager pager) {
this.pager = pager;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public int getTotalCount() {
return pager != null ? pager.getTotalRows() : this.totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public Map<String, Object> getResultMap() {
return resultMap;
}
public void setResultMap(Map<String, Object> resultMap) {
this.resultMap = resultMap;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}

@ -0,0 +1,217 @@
package cn.estsh.i3plus.pojo.model.common;
import io.swagger.annotations.ApiParam;
/**
* @Description:
* @Refrence:
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class Pager {
@ApiParam("总行数")
private int totalRows;
@ApiParam("每页显示")
private int pageSize;
@ApiParam("当前页")
private int currentPage;
@ApiParam("总页数")
private int totalPages;
@ApiParam("起始行")
private int startRow;
@ApiParam("结束行")
private int endRow;
@ApiParam("翻页操作")
private String pageMethod;
public Pager() {
}
/**
*
*
* @param totalRows
*/
public Pager(int totalRows) {
this.totalRows = totalRows;
totalPages = totalRows / pageSize;
int mod = totalRows % pageSize;
if (mod > 0) {
totalPages++;
}
currentPage = 1;
startRow = 1;
resetEndRow();
}
public Pager(int totalRows, int pageSize) {
this.totalRows = totalRows;
this.pageSize = pageSize;
totalPages = totalRows / pageSize;
int mod = totalRows % pageSize;
if (mod > 0) {
totalPages++;
}
currentPage = 1;
startRow = 1;
resetEndRow();
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
public String getPageMethod() {
return pageMethod;
}
public void setPageMethod(String pageMethod) {
this.pageMethod = pageMethod;
}
public int getEndRow() {
return endRow;
}
public void setEndRow(int endRow) {
this.endRow = endRow;
}
public void resetEndRow() {
if (startRow + pageSize <= totalRows) {
endRow = startRow + pageSize - 1;
} else {
endRow = totalRows;
}
}
public void first() {
currentPage = 1;
startRow = 1;
resetEndRow();
}
public void previous() {
if (currentPage == 1) {
return;
}
currentPage--;
startRow = (currentPage - 1) * pageSize + 1;
resetEndRow();
}
public void next() {
if (currentPage < totalPages) {
currentPage++;
}
startRow = (currentPage - 1) * pageSize + 1;
resetEndRow();
}
public void last() {
if (totalPages <= 0) {
return;
} else if (totalPages - currentPage <= 0) {
currentPage = totalPages;
return;
} else {
currentPage = totalPages;
}
startRow = (currentPage - 1) * pageSize + 1;
resetEndRow();
}
public void refresh(int currentPageRef) {
currentPage = currentPageRef;
if (currentPage > totalPages) {
last();
}
if (currentPage < 1) {
first();
}
resetEndRow();
}
public void go() {
if (currentPage > totalPages) {
last();
} else {
startRow = (currentPage - 1) * pageSize + 1;
}
}
public boolean isFirst() {
return currentPage == 1;
}
public boolean isLast() {
return currentPage == totalPages;
}
public boolean hasNext() {
return currentPage < totalPages;
}
public boolean hasPrevious() {
return currentPage > 1;
}
@Override
public String toString() {
return "Pager{" +
"totalRows=" + totalRows +
", pageSize=" + pageSize +
", currentPage=" + currentPage +
", totalPages=" + totalPages +
", startRow=" + startRow +
", endRow=" + endRow +
", pageMethod='" + pageMethod + '\'' +
'}';
}
}

@ -0,0 +1,81 @@
package cn.estsh.i3plus.pojo.model.common;
/**
* @Description:
* @Refrence:
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class PagerHelper {
protected static Pager getPager(String pageSize,String currentPage,int totalRows,String pageMethod) {
// 定义pager对象用于传到页面
Pager pager = null;
if(pageSize != null){
pager = new Pager(totalRows,Integer.parseInt(pageSize));
}else{
pager = new Pager(totalRows);
}
// 如果当前页号为空,表示为首次查询该页
// 如果不为空则刷新pager对象输入当前页号等信息
if (currentPage != null) {
pager.refresh(Integer.parseInt(currentPage));
}
if (pageMethod != null) {
if ("first".equals(pageMethod)) {
pager.first();
} else if ("previous".equals(pageMethod)) {
pager.previous();
} else if ("next".equals(pageMethod)) {
pager.next();
} else if ("last".equals(pageMethod)) {
pager.last();
}else{
pager.go();
}
}else{
pager.go();
}
return pager;
}
private static Pager getPager(int pageSize, int currentPage, int totalRows) {
Pager pager = new Pager();
pager.setPageSize(pageSize);
pager.setTotalRows(totalRows);
int totalPages = totalRows / pageSize;
int mod = totalRows % pageSize;
if (mod > 0) {
totalPages++;
}
pager.setTotalPages(totalPages);
if(currentPage > totalPages) {
currentPage = totalPages;
}
pager.setCurrentPage(currentPage);
int startRow = (currentPage - 1) * pageSize + 1;
pager.setStartRow(startRow);
int endRow = 0;
if (startRow + pageSize <= totalRows) {
endRow = startRow + pageSize - 1;
} else {
endRow = totalRows;
}
pager.setEndRow(endRow);
return pager;
}
public static Pager getPager(Pager oldPager,int rowCount){
//Pager newPager = getPager(String.valueOf(oldPager.getPageSize()), String.valueOf(oldPager.getCurrentPage()), rowCount, oldPager.getPageMethod());
Pager newPager = getPager(oldPager.getPageSize(), oldPager.getCurrentPage(), rowCount);
return newPager;
}
}

@ -0,0 +1,11 @@
package cn.estsh.i3plus.pojo.model.common;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class ValidatorBean {
}

@ -0,0 +1,101 @@
package cn.estsh.i3plus.pojo.model.hardware;
import io.swagger.annotations.ApiParam;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class EsbXmlMessage {
//
@ApiParam("主键id")
private Long id;
@ApiParam("消息id")
private String sId;
@ApiParam("服务id")
private String serviceId;
@ApiParam("表头信息")
private String topicDesc;
@ApiParam("信息内容")
private String message;
@ApiParam("消息来源id")
private String sourceSysId;
@ApiParam("接口流水号")
private String serialNo;
@ApiParam("解析是否成功")
private Boolean isParse;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getsId() {
return sId;
}
public void setsId(String sId) {
this.sId = sId;
}
public String getServiceId() {
return serviceId;
}
public void setServiceId(String serviceId) {
this.serviceId = serviceId;
}
public String getTopicDesc() {
return topicDesc;
}
public void setTopicDesc(String topicDesc) {
this.topicDesc = topicDesc;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getSourceSysId() {
return sourceSysId;
}
public void setSourceSysId(String sourceSysId) {
this.sourceSysId = sourceSysId;
}
public String getSerialNo() {
return serialNo;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
public Boolean getParse() {
return isParse;
}
public void setParse(Boolean parse) {
isParse = parse;
}
}

@ -0,0 +1,4 @@
#Created by Apache Maven 3.5.0
version=1.0-SNAPSHOT
groupId=i3plus.pojo
artifactId=i3plus-pojo-model

@ -0,0 +1,8 @@
cn\estsh\i3plus\pojo\model\base\BaseModelBean.class
cn\estsh\i3plus\pojo\model\busi\ResultBean.class
cn\estsh\i3plus\pojo\model\hardware\EsbXmlMessage.class
cn\estsh\i3plus\pojo\model\common\Pager.class
cn\estsh\i3plus\pojo\model\busi\OperateUser.class
cn\estsh\i3plus\pojo\model\common\ValidatorBean.class
cn\estsh\i3plus\pojo\model\base\BaseBean.class
cn\estsh\i3plus\pojo\model\common\PagerHelper.class

@ -0,0 +1,8 @@
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\common\Pager.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\common\ValidatorBean.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\hardware\EsbXmlMessage.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\busi\OperateUser.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\base\BaseBean.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\base\BaseModelBean.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\busi\ResultBean.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-model\src\main\java\cn\estsh\i3plus\pojo\model\common\PagerHelper.java

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="i3plus-pojo-model" />
<orderEntry type="module" module-name="i3plus-pojo-base" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-platform</artifactId>
<dependencies>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-model</artifactId>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-base</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,88 @@
package cn.estsh.i3plus.pojo.platform.bean;
import io.swagger.annotations.ApiParam;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
public class SessionUser implements Serializable {
@ApiParam("用户工号")
private String userCode;
@ApiParam("用户姓名")
private String userName;
@ApiParam("站点代码")
private String siteCode;
@ApiParam("语言代码")
private String languageCode;
@ApiParam("用户类型")
//CommonEnumUtil.USER_TYPE.xxx.getCode()
private String userType;
public SessionUser() {
}
public SessionUser(String userCode, String userName, String siteCode) {
this.userCode = userCode;
this.userName = userName;
this.siteCode = siteCode;
}
public SessionUser(String userCode, String userName, String siteCode, String languageCode, String userType) {
this.userCode = userCode;
this.userName = userName;
this.siteCode = siteCode;
this.languageCode = languageCode;
this.userType = userType;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getSiteCode() {
return siteCode;
}
public void setSiteCode(String siteCode) {
this.siteCode = siteCode;
}
public String getLanguageCode() {
return languageCode;
}
public void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
}

@ -0,0 +1,36 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_employee")
@Data
@Api(value="用户登陆表",description = "用户登陆系统账户。")
public class SysEmployee extends BaseBean {
@Column(name="language_name")
@ApiParam(value = "语言名称",example = "前台显示的名称")
private String username;
@Column(name="language_code")
@ApiParam(value = "语言代码",example = "使用浏览器语言代码参考java.util.Locale中的代码。CN/zhTW/zhHK/zhUS/en, FR/en,GB/en,JP/en,DE/en,KR/en")
private String password;
@Column(name="is_default")
@ApiParam(value = "是否默认",example = "1")
private Integer isDefault;
}

@ -0,0 +1,38 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_locale_language")
@Data
@Api(value="系统语言表",description = "对系统语言进行匹配。")
public class SysLocaleLanguage extends BaseBean {
@Column(name="language_name")
@ApiParam(value = "语言名称",example = "前台显示的名称")
private String languageName;
@Column(name="language_code")
@ApiParam(value = "语言代码",example = "使用浏览器语言代码参考java.util.Locale中的代码。CN/zhTW/zhHK/zhUS/en, FR/en,GB/en,JP/en,DE/en,KR/en")
private String languageCode;
@Column(name="is_default")
@ApiParam(value = "是否默认",example = "1")
private Integer isDefault;
}

@ -0,0 +1,51 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description : resourceTypelanguageIdresourceKeyvalue
* resourceType-languageId-resourceKey
* languageIdresourceTyperesourceKeydefault
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:01
* @Modify:
**/
@Entity
@Table(name="sys_locale_resource")
@Data
@Api(value="系统资源",description = "对按钮、功能、信息提示等进行转换。")
public class SysLocaleResource extends BaseBean {
@Column(name="resource_type")
@ApiParam(value = "资源类型",example = "1",access = "使用枚举CommonEnumUtil.SYS_LOCALE_RESOURCE_TYPE")
private Integer resourceType;
@Column(name="language_code")
@ApiParam(value = "语言编码",example = "浏览器语言编码")
private String languageCode;
@Column(name="resource_key")
@ApiParam(value = "资源KEY",example = "格式A.B全部大写参考命名规范开发文档")
private String resourceKey;
@Column(name="resource_value")
@ApiParam(value = "资源Value",example = "通过resourceTypelanguageId和key获取")
private String resourceValue;
@Column(name="is_system")
@ApiParam(value = "是否系统参数",example = "2",access = "系统自带需要有初始化表只能修改value无法删除。")
private Integer isSystem;
@Column(name="is_default")
@ApiParam(value = "是否默认",example = "2",access = "CommonEnumUtil.TRUE_OR_FALSE新增resources时如果")
private Integer isDefault;
}

@ -0,0 +1,45 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_method")
@Data
@Api(value="功能权限表",description = "功能权限包含模块、功能及按钮等权限。")
public class SysMethod extends BaseBean {
@Column(name="method_code")
@ApiParam(value = "功能编码",example = "0001和前台交互")
private Integer methodCode;
@Column(name="method_name")
@ApiParam(value = "语言名称",example = "前台显示的名称")
private String methodName;
@Column(name="method_level")
@ApiParam(value = "语言名称",example = "前台显示的名称")
//CommonEnumUtil.METHOD_LEVEL分为模块、功能和按钮
private int methodLevel;
@Column(name="method_uri")
@ApiParam(value = "方法路径",example = "前台显示的名称")
private String methodUri;
@Column(name="parent_method_id")
@ApiParam(value = "上级方法主键")
private Long parentMethodId;
}

@ -0,0 +1,32 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_method_role")
@Data
@Api(value="角色权限表",description = "关联角色和权限。")
public class SysMethodRole extends BaseBean {
@Column(name="role_id")
@ApiParam(value = "角色主键")
private Long roleId;
@Column(name="method_id")
@ApiParam(value = "功能权限主键")
private Long methodId;
}

@ -0,0 +1,28 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_role")
@Data
@Api(value="用户角色表",description = "用户权限角色。")
public class SysRole extends BaseBean {
@Column(name="role_name")
@ApiParam(value = "角色名称")
private String roleName;
}

@ -0,0 +1,52 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_user")
@Data
@Api(value="用户登陆表",description = "用户登陆系统账户。")
public class SysUser extends BaseBean {
@Column(name="employee_id")
@ApiParam(value = "人员主键")
private Long employeeId;
@Column(name="login_name")
@ApiParam(value = "登陆名",example = "前台显示的名称")
private String loginName;
@Column(name="login_pwd")
@ApiParam(value = "登陆密码",example = "使用浏览器语言代码参考java.util.Locale中的代码。CN/zhTW/zhHK/zhUS/en, FR/en,GB/en,JP/en,DE/en,KR/en")
private String loginPwd;
//@Column(name="login_pwd_salt")
//@ApiParam(value = "密码盐",example = "系统生成6位随机数")
//private String loginPwdSalt;
@Column(name="employee_code")
@ApiParam(value = "员工工号(冗余)")
private String employeeCodeRdd;
@Column(name="employee_name_rdd")
@ApiParam(value = "姓名(冗余)")
private String employeeNameRdd;
@Column(name="organization_name_rdd")
@ApiParam(value = "组织名称(冗余)")
private String organizationNameRdd;
}

@ -0,0 +1,32 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 11:02
* @Modify:
**/
@Entity
@Table(name="sys_user_role")
@Data
@Api(value="用户角色表",description = "关联用户和角色。")
public class SysUserRole extends BaseBean {
@Column(name="user_id")
@ApiParam(value = "用户主键")
private Long userId;
@Column(name="language_code")
@ApiParam(value = "角色主键")
private Long roleId;
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.platform.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import org.springframework.stereotype.Repository;
/**
* @Description : dao
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 16:54
* @Modify:
**/
@Repository
public interface SysLocaleLanguageRepository extends BaseRepository<SysLocaleLanguage,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.platform.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleResource;
import org.springframework.stereotype.Repository;
/**
* @Description : dao
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 16:55
* @Modify:
**/
@Repository
public interface SysLocaleResourceRepository extends BaseRepository<SysLocaleResource,Long> {
}

@ -0,0 +1,17 @@
package cn.estsh.i3plus.pojo.platform.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.platform.bean.SysLocaleLanguage;
import cn.estsh.i3plus.pojo.platform.bean.SysUser;
import org.springframework.stereotype.Repository;
/**
* @Description : dao
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-10-11 16:54
* @Modify:
**/
@Repository
public interface SysUserRepository extends BaseRepository<SysUser,Long> {
}

@ -0,0 +1,4 @@
#Created by Apache Maven 3.5.0
version=1.0-SNAPSHOT
groupId=i3plus.pojo
artifactId=i3plus-pojo-platform

@ -0,0 +1,12 @@
cn\estsh\i3plus\pojo\platform\bean\SessionUser.class
cn\estsh\i3plus\pojo\platform\repository\SysUserRepository.class
cn\estsh\i3plus\pojo\platform\bean\SysEmployee.class
cn\estsh\i3plus\pojo\platform\bean\SysRole.class
cn\estsh\i3plus\pojo\platform\bean\SysUserRole.class
cn\estsh\i3plus\pojo\platform\bean\SysLocaleResource.class
cn\estsh\i3plus\pojo\platform\bean\SysMethod.class
cn\estsh\i3plus\pojo\platform\repository\SysLocaleResourceRepository.class
cn\estsh\i3plus\pojo\platform\bean\SysLocaleLanguage.class
cn\estsh\i3plus\pojo\platform\bean\SysMethodRole.class
cn\estsh\i3plus\pojo\platform\bean\SysUser.class
cn\estsh\i3plus\pojo\platform\repository\SysLocaleLanguageRepository.class

@ -0,0 +1,12 @@
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysEmployee.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysUserRole.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysMethodRole.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\repository\SysLocaleLanguageRepository.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysLocaleLanguage.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\repository\SysLocaleResourceRepository.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysMethod.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysLocaleResource.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\repository\SysUserRepository.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysRole.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SessionUser.java
D:\Idea-Platform\i3PlusPlatform\i3plus-pojo\modules\i3plus-pojo-platform\src\main\java\cn\estsh\i3plus\pojo\platform\bean\SysUser.java

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="i3plus-pojo-model" />
<orderEntry type="module" module-name="i3plus-pojo-base" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.22.0-GA" level="project" />
<orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
<orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-orm:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.10" level="project" />
</component>
</module>

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-wms</artifactId>
<dependencies>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-model</artifactId>
</dependency>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-base</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,71 @@
package cn.estsh.i3plus.pojo.wms.bean;
import cn.estsh.i3plus.pojo.model.base.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.UUID;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-04 15:58
* @Modify:
**/
@Entity
@Table(name="factory_store")
@Api("工厂仓库")
public class FactoryStore extends BaseBean {
@Column(name="store_coded")
@ApiParam("仓库代码")
public String storeCode;
@Column(name="store_name")
@ApiParam("仓库名称")
public String storeName;
public FactoryStore() {
}
public FactoryStore(String storeCode, String storeName) {
this.storeCode = storeCode;
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
@Override
public String toString() {
return "FactoryStore{" +
"storeCode='" + storeCode + '\'' +
", storeName='" + storeName + '\'' +
", id=" + id +
", isValid=" + isValid +
", createDate='" + createDatetime + '\'' +
", modifyDate='" + modifyDatetime + '\'' +
'}';
}
}

@ -0,0 +1,27 @@
package cn.estsh.i3plus.pojo.wms.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.wms.bean.FactoryStore;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-09-13 9:47
* @Modify:
**/
@Repository
public interface FactoryStoreRepository extends BaseRepository<FactoryStore,Long> {
@Query(value="from FactoryStore fs where fs.isValid=1")
List<FactoryStore> listAll();
@Query(value="from FactoryStore fs where fs.isValid=2")
int countAll();
List<FactoryStore> findByStoreName(String storeName);
}

@ -0,0 +1,10 @@
create database i3wms;
use i3wms;
create table factory_store(
id long,
store_name varchar(50)
);
insert into factory_store values(1,'geely');
insert into factory_store values(2,'benz');
insert into factory_store values(3,'bmw');

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save