Merge remote-tracking branch 'origin/dev' into dev_2307

master
zhc077 1 year ago
commit fbf97c8711
  1. 2
      ant-design-vue-jeecg/src/views/modulex/modules/ModulexForm.vue
  2. 11
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/controller/ModulexController.java
  3. 59
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/entity/Modulex.java
  4. 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/IModulexService.java
  5. 77
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/modulex/service/impl/ModulexServiceImpl.java

@ -233,6 +233,8 @@
this.model.moduleEnName = this.model.moduleEnName + '+1'; this.model.moduleEnName = this.model.moduleEnName + '+1';
this.model.moduleCode = this.model.moduleCode + '+1'; this.model.moduleCode = this.model.moduleCode + '+1';
this.model.createTime = null; this.model.createTime = null;
//id
this.model.copyId = record.id;
} }
this.visible = true; this.visible = true;
}, },

@ -129,9 +129,7 @@ public class ModulexController extends JeecgController<Modulex, IModulexService>
public Result<?> add(@RequestBody Modulex modulex) { public Result<?> add(@RequestBody Modulex modulex) {
//版本号 顺序累加;初始值1 //版本号 顺序累加;初始值1
if (StringUtils.hasText(modulex.getPid())) { if (StringUtils.hasText(modulex.getPid())) {
List<String> collect = modulexService.list( List<String> collect = modulexService.list(new LambdaQueryWrapper<Modulex>().eq(StringUtils.hasText(modulex.getPid()), Modulex::getPid, modulex.getPid()))
new LambdaQueryWrapper<Modulex>()
.eq(StringUtils.hasText(modulex.getPid()), Modulex::getPid, modulex.getPid()))
.stream().map(Modulex::getModuleName).collect(Collectors.toList()); .stream().map(Modulex::getModuleName).collect(Collectors.toList());
collect.add(modulex.getModuleName()); collect.add(modulex.getModuleName());
HashSet<String> setList = new HashSet<>(collect); HashSet<String> setList = new HashSet<>(collect);
@ -139,9 +137,10 @@ public class ModulexController extends JeecgController<Modulex, IModulexService>
return Result.error("相同上级的模块不能重名"); return Result.error("相同上级的模块不能重名");
} }
} }
Integer newVersion = modulexService.getMaxVersion(modulex.getVerison()); // Integer newVersion = modulexService.getMaxVersion(modulex.getVerison());
modulex.setVerison(newVersion + 1); // modulex.setVerison(newVersion + 1);
modulexService.save(modulex); // modulexService.save(modulex);
modulexService.copy(modulex);
return Result.OK("添加成功!"); return Result.OK("添加成功!");
} }

