| | |
| | | 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.*; |
| | |
| | | * @author kimi |
| | | * @since 2019-12-16 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/field") |
| | | public class SysFieldController { |
| | |
| | | |
| | | @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); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | } |
| | | 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; |
| | |
| | | String userId = user.getUserId(); |
| | | |
| | | if (operate.equals(Operate.create) || operate.equals(Operate.update)) { |
| | | |
| | | String alias = sysField.getAlias(); |
| | | List<SysField> fieldByMaintainField; |
| | | if (nowMaintain == null) { |
| | |
| | | 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); |