From 5bac93baf5659ce013163f884c9dce41990a860e Mon Sep 17 00:00:00 2001 From: kimi42345 <kimi42345@outlook.com> Date: 星期一, 23 三月 2020 08:49:41 +0800 Subject: [PATCH] no message --- src/main/java/com/highdatas/mdm/controller/SysFieldController.java | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 163 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/highdatas/mdm/controller/SysFieldController.java b/src/main/java/com/highdatas/mdm/controller/SysFieldController.java index 570a0a1..5796d73 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 { @@ -64,9 +66,15 @@ } - @RequestMapping(value = "total/{tableName}", method = RequestMethod.GET) - public Result getTotalFields(@PathVariable String tableName, HttpServletRequest request){ - return fieldService.getTotalFields(tableName); + @RequestMapping(value = "total/{tableName}/{pageNo}", method = RequestMethod.GET) + public Result getTotalFields(@PathVariable String tableName,@PathVariable Integer pageNo, HttpServletRequest request){ + String pageSize = request.getParameter("pageSize"); + if(StringUtils.isEmpty(pageSize)){ + return fieldService.getTotalFields(tableName, pageNo, 15); + }else { + return fieldService.getTotalFields(tableName, pageNo, Integer.valueOf(pageSize)); + } + } @RequestMapping(value = "fix/{tableName}", method = RequestMethod.GET) @@ -76,6 +84,7 @@ data.fluentPut("aduit", true); return totalFields; } + @RequestMapping(value = "/menu/{id}", method = RequestMethod.GET) public Result getFieldByMenu(@PathVariable String id){ @@ -87,8 +96,7 @@ if (StringUtils.isEmpty(tableName)) { return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); } - List<SysField> fieldList = fieldService.selectList(new EntityWrapper<SysField>().eq("table_name", tableName).orderBy("order_no")); - + List<SysField> fieldList = fieldService.getFieldByTable(tableName); return Result.success(fieldList); } @@ -160,9 +168,142 @@ } } + @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); + } + String tableName = fieldList.get(0).getTableName(); + if (StringUtils.isEmpty(tableName)) { + return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); + } + String maintainId = null; + MaintainField maxVersion = maintainFieldService.getMaxVersion(tableName); + if (maxVersion != null) { + maintainId = maxVersion.getId(); + } + + MaintainField nowMaintain = null; + 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 && dataMaintainMax != null) { + return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); + } + + }else { + Flows flows = flowsService.selectOne(new EntityWrapper<Flows>().eq("business_id", maintainId)); + if (flows != null){ + //褰撳墠宸插鎵� + ActivitiStatus status = flows.getStatus(); + if (status.equals(ActivitiStatus.open) || status.equals(ActivitiStatus.close)) { + nowMaintain = flowsService.createNowVerion(tableName, maintainId, userId); + }else { + return Result.error(new CodeMsg(7002, "褰撳墠瀛楁鐗堟湰姝e湪瀹℃壒,璇峰緟瀹℃壒閫氳繃鍚庡啀淇敼")); + } + + }else { + //delete + fieldService.delete(new EntityWrapper<SysField>().eq("maintain_field_id",maintainId)); + 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()).setMaintainFieldId(nowMaintainId).setOrderNo(i).insert(); + } + + 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; + } + if (!StringUtils.isEmpty(sysField.getId())) { + String id = sysField.getId(); + SysField field = fieldService.selectById(id); + if (field != null){ + Operate operate = field.getOperate(); + if (operate != 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()); + } + sysField.setOperate(null); + boolean update = sysField.insertOrUpdate(); + if (update) { + return Result.success(CodeMsg.SUCCESS); + }else { + return Result.error(CodeMsg.INSERT_ERROR); + } + + } + } + if (isInit && operate.equals(Operate.delete)) { + String maintainFieldId = sysField.getMaintainFieldId(); + boolean delete = sysField.deleteById(); + if (delete) { + //鍒犻櫎鍚� 鍒ゆ柇鏄惁鏈夋湭鎻愪氦鐨勪簡 + if (StringUtils.isEmpty(maintainFieldId)) { + return Result.success(CodeMsg.SUCCESS); + } + List<SysField> fieldList = fieldService.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainFieldId)); + long count = fieldList.stream().filter(field -> field.getOperate() != null).count(); + if (count == 0) { + //璇存槑 褰撳墠鐗堟湰娌℃湁淇敼鐨勫瓧娈典簡 + delete = fieldService.delete(new EntityWrapper<SysField>().eq("maintain_field_id", maintainFieldId)); + delete = maintainFieldService.deleteById(maintainFieldId); + if (delete) { + return Result.success(CodeMsg.SUCCESS); + } + } + 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); @@ -171,7 +312,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; @@ -194,13 +344,18 @@ } } MaintainField maxVersion = maintainFieldService.getMaxVersion(sysField.getTableName()); - String maintainId = maxVersion.getId(); + String maintainId = null; + if(maxVersion != null) { + maintainId = maxVersion.getId(); + } + MaintainField nowMaintain = null; HttpSession session = request.getSession(); TUser user = (TUser) session.getAttribute("user"); String userId = user.getUserId(); if (operate.equals(Operate.create) || operate.equals(Operate.update)) { + String alias = sysField.getAlias(); List<SysField> fieldByMaintainField; if (nowMaintain == null) { @@ -289,6 +444,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