From fa24d347d4c5a796297184f9957b0582dc52c66e Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期五, 14 二月 2020 14:34:00 +0800 Subject: [PATCH] init 2/14 --- src/main/java/com/highdatas/mdm/service/impl/DeletedTableLogServiceImpl.java | 20 ++ src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java | 40 +++ src/main/java/com/highdatas/mdm/entity/DeletedTableLog.java | 68 ++++++ src/main/java/com/highdatas/mdm/service/IDeletedTableLogService.java | 16 + src/main/java/com/highdatas/mdm/mapper/DeletedTableLogMapper.java | 16 + src/main/java/com/highdatas/mdm/controller/SysBusinessOperateController.java | 2 src/main/java/com/highdatas/mdm/pojo/Result.java | 2 src/main/resources/application-prod.yml | 19 - pom.xml | 6 src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java | 24 ++ src/main/java/com/highdatas/mdm/mapper/TableInfoMapper.java | 4 src/main/java/com/highdatas/mdm/util/WorkflowUtils.java | 62 ++++++ src/main/java/com/highdatas/mdm/util/Constant.java | 2 src/main/java/com/highdatas/mdm/controller/MenuMappingController.java | 6 src/main/java/com/highdatas/mdm/util/MpGenerator.java | 2 src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java | 13 + src/main/resources/application-dev.yml | 9 src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java | 13 src/main/java/com/highdatas/mdm/controller/MasterDataController.java | 42 +++ src/main/resources/mapping/TableInfoMapper.xml | 42 ++++ src/main/java/com/highdatas/mdm/service/act/impl/HistoryServiceImpl.java | 2 src/main/resources/static/process/editor-app/configuration/toolbar-default-actions.js | 8 src/main/java/com/highdatas/mdm/controller/DeletedTableLogController.java | 20 ++ src/main/java/com/highdatas/mdm/controller/MaintainController.java | 19 + src/main/java/com/highdatas/mdm/service/MasterDataService.java | 5 src/main/java/com/highdatas/mdm/util/DbUtils.java | 21 ++ src/main/java/com/highdatas/mdm/controller/ActivitiDesignerController.java | 11 src/main/java/com/highdatas/mdm/mapper/xml/DeletedTableLogMapper.xml | 12 + src/main/java/com/highdatas/mdm/controller/ActivitiController.java | 51 ++++ src/main/java/com/highdatas/mdm/service/IMenuMappingService.java | 2 src/main/java/com/highdatas/mdm/controller/SysMenuController.java | 21 ++ 31 files changed, 529 insertions(+), 51 deletions(-) diff --git a/pom.xml b/pom.xml index c7b0082..875578c 100644 --- a/pom.xml +++ b/pom.xml @@ -237,7 +237,11 @@ <artifactId>spring-security-config</artifactId> <version>4.1.3.RELEASE</version> </dependency> - + <dependency> + <groupId>com.belerweb</groupId> + <artifactId>pinyin4j</artifactId> + <version>2.5.0</version> + </dependency> </dependencies> <build> diff --git a/src/main/java/com/highdatas/mdm/controller/ActivitiController.java b/src/main/java/com/highdatas/mdm/controller/ActivitiController.java index 2655142..45c2be7 100644 --- a/src/main/java/com/highdatas/mdm/controller/ActivitiController.java +++ b/src/main/java/com/highdatas/mdm/controller/ActivitiController.java @@ -20,12 +20,13 @@ import org.activiti.engine.task.Task; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; -import java.io.FileNotFoundException; +import java.io.*; import java.util.*; import java.util.stream.Collectors; @@ -67,7 +68,8 @@ IMaintainService maintainService; @Autowired ITUserService userService; - + @Value("${img.url}") + String basePath; @RequestMapping(value = "/list", method = RequestMethod.GET) public Result<List<Map<String, Object>>> list(HttpServletRequest request) throws FileNotFoundException { @@ -78,12 +80,50 @@ List<Map<String, Object>> list = flowsMapper.selectVersion(filterSegment); for (Map<String, Object> one : list) { String newModelId = (String) one.get(Constant.ID); - String url = "processes/" + newModelId + "/" + newModelId + ".png"; + String url = "act/img/" + newModelId; one.put("imgurl",url); } return Result.success(list); } + @RequestMapping(value = "/img/{modelId}", method = RequestMethod.GET) + public void image(@PathVariable String modelId, HttpServletResponse response) { + String filePath = basePath + modelId +"/"+ modelId + ".png"; + File file = new File(filePath); + FileInputStream fileInputStream = null; + response.setHeader("Content-Type", "image/png"); + try{ + fileInputStream = new FileInputStream(file); + OutputStream outputStream = response.getOutputStream(); + byte[] b = new byte[1024]; + int len; + while ((len = fileInputStream.read(b, 0, 1024)) != -1) { + outputStream.write(b, 0, len); + } + } + catch (Exception e) { + e.printStackTrace(); + } + finally { + if (fileInputStream != null) { + try { + fileInputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } + @RequestMapping(value = "/deleteModel/{modelId}", method = RequestMethod.GET) + public Result deleteModel(@PathVariable String modelId) { + boolean b = repositoryService.deleteModel(modelId); + if (b) { + return Result.success(null); + } else { + return Result.error(CodeMsg.DELETE_ERROR); + } + } @RequestMapping(value = "/processlist", method = RequestMethod.GET) public Result<Result<JSONArray>> processlist(HttpServletRequest request) { Result<JSONArray> processList = repositoryService.getProcessList(); @@ -286,6 +326,11 @@ } else { flows.setStatus(ActivitiStatus.open); } + + if (!pass) { + flows.setStatus(ActivitiStatus.close); + } + if (flows.getBusinessType().equals(ActivitiBusinessType.maintain)){ String maintainId = flows.getBusinessId(); maintainService.dealFlow(maintainId, flows.getStatus()); diff --git a/src/main/java/com/highdatas/mdm/controller/ActivitiDesignerController.java b/src/main/java/com/highdatas/mdm/controller/ActivitiDesignerController.java index 90efffb..7f6b67d 100644 --- a/src/main/java/com/highdatas/mdm/controller/ActivitiDesignerController.java +++ b/src/main/java/com/highdatas/mdm/controller/ActivitiDesignerController.java @@ -1,6 +1,8 @@ package com.highdatas.mdm.controller; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.highdatas.mdm.pojo.CodeMsg; +import com.highdatas.mdm.pojo.Result; import com.highdatas.mdm.service.ModelEditorService; import com.highdatas.mdm.service.act.IdentityService; import com.highdatas.mdm.service.act.RepositoryService; @@ -46,8 +48,13 @@ @RequestMapping(value="/model/{modelId}/save", method = RequestMethod.PUT) - public void saveModel(@PathVariable String modelId, HttpServletRequest request) { - repositoryService.saveModel(modelId, request); + public Result saveModel(@PathVariable String modelId, HttpServletRequest request) { + boolean saved = repositoryService.saveModel(modelId, request); + if (saved) { + return Result.success(null); + } else { + return Result.error(new CodeMsg(1000, "鏈娴嬪埌浠讳竴鏍囩")); + } } @RequestMapping(value="/model/{modelId}/delete", method = RequestMethod.PUT) diff --git a/src/main/java/com/highdatas/mdm/controller/DeletedTableLogController.java b/src/main/java/com/highdatas/mdm/controller/DeletedTableLogController.java new file mode 100644 index 0000000..2eb99a8 --- /dev/null +++ b/src/main/java/com/highdatas/mdm/controller/DeletedTableLogController.java @@ -0,0 +1,20 @@ +package com.highdatas.mdm.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.stereotype.Controller; + +/** + * <p> + * 鍓嶇鎺у埗鍣� + * </p> + * + * @author kimi + * @since 2020-01-13 + */ +@Controller +@RequestMapping("/deletedTableLog") +public class DeletedTableLogController { + +} diff --git a/src/main/java/com/highdatas/mdm/controller/MaintainController.java b/src/main/java/com/highdatas/mdm/controller/MaintainController.java index 597fc47..7d22c7f 100644 --- a/src/main/java/com/highdatas/mdm/controller/MaintainController.java +++ b/src/main/java/com/highdatas/mdm/controller/MaintainController.java @@ -74,6 +74,23 @@ return maintainService.getUnSubmitData(tableName, pageNo, pageSize, whereSegment); } + @RequestMapping(value = "{tableName}/unflow/{pageNo}", method = RequestMethod.GET) + public Result unflow(@PathVariable String tableName, @PathVariable Integer pageNo, HttpServletRequest request) throws UnsupportedEncodingException { + String pageSize = request.getParameter("pageSize"); + String whereSegment = request.getParameter("whereSegment"); + + if (StringUtils.isEmpty(whereSegment)) { + whereSegment = Constant.WHERE_DEFAULT; + }else { + whereSegment = URLDecoder.decode(whereSegment, "UTF-8"); + } + if (StringUtils.isEmpty(pageSize)) { + return maintainService.getInvalidVerionData(tableName, whereSegment, pageNo, null); + } else { + return maintainService.getInvalidVerionData(tableName, whereSegment, pageNo, Integer.valueOf(pageSize)); + } + } + @RequestMapping(value = "/history/{tableName}", method = RequestMethod.GET) public Result getHistory(@PathVariable String tableName) { @@ -88,6 +105,8 @@ } List<String> result = maintainList.stream() + .filter(maintain -> !StringUtils.isEmpty(maintain.getFlowId())) + .filter(maintain -> flowsService.selectById(maintain.getFlowId()).getStatus().equals(ActivitiStatus.open)) .map(maintain -> maintain.getVersion()) .collect(Collectors.toList()); diff --git a/src/main/java/com/highdatas/mdm/controller/MasterDataController.java b/src/main/java/com/highdatas/mdm/controller/MasterDataController.java index 49583a9..b2bbb0f 100644 --- a/src/main/java/com/highdatas/mdm/controller/MasterDataController.java +++ b/src/main/java/com/highdatas/mdm/controller/MasterDataController.java @@ -56,13 +56,18 @@ if (StringUtils.isEmpty(uploadType)) { uploadType = Constant.All; } + MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("table_name",tableName)); + SysOperateLog operateLog = new SysOperateLog(); + Maintain maxVersion = maintainService.getMaxVersion(tableName); Maintain maintain = new Maintain(); String biggerVersion = null; if (maxVersion == null) { biggerVersion = Constant.VERSION_Default; maintain.setOrderNo(0); + operateLog.setOperate("鍒濆鍖栦富棰樻暟鎹�"); } else { + operateLog.setOperate("鏇存柊涓婚"); String flowId = maxVersion.getFlowId(); String mVersion = maxVersion.getVersion(); if (StringUtils.isEmpty(flowId)) { @@ -99,9 +104,7 @@ Long aLong = tableInfoMapper.tempDeal(maintain.getTableName() + Constant.RECORD, DbUtils.quotedStr(maintain.getId())); maintain.setDesp(MessageFormat.format("涓婁紶鏁版嵁{0}鏉�", aLong)); - MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("table_name", maintain.getTableName())); - SysOperateLog operateLog = new SysOperateLog(); operateLog.setCreateTime(new Date()) .setMaintainId(maintain.getId()) .setId(DbUtils.getUUID()) @@ -178,25 +181,46 @@ return masterDataService.selectList(tableName,whereSegment); } - @RequestMapping(value = "{maintainId}/modify/{operateStr}", method = RequestMethod.GET) - public Result modify(@PathVariable String maintainId, @PathVariable String operateStr, HttpServletRequest request) throws UnsupportedEncodingException { + @RequestMapping(value = "{maintainId}/modify/{operateStr}", method = RequestMethod.POST) + public Result modify(@RequestParam String datas, @PathVariable String maintainId, @PathVariable String operateStr, HttpServletRequest request) throws UnsupportedEncodingException { Result result = null; Operate operate = Operate.parse(operateStr); - String datas = request.getParameter("datas"); Maintain maintain = maintainService.selectById(maintainId); switch (operate) { case delete: //datas is id; - result = deleteById(maintain.getTableName() + Constant.RECORD, datas); + Integer deleteCount = tableInfoMapper.deleteRecordByMaintainId(maintain.getTableName() + Constant.RECORD, DbUtils.quotedStr(datas), DbUtils.quotedStr(maintainId)); + + result = Result.success(deleteCount); break; case update: JSONObject jsonObject = JSONObject.parseObject(datas); - Object id = jsonObject.get("id"); - String updateSegment = masterDataService.getUpdateSegment(maintain.getTableName(), datas); - result = masterDataService.update(maintain.getTableName() + Constant.RECORD, updateSegment, false); + String id = (String) jsonObject.get("id"); + jsonObject.remove(Constant.ID); + datas = jsonObject.toJSONString(); + String updateSegment = masterDataService.getUpdateSegment(maintain.getTableName(), maintain.getTableName() + Constant.RECORD, datas); + + Integer updateCount = tableInfoMapper.updateRecordByMaintainId(maintain.getTableName() + Constant.RECORD, updateSegment, DbUtils.quotedStr(maintainId)); + result = Result.success(updateCount); break; case create: + JSONObject createObject = JSONObject.parseObject(datas); + String recordId = DbUtils.getUUID(); + createObject.fluentPut(Constant.ID, recordId); + createObject.fluentPut(Constant.STD_ID, DbUtils.getUUID()); + datas = createObject.toJSONString(); + + MaintainDetail maintainDetail = new MaintainDetail(); + maintainDetail.setParentId(maintainId); + maintainDetail.setId(DbUtils.getUUID()); + maintainDetail.setPreMergeId(recordId); + maintainDetail.setCreateTime(new Date()); + maintainDetail.setOperate(Operate.create); + result = masterDataService.insert(maintain.getTableName() + Constant.RECORD, datas); + if (result.getSuccess()) { + maintainDetail.insert(); + } break; default: result = Result.error(CodeMsg.OPERATR_ERROR); diff --git a/src/main/java/com/highdatas/mdm/controller/MenuMappingController.java b/src/main/java/com/highdatas/mdm/controller/MenuMappingController.java index d563cc0..e883222 100644 --- a/src/main/java/com/highdatas/mdm/controller/MenuMappingController.java +++ b/src/main/java/com/highdatas/mdm/controller/MenuMappingController.java @@ -41,9 +41,9 @@ @RequestMapping(value = "/add", method = RequestMethod.POST) public Result<Object> insert(@RequestParam String data, HttpServletRequest request) { HttpSession session = request.getSession(); - boolean inserted =menuMappingService.create(data, session); - if (inserted) { - return Result.success("鎻掑叆鎴愬姛", null); + MenuMapping inserted =menuMappingService.create(data, session); + if (inserted != null) { + return Result.success(inserted); } else { return Result.error(CodeMsg.INSERT_ERROR); } diff --git a/src/main/java/com/highdatas/mdm/controller/SysBusinessOperateController.java b/src/main/java/com/highdatas/mdm/controller/SysBusinessOperateController.java index 248164c..088f60e 100644 --- a/src/main/java/com/highdatas/mdm/controller/SysBusinessOperateController.java +++ b/src/main/java/com/highdatas/mdm/controller/SysBusinessOperateController.java @@ -82,7 +82,7 @@ String businessType = request.getParameter("businessType"); SysBusinessOperate businessOperate = businessOperateService.selectById(id); - businessOperate.setCreateTime(new Date()).setId(DbUtils.getUUID()).setChageId(user.getUserId()).setModelId(modelId).setBusinessType(businessType); + businessOperate.setCreateTime(new Date()).setChageId(user.getUserId()).setModelId(modelId).setBusinessType(businessType); businessOperate.setUpdateTime(new Date()); boolean update = businessOperate.updateById(); diff --git a/src/main/java/com/highdatas/mdm/controller/SysMenuController.java b/src/main/java/com/highdatas/mdm/controller/SysMenuController.java index 709c502..418336a 100644 --- a/src/main/java/com/highdatas/mdm/controller/SysMenuController.java +++ b/src/main/java/com/highdatas/mdm/controller/SysMenuController.java @@ -3,10 +3,14 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +import com.highdatas.mdm.entity.DeletedTableLog; +import com.highdatas.mdm.entity.MenuMapping; import com.highdatas.mdm.entity.SysMenu; import com.highdatas.mdm.pojo.CodeMsg; import com.highdatas.mdm.pojo.MaintainDataType; import com.highdatas.mdm.pojo.Result; +import com.highdatas.mdm.service.IDeletedTableLogService; +import com.highdatas.mdm.service.IMenuMappingService; import com.highdatas.mdm.service.ISysMenuService; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; @@ -31,7 +35,14 @@ @RequestMapping("/menu") public class SysMenuController { @Autowired - private ISysMenuService menuService; + ISysMenuService menuService; + + @Autowired + IMenuMappingService menuMappingService; + + @Autowired + IDeletedTableLogService deletedTableLogService; + @RequestMapping(value = "/all", method = RequestMethod.GET) public Result<List<SysMenu>> getAll() { @@ -213,6 +224,14 @@ HashSet<SysMenu> sysMenus = deleteMenuByParentId(data, menuid); for (SysMenu sysMenu : sysMenus) { + List<MenuMapping> menuMappingList = menuMappingService.selectList(new EntityWrapper<MenuMapping>().eq("menu_id", sysMenu.getId())); + for (MenuMapping menuMapping : menuMappingList) { + // 娣诲姞寰呭垹闄よ〃鐨勬棩蹇� + DeletedTableLog deletedTableLog = new DeletedTableLog(); + deletedTableLog.setId(DbUtils.getUUID()).setTableName(menuMapping.getTableName()).setCreateTime(new Date()); + deletedTableLog.insert(); + menuMapping.deleteById(); + } sysMenu.deleteById(); } boolean delete = menuService.deleteById(menuid); diff --git a/src/main/java/com/highdatas/mdm/entity/DeletedTableLog.java b/src/main/java/com/highdatas/mdm/entity/DeletedTableLog.java new file mode 100644 index 0000000..7a021ae --- /dev/null +++ b/src/main/java/com/highdatas/mdm/entity/DeletedTableLog.java @@ -0,0 +1,68 @@ +package com.highdatas.mdm.entity; + +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import java.io.Serializable; + +/** + * <p> + * + * </p> + * + * @author kimi + * @since 2020-01-13 + */ +@TableName("deleted_table_log") +public class DeletedTableLog extends Model<DeletedTableLog> { + + private static final long serialVersionUID = 1L; + + private String id; + + @TableField("table_name") + private String tableName; + + @TableField("create_time") + private Date createTime; + + public String getId() { + return id; + } + + public DeletedTableLog setId(String id) { + this.id = id; + return this; + } + public String getTableName() { + return tableName; + } + + public DeletedTableLog setTableName(String tableName) { + this.tableName = tableName; + return this; + } + public Date getCreateTime() { + return createTime; + } + + public DeletedTableLog setCreateTime(Date createTime) { + this.createTime = createTime; + return this; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "DeletedTableLog{" + + "id=" + id + + ", tableName=" + tableName + + ", createTime=" + createTime + + "}"; + } +} diff --git a/src/main/java/com/highdatas/mdm/mapper/DeletedTableLogMapper.java b/src/main/java/com/highdatas/mdm/mapper/DeletedTableLogMapper.java new file mode 100644 index 0000000..f8bea2d --- /dev/null +++ b/src/main/java/com/highdatas/mdm/mapper/DeletedTableLogMapper.java @@ -0,0 +1,16 @@ +package com.highdatas.mdm.mapper; + +import com.highdatas.mdm.entity.DeletedTableLog; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + * <p> + * Mapper 鎺ュ彛 + * </p> + * + * @author kimi + * @since 2020-01-13 + */ +public interface DeletedTableLogMapper extends BaseMapper<DeletedTableLog> { + +} diff --git a/src/main/java/com/highdatas/mdm/mapper/TableInfoMapper.java b/src/main/java/com/highdatas/mdm/mapper/TableInfoMapper.java index 394f3ad..af3986b 100644 --- a/src/main/java/com/highdatas/mdm/mapper/TableInfoMapper.java +++ b/src/main/java/com/highdatas/mdm/mapper/TableInfoMapper.java @@ -56,5 +56,9 @@ Integer updateStdId(@Param("tableTempName")String tableTempName); + Integer updateRecordByMaintainId(@Param("tableTempName")String tableTempName, @Param("updateSegment") String updateSegment, @Param("maintainId")String maintainId); + + Integer deleteRecordByMaintainId(@Param("tableTempName")String tableTempName, @Param("stdId") String stdId, @Param("maintainId")String maintainId); + } diff --git a/src/main/java/com/highdatas/mdm/mapper/xml/DeletedTableLogMapper.xml b/src/main/java/com/highdatas/mdm/mapper/xml/DeletedTableLogMapper.xml new file mode 100644 index 0000000..8c1744c --- /dev/null +++ b/src/main/java/com/highdatas/mdm/mapper/xml/DeletedTableLogMapper.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.highdatas.mdm.mapper.DeletedTableLogMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.highdatas.mdm.entity.DeletedTableLog"> + <id column="id" property="id" /> + <result column="table_name" property="tableName" /> + <result column="create_time" property="createTime" /> + </resultMap> + +</mapper> diff --git a/src/main/java/com/highdatas/mdm/pojo/Result.java b/src/main/java/com/highdatas/mdm/pojo/Result.java index f5b3df0..760c7a1 100644 --- a/src/main/java/com/highdatas/mdm/pojo/Result.java +++ b/src/main/java/com/highdatas/mdm/pojo/Result.java @@ -50,7 +50,7 @@ return new Result<T>(data); } public static <T> Result<T> success(CodeMsg codeMsg){ - return new Result<T>(codeMsg); + return new Result<T>(CodeMsg.SUCCESS); } public static <T> Result<T> success(String message, T data){ return new Result<T>(message, data); diff --git a/src/main/java/com/highdatas/mdm/service/IDeletedTableLogService.java b/src/main/java/com/highdatas/mdm/service/IDeletedTableLogService.java new file mode 100644 index 0000000..84d5ea5 --- /dev/null +++ b/src/main/java/com/highdatas/mdm/service/IDeletedTableLogService.java @@ -0,0 +1,16 @@ +package com.highdatas.mdm.service; + +import com.highdatas.mdm.entity.DeletedTableLog; +import com.baomidou.mybatisplus.service.IService; + +/** + * <p> + * 鏈嶅姟绫� + * </p> + * + * @author kimi + * @since 2020-01-13 + */ +public interface IDeletedTableLogService extends IService<DeletedTableLog> { + +} diff --git a/src/main/java/com/highdatas/mdm/service/IMenuMappingService.java b/src/main/java/com/highdatas/mdm/service/IMenuMappingService.java index 5dd8a76..1b29436 100644 --- a/src/main/java/com/highdatas/mdm/service/IMenuMappingService.java +++ b/src/main/java/com/highdatas/mdm/service/IMenuMappingService.java @@ -17,7 +17,7 @@ public interface IMenuMappingService extends IService<MenuMapping> { - boolean create(String json, HttpSession session); + MenuMapping create(String json, HttpSession session); boolean update(String json); diff --git a/src/main/java/com/highdatas/mdm/service/MasterDataService.java b/src/main/java/com/highdatas/mdm/service/MasterDataService.java index 3afd973..543016d 100644 --- a/src/main/java/com/highdatas/mdm/service/MasterDataService.java +++ b/src/main/java/com/highdatas/mdm/service/MasterDataService.java @@ -54,11 +54,14 @@ Result updateById(String tableName, String fieldsSegment, String id, boolean total); + Result updateByStdId(String tableName, String fieldsSegment, String id, boolean total); + Result update(String tableName, String fieldsSegment, boolean total); Result update(String tableName, String fieldsSegment, String whereSegment); String getUpdateSegment(String tableName, String fieldsSegment); + String getUpdateSegment(String tableName, String alias, String fieldsSegment); Result update(String tableName, String updateSegment, String whereDefault, boolean total); @@ -66,6 +69,8 @@ Result deleteById(String tableName, String id); + Result deleteByStdId(String tableName, String id); + Result delete(String tableName, String whereSegment); Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, String version, boolean findMax); diff --git a/src/main/java/com/highdatas/mdm/service/act/impl/HistoryServiceImpl.java b/src/main/java/com/highdatas/mdm/service/act/impl/HistoryServiceImpl.java index 317667a..a693ee7 100644 --- a/src/main/java/com/highdatas/mdm/service/act/impl/HistoryServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/act/impl/HistoryServiceImpl.java @@ -170,7 +170,7 @@ TUser onlineUser = getOnlineUser(); List<Map<String, String>> result = new ArrayList<Map<String, String>>(); List<HistoricProcessInstance> unFinishedTaskList = historyService.createHistoricProcessInstanceQuery().includeProcessVariables().unfinished().list(); - Map<String, String> singleTask = null ; + Map<String, String> singleTask = null; for (HistoricProcessInstance historicProcessInstance : unFinishedTaskList) { String userId = historicProcessInstance.getStartUserId(); diff --git a/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java b/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java index 41c3c45..9396e88 100644 --- a/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/act/impl/RepositoryServiceImpl.java @@ -30,6 +30,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.util.ClassUtils; @@ -52,7 +53,8 @@ RepositoryService service; @Autowired ObjectMapper objectMapper; - + @Value("${img.url}") + String basePath; //download public void getModelXml(HttpServletResponse response, String modelId) throws IOException { Model model = service.getModel(modelId); @@ -443,12 +445,15 @@ //1.3 ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(hashMap.get("json_xml").getBytes("utf-8")); BpmnModel bpmnModel = new BpmnJsonConverter().convertToBpmnModel(modelNode); + if (bpmnModel.getProcesses().size() == 0) { + return false; + } byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(bpmnModel); String processName = newModel.getName()+ ".bpmn20.xml"; Deployment deployment = service.createDeployment().name(newModel.getName()).addString(processName,new String(bpmnBytes,"UTF-8")).deploy(); newModel.setDeploymentId(deployment.getId()); newModel.setCategory(deployment.getId()); - + service.saveModel(newModel); //1.4 @@ -464,8 +469,7 @@ service.addModelEditorSourceExtra(newModel.getId(), result); String newModelId = newModel.getId(); //TODO dir 2. - String basePath = ClassUtils.getDefaultClassLoader().getResource("").getPath(); - String path = basePath + "static/processes/" + newModelId; + String path = basePath + newModelId; File dir = new File(path); if (!dir.exists()) { dir.mkdirs(); @@ -476,6 +480,7 @@ if (file.exists()) { file.delete(); } + log.info(file.getAbsolutePath()); file.createNewFile(); fileOutputStream2 = new FileOutputStream(file); fileOutputStream2.write(bpmnBytes); diff --git a/src/main/java/com/highdatas/mdm/service/impl/DeletedTableLogServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/DeletedTableLogServiceImpl.java new file mode 100644 index 0000000..71e2914 --- /dev/null +++ b/src/main/java/com/highdatas/mdm/service/impl/DeletedTableLogServiceImpl.java @@ -0,0 +1,20 @@ +package com.highdatas.mdm.service.impl; + +import com.highdatas.mdm.entity.DeletedTableLog; +import com.highdatas.mdm.mapper.DeletedTableLogMapper; +import com.highdatas.mdm.service.IDeletedTableLogService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author kimi + * @since 2020-01-13 + */ +@Service +public class DeletedTableLogServiceImpl extends ServiceImpl<DeletedTableLogMapper, DeletedTableLog> implements IDeletedTableLogService { + +} diff --git a/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java index f7c8f61..fc3971f 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java @@ -45,6 +45,7 @@ MasterDataService masterDataService; @Autowired ISysFieldService fieldService; + @Autowired MaintainMapper maintainMapper; @@ -306,16 +307,22 @@ continue; } ActivitiStatus status = flows.getStatus(); - if (status.equals(ActivitiStatus.open)) { + if (status.equals(ActivitiStatus.open) && nowMaintain == null) { nowMaintain = maintain; - break; + continue; + } + if (!status.equals(ActivitiStatus.open) && nowMaintain != null){ + nowMaintain = null; } } if (nowMaintain == null) { nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc")); } int orderNo = nowMaintain.getOrderNo(); - orderNo--; + Maintain nowVersion = getNowVersion(tableName); + if (nowVersion != null && nowVersion.getOrderNo() == orderNo) { + orderNo--; + } Maintain maintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", nowMaintain.getTableName()).eq("order_no", orderNo)); return maintain; } diff --git a/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java index a04589d..855e7a2 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java @@ -472,6 +472,7 @@ try { String[] split = fields.split(Constant.SEMICOLON); List<String> fieldNameList = Arrays.stream(split).map(s -> s.trim()).collect(Collectors.toList()); + fields = fieldNameList.stream().collect(Collectors.joining(Constant.COMMA)); ContentBuilder builder = new ContentBuilder(Constant.COMMA); Object parse = JSON.parse(values); List<String> ids = new ArrayList<>(); @@ -481,7 +482,7 @@ ids.add(id); String sqlValues = builder.toString(); mapper.insert(tableName, fields, sqlValues); - return Result.success(CodeMsg.INSERT_SUCCESS); + return Result.success(ids); } else if (parse instanceof JSONArray) { JSONArray jsonArray = (JSONArray) parse; int size = jsonArray.size(); @@ -582,6 +583,12 @@ } @Override + public Result updateByStdId(String tableName, String fieldsSegment, String id, boolean total) { + String whereStr = DbUtils.combieOneSegment(Constant.STD_ID, id); + return update(tableName, fieldsSegment,whereStr, total); + } + + @Override public Result update(String tableName, String fieldsSegment, boolean total) { String whereSegment = Constant.WHERE_DEFAULT; return update(tableName, fieldsSegment,whereSegment, total); @@ -614,6 +621,31 @@ segment = new Segment(fieldName, String.valueOf(o)); } else { segment = new Segment(fieldName, o); + } + builder.append(segment.toString()); + } + return builder.toString(); + } + + @Override + public String getUpdateSegment(String tableName, String alias, String fieldsSegment) { + ContentBuilder builder = new ContentBuilder(Constant.COMMA); + JSONObject jsonObject = JSONObject.parseObject(fieldsSegment); + List<TableSchemaResult> tableFieldResultList = mapper.getTableField(tableName); + for (TableSchemaResult tableSchemaResult : tableFieldResultList) { + String dbType = tableSchemaResult.getDbType(); + String fieldName = tableSchemaResult.getFieldName(); + Object o = jsonObject.get(fieldName); + if (o == null) { + continue; + } + String javaTypeStr = DbUtils.toSqlToJava(dbType); + Segment segment; + if ("string".equalsIgnoreCase(javaTypeStr.trim())) { + + segment = new Segment(MessageFormat.format(Constant.Alias, alias, fieldName), String.valueOf(o)); + } else { + segment = new Segment(MessageFormat.format(Constant.Alias, alias, fieldName), o); } builder.append(segment.toString()); } @@ -691,6 +723,12 @@ String whereStr = DbUtils.combieOneSegment(Constant.ID, id); return delete(tableName, whereStr); } + + @Override + public Result deleteByStdId(String tableName, String id) { + String whereStr = DbUtils.combieOneSegment(Constant.STD_ID, id); + return delete(tableName, whereStr); + } @Override public Result delete(String tableName, String whereSegment) { try { diff --git a/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java index bdb7379..3e9bae2 100644 --- a/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java +++ b/src/main/java/com/highdatas/mdm/service/impl/MenuMappingServiceImpl.java @@ -22,6 +22,7 @@ import com.highdatas.mdm.service.ISysMenuService; import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; +import com.highdatas.mdm.util.WorkflowUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -58,7 +59,7 @@ public static final String key = "process"; @Override - public boolean create(String json, HttpSession session) { + public MenuMapping create(String json, HttpSession session) { JSONObject jsonObject = JSONObject.parseObject(json); // //1 // Flows flows = activitiService.start(key, session); @@ -81,7 +82,7 @@ menuMapping = objectMapper.readValue(json, MenuMapping.class); } catch (JsonProcessingException e) { e.printStackTrace(); - return false; + return null; } //menuMapping.setMaintainId(maintainId); return create(menuMapping); @@ -109,10 +110,25 @@ return null; } - public boolean create(MenuMapping menuMapping) { + public MenuMapping create(MenuMapping menuMapping) { menuMapping.setCreateTime(new Date()); menuMapping.setId(DbUtils.getUUID()); - return this.insert(menuMapping); + String name = menuMapping.getName(); + name = DbUtils.getChineseOrEnglishOrNumber(name); + String tableName = WorkflowUtils.toFirstChar(name.toLowerCase()); + tableName = Constant.MD + tableName; + String tableByName = tableInfoMapper.selectTableByName(tableName); + if (!StringUtils.isEmpty(tableByName)){ + tableName = tableName + "_" + DbUtils.getUUID(5); + } + menuMapping.setTableName(tableName); + boolean insert = this.insert(menuMapping); + if (insert) { + return menuMapping; + } else { + return null; + } + } @Override diff --git a/src/main/java/com/highdatas/mdm/util/Constant.java b/src/main/java/com/highdatas/mdm/util/Constant.java index c178428..6364547 100644 --- a/src/main/java/com/highdatas/mdm/util/Constant.java +++ b/src/main/java/com/highdatas/mdm/util/Constant.java @@ -46,4 +46,6 @@ String A2 = "a2"; String All = "all"; String DataMenu = "DataMenu"; + String AND = " and "; + String MD = "md_"; } diff --git a/src/main/java/com/highdatas/mdm/util/DbUtils.java b/src/main/java/com/highdatas/mdm/util/DbUtils.java index 115281f..68763f1 100644 --- a/src/main/java/com/highdatas/mdm/util/DbUtils.java +++ b/src/main/java/com/highdatas/mdm/util/DbUtils.java @@ -88,6 +88,10 @@ String id = UUID.randomUUID().toString().replaceAll("-", ""); return id; } + public static String getUUID(int i) { + String id = UUID.randomUUID().toString().replaceAll("-", "").substring(0, i); + return id; + } public static String combieOneSegment(String name, String value) { Segment segment = new Segment(name, value); @@ -213,4 +217,21 @@ public static int getOrderNoAdd(int orderNo) { return orderNo + 1; } + + public static final String getChineseOrEnglishOrNumber(String str) { + StringBuffer sbf = new StringBuffer(); + char[] charArray = str.toCharArray(); + for (int i = 0; i < charArray.length; i++) { + if ((charArray[i] >= 0x4e00) && (charArray[i] <= 0x9fbb)) { + sbf.append(charArray[i]); + } + if ((charArray[i] >= 65) && (charArray[i] <= 122)) { + sbf.append(charArray[i]); + } + if (str.charAt(i) >= 48 && str.charAt(i) <= 57) { + sbf.append(charArray[i]); + } + } + return sbf.toString(); + } } diff --git a/src/main/java/com/highdatas/mdm/util/MpGenerator.java b/src/main/java/com/highdatas/mdm/util/MpGenerator.java index f7ccee7..debef73 100644 --- a/src/main/java/com/highdatas/mdm/util/MpGenerator.java +++ b/src/main/java/com/highdatas/mdm/util/MpGenerator.java @@ -65,7 +65,7 @@ // strategy.setCapitalMode(true);// 鍏ㄥ眬澶у啓鍛藉悕 ORACLE 娉ㄦ剰 strategy.setTablePrefix(new String[]{""});// 姝ゅ鍙互淇敼涓烘偍鐨勮〃鍓嶇紑 strategy.setNaming(NamingStrategy.underline_to_camel);// 琛ㄥ悕鐢熸垚绛栫暐 - strategy.setInclude(new String[]{"sys_business_operate"}); // 闇�瑕佺敓鎴愮殑琛� + strategy.setInclude(new String[]{"deleted_table_log"}); // 闇�瑕佺敓鎴愮殑琛� // strategy.setExclude(new String[]{"test"}); // 鎺掗櫎鐢熸垚鐨勮〃 // 鑷畾涔夊疄浣撶埗绫� // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity"); diff --git a/src/main/java/com/highdatas/mdm/util/WorkflowUtils.java b/src/main/java/com/highdatas/mdm/util/WorkflowUtils.java index 33a8f11..5758f74 100644 --- a/src/main/java/com/highdatas/mdm/util/WorkflowUtils.java +++ b/src/main/java/com/highdatas/mdm/util/WorkflowUtils.java @@ -1,10 +1,15 @@ package com.highdatas.mdm.util; +import com.highdatas.mdm.process.canvas.ProcessDiagramGenerator; +import net.sourceforge.pinyin4j.PinyinHelper; +import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; +import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; +import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; +import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import org.activiti.bpmn.model.BpmnModel; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.ProcessDefinition; -import com.highdatas.mdm.process.canvas.ProcessDiagramGenerator; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,6 +22,11 @@ public class WorkflowUtils { + + public static void main(String[] args) { + System.out.println(toFirstChar("姹夊瓧杞崲涓烘嫾闊�").toUpperCase()); //杞负棣栧瓧姣嶅ぇ鍐� + //System.out.println(toPinyin("姹夊瓧杞崲涓烘嫾闊�")); + } private static Logger logger = LoggerFactory.getLogger(WorkflowUtils.class); /** @@ -83,4 +93,54 @@ return diagramPath; } + + /** + * 鑾峰彇瀛楃涓叉嫾闊崇殑绗竴涓瓧姣� + * @param chinese + * @return + */ + public static String toFirstChar(String chinese){ + String pinyinStr = ""; + char[] newChar = chinese.toCharArray(); //杞负鍗曚釜瀛楃 + HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); + defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); + defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); + for (int i = 0; i < newChar.length; i++) { + if (newChar[i] > 128) { + try { + pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0].charAt(0); + } catch (BadHanyuPinyinOutputFormatCombination e) { + e.printStackTrace(); + } + }else{ + pinyinStr += newChar[i]; + } + } + return pinyinStr; + } + + /** + * 姹夊瓧杞负鎷奸煶 + * @param chinese + * @return + */ + public static String toPinyin(String chinese){ + String pinyinStr = ""; + char[] newChar = chinese.toCharArray(); + HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); + defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); + defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); + for (int i = 0; i < newChar.length; i++) { + if (newChar[i] > 128) { + try { + pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0]; + } catch (BadHanyuPinyinOutputFormatCombination e) { + e.printStackTrace(); + } + }else{ + pinyinStr += newChar[i]; + } + } + return pinyinStr; + } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index a65091b..c49623d 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,13 +1,16 @@ server: port: 9010 #url: jdbc:mysql://180.169.94.250:8306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true +img: + url1: /usr/project/mdm/activiti + url : d:/datagovernance/file/activiti/ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true - username: root - password: 123456 + url: jdbc:mysql://180.169.94.250:8306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true + username: masterdata + password: md123! activiti: database-schema-update: true diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 74d55c7..8273b0a 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -2,18 +2,19 @@ port: 9010 bak: url: 220.158.10.151 - +img: + url: d:/datagovernance/file/activiti/ baks: - url1: jdbc:mysql://127.0.0.1:3306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true + url: jdbc:mysql://127.0.0.1:3306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true username: root password: datacvg123! spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.2.230:3306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true - username: masterdata - password: md123! + url: jdbc:mysql://127.0.0.1:3306/data_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&nullCatalogMeansCurrent=true + username: root + password: datacvg123! hikari: minimum-idle: 3 max-lifetime: 30000 @@ -28,21 +29,17 @@ servlet: content-type: text/html encoding: utf-8 + logging: level: com: highdatas: mdm: mapper: DEBUG + mybatis-plus: mapper-locations: classpath:mapping/*.xml type-aliases-package: com.highdatas.mdm.mapper global-config: db-config: column-underline: true - -exists: - callback: - url: http://192.168.2.68:18080/activiti/getBusinessId -#activiti: -# check-process-definitions: false \ No newline at end of file diff --git a/src/main/resources/mapping/TableInfoMapper.xml b/src/main/resources/mapping/TableInfoMapper.xml index 5526fe0..c208b70 100644 --- a/src/main/resources/mapping/TableInfoMapper.xml +++ b/src/main/resources/mapping/TableInfoMapper.xml @@ -28,9 +28,11 @@ SELECT std_id FROM ${tableTempName} tm LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} and operate = 'create' AND tm.std_id = m.id + AND f.status = 'open' and maintain.table_name = '${tableName}' ) ) a1 LEFT JOIN @@ -42,8 +44,10 @@ SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id LEFT JOIN maintain m on m.id = md.parent_id + LEFT JOIN flows f on m.flow_id = f.id WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}' and operate = 'update' + AND f.status = 'open' GROUP BY mt.std_id ) a on a.order_no = m.order_no and a.std_id = h.std_id )a2 on a1.id = a2.id WHERE a2.id is null @@ -56,8 +60,10 @@ SELECT std_id FROM ${tableTempName} tm LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} and operate = 'create' + AND f.status = 'open' AND tm.std_id = m.id and maintain.table_name = '${tableName}' ) ) a1 @@ -70,23 +76,29 @@ SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id LEFT JOIN maintain m on m.id = md.parent_id + LEFT JOIN flows f on m.flow_id = f.id WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}' and operate = 'update' + AND f.status = 'open' GROUP BY mt.std_id ) a on a.order_no = m.order_no and a.std_id = h.std_id )a2 on a1.id = a2.id WHERE a2.id is not null UNION SELECT ${tempFields} FROM maintain_detail md LEFT JOIN maintain ON maintain.id = md.parent_id + LEFT JOIN flows f on maintain.flow_id = f.id LEFT JOIN ${tableTempName} mt on mt.id = md.pre_merge_id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} AND operate = 'delete' + AND f.status = 'open' and maintain.table_name = '${tableName}' AND NOT EXISTS ( SELECT * FROM maintain_detail LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id LEFT JOIN ${tableTempName} mt1 on mt1.id = maintain_detail.pre_merge_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} AND operate = 'create' + AND f.status = 'open' AND mt.std_id = mt1.std_id and maintain.table_name = '${tableName}' ) @@ -208,8 +220,10 @@ SELECT std_id FROM ${tableTempName} tm LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} and maintain.table_name = '${tableName}' + AND f.status = 'open' and operate = 'create' AND tm.std_id = m.id ) ) a1 @@ -222,8 +236,10 @@ SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id LEFT JOIN maintain m on m.id = md.parent_id + LEFT JOIN flows f on m.flow_id = f.id WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}' and operate = 'update' + AND f.status = 'open' GROUP BY mt.std_id ) a on a.order_no = m.order_no and a.std_id = h.std_id )a2 on a1.id = a2.id WHERE a2.id is null @@ -236,8 +252,10 @@ SELECT std_id FROM ${tableTempName} tm LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} and maintain.table_name = '${tableName}' + AND f.status = 'open' and operate = 'create' AND tm.std_id = m.id ) ) a1 @@ -250,8 +268,10 @@ SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id LEFT JOIN maintain m on m.id = md.parent_id + LEFT JOIN flows f on m.flow_id = f.id WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}' and operate = 'update' + AND f.status = 'open' GROUP BY mt.std_id ) a on a.order_no = m.order_no and a.std_id = h.std_id )a2 on a1.id = a2.id WHERE a2.id is not null @@ -259,15 +279,19 @@ SELECT ${tempFields} FROM maintain_detail md LEFT JOIN maintain ON maintain.id = md.parent_id LEFT JOIN ${tableTempName} mt on mt.id = md.pre_merge_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} and maintain.table_name = '${tableName}' + AND f.status = 'open' AND operate = 'delete' AND NOT EXISTS ( SELECT * FROM maintain_detail LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id LEFT JOIN ${tableTempName} mt1 on mt1.id = maintain_detail.pre_merge_id + LEFT JOIN flows f on maintain.flow_id = f.id WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} AND operate = 'create' + AND f.status = 'open' AND mt.std_id = mt1.std_id and maintain.table_name = '${tableName}' ) @@ -437,4 +461,22 @@ and maintain_detail.pre_merge_id = t.id ) </select> + + + <select id="updateRecordByMaintainId" statementType="STATEMENT" resultType="java.lang.Integer"> + update ${tableTempName} + INNER JOIN maintain_detail on ${tableTempName}.id = maintain_detail.pre_merge_id + set ${updateSegment} + WHERE maintain_detail.parent_id = ${maintainId} + + </select> + + <select id="deleteRecordByMaintainId" statementType="STATEMENT" resultType="java.lang.Integer"> + + DELETE ${tableTempName} from ${tableTempName} + INNER JOIN maintain_detail on maintain_detail.pre_merge_id = ${tableTempName}.id + WHERE maintain_detail.parent_id = ${maintainId} and ${tableTempName}.std_id = ${stdId} +\ + + </select> </mapper> diff --git a/src/main/resources/static/process/editor-app/configuration/toolbar-default-actions.js b/src/main/resources/static/process/editor-app/configuration/toolbar-default-actions.js index 6600cfc..aa89d11 100644 --- a/src/main/resources/static/process/editor-app/configuration/toolbar-default-actions.js +++ b/src/main/resources/static/process/editor-app/configuration/toolbar-default-actions.js @@ -394,6 +394,9 @@ $scope.$hide(); }; $scope.closeMine = function () { + if (window.isShow) { + window.isShow = false; + } var browserName = navigator.appName; var browserVer = parseInt(navigator.appVersion); //alert(browserName + " : "+browserVer); @@ -508,6 +511,11 @@ url: KISBPM.URL.putModel(modelMetaData.modelId)}) .success(function (data, status, headers, config) { + if (!data.success) { + alert(data.message); + $scope.status.loading = false; + return; + } $scope.editor.handleEvents({ type: ORYX.CONFIG.EVENT_SAVED }); -- Gitblit v1.8.0