@ -32,22 +32,32 @@ import java.util.Date;
public class Modulex implements Serializable { public class Modulex implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**主键*/ /**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID) @TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键") @ApiModelProperty(value = "主键")
private String id; private String id;
/**创建人*/ /**
* 创建人
*/
@ApiModelProperty(value = "创建人") @ApiModelProperty(value = "创建人")
private String createBy; private String createBy;
/**创建日期*/ /**
* 创建日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期") @ApiModelProperty(value = "创建日期")
private Date createTime; private Date createTime;
/**更新人*/ /**
* 更新人
*/
@ApiModelProperty(value = "更新人") @ApiModelProperty(value = "更新人")
private String updateBy; private String updateBy;
/**更新日期*/ /**
* 更新日期
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期") @ApiModelProperty(value = "更新日期")
@ -77,15 +87,21 @@ public class Modulex implements Serializable {
@Excel(name = "中文名称", width = 15) @Excel(name = "中文名称", width = 15)
@ApiModelProperty(value = "中文名称") @ApiModelProperty(value = "中文名称")
private String moduleName; private String moduleName;
/**英文名称*/ /**
* 英文名称
*/
@Excel(name = "英文名称", width = 15) @Excel(name = "英文名称", width = 15)
@ApiModelProperty(value = "英文名称") @ApiModelProperty(value = "英文名称")
private String moduleEnName; private String moduleEnName;
/**模块编码*/ /**
* 模块编码
*/
@Excel(name = "模块编码", width = 15) @Excel(name = "模块编码", width = 15)
@ApiModelProperty(value = "模块编码") @ApiModelProperty(value = "模块编码")
private String moduleCode; private String moduleCode;
/**内容描述*/ /**
* 内容描述
*/
@Excel(name = "内容描述", width = 15) @Excel(name = "内容描述", width = 15)
@ApiModelProperty(value = "内容描述") @ApiModelProperty(value = "内容描述")
private String pmDescribe; private String pmDescribe;
@ -104,6 +120,9 @@ public class Modulex implements Serializable {
*/ */
@TableField(exist = false) @TableField(exist = false)
private String managerUsers_dictText; private String managerUsers_dictText;
@TableField(exist = false)
private String copyId;
/** /**
* 任务等级 * 任务等级
* 12345默认2 * 12345默认2
@ -120,7 +139,9 @@ public class Modulex implements Serializable {
@ApiModelProperty(value = "任务状态") @ApiModelProperty(value = "任务状态")
@Dict(dicCode = "work_status") @Dict(dicCode = "work_status")
private Integer workStatus; private Integer workStatus;
/**发布时间*/ /**
* 发布时间
*/
@Excel(name = "发布时间", width = 15, format = "yyyy-MM-dd HH:mm:ss") @Excel(name = "发布时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ -133,19 +154,25 @@ public class Modulex implements Serializable {
@Excel(name = "任务时长", width = 15) @Excel(name = "任务时长", width = 15)
@ApiModelProperty(value = "任务时长") @ApiModelProperty(value = "任务时长")
private Double duration; private Double duration;
/**开始时间*/ /**
* 开始时间
*/
@Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss") @Excel(name = "开始时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
private Date startTime; private Date startTime;
/**提交时间*/ /**
* 提交时间
*/
@Excel(name = "提交时间", width = 15, format = "yyyy-MM-dd HH:mm:ss") @Excel(name = "提交时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "提交时间") @ApiModelProperty(value = "提交时间")
private Date submitTime; private Date submitTime;
/**实际时长*/ /**
* 实际时长
*/
@Excel(name = "实际时长", width = 15) @Excel(name = "实际时长", width = 15)
@ApiModelProperty(value = "实际时长") @ApiModelProperty(value = "实际时长")
private Double realDuration; private Double realDuration;
@ -166,11 +193,15 @@ public class Modulex implements Serializable {
@ApiModelProperty(value = "关联实体") @ApiModelProperty(value = "关联实体")
@Dict(dictTable = "tablex", dicText = "table_name", dicCode = "id") @Dict(dictTable = "tablex", dicText = "table_name", dicCode = "id")
private String relatedBean; private String relatedBean;
/**原型图*/ /**
* 原型图
*/
@Excel(name = "原型图", width = 15) @Excel(name = "原型图", width = 15)
@ApiModelProperty(value = "原型图") @ApiModelProperty(value = "原型图")
private String prototypes; private String prototypes;
/**分析图*/ /**
* 分析图
*/
@Excel(name = "分析图", width = 15) @Excel(name = "分析图", width = 15)
@ApiModelProperty(value = "分析图") @ApiModelProperty(value = "分析图")
private String diagrams; private String diagrams;

@ -30,4 +30,5 @@ public interface IModulexService extends IService<Modulex> {
void setmodule(String id, String moduleId); void setmodule(String id, String moduleId);
void copy(Modulex modulex);
} }

@ -1,27 +1,30 @@
package org.jeecg.modules.modulex.service.impl; package org.jeecg.modules.modulex.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.demo.functionx.entity.Functionx; import org.jeecg.modules.demo.functionx.entity.Functionx;
import org.jeecg.modules.demo.functionx.mapper.FunctionxMapper; import org.jeecg.modules.demo.functionx.mapper.FunctionxMapper;
import org.jeecg.modules.demo.functionx.service.IFunctionxService; import org.jeecg.modules.demo.functionx.service.IFunctionxService;
import org.jeecg.modules.demo.rulex.entity.Rulex; import org.jeecg.modules.demo.rulex.entity.Rulex;
import org.jeecg.modules.demo.rulex.service.IRulexService; import org.jeecg.modules.demo.rulex.service.IRulexService;
import org.jeecg.modules.fieldx.entity.Fieldx;
import org.jeecg.modules.fieldx.service.IFieldxService;
import org.jeecg.modules.modulex.entity.Modulex; import org.jeecg.modules.modulex.entity.Modulex;
import org.jeecg.modules.modulex.mapper.ModulexMapper; import org.jeecg.modules.modulex.mapper.ModulexMapper;
import org.jeecg.modules.modulex.service.IModulexService; import org.jeecg.modules.modulex.service.IModulexService;
import org.jeecg.modules.tablex.entity.Tablex;
import org.jeecg.modules.tablex.service.ITablexService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* @Description: 模块管理 * @Description: 模块管理
@ -44,6 +47,12 @@ public class ModulexServiceImpl extends ServiceImpl<ModulexMapper, Modulex> impl
@Autowired @Autowired
private IRulexService iRulexService; private IRulexService iRulexService;
@Autowired
private ITablexService iTablexService;
@Autowired
private IFieldxService iFieldxService;
/** /**
* 得到最大的版本号 * 得到最大的版本号
*/ */
@ -169,6 +178,66 @@ public class ModulexServiceImpl extends ServiceImpl<ModulexMapper, Modulex> impl
modulexMapper.setmodule(id, moduleId); modulexMapper.setmodule(id, moduleId);
} }
/**
* 模块管理中复制功能新增模块对应的实体和字段功能和规则
*
* @param modulex
*/
@Transactional(readOnly = false, rollbackFor = Exception.class)
@Override
public void copy(Modulex modulex) {
Integer newVersion = this.getMaxVersion(modulex.getVerison());
modulex.setVerison(newVersion + 1);
modulex.setRelatedBean(null);
//复制模块
this.save(modulex);
String id = modulex.getId();
//复制实体&字段
Tablex tablex = iTablexService.getOne(new LambdaQueryWrapper<Tablex>().eq(Tablex::getModuleId, modulex.getCopyId()));
if (!ObjectUtils.isEmpty(tablex)) {
Tablex tablex1 = new Tablex();
BeanUtils.copyProperties(tablex, tablex1);
tablex1.setId(null);
tablex1.setModuleId(modulex.getId());
tablex1.setTableName(modulex.getModuleName());
tablex1.setTableEnName(modulex.getModuleEnName());
tablex1.setCreateTime(new Date());
iTablexService.save(tablex1);
List<Fieldx> fieldxList = iFieldxService.list(new LambdaQueryWrapper<Fieldx>().eq(Fieldx::getTableId, tablex.getId()));
if (!ObjectUtils.isEmpty(fieldxList)) {
List<Fieldx> addList = new LinkedList<>();
fieldxList.forEach(e -> {
Fieldx fieldx1 = new Fieldx();
BeanUtils.copyProperties(e, fieldx1);
fieldx1.setId(null);
fieldx1.setTableId(tablex1.getId());
fieldx1.setCreateTime(new Date());
addList.add(fieldx1);
});
iFieldxService.saveBatch(addList);
}
this.lambdaUpdate().set(Modulex::getRelatedBean, tablex1.getId()).eq(Modulex::getId, id).update();
}
//复制功能
List<Functionx> functionxList = iFunctionxService.list(new LambdaQueryWrapper<Functionx>().eq(Functionx::getModuleId, modulex.getCopyId()));
if (!ObjectUtils.isEmpty(functionxList)) {
List<Functionx> addList = new LinkedList<>();
functionxList.forEach(e -> {
Functionx functionx = new Functionx();
BeanUtils.copyProperties(e, functionx);
functionx.setId(null);
functionx.setModuleId(modulex.getId());
functionx.setCreateTime(new Date());
addList.add(functionx);
});
iFunctionxService.saveBatch(addList);
}
}
private void handleStatus(String id, Integer a) { private void handleStatus(String id, Integer a) {
//先查字模块 先查询父id 等于 这个 id 的数据 //先查字模块 先查询父id 等于 这个 id 的数据

Loading…
Cancel
Save