diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java index b95496f..2a5441e 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/ArchivesController.java @@ -1,14 +1,15 @@ package com.storeroom.modules.archives.controller; import com.storeroom.modules.archives.service.ArchivesService; +import com.storeroom.modules.archives.service.dto.ArchivesDTO; +import com.storeroom.modules.dictionary.service.dto.FieldDTO; import com.storeroom.utils.ApiResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor @@ -34,6 +35,13 @@ public class ArchivesController { return ApiResponse.success(archivesService.doedit(categoryId,archivesId)); } + @ApiOperation("档案编辑") + @PostMapping("/edit") + public ApiResponse edit( + @Validated @RequestBody ArchivesDTO dto + ){ + return ApiResponse.success(archivesService.edit(dto)); + } @ApiOperation("测试档案") diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java index e807d60..b26a327 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesService.java @@ -1,5 +1,6 @@ package com.storeroom.modules.archives.service; +import com.storeroom.modules.archives.service.dto.ArchivesDTO; import org.springframework.data.domain.Pageable; public interface ArchivesService { @@ -7,6 +8,8 @@ public interface ArchivesService { Object initArchivesView(String categoryId, String query, Pageable page); //预编辑档案 初始化信息 Object doedit(String categoryId,String archivesId); + //编辑档案 + Object edit(ArchivesDTO dto); String test(); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/dto/ArchivesDTO.java b/archives/src/main/java/com/storeroom/modules/archives/service/dto/ArchivesDTO.java new file mode 100644 index 0000000..d50251b --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/archives/service/dto/ArchivesDTO.java @@ -0,0 +1,24 @@ +package com.storeroom.modules.archives.service.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ArchivesDTO { + + @JSONField(name="id") + @JsonProperty("id") + private String id; + + @JSONField(name="categoryId") + @JsonProperty("categoryId") + private String categoryId; + + @JSONField(name="jsonString") + @JsonProperty("jsonString") + private String jsonString; + +} diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java index 0a5e389..2e1ddd3 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.storeroom.modules.archives.repository.ArchivesSummaryRepository; import com.storeroom.modules.archives.service.ArchivesService; +import com.storeroom.modules.archives.service.dto.ArchivesDTO; import com.storeroom.modules.dictionary.domain.ArchivesDictionary; import com.storeroom.modules.dictionary.domain.ArchivesType; import com.storeroom.modules.dictionary.repository.ArchivesDictionaryRepository; @@ -13,6 +14,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -87,8 +89,33 @@ public class ArchivesServiceImpl implements ArchivesService { } @Override - public String test() { + @Transactional(rollbackFor = Exception.class) + public Object edit(ArchivesDTO dto) { + JSONObject json = new JSONObject(dto.getJsonString()); + String categoryId = "FFAFBB1647D459C82080A"; + ArchivesType archivesType = archivesTypeRepository.findById(categoryId).get(); + List showFiled = archivesDictionaryRepository.findAllByCategoryIdAndIsInputOrderByIsSequenceAsc(categoryId,true); + String insertFiled = ""; + String insertValue = ""; + String updateValue = ""; + for(ArchivesDictionary archivesDictionary:showFiled){ + insertFiled +="'"+archivesDictionary.getFieldName()+"',"; + + insertValue += archivesDictionary.getIsDataType() == 1 ? "'"+json.get(archivesDictionary.getFieldName())+"'," + : json.get(archivesDictionary.getFieldName()) +","; + updateValue += ""; + + } + insertFiled = insertFiled.length() != 0 ? insertFiled.substring(0,insertFiled.length()-1) : ""; + insertValue = insertValue.length() != 0 ? insertValue.substring(0,insertValue.length()-1) : ""; + String sql = StringUtils.isEmpty(dto.getId()) ? "insert into " + archivesType.getEnName() + "(" + insertFiled +") values ("+insertValue+")" + : ""; + return null; + } + + @Override + public String test() { String testQuery = "dic_name,dic_code"; String testTable = "archives_dictionary_config"; List list = entityManager.createNativeQuery("select "+testQuery+" from "+testTable).getResultList(); diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesDictionary.java b/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesDictionary.java index e378c73..85ab169 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesDictionary.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesDictionary.java @@ -59,6 +59,10 @@ public class ArchivesDictionary extends BaseEntity implements Serializable { @ApiModelProperty(value = "数据类型") private Integer isDataType; + @Column(name = "is_data_type_details") + @ApiModelProperty(value = "数据类型详情") + private String isDataTypeDetails; + @Column(name = "is_column_length") @ApiModelProperty(value = "字段长度") private Integer isColumnLength; diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java b/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java index 3908eca..96b3f6e 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/domain/Field.java @@ -39,6 +39,10 @@ public class Field extends BaseEntity implements Serializable { @ApiModelProperty(value = "数据类型") private Integer isDataType; + @Column(name = "is_data_type_details") + @ApiModelProperty(value = "数据类型详情") + private String isDataTypeDetails; + @Column(name = "is_column_length") @ApiModelProperty(value = "字段长度") private Integer isColumnLength; diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java index c6f34cc..4cbfc21 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/dto/FieldDTO.java @@ -3,9 +3,11 @@ package com.storeroom.modules.dictionary.service.dto; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import com.storeroom.annotaion.Query; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; +import javax.persistence.Column; import java.io.Serializable; @Getter @@ -42,6 +44,10 @@ public class FieldDTO implements Serializable { @JsonProperty("isDataType") private Integer isDataType; + @Column(name = "is_data_type_details") + @ApiModelProperty(value = "数据类型详情") + private String isDataTypeDetails; + @Query @JSONField(name="isColumnLength") @JsonProperty("isColumnLength") diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java index b806980..ffd16f7 100644 --- a/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/dictionary/service/impl/FieldServiceImpl.java @@ -39,6 +39,7 @@ public class FieldServiceImpl implements FieldService { field.setIsDefaultValue(dto.getIsDefaultValue()); field.setDictionaryId(dto.getDictionaryId()); field.setIsDataType(dto.getIsDataType()); + field.setIsDataTypeDetails(dto.getIsDataType() == 1 ? "varchar":"int"); field.setIsColumnLength(dto.getIsColumnLength()); if(null == dto.getIsSequence()) { Integer maxSequence = fieldRepository.getMaxSequence(dto.getIsType());