From 23e9cb356e1d9d01722e2f132c4a4a4ccec3f1ae Mon Sep 17 00:00:00 2001 From: qiankunpingtai Date: Thu, 7 Mar 2019 15:00:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=BA=E6=9E=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- erp_web/pages/manage/organization.html | 310 ++++++++++++++++++ .../pages/manage/organization_forselect.html | 45 +++ sql/jsh_erp.sql | 56 ++++ sql/华夏ERP数据库设计汇总.xlsx | Bin 76914 -> 80741 bytes .../jsh/erp/constants/BusinessConstants.java | 19 +- .../jsh/erp/constants/ExceptionConstants.java | 22 ++ .../MaterialCategoryController.java | 4 +- .../controller/OrganizationController.java | 159 +++++++++ .../mappers/OrganizationMapperEx.java | 29 ++ .../organization/OrganizationComponent.java | 66 ++++ .../organization/OrganizationResource.java | 18 + .../organization/OrganizationService.java | 188 +++++++++++ .../mapper_xml/OrganizationMapperEx.xml | 92 ++++++ src/test/resources/generatorConfig.xml | 4 +- 14 files changed, 1007 insertions(+), 5 deletions(-) create mode 100644 erp_web/pages/manage/organization.html create mode 100644 erp_web/pages/manage/organization_forselect.html create mode 100644 src/main/java/com/jsh/erp/controller/OrganizationController.java create mode 100644 src/main/java/com/jsh/erp/datasource/mappers/OrganizationMapperEx.java create mode 100644 src/main/java/com/jsh/erp/service/organization/OrganizationComponent.java create mode 100644 src/main/java/com/jsh/erp/service/organization/OrganizationResource.java create mode 100644 src/main/java/com/jsh/erp/service/organization/OrganizationService.java create mode 100644 src/main/resources/mapper_xml/OrganizationMapperEx.xml diff --git a/erp_web/pages/manage/organization.html b/erp_web/pages/manage/organization.html new file mode 100644 index 00000000..4d39e0fe --- /dev/null +++ b/erp_web/pages/manage/organization.html @@ -0,0 +1,310 @@ + + + + 机构管理 + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
上级机构 + + + + +
全称 + + +
简称 + +
状态 + +
编号 + +
序号 + +
开创时间 + +
停业时间 + +
备注 + +
+
+
+
+ 保存 + 取消 +
+
+
+ + + + \ No newline at end of file diff --git a/erp_web/pages/manage/organization_forselect.html b/erp_web/pages/manage/organization_forselect.html new file mode 100644 index 00000000..0d889a92 --- /dev/null +++ b/erp_web/pages/manage/organization_forselect.html @@ -0,0 +1,45 @@ + + + + 机构选择 + + + + + + + + + + + + + + +
+ +
+ + + + \ No newline at end of file diff --git a/sql/jsh_erp.sql b/sql/jsh_erp.sql index 97e28403..823b5684 100644 --- a/sql/jsh_erp.sql +++ b/sql/jsh_erp.sql @@ -1253,3 +1253,59 @@ where Id = 5; -- ---------------------------- alter table jsh_depot add principal bigint(20) DEFAULT null COMMENT '负责人'; +-- ---------------------------- +-- 时间:2019年3月6日 +-- version:1.0.5 +-- 此次更新 +-- 1、添加机构表 +-- 2、添加机构用户关系表 +-- 特别提醒:之后的sql都是在之前基础上迭代,可以对已存在的系统进行数据保留更新 +-- ---------------------------- +-- ---------------------------- +-- 添加机构表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_organization`; +CREATE TABLE `jsh_organization` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `org_no` varchar(20) DEFAULT NULL COMMENT '机构编号', + `org_full_name` varchar(500) DEFAULT NULL COMMENT '机构全称', + `org_abr` varchar(20) DEFAULT NULL COMMENT '机构简称', + `org_tpcd` varchar(9) DEFAULT NULL COMMENT '机构类型', + `org_stcd` char(1) DEFAULT NULL COMMENT '机构状态,1未营业、2正常营业、3暂停营业、4终止营业、5已除名', + `org_parent_no` varchar(20) DEFAULT NULL COMMENT '机构父节点编号', + `sort` varchar(20) DEFAULT NULL COMMENT '机构显示顺序', + remark VARCHAR(500) DEFAULT null COMMENT '备注', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` bigint(20) DEFAULT NULL COMMENT '更新人', + `org_create_time` datetime DEFAULT NULL COMMENT '机构创建时间', + `org_stop_time` datetime DEFAULT NULL COMMENT '机构停运时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='机构表'; +-- ---------------------------- +-- 添加机构用户关系表 +-- ---------------------------- +DROP TABLE IF EXISTS `jsh_orga_user_rel`; +CREATE TABLE `jsh_orga_user_rel` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `orga_id` bigint(20) NOT NULL COMMENT '机构id', + `user_id` bigint(20) NOT NULL COMMENT '用户id', + `user_blng_orga_dspl_seq` varchar(20) DEFAULT NULL COMMENT '用户在所属机构中显示顺序', + `delete_flag` char(1) DEFAULT 0 COMMENT '删除标记,0未删除,1删除', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `creator` bigint(20) DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `updater` bigint(20) DEFAULT NULL COMMENT '更新人', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='机构用户关系表'; +-- ---------------------------- +-- 添加机构管理菜单 +-- ---------------------------- +INSERT INTO `jsh_functions`(`Number`, `Name`, `PNumber`, `URL`, `State`, `Sort`, `Enabled`, `Type`, `PushBtn`) VALUES ('000108', '机构管理', '0001', '../manage/organization.html', b'1', '0139', b'1', '电脑版', ''); +-- ---------------------------- +-- 添加根机构 +-- ---------------------------- +INSERT INTO `jsh_organization`(`org_no`, `org_full_name`, `org_abr`, `org_tpcd`, `org_stcd`, `org_parent_no`, `sort`, `remark`, `create_time`, `creator`, `update_time`, `updater`, `org_create_time`, `org_stop_time`) VALUES ('01', '根机构', '根机构', NULL, '2', '-1', '1', '根机构,初始化存在', NULL, NULL, NULL, NULL, NULL, NULL); + + diff --git a/sql/华夏ERP数据库设计汇总.xlsx b/sql/华夏ERP数据库设计汇总.xlsx index 2a7b3f936e9e1771a02108144baaafbe727ab4a1..18855f4babe61ed76a7a920639670a66eee934b4 100644 GIT binary patch delta 67295 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 WvjQ+MdEt2B24E`|$_BfB!~H+ov6Hs| delta 63251 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 a@(-mf3c$wULEu3UhJX7QXy8|7g#QOZ?a^8Q diff --git a/src/main/java/com/jsh/erp/constants/BusinessConstants.java b/src/main/java/com/jsh/erp/constants/BusinessConstants.java index 26b3f775..7df6d12f 100644 --- a/src/main/java/com/jsh/erp/constants/BusinessConstants.java +++ b/src/main/java/com/jsh/erp/constants/BusinessConstants.java @@ -3,8 +3,8 @@ package com.jsh.erp.constants; /** * @ClassName:BusinessConstants * @Description 业务字典类 - * @Author linshengming - * @Date 2018-9-15 17:58 + * @Author qiankunpingtai + * @Date 2019-3-6 17:58 * @Version 1.0 **/ public class BusinessConstants { @@ -85,6 +85,21 @@ public class BusinessConstants { public static final String MATERIAL_CATEGORY_STATUS_DEFAULT = "0"; public static final String MATERIAL_CATEGORY_STATUS_ENABLE = "1"; public static final String MATERIAL_CATEGORY_STATUS_DELETE = "2"; + /** + * 机构状态 + * 1未营业、2正常营业、3暂停营业、4终止营业,5已除名 + * */ + public static final String ORGANIZATION_STCD_NOT_OPEN = "1"; + public static final String ORGANIZATION_STCD_OPEN = "2"; + public static final String ORGANIZATION_STCD_BUSINESS_SUSPENDED = "3"; + public static final String ORGANIZATION_STCD_BUSINESS_TERMINATED = "4"; + public static final String ORGANIZATION_STCD_REMOVED = "5"; + /** + * 根机构编号 + * 根机构编号默认为01 + * */ + public static final String ORGANIZATION_ROOT_NO = "01"; + diff --git a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java index 3eec3aef..4f538bd2 100644 --- a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java +++ b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java @@ -75,6 +75,28 @@ public class ExceptionConstants { //商品类别编号已存在 public static final int MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_CODE = 7500003; public static final String MATERIAL_CATEGORY_SERIAL_ALREADY_EXISTS_MSG = "商品类别编号已存在"; + /** + * 机构 + * type = 110 + * */ + //添加机构信息失败 + public static final int ORGANIZATION_ADD_FAILED_CODE = 11000000; + public static final String ORGANIZATION_ADD_FAILED_MSG = "添加机构信息失败"; + //删除机构信息失败 + public static final int ORGANIZATION_DELETE_FAILED_CODE = 11000001; + public static final String ORGANIZATION_DELETE_FAILED_MSG = "删除机构信息失败"; + //修改机构信息失败 + public static final int ORGANIZATION_EDIT_FAILED_CODE = 11000002; + public static final String ORGANIZATION_EDIT_FAILED_MSG = "修改机构信息失败"; + //机构编号已存在 + public static final int ORGANIZATION_NO_ALREADY_EXISTS_CODE = 11000003; + public static final String ORGANIZATION_NO_ALREADY_EXISTS_MSG = "机构编号已存在"; + //根机构不允许删除 + public static final int ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_CODE = 11000004; + public static final String ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_MSG = "根机构不允许删除"; + //根机构不允许修改 + public static final int ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_CODE = 11000005; + public static final String ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_MSG = "根机构不允许修改"; /** * 标准正常返回/操作成功返回 diff --git a/src/main/java/com/jsh/erp/controller/MaterialCategoryController.java b/src/main/java/com/jsh/erp/controller/MaterialCategoryController.java index 6f31a606..6ec8daa4 100644 --- a/src/main/java/com/jsh/erp/controller/MaterialCategoryController.java +++ b/src/main/java/com/jsh/erp/controller/MaterialCategoryController.java @@ -137,8 +137,8 @@ public class MaterialCategoryController { MaterialCategory mc= JSON.parseObject(beanJson, MaterialCategory.class); int i= materialCategoryService.editMaterialCategory(mc); if(i<1){ - throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_ADD_FAILED_CODE, - ExceptionConstants.MATERIAL_CATEGORY_ADD_FAILED_MSG); + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_CATEGORY_EDIT_FAILED_CODE, + ExceptionConstants.MATERIAL_CATEGORY_EDIT_FAILED_MSG); } return result; } diff --git a/src/main/java/com/jsh/erp/controller/OrganizationController.java b/src/main/java/com/jsh/erp/controller/OrganizationController.java new file mode 100644 index 00000000..fb1864df --- /dev/null +++ b/src/main/java/com/jsh/erp/controller/OrganizationController.java @@ -0,0 +1,159 @@ +package com.jsh.erp.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.datasource.entities.MaterialCategory; +import com.jsh.erp.datasource.entities.Organization; +import com.jsh.erp.datasource.vo.TreeNode; +import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.materialCategory.MaterialCategoryService; +import com.jsh.erp.service.organization.OrganizationService; +import com.jsh.erp.utils.BaseResponseInfo; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.List; + +/** + * create by: cjl + * description: + * + * create time: 2019/3/6 10:54 + */ +@RestController +@RequestMapping(value = "/organization") +public class OrganizationController { + private Logger logger = LoggerFactory.getLogger(OrganizationController.class); + + @Resource + private OrganizationService organizationService; + /** + * 根据id来查询机构信息 + * @param id + * @param request + * @return + */ + @RequestMapping(value = "/findById") + public BaseResponseInfo findById(@RequestParam("id") Long id, HttpServletRequest request) throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + List dataList = organizationService.findById(id); + JSONObject outer = new JSONObject(); + if (null != dataList) { + for (Organization org : dataList) { + outer.put("id", org.getId()); + outer.put("orgFullName", org.getOrgFullName()); + outer.put("orgAbr", org.getOrgAbr()); + outer.put("orgParentNo", org.getOrgParentNo()); + List dataParentList = organizationService.findByOrgNo(org.getOrgNo()); + if(dataParentList!=null&&dataParentList.size()>0){ + //父级机构名称显示简称 + outer.put("orgParentName", dataParentList.get(0).getOrgAbr()); + } + outer.put("orgTpcd", org.getOrgTpcd()); + outer.put("orgStcd", org.getOrgStcd()); + outer.put("orgNo", org.getOrgNo()); + outer.put("sort", org.getSort()); + outer.put("orgCreateTime", sdf.format(org.getOrgCreateTime())); + outer.put("orgStopTime", sdf.format(org.getOrgStopTime())); + outer.put("remark", org.getRemark()); + } + } + res.code = 200; + res.data = outer; + } catch(Exception e){ + e.printStackTrace(); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } + + /** + * create by: cjl + * description: + * 获取机构树数据 + * create time: 2019/2/19 11:49 + * @Param: + * @return com.alibaba.fastjson.JSONArray + */ + @RequestMapping(value = "/getOrganizationTree") + public JSONArray getOrganizationTree() throws Exception{ + JSONArray arr=new JSONArray(); + List organizationTree= organizationService.getOrganizationTree(); + if(organizationTree!=null&&organizationTree.size()>0){ + for(TreeNode node:organizationTree){ + String str=JSON.toJSONString(node); + JSONObject obj=JSON.parseObject(str); + arr.add(obj) ; + } + } + return arr; + } + /** + * create by: cjl + * description: + * 新增机构信息 + * create time: 2019/2/19 17:17 + * @Param: beanJson + * @return java.lang.Object + */ + @RequestMapping(value = "/addOrganization") + public Object addOrganization(@RequestParam("info") String beanJson) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + Organization org= JSON.parseObject(beanJson, Organization.class); + int i= organizationService.addOrganization(org); + if(i<1){ + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_ADD_FAILED_CODE, + ExceptionConstants.ORGANIZATION_ADD_FAILED_MSG); + } + return result; + } + /** + * create by: cjl + * description: + * 修改机构信息 + * create time: 2019/2/20 9:30 + * @Param: beanJson + * @return java.lang.Object + */ + @RequestMapping(value = "/editOrganization") + public Object editOrganization(@RequestParam("info") String beanJson) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + Organization org= JSON.parseObject(beanJson, Organization.class); + int i= organizationService.editOrganization(org); + if(i<1){ + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_EDIT_FAILED_CODE, + ExceptionConstants.ORGANIZATION_EDIT_FAILED_MSG); + } + return result; + } + /** + * create by: cjl + * description: + * 批量删除机构信息 + * create time: 2019/2/19 17:26 + * @Param: ids + * @return java.lang.Object + */ + @RequestMapping(value = "/batchDeleteOrganization") + public Object batchDeleteOrganization(@RequestParam("ids") String ids) throws Exception { + JSONObject result = ExceptionConstants.standardSuccess(); + int i= organizationService.batchDeleteOrganizationByIds(ids); + if(i<1){ + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_DELETE_FAILED_CODE, + ExceptionConstants.ORGANIZATION_DELETE_FAILED_MSG); + } + return result; + } +} diff --git a/src/main/java/com/jsh/erp/datasource/mappers/OrganizationMapperEx.java b/src/main/java/com/jsh/erp/datasource/mappers/OrganizationMapperEx.java new file mode 100644 index 00000000..bec06a91 --- /dev/null +++ b/src/main/java/com/jsh/erp/datasource/mappers/OrganizationMapperEx.java @@ -0,0 +1,29 @@ +package com.jsh.erp.datasource.mappers; + +import com.jsh.erp.datasource.entities.MaterialCategory; +import com.jsh.erp.datasource.entities.Organization; +import com.jsh.erp.datasource.vo.TreeNode; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/6 15:51 + */ +public interface OrganizationMapperEx { + + + List getNodeTree(); + List getNextNodeTree(@Param("id") Long id); + + int addOrganization(Organization org); + + int batchDeleteOrganizationByIds(@Param("updateTime") Date updateTime, @Param("updater") Long updater, @Param("ids") String ids[]); + + int editOrganization(Organization org); + List getOrganizationRootByIds(@Param("ids") String ids[]); +} diff --git a/src/main/java/com/jsh/erp/service/organization/OrganizationComponent.java b/src/main/java/com/jsh/erp/service/organization/OrganizationComponent.java new file mode 100644 index 00000000..c7ff227a --- /dev/null +++ b/src/main/java/com/jsh/erp/service/organization/OrganizationComponent.java @@ -0,0 +1,66 @@ +package com.jsh.erp.service.organization; + +import com.jsh.erp.service.ICommonQuery; +import com.jsh.erp.utils.Constants; +import com.jsh.erp.utils.QueryUtils; +import com.jsh.erp.utils.StringUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/6 15:09 + */ +@Service(value = "organization_component") +@OrganizationResource +public class OrganizationComponent implements ICommonQuery { + @Resource + private OrganizationService organizationService; + @Override + public Object selectOne(String condition) { + return null; + } + + @Override + public List select(Map parameterMap) { + return getOrganizationList(parameterMap); + } + private List getOrganizationList(Map map) { + return null; + } + @Override + public Long counts(Map parameterMap) { + return null; + } + + @Override + public int insert(String beanJson, HttpServletRequest request) { + return organizationService.insertOrganization(beanJson,request); + } + + @Override + public int update(String beanJson, Long id) { + return organizationService.updateOrganization(beanJson,id); + } + + @Override + public int delete(Long id) { + return organizationService.deleteOrganization(id); + } + + @Override + public int batchDelete(String ids) { + return organizationService.batchDeleteOrganization(ids); + } + + @Override + public int checkIsNameExist(Long id, String name) { + return 0; + } +} diff --git a/src/main/java/com/jsh/erp/service/organization/OrganizationResource.java b/src/main/java/com/jsh/erp/service/organization/OrganizationResource.java new file mode 100644 index 00000000..e299cc0b --- /dev/null +++ b/src/main/java/com/jsh/erp/service/organization/OrganizationResource.java @@ -0,0 +1,18 @@ +package com.jsh.erp.service.organization; + +import com.jsh.erp.service.ResourceInfo; + +import java.lang.annotation.*; + +/** + * Description + * 机构 + * @Author: cjl + * @Date: 2019/3/6 15:10 + */ +@ResourceInfo(value = "organization", type = 110) +@Inherited +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +public @interface OrganizationResource { +} diff --git a/src/main/java/com/jsh/erp/service/organization/OrganizationService.java b/src/main/java/com/jsh/erp/service/organization/OrganizationService.java new file mode 100644 index 00000000..256898c9 --- /dev/null +++ b/src/main/java/com/jsh/erp/service/organization/OrganizationService.java @@ -0,0 +1,188 @@ +package com.jsh.erp.service.organization; + +import com.alibaba.fastjson.JSONObject; +import com.jsh.erp.constants.BusinessConstants; +import com.jsh.erp.constants.ExceptionConstants; +import com.jsh.erp.datasource.entities.Organization; +import com.jsh.erp.datasource.entities.OrganizationExample; +import com.jsh.erp.datasource.entities.User; +import com.jsh.erp.datasource.mappers.OrganizationMapper; +import com.jsh.erp.datasource.mappers.OrganizationMapperEx; +import com.jsh.erp.datasource.vo.TreeNode; +import com.jsh.erp.exception.BusinessRunTimeException; +import com.jsh.erp.service.user.UserService; +import com.jsh.erp.utils.StringUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; + +/** + * Description + * + * @Author: cjl + * @Date: 2019/3/6 15:10 + */ +@Service +public class OrganizationService { + private Logger logger = LoggerFactory.getLogger(OrganizationService.class); + + @Resource + private OrganizationMapper organizationMapper; + @Resource + private OrganizationMapperEx organizationMapperEx; + @Resource + private UserService userService; + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int insertOrganization(String beanJson, HttpServletRequest request) { + Organization organization = JSONObject.parseObject(beanJson, Organization.class); + return organizationMapper.insertSelective(organization); + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int updateOrganization(String beanJson, Long id) { + Organization organization = JSONObject.parseObject(beanJson, Organization.class); + organization.setId(id); + return organizationMapper.updateByPrimaryKeySelective(organization); + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int deleteOrganization(Long id) { + return organizationMapper.deleteByPrimaryKey(id); + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteOrganization(String ids) { + List idList = StringUtil.strToLongList(ids); + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdIn(idList); + return organizationMapper.deleteByExample(example); + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int addOrganization(Organization org) throws Exception{ + //新增时间 + Date date=new Date(); + User userInfo=userService.getCurrentUser(); + org.setCreateTime(date); + //新增人 + org.setCreator(userInfo==null?null:userInfo.getId()); + //修改时间 + org.setUpdateTime(date); + //修改人 + org.setUpdater(userInfo==null?null:userInfo.getId()); + /** + *添加的时候检测机构编号是否已存在 + * */ + if(StringUtil.isNotEmpty(org.getOrgNo())){ + checkOrgNoIsExists(org.getOrgNo(),null); + } + /** + * 未指定父级机构的时候默认放在根机构下 + * */ + if(StringUtil.isEmpty(org.getOrgParentNo())){ + org.setOrgParentNo(BusinessConstants.ORGANIZATION_ROOT_NO); + } + return organizationMapperEx.addOrganization(org); + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int editOrganization(Organization org)throws Exception { + //修改时间 + org.setUpdateTime(new Date()); + User userInfo=userService.getCurrentUser(); + //修改人 + org.setUpdater(userInfo==null?null:userInfo.getId()); + /** + * 修改的时候检测机构编号是否已存在 + * */ + if(StringUtil.isNotEmpty(org.getOrgNo())){ + checkOrgNoIsExists(org.getOrgNo(),org.getId()); + } + /** + * 未指定父级机构的时候默认放在根机构下 + * */ + if(StringUtil.isEmpty(org.getOrgParentNo())){ + org.setOrgParentNo(BusinessConstants.ORGANIZATION_ROOT_NO); + } + /** + * 添加一个限制,根机构不允许修改 + * */ + if(BusinessConstants.ORGANIZATION_ROOT_NO.equals(org.getOrgNo())){ + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}]", + ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_CODE,ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_MSG,org.getOrgNo()); + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_CODE, + ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_EDIT_MSG); + } + return organizationMapperEx.editOrganization(org); + } + + public List getOrganizationTree()throws Exception { + return organizationMapperEx.getNodeTree(); + } + + public List findById(Long id) throws Exception{ + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andIdEqualTo(id); + return organizationMapper.selectByExample(example); + } + + public List findByOrgNo(String orgNo)throws Exception { + OrganizationExample example = new OrganizationExample(); + example.createCriteria().andOrgNoEqualTo(orgNo).andOrgStcdNotEqualTo(BusinessConstants.ORGANIZATION_STCD_REMOVED); + return organizationMapper.selectByExample(example); + } + /** + * create by: cjl + * description: + * 检查机构编号是否已经存在 + * create time: 2019/3/7 10:01 + * @Param: orgNo + * @return void + */ + public void checkOrgNoIsExists(String orgNo,Long id)throws Exception { + List orgList=findByOrgNo(orgNo); + if(orgList!=null&&orgList.size()>0){ + if(orgList.size()>1){ + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}]", + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE,ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG,orgNo); + //获取的数据条数大于1,机构编号已存在 + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE, + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG); + } + if(id!=null){ + if(!orgList.get(0).getId().equals(id)){ + //数据条数等于1,但是和编辑的数据的id不相同 + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}],id[{}]", + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE,ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG,orgNo,id); + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE, + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG); + } + }else{ + logger.error("异常码[{}],异常提示[{}],参数,orgNo[{}]", + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE,ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG,orgNo); + //数据条数等于1,但此时是新增 + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_CODE, + ExceptionConstants.ORGANIZATION_NO_ALREADY_EXISTS_MSG); + } + } + + } + @Transactional(value = "transactionManager", rollbackFor = Exception.class) + public int batchDeleteOrganizationByIds(String ids) throws Exception{ + User userInfo=userService.getCurrentUser(); + String [] idArray=ids.split(","); + /** + * 添加一个限制,根机构不允许删除 + * */ + List orgRootList=organizationMapperEx.getOrganizationRootByIds(idArray); + if(orgRootList!=null&&orgRootList.size()>0){ + logger.error("异常码[{}],异常提示[{}],参数,ids[{}]", + ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_CODE,ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_MSG,ids); + throw new BusinessRunTimeException(ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_CODE, + ExceptionConstants.ORGANIZATION_ROOT_NOT_ALLOWED_DELETE_MSG); + } + + return organizationMapperEx.batchDeleteOrganizationByIds(new Date(),userInfo==null?null:userInfo.getId(),idArray); + } +} diff --git a/src/main/resources/mapper_xml/OrganizationMapperEx.xml b/src/main/resources/mapper_xml/OrganizationMapperEx.xml new file mode 100644 index 00000000..8eef8c55 --- /dev/null +++ b/src/main/resources/mapper_xml/OrganizationMapperEx.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + id, org_abr,org_no + + + + + + + insert into jsh_organization + (org_no, org_full_name, + org_abr, org_tpcd, org_stcd, + org_parent_no, sort, remark, + create_time, creator, update_time, + updater, org_create_time, org_stop_time) + values + (#{orgNo,jdbcType=VARCHAR}, #{orgFullName,jdbcType=VARCHAR}, + #{orgAbr,jdbcType=VARCHAR}, #{orgTpcd,jdbcType=VARCHAR}, #{orgStcd,jdbcType=CHAR}, + #{orgParentNo,jdbcType=VARCHAR}, #{sort,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{creator,jdbcType=BIGINT}, #{updateTime,jdbcType=TIMESTAMP}, + #{updater,jdbcType=BIGINT}, #{orgCreateTime,jdbcType=TIMESTAMP}, #{orgStopTime,jdbcType=TIMESTAMP} + ) + + + update jsh_organization + set update_Time=#{updateTime},updater=#{updater},org_stcd='5' + where id in ( + + #{id} + + ) + + + update jsh_organization + set update_time=#{updateTime},updater=#{updater}, + org_no = #{orgNo},org_full_name = #{orgFullName}, + org_abr = #{orgAbr},org_tpcd = #{orgTpcd}, + org_stcd = #{orgStcd},org_parent_no = #{orgParentNo}, + sort = #{sort},remark = #{remark}, + org_create_time = #{orgCreateTime},org_stop_time = #{orgStopTime} + where id =#{id} + + + + + \ No newline at end of file diff --git a/src/test/resources/generatorConfig.xml b/src/test/resources/generatorConfig.xml index d267bdb4..78241a6a 100644 --- a/src/test/resources/generatorConfig.xml +++ b/src/test/resources/generatorConfig.xml @@ -48,7 +48,7 @@
--> -
+ +
+