diff --git a/modules/core/src/main/resources/templates/modules/gen/cloud/api.xml b/modules/core/src/main/resources/templates/modules/gen/cloud/api.xml new file mode 100644 index 00000000..28eaf603 --- /dev/null +++ b/modules/core/src/main/resources/templates/modules/gen/cloud/api.xml @@ -0,0 +1,28 @@ + + + \ No newline at end of file diff --git a/modules/core/src/main/resources/templates/modules/gen/cloud/client.xml b/modules/core/src/main/resources/templates/modules/gen/cloud/client.xml new file mode 100644 index 00000000..233e1187 --- /dev/null +++ b/modules/core/src/main/resources/templates/modules/gen/cloud/client.xml @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/modules/core/src/main/resources/templates/modules/gen/cloud/entity.xml b/modules/core/src/main/resources/templates/modules/gen/cloud/entity.xml new file mode 100644 index 00000000..fd97cc1a --- /dev/null +++ b/modules/core/src/main/resources/templates/modules/gen/cloud/entity.xml @@ -0,0 +1,352 @@ + + + \ No newline at end of file diff --git a/modules/core/src/main/resources/templates/modules/gen/cloud/service.xml b/modules/core/src/main/resources/templates/modules/gen/cloud/service.xml new file mode 100644 index 00000000..49950181 --- /dev/null +++ b/modules/core/src/main/resources/templates/modules/gen/cloud/service.xml @@ -0,0 +1,216 @@ + + + \ No newline at end of file diff --git a/modules/core/src/main/resources/templates/modules/gen/config.xml b/modules/core/src/main/resources/templates/modules/gen/config.xml index 3e481b25..f554fa36 100644 --- a/modules/core/src/main/resources/templates/modules/gen/config.xml +++ b/modules/core/src/main/resources/templates/modules/gen/config.xml @@ -14,9 +14,28 @@ + + + + + + + + + + + + + + + + + + + diff --git a/modules/core/src/main/resources/templates/modules/gen/crud/entity.xml b/modules/core/src/main/resources/templates/modules/gen/crud/entity.xml index e5e08d92..b285f9ae 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud/entity.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud/entity.xml @@ -21,6 +21,13 @@ import com.jeesite.common.entity.TreeEntity; import com.jeesite.common.mybatis.annotation.Column; import com.jeesite.common.mybatis.annotation.Table; import com.jeesite.common.mybatis.mapper.query.QueryType; +<% if(toBoolean(table.optionMap['isBpmForm'])){ %> + <% if(table.isTreeEntity){ %> +import com.jeesite.modules.bpm.entity.BpmTreeEntity; + <% }else{ %> +import com.jeesite.modules.bpm.entity.BpmEntity; + <% } %> +<% } %> /** * ${functionName}Entity @@ -156,7 +163,7 @@ import com.jeesite.common.mybatis.mapper.query.QueryType; } } %>" ) -public class ${ClassName} extends ${table.isTreeEntity?'Tree':'Data'}Entity<${ClassName}> { +public class ${ClassName} extends ${toBoolean(table.optionMap['isBpmForm'])?(table.isTreeEntity?'BpmTree':'Bpm'):table.isTreeEntity?'Tree':'Data'}Entity<${ClassName}> { private static final long serialVersionUID = 1L; <% diff --git a/modules/core/src/main/resources/templates/modules/gen/crud/service.xml b/modules/core/src/main/resources/templates/modules/gen/crud/service.xml index de718b38..e3f8c715 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud/service.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud/service.xml @@ -22,6 +22,13 @@ import com.jeesite.common.entity.Page; import com.jeesite.common.service.${table.isTreeEntity?'Tree':'Crud'}Service; import ${packageName}.${moduleName}.entity${isNotEmpty(subModuleName)?'.'+subModuleName:''}.${ClassName}; import ${packageName}.${moduleName}.dao${isNotEmpty(subModuleName)?'.'+subModuleName:''}.${ClassName}Dao; +<% if(toBoolean(table.optionMap['isBpmForm'])){ %> +import java.util.Map; +import com.jeesite.common.lang.StringUtils; +import com.jeesite.common.collect.MapUtils; +import com.jeesite.common.service.ServiceException; +import com.jeesite.modules.bpm.utils.BpmUtils; +<% } %> <% if(toBoolean(table.optionMap['isImageUpload']) || toBoolean(table.optionMap['isFileUpload'])){ %> import com.jeesite.modules.file.utils.FileUploadUtils; <% } %> @@ -97,7 +104,43 @@ public class ${ClassName}Service extends ${table.isTreeEntity?'Tree':'Crud'}Serv @Override @Transactional(readOnly=false) public void save(${ClassName} ${className}) { + <% if(toBoolean(table.optionMap['isBpmForm'])){ %> + // 如果未设置状态,则指定状态为审核状态,以提交审核流程 + if (StringUtils.isBlank(${className}.getStatus())){ + ${className}.setStatus(${ClassName}.STATUS_AUDIT); + } + + // 如果状态为正常,则代表不正常操作,可能前端进行了数据参数修改 + if (${ClassName}.STATUS_NORMAL.equals(${className}.getStatus())){ + throw new ServiceException(text("非法操作,前端数据被劫持!")); + } + + // 如果状态为草稿或审核状态,才可以保存业务数据 + if (${ClassName}.STATUS_DRAFT.equals(${className}.getStatus()) + || ${ClassName}.STATUS_AUDIT.equals(${className}.getStatus())){ + super.save(${className}); + } + + // 如果为审核状态,则进行审批流操作 + if (${ClassName}.STATUS_AUDIT.equals(${className}.getStatus())){ + + // 指定流程变量,作为流程条件,决定流转方向 + Map variables = MapUtils.newHashMap(); + //variables.put("leaveDays", ${className}.getLeaveDays()); + + // 如果流程实例为空,任务编号也为空,则:启动流程 + if (StringUtils.isBlank(${className}.getBpm().getProcInsId()) + && StringUtils.isBlank(${className}.getBpm().getTaskId())){ + BpmUtils.start(${className}, "${table.optionMap['bpmFormKey']}", variables, null); + } + // 如果有任务信息,则:提交任务 + else{ + BpmUtils.complete(${className}, variables, null); + } + } + <% }else{ %> super.save(${className}); + <% } %> <% if(toBoolean(table.optionMap['isImageUpload'])){ %> // 保存上传图片 FileUploadUtils.saveFileUpload(${className}.getId(), "${className}_image"); diff --git a/modules/core/src/main/resources/templates/modules/gen/crud/viewForm.xml b/modules/core/src/main/resources/templates/modules/gen/crud/viewForm.xml index 4c03ab52..7c28b63c 100644 --- a/modules/core/src/main/resources/templates/modules/gen/crud/viewForm.xml +++ b/modules/core/src/main/resources/templates/modules/gen/crud/viewForm.xml @@ -45,13 +45,38 @@ <% } %> <% include('/templates/modules/gen/include/formControl.html'){} %> <% include('/templates/modules/gen/include/formChildTable.html'){} %> + <% if(toBoolean(table.optionMap['isBpmForm'])){ %> + \<% if(isNotBlank(${className}.bpm.taskId)){ %> +
+
+
+ +
+ <${'#'}bpm:comment bpmEntity="\${${className}}" /> +
+
+
+
+ \<% } %> + <${'#'}bpm:nextTaskInfo bpmEntity="\${${className}}" /> + <% } %>