From 807e2c7a2ca8283ba6d6f764c83320ad5e023349 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期四, 19 三月 2020 09:01:04 +0800 Subject: [PATCH] fix 放开红点的权限 --- src/main/java/com/highdatas/mdm/controller/SysFieldController.java | 73 ++++++++++++++++++++++++++++++++++-- 1 files changed, 69 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/controller/SysFieldController.java b/src/main/java/com/highdatas/mdm/controller/SysFieldController.java index cecb399..470b1b2 100644 --- a/src/main/java/com/highdatas/mdm/controller/SysFieldController.java +++ b/src/main/java/com/highdatas/mdm/controller/SysFieldController.java @@ -15,6 +15,7 @@ import com.highdatas.mdm.util.Constant; import com.highdatas.mdm.util.DbUtils; import com.highdatas.mdm.util.WorkflowUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -32,6 +33,7 @@ * @author kimi * @since 2019-12-16 */ +@Slf4j @RestController @RequestMapping("/field") public class SysFieldController { @@ -161,6 +163,7 @@ @RequestMapping(value = "/loadFields", method = RequestMethod.POST) public Result loadFields(@RequestBody String fieldListStr, HttpServletRequest request) { + log.info(fieldListStr); List<SysField> fieldList = JSONObject.parseArray(fieldListStr,SysField.class); if (fieldList.size() == 0) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); @@ -179,11 +182,13 @@ HttpSession session = request.getSession(); TUser user = (TUser) session.getAttribute("user"); String userId = user.getUserId(); + Maintain dataMaintainMax = maintainService.getMaxVersion(tableName); if (StringUtils.isEmpty(maintainId)) { //鍒涘缓鏂扮増鏈殑瀛楁 nowMaintain = flowsService.createNowVerion(tableName, maintainId, userId); - if (nowMaintain == null) { + + if (nowMaintain == null && dataMaintainMax != null) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } @@ -204,17 +209,66 @@ nowMaintain = maintainFieldService.selectById(maintainId); } } + String nowMaintainId; + if (dataMaintainMax == null) { + nowMaintainId = null; + }else { + nowMaintainId = nowMaintain.getId(); + } + + + if (StringUtils.isEmpty(nowMaintainId)) { + //绗竴娆¢粯璁ら兘娓呯┖ + fieldService.delete(new EntityWrapper<SysField>().isNull("maintain_field_id").eq("table_name", tableName)); + } + for (int i = 0; i < fieldList.size(); i++) { SysField sysField = fieldList.get(i); - sysField.setCreateTime(new Date()).setId(DbUtils.getUUID()).setOperate(Operate.create).setMaintainFieldId(nowMaintain.getId()).setOrderNo(i).insert(); + sysField.setCreateTime(new Date()).setId(DbUtils.getUUID()).setMaintainFieldId(nowMaintainId).setOrderNo(i).insert(); } - nowMaintain.insertOrUpdate(); + + if (nowMaintain != null) { + nowMaintain.insertOrUpdate(); + } + return Result.success(null); } @RequestMapping(value = "/change", method = RequestMethod.POST) public Result addOrUpdate(@RequestBody SysField sysField, HttpServletRequest request) { + + String tableName = sysField.getTableName(); + + Maintain dataMaxVersion = maintainService.getMaxVersion(tableName); + boolean isInit = false; + if (dataMaxVersion == null) { + isInit = true; + } + Operate operate = sysField.getOperate(); + + if (isInit && (operate.equals(Operate.update) || operate.equals(Operate.create))) { + if (isInit) { + if (StringUtils.isEmpty(sysField.getId())) { + sysField.setId(DbUtils.getUUID()); + } + boolean update = sysField.insertOrUpdate(); + if (update) { + return Result.success(CodeMsg.SUCCESS); + }else { + return Result.error(CodeMsg.INSERT_ERROR); + } + + } + } + if (isInit && operate.equals(Operate.delete)) { + boolean delete = sysField.deleteById(); + if (delete) { + return Result.success(CodeMsg.SUCCESS); + }else { + return Result.error(CodeMsg.DELETE_ERROR); + } + } if (operate.equals(Operate.update)) { String id = sysField.getId(); SysField field = fieldService.selectById(id); @@ -223,7 +277,16 @@ } boolean visiableEqual = field.getVisible().equals(sysField.getVisible()); boolean aliasEqual = field.getAlias().equals(sysField.getAlias()); - boolean codeEqual = field.getCode().equals(sysField.getCode()); + String updateCode = field.getCode(); + String preCode = sysField.getCode(); + boolean codeEqual; + if (StringUtils.isEmpty(updateCode) && StringUtils.isEmpty(preCode)) { + codeEqual = true; + }else if(!StringUtils.isEmpty(updateCode) && !StringUtils.isEmpty(preCode) && updateCode.equalsIgnoreCase(preCode)){ + codeEqual = true; + }else { + codeEqual = false; + } String updateFormat = field.getFormat(); String preFormat = sysField.getFormat(); boolean formatterEqual; @@ -253,6 +316,7 @@ String userId = user.getUserId(); if (operate.equals(Operate.create) || operate.equals(Operate.update)) { + String alias = sysField.getAlias(); List<SysField> fieldByMaintainField; if (nowMaintain == null) { @@ -341,6 +405,7 @@ sysField.updateById(); } else if(operate.equals(Operate.delete)) { + SysField relatedField = fieldService.getOneFieldByMaintainField(nowMaintain.getId(), sysField.getField()); if (relatedField == null) { return Result.error(CodeMsg.OPERATR_ERROR); -- Gitblit v1.8.0