Commit 0636fa70 authored by suhuiguang's avatar suhuiguang

1.使用登记单据变更功能

parent b2b4b1fd
...@@ -6,4 +6,6 @@ import java.io.Serializable; ...@@ -6,4 +6,6 @@ import java.io.Serializable;
@Data @Data
public class BaseChangeDataDto implements Serializable { public class BaseChangeDataDto implements Serializable {
private String changeId;
} }
package com.yeejoin.amos.boot.module.jg.api.dto;
import java.io.Serializable;
public class BaseTechParamsFieldDto implements Serializable {
}
...@@ -14,6 +14,9 @@ public class EquipRegisterChangeDataDto extends BaseChangeDataDto { ...@@ -14,6 +14,9 @@ public class EquipRegisterChangeDataDto extends BaseChangeDataDto {
@FieldDisplayDefine(value = "设备种类" ,isExist = false) @FieldDisplayDefine(value = "设备种类" ,isExist = false)
private String equList; private String equList;
@FieldDisplayDefine(value = "设备类别" ,isExist = false)
private String equCategory;
@FieldDisplayDefine(value = "设备代码") @FieldDisplayDefine(value = "设备代码")
private String equCode; private String equCode;
......
package com.yeejoin.amos.boot.module.jg.api.dto;
import lombok.Data;
import java.util.Map;
@Data
public class MultiChangeItemData {
String record;
Map<String, Object> data;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import java.util.HashMap;
public class RequestChangeData extends JSONObject {
public static final String multiDataKey = "tableData";
public IBizDataChangeHandleStrategy.ModelType getModelType() {
if (!this.containsKey(multiDataKey)) {
return IBizDataChangeHandleStrategy.ModelType.single;
}
return IBizDataChangeHandleStrategy.ModelType.batch;
}
}
...@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModel; ...@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModel;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable;
/** /**
* 安全追溯-锅炉 * 安全追溯-锅炉
* *
...@@ -16,7 +18,7 @@ import lombok.experimental.Accessors; ...@@ -16,7 +18,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_boiler") @Group(value = "tech_params_boiler")
public class TechParamsBoilerChangeFieldDto { public class TechParamsBoilerChangeFieldDto extends BaseTechParamsFieldDto {
@FieldDisplayDefine(value = "设备级别") @FieldDisplayDefine(value = "设备级别")
private String deviceLevel; private String deviceLevel;
......
...@@ -14,7 +14,7 @@ import lombok.experimental.Accessors; ...@@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_elevator") @Group(value = "tech_params_elevator")
public class TechParamsElevatorChangeFieldDto { public class TechParamsElevatorChangeFieldDto extends BaseTechParamsFieldDto{
@FieldDisplayDefine(value = "设备级别") @FieldDisplayDefine(value = "设备级别")
private String ratedSpeedUp; private String ratedSpeedUp;
......
...@@ -16,7 +16,7 @@ import java.util.Date; ...@@ -16,7 +16,7 @@ import java.util.Date;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_lifting") @Group(value = "tech_params_lifting")
public class TechParamsLiftingChangeFieldDto { public class TechParamsLiftingChangeFieldDto extends BaseTechParamsFieldDto{
private String jurisdictionalAgency; private String jurisdictionalAgency;
......
...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors; ...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_pipeline") @Group(value = "tech_params_pipeline")
public class TechParamsPipelineChangeFieldDto { public class TechParamsPipelineChangeFieldDto extends BaseTechParamsFieldDto{
/** /**
......
...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors; ...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_rides") @Group(value = "tech_params_rides")
public class TechParamsRidesChangeFieldDto { public class TechParamsRidesChangeFieldDto extends BaseTechParamsFieldDto{
/** /**
* *
......
...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors; ...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_ropeway") @Group(value = "tech_params_ropeway")
public class TechParamsRopewayChangeFieldDto { public class TechParamsRopewayChangeFieldDto extends BaseTechParamsFieldDto{
/** /**
......
...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors; ...@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_vehicle") @Group(value = "tech_params_vehicle")
public class TechParamsVehicleChangeFieldDto { public class TechParamsVehicleChangeFieldDto extends BaseTechParamsFieldDto{
/** /**
......
...@@ -18,7 +18,7 @@ import lombok.experimental.Accessors; ...@@ -18,7 +18,7 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
@Group(value = "tech_params_vessel") @Group(value = "tech_params_vessel")
public class TechParamsVesselChangeFieldDto { public class TechParamsVesselChangeFieldDto extends BaseTechParamsFieldDto {
@TableField("\"INSTANCE_ID\"") @TableField("\"INSTANCE_ID\"")
......
package com.yeejoin.amos.boot.module.jg.biz.service; package com.yeejoin.amos.boot.module.jg.api.service;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -17,10 +17,10 @@ public interface IBizDataChangeHandleStrategy { ...@@ -17,10 +17,10 @@ public interface IBizDataChangeHandleStrategy {
* *
* @param applyNo 单据编号 * @param applyNo 单据编号
* @param model single, batch * @param model single, batch
* @param bizId * @param bizId 设备record
* @return 变更信息详情 * @return 变更信息详情
*/ */
Map<String, List<Map<String, Object>>> getChangeDetail(String applyNo, ModelType model, String bizId); Map<String, ?> getChangeDetail(String applyNo, ModelType model, String bizId);
/** /**
* 保存 * 保存
...@@ -29,7 +29,7 @@ public interface IBizDataChangeHandleStrategy { ...@@ -29,7 +29,7 @@ public interface IBizDataChangeHandleStrategy {
* @param model single, batch * @param model single, batch
* @param changeData 变更数据 * @param changeData 变更数据
*/ */
void doSave(String applyNo, ModelType model, Map<String, List<Map<String, Object>>> changeData); void doSave(String applyNo, ModelType model, Map<String, Object> changeData);
/** /**
......
package com.yeejoin.amos.boot.module.jg.biz.context; package com.yeejoin.amos.boot.module.jg.biz.context;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
......
package com.yeejoin.amos.boot.module.jg.biz.context; package com.yeejoin.amos.boot.module.jg.biz.context;
import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy; import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationContextAware;
......
package com.yeejoin.amos.boot.module.jg.biz.controller; package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.BizDataChangeServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.BizDataChangeServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -10,7 +11,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -10,7 +11,6 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map; import java.util.Map;
@RestController @RestController
...@@ -19,7 +19,7 @@ import java.util.Map; ...@@ -19,7 +19,7 @@ import java.util.Map;
public class BizDataChangeController { public class BizDataChangeController {
private BizDataChangeServiceImpl bizDataChangeService; private final BizDataChangeServiceImpl bizDataChangeService;
public BizDataChangeController(BizDataChangeServiceImpl bizDataChangeService) { public BizDataChangeController(BizDataChangeServiceImpl bizDataChangeService) {
this.bizDataChangeService = bizDataChangeService; this.bizDataChangeService = bizDataChangeService;
...@@ -30,9 +30,8 @@ public class BizDataChangeController { ...@@ -30,9 +30,8 @@ public class BizDataChangeController {
@ApiOperation(value = "业务数据变更保存", httpMethod = "POST") @ApiOperation(value = "业务数据变更保存", httpMethod = "POST")
public ResponseModel<String> save(String applyNo, public ResponseModel<String> save(String applyNo,
@PathVariable String bizType, @PathVariable String bizType,
IBizDataChangeHandleStrategy.ModelType model, @RequestBody RequestChangeData changeData) {
Map<String, List<Map<String, Object>>> changeData) { bizDataChangeService.save(applyNo, bizType, changeData);
bizDataChangeService.save(applyNo, bizType, model, changeData);
return ResponseHelper.buildResponse("success"); return ResponseHelper.buildResponse("success");
} }
...@@ -40,12 +39,11 @@ public class BizDataChangeController { ...@@ -40,12 +39,11 @@ public class BizDataChangeController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{bizType}/detail") @GetMapping(value = "/{bizType}/detail")
@ApiOperation(value = "查询可业务变更的字段及默认值", httpMethod = "GET") @ApiOperation(value = "查询可业务变更的字段及默认值", httpMethod = "GET")
public ResponseModel<Map<String, List<Map<String, Object>>>> getDetail(@RequestParam(required = false) String applyNo, public ResponseModel<Map<String, ?>> getDetail(@RequestParam(required = false) String applyNo,
@PathVariable String bizType, @PathVariable String bizType,
IBizDataChangeHandleStrategy.ModelType model, IBizDataChangeHandleStrategy.ModelType model,
@RequestParam(required = false) String bizId) { @RequestParam(required = false) String bizId) {
Map<String, List<Map<String, Object>>> re = bizDataChangeService.queryDetail(applyNo, bizType, model, bizId); return ResponseHelper.buildResponse(bizDataChangeService.queryDetail(applyNo, bizType, model, bizId));
return ResponseHelper.buildResponse(re);
} }
......
package com.yeejoin.amos.boot.module.jg.biz.service; package com.yeejoin.amos.boot.module.jg.biz.service;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto; import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -13,10 +14,10 @@ public interface IChangeDataProcessStrategy { ...@@ -13,10 +14,10 @@ public interface IChangeDataProcessStrategy {
/** /**
* 事件处理 * 事件处理
*/ */
Map<String, List<ChangeDataDto>> handle(List<Map<String, Object>> changeData, String defaultChangeId); List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId);
Map<String, List<Map<String, Object>>> getDetail(String applyNo, String bizId); Map<String, ?> getDetail(String applyNo, String bizId);
/** /**
* 可处理类型 * 可处理类型
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto; import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.api.dto.MultiChangeItemData;
import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory; import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration; import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy; import com.yeejoin.amos.boot.module.jg.biz.service.IChangeDataProcessStrategy;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -36,17 +38,28 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg ...@@ -36,17 +38,28 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg
private final JgUseRegistrationMapper jgUseRegistrationMapper; private final JgUseRegistrationMapper jgUseRegistrationMapper;
public BatchDataChangeProcessStrategy(JgUseRegistrationServiceImpl useRegistrationService, JgRegistrationHistoryServiceImpl jgRegistrationHistoryService, JgUseRegistrationMapper jgUseRegistrationMapper) { private final SingleDataChangeProcessStrategy singleDataChangeProcessStrategy;
public BatchDataChangeProcessStrategy(JgUseRegistrationServiceImpl useRegistrationService, JgRegistrationHistoryServiceImpl jgRegistrationHistoryService, JgUseRegistrationMapper jgUseRegistrationMapper, SingleDataChangeProcessStrategy singleDataChangeProcessStrategy) {
this.useRegistrationService = useRegistrationService; this.useRegistrationService = useRegistrationService;
this.jgRegistrationHistoryService = jgRegistrationHistoryService; this.jgRegistrationHistoryService = jgRegistrationHistoryService;
this.jgUseRegistrationMapper = jgUseRegistrationMapper; this.jgUseRegistrationMapper = jgUseRegistrationMapper;
this.singleDataChangeProcessStrategy = singleDataChangeProcessStrategy;
} }
@Override @Override
public Map<String, List<ChangeDataDto>> handle(List<Map<String, Object>> changeData, String defaultChangeId) { public List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId) {
List<ChangeDataDto> changeDataDtos = BeanUtil.copyToList(changeData, ChangeDataDto.class); JSONObject data = (JSONObject) changeData.get("data");
changeDataDtos = changeDataDtos.stream().filter(c -> !StringUtils.equals(c.getColumnNewValue(), c.getColumnOldValue())).collect(Collectors.toList()); JSONArray equips = data.getJSONArray(RequestChangeData.multiDataKey);
return changeDataDtos.stream().collect(Collectors.groupingBy(ChangeDataDto::getChangeId)); List<MultiChangeItemData> items = equips.toJavaList(MultiChangeItemData.class);
List<ChangeDataDto> allChangeColumns = new ArrayList<>();
items.forEach(item -> {
String record = item.getRecord();
Map<String, Object> itemData = item.getData();
List<ChangeDataDto> oneEquipChangeColumns = singleDataChangeProcessStrategy.handle(itemData, record);
allChangeColumns.addAll(oneEquipChangeColumns);
});
return allChangeColumns;
} }
@Override @Override
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.context.BizDataHandleStrategyContext; import com.yeejoin.amos.boot.module.jg.biz.context.BizDataHandleStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -15,18 +16,17 @@ public class BizDataChangeServiceImpl { ...@@ -15,18 +16,17 @@ public class BizDataChangeServiceImpl {
* *
* @param applyNo 单据编号 * @param applyNo 单据编号
* @param bizType 业务类型 * @param bizType 业务类型
* @param model 单个维护、批量维护
* @param changeData 变化后的数据 * @param changeData 变化后的数据
*/ */
public void save(String applyNo, public void save(String applyNo,
String bizType, String bizType,
IBizDataChangeHandleStrategy.ModelType model, RequestChangeData changeData) {
Map<String, List<Map<String, Object>>> changeData) { IBizDataChangeHandleStrategy.ModelType model = changeData.getModelType();
IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType); IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType);
handleStrategy.doSave(applyNo, model, changeData); handleStrategy.doSave(applyNo, model, changeData);
} }
public Map<String, List<Map<String, Object>>> queryDetail(String applyNo, String bizType, IBizDataChangeHandleStrategy.ModelType model, String bizId) { public Map<String, ?> queryDetail(String applyNo, String bizType, IBizDataChangeHandleStrategy.ModelType model, String bizId) {
IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType); IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType);
return handleStrategy.getChangeDetail(applyNo, model, bizId); return handleStrategy.getChangeDetail(applyNo, model, bizId);
} }
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.support.jconsole.util.TableDataProcessor;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory; import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto; import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.*; import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.biz.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import net.sf.jsqlparser.schema.Column;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment