提交 35132d4d 编写于 作者: sq3536's avatar sq3536

aipvo

上级 4511ad75
......@@ -10,6 +10,7 @@ import lombok.experimental.Accessors;
import net.ibizsys.model.app.dataentity.IPSAppDataEntity;
import java.util.*;
import java.util.stream.Collectors;
@Getter
@Setter
......@@ -193,4 +194,8 @@ public class AppEntityModel extends BaseModel{
*/
public List<JSONObject> appDEUIActions = new ArrayList<>();
public Collection<CtrlModel> getForms() {
return ctrlsMap.values().stream().filter(item->item.getControl().getControlType().equals("FORM")).collect(Collectors.toList());
}
}
......@@ -17,6 +17,7 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.Collectors;
@Getter
@Setter
......@@ -100,7 +101,6 @@ public class AppModel extends BaseModel{
}
public PageModel getPage(String codeName)
{
if(pagesMap!=null)
......@@ -201,9 +201,10 @@ public class AppModel extends BaseModel{
catalog.setCodeItem(codeList.getPSCodeItems());
}
}
if(!ObjectUtils.isEmpty(catalog.getOptions()))
if(!ObjectUtils.isEmpty(catalog.getOptions())) {
catalog.setOpt(codeList);
dictMaps.put(catalog.getCodeName(),catalog);
dictMaps.put(catalog.getCodeName(), catalog);
}
});
}
}
......
......@@ -62,7 +62,7 @@ public class Option
.replace("。","").replace(";","")
.replace(";","").replace("-","")
.replace(",","").replace("\\","")
.replace("/","").replace(",","");
.replace("/","").replace(",","").replace("%","");
return name;
}
......
......@@ -110,6 +110,10 @@ public class VoFieldModel extends BaseModel {
if(codeListEditor.getPSAppCodeList()!=null) {
dictCodeName = codeListEditor.getPSAppCodeList().getCodeName();
dict=this.getVoModel().getApp().getDictMaps().get(dictCodeName);
if(dict==null)
{
dictCodeName="";
}
if ("treempick".equalsIgnoreCase(codeListEditor.getEditorType())||codeListEditor instanceof IPSMDropDownList
||codeListEditor instanceof IPSCheckBoxList)
singleSelect=false;
......@@ -190,7 +194,7 @@ public class VoFieldModel extends BaseModel {
if (ObjectUtils.isEmpty(dv)) {
dv=getUpdateDefaultValue();
}
return getDefaultValue(dv);
return dv;
}
public String getDefaultValue(String dv) {
if(!ObjectUtils.isEmpty(dv)) {
......@@ -202,7 +206,7 @@ public class VoFieldModel extends BaseModel {
.replace("。", "").replace(";", "")
.replace(";", "").replace("-", "")
.replace(",", "").replace("\\", "")
.replace("/", "").replace(",", "");
.replace("/", "").replace(",", "").replace("%","");
if(!this.isSingleSelect())
return "";
}
......@@ -224,7 +228,7 @@ public class VoFieldModel extends BaseModel {
if(!this.isSingleSelect()&&this.getDict().getOptions().size()>1)
{
example+=this.getDict().getCodeList().getValueSeparator()==null?";":this.getDict().getCodeList().getValueSeparator();
example+= this.getDict().getOptions().get(0).getValue().toString();
example+= this.getDict().getOptions().get(1).getValue().toString();
}
}
return example;
......
......@@ -24,13 +24,10 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
......
......@@ -25,19 +25,19 @@ import io.swagger.annotations.ApiModelProperty;
import {{packageName}}.api.{{apps}}.dict.*;
/**
* {{ctrl.appEntity.entity.logicName}}DTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}
* {{ctrl.appEntity.entity.logicName}}AddDTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "{{appEntities}}-{{ctrl.codeName}}", description = "{{ctrl.appEntity.entity.logicName}}DTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}Dto implements Serializable {
@ApiModel(value = "{{ctrl.appEntity.entity.codeName}}-{{ctrl.codeName}}-Add", description = "{{ctrl.appEntity.entity.logicName}}AddDTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}AddDto extends {{pascalCase ctrl.codeName}}BaseDto {
private static final long serialVersionUID = 1L;
{{#each ctrl.voItems }}
{{#if createDefaultValue}}
/**
* {{logicName}}
*/
......@@ -50,8 +50,9 @@ public class {{pascalCase ctrl.codeName}}Dto implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
{{/eq}}
@ApiModelProperty(value = "{{logicName}}"{{#if timeType}}, notes = "格式:{{format}}"{{/if}}{{#if dict}}, notes = "字典:{{dict.name}}", dataType = "{{lowerCase type.java}}", reference = "{{dictCodeName}}"{{/if}}{{#if required}}, required = true{{/if}}{{#if hidden}}, hidden = true{{/if}}{{#if example}}, example = "{{example}}"{{/if}})
private {{javaType}} {{camelCase codeName}} {{#if defaultValue}}= {{defaultValue}}{{/if}};
protected {{javaType}} {{camelCase codeName}} {{#if createDefaultValue}}= {{createDefaultValue}}{{/if}};
{{/if}}
{{/each}}
}
{{/eq}}
\ No newline at end of file
......@@ -25,19 +25,18 @@ import io.swagger.annotations.ApiModelProperty;
import {{packageName}}.api.{{apps}}.dict.*;
/**
* {{ctrl.appEntity.entity.logicName}}DTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}
* {{ctrl.appEntity.entity.logicName}}BaseDTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "{{appEntities}}-{{ctrl.codeName}}", description = "{{ctrl.appEntity.entity.logicName}}DTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}Dto implements Serializable {
@ApiModel(value = "{{ctrl.appEntity.entity.codeName}}-{{ctrl.codeName}}-Base", description = "{{ctrl.appEntity.entity.logicName}}BaseDTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}BaseDto implements Serializable {
private static final long serialVersionUID = 1L;
{{#each ctrl.voItems }}
{{#unless hidden}}
/**
* {{logicName}}
*/
......@@ -50,8 +49,9 @@ public class {{pascalCase ctrl.codeName}}Dto implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
{{/eq}}
@ApiModelProperty(value = "{{logicName}}"{{#if timeType}}, notes = "格式:{{format}}"{{/if}}{{#if dict}}, notes = "字典:{{dict.name}}", dataType = "{{lowerCase type.java}}", reference = "{{dictCodeName}}"{{/if}}{{#if required}}, required = true{{/if}}{{#if hidden}}, hidden = true{{/if}}{{#if example}}, example = "{{example}}"{{/if}})
private {{javaType}} {{camelCase codeName}} {{#if defaultValue}}= {{defaultValue}}{{/if}};
protected {{javaType}} {{camelCase codeName}};
{{/unless}}
{{/each}}
}
{{/eq}}
\ No newline at end of file
......@@ -31,13 +31,13 @@ import {{packageName}}.api.{{apps}}.dict.*;
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "{{appEntities}}-{{ctrl.codeName}}", description = "{{ctrl.appEntity.entity.logicName}}DTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}Dto implements Serializable {
@ApiModel(value = "{{ctrl.appEntity.entity.codeName}}-{{ctrl.codeName}}", description = "{{ctrl.appEntity.entity.logicName}}DTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}Dto extends {{pascalCase ctrl.codeName}}BaseDto {
private static final long serialVersionUID = 1L;
{{#each ctrl.voItems }}
{{#if hidden}}
/**
* {{logicName}}
*/
......@@ -50,8 +50,9 @@ public class {{pascalCase ctrl.codeName}}Dto implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
{{/eq}}
@ApiModelProperty(value = "{{logicName}}"{{#if timeType}}, notes = "格式:{{format}}"{{/if}}{{#if dict}}, notes = "字典:{{dict.name}}", dataType = "{{lowerCase type.java}}", reference = "{{dictCodeName}}"{{/if}}{{#if required}}, required = true{{/if}}{{#if hidden}}, hidden = true{{/if}}{{#if example}}, example = "{{example}}"{{/if}})
private {{javaType}} {{camelCase codeName}} {{#if defaultValue}}= {{defaultValue}}{{/if}};
protected {{javaType}} {{camelCase codeName}};
{{/if}}
{{/each}}
}
{{/eq}}
\ No newline at end of file
{{#eq apps "link"}}
package {{packageName}}.api.{{apps}}.dto.{{pascalCase appEntities}};
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.math.BigInteger;
import java.util.Map;
import java.util.HashMap;
import java.io.Serializable;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.alibaba.fastjson.annotation.JSONField;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.*;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import {{packageName}}.api.{{apps}}.dict.*;
/**
* {{ctrl.appEntity.entity.logicName}}UpdateDTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "{{ctrl.appEntity.entity.codeName}}-{{ctrl.codeName}}-Update", description = "{{ctrl.appEntity.entity.logicName}}UpdateDTO对象[{{ctrl.codeName}}]{{replace ctrl.logicName "表单" ""}}")
public class {{pascalCase ctrl.codeName}}UpdateDto extends {{pascalCase ctrl.codeName}}BaseDto {
private static final long serialVersionUID = 1L;
{{#each ctrl.voItems }}
{{#if updateDefaultValue}}
/**
* {{logicName}}
*/
@JsonProperty("{{camelCase codeName}}")
{{#timeType}}
@JsonFormat(pattern = "{{format}}", locale = "zh", timezone = "GMT+8")
{{/timeType}}
@JSONField(name = "{{jsonName}}"{{#timeType}} , format = "{{format}}"{{/timeType}})
{{#eq javaType "Long"}}
@JsonSerialize(using = ToStringSerializer.class)
{{/eq}}
@ApiModelProperty(value = "{{logicName}}"{{#if timeType}}, notes = "格式:{{format}}"{{/if}}{{#if dict}}, notes = "字典:{{dict.name}}", dataType = "{{lowerCase type.java}}", reference = "{{dictCodeName}}"{{/if}}{{#if required}}, required = true{{/if}}{{#if hidden}}, hidden = true{{/if}}{{#if example}}, example = "{{example}}"{{/if}})
protected {{javaType}} {{camelCase codeName}} {{#if updateDefaultValue}}= {{updateDefaultValue}}{{/if}};
{{/if}}
{{/each}}
}
{{/eq}}
\ No newline at end of file
......@@ -16,10 +16,12 @@
<dependency>
<groupId>{{packageName}}</groupId>
<artifactId>{{projectName}}-api</artifactId>
<version>{{system.pub.versionString}}</version>
</dependency>
<dependency>
<groupId>{{packageName}}</groupId>
<artifactId>{{projectName}}-core</artifactId>
<version>{{system.pub.versionString}}</version>
</dependency>
</dependencies>
<build>
......
{{#eq apps "link"}}
package {{packageName}}.api.{{apps}}.dict;
import com.alibaba.fastjson.annotation.JSONCreator;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
/**
* 字典:{{dict.name}}
*/
@ApiModel(value = "{{dict.codeName}}", description = "字典:{{dict.name}}")
public enum {{pascalCase dict.codeName}}Dict {
{{#each dict.sets}}
{{#eq dict.valueType "String"}}
{{name}} ("{{value}}","{{label}}",{{#if parent}}"{{parent}}"{{else}}null{{/if}}){{#if @last}};{{else}},{{/if}}
{{/eq}}
{{#eq dict.valueType "Integer"}}
{{name}} ({{value}},"{{label}}",{{#if parent}}{{parent}}{{else}}null{{/if}}){{#if @last}};{{else}},{{/if}}
{{/eq}}
{{/each}}
private {{dict.valueType}} value;
@JsonValue
@JSONField
public {{dict.valueType}} getValue() {
return value;
}
private String label;
public String getLabel() {
return label;
}
private {{dict.valueType}} parent;
public {{dict.valueType}} getParent() {
return parent;
}
{{pascalCase dict.codeName}}Dict({{dict.valueType}} value, String label, {{dict.valueType}} parent) {
this.value = value;
this.label = label;
this.parent = parent;
}
@JsonCreator
@JSONCreator
public static {{pascalCase dict.codeName}}Dict valueOf(Object tag) {
if(tag==null)
return null;
for ({{pascalCase dict.codeName}}Dict item : values())
if (item.getValue().equals(tag){{#eq dict.valueType "Integer"}}||item.getValue().toString().equals(tag){{/eq}})
return item;
{{pascalCase dict.codeName}}Dict ret =null;
for ({{pascalCase dict.codeName}}Dict item : values())
if (item.getLabel().equals(tag))
ret = item;
return ret;
}
}
{{/eq}}
\ No newline at end of file
{{#eq apps "link"}}
package {{packageName}}.api.{{apps}}.rest;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.math.BigInteger;
import java.util.HashMap;
import lombok.extern.slf4j.Slf4j;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.HttpStatus;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.util.StringUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.access.prepost.PostAuthorize;
import org.springframework.validation.annotation.Validated;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import {{packageName}}.api.{{apps}}.dto.{{pascalCase appEntities}}.*;
import {{packageName}}.api.{{apps}}.dict.*;
@Slf4j
@Api(tags = {"{{appEntity.entity.logicName}}" })
@RestController("{{lowerCase appEntity.app.codeName}}-{{lowerCase appEntity.entity.codeName}}")
@RequestMapping("/{{lowerCase appEntity.app.codeName}}/{{pluralize codeName}}")
public class {{pascalCase appEntity.codeName}}Resource {
{{#each appEntity.forms}}
@ApiOperation(value = "新建[{{codeName}}]{{replace logicName "表单" ""}}", tags = {"{{appEntity.entity.logicName}}" }, notes = "新建[{{codeName}}]{{replace logicName "表单" ""}}")
@RequestMapping(method = RequestMethod.POST, value = "/{{lowerCase codeName}}")
public ResponseEntity<{{pascalCase codeName}}Dto> add{{pascalCase codeName}}(@Validated @RequestBody {{pascalCase codeName}}AddDto dto) {
return null;
}
@ApiOperation(value = "更新[{{codeName}}]{{replace logicName "表单" ""}}", tags = {"{{appEntity.entity.logicName}}" }, notes = "更新[{{codeName}}]{{replace logicName "表单" ""}}")
@RequestMapping(method = RequestMethod.PUT, value = "/{{lowerCase codeName}}/{id}")
public ResponseEntity<{{pascalCase codeName}}Dto> update{{pascalCase codeName}}(@ApiParam("{{appEntity.entity.keyField.logicName}}") @PathVariable("{id}") {{appEntity.entity.keyField.type.java}} {{camelCase appEntity.entity.keyField.codeName}},@Validated @RequestBody {{pascalCase codeName}}UpdateDto dto) {
return null;
}
{{/each}}
}
{{/eq}}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>{{projectName}}</artifactId>
<groupId>{{packageName}}</groupId>
<version>{{system.pub.versionString}}</version>
</parent>
<artifactId>{{projectName}}-boot</artifactId>
<name>{{projectDesc}} Boot</name>
<description>{{projectDesc}} Boot</description>
<dependencies>
<dependency>
<groupId>{{packageName}}</groupId>
<artifactId>{{projectName}}-core</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<profiles>
<profile>
<id>runtime</id>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>{{projectName}}-boot</finalName>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<mainClass>{{packageName}}.BootApplication</mainClass>
<outputDirectory>../</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<finalName>{{projectName}}-boot</finalName>
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<mainClass>{{packageName}}.BootApplication</mainClass>
<outputDirectory>../</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>cn.ibizlab</groupId>
<artifactId>ibizlab-generator-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<configuration>
<output>
../
</output>
<inputSpec>
${basedir}/src/main/resources/static/remotemodel
</inputSpec>
<templateDirs>
${basedir}/src/main/resources/templ
</templateDirs>
<packageName>
${project.groupId}
</packageName>
<name>
${parent.artifactId}
</name>
</configuration>
<dependencies>
<dependency>
<groupId>cn.ibizlab</groupId>
<artifactId>ibizlab-template-ibizedge</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册