112 changed files with 8917 additions and 3 deletions
@ -0,0 +1,32 @@ |
|||
<?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"> |
|||
|
|||
<parent> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common</artifactId> |
|||
<version>${revision}</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<artifactId>guoyan-common-elasticsearch</artifactId> |
|||
<description> |
|||
guoyan-common-elasticsearch elasticsearch模块 |
|||
</description> |
|||
<dependencies> |
|||
<dependency> |
|||
<groupId>org.elasticsearch</groupId> |
|||
<artifactId>elasticsearch</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.elasticsearch.client</groupId> |
|||
<artifactId>elasticsearch-rest-high-level-client</artifactId> |
|||
</dependency> |
|||
<!-- 序列化模块 --> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-json</artifactId> |
|||
</dependency> |
|||
</dependencies> |
|||
</project> |
@ -0,0 +1,209 @@ |
|||
package org.dromara.common.elasticsearch.config; |
|||
|
|||
import org.apache.http.HttpHost; |
|||
import org.apache.http.auth.AuthScope; |
|||
import org.apache.http.auth.UsernamePasswordCredentials; |
|||
import org.apache.http.client.CredentialsProvider; |
|||
import org.apache.http.impl.client.BasicCredentialsProvider; |
|||
import org.elasticsearch.client.RestClient; |
|||
import org.elasticsearch.client.RestClientBuilder; |
|||
import org.elasticsearch.client.RestHighLevelClient; |
|||
import org.springframework.beans.factory.annotation.Value; |
|||
import org.springframework.context.annotation.Bean; |
|||
import org.springframework.context.annotation.Configuration; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* ElasticSearch 配置 |
|||
* |
|||
* @author wqliu |
|||
* @date 2024-02-21 |
|||
*/ |
|||
@Configuration |
|||
|
|||
public class ElasticSearchConfig { |
|||
@Value("${elasticsearch.uris}") |
|||
private String hosts; |
|||
|
|||
@Value("${elasticsearch.username}") |
|||
private String userName; |
|||
|
|||
@Value("${elasticsearch.password}") |
|||
private String password; |
|||
|
|||
/** |
|||
* es 请求方式 |
|||
*/ |
|||
@Value("${elasticsearch.scheme}") |
|||
private String scheme; |
|||
/** |
|||
* es 连接超时时间 |
|||
*/ |
|||
@Value("${elasticsearch.connectTimeOut}") |
|||
|
|||
private int connectTimeOut; |
|||
/** |
|||
* es socket 连接超时时间 |
|||
*/ |
|||
@Value("${elasticsearch.socketTimeOut}") |
|||
|
|||
private int socketTimeOut; |
|||
/** |
|||
* es 请求超时时间 |
|||
*/ |
|||
@Value("${elasticsearch.connectionRequestTimeOut}") |
|||
private int connectionRequestTimeOut; |
|||
/** |
|||
* es 最大连接数 |
|||
*/ |
|||
@Value("${elasticsearch.maxConnectNum}") |
|||
private int maxConnectNum; |
|||
/** |
|||
* es 每个路由的最大连接数 |
|||
*/ |
|||
@Value("${elasticsearch.maxConnectNumPerRoute}") |
|||
private int maxConnectNumPerRoute; |
|||
|
|||
|
|||
/** |
|||
* 如果@Bean没有指定bean的名称,那么方法名就是bean的名称 |
|||
*/ |
|||
@Bean |
|||
public RestHighLevelClient restHighLevelClient() { |
|||
// 构建连接对象
|
|||
RestClientBuilder builder = RestClient.builder(getEsHost()); |
|||
|
|||
// 连接延时配置
|
|||
builder.setRequestConfigCallback(requestConfigBuilder -> { |
|||
requestConfigBuilder.setConnectTimeout(connectTimeOut); |
|||
requestConfigBuilder.setSocketTimeout(socketTimeOut); |
|||
requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut); |
|||
return requestConfigBuilder; |
|||
}); |
|||
|
|||
// 连接数配置
|
|||
builder.setHttpClientConfigCallback(httpClientBuilder -> { |
|||
httpClientBuilder.setMaxConnTotal(maxConnectNum); |
|||
httpClientBuilder.setMaxConnPerRoute(maxConnectNumPerRoute); |
|||
httpClientBuilder.setDefaultCredentialsProvider(getCredentialsProvider()); |
|||
|
|||
return httpClientBuilder; |
|||
}); |
|||
return new RestHighLevelClient(builder); |
|||
} |
|||
|
|||
private HttpHost[] getEsHost() { |
|||
// 拆分地址(es为多节点时,不同host以逗号间隔)
|
|||
List<HttpHost> hostLists = new ArrayList<>(); |
|||
String[] hostList = hosts.split(","); |
|||
for (String addr : hostList) { |
|||
String host = addr.split(":")[0]; |
|||
String port = addr.split(":")[1]; |
|||
hostLists.add(new HttpHost(host, Integer.parseInt(port), scheme)); |
|||
} |
|||
// 转换成 HttpHost 数组
|
|||
return hostLists.toArray(new HttpHost[]{}); |
|||
} |
|||
|
|||
private CredentialsProvider getCredentialsProvider() { |
|||
// 设置用户名、密码
|
|||
CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); |
|||
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password)); |
|||
return credentialsProvider; |
|||
} |
|||
|
|||
/** |
|||
* 同步方式 |
|||
* |
|||
* @return |
|||
*/ |
|||
// @Bean
|
|||
// public ElasticsearchClient elasticsearchClient() throws Exception {
|
|||
//// HttpHost[] httpHosts = toHttpHost();
|
|||
// final CredentialsProvider credentialsProvider =
|
|||
// new BasicCredentialsProvider();
|
|||
// credentialsProvider.setCredentials(AuthScope.ANY,
|
|||
// new UsernamePasswordCredentials(userName, passWord));
|
|||
//
|
|||
// ClassPathResource resource = new ClassPathResource("http_ca.crt");
|
|||
// CertificateFactory factory =
|
|||
// CertificateFactory.getInstance("X.509");
|
|||
// Certificate trustedCa;
|
|||
// try (InputStream is = resource.getInputStream()) {
|
|||
// trustedCa = factory.generateCertificate(is);
|
|||
// }
|
|||
// KeyStore trustStore = KeyStore.getInstance("pkcs12");
|
|||
// trustStore.load(null, null);
|
|||
// trustStore.setCertificateEntry("ca", trustedCa);
|
|||
// SSLContextBuilder sslContextBuilder = SSLContexts.custom()
|
|||
// .loadTrustMaterial(trustStore, null);
|
|||
// final SSLContext sslContext = sslContextBuilder.build();
|
|||
//
|
|||
// RestClientBuilder builder = RestClient.builder(
|
|||
// new HttpHost("localhost", 9200, "https"))
|
|||
// .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
|
|||
// @Override
|
|||
// public HttpAsyncClientBuilder customizeHttpClient(
|
|||
// HttpAsyncClientBuilder httpClientBuilder) {
|
|||
// return httpClientBuilder.setSSLContext(sslContext)
|
|||
// .setDefaultCredentialsProvider(credentialsProvider);
|
|||
// }
|
|||
// });
|
|||
//
|
|||
// RestClient restClient = builder.build();
|
|||
//
|
|||
// // Create the transport with a Jackson mapper
|
|||
// ElasticsearchTransport transport = new RestClientTransport(
|
|||
// restClient, new JacksonJsonpMapper());
|
|||
//
|
|||
// return new ElasticsearchClient(transport);
|
|||
//// asyncClient = new ElasticsearchAsyncClient(transport);
|
|||
//
|
|||
// }
|
|||
|
|||
// /**
|
|||
// * 解析配置的字符串hosts,转为HttpHost对象数组
|
|||
// *
|
|||
// * @return
|
|||
// */
|
|||
// private HttpHost[] toHttpHost() {
|
|||
// if (!StringUtils.hasLength(hosts)) {
|
|||
// throw new RuntimeException("invalid elasticsearch configuration. elasticsearch.hosts不能为空!");
|
|||
// }
|
|||
// // 多个IP逗号隔开
|
|||
// String[] hostArray = hosts.split(",");
|
|||
// HttpHost[] httpHosts = new HttpHost[hostArray.length];
|
|||
// HttpHost httpHost;
|
|||
// for (int i = 0; i < hostArray.length; i++) {
|
|||
// String[] strings = hostArray[i].split(":");
|
|||
// httpHost = new HttpHost(strings[0], Integer.parseInt(strings[1]), "https");
|
|||
// httpHosts[i] = httpHost;
|
|||
// }
|
|||
// return httpHosts;
|
|||
// }
|
|||
|
|||
// @Bean
|
|||
// ElasticsearchConverter elasticsearchConverter(SimpleElasticsearchMappingContext mappingContext) {
|
|||
// DefaultConversionService defaultConversionService = new DefaultConversionService();
|
|||
// defaultConversionService.addConverter(LongToLocalDateTimeConverter.INSTANCE);
|
|||
// return new MappingElasticsearchConverter(mappingContext, defaultConversionService);
|
|||
// }
|
|||
//
|
|||
// @ReadingConverter
|
|||
// static enum LongToLocalDateTimeConverter implements Converter<Long, LocalDateTime> {
|
|||
// /**
|
|||
// * 单例模式
|
|||
// */
|
|||
// INSTANCE;
|
|||
//
|
|||
// private LongToLocalDateTimeConverter() {
|
|||
// }
|
|||
//
|
|||
// @Override
|
|||
// public LocalDateTime convert(Long source) {
|
|||
// return Instant.ofEpochMilli(source).atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|||
// }
|
|||
// }
|
|||
} |
@ -0,0 +1,147 @@ |
|||
package org.dromara.common.elasticsearch.entity; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; |
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
|
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 实体类 |
|||
* |
|||
* @author ZHB |
|||
* @date 2024-05-08 |
|||
* |
|||
*/ |
|||
@Data |
|||
@JsonIgnoreProperties(ignoreUnknown = true) |
|||
public class SupplierProductsDTO { |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
@JsonProperty(value ="supplier_information_id") |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 厂商产品型号id |
|||
*/ |
|||
@JsonProperty(value ="model_id") |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 个人产品规格 |
|||
*/ |
|||
@JsonProperty(value ="product_specifications") |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@JsonProperty(value ="product_name") |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
@JsonProperty(value ="product_identity") |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@JsonProperty(value ="product_price") |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
@JsonProperty(value ="source_information") |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@JsonProperty(value ="remarks") |
|||
private String remarks; |
|||
/** |
|||
* 产品图片 |
|||
*/ |
|||
@JsonProperty(value ="image") |
|||
private String image; |
|||
|
|||
/** |
|||
* 产品品牌 |
|||
*/ |
|||
@JsonProperty(value ="brand") |
|||
private String brand; |
|||
|
|||
/** |
|||
* 产品单位*/ |
|||
@JsonProperty(value ="unit") |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价格 |
|||
*/ |
|||
@JsonProperty(value ="ex_tax_price") |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
@JsonProperty(value ="taxrate") |
|||
private BigDecimal taxrate; |
|||
/** |
|||
* 分类id |
|||
*/ |
|||
@JsonProperty(value ="category_id") |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 逻辑删除 |
|||
*/ |
|||
@JsonProperty(value ="delete_flag") |
|||
protected String deleteFlag; |
|||
/** |
|||
* 创建人标识 |
|||
*/ |
|||
|
|||
@JsonProperty(value ="create_id") |
|||
private String createId; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
// @JsonProperty(value ="create_time")
|
|||
// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
|||
// @DateTimeFormat(pattern = "yyyy-MM-dd")
|
|||
// private Date createTime;
|
|||
|
|||
/** |
|||
* 更新人标识 |
|||
*/ |
|||
|
|||
@JsonProperty(value ="update_id") |
|||
private String updateId; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
// @JsonProperty(value ="update_time")
|
|||
// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
|||
// @DateTimeFormat(pattern = "yyyy-MM-dd")
|
|||
// private Date updateTime;
|
|||
|
|||
/** |
|||
* 版本 |
|||
*/ |
|||
|
|||
@JsonProperty(value ="version") |
|||
private Integer version; |
|||
/********非库表存储属性*****/ |
|||
} |
@ -0,0 +1,231 @@ |
|||
package org.dromara.common.excel.utils; |
|||
|
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.alibaba.excel.EasyExcel; |
|||
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.NotEmpty; |
|||
import jakarta.validation.constraints.NotNull; |
|||
import org.springframework.util.CollectionUtils; |
|||
|
|||
import java.io.IOException; |
|||
import java.net.URLEncoder; |
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* EasyExcel工具类 |
|||
*/ |
|||
public class EasyExcelUtils { |
|||
|
|||
|
|||
/** |
|||
* 注入的具有排序功能的handle |
|||
*/ |
|||
// private static final SortRowWriteHandler SORT_ROW_WRITE_HANDLER = new SortRowWriteHandler();
|
|||
|
|||
/** |
|||
* 导出excel-按指定顺序 |
|||
* |
|||
* @param <T> 类(必须是小写,并遵守阿里开发规范) |
|||
* @param list 列表数据 |
|||
* @param fileName 文件名称 |
|||
* @param useDefaultStyle 是否使用默认样式 |
|||
* @param response 响应 |
|||
*/ |
|||
public static <T> Map<String, Object> exportExcelInclude(List<T> list, String fileName,Boolean useDefaultStyle, HttpServletResponse response) throws IOException { |
|||
Map<String, Object> resultMap = new HashMap<>(); |
|||
if (list.size() == 0) { |
|||
resultMap.put("msg", "数据长度为空"); |
|||
resultMap.put("result", -1); |
|||
return resultMap; |
|||
} |
|||
|
|||
Class<?> clazz = list.get(0).getClass(); |
|||
|
|||
/*定义编码,格式*/ |
|||
response.setContentType("application/vnd.ms-excel"); |
|||
response.setCharacterEncoding("utf-8"); |
|||
String exportFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); |
|||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + exportFileName + ".xlsx"); |
|||
response.setHeader("filename", exportFileName + ".xlsx"); |
|||
response.setHeader("Access-Control-Expose-Headers", "filename"); |
|||
/** |
|||
* .head(head(headNameList)) |
|||
* 改行代码不可以用ExcelWriterSheetBuilder类型的变量单独写,否则会包错:表头长度与字段列表长度不符 |
|||
*/ |
|||
/*导出表格*/ |
|||
ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel.write(response.getOutputStream(), clazz) |
|||
.useDefaultStyle(useDefaultStyle) |
|||
.sheet(fileName); |
|||
excelWriterSheetBuilder.doWrite(list); |
|||
|
|||
resultMap.put("msg", "excel export success"); |
|||
resultMap.put("result", 0); |
|||
return resultMap; |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 导出excel-默认顺序 |
|||
* |
|||
* @param <T> 类(必须是小写,并遵守阿里开发规范) |
|||
* @param list 列表数据 |
|||
* @param fileName 文件名称 |
|||
* @param useDefaultStyle 是否使用默认样式 |
|||
* @param response 响应 |
|||
* @param headNameList |
|||
* @param columnList 设置列字段(必须是小写) |
|||
*/ |
|||
public static <T> Map<String, Object> exportExcelInclude(List<T> list, String fileName,Boolean useDefaultStyle, HttpServletResponse response, List<String> columnList, List<String> headNameList) throws IOException { |
|||
Map<String, Object> resultMap = new HashMap<>(); |
|||
if (list.size() == 0) { |
|||
resultMap.put("msg", "数据长度为空"); |
|||
resultMap.put("result", -1); |
|||
return resultMap; |
|||
} |
|||
|
|||
if (CollectionUtils.isEmpty(headNameList)) { |
|||
/*设置表头*/ |
|||
resultMap.put("msg", "表头长度为空"); |
|||
resultMap.put("result", -2); |
|||
return resultMap; |
|||
} |
|||
|
|||
if (CollectionUtils.isEmpty(columnList)) { |
|||
/*设置列字段*/ |
|||
resultMap.put("msg", "列字段长度为空"); |
|||
resultMap.put("result", -3); |
|||
return resultMap; |
|||
} |
|||
|
|||
Class<?> clazz = list.get(0).getClass(); |
|||
|
|||
/*定义编码,格式*/ |
|||
response.setContentType("application/vnd.ms-excel"); |
|||
response.setCharacterEncoding("utf-8"); |
|||
String exportFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); |
|||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + exportFileName + ".xlsx"); |
|||
response.setHeader("filename", exportFileName + ".xlsx"); |
|||
response.setHeader("Access-Control-Expose-Headers", "filename"); |
|||
/** |
|||
* .head(head(headNameList)) |
|||
* 改行代码不可以用ExcelWriterSheetBuilder类型的变量单独写,否则会包错:表头长度与字段列表长度不符 |
|||
*/ |
|||
/*导出表格*/ |
|||
ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel.write(response.getOutputStream(), clazz) |
|||
.head(head(headNameList)) |
|||
/*设置列字段(会按顺序)*/ |
|||
.includeColumnFiledNames(columnList) |
|||
/*注入的具有排序功能的handle*/ |
|||
// .registerWriteHandler(SORT_ROW_WRITE_HANDLER)
|
|||
.useDefaultStyle(useDefaultStyle) |
|||
.sheet(fileName); |
|||
excelWriterSheetBuilder.doWrite(list); |
|||
|
|||
resultMap.put("msg", "excel export success"); |
|||
resultMap.put("result", 0); |
|||
return resultMap; |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 支持动态头,行列合并导出 |
|||
* |
|||
* @param response web响应 |
|||
* @param headList 动态头 |
|||
* @param dataList 数据列表 |
|||
* @param columnMergeHandler 注入列合并 |
|||
* @param rowMergeHandler 注入行合并 |
|||
* @throws IOException |
|||
*/ |
|||
public static Map<String, Object> writeDynamicExcel(HttpServletResponse response, @NotEmpty List<List<String>> headList, @NotEmpty List<List<Object>> dataList, @NotNull ExcelColumnMergeHandler columnMergeHandler, @NotNull ExcelRowMergeHandler rowMergeHandler) throws IOException { |
|||
Map<String, Object> resultMap = new HashMap<>(); |
|||
if (dataList.size() == 0) { |
|||
resultMap.put("msg", "数据长度为空"); |
|||
resultMap.put("result", -1); |
|||
return resultMap; |
|||
} |
|||
|
|||
if (CollectionUtils.isEmpty(headList)) { |
|||
/*设置表头*/ |
|||
resultMap.put("msg", "表头长度为空"); |
|||
resultMap.put("result", -2); |
|||
return resultMap; |
|||
} |
|||
|
|||
if (columnMergeHandler == null || rowMergeHandler == null) { |
|||
/*设置列字段*/ |
|||
resultMap.put("msg", "行列处理器为空"); |
|||
resultMap.put("result", -3); |
|||
return resultMap; |
|||
} |
|||
|
|||
EasyExcel.write(response.getOutputStream()) |
|||
// 设置动态头
|
|||
.head(headList) |
|||
.sheet("模板") |
|||
/*注入列合并*/ |
|||
.registerWriteHandler(columnMergeHandler) |
|||
/*注入行合并*/ |
|||
.registerWriteHandler(rowMergeHandler) |
|||
/*传需要写入的数据,类型List<List<Object>>*/ |
|||
.doWrite(dataList); |
|||
|
|||
resultMap.put("msg", "excel export success"); |
|||
resultMap.put("result", 0); |
|||
return resultMap; |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 支持动态头导出 |
|||
* |
|||
* @param response web响应 |
|||
* @param headList 动态头 |
|||
* @param dataList 数据列表 |
|||
* @throws IOException |
|||
*/ |
|||
public static void writeDynamicExcel(HttpServletResponse response,List<List<String>> headList, List<List<Object>> dataList) throws IOException { |
|||
EasyExcel.write(response.getOutputStream()) |
|||
// 设置动态头
|
|||
.head(headList) |
|||
.sheet("模板") |
|||
/*传需要写入的数据,类型List<List<Object>>*/ |
|||
.doWrite(dataList); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 设置Excel头 |
|||
* |
|||
* @param headList Excel头信息 |
|||
* @return |
|||
*/ |
|||
public static List<List<String>> head(List<String> headList) { |
|||
List<List<String>> list = new ArrayList<>(); |
|||
for (String value : headList) { |
|||
List<String> head = new ArrayList<>(); |
|||
head.add(value); |
|||
list.add(head); |
|||
} |
|||
return list; |
|||
} |
|||
|
|||
/** |
|||
* Excel头对应的字段转换小写 |
|||
* |
|||
* @param ColumnListTemp Excel字段 |
|||
* @return |
|||
*/ |
|||
public static List<String> castLowerCase(List<String> ColumnListTemp) { |
|||
List<String> ColumnList = new ArrayList<>(); |
|||
for (String name : ColumnListTemp) { |
|||
ColumnList.add(StrUtil.lowerFirst(name)); |
|||
} |
|||
return ColumnList; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,108 @@ |
|||
package org.dromara.common.excel.utils; |
|||
|
|||
import com.alibaba.excel.metadata.Head; |
|||
import com.alibaba.excel.metadata.data.WriteCellData; |
|||
import com.alibaba.excel.write.handler.CellWriteHandler; |
|||
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; |
|||
import com.alibaba.excel.write.metadata.holder.WriteTableHolder; |
|||
import lombok.Data; |
|||
import org.apache.poi.ss.usermodel.Cell; |
|||
import org.apache.poi.ss.usermodel.CellType; |
|||
import org.apache.poi.ss.usermodel.Row; |
|||
import org.apache.poi.ss.usermodel.Sheet; |
|||
import org.apache.poi.ss.util.CellRangeAddress; |
|||
|
|||
import java.util.List; |
|||
|
|||
/*** |
|||
* 列合并处理器 |
|||
* |
|||
*/ |
|||
@Data |
|||
public class ExcelColumnMergeHandler implements CellWriteHandler { |
|||
/** |
|||
* 合并字段的下标,如new int[]{0,1,2,3,4,10},0-4合并,10合并 |
|||
*/ |
|||
private int[] mergeColumnIndex; |
|||
/** |
|||
* 从第几行开始合并,如果表头占两行,这个数字就是2 |
|||
*/ |
|||
private int mergeRowIndex; |
|||
|
|||
public ExcelColumnMergeHandler() { |
|||
} |
|||
|
|||
public ExcelColumnMergeHandler(int mergeRowIndex, int[] mergeColumnIndex) { |
|||
this.mergeRowIndex = mergeRowIndex; |
|||
this.mergeColumnIndex = mergeColumnIndex; |
|||
} |
|||
|
|||
@Override |
|||
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, |
|||
Head head, Integer integer, Integer integer1, Boolean aBoolean) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, |
|||
Head head, Integer integer, Boolean aBoolean) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, |
|||
WriteCellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, |
|||
List<WriteCellData<?>> list, Cell cell, Head head, Integer integer, Boolean aBoolean) { |
|||
//当前行
|
|||
int curRowIndex = cell.getRowIndex(); |
|||
//当前列
|
|||
int curColIndex = cell.getColumnIndex(); |
|||
|
|||
if (curRowIndex > mergeRowIndex) { |
|||
for (int i = 0; i < mergeColumnIndex.length; i++) { |
|||
if (curColIndex == mergeColumnIndex[i]) { |
|||
mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex); |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) { |
|||
//获取当前行的当前列的数据和上一行的当前列列数据,通过上一行数据是否相同进行合并
|
|||
Object curData = cell.getCellType() == CellType.STRING ? cell.getStringCellValue() : |
|||
cell.getNumericCellValue(); |
|||
Cell preCell = cell.getSheet().getRow(curRowIndex - 1).getCell(curColIndex); |
|||
Object preData = preCell.getCellType() == CellType.STRING ? preCell.getStringCellValue() : |
|||
preCell.getNumericCellValue(); |
|||
// 比较当前行的第一列的单元格与上一行是否相同,相同合并当前单元格与上一行
|
|||
//
|
|||
if (curData.equals(preData)) { |
|||
Sheet sheet = writeSheetHolder.getSheet(); |
|||
List<CellRangeAddress> mergeRegions = sheet.getMergedRegions(); |
|||
boolean isMerged = false; |
|||
for (int i = 0; i < mergeRegions.size() && !isMerged; i++) { |
|||
CellRangeAddress cellRangeAddr = mergeRegions.get(i); |
|||
// 若上一个单元格已经被合并,则先移出原有的合并单元,再重新添加合并单元
|
|||
if (cellRangeAddr.isInRange(curRowIndex - 1, curColIndex)) { |
|||
sheet.removeMergedRegion(i); |
|||
cellRangeAddr.setLastRow(curRowIndex); |
|||
sheet.addMergedRegion(cellRangeAddr); |
|||
isMerged = true; |
|||
} |
|||
} |
|||
// 若上一个单元格未被合并,则新增合并单元
|
|||
if (!isMerged) { |
|||
CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex, |
|||
curColIndex); |
|||
sheet.addMergedRegion(cellRangeAddress); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
@ -0,0 +1,87 @@ |
|||
package org.dromara.common.excel.utils; |
|||
|
|||
import com.alibaba.excel.metadata.Head; |
|||
import com.alibaba.excel.metadata.data.WriteCellData; |
|||
import com.alibaba.excel.write.handler.CellWriteHandler; |
|||
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; |
|||
import com.alibaba.excel.write.metadata.holder.WriteTableHolder; |
|||
import org.apache.poi.ss.usermodel.Cell; |
|||
import org.apache.poi.ss.usermodel.Row; |
|||
import org.apache.poi.ss.usermodel.Sheet; |
|||
import org.apache.poi.ss.util.CellRangeAddress; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 行合并处理器 |
|||
* |
|||
*/ |
|||
public class ExcelRowMergeHandler implements CellWriteHandler { |
|||
private static final String KEY ="%s-%s"; |
|||
//所有的合并信息都存在了这个map里面
|
|||
Map<String, Integer> mergeInfo = new HashMap<>(); |
|||
|
|||
public ExcelRowMergeHandler() { |
|||
} |
|||
public ExcelRowMergeHandler(Map<String, Integer> mergeInfo) { |
|||
this.mergeInfo = mergeInfo; |
|||
} |
|||
|
|||
@Override |
|||
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer integer, Boolean aBoolean) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, WriteCellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> list, Cell cell, Head head, Integer integer, Boolean aBoolean) { |
|||
//当前行
|
|||
int curRowIndex = cell.getRowIndex(); |
|||
//当前列
|
|||
int curColIndex = cell.getColumnIndex(); |
|||
|
|||
Integer num = mergeInfo.get(String.format(KEY, curRowIndex, curColIndex)); |
|||
if(null != num){ |
|||
// 合并最后一行 ,列
|
|||
mergeWithPrevCol(writeSheetHolder, cell, curRowIndex, curColIndex,num); |
|||
} |
|||
} |
|||
|
|||
public void mergeWithPrevCol(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex, int num) { |
|||
Sheet sheet = writeSheetHolder.getSheet(); |
|||
CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex, curRowIndex, curColIndex, curColIndex + num); |
|||
sheet.addMergedRegion(cellRangeAddress); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 添加合并行 |
|||
* 比如参数:(3,0,2) |
|||
* 从第三行的地0列开始向右合并2格 |
|||
* 这样,第三行的地0列到第2列就会合并 |
|||
* |
|||
* 注意: |
|||
* 合并不能冲突,如果合并到已经被合并的地方会报一个POI错误 |
|||
* (java.lang.IllegalStateException: Cannot add merged region B3:B6 to sheet because it overlaps with an existing merged region (A6:C6).) |
|||
* |
|||
* @param curRowIndex 当前行: 需要合并的哪一行(一般用数据List的“index”+“表头的行数”,表头站的行数是1就+1,是2就+2) |
|||
* @param curColIndex 合并开始列:从第几行开始合并 |
|||
* @param num 合并列的数量:从第curColIndex行开始,向右合并多少格 |
|||
*/ |
|||
public void add (int curRowIndex, int curColIndex , int num){ |
|||
mergeInfo.put(String.format(KEY, curRowIndex, curColIndex),num); |
|||
} |
|||
|
|||
} |
|||
|
@ -0,0 +1,22 @@ |
|||
<?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"> |
|||
<parent> |
|||
<artifactId>ruoyi-vue-plus</artifactId> |
|||
<groupId>org.dromara</groupId> |
|||
<version>${revision}</version> |
|||
</parent> |
|||
<modules> |
|||
<module>zaojia-productManagement</module> |
|||
</modules> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
|
|||
<artifactId>zaojiaManagement</artifactId> |
|||
<packaging>pom</packaging> |
|||
|
|||
<description> |
|||
zaojiaManagement相关业务模块 |
|||
</description> |
|||
|
|||
</project> |
@ -0,0 +1,81 @@ |
|||
<?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"> |
|||
<parent> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>zaojiaManagement</artifactId> |
|||
<version>${revision}</version> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
<packaging>jar</packaging> |
|||
|
|||
<artifactId>zaojia-productManagement</artifactId> |
|||
|
|||
<description> |
|||
产品管理模块 |
|||
</description> |
|||
<dependencies> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-websocket</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-mail</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-sms</artifactId> |
|||
</dependency> |
|||
|
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-mybatis</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-web</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-log</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-idempotent</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-excel</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-translation</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-tenant</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-security</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-encrypt</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>ruoyi-common-excel</artifactId> |
|||
</dependency> |
|||
<dependency> |
|||
<groupId>org.dromara</groupId> |
|||
<artifactId>guoyan-common-elasticsearch</artifactId> |
|||
</dependency> |
|||
</dependencies> |
|||
|
|||
|
|||
</project> |
@ -0,0 +1,122 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductsBo; |
|||
import org.dromara.productManagement.domain.vo.ProductsVo; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; |
|||
import org.dromara.productManagement.domain.bo.CmgCostItemDetailBo; |
|||
import org.dromara.productManagement.service.ICmgCostItemDetailService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 造价编制详情 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/costItemDetail") |
|||
public class CmgCostItemDetailController extends BaseController { |
|||
|
|||
private final ICmgCostItemDetailService cmgCostItemDetailService; |
|||
|
|||
/** |
|||
* 获取产品类型列表根据不同的分类 |
|||
* @param bo |
|||
* @param pageQuery |
|||
* @return |
|||
*/ |
|||
@GetMapping("/getProductsPageByType") |
|||
public TableDataInfo<ProductsVo> getProductsPageByType(ProductsBo bo, PageQuery pageQuery) { |
|||
//查询数据
|
|||
TableDataInfo<ProductsVo> pageVO =cmgCostItemDetailService.getProductsPageByType(bo, pageQuery); |
|||
return pageVO; |
|||
} |
|||
/** |
|||
* 查询造价编制详情列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costItemDetail:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<CmgCostItemDetailVo> list(CmgCostItemDetailBo bo, PageQuery pageQuery) { |
|||
return cmgCostItemDetailService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出造价编制详情列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costItemDetail:export") |
|||
@Log(title = "造价编制详情", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(CmgCostItemDetailBo bo, HttpServletResponse response) { |
|||
List<CmgCostItemDetailVo> list = cmgCostItemDetailService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "造价编制详情", CmgCostItemDetailVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取造价编制详情详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costItemDetail:query") |
|||
@GetMapping("/{id}") |
|||
public R<CmgCostItemDetailVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(cmgCostItemDetailService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增造价编制详情 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costItemDetail:add") |
|||
@Log(title = "造价编制详情", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody CmgCostItemDetailBo bo) { |
|||
return toAjax(cmgCostItemDetailService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改造价编制详情 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costItemDetail:edit") |
|||
@Log(title = "造价编制详情", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CmgCostItemDetailBo bo) { |
|||
return toAjax(cmgCostItemDetailService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除造价编制详情 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costItemDetail:remove") |
|||
@Log(title = "造价编制详情", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(cmgCostItemDetailService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,148 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.io.IOException; |
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.productManagement.domain.vo.CostDetailViewVo; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.CmgCostTableVo; |
|||
import org.dromara.productManagement.domain.bo.CmgCostTableBo; |
|||
import org.dromara.productManagement.service.ICmgCostTableService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 造价编制信息 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/costTable") |
|||
public class CmgCostTableController extends BaseController { |
|||
|
|||
private final ICmgCostTableService cmgCostTableService; |
|||
/** |
|||
* 新增 |
|||
*/ |
|||
@PostMapping("/addCostTable") |
|||
@RepeatSubmit() |
|||
@Log(title = "新增造价编制信息", businessType = BusinessType.INSERT) |
|||
@SaCheckPermission("productManagement:costTable:add") |
|||
|
|||
public R<Void> addCostTable(@Validated @RequestBody CostDetailViewVo vo) { |
|||
cmgCostTableService.addCostTable(vo); |
|||
return R.ok(); |
|||
} |
|||
/** |
|||
* 修改 |
|||
*/ |
|||
@PutMapping("/modifyCostTable") |
|||
@RepeatSubmit() |
|||
@Log(title = "修改造价编制信息", businessType = BusinessType.UPDATE) |
|||
@SaCheckPermission("productManagement:costTable:edit") |
|||
|
|||
public R<Void> modifyCostTable(@Validated @RequestBody CostDetailViewVo vo) { |
|||
cmgCostTableService.modifyCostTable(vo); |
|||
return R.ok(); |
|||
} |
|||
/** |
|||
* 获取单条数据 |
|||
*/ |
|||
@GetMapping("/getCostTableDetail/{id}") |
|||
@SaCheckPermission("productManagement:costTable:query") |
|||
public R<CostDetailViewVo> getCostTableDetail(@PathVariable("id") String id) { |
|||
CostDetailViewVo vo = cmgCostTableService.getCostTableDetail(id); |
|||
return R.ok(vo); |
|||
} |
|||
/** |
|||
* 导出单条数据表格文件 |
|||
*/ |
|||
@PostMapping("/exportData") |
|||
@SaCheckPermission("productManagement:costTable:export") |
|||
public void exportData( String id, HttpServletResponse response) throws IOException { |
|||
cmgCostTableService.exportData(id,response); |
|||
} |
|||
/** |
|||
* 查询造价编制信息列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costTable:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<CmgCostTableVo> list(CmgCostTableBo bo, PageQuery pageQuery) { |
|||
return cmgCostTableService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出造价编制信息列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costTable:export") |
|||
@Log(title = "造价编制信息", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(CmgCostTableBo bo, HttpServletResponse response) { |
|||
List<CmgCostTableVo> list = cmgCostTableService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "造价编制信息", CmgCostTableVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取造价编制信息详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costTable:query") |
|||
@GetMapping("/{id}") |
|||
public R<CmgCostTableVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(cmgCostTableService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增造价编制信息 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costTable:add") |
|||
@Log(title = "造价编制信息", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody CmgCostTableBo bo) { |
|||
return toAjax(cmgCostTableService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改造价编制信息 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costTable:edit") |
|||
@Log(title = "造价编制信息", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CmgCostTableBo bo) { |
|||
return toAjax(cmgCostTableService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除造价编制信息 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:costTable:remove") |
|||
@Log(title = "造价编制信息", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(cmgCostTableService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,140 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; |
|||
import org.dromara.productManagement.service.IPmgCompanyProductModelService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 公司产品模型 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/companyProductModel") |
|||
public class PmgCompanyProductModelController extends BaseController { |
|||
|
|||
private final IPmgCompanyProductModelService pmgCompanyProductModelService; |
|||
/** |
|||
* 新增个人产品模型及其详情 |
|||
*/ |
|||
@PostMapping("/addModel") |
|||
@SaCheckPermission("productManagement:companyProductModel:add") |
|||
@Log(title = "个人产品新增模型", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
public R<String> addModel(@Validated @RequestBody ProductModelViewBo<PmgCompanyProductModelDetailsBo> bo) { |
|||
String id = pmgCompanyProductModelService.addModel(bo); |
|||
return R.ok("新增成功",id); |
|||
} |
|||
/** |
|||
* 修改个人产品模型及其详情 |
|||
*/ |
|||
@PutMapping("/editModel") |
|||
@SaCheckPermission("productManagement:companyProductModel:edit") |
|||
@Log(title = "个人产品修改模型", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
public R<String> editModel(@Validated @RequestBody ProductModelViewBo<PmgCompanyProductModelDetailsBo> bo) { |
|||
String id = pmgCompanyProductModelService.editModel(bo); |
|||
return R.ok("修改成功",id); |
|||
} |
|||
/** |
|||
* 根据id查询个人产品模型详情 |
|||
* @param id 个人产品模型表id |
|||
* @return |
|||
*/ |
|||
@GetMapping("/getModelDetails/{id}") |
|||
@SaCheckPermission("productManagement:companyProductModel:query") |
|||
public R<List<PmgCompanyProductModelDetailsVo>> getModelDetails(@PathVariable("id") String id) { |
|||
List<PmgCompanyProductModelDetailsVo> detailsList=pmgCompanyProductModelService.getModelDetails(id); |
|||
return R.ok(detailsList); |
|||
} |
|||
/** |
|||
* 查询公司产品模型列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModel:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgCompanyProductModelVo> list(PmgCompanyProductModelBo bo, PageQuery pageQuery) { |
|||
return pmgCompanyProductModelService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出公司产品模型列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModel:export") |
|||
@Log(title = "公司产品模型", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgCompanyProductModelBo bo, HttpServletResponse response) { |
|||
List<PmgCompanyProductModelVo> list = pmgCompanyProductModelService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "公司产品模型", PmgCompanyProductModelVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取公司产品模型详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModel:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgCompanyProductModelVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgCompanyProductModelService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增公司产品模型 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModel:add") |
|||
@Log(title = "公司产品模型", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgCompanyProductModelBo bo) { |
|||
return toAjax(pmgCompanyProductModelService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改公司产品模型 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModel:edit") |
|||
@Log(title = "公司产品模型", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgCompanyProductModelBo bo) { |
|||
return toAjax(pmgCompanyProductModelService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除公司产品模型 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModel:remove") |
|||
@Log(title = "公司产品模型", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgCompanyProductModelService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; |
|||
import org.dromara.productManagement.service.IPmgCompanyProductModelDetailsService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 公司产品模型详情表 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/companyProductModelDetails") |
|||
public class PmgCompanyProductModelDetailsController extends BaseController { |
|||
|
|||
private final IPmgCompanyProductModelDetailsService pmgCompanyProductModelDetailsService; |
|||
|
|||
/** |
|||
* 查询公司产品模型详情表列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModelDetails:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgCompanyProductModelDetailsVo> list(PmgCompanyProductModelDetailsBo bo, PageQuery pageQuery) { |
|||
return pmgCompanyProductModelDetailsService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出公司产品模型详情表列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModelDetails:export") |
|||
@Log(title = "公司产品模型详情表", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgCompanyProductModelDetailsBo bo, HttpServletResponse response) { |
|||
List<PmgCompanyProductModelDetailsVo> list = pmgCompanyProductModelDetailsService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "公司产品模型详情表", PmgCompanyProductModelDetailsVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取公司产品模型详情表详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModelDetails:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgCompanyProductModelDetailsVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgCompanyProductModelDetailsService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增公司产品模型详情表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModelDetails:add") |
|||
@Log(title = "公司产品模型详情表", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgCompanyProductModelDetailsBo bo) { |
|||
return toAjax(pmgCompanyProductModelDetailsService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改公司产品模型详情表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModelDetails:edit") |
|||
@Log(title = "公司产品模型详情表", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgCompanyProductModelDetailsBo bo) { |
|||
return toAjax(pmgCompanyProductModelDetailsService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除公司产品模型详情表 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProductModelDetails:remove") |
|||
@Log(title = "公司产品模型详情表", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgCompanyProductModelDetailsService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductsBo; |
|||
import org.dromara.productManagement.service.IPmgCompanyProductsService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 公司产品管理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/companyProducts") |
|||
public class PmgCompanyProductsController extends BaseController { |
|||
|
|||
private final IPmgCompanyProductsService pmgCompanyProductsService; |
|||
|
|||
/** |
|||
* 查询公司产品管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProducts:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgCompanyProductsVo> list(PmgCompanyProductsBo bo, PageQuery pageQuery) { |
|||
return pmgCompanyProductsService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出公司产品管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProducts:export") |
|||
@Log(title = "公司产品管理", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgCompanyProductsBo bo, HttpServletResponse response) { |
|||
List<PmgCompanyProductsVo> list = pmgCompanyProductsService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "公司产品管理", PmgCompanyProductsVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取公司产品管理详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProducts:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgCompanyProductsVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgCompanyProductsService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增公司产品管理 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProducts:add") |
|||
@Log(title = "公司产品管理", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgCompanyProductsBo bo) { |
|||
return toAjax(pmgCompanyProductsService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改公司产品管理 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProducts:edit") |
|||
@Log(title = "公司产品管理", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgCompanyProductsBo bo) { |
|||
return toAjax(pmgCompanyProductsService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除公司产品管理 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:companyProducts:remove") |
|||
@Log(title = "公司产品管理", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgCompanyProductsService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,141 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.springframework.http.ResponseEntity; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelBo; |
|||
import org.dromara.productManagement.service.IPmgPersonProductModelService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 个人产品模型 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/personProductModel") |
|||
public class PmgPersonProductModelController extends BaseController { |
|||
|
|||
private final IPmgPersonProductModelService pmgPersonProductModelService; |
|||
/** |
|||
* 新增个人产品模型及其详情 |
|||
*/ |
|||
@PostMapping("/addModel") |
|||
@SaCheckPermission("productManagement:personProductModel:add") |
|||
@Log(title = "个人产品新增模型", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
public R<String> addModel(@Validated @RequestBody ProductModelViewBo<PmgPersonProductModelDetailsBo> bo) { |
|||
String id = pmgPersonProductModelService.addModel(bo); |
|||
return R.ok("新增成功",id); |
|||
} |
|||
/** |
|||
* 修改个人产品模型及其详情 |
|||
*/ |
|||
@PutMapping("/editModel") |
|||
@SaCheckPermission("productManagement:personProductModel:edit") |
|||
@Log(title = "个人产品修改模型", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
public R<String> editModel(@Validated @RequestBody ProductModelViewBo<PmgPersonProductModelDetailsBo> bo) { |
|||
String id = pmgPersonProductModelService.editModel(bo); |
|||
return R.ok("修改成功",id); |
|||
} |
|||
/** |
|||
* 根据id查询个人产品模型详情 |
|||
* @param id 个人产品模型表id |
|||
* @return |
|||
*/ |
|||
@GetMapping("/getModelDetails/{id}") |
|||
@SaCheckPermission("productManagement:personProductModel:query") |
|||
public R<List<PmgPersonProductModelDetailsVo>> getModelDetails(@PathVariable("id") String id) { |
|||
List<PmgPersonProductModelDetailsVo> detailsList=pmgPersonProductModelService.getModelDetails(id); |
|||
return R.ok(detailsList); |
|||
} |
|||
/** |
|||
* 查询个人产品模型列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModel:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgPersonProductModelVo> list(PmgPersonProductModelBo bo, PageQuery pageQuery) { |
|||
return pmgPersonProductModelService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出个人产品模型列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModel:export") |
|||
@Log(title = "个人产品模型", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgPersonProductModelBo bo, HttpServletResponse response) { |
|||
List<PmgPersonProductModelVo> list = pmgPersonProductModelService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "个人产品模型", PmgPersonProductModelVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取个人产品模型详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModel:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgPersonProductModelVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgPersonProductModelService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增个人产品模型 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModel:add") |
|||
@Log(title = "个人产品模型", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgPersonProductModelBo bo) { |
|||
return toAjax(pmgPersonProductModelService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改个人产品模型 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModel:edit") |
|||
@Log(title = "个人产品模型", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgPersonProductModelBo bo) { |
|||
return toAjax(pmgPersonProductModelService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除个人产品模型 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModel:remove") |
|||
@Log(title = "个人产品模型", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgPersonProductModelService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; |
|||
import org.dromara.productManagement.service.IPmgPersonProductModelDetailsService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 个人产品模型详情 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/personProductModelDetails") |
|||
public class PmgPersonProductModelDetailsController extends BaseController { |
|||
|
|||
private final IPmgPersonProductModelDetailsService pmgPersonProductModelDetailsService; |
|||
|
|||
/** |
|||
* 查询个人产品模型详情列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModelDetails:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgPersonProductModelDetailsVo> list(PmgPersonProductModelDetailsBo bo, PageQuery pageQuery) { |
|||
return pmgPersonProductModelDetailsService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出个人产品模型详情列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModelDetails:export") |
|||
@Log(title = "个人产品模型详情", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgPersonProductModelDetailsBo bo, HttpServletResponse response) { |
|||
List<PmgPersonProductModelDetailsVo> list = pmgPersonProductModelDetailsService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "个人产品模型详情", PmgPersonProductModelDetailsVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取个人产品模型详情详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModelDetails:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgPersonProductModelDetailsVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgPersonProductModelDetailsService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增个人产品模型详情 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModelDetails:add") |
|||
@Log(title = "个人产品模型详情", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgPersonProductModelDetailsBo bo) { |
|||
return toAjax(pmgPersonProductModelDetailsService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改个人产品模型详情 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModelDetails:edit") |
|||
@Log(title = "个人产品模型详情", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgPersonProductModelDetailsBo bo) { |
|||
return toAjax(pmgPersonProductModelDetailsService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除个人产品模型详情 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProductModelDetails:remove") |
|||
@Log(title = "个人产品模型详情", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgPersonProductModelDetailsService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; |
|||
import org.dromara.productManagement.service.IPmgPersonProductsService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 个人产品管理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/personProducts") |
|||
public class PmgPersonProductsController extends BaseController { |
|||
|
|||
private final IPmgPersonProductsService pmgPersonProductsService; |
|||
|
|||
/** |
|||
* 查询个人产品管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProducts:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgPersonProductsVo> list(PmgPersonProductsBo bo, PageQuery pageQuery) { |
|||
return pmgPersonProductsService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出个人产品管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProducts:export") |
|||
@Log(title = "个人产品管理", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgPersonProductsBo bo, HttpServletResponse response) { |
|||
List<PmgPersonProductsVo> list = pmgPersonProductsService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "个人产品管理", PmgPersonProductsVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取个人产品管理详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProducts:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgPersonProductsVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgPersonProductsService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增个人产品管理 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProducts:add") |
|||
@Log(title = "个人产品管理", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgPersonProductsBo bo) { |
|||
return toAjax(pmgPersonProductsService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改个人产品管理 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProducts:edit") |
|||
@Log(title = "个人产品管理", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgPersonProductsBo bo) { |
|||
return toAjax(pmgPersonProductsService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除个人产品管理 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:personProducts:remove") |
|||
@Log(title = "个人产品管理", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgPersonProductsService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierInformationBo; |
|||
import org.dromara.productManagement.service.IPmgSupplierInformationService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 供应商信息管理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/supplierInformation") |
|||
public class PmgSupplierInformationController extends BaseController { |
|||
|
|||
private final IPmgSupplierInformationService pmgSupplierInformationService; |
|||
|
|||
/** |
|||
* 查询供应商信息管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierInformation:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgSupplierInformationVo> list(PmgSupplierInformationBo bo, PageQuery pageQuery) { |
|||
return pmgSupplierInformationService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出供应商信息管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierInformation:export") |
|||
@Log(title = "供应商信息管理", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgSupplierInformationBo bo, HttpServletResponse response) { |
|||
List<PmgSupplierInformationVo> list = pmgSupplierInformationService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "供应商信息管理", PmgSupplierInformationVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取供应商信息管理详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierInformation:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgSupplierInformationVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgSupplierInformationService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商信息管理 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierInformation:add") |
|||
@Log(title = "供应商信息管理", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgSupplierInformationBo bo) { |
|||
return toAjax(pmgSupplierInformationService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商信息管理 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierInformation:edit") |
|||
@Log(title = "供应商信息管理", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgSupplierInformationBo bo) { |
|||
return toAjax(pmgSupplierInformationService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除供应商信息管理 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierInformation:remove") |
|||
@Log(title = "供应商信息管理", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgSupplierInformationService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,140 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; |
|||
import org.dromara.productManagement.service.IPmgSupplierProductModelService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 供应商产品模型 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/supplierProductModel") |
|||
public class PmgSupplierProductModelController extends BaseController { |
|||
|
|||
private final IPmgSupplierProductModelService pmgSupplierProductModelService; |
|||
/** |
|||
* 新增供应商产品模型及其详情 |
|||
*/ |
|||
@PostMapping("/addModel") |
|||
@SaCheckPermission("productManagement:supplierProductModel:add") |
|||
@Log(title = "个人产品新增模型", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
public R<String> addModel(@Validated @RequestBody ProductModelViewBo<PmgSupplierProductModelDetailsBo> bo) { |
|||
String id = pmgSupplierProductModelService.addModel(bo); |
|||
return R.ok("新增成功",id); |
|||
} |
|||
/** |
|||
* 修改供应商产品模型及其详情 |
|||
*/ |
|||
@PutMapping("/editModel") |
|||
@SaCheckPermission("productManagement:supplierProductModel:edit") |
|||
@Log(title = "个人产品修改模型", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
public R<String> editModel(@Validated @RequestBody ProductModelViewBo<PmgSupplierProductModelDetailsBo> bo) { |
|||
String id = pmgSupplierProductModelService.editModel(bo); |
|||
return R.ok("修改成功",id); |
|||
} |
|||
/** |
|||
* 根据id查询供应商产品模型详情 |
|||
* @param id 个人产品模型表id |
|||
* @return |
|||
*/ |
|||
@GetMapping("/getModelDetails/{id}") |
|||
@SaCheckPermission("productManagement:supplierProductModel:query") |
|||
public R<List<PmgSupplierProductModelDetailsVo>> getModelDetails(@PathVariable("id") String id) { |
|||
List<PmgSupplierProductModelDetailsVo> detailsList=pmgSupplierProductModelService.getModelDetails(id); |
|||
return R.ok(detailsList); |
|||
} |
|||
/** |
|||
* 查询供应商产品模型列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModel:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgSupplierProductModelVo> list(PmgSupplierProductModelBo bo, PageQuery pageQuery) { |
|||
return pmgSupplierProductModelService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出供应商产品模型列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModel:export") |
|||
@Log(title = "供应商产品模型", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgSupplierProductModelBo bo, HttpServletResponse response) { |
|||
List<PmgSupplierProductModelVo> list = pmgSupplierProductModelService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "供应商产品模型", PmgSupplierProductModelVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取供应商产品模型详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModel:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgSupplierProductModelVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgSupplierProductModelService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商产品模型 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModel:add") |
|||
@Log(title = "供应商产品模型", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgSupplierProductModelBo bo) { |
|||
return toAjax(pmgSupplierProductModelService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商产品模型 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModel:edit") |
|||
@Log(title = "供应商产品模型", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgSupplierProductModelBo bo) { |
|||
return toAjax(pmgSupplierProductModelService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除供应商产品模型 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModel:remove") |
|||
@Log(title = "供应商产品模型", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgSupplierProductModelService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; |
|||
import org.dromara.productManagement.service.IPmgSupplierProductModelDetailsService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 供应商产品模型详细 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/supplierProductModelDetails") |
|||
public class PmgSupplierProductModelDetailsController extends BaseController { |
|||
|
|||
private final IPmgSupplierProductModelDetailsService pmgSupplierProductModelDetailsService; |
|||
|
|||
/** |
|||
* 查询供应商产品模型详细列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModelDetails:list") |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgSupplierProductModelDetailsVo> list(PmgSupplierProductModelDetailsBo bo, PageQuery pageQuery) { |
|||
return pmgSupplierProductModelDetailsService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出供应商产品模型详细列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModelDetails:export") |
|||
@Log(title = "供应商产品模型详细", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgSupplierProductModelDetailsBo bo, HttpServletResponse response) { |
|||
List<PmgSupplierProductModelDetailsVo> list = pmgSupplierProductModelDetailsService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "供应商产品模型详细", PmgSupplierProductModelDetailsVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取供应商产品模型详细详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModelDetails:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgSupplierProductModelDetailsVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgSupplierProductModelDetailsService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商产品模型详细 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModelDetails:add") |
|||
@Log(title = "供应商产品模型详细", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgSupplierProductModelDetailsBo bo) { |
|||
return toAjax(pmgSupplierProductModelDetailsService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商产品模型详细 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModelDetails:edit") |
|||
@Log(title = "供应商产品模型详细", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgSupplierProductModelDetailsBo bo) { |
|||
return toAjax(pmgSupplierProductModelDetailsService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除供应商产品模型详细 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProductModelDetails:remove") |
|||
@Log(title = "供应商产品模型详细", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgSupplierProductModelDetailsService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,107 @@ |
|||
package org.dromara.productManagement.controller; |
|||
|
|||
import java.util.List; |
|||
|
|||
import lombok.RequiredArgsConstructor; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import jakarta.validation.constraints.*; |
|||
import cn.dev33.satoken.annotation.SaCheckPermission; |
|||
import org.dromara.common.encrypt.annotation.ApiEncrypt; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.validation.annotation.Validated; |
|||
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
|||
import org.dromara.common.log.annotation.Log; |
|||
import org.dromara.common.web.core.BaseController; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.common.core.domain.R; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import org.dromara.common.log.enums.BusinessType; |
|||
import org.dromara.common.excel.utils.ExcelUtil; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductsBo; |
|||
import org.dromara.productManagement.service.IPmgSupplierProductsService; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
|
|||
/** |
|||
* 供应商产品管理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Validated |
|||
@RequiredArgsConstructor |
|||
@RestController |
|||
@RequestMapping("/productManagement/supplierProducts") |
|||
public class PmgSupplierProductsController extends BaseController { |
|||
|
|||
private final IPmgSupplierProductsService pmgSupplierProductsService; |
|||
|
|||
/** |
|||
* 查询供应商产品管理列表 |
|||
*/ |
|||
@SaCheckPermission("productManagement:supplierProducts:list") |
|||
@ApiEncrypt(response = true) |
|||
@GetMapping("/list") |
|||
public TableDataInfo<PmgSupplierProductsVo> list(PmgSupplierProductsBo bo, PageQuery pageQuery) { |
|||
return pmgSupplierProductsService.queryPageList(bo, pageQuery); |
|||
} |
|||
|
|||
/** |
|||
* 导出供应商产品管理列表 |
|||
*/ |
|||
@SaCheckPermission("supplierProducts:supplierProducts:export") |
|||
@Log(title = "供应商产品管理", businessType = BusinessType.EXPORT) |
|||
@PostMapping("/export") |
|||
public void export(PmgSupplierProductsBo bo, HttpServletResponse response) { |
|||
List<PmgSupplierProductsVo> list = pmgSupplierProductsService.queryList(bo); |
|||
ExcelUtil.exportExcel(list, "供应商产品管理", PmgSupplierProductsVo.class, response); |
|||
} |
|||
|
|||
/** |
|||
* 获取供应商产品管理详细信息 |
|||
* |
|||
* @param id 主键 |
|||
*/ |
|||
@SaCheckPermission("supplierProducts:supplierProducts:query") |
|||
@GetMapping("/{id}") |
|||
public R<PmgSupplierProductsVo> getInfo(@NotNull(message = "主键不能为空") |
|||
@PathVariable String id) { |
|||
return R.ok(pmgSupplierProductsService.queryById(id)); |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商产品管理 |
|||
*/ |
|||
@SaCheckPermission("supplierProducts:supplierProducts:add") |
|||
@Log(title = "供应商产品管理", businessType = BusinessType.INSERT) |
|||
@RepeatSubmit() |
|||
@PostMapping() |
|||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PmgSupplierProductsBo bo) { |
|||
return toAjax(pmgSupplierProductsService.insertByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商产品管理 |
|||
*/ |
|||
@SaCheckPermission("supplierProducts:supplierProducts:edit") |
|||
@Log(title = "供应商产品管理", businessType = BusinessType.UPDATE) |
|||
@RepeatSubmit() |
|||
@PutMapping() |
|||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PmgSupplierProductsBo bo) { |
|||
return toAjax(pmgSupplierProductsService.updateByBo(bo)); |
|||
} |
|||
|
|||
/** |
|||
* 删除供应商产品管理 |
|||
* |
|||
* @param ids 主键串 |
|||
*/ |
|||
@SaCheckPermission("supplierProducts:supplierProducts:remove") |
|||
@Log(title = "供应商产品管理", businessType = BusinessType.DELETE) |
|||
@DeleteMapping("/{ids}") |
|||
public R<Void> remove(@NotEmpty(message = "主键不能为空") |
|||
@PathVariable String[] ids) { |
|||
return toAjax(pmgSupplierProductsService.deleteWithValidByIds(List.of(ids), true)); |
|||
} |
|||
} |
@ -0,0 +1,108 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.math.BigDecimal; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 造价编制详情对象 cmg_cost_item_detail |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("cmg_cost_item_detail") |
|||
public class CmgCostItemDetail extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 造价表id |
|||
*/ |
|||
private String costTableId; |
|||
|
|||
/** |
|||
* 父类id |
|||
*/ |
|||
private String parentId; |
|||
|
|||
/** |
|||
* 费用类型 |
|||
*/ |
|||
private String costType; |
|||
|
|||
/** |
|||
* 建设内容 |
|||
*/ |
|||
private String constructContent; |
|||
|
|||
/** |
|||
* 费用名称 |
|||
*/ |
|||
private String costName; |
|||
|
|||
/** |
|||
* 费用描述 |
|||
*/ |
|||
private String costDescribe; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 数量 |
|||
*/ |
|||
private Long quantity; |
|||
|
|||
/** |
|||
* 单价 |
|||
*/ |
|||
private BigDecimal unitPrice; |
|||
|
|||
/** |
|||
* 总价 |
|||
*/ |
|||
private BigDecimal totalPrice; |
|||
|
|||
/** |
|||
* 是否明细 |
|||
*/ |
|||
private String isDetail; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 排序 |
|||
*/ |
|||
private String orderNo; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
// @TableLogic
|
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,61 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.math.BigDecimal; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 造价编制信息对象 cmg_cost_table |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("cmg_cost_table") |
|||
public class CmgCostTable extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 项目名称 |
|||
*/ |
|||
private String projectName; |
|||
|
|||
/** |
|||
* 造价日期 |
|||
*/ |
|||
private Date costDate; |
|||
|
|||
/** |
|||
* 总投资 |
|||
*/ |
|||
private BigDecimal totalInvestment; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
// @TableLogic
|
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 公司产品模型对象 pmg_company_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_company_product_model") |
|||
public class PmgCompanyProductModel extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 公司产品指标描述 |
|||
*/ |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 公司产品模型详情表对象 pmg_company_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_company_product_model_details") |
|||
public class PmgCompanyProductModelDetails extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 公司产品型号表id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,118 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.math.BigDecimal; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 公司产品管理对象 pmg_company_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_company_products") |
|||
public class PmgCompanyProducts extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 公司产品规格 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 个人产品模型对象 pmg_person_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_person_product_model") |
|||
public class PmgPersonProductModel extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 个人产品指标描述 |
|||
*/ |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 个人产品模型详情对象 pmg_person_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_person_product_model_details") |
|||
public class PmgPersonProductModelDetails extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 个人产品型号表id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,119 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.math.BigDecimal; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 个人产品管理对象 pmg_person_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_person_products") |
|||
public class PmgPersonProducts extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 个人产品规格 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 供应商信息管理对象 pmg_supplier_information |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_supplier_information") |
|||
public class PmgSupplierInformation extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商名称 |
|||
*/ |
|||
private String supplierName; |
|||
|
|||
/** |
|||
* 供应商联系人 |
|||
*/ |
|||
private String supplierContacts; |
|||
|
|||
/** |
|||
* 职位 |
|||
*/ |
|||
private String position; |
|||
|
|||
/** |
|||
* 供应商联系电话 |
|||
*/ |
|||
private String supplierContactsPhone; |
|||
|
|||
/** |
|||
* 供应商类型 |
|||
*/ |
|||
private String supplierType; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 供应商产品模型对象 pmg_supplier_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_supplier_product_model") |
|||
public class PmgSupplierProductModel extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商产品指标描述 |
|||
*/ |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 供应商产品模型详细对象 pmg_supplier_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_supplier_product_model_details") |
|||
public class PmgSupplierProductModelDetails extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商产品型号表id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
|
|||
} |
@ -0,0 +1,119 @@ |
|||
package org.dromara.productManagement.domain; |
|||
|
|||
import org.dromara.common.tenant.core.TenantEntity; |
|||
import com.baomidou.mybatisplus.annotation.*; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import java.math.BigDecimal; |
|||
|
|||
import java.io.Serial; |
|||
|
|||
/** |
|||
* 供应商产品管理对象 pmg_supplier_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@TableName("pmg_supplier_products") |
|||
public class PmgSupplierProducts extends TenantEntity { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@TableId(value = "id") |
|||
private String id; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 供应商产品规格 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
@TableLogic |
|||
private String delFlag; |
|||
|
|||
/** |
|||
* 版本号 |
|||
*/ |
|||
@Version |
|||
private Long version; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,97 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.CmgCostItemDetail; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 造价编制详情业务对象 cmg_cost_item_detail |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = CmgCostItemDetail.class, reverseConvertGenerate = false) |
|||
public class CmgCostItemDetailBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@NotBlank(message = "主键不能为空", groups = { EditGroup.class }) |
|||
private String id; |
|||
|
|||
/** |
|||
* 造价表id |
|||
*/ |
|||
@NotBlank(message = "造价表id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String costTableId; |
|||
|
|||
/** |
|||
* 父类id |
|||
*/ |
|||
private String parentId; |
|||
|
|||
/** |
|||
* 费用类型 |
|||
*/ |
|||
private String costType; |
|||
|
|||
/** |
|||
* 建设内容 |
|||
*/ |
|||
private String constructContent; |
|||
|
|||
/** |
|||
* 费用名称 |
|||
*/ |
|||
private String costName; |
|||
|
|||
/** |
|||
* 费用描述 |
|||
*/ |
|||
private String costDescribe; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 数量 |
|||
*/ |
|||
private Long quantity; |
|||
|
|||
/** |
|||
* 单价 |
|||
*/ |
|||
private BigDecimal unitPrice; |
|||
|
|||
/** |
|||
* 总价 |
|||
*/ |
|||
private BigDecimal totalPrice; |
|||
|
|||
/** |
|||
* 是否明细 |
|||
*/ |
|||
private String isDetail; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 排序 |
|||
*/ |
|||
private String orderNo; |
|||
|
|||
|
|||
} |
@ -0,0 +1,51 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.CmgCostTable; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.math.BigDecimal; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
|
|||
/** |
|||
* 造价编制信息业务对象 cmg_cost_table |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = CmgCostTable.class, reverseConvertGenerate = false) |
|||
public class CmgCostTableBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@NotBlank(message = "主键不能为空", groups = { EditGroup.class }) |
|||
private String id; |
|||
|
|||
/** |
|||
* 项目名称 |
|||
*/ |
|||
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String projectName; |
|||
|
|||
/** |
|||
* 造价日期 |
|||
*/ |
|||
@NotNull(message = "造价日期不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private Date costDate; |
|||
|
|||
/** |
|||
* 总投资 |
|||
*/ |
|||
@NotNull(message = "总投资不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private BigDecimal totalInvestment; |
|||
|
|||
|
|||
} |
@ -0,0 +1,46 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProductModel; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 公司产品模型业务对象 pmg_company_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgCompanyProductModel.class, reverseConvertGenerate = false) |
|||
public class PmgCompanyProductModelBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 公司产品指标描述 |
|||
*/ |
|||
@NotBlank(message = "公司产品指标描述不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
@NotBlank(message = "产品型号模板id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 公司产品模型详情表业务对象 pmg_company_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgCompanyProductModelDetails.class, reverseConvertGenerate = false) |
|||
public class PmgCompanyProductModelDetailsBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 公司产品型号表id |
|||
*/ |
|||
@NotBlank(message = "公司产品型号表id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
@NotBlank(message = "指标名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
@NotBlank(message = "指标参数不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
@NotBlank(message = "是否关键指标不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,109 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProducts; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 公司产品管理业务对象 pmg_company_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgCompanyProducts.class, reverseConvertGenerate = false) |
|||
public class PmgCompanyProductsBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 公司产品规格 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@NotNull(message = "产品价格不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
private String categoryId; |
|||
|
|||
@NotBlank(message = "公司产品规格不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,46 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProductModel; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 个人产品模型业务对象 pmg_person_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgPersonProductModel.class, reverseConvertGenerate = false) |
|||
public class PmgPersonProductModelBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 个人产品指标描述 |
|||
*/ |
|||
@NotBlank(message = "个人产品指标描述不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
@NotBlank(message = "产品型号模板id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProductModelDetails; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 个人产品模型详情业务对象 pmg_person_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgPersonProductModelDetails.class, reverseConvertGenerate = false) |
|||
public class PmgPersonProductModelDetailsBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 个人产品型号表id |
|||
*/ |
|||
@NotBlank(message = "个人产品型号表id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
@NotBlank(message = "指标名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
@NotBlank(message = "指标参数不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
@NotBlank(message = "是否关键指标不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,108 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProducts; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 个人产品管理业务对象 pmg_person_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgPersonProducts.class, reverseConvertGenerate = false) |
|||
public class PmgPersonProductsBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@NotNull(message = "产品价格不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 个人产品规格 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
private String categoryId; |
|||
@NotBlank(message = "个人产品规格不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,59 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierInformation; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 供应商信息管理业务对象 pmg_supplier_information |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgSupplierInformation.class, reverseConvertGenerate = false) |
|||
public class PmgSupplierInformationBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
// @NotBlank(message = "主键不能为空", groups = { EditGroup.class })
|
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商名称 |
|||
*/ |
|||
@NotBlank(message = "供应商名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String supplierName; |
|||
|
|||
/** |
|||
* 供应商联系人 |
|||
*/ |
|||
@NotBlank(message = "供应商联系人不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String supplierContacts; |
|||
|
|||
/** |
|||
* 职位 |
|||
*/ |
|||
private String position; |
|||
|
|||
/** |
|||
* 供应商联系电话 |
|||
*/ |
|||
@NotBlank(message = "供应商联系电话不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
|
|||
private String supplierContactsPhone; |
|||
|
|||
/** |
|||
* 供应商类型 |
|||
*/ |
|||
private String supplierType; |
|||
|
|||
|
|||
} |
@ -0,0 +1,46 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProductModel; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 供应商产品模型业务对象 pmg_supplier_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgSupplierProductModel.class, reverseConvertGenerate = false) |
|||
public class PmgSupplierProductModelBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商产品指标描述 |
|||
*/ |
|||
@NotBlank(message = "供应商产品指标描述不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
@NotBlank(message = "产品型号模板id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,58 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
|
|||
/** |
|||
* 供应商产品模型详细业务对象 pmg_supplier_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgSupplierProductModelDetails.class, reverseConvertGenerate = false) |
|||
public class PmgSupplierProductModelDetailsBo extends BaseEntity { |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商产品型号表id |
|||
*/ |
|||
@NotBlank(message = "供应商产品型号表id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
@NotBlank(message = "指标名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
@NotBlank(message = "指标参数不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
@NotBlank(message = "是否关键指标不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,101 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProducts; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
import org.dromara.common.core.validate.AddGroup; |
|||
import org.dromara.common.core.validate.EditGroup; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import jakarta.validation.constraints.*; |
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 供应商产品管理业务对象 pmg_supplier_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@AutoMapper(target = PmgSupplierProducts.class, reverseConvertGenerate = false) |
|||
public class PmgSupplierProductsBo extends BaseEntity { |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
@NotBlank(message = "供应商id不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 供应商产品规格 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@NotNull(message = "产品价格不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
@NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
private String categoryId; |
|||
@NotBlank(message = "供应商产品规格不能为空", groups = { AddGroup.class, EditGroup.class }) |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,52 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
|
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import lombok.experimental.Accessors; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 视图对象类 |
|||
* |
|||
* @author ZHB |
|||
* @date 2024-05-14 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@Accessors(chain = true) |
|||
public class ProductModelViewBo<T> extends BaseEntity { |
|||
private String id; |
|||
/** |
|||
* 厂商产品型号描述 |
|||
*/ |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
private String productModelTemplateId; |
|||
|
|||
private List<T> modelDeatils; |
|||
|
|||
|
|||
/********非库表存储属性*****/ |
|||
|
|||
|
|||
|
|||
/********字典类*****/ |
|||
|
|||
/********实体类、用户单选、组织机构单选*****/ |
|||
|
|||
/********范围查询*****/ |
|||
|
|||
/********自定义扩展*****/ |
|||
|
|||
/********子对象*****/ |
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,89 @@ |
|||
package org.dromara.productManagement.domain.bo; |
|||
|
|||
|
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import lombok.experimental.Accessors; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 视图对象类 |
|||
* |
|||
* @author ZHB |
|||
* @date 2024-05-17 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@Accessors(chain = true) |
|||
public class ProductsBo extends BaseEntity { |
|||
private String id; |
|||
/** |
|||
* 个人产品型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
private String productName; |
|||
|
|||
private String image; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
/** |
|||
* 产品描述 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品类型 (-1:全部, 0:供应商产品库, 1:公司产品库,2:个人产品库) |
|||
*/ |
|||
private String productType; |
|||
/********非库表存储属性*****/ |
|||
|
|||
|
|||
|
|||
/********字典类*****/ |
|||
|
|||
/********实体类、用户单选、组织机构单选*****/ |
|||
|
|||
/********范围查询*****/ |
|||
|
|||
/********自定义扩展*****/ |
|||
|
|||
/********子对象*****/ |
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,117 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import java.math.BigDecimal; |
|||
import org.dromara.productManagement.domain.CmgCostItemDetail; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 造价编制详情视图对象 cmg_cost_item_detail |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = CmgCostItemDetail.class) |
|||
public class CmgCostItemDetailVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 造价表id |
|||
*/ |
|||
@ExcelProperty(value = "造价表id") |
|||
private String costTableId; |
|||
|
|||
/** |
|||
* 父类id |
|||
*/ |
|||
@ExcelProperty(value = "父类id") |
|||
private String parentId; |
|||
|
|||
/** |
|||
* 费用类型 |
|||
*/ |
|||
@ExcelProperty(value = "费用类型") |
|||
private String costType; |
|||
|
|||
/** |
|||
* 建设内容 |
|||
*/ |
|||
@ExcelProperty(value = "建设内容") |
|||
private String constructContent; |
|||
|
|||
/** |
|||
* 费用名称 |
|||
*/ |
|||
@ExcelProperty(value = "费用名称") |
|||
private String costName; |
|||
|
|||
/** |
|||
* 费用描述 |
|||
*/ |
|||
@ExcelProperty(value = "费用描述") |
|||
private String costDescribe; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
@ExcelProperty(value = "单位") |
|||
private String unit; |
|||
|
|||
/** |
|||
* 数量 |
|||
*/ |
|||
@ExcelProperty(value = "数量") |
|||
private Long quantity; |
|||
|
|||
/** |
|||
* 单价 |
|||
*/ |
|||
@ExcelProperty(value = "单价") |
|||
private BigDecimal unitPrice; |
|||
|
|||
/** |
|||
* 总价 |
|||
*/ |
|||
@ExcelProperty(value = "总价") |
|||
private BigDecimal totalPrice; |
|||
|
|||
/** |
|||
* 是否明细 |
|||
*/ |
|||
@ExcelProperty(value = "是否明细") |
|||
private String isDetail; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ExcelProperty(value = "备注") |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 排序 |
|||
*/ |
|||
@ExcelProperty(value = "排序") |
|||
private String orderNo; |
|||
|
|||
private List<CmgCostItemDetailVo> children; |
|||
} |
@ -0,0 +1,59 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.Date; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import org.dromara.productManagement.domain.CmgCostTable; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 造价编制信息视图对象 cmg_cost_table |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = CmgCostTable.class) |
|||
public class CmgCostTableVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 项目名称 |
|||
*/ |
|||
@ExcelProperty(value = "项目名称") |
|||
private String projectName; |
|||
|
|||
/** |
|||
* 造价日期 |
|||
*/ |
|||
@ExcelProperty(value = "造价日期") |
|||
private Date costDate; |
|||
|
|||
/** |
|||
* 总投资 |
|||
*/ |
|||
@ExcelProperty(value = "总投资") |
|||
private BigDecimal totalInvestment; |
|||
|
|||
|
|||
} |
@ -0,0 +1,21 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.time.LocalDateTime; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
@Data |
|||
|
|||
public class CostDetailViewVo { |
|||
private String id; |
|||
private String projectName; |
|||
|
|||
private Date costDate; |
|||
|
|||
|
|||
private BigDecimal totalInvestment; |
|||
private List<CmgCostItemDetailVo> costItemDetailList; |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 公司产品模型详情表视图对象 pmg_company_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgCompanyProductModelDetails.class) |
|||
public class PmgCompanyProductModelDetailsVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 公司产品型号表id |
|||
*/ |
|||
@ExcelProperty(value = "公司产品型号表id") |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
@ExcelProperty(value = "指标名称") |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
@ExcelProperty(value = "指标参数") |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
@ExcelProperty(value = "是否关键指标") |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
@ExcelProperty(value = "是否临时数据") |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,56 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProductModel; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 公司产品模型视图对象 pmg_company_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgCompanyProductModel.class) |
|||
public class PmgCompanyProductModelVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 公司产品指标描述 |
|||
*/ |
|||
@ExcelProperty(value = "公司产品指标描述") |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
@ExcelProperty(value = "产品型号模板id") |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
@ExcelProperty(value = "是否临时数据") |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,124 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import java.math.BigDecimal; |
|||
import org.dromara.productManagement.domain.PmgCompanyProducts; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 公司产品管理视图对象 pmg_company_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgCompanyProducts.class) |
|||
public class PmgCompanyProductsVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
private String id; |
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
@ExcelProperty(value = "关联厂商产品id") |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
@ExcelProperty(value = "供应商id") |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 公司产品规格 |
|||
*/ |
|||
@ExcelProperty(value = "公司产品规格") |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@ExcelProperty(value = "产品名称") |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
@ExcelProperty(value = "产品标识", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(readConverterExp = "型=号") |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@ExcelProperty(value = "产品价格") |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
@ExcelProperty(value = "信息来源") |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ExcelProperty(value = "备注") |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
@ExcelProperty(value = "图片") |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
@ExcelProperty(value = "品牌") |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
@ExcelProperty(value = "单位") |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
@ExcelProperty(value = "除税价") |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
@ExcelProperty(value = "税率") |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
@ExcelProperty(value = "分类id") |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
@ExcelProperty(value = "型号id") |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProductModelDetails; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 个人产品模型详情视图对象 pmg_person_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgPersonProductModelDetails.class) |
|||
public class PmgPersonProductModelDetailsVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 个人产品型号表id |
|||
*/ |
|||
@ExcelProperty(value = "个人产品型号表id") |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
@ExcelProperty(value = "指标名称") |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
@ExcelProperty(value = "指标参数") |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
@ExcelProperty(value = "是否关键指标") |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
@ExcelProperty(value = "是否临时数据") |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,56 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProductModel; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 个人产品模型视图对象 pmg_person_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgPersonProductModel.class) |
|||
public class PmgPersonProductModelVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 个人产品指标描述 |
|||
*/ |
|||
@ExcelProperty(value = "个人产品指标描述") |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
@ExcelProperty(value = "产品型号模板id") |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
@ExcelProperty(value = "是否临时数据") |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,129 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import java.math.BigDecimal; |
|||
import org.dromara.productManagement.domain.PmgPersonProducts; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 个人产品管理视图对象 pmg_person_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgPersonProducts.class) |
|||
public class PmgPersonProductsVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
@ExcelProperty(value = "供应商id") |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@ExcelProperty(value = "产品名称") |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
@ExcelProperty(value = "产品标识", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(readConverterExp = "型=号") |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@ExcelProperty(value = "产品价格") |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
@ExcelProperty(value = "信息来源") |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 个人产品规格 |
|||
*/ |
|||
@ExcelProperty(value = "个人产品规格") |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
@ExcelProperty(value = "关联厂商产品id") |
|||
private String supplierProductsId; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ExcelProperty(value = "备注") |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
@ExcelProperty(value = "图片") |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
@ExcelProperty(value = "品牌") |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
@ExcelProperty(value = "单位") |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
@ExcelProperty(value = "除税价") |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
@ExcelProperty(value = "税率") |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
@ExcelProperty(value = "分类id") |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
@ExcelProperty(value = "型号id") |
|||
private String modelId; |
|||
|
|||
} |
@ -0,0 +1,69 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierInformation; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 供应商信息管理视图对象 pmg_supplier_information |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgSupplierInformation.class) |
|||
public class PmgSupplierInformationVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商名称 |
|||
*/ |
|||
@ExcelProperty(value = "供应商名称") |
|||
private String supplierName; |
|||
|
|||
/** |
|||
* 供应商联系人 |
|||
*/ |
|||
@ExcelProperty(value = "供应商联系人") |
|||
private String supplierContacts; |
|||
|
|||
/** |
|||
* 职位 |
|||
*/ |
|||
@ExcelProperty(value = "职位") |
|||
private String position; |
|||
|
|||
/** |
|||
* 供应商联系电话 |
|||
*/ |
|||
@ExcelProperty(value = "供应商联系电话") |
|||
private String supplierContactsPhone; |
|||
|
|||
/** |
|||
* 供应商类型 |
|||
*/ |
|||
@ExcelProperty(value = "供应商类型", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(dictType = "supplier_type") |
|||
private String supplierType; |
|||
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 供应商产品模型详细视图对象 pmg_supplier_product_model_details |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgSupplierProductModelDetails.class) |
|||
public class PmgSupplierProductModelDetailsVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商产品型号表id |
|||
*/ |
|||
@ExcelProperty(value = "供应商产品型号表id") |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 指标名称 |
|||
*/ |
|||
@ExcelProperty(value = "指标名称") |
|||
private String paramName; |
|||
|
|||
/** |
|||
* 指标参数 |
|||
*/ |
|||
@ExcelProperty(value = "指标参数") |
|||
private String parameterValue; |
|||
|
|||
/** |
|||
* 是否关键指标 |
|||
*/ |
|||
@ExcelProperty(value = "是否关键指标") |
|||
private String isKeyParameter; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
@ExcelProperty(value = "是否临时数据") |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,56 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProductModel; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 供应商产品模型视图对象 pmg_supplier_product_model |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgSupplierProductModel.class) |
|||
public class PmgSupplierProductModelVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
@ExcelProperty(value = "主键") |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商产品指标描述 |
|||
*/ |
|||
@ExcelProperty(value = "供应商产品指标描述") |
|||
private String description; |
|||
|
|||
/** |
|||
* 产品型号模板id |
|||
*/ |
|||
@ExcelProperty(value = "产品型号模板id") |
|||
private String productModelTemplateId; |
|||
|
|||
/** |
|||
* 是否临时数据 |
|||
*/ |
|||
@ExcelProperty(value = "是否临时数据") |
|||
private String isTemporary; |
|||
|
|||
|
|||
} |
@ -0,0 +1,119 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
import java.math.BigDecimal; |
|||
import org.dromara.productManagement.domain.PmgSupplierProducts; |
|||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
|||
import com.alibaba.excel.annotation.ExcelProperty; |
|||
import org.dromara.common.excel.annotation.ExcelDictFormat; |
|||
import org.dromara.common.excel.convert.ExcelDictConvert; |
|||
import io.github.linpeilie.annotations.AutoMapper; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serial; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
|
|||
|
|||
/** |
|||
* 供应商产品管理视图对象 pmg_supplier_products |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@Data |
|||
@ExcelIgnoreUnannotated |
|||
@AutoMapper(target = PmgSupplierProducts.class) |
|||
public class PmgSupplierProductsVo implements Serializable { |
|||
|
|||
@Serial |
|||
private static final long serialVersionUID = 1L; |
|||
private String id; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
@ExcelProperty(value = "供应商id") |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 供应商产品规格 |
|||
*/ |
|||
@ExcelProperty(value = "供应商产品规格") |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
@ExcelProperty(value = "产品名称") |
|||
private String productName; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
@ExcelProperty(value = "产品标识", converter = ExcelDictConvert.class) |
|||
@ExcelDictFormat(readConverterExp = "型=号") |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
@ExcelProperty(value = "产品价格") |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
@ExcelProperty(value = "信息来源") |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
@ExcelProperty(value = "备注") |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 图片 |
|||
*/ |
|||
@ExcelProperty(value = "图片") |
|||
private String image; |
|||
|
|||
/** |
|||
* 品牌 |
|||
*/ |
|||
@ExcelProperty(value = "品牌") |
|||
private String brand; |
|||
|
|||
/** |
|||
* 单位 |
|||
*/ |
|||
@ExcelProperty(value = "单位") |
|||
private String unit; |
|||
|
|||
/** |
|||
* 除税价 |
|||
*/ |
|||
@ExcelProperty(value = "除税价") |
|||
private BigDecimal exTaxPrice; |
|||
|
|||
/** |
|||
* 税率 |
|||
*/ |
|||
@ExcelProperty(value = "税率") |
|||
private Long taxrate; |
|||
|
|||
/** |
|||
* 分类id |
|||
*/ |
|||
@ExcelProperty(value = "分类id") |
|||
private String categoryId; |
|||
|
|||
/** |
|||
* 型号id |
|||
*/ |
|||
@ExcelProperty(value = "型号id") |
|||
private String modelId; |
|||
|
|||
|
|||
} |
@ -0,0 +1,93 @@ |
|||
package org.dromara.productManagement.domain.vo; |
|||
|
|||
|
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
import lombok.experimental.Accessors; |
|||
import org.dromara.common.mybatis.core.domain.BaseEntity; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* 视图对象类 |
|||
* |
|||
* @author ZHB |
|||
* @date 2024-05-17 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper = true) |
|||
@Accessors(chain = true) |
|||
public class ProductsVo extends BaseEntity { |
|||
private String id; |
|||
/** |
|||
* 个人产品型号id |
|||
*/ |
|||
private String modelId; |
|||
|
|||
/** |
|||
* 供应商id |
|||
*/ |
|||
private String supplierInformationId; |
|||
|
|||
/** |
|||
* 产品名称 |
|||
*/ |
|||
private String productName; |
|||
|
|||
private String image; |
|||
|
|||
/** |
|||
* 产品标识(型号) |
|||
*/ |
|||
private String productIdentity; |
|||
|
|||
/** |
|||
* 产品价格 |
|||
*/ |
|||
private BigDecimal productPrice; |
|||
|
|||
/** |
|||
* 信息来源 |
|||
*/ |
|||
private String sourceInformation; |
|||
|
|||
/** |
|||
* 备注 |
|||
*/ |
|||
private String remarks; |
|||
|
|||
/** |
|||
* 关联厂商产品id |
|||
*/ |
|||
private String supplierProductsId; |
|||
/** |
|||
* 产品描述 |
|||
*/ |
|||
private String productSpecifications; |
|||
|
|||
/** |
|||
* 产品类型 (-1:全部, 0:供应商产品库, 1:公司产品库,2:个人产品库) |
|||
*/ |
|||
private String productType; |
|||
/** |
|||
* 单位 |
|||
*/ |
|||
private String unit; |
|||
|
|||
/********非库表存储属性*****/ |
|||
|
|||
|
|||
/********字典类*****/ |
|||
|
|||
/********实体类、用户单选、组织机构单选*****/ |
|||
|
|||
/********范围查询*****/ |
|||
|
|||
/********自定义扩展*****/ |
|||
|
|||
/********子对象*****/ |
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,25 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.productManagement.domain.CmgCostItemDetail; |
|||
import org.dromara.productManagement.domain.bo.ProductsBo; |
|||
import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
import org.dromara.productManagement.domain.vo.ProductsVo; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 造价编制详情Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
public interface CmgCostItemDetailMapper extends BaseMapperPlus<CmgCostItemDetail, CmgCostItemDetailVo> { |
|||
List<CmgCostItemDetailVo> getCostItemDetailWithChildrenByCostTableId(String costTableId); |
|||
IPage<ProductsVo> getProductsPageByType(Page pageQuery, @Param("queryVO") ProductsBo bo); |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.CmgCostTable; |
|||
import org.dromara.productManagement.domain.vo.CmgCostTableVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 造价编制信息Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
public interface CmgCostTableMapper extends BaseMapperPlus<CmgCostTable, CmgCostTableVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 公司产品模型详情表Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface PmgCompanyProductModelDetailsMapper extends BaseMapperPlus<PmgCompanyProductModelDetails, PmgCompanyProductModelDetailsVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProductModel; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 公司产品模型Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface PmgCompanyProductModelMapper extends BaseMapperPlus<PmgCompanyProductModel, PmgCompanyProductModelVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgCompanyProducts; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 公司产品管理Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface PmgCompanyProductsMapper extends BaseMapperPlus<PmgCompanyProducts, PmgCompanyProductsVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProductModelDetails; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 个人产品模型详情Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface PmgPersonProductModelDetailsMapper extends BaseMapperPlus<PmgPersonProductModelDetails, PmgPersonProductModelDetailsVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProductModel; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 个人产品模型Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface PmgPersonProductModelMapper extends BaseMapperPlus<PmgPersonProductModel, PmgPersonProductModelVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgPersonProducts; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 个人产品管理Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface PmgPersonProductsMapper extends BaseMapperPlus<PmgPersonProducts, PmgPersonProductsVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierInformation; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 供应商信息管理Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface PmgSupplierInformationMapper extends BaseMapperPlus<PmgSupplierInformation, PmgSupplierInformationVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 供应商产品模型详细Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface PmgSupplierProductModelDetailsMapper extends BaseMapperPlus<PmgSupplierProductModelDetails, PmgSupplierProductModelDetailsVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProductModel; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 供应商产品模型Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface PmgSupplierProductModelMapper extends BaseMapperPlus<PmgSupplierProductModel, PmgSupplierProductModelVo> { |
|||
|
|||
} |
@ -0,0 +1,15 @@ |
|||
package org.dromara.productManagement.mapper; |
|||
|
|||
import org.dromara.productManagement.domain.PmgSupplierProducts; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; |
|||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
|||
|
|||
/** |
|||
* 供应商产品管理Mapper接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface PmgSupplierProductsMapper extends BaseMapperPlus<PmgSupplierProducts, PmgSupplierProductsVo> { |
|||
|
|||
} |
@ -0,0 +1,79 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.bo.ProductsBo; |
|||
import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; |
|||
import org.dromara.productManagement.domain.bo.CmgCostItemDetailBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.productManagement.domain.vo.CostDetailViewVo; |
|||
import org.dromara.productManagement.domain.vo.ProductsVo; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 造价编制详情Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
public interface ICmgCostItemDetailService { |
|||
void addCostItemDetail(List<CmgCostItemDetailVo> costItemDetaiVOlList); |
|||
|
|||
List<CmgCostItemDetailVo> getCostItemDetail(String costTableId); |
|||
|
|||
void modifyCostItemDetail(List<CmgCostItemDetailVo> costItemDetaiVOlList); |
|||
|
|||
void removeByCostTableId(Collection<String> costTableIds); |
|||
/** |
|||
* 查询造价编制详情 |
|||
* |
|||
* @param id 主键 |
|||
* @return 造价编制详情 |
|||
*/ |
|||
CmgCostItemDetailVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询造价编制详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 造价编制详情分页列表 |
|||
*/ |
|||
TableDataInfo<CmgCostItemDetailVo> queryPageList(CmgCostItemDetailBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的造价编制详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 造价编制详情列表 |
|||
*/ |
|||
List<CmgCostItemDetailVo> queryList(CmgCostItemDetailBo bo); |
|||
|
|||
/** |
|||
* 新增造价编制详情 |
|||
* |
|||
* @param bo 造价编制详情 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(CmgCostItemDetailBo bo); |
|||
|
|||
/** |
|||
* 修改造价编制详情 |
|||
* |
|||
* @param bo 造价编制详情 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(CmgCostItemDetailBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除造价编制详情信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
|
|||
TableDataInfo<ProductsVo> getProductsPageByType(ProductsBo bo, PageQuery pageQuery); |
|||
} |
@ -0,0 +1,79 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import org.dromara.productManagement.domain.vo.CmgCostTableVo; |
|||
import org.dromara.productManagement.domain.bo.CmgCostTableBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.productManagement.domain.vo.CostDetailViewVo; |
|||
|
|||
import java.io.IOException; |
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 造价编制信息Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
public interface ICmgCostTableService { |
|||
|
|||
/** |
|||
* 查询造价编制信息 |
|||
* |
|||
* @param id 主键 |
|||
* @return 造价编制信息 |
|||
*/ |
|||
CmgCostTableVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询造价编制信息列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 造价编制信息分页列表 |
|||
*/ |
|||
TableDataInfo<CmgCostTableVo> queryPageList(CmgCostTableBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的造价编制信息列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 造价编制信息列表 |
|||
*/ |
|||
List<CmgCostTableVo> queryList(CmgCostTableBo bo); |
|||
|
|||
/** |
|||
* 新增造价编制信息 |
|||
* |
|||
* @param bo 造价编制信息 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(CmgCostTableBo bo); |
|||
|
|||
/** |
|||
* 修改造价编制信息 |
|||
* |
|||
* @param bo 造价编制信息 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(CmgCostTableBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除造价编制信息信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
|
|||
CostDetailViewVo getCostTableDetail(String id); |
|||
|
|||
void addCostTable(CostDetailViewVo vo); |
|||
|
|||
void modifyCostTable(CostDetailViewVo vo); |
|||
|
|||
void exportData(String id, HttpServletResponse response) throws IOException;; |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 公司产品模型详情表Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface IPmgCompanyProductModelDetailsService { |
|||
|
|||
/** |
|||
* 查询公司产品模型详情表 |
|||
* |
|||
* @param id 主键 |
|||
* @return 公司产品模型详情表 |
|||
*/ |
|||
PmgCompanyProductModelDetailsVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询公司产品模型详情表列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 公司产品模型详情表分页列表 |
|||
*/ |
|||
TableDataInfo<PmgCompanyProductModelDetailsVo> queryPageList(PmgCompanyProductModelDetailsBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的公司产品模型详情表列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 公司产品模型详情表列表 |
|||
*/ |
|||
List<PmgCompanyProductModelDetailsVo> queryList(PmgCompanyProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 新增公司产品模型详情表 |
|||
* |
|||
* @param bo 公司产品模型详情表 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgCompanyProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 修改公司产品模型详情表 |
|||
* |
|||
* @param bo 公司产品模型详情表 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgCompanyProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除公司产品模型详情表信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,91 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 公司产品模型Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface IPmgCompanyProductModelService { |
|||
|
|||
/** |
|||
* 查询公司产品模型 |
|||
* |
|||
* @param id 主键 |
|||
* @return 公司产品模型 |
|||
*/ |
|||
PmgCompanyProductModelVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询公司产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 公司产品模型分页列表 |
|||
*/ |
|||
TableDataInfo<PmgCompanyProductModelVo> queryPageList(PmgCompanyProductModelBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的公司产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 公司产品模型列表 |
|||
*/ |
|||
List<PmgCompanyProductModelVo> queryList(PmgCompanyProductModelBo bo); |
|||
|
|||
/** |
|||
* 新增公司产品模型 |
|||
* |
|||
* @param bo 公司产品模型 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgCompanyProductModelBo bo); |
|||
|
|||
/** |
|||
* 修改公司产品模型 |
|||
* |
|||
* @param bo 公司产品模型 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgCompanyProductModelBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除公司产品模型信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
/** |
|||
* 根据id查询公司产品模型详情 |
|||
* @param id 个人产品模型表id |
|||
* @return |
|||
*/ |
|||
List<PmgCompanyProductModelDetailsVo> getModelDetails(String id); |
|||
|
|||
/** |
|||
* 新增公司产品模型及其详情 |
|||
* @param bo |
|||
* @return |
|||
*/ |
|||
String addModel(ProductModelViewBo<PmgCompanyProductModelDetailsBo> bo); |
|||
|
|||
/** |
|||
* 修改公司产品模型及其详情 |
|||
* @param bo |
|||
* @return |
|||
*/ |
|||
String editModel(ProductModelViewBo<PmgCompanyProductModelDetailsBo> bo); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductsBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 公司产品管理Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface IPmgCompanyProductsService { |
|||
|
|||
/** |
|||
* 查询公司产品管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 公司产品管理 |
|||
*/ |
|||
PmgCompanyProductsVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询公司产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 公司产品管理分页列表 |
|||
*/ |
|||
TableDataInfo<PmgCompanyProductsVo> queryPageList(PmgCompanyProductsBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的公司产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 公司产品管理列表 |
|||
*/ |
|||
List<PmgCompanyProductsVo> queryList(PmgCompanyProductsBo bo); |
|||
|
|||
/** |
|||
* 新增公司产品管理 |
|||
* |
|||
* @param bo 公司产品管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgCompanyProductsBo bo); |
|||
|
|||
/** |
|||
* 修改公司产品管理 |
|||
* |
|||
* @param bo 公司产品管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgCompanyProductsBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除公司产品管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 个人产品模型详情Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface IPmgPersonProductModelDetailsService { |
|||
|
|||
/** |
|||
* 查询个人产品模型详情 |
|||
* |
|||
* @param id 主键 |
|||
* @return 个人产品模型详情 |
|||
*/ |
|||
PmgPersonProductModelDetailsVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询个人产品模型详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 个人产品模型详情分页列表 |
|||
*/ |
|||
TableDataInfo<PmgPersonProductModelDetailsVo> queryPageList(PmgPersonProductModelDetailsBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的个人产品模型详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 个人产品模型详情列表 |
|||
*/ |
|||
List<PmgPersonProductModelDetailsVo> queryList(PmgPersonProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 新增个人产品模型详情 |
|||
* |
|||
* @param bo 个人产品模型详情 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgPersonProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 修改个人产品模型详情 |
|||
* |
|||
* @param bo 个人产品模型详情 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgPersonProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除个人产品模型详情信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,92 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 个人产品模型Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface IPmgPersonProductModelService { |
|||
|
|||
/** |
|||
* 查询个人产品模型 |
|||
* |
|||
* @param id 主键 |
|||
* @return 个人产品模型 |
|||
*/ |
|||
PmgPersonProductModelVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询个人产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 个人产品模型分页列表 |
|||
*/ |
|||
TableDataInfo<PmgPersonProductModelVo> queryPageList(PmgPersonProductModelBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的个人产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 个人产品模型列表 |
|||
*/ |
|||
List<PmgPersonProductModelVo> queryList(PmgPersonProductModelBo bo); |
|||
|
|||
/** |
|||
* 新增个人产品模型 |
|||
* |
|||
* @param bo 个人产品模型 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgPersonProductModelBo bo); |
|||
|
|||
/** |
|||
* 修改个人产品模型 |
|||
* |
|||
* @param bo 个人产品模型 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgPersonProductModelBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除个人产品模型信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
|
|||
/** |
|||
* 根据id查询个人产品模型详情 |
|||
* @param id 个人产品模型表id |
|||
* @return |
|||
*/ |
|||
List<PmgPersonProductModelDetailsVo> getModelDetails(String id); |
|||
|
|||
/** |
|||
* 新增个人产品模型及其详情 |
|||
* @param bo |
|||
* @return |
|||
*/ |
|||
String addModel(ProductModelViewBo<PmgPersonProductModelDetailsBo> bo); |
|||
|
|||
/** |
|||
* 修改个人产品模型及其详情 |
|||
* @param bo |
|||
* @return |
|||
*/ |
|||
String editModel(ProductModelViewBo<PmgPersonProductModelDetailsBo> bo); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 个人产品管理Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface IPmgPersonProductsService { |
|||
|
|||
/** |
|||
* 查询个人产品管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 个人产品管理 |
|||
*/ |
|||
PmgPersonProductsVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询个人产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 个人产品管理分页列表 |
|||
*/ |
|||
TableDataInfo<PmgPersonProductsVo> queryPageList(PmgPersonProductsBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的个人产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 个人产品管理列表 |
|||
*/ |
|||
List<PmgPersonProductsVo> queryList(PmgPersonProductsBo bo); |
|||
|
|||
/** |
|||
* 新增个人产品管理 |
|||
* |
|||
* @param bo 个人产品管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgPersonProductsBo bo); |
|||
|
|||
/** |
|||
* 修改个人产品管理 |
|||
* |
|||
* @param bo 个人产品管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgPersonProductsBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除个人产品管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierInformationBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 供应商信息管理Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface IPmgSupplierInformationService { |
|||
|
|||
/** |
|||
* 查询供应商信息管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商信息管理 |
|||
*/ |
|||
PmgSupplierInformationVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询供应商信息管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商信息管理分页列表 |
|||
*/ |
|||
TableDataInfo<PmgSupplierInformationVo> queryPageList(PmgSupplierInformationBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的供应商信息管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商信息管理列表 |
|||
*/ |
|||
List<PmgSupplierInformationVo> queryList(PmgSupplierInformationBo bo); |
|||
|
|||
/** |
|||
* 新增供应商信息管理 |
|||
* |
|||
* @param bo 供应商信息管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgSupplierInformationBo bo); |
|||
|
|||
/** |
|||
* 修改供应商信息管理 |
|||
* |
|||
* @param bo 供应商信息管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgSupplierInformationBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除供应商信息管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 供应商产品模型详细Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface IPmgSupplierProductModelDetailsService { |
|||
|
|||
/** |
|||
* 查询供应商产品模型详细 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商产品模型详细 |
|||
*/ |
|||
PmgSupplierProductModelDetailsVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询供应商产品模型详细列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商产品模型详细分页列表 |
|||
*/ |
|||
TableDataInfo<PmgSupplierProductModelDetailsVo> queryPageList(PmgSupplierProductModelDetailsBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的供应商产品模型详细列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商产品模型详细列表 |
|||
*/ |
|||
List<PmgSupplierProductModelDetailsVo> queryList(PmgSupplierProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 新增供应商产品模型详细 |
|||
* |
|||
* @param bo 供应商产品模型详细 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgSupplierProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 修改供应商产品模型详细 |
|||
* |
|||
* @param bo 供应商产品模型详细 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgSupplierProductModelDetailsBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除供应商产品模型详细信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,91 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 供应商产品模型Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
public interface IPmgSupplierProductModelService { |
|||
|
|||
/** |
|||
* 查询供应商产品模型 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商产品模型 |
|||
*/ |
|||
PmgSupplierProductModelVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询供应商产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商产品模型分页列表 |
|||
*/ |
|||
TableDataInfo<PmgSupplierProductModelVo> queryPageList(PmgSupplierProductModelBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的供应商产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商产品模型列表 |
|||
*/ |
|||
List<PmgSupplierProductModelVo> queryList(PmgSupplierProductModelBo bo); |
|||
|
|||
/** |
|||
* 新增供应商产品模型 |
|||
* |
|||
* @param bo 供应商产品模型 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgSupplierProductModelBo bo); |
|||
|
|||
/** |
|||
* 修改供应商产品模型 |
|||
* |
|||
* @param bo 供应商产品模型 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgSupplierProductModelBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除供应商产品模型信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
/** |
|||
* 根据id查询供应商产品模型详情 |
|||
* @param id 供应商产品模型表id |
|||
* @return |
|||
*/ |
|||
List<PmgSupplierProductModelDetailsVo> getModelDetails(String id); |
|||
|
|||
/** |
|||
* 新增供应商产品模型及其详情 |
|||
* @param bo |
|||
* @return |
|||
*/ |
|||
String addModel(ProductModelViewBo<PmgSupplierProductModelDetailsBo> bo); |
|||
|
|||
/** |
|||
* 修改供应商产品模型及其详情 |
|||
* @param bo |
|||
* @return |
|||
*/ |
|||
String editModel(ProductModelViewBo<PmgSupplierProductModelDetailsBo> bo); |
|||
} |
@ -0,0 +1,68 @@ |
|||
package org.dromara.productManagement.service; |
|||
|
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductsBo; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
|
|||
import java.util.Collection; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 供应商产品管理Service接口 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
public interface IPmgSupplierProductsService { |
|||
|
|||
/** |
|||
* 查询供应商产品管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商产品管理 |
|||
*/ |
|||
PmgSupplierProductsVo queryById(String id); |
|||
|
|||
/** |
|||
* 分页查询供应商产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商产品管理分页列表 |
|||
*/ |
|||
TableDataInfo<PmgSupplierProductsVo> queryPageList(PmgSupplierProductsBo bo, PageQuery pageQuery); |
|||
|
|||
/** |
|||
* 查询符合条件的供应商产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商产品管理列表 |
|||
*/ |
|||
List<PmgSupplierProductsVo> queryList(PmgSupplierProductsBo bo); |
|||
|
|||
/** |
|||
* 新增供应商产品管理 |
|||
* |
|||
* @param bo 供应商产品管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
Boolean insertByBo(PmgSupplierProductsBo bo); |
|||
|
|||
/** |
|||
* 修改供应商产品管理 |
|||
* |
|||
* @param bo 供应商产品管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
Boolean updateByBo(PmgSupplierProductsBo bo); |
|||
|
|||
/** |
|||
* 校验并批量删除供应商产品管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); |
|||
} |
@ -0,0 +1,211 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.bo.ProductsBo; |
|||
import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; |
|||
import org.dromara.productManagement.domain.vo.ProductsVo; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.CmgCostItemDetailBo; |
|||
import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; |
|||
import org.dromara.productManagement.domain.CmgCostItemDetail; |
|||
import org.dromara.productManagement.mapper.CmgCostItemDetailMapper; |
|||
import org.dromara.productManagement.service.ICmgCostItemDetailService; |
|||
|
|||
import java.util.*; |
|||
|
|||
/** |
|||
* 造价编制详情Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class CmgCostItemDetailServiceImpl implements ICmgCostItemDetailService { |
|||
|
|||
private final CmgCostItemDetailMapper baseMapper; |
|||
@Override |
|||
public void addCostItemDetail(List<CmgCostItemDetailVo> costItemDetaiVOlList) { |
|||
if (CollUtil.isEmpty(costItemDetaiVOlList)) { |
|||
return; |
|||
} |
|||
List<CmgCostItemDetail> costItemDetailList = new ArrayList<>(); |
|||
for (CmgCostItemDetailVo costItemDetailVO : costItemDetaiVOlList) { |
|||
//获取子类内容加入到List
|
|||
getChildAddToList(costItemDetailVO, costItemDetailList); |
|||
CmgCostItemDetail costItemDetail = MapstructUtils.convert(costItemDetailVO, CmgCostItemDetail.class); |
|||
costItemDetailList.add(costItemDetail); |
|||
|
|||
} |
|||
//批量保存
|
|||
baseMapper.insertBatch(costItemDetailList); |
|||
} |
|||
|
|||
@Override |
|||
public List<CmgCostItemDetailVo> getCostItemDetail(String costTableId) { |
|||
List<CmgCostItemDetailVo> detail = baseMapper.getCostItemDetailWithChildrenByCostTableId(costTableId); |
|||
return detail; |
|||
} |
|||
|
|||
@Override |
|||
public void modifyCostItemDetail(List<CmgCostItemDetailVo> costItemDetaiVOlList) { |
|||
String costTableId = costItemDetaiVOlList.get(0).getCostTableId(); |
|||
removeByCostTableId(Arrays.asList(costTableId)); |
|||
if (CollUtil.isEmpty(costItemDetaiVOlList)) { |
|||
return; |
|||
} |
|||
List<CmgCostItemDetail> costItemDetailList = new ArrayList<>(); |
|||
for (CmgCostItemDetailVo costItemDetailVO : costItemDetaiVOlList) { |
|||
//获取子类内容加入到List
|
|||
getChildAddToList(costItemDetailVO, costItemDetailList); |
|||
|
|||
|
|||
CmgCostItemDetail costItemDetail = MapstructUtils.convert(costItemDetailVO, CmgCostItemDetail.class); |
|||
costItemDetail.setUpdateBy(null); |
|||
costItemDetail.setUpdateTime(null); |
|||
costItemDetailList.add(costItemDetail); |
|||
|
|||
} |
|||
//批量保存
|
|||
baseMapper.insertBatch(costItemDetailList); |
|||
} |
|||
|
|||
@Override |
|||
public void removeByCostTableId(Collection<String> costTableIds) { |
|||
for (String costTableId : costTableIds) { |
|||
LambdaUpdateWrapper<CmgCostItemDetail> deleteWrapper = new LambdaUpdateWrapper<>(); |
|||
deleteWrapper.eq(CmgCostItemDetail::getCostTableId, costTableId); |
|||
baseMapper.delete(deleteWrapper);//删除原有数据
|
|||
} |
|||
|
|||
} |
|||
/** |
|||
* 查询造价编制详情 |
|||
* |
|||
* @param id 主键 |
|||
* @return 造价编制详情 |
|||
*/ |
|||
@Override |
|||
public CmgCostItemDetailVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询造价编制详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 造价编制详情分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<CmgCostItemDetailVo> queryPageList(CmgCostItemDetailBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<CmgCostItemDetail> lqw = buildQueryWrapper(bo); |
|||
Page<CmgCostItemDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的造价编制详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 造价编制详情列表 |
|||
*/ |
|||
@Override |
|||
public List<CmgCostItemDetailVo> queryList(CmgCostItemDetailBo bo) { |
|||
LambdaQueryWrapper<CmgCostItemDetail> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<CmgCostItemDetail> buildQueryWrapper(CmgCostItemDetailBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<CmgCostItemDetail> lqw = Wrappers.lambdaQuery(); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增造价编制详情 |
|||
* |
|||
* @param bo 造价编制详情 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(CmgCostItemDetailBo bo) { |
|||
CmgCostItemDetail add = MapstructUtils.convert(bo, CmgCostItemDetail.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改造价编制详情 |
|||
* |
|||
* @param bo 造价编制详情 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(CmgCostItemDetailBo bo) { |
|||
CmgCostItemDetail update = MapstructUtils.convert(bo, CmgCostItemDetail.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(CmgCostItemDetail entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除造价编制详情信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
|
|||
@Override |
|||
public TableDataInfo<ProductsVo> getProductsPageByType(ProductsBo bo, PageQuery pageQuery) { |
|||
IPage<ProductsVo> productsPageByType = baseMapper.getProductsPageByType(pageQuery.build(), bo); |
|||
return TableDataInfo.build(productsPageByType); |
|||
} |
|||
|
|||
/** |
|||
* 获取子类内容加入到List |
|||
* @param costItemDetailVO costItemDetailVO |
|||
* @param costItemDetailList costItemDetail保存容器 |
|||
*/ |
|||
protected void getChildAddToList(CmgCostItemDetailVo costItemDetailVO, List<CmgCostItemDetail> costItemDetailList) { |
|||
if (CollUtil.isEmpty(costItemDetailVO.getChildren())) { |
|||
return; |
|||
} |
|||
for (CmgCostItemDetailVo child : costItemDetailVO.getChildren()) { |
|||
getChildAddToList(child, costItemDetailList); |
|||
//子类内容
|
|||
CmgCostItemDetail childCostItemDetail = MapstructUtils.convert(child, CmgCostItemDetail.class); |
|||
childCostItemDetail.setUpdateBy(null); |
|||
childCostItemDetail.setUpdateTime(null); |
|||
costItemDetailList.add(childCostItemDetail); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,310 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import cn.hutool.core.convert.NumberChineseFormatter; |
|||
import com.alibaba.excel.EasyExcel; |
|||
import com.alibaba.excel.ExcelWriter; |
|||
import com.alibaba.excel.write.metadata.WriteSheet; |
|||
import jakarta.servlet.http.HttpServletResponse; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.excel.utils.EasyExcelUtils; |
|||
import org.dromara.common.excel.utils.ExcelColumnMergeHandler; |
|||
import org.dromara.common.excel.utils.ExcelRowMergeHandler; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.vo.CmgCostItemDetailVo; |
|||
import org.dromara.productManagement.domain.vo.CostDetailViewVo; |
|||
import org.dromara.productManagement.mapper.CmgCostItemDetailMapper; |
|||
import org.dromara.productManagement.service.ICmgCostItemDetailService; |
|||
import org.springframework.beans.BeanUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.CmgCostTableBo; |
|||
import org.dromara.productManagement.domain.vo.CmgCostTableVo; |
|||
import org.dromara.productManagement.domain.CmgCostTable; |
|||
import org.dromara.productManagement.mapper.CmgCostTableMapper; |
|||
import org.dromara.productManagement.service.ICmgCostTableService; |
|||
|
|||
import java.io.IOException; |
|||
import java.net.URLEncoder; |
|||
import java.time.LocalDateTime; |
|||
import java.util.*; |
|||
|
|||
/** |
|||
* 造价编制信息Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-29 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class CmgCostTableServiceImpl implements ICmgCostTableService { |
|||
|
|||
private final CmgCostTableMapper baseMapper; |
|||
@Autowired |
|||
private ICmgCostItemDetailService costItemDetailService; |
|||
@Override |
|||
public void addCostTable(CostDetailViewVo vo) { |
|||
vo.setCostDate(new Date()); |
|||
costItemDetailService.addCostItemDetail(vo.getCostItemDetailList());//保存造价明细
|
|||
CmgCostTableBo cmgCostTablebo = new CmgCostTableBo(); |
|||
BeanUtils.copyProperties(vo,cmgCostTablebo); |
|||
insertByBo(cmgCostTablebo);//修改造价表
|
|||
} |
|||
@Override |
|||
public void modifyCostTable(CostDetailViewVo vo) { |
|||
costItemDetailService.modifyCostItemDetail(vo.getCostItemDetailList());//保存造价明细
|
|||
CmgCostTableBo cmgCostTablebo = new CmgCostTableBo(); |
|||
BeanUtils.copyProperties(vo,cmgCostTablebo); |
|||
updateByBo(cmgCostTablebo);//修改造价表
|
|||
} |
|||
@Override |
|||
public CostDetailViewVo getCostTableDetail(String id) { |
|||
CostDetailViewVo costDetailViewVO = new CostDetailViewVo(); |
|||
CmgCostTableVo cmgCostTableVo = queryById(id); |
|||
|
|||
costDetailViewVO.setId(id); |
|||
costDetailViewVO.setProjectName(cmgCostTableVo.getProjectName()); |
|||
costDetailViewVO.setTotalInvestment(cmgCostTableVo.getTotalInvestment()); |
|||
costDetailViewVO.setCostDate(cmgCostTableVo.getCostDate()); |
|||
List<CmgCostItemDetailVo> costItemDetail = costItemDetailService.getCostItemDetail(cmgCostTableVo.getId()); |
|||
costDetailViewVO.setCostItemDetailList(costItemDetail); |
|||
return costDetailViewVO; |
|||
} |
|||
@Override |
|||
public void exportData(String id, HttpServletResponse response) throws IOException { |
|||
//导出数据
|
|||
//web设置
|
|||
response.setContentType("application/vnd.ms-excel"); |
|||
response.setCharacterEncoding("utf-8"); |
|||
String exportFileName = URLEncoder.encode("ces", "UTF-8").replaceAll("\\+", "%20"); |
|||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + exportFileName + ".xlsx"); |
|||
response.setHeader("filename", exportFileName + ".xlsx"); |
|||
response.setHeader("Access-Control-Expose-Headers", "filename"); |
|||
//1.查询数据
|
|||
CmgCostTableVo costTable = queryById(id); |
|||
List<CmgCostItemDetailVo> costItemDetail = costItemDetailService.getCostItemDetail(costTable.getId()); |
|||
List<String> heads = new ArrayList<>(); |
|||
heads.add("序号"); |
|||
heads.add("费用类型"); |
|||
heads.add("建设内容"); |
|||
heads.add("小计(元)"); |
|||
heads.add("备注"); |
|||
List<String> childHeads = new ArrayList<>(); |
|||
childHeads.add("序号"); |
|||
childHeads.add("设备名称"); |
|||
childHeads.add("主要技术参数"); |
|||
childHeads.add("数量"); |
|||
childHeads.add("单位"); |
|||
childHeads.add("单价"); |
|||
childHeads.add("小计"); |
|||
List<Object> otherCostData = new ArrayList<>(); |
|||
List<List<Object>> otherCostList= new ArrayList<>(); |
|||
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build(); |
|||
List<List<Object>> dataList = new ArrayList<>(); |
|||
ExcelColumnMergeHandler columnMergeHandler = new ExcelColumnMergeHandler(1, new int[]{0, 1}); |
|||
ExcelRowMergeHandler rowMergeHandler = new ExcelRowMergeHandler(); |
|||
Integer xuhao= 1; |
|||
Integer num=0; |
|||
for (int i = 0; i < costItemDetail.size(); i++) { |
|||
CmgCostItemDetailVo costItemDetailVO = costItemDetail.get(i); |
|||
if(StringUtils.isBlank(costItemDetailVO.getCostType())){ |
|||
List<Object> objects = getChildDataList(costItemDetailVO, i); |
|||
otherCostList.add(objects); |
|||
continue; |
|||
} |
|||
List<Object> objectList = getDataList(costItemDetail, i, xuhao); |
|||
dataList.add(objectList); |
|||
|
|||
num = setChildDataSheet(costItemDetailVO,excelWriter,num,heads,childHeads,columnMergeHandler,rowMergeHandler); |
|||
|
|||
} |
|||
num=num+1; |
|||
WriteSheet sheet2 = EasyExcel.writerSheet(num,"未分类费用").head(EasyExcelUtils.head(childHeads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); |
|||
excelWriter.write(otherCostList, sheet2); |
|||
WriteSheet sheet1 = EasyExcel.writerSheet(0, "项目投资概算总表").head(EasyExcelUtils.head(heads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); |
|||
excelWriter.write(dataList, sheet1); |
|||
excelWriter.finish(); |
|||
//3.返回结果
|
|||
} |
|||
/** |
|||
* 查询造价编制信息 |
|||
* |
|||
* @param id 主键 |
|||
* @return 造价编制信息 |
|||
*/ |
|||
@Override |
|||
public CmgCostTableVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询造价编制信息列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 造价编制信息分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<CmgCostTableVo> queryPageList(CmgCostTableBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<CmgCostTable> lqw = buildQueryWrapper(bo); |
|||
Page<CmgCostTableVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的造价编制信息列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 造价编制信息列表 |
|||
*/ |
|||
@Override |
|||
public List<CmgCostTableVo> queryList(CmgCostTableBo bo) { |
|||
LambdaQueryWrapper<CmgCostTable> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<CmgCostTable> buildQueryWrapper(CmgCostTableBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<CmgCostTable> lqw = Wrappers.lambdaQuery(); |
|||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), CmgCostTable::getProjectName, bo.getProjectName()); |
|||
lqw.eq(bo.getCostDate() != null, CmgCostTable::getCostDate, bo.getCostDate()); |
|||
lqw.eq(bo.getTotalInvestment() != null, CmgCostTable::getTotalInvestment, bo.getTotalInvestment()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增造价编制信息 |
|||
* |
|||
* @param bo 造价编制信息 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(CmgCostTableBo bo) { |
|||
CmgCostTable add = MapstructUtils.convert(bo, CmgCostTable.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改造价编制信息 |
|||
* |
|||
* @param bo 造价编制信息 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(CmgCostTableBo bo) { |
|||
CmgCostTable update = MapstructUtils.convert(bo, CmgCostTable.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(CmgCostTable entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除造价编制信息信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
costItemDetailService.removeByCostTableId(ids); |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
|
|||
private List<Object> getChildDataList(CmgCostItemDetailVo children, Integer j) { |
|||
List<Object> childObject = new ArrayList<>(); |
|||
childObject.add(NumberChineseFormatter.format(j + 1, false, false)); |
|||
childObject.add(children.getCostName()); |
|||
childObject.add(children.getCostDescribe()); |
|||
childObject.add(children.getQuantity()); |
|||
childObject.add(children.getUnit()); |
|||
childObject.add(children.getUnitPrice()); |
|||
childObject.add(children.getTotalPrice()); |
|||
return childObject; |
|||
} |
|||
private List<Object> getDataList(List<CmgCostItemDetailVo> costItemDetail, Integer i, Integer xuhao) { |
|||
CmgCostItemDetailVo costItemDetailVO = costItemDetail.get(i); |
|||
List<Object> objectList = new ArrayList<>(); |
|||
if(i>=1){ |
|||
//比较后一个和前一个是否一样
|
|||
String newCostType = costItemDetailVO.getCostType(); |
|||
String lastCostType = costItemDetail.get(i-1).getCostType(); |
|||
if(!newCostType.equals(lastCostType)) { |
|||
xuhao=xuhao+1; |
|||
} |
|||
} |
|||
objectList.add(NumberChineseFormatter.format(xuhao,false,false)); |
|||
objectList.add(costItemDetailVO.getCostType()); |
|||
objectList.add(costItemDetailVO.getConstructContent()); |
|||
objectList.add(costItemDetailVO.getTotalPrice()); |
|||
objectList.add(costItemDetailVO.getRemarks()); |
|||
return objectList; |
|||
} |
|||
/** |
|||
* 递归获取子节点数据 |
|||
* @param costItemDetailVO |
|||
* @param num |
|||
* @return |
|||
*/ |
|||
private Integer setChildDataSheet(CmgCostItemDetailVo costItemDetailVO, |
|||
ExcelWriter excelWriter, |
|||
Integer num, |
|||
List<String> heads, |
|||
List<String> childHeads, |
|||
ExcelColumnMergeHandler columnMergeHandler, |
|||
ExcelRowMergeHandler rowMergeHandler) { |
|||
List<CmgCostItemDetailVo> childrenList = costItemDetailVO.getChildren(); |
|||
List<List<Object>> childDataList = new ArrayList<>(); |
|||
Boolean isDetail = true; |
|||
for (Integer j = 0; j < childrenList.size(); j++) { |
|||
CmgCostItemDetailVo child = childrenList.get(j); |
|||
if(child.getIsDetail().equals("1")){ |
|||
isDetail=true; |
|||
List<Object> childObject = getChildDataList(child, j); |
|||
childDataList.add(childObject); |
|||
List<CmgCostItemDetailVo> childChildren = child.getChildren(); |
|||
if(childChildren.size()>0){ |
|||
num = setChildDataSheet(child,excelWriter,num,heads,childHeads,columnMergeHandler,rowMergeHandler); |
|||
} |
|||
}else{ |
|||
isDetail=false; |
|||
Integer xuhao=1; |
|||
List<Object> childObject = getDataList(childrenList, j, xuhao); |
|||
childDataList.add(childObject); |
|||
List<CmgCostItemDetailVo> childChildren = child.getChildren(); |
|||
if(childChildren.size()>0){ |
|||
num = setChildDataSheet(child,excelWriter,num,heads,childHeads,columnMergeHandler,rowMergeHandler); |
|||
} |
|||
} |
|||
|
|||
} |
|||
num=num+1; |
|||
if(!isDetail){ |
|||
WriteSheet sheet2 = EasyExcel.writerSheet(num,costItemDetailVO.getConstructContent()).head(EasyExcelUtils.head(heads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); |
|||
excelWriter.write(childDataList, sheet2); |
|||
return num; |
|||
} |
|||
WriteSheet sheet2 = EasyExcel.writerSheet(num,costItemDetailVO.getConstructContent()).head(EasyExcelUtils.head(childHeads)).registerWriteHandler(columnMergeHandler).registerWriteHandler(rowMergeHandler).build(); |
|||
excelWriter.write(childDataList, sheet2); |
|||
return num; |
|||
} |
|||
} |
@ -0,0 +1,133 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; |
|||
import org.dromara.productManagement.mapper.PmgCompanyProductModelDetailsMapper; |
|||
import org.dromara.productManagement.service.IPmgCompanyProductModelDetailsService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 公司产品模型详情表Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgCompanyProductModelDetailsServiceImpl implements IPmgCompanyProductModelDetailsService { |
|||
|
|||
private final PmgCompanyProductModelDetailsMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询公司产品模型详情表 |
|||
* |
|||
* @param id 主键 |
|||
* @return 公司产品模型详情表 |
|||
*/ |
|||
@Override |
|||
public PmgCompanyProductModelDetailsVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询公司产品模型详情表列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 公司产品模型详情表分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgCompanyProductModelDetailsVo> queryPageList(PmgCompanyProductModelDetailsBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgCompanyProductModelDetails> lqw = buildQueryWrapper(bo); |
|||
Page<PmgCompanyProductModelDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的公司产品模型详情表列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 公司产品模型详情表列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgCompanyProductModelDetailsVo> queryList(PmgCompanyProductModelDetailsBo bo) { |
|||
LambdaQueryWrapper<PmgCompanyProductModelDetails> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgCompanyProductModelDetails> buildQueryWrapper(PmgCompanyProductModelDetailsBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgCompanyProductModelDetails> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgCompanyProductModelDetails::getModelId, bo.getModelId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getParamName()), PmgCompanyProductModelDetails::getParamName, bo.getParamName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getParameterValue()), PmgCompanyProductModelDetails::getParameterValue, bo.getParameterValue()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsKeyParameter()), PmgCompanyProductModelDetails::getIsKeyParameter, bo.getIsKeyParameter()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgCompanyProductModelDetails::getIsTemporary, bo.getIsTemporary()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增公司产品模型详情表 |
|||
* |
|||
* @param bo 公司产品模型详情表 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgCompanyProductModelDetailsBo bo) { |
|||
PmgCompanyProductModelDetails add = MapstructUtils.convert(bo, PmgCompanyProductModelDetails.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改公司产品模型详情表 |
|||
* |
|||
* @param bo 公司产品模型详情表 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgCompanyProductModelDetailsBo bo) { |
|||
PmgCompanyProductModelDetails update = MapstructUtils.convert(bo, PmgCompanyProductModelDetails.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgCompanyProductModelDetails entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除公司产品模型详情表信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,196 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.PmgCompanyProductModelDetails; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelDetailsVo; |
|||
import org.dromara.productManagement.mapper.PmgCompanyProductModelDetailsMapper; |
|||
import org.springframework.beans.BeanUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductModelBo; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductModelVo; |
|||
import org.dromara.productManagement.domain.PmgCompanyProductModel; |
|||
import org.dromara.productManagement.mapper.PmgCompanyProductModelMapper; |
|||
import org.dromara.productManagement.service.IPmgCompanyProductModelService; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 公司产品模型Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgCompanyProductModelServiceImpl implements IPmgCompanyProductModelService { |
|||
|
|||
private final PmgCompanyProductModelMapper baseMapper; |
|||
private final PmgCompanyProductModelDetailsMapper pmgCompanyProductModelDetailsMapper; |
|||
|
|||
@Override |
|||
public List<PmgCompanyProductModelDetailsVo> getModelDetails(String id) { |
|||
//根据型号id查询型号详情规格指标
|
|||
LambdaQueryWrapper<PmgCompanyProductModelDetails> queryWrapper = new LambdaQueryWrapper<>(); |
|||
queryWrapper.eq(PmgCompanyProductModelDetails::getModelId, id); |
|||
List<PmgCompanyProductModelDetailsVo> list = pmgCompanyProductModelDetailsMapper.selectVoList(queryWrapper); |
|||
if (CollUtil.isEmpty(list)) { |
|||
return new ArrayList<>(); |
|||
} |
|||
return list; |
|||
} |
|||
|
|||
@Override |
|||
public String addModel(ProductModelViewBo<PmgCompanyProductModelDetailsBo> bo) { |
|||
PmgCompanyProductModelBo productModelBo = new PmgCompanyProductModelBo(); |
|||
BeanUtils.copyProperties(bo, productModelBo); |
|||
insertByBo(productModelBo); |
|||
String modelId = productModelBo.getId(); |
|||
List<PmgCompanyProductModelDetailsBo> modelDeatils = bo.getModelDeatils(); |
|||
for (PmgCompanyProductModelDetailsBo item :modelDeatils |
|||
) { |
|||
item.setModelId(modelId); |
|||
PmgCompanyProductModelDetails modelDetails = MapstructUtils.convert(item, PmgCompanyProductModelDetails.class); |
|||
pmgCompanyProductModelDetailsMapper.insert(modelDetails); |
|||
} |
|||
//保存型号
|
|||
|
|||
return modelId; |
|||
} |
|||
|
|||
@Override |
|||
public String editModel(ProductModelViewBo<PmgCompanyProductModelDetailsBo> bo) { |
|||
String id = bo.getId(); |
|||
//删除原型号指标参数
|
|||
LambdaQueryWrapper<PmgCompanyProductModelDetails> queryWrapper = new LambdaQueryWrapper<>(); |
|||
queryWrapper.eq(PmgCompanyProductModelDetails::getModelId, id); |
|||
pmgCompanyProductModelDetailsMapper.delete(queryWrapper); |
|||
List<PmgCompanyProductModelDetailsBo> modelDeatils = bo.getModelDeatils(); |
|||
//给型号指标设置型号id,并保存
|
|||
for (PmgCompanyProductModelDetailsBo item :modelDeatils |
|||
) { |
|||
item.setModelId(id); |
|||
item.setId(null); |
|||
item.setUpdateBy(null); |
|||
item.setUpdateTime(null); |
|||
PmgCompanyProductModelDetails modelDetails = MapstructUtils.convert(item, PmgCompanyProductModelDetails.class); |
|||
modelDetails.setIsTemporary("0");//修改的化,将临时标记改为0,表示非临时
|
|||
pmgCompanyProductModelDetailsMapper.insert(modelDetails); |
|||
} |
|||
//保存型号
|
|||
PmgCompanyProductModelBo productModelBo = new PmgCompanyProductModelBo(); |
|||
BeanUtils.copyProperties(bo, productModelBo); |
|||
updateByBo(productModelBo); |
|||
return productModelBo.getId(); |
|||
} |
|||
/** |
|||
* 查询公司产品模型 |
|||
* |
|||
* @param id 主键 |
|||
* @return 公司产品模型 |
|||
*/ |
|||
@Override |
|||
public PmgCompanyProductModelVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询公司产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 公司产品模型分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgCompanyProductModelVo> queryPageList(PmgCompanyProductModelBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgCompanyProductModel> lqw = buildQueryWrapper(bo); |
|||
Page<PmgCompanyProductModelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的公司产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 公司产品模型列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgCompanyProductModelVo> queryList(PmgCompanyProductModelBo bo) { |
|||
LambdaQueryWrapper<PmgCompanyProductModel> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgCompanyProductModel> buildQueryWrapper(PmgCompanyProductModelBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgCompanyProductModel> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getDescription()), PmgCompanyProductModel::getDescription, bo.getDescription()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductModelTemplateId()), PmgCompanyProductModel::getProductModelTemplateId, bo.getProductModelTemplateId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgCompanyProductModel::getIsTemporary, bo.getIsTemporary()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增公司产品模型 |
|||
* |
|||
* @param bo 公司产品模型 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgCompanyProductModelBo bo) { |
|||
PmgCompanyProductModel add = MapstructUtils.convert(bo, PmgCompanyProductModel.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改公司产品模型 |
|||
* |
|||
* @param bo 公司产品模型 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgCompanyProductModelBo bo) { |
|||
PmgCompanyProductModel update = MapstructUtils.convert(bo, PmgCompanyProductModel.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgCompanyProductModel entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除公司产品模型信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,170 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.*; |
|||
import org.dromara.productManagement.mapper.PmgCompanyProductModelDetailsMapper; |
|||
import org.dromara.productManagement.mapper.PmgCompanyProductModelMapper; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgCompanyProductsBo; |
|||
import org.dromara.productManagement.domain.vo.PmgCompanyProductsVo; |
|||
import org.dromara.productManagement.mapper.PmgCompanyProductsMapper; |
|||
import org.dromara.productManagement.service.IPmgCompanyProductsService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 公司产品管理Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgCompanyProductsServiceImpl implements IPmgCompanyProductsService { |
|||
|
|||
private final PmgCompanyProductsMapper baseMapper; |
|||
private final PmgCompanyProductModelDetailsMapper companyProductModelDetailsMapper; |
|||
private final PmgCompanyProductModelMapper companyProductModelMapper; |
|||
|
|||
/** |
|||
* 查询公司产品管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 公司产品管理 |
|||
*/ |
|||
@Override |
|||
public PmgCompanyProductsVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询公司产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 公司产品管理分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgCompanyProductsVo> queryPageList(PmgCompanyProductsBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgCompanyProducts> lqw = buildQueryWrapper(bo); |
|||
Page<PmgCompanyProductsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的公司产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 公司产品管理列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgCompanyProductsVo> queryList(PmgCompanyProductsBo bo) { |
|||
LambdaQueryWrapper<PmgCompanyProducts> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgCompanyProducts> buildQueryWrapper(PmgCompanyProductsBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgCompanyProducts> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierProductsId()), PmgCompanyProducts::getSupplierProductsId, bo.getSupplierProductsId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierInformationId()), PmgCompanyProducts::getSupplierInformationId, bo.getSupplierInformationId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductSpecifications()), PmgCompanyProducts::getProductSpecifications, bo.getProductSpecifications()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getProductName()), PmgCompanyProducts::getProductName, bo.getProductName()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getProductIdentity()), PmgCompanyProducts::getProductIdentity, bo.getProductIdentity()); |
|||
lqw.eq(bo.getProductPrice() != null, PmgCompanyProducts::getProductPrice, bo.getProductPrice()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSourceInformation()), PmgCompanyProducts::getSourceInformation, bo.getSourceInformation()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), PmgCompanyProducts::getRemarks, bo.getRemarks()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), PmgCompanyProducts::getBrand, bo.getBrand()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), PmgCompanyProducts::getUnit, bo.getUnit()); |
|||
lqw.eq(bo.getExTaxPrice() != null, PmgCompanyProducts::getExTaxPrice, bo.getExTaxPrice()); |
|||
lqw.eq(bo.getTaxrate() != null, PmgCompanyProducts::getTaxrate, bo.getTaxrate()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增公司产品管理 |
|||
* |
|||
* @param bo 公司产品管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgCompanyProductsBo bo) { |
|||
PmgCompanyProducts add = MapstructUtils.convert(bo, PmgCompanyProducts.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
String modelId = add.getModelId(); |
|||
if (StringUtils.isNotBlank(modelId)) { |
|||
// 更新型号的is_temporary标记为非临时数据
|
|||
LambdaUpdateWrapper<PmgCompanyProductModel> modelUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
modelUpdateWrapper.eq(PmgCompanyProductModel::getId, modelId); |
|||
modelUpdateWrapper.set(PmgCompanyProductModel::getIsTemporary, "0"); |
|||
companyProductModelMapper.update(null,modelUpdateWrapper); |
|||
// 更新型号规格参数的is_temporary标记为非临时数据
|
|||
LambdaUpdateWrapper<PmgCompanyProductModelDetails> detailsUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
detailsUpdateWrapper.eq(PmgCompanyProductModelDetails::getModelId, modelId); |
|||
detailsUpdateWrapper.set(PmgCompanyProductModelDetails::getIsTemporary, "0"); |
|||
companyProductModelDetailsMapper.update(null,detailsUpdateWrapper); |
|||
} |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改公司产品管理 |
|||
* |
|||
* @param bo 公司产品管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgCompanyProductsBo bo) { |
|||
PmgCompanyProducts update = MapstructUtils.convert(bo, PmgCompanyProducts.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgCompanyProducts entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除公司产品管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
baseMapper.selectVoBatchIds(ids).forEach(item -> { |
|||
String modelId = item.getModelId(); |
|||
if (StringUtils.isNotBlank(modelId)) { |
|||
LambdaUpdateWrapper<PmgCompanyProductModel> modelUpdateWrapper = new LambdaUpdateWrapper<>(); // 临时数据标记
|
|||
modelUpdateWrapper.eq(PmgCompanyProductModel::getId, modelId); |
|||
companyProductModelMapper.delete(modelUpdateWrapper); |
|||
// 更新型号规格参数的is_temporary标记为临时数据
|
|||
LambdaUpdateWrapper<PmgCompanyProductModelDetails> detailsUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
detailsUpdateWrapper.eq(PmgCompanyProductModelDetails::getModelId, modelId); |
|||
companyProductModelDetailsMapper.delete(detailsUpdateWrapper); |
|||
} |
|||
}); |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,133 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.PmgPersonProductModelDetails; |
|||
import org.dromara.productManagement.mapper.PmgPersonProductModelDetailsMapper; |
|||
import org.dromara.productManagement.service.IPmgPersonProductModelDetailsService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 个人产品模型详情Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgPersonProductModelDetailsServiceImpl implements IPmgPersonProductModelDetailsService { |
|||
|
|||
private final PmgPersonProductModelDetailsMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询个人产品模型详情 |
|||
* |
|||
* @param id 主键 |
|||
* @return 个人产品模型详情 |
|||
*/ |
|||
@Override |
|||
public PmgPersonProductModelDetailsVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询个人产品模型详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 个人产品模型详情分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgPersonProductModelDetailsVo> queryPageList(PmgPersonProductModelDetailsBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgPersonProductModelDetails> lqw = buildQueryWrapper(bo); |
|||
Page<PmgPersonProductModelDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的个人产品模型详情列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 个人产品模型详情列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgPersonProductModelDetailsVo> queryList(PmgPersonProductModelDetailsBo bo) { |
|||
LambdaQueryWrapper<PmgPersonProductModelDetails> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgPersonProductModelDetails> buildQueryWrapper(PmgPersonProductModelDetailsBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgPersonProductModelDetails> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgPersonProductModelDetails::getModelId, bo.getModelId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getParamName()), PmgPersonProductModelDetails::getParamName, bo.getParamName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getParameterValue()), PmgPersonProductModelDetails::getParameterValue, bo.getParameterValue()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsKeyParameter()), PmgPersonProductModelDetails::getIsKeyParameter, bo.getIsKeyParameter()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgPersonProductModelDetails::getIsTemporary, bo.getIsTemporary()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增个人产品模型详情 |
|||
* |
|||
* @param bo 个人产品模型详情 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgPersonProductModelDetailsBo bo) { |
|||
PmgPersonProductModelDetails add = MapstructUtils.convert(bo, PmgPersonProductModelDetails.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改个人产品模型详情 |
|||
* |
|||
* @param bo 个人产品模型详情 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgPersonProductModelDetailsBo bo) { |
|||
PmgPersonProductModelDetails update = MapstructUtils.convert(bo, PmgPersonProductModelDetails.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgPersonProductModelDetails entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除个人产品模型详情信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,197 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.PmgPersonProductModelDetails; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelDetailsVo; |
|||
import org.dromara.productManagement.mapper.PmgPersonProductModelDetailsMapper; |
|||
import org.springframework.beans.BeanUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductModelBo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductModelVo; |
|||
import org.dromara.productManagement.domain.PmgPersonProductModel; |
|||
import org.dromara.productManagement.mapper.PmgPersonProductModelMapper; |
|||
import org.dromara.productManagement.service.IPmgPersonProductModelService; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 个人产品模型Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgPersonProductModelServiceImpl implements IPmgPersonProductModelService { |
|||
|
|||
private final PmgPersonProductModelMapper baseMapper; |
|||
private final PmgPersonProductModelDetailsMapper pmgPersonProductModelDetailsMapper; |
|||
|
|||
@Override |
|||
public List<PmgPersonProductModelDetailsVo> getModelDetails(String id) { |
|||
//根据型号id查询型号详情规格指标
|
|||
LambdaQueryWrapper<PmgPersonProductModelDetails> queryWrapper = new LambdaQueryWrapper<>(); |
|||
queryWrapper.eq(PmgPersonProductModelDetails::getModelId, id); |
|||
List<PmgPersonProductModelDetailsVo> list = pmgPersonProductModelDetailsMapper.selectVoList(queryWrapper); |
|||
if (CollUtil.isEmpty(list)) { |
|||
return new ArrayList<>(); |
|||
} |
|||
return list; |
|||
} |
|||
|
|||
@Override |
|||
public String addModel(ProductModelViewBo<PmgPersonProductModelDetailsBo> bo) { |
|||
PmgPersonProductModelBo productModelBo = new PmgPersonProductModelBo(); |
|||
BeanUtils.copyProperties(bo, productModelBo); |
|||
insertByBo(productModelBo); |
|||
String modelId = productModelBo.getId(); |
|||
List<PmgPersonProductModelDetailsBo> modelDeatils = bo.getModelDeatils(); |
|||
for (PmgPersonProductModelDetailsBo item :modelDeatils |
|||
) { |
|||
item.setModelId(modelId); |
|||
PmgPersonProductModelDetails modelDetails = MapstructUtils.convert(item, PmgPersonProductModelDetails.class); |
|||
pmgPersonProductModelDetailsMapper.insert(modelDetails); |
|||
} |
|||
//保存型号
|
|||
|
|||
return modelId; |
|||
} |
|||
|
|||
@Override |
|||
public String editModel(ProductModelViewBo<PmgPersonProductModelDetailsBo> bo) { |
|||
String id = bo.getId(); |
|||
//删除原型号指标参数
|
|||
LambdaQueryWrapper<PmgPersonProductModelDetails> queryWrapper = new LambdaQueryWrapper<>(); |
|||
queryWrapper.eq(PmgPersonProductModelDetails::getModelId, id); |
|||
pmgPersonProductModelDetailsMapper.delete(queryWrapper); |
|||
List<PmgPersonProductModelDetailsBo> modelDeatils = bo.getModelDeatils(); |
|||
//给型号指标设置型号id,并保存
|
|||
for (PmgPersonProductModelDetailsBo item :modelDeatils |
|||
) { |
|||
item.setModelId(id); |
|||
item.setId(null); |
|||
item.setUpdateBy(null); |
|||
item.setUpdateTime(null); |
|||
PmgPersonProductModelDetails modelDetails = MapstructUtils.convert(item, PmgPersonProductModelDetails.class); |
|||
modelDetails.setIsTemporary("0");//修改的化,将临时标记改为0,表示非临时
|
|||
pmgPersonProductModelDetailsMapper.insert(modelDetails); |
|||
} |
|||
//保存型号
|
|||
PmgPersonProductModelBo productModelBo = new PmgPersonProductModelBo(); |
|||
BeanUtils.copyProperties(bo, productModelBo); |
|||
updateByBo(productModelBo); |
|||
return productModelBo.getId(); |
|||
} |
|||
|
|||
/** |
|||
* 查询个人产品模型 |
|||
* |
|||
* @param id 主键 |
|||
* @return 个人产品模型 |
|||
*/ |
|||
@Override |
|||
public PmgPersonProductModelVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询个人产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 个人产品模型分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgPersonProductModelVo> queryPageList(PmgPersonProductModelBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgPersonProductModel> lqw = buildQueryWrapper(bo); |
|||
Page<PmgPersonProductModelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的个人产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 个人产品模型列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgPersonProductModelVo> queryList(PmgPersonProductModelBo bo) { |
|||
LambdaQueryWrapper<PmgPersonProductModel> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgPersonProductModel> buildQueryWrapper(PmgPersonProductModelBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgPersonProductModel> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getDescription()), PmgPersonProductModel::getDescription, bo.getDescription()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductModelTemplateId()), PmgPersonProductModel::getProductModelTemplateId, bo.getProductModelTemplateId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgPersonProductModel::getIsTemporary, bo.getIsTemporary()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增个人产品模型 |
|||
* |
|||
* @param bo 个人产品模型 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgPersonProductModelBo bo) { |
|||
PmgPersonProductModel add = MapstructUtils.convert(bo, PmgPersonProductModel.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改个人产品模型 |
|||
* |
|||
* @param bo 个人产品模型 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgPersonProductModelBo bo) { |
|||
PmgPersonProductModel update = MapstructUtils.convert(bo, PmgPersonProductModel.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgPersonProductModel entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除个人产品模型信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,171 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.PmgPersonProductModel; |
|||
import org.dromara.productManagement.domain.PmgPersonProductModelDetails; |
|||
import org.dromara.productManagement.mapper.PmgPersonProductModelDetailsMapper; |
|||
import org.dromara.productManagement.mapper.PmgPersonProductModelMapper; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgPersonProductsBo; |
|||
import org.dromara.productManagement.domain.vo.PmgPersonProductsVo; |
|||
import org.dromara.productManagement.domain.PmgPersonProducts; |
|||
import org.dromara.productManagement.mapper.PmgPersonProductsMapper; |
|||
import org.dromara.productManagement.service.IPmgPersonProductsService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 个人产品管理Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgPersonProductsServiceImpl implements IPmgPersonProductsService { |
|||
|
|||
private final PmgPersonProductsMapper baseMapper; |
|||
private final PmgPersonProductModelDetailsMapper personProductModelDetailsMapper; |
|||
private final PmgPersonProductModelMapper personProductModelMapper; |
|||
/** |
|||
* 查询个人产品管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 个人产品管理 |
|||
*/ |
|||
@Override |
|||
public PmgPersonProductsVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询个人产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 个人产品管理分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgPersonProductsVo> queryPageList(PmgPersonProductsBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgPersonProducts> lqw = buildQueryWrapper(bo); |
|||
Page<PmgPersonProductsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的个人产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 个人产品管理列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgPersonProductsVo> queryList(PmgPersonProductsBo bo) { |
|||
LambdaQueryWrapper<PmgPersonProducts> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgPersonProducts> buildQueryWrapper(PmgPersonProductsBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgPersonProducts> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierInformationId()), PmgPersonProducts::getSupplierInformationId, bo.getSupplierInformationId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getProductName()), PmgPersonProducts::getProductName, bo.getProductName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductIdentity()), PmgPersonProducts::getProductIdentity, bo.getProductIdentity()); |
|||
lqw.eq(bo.getProductPrice() != null, PmgPersonProducts::getProductPrice, bo.getProductPrice()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSourceInformation()), PmgPersonProducts::getSourceInformation, bo.getSourceInformation()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductSpecifications()), PmgPersonProducts::getProductSpecifications, bo.getProductSpecifications()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierProductsId()), PmgPersonProducts::getSupplierProductsId, bo.getSupplierProductsId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getRemarks()), PmgPersonProducts::getRemarks, bo.getRemarks()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), PmgPersonProducts::getBrand, bo.getBrand()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), PmgPersonProducts::getUnit, bo.getUnit()); |
|||
lqw.eq(bo.getExTaxPrice() != null, PmgPersonProducts::getExTaxPrice, bo.getExTaxPrice()); |
|||
lqw.eq(bo.getTaxrate() != null, PmgPersonProducts::getTaxrate, bo.getTaxrate()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增个人产品管理 |
|||
* |
|||
* @param bo 个人产品管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgPersonProductsBo bo) { |
|||
PmgPersonProducts add = MapstructUtils.convert(bo, PmgPersonProducts.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
String modelId = add.getModelId(); |
|||
if (StringUtils.isNotBlank(modelId)) { |
|||
// 更新型号的is_temporary标记为非临时数据
|
|||
LambdaUpdateWrapper<PmgPersonProductModel> modelUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
modelUpdateWrapper.eq(PmgPersonProductModel::getId, modelId); |
|||
modelUpdateWrapper.set(PmgPersonProductModel::getIsTemporary, "0"); |
|||
personProductModelMapper.update(null,modelUpdateWrapper); |
|||
// 更新型号规格参数的is_temporary标记为非临时数据
|
|||
LambdaUpdateWrapper<PmgPersonProductModelDetails> detailsUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
detailsUpdateWrapper.eq(PmgPersonProductModelDetails::getModelId, modelId); |
|||
detailsUpdateWrapper.set(PmgPersonProductModelDetails::getIsTemporary, "0"); |
|||
personProductModelDetailsMapper.update(null,detailsUpdateWrapper); |
|||
} |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改个人产品管理 |
|||
* |
|||
* @param bo 个人产品管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgPersonProductsBo bo) { |
|||
PmgPersonProducts update = MapstructUtils.convert(bo, PmgPersonProducts.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgPersonProducts entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除个人产品管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
baseMapper.selectVoBatchIds(ids).forEach(item -> { |
|||
String modelId = item.getModelId(); |
|||
if (StringUtils.isNotBlank(modelId)) { |
|||
LambdaUpdateWrapper<PmgPersonProductModel> modelUpdateWrapper = new LambdaUpdateWrapper<>(); // 临时数据标记
|
|||
modelUpdateWrapper.eq(PmgPersonProductModel::getId, modelId); |
|||
personProductModelMapper.delete(modelUpdateWrapper); |
|||
// 更新型号规格参数的is_temporary标记为临时数据
|
|||
LambdaUpdateWrapper<PmgPersonProductModelDetails> detailsUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
detailsUpdateWrapper.eq(PmgPersonProductModelDetails::getModelId, modelId); |
|||
personProductModelDetailsMapper.delete(detailsUpdateWrapper); |
|||
} |
|||
}); |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,133 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierInformationBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierInformationVo; |
|||
import org.dromara.productManagement.domain.PmgSupplierInformation; |
|||
import org.dromara.productManagement.mapper.PmgSupplierInformationMapper; |
|||
import org.dromara.productManagement.service.IPmgSupplierInformationService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 供应商信息管理Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgSupplierInformationServiceImpl implements IPmgSupplierInformationService { |
|||
|
|||
private final PmgSupplierInformationMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询供应商信息管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商信息管理 |
|||
*/ |
|||
@Override |
|||
public PmgSupplierInformationVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询供应商信息管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商信息管理分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgSupplierInformationVo> queryPageList(PmgSupplierInformationBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgSupplierInformation> lqw = buildQueryWrapper(bo); |
|||
Page<PmgSupplierInformationVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的供应商信息管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商信息管理列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgSupplierInformationVo> queryList(PmgSupplierInformationBo bo) { |
|||
LambdaQueryWrapper<PmgSupplierInformation> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgSupplierInformation> buildQueryWrapper(PmgSupplierInformationBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgSupplierInformation> lqw = Wrappers.lambdaQuery(); |
|||
lqw.like(StringUtils.isNotBlank(bo.getSupplierName()), PmgSupplierInformation::getSupplierName, bo.getSupplierName()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getSupplierContacts()), PmgSupplierInformation::getSupplierContacts, bo.getSupplierContacts()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getPosition()), PmgSupplierInformation::getPosition, bo.getPosition()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierContactsPhone()), PmgSupplierInformation::getSupplierContactsPhone, bo.getSupplierContactsPhone()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierType()), PmgSupplierInformation::getSupplierType, bo.getSupplierType()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商信息管理 |
|||
* |
|||
* @param bo 供应商信息管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgSupplierInformationBo bo) { |
|||
PmgSupplierInformation add = MapstructUtils.convert(bo, PmgSupplierInformation.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商信息管理 |
|||
* |
|||
* @param bo 供应商信息管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgSupplierInformationBo bo) { |
|||
PmgSupplierInformation update = MapstructUtils.convert(bo, PmgSupplierInformation.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgSupplierInformation entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除供应商信息管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,133 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; |
|||
import org.dromara.productManagement.mapper.PmgSupplierProductModelDetailsMapper; |
|||
import org.dromara.productManagement.service.IPmgSupplierProductModelDetailsService; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 供应商产品模型详细Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgSupplierProductModelDetailsServiceImpl implements IPmgSupplierProductModelDetailsService { |
|||
|
|||
private final PmgSupplierProductModelDetailsMapper baseMapper; |
|||
|
|||
/** |
|||
* 查询供应商产品模型详细 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商产品模型详细 |
|||
*/ |
|||
@Override |
|||
public PmgSupplierProductModelDetailsVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询供应商产品模型详细列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商产品模型详细分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgSupplierProductModelDetailsVo> queryPageList(PmgSupplierProductModelDetailsBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgSupplierProductModelDetails> lqw = buildQueryWrapper(bo); |
|||
Page<PmgSupplierProductModelDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的供应商产品模型详细列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商产品模型详细列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgSupplierProductModelDetailsVo> queryList(PmgSupplierProductModelDetailsBo bo) { |
|||
LambdaQueryWrapper<PmgSupplierProductModelDetails> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgSupplierProductModelDetails> buildQueryWrapper(PmgSupplierProductModelDetailsBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgSupplierProductModelDetails> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgSupplierProductModelDetails::getModelId, bo.getModelId()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getParamName()), PmgSupplierProductModelDetails::getParamName, bo.getParamName()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getParameterValue()), PmgSupplierProductModelDetails::getParameterValue, bo.getParameterValue()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsKeyParameter()), PmgSupplierProductModelDetails::getIsKeyParameter, bo.getIsKeyParameter()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgSupplierProductModelDetails::getIsTemporary, bo.getIsTemporary()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商产品模型详细 |
|||
* |
|||
* @param bo 供应商产品模型详细 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgSupplierProductModelDetailsBo bo) { |
|||
PmgSupplierProductModelDetails add = MapstructUtils.convert(bo, PmgSupplierProductModelDetails.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商产品模型详细 |
|||
* |
|||
* @param bo 供应商产品模型详细 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgSupplierProductModelDetailsBo bo) { |
|||
PmgSupplierProductModelDetails update = MapstructUtils.convert(bo, PmgSupplierProductModelDetails.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgSupplierProductModelDetails entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除供应商产品模型详细信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,196 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import cn.hutool.core.collection.CollUtil; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.PmgSupplierProductModelDetails; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelDetailsBo; |
|||
import org.dromara.productManagement.domain.bo.ProductModelViewBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelDetailsVo; |
|||
import org.dromara.productManagement.mapper.PmgSupplierProductModelDetailsMapper; |
|||
import org.springframework.beans.BeanUtils; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductModelBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductModelVo; |
|||
import org.dromara.productManagement.domain.PmgSupplierProductModel; |
|||
import org.dromara.productManagement.mapper.PmgSupplierProductModelMapper; |
|||
import org.dromara.productManagement.service.IPmgSupplierProductModelService; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 供应商产品模型Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-07-01 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgSupplierProductModelServiceImpl implements IPmgSupplierProductModelService { |
|||
|
|||
private final PmgSupplierProductModelMapper baseMapper; |
|||
private final PmgSupplierProductModelDetailsMapper pmgSupplierProductModelDetailsMapper; |
|||
|
|||
@Override |
|||
public List<PmgSupplierProductModelDetailsVo> getModelDetails(String id) { |
|||
//根据型号id查询型号详情规格指标
|
|||
LambdaQueryWrapper<PmgSupplierProductModelDetails> queryWrapper = new LambdaQueryWrapper<>(); |
|||
queryWrapper.eq(PmgSupplierProductModelDetails::getModelId, id); |
|||
List<PmgSupplierProductModelDetailsVo> list = pmgSupplierProductModelDetailsMapper.selectVoList(queryWrapper); |
|||
if (CollUtil.isEmpty(list)) { |
|||
return new ArrayList<>(); |
|||
} |
|||
return list; |
|||
} |
|||
|
|||
@Override |
|||
public String addModel(ProductModelViewBo<PmgSupplierProductModelDetailsBo> bo) { |
|||
PmgSupplierProductModelBo productModelBo = new PmgSupplierProductModelBo(); |
|||
BeanUtils.copyProperties(bo, productModelBo); |
|||
insertByBo(productModelBo); |
|||
String modelId = productModelBo.getId(); |
|||
List<PmgSupplierProductModelDetailsBo> modelDeatils = bo.getModelDeatils(); |
|||
for (PmgSupplierProductModelDetailsBo item :modelDeatils |
|||
) { |
|||
item.setModelId(modelId); |
|||
PmgSupplierProductModelDetails modelDetails = MapstructUtils.convert(item, PmgSupplierProductModelDetails.class); |
|||
pmgSupplierProductModelDetailsMapper.insert(modelDetails); |
|||
} |
|||
//保存型号
|
|||
|
|||
return modelId; |
|||
} |
|||
|
|||
@Override |
|||
public String editModel(ProductModelViewBo<PmgSupplierProductModelDetailsBo> bo) { |
|||
String id = bo.getId(); |
|||
//删除原型号指标参数
|
|||
LambdaQueryWrapper<PmgSupplierProductModelDetails> queryWrapper = new LambdaQueryWrapper<>(); |
|||
queryWrapper.eq(PmgSupplierProductModelDetails::getModelId, id); |
|||
pmgSupplierProductModelDetailsMapper.delete(queryWrapper); |
|||
List<PmgSupplierProductModelDetailsBo> modelDeatils = bo.getModelDeatils(); |
|||
//给型号指标设置型号id,并保存
|
|||
for (PmgSupplierProductModelDetailsBo item :modelDeatils |
|||
) { |
|||
item.setModelId(id); |
|||
item.setId(null); |
|||
item.setUpdateBy(null); |
|||
item.setUpdateTime(null); |
|||
PmgSupplierProductModelDetails modelDetails = MapstructUtils.convert(item, PmgSupplierProductModelDetails.class); |
|||
modelDetails.setIsTemporary("0");//修改的化,将临时标记改为0,表示非临时
|
|||
pmgSupplierProductModelDetailsMapper.insert(modelDetails); |
|||
} |
|||
//保存型号
|
|||
PmgSupplierProductModelBo productModelBo = new PmgSupplierProductModelBo(); |
|||
BeanUtils.copyProperties(bo, productModelBo); |
|||
updateByBo(productModelBo); |
|||
return productModelBo.getId(); |
|||
} |
|||
/** |
|||
* 查询供应商产品模型 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商产品模型 |
|||
*/ |
|||
@Override |
|||
public PmgSupplierProductModelVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询供应商产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商产品模型分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgSupplierProductModelVo> queryPageList(PmgSupplierProductModelBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgSupplierProductModel> lqw = buildQueryWrapper(bo); |
|||
Page<PmgSupplierProductModelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的供应商产品模型列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商产品模型列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgSupplierProductModelVo> queryList(PmgSupplierProductModelBo bo) { |
|||
LambdaQueryWrapper<PmgSupplierProductModel> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgSupplierProductModel> buildQueryWrapper(PmgSupplierProductModelBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgSupplierProductModel> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getDescription()), PmgSupplierProductModel::getDescription, bo.getDescription()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductModelTemplateId()), PmgSupplierProductModel::getProductModelTemplateId, bo.getProductModelTemplateId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getIsTemporary()), PmgSupplierProductModel::getIsTemporary, bo.getIsTemporary()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商产品模型 |
|||
* |
|||
* @param bo 供应商产品模型 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgSupplierProductModelBo bo) { |
|||
PmgSupplierProductModel add = MapstructUtils.convert(bo, PmgSupplierProductModel.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商产品模型 |
|||
* |
|||
* @param bo 供应商产品模型 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgSupplierProductModelBo bo) { |
|||
PmgSupplierProductModel update = MapstructUtils.convert(bo, PmgSupplierProductModel.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgSupplierProductModel entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除供应商产品模型信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
} |
@ -0,0 +1,241 @@ |
|||
package org.dromara.productManagement.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import org.dromara.common.core.utils.MapstructUtils; |
|||
import org.dromara.common.core.utils.StringUtils; |
|||
import org.dromara.common.elasticsearch.entity.SupplierProductsDTO; |
|||
import org.dromara.common.mybatis.core.page.TableDataInfo; |
|||
import org.dromara.common.mybatis.core.page.PageQuery; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|||
import lombok.RequiredArgsConstructor; |
|||
import org.dromara.productManagement.domain.*; |
|||
import org.dromara.productManagement.mapper.PmgSupplierProductModelDetailsMapper; |
|||
import org.dromara.productManagement.mapper.PmgSupplierProductModelMapper; |
|||
import org.elasticsearch.action.search.SearchRequest; |
|||
import org.elasticsearch.action.search.SearchResponse; |
|||
import org.elasticsearch.client.RequestOptions; |
|||
import org.elasticsearch.client.RestHighLevelClient; |
|||
import org.elasticsearch.index.query.QueryBuilders; |
|||
import org.elasticsearch.search.SearchHit; |
|||
import org.elasticsearch.search.SearchHits; |
|||
import org.elasticsearch.search.builder.SearchSourceBuilder; |
|||
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; |
|||
import org.springframework.beans.BeanUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.dromara.productManagement.domain.bo.PmgSupplierProductsBo; |
|||
import org.dromara.productManagement.domain.vo.PmgSupplierProductsVo; |
|||
import org.dromara.productManagement.mapper.PmgSupplierProductsMapper; |
|||
import org.dromara.productManagement.service.IPmgSupplierProductsService; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.Collection; |
|||
|
|||
/** |
|||
* 供应商产品管理Service业务层处理 |
|||
* |
|||
* @author Lion Li |
|||
* @date 2024-06-28 |
|||
*/ |
|||
@RequiredArgsConstructor |
|||
@Service |
|||
public class PmgSupplierProductsServiceImpl implements IPmgSupplierProductsService { |
|||
|
|||
private final PmgSupplierProductsMapper baseMapper; |
|||
private final PmgSupplierProductModelDetailsMapper supplierProductModelDetailsMapper; |
|||
private final PmgSupplierProductModelMapper supplierProductModelMapper; |
|||
@Autowired |
|||
private RestHighLevelClient client; |
|||
/** |
|||
* 查询供应商产品管理 |
|||
* |
|||
* @param id 主键 |
|||
* @return 供应商产品管理 |
|||
*/ |
|||
@Override |
|||
public PmgSupplierProductsVo queryById(String id){ |
|||
return baseMapper.selectVoById(id); |
|||
} |
|||
|
|||
/** |
|||
* 分页查询供应商产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @param pageQuery 分页参数 |
|||
* @return 供应商产品管理分页列表 |
|||
*/ |
|||
@Override |
|||
public TableDataInfo<PmgSupplierProductsVo> queryPageList(PmgSupplierProductsBo bo, PageQuery pageQuery) { |
|||
LambdaQueryWrapper<PmgSupplierProducts> lqw = buildQueryWrapper(bo); |
|||
Page<PmgSupplierProductsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|||
if(StringUtils.isNotBlank(bo.getProductName())){ |
|||
result=querypagebyes(bo,pageQuery); |
|||
} |
|||
return TableDataInfo.build(result); |
|||
} |
|||
|
|||
/** |
|||
* 查询符合条件的供应商产品管理列表 |
|||
* |
|||
* @param bo 查询条件 |
|||
* @return 供应商产品管理列表 |
|||
*/ |
|||
@Override |
|||
public List<PmgSupplierProductsVo> queryList(PmgSupplierProductsBo bo) { |
|||
LambdaQueryWrapper<PmgSupplierProducts> lqw = buildQueryWrapper(bo); |
|||
return baseMapper.selectVoList(lqw); |
|||
} |
|||
|
|||
private LambdaQueryWrapper<PmgSupplierProducts> buildQueryWrapper(PmgSupplierProductsBo bo) { |
|||
Map<String, Object> params = bo.getParams(); |
|||
LambdaQueryWrapper<PmgSupplierProducts> lqw = Wrappers.lambdaQuery(); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getSupplierInformationId()), PmgSupplierProducts::getSupplierInformationId, bo.getSupplierInformationId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getProductSpecifications()), PmgSupplierProducts::getProductSpecifications, bo.getProductSpecifications()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getProductName()), PmgSupplierProducts::getProductName, bo.getProductName()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getProductIdentity()), PmgSupplierProducts::getProductIdentity, bo.getProductIdentity()); |
|||
lqw.eq(bo.getProductPrice() != null, PmgSupplierProducts::getProductPrice, bo.getProductPrice()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getSourceInformation()), PmgSupplierProducts::getSourceInformation, bo.getSourceInformation()); |
|||
lqw.like(StringUtils.isNotBlank(bo.getRemarks()), PmgSupplierProducts::getRemarks, bo.getRemarks()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getImage()), PmgSupplierProducts::getImage, bo.getImage()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getBrand()), PmgSupplierProducts::getBrand, bo.getBrand()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getUnit()), PmgSupplierProducts::getUnit, bo.getUnit()); |
|||
lqw.eq(bo.getExTaxPrice() != null, PmgSupplierProducts::getExTaxPrice, bo.getExTaxPrice()); |
|||
lqw.eq(bo.getTaxrate() != null, PmgSupplierProducts::getTaxrate, bo.getTaxrate()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getCategoryId()), PmgSupplierProducts::getCategoryId, bo.getCategoryId()); |
|||
lqw.eq(StringUtils.isNotBlank(bo.getModelId()), PmgSupplierProducts::getModelId, bo.getModelId()); |
|||
return lqw; |
|||
} |
|||
|
|||
/** |
|||
* 新增供应商产品管理 |
|||
* |
|||
* @param bo 供应商产品管理 |
|||
* @return 是否新增成功 |
|||
*/ |
|||
@Override |
|||
public Boolean insertByBo(PmgSupplierProductsBo bo) { |
|||
PmgSupplierProducts add = MapstructUtils.convert(bo, PmgSupplierProducts.class); |
|||
validEntityBeforeSave(add); |
|||
boolean flag = baseMapper.insert(add) > 0; |
|||
if (flag) { |
|||
bo.setId(add.getId()); |
|||
String modelId = add.getModelId(); |
|||
if (StringUtils.isNotBlank(modelId)) { |
|||
// 更新型号的is_temporary标记为非临时数据
|
|||
LambdaUpdateWrapper<PmgSupplierProductModel> modelUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
modelUpdateWrapper.eq(PmgSupplierProductModel::getId, modelId); |
|||
modelUpdateWrapper.set(PmgSupplierProductModel::getIsTemporary, "0"); |
|||
supplierProductModelMapper.update(null,modelUpdateWrapper); |
|||
// 更新型号规格参数的is_temporary标记为非临时数据
|
|||
LambdaUpdateWrapper<PmgSupplierProductModelDetails> detailsUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
detailsUpdateWrapper.eq(PmgSupplierProductModelDetails::getModelId, modelId); |
|||
detailsUpdateWrapper.set(PmgSupplierProductModelDetails::getIsTemporary, "0"); |
|||
supplierProductModelDetailsMapper.update(null,detailsUpdateWrapper); |
|||
} |
|||
} |
|||
return flag; |
|||
} |
|||
|
|||
/** |
|||
* 修改供应商产品管理 |
|||
* |
|||
* @param bo 供应商产品管理 |
|||
* @return 是否修改成功 |
|||
*/ |
|||
@Override |
|||
public Boolean updateByBo(PmgSupplierProductsBo bo) { |
|||
PmgSupplierProducts update = MapstructUtils.convert(bo, PmgSupplierProducts.class); |
|||
validEntityBeforeSave(update); |
|||
return baseMapper.updateById(update) > 0; |
|||
} |
|||
|
|||
/** |
|||
* 保存前的数据校验 |
|||
*/ |
|||
private void validEntityBeforeSave(PmgSupplierProducts entity){ |
|||
//TODO 做一些数据校验,如唯一约束
|
|||
} |
|||
|
|||
/** |
|||
* 校验并批量删除供应商产品管理信息 |
|||
* |
|||
* @param ids 待删除的主键集合 |
|||
* @param isValid 是否进行有效性校验 |
|||
* @return 是否删除成功 |
|||
*/ |
|||
@Override |
|||
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) { |
|||
if(isValid){ |
|||
//TODO 做一些业务上的校验,判断是否需要校验
|
|||
} |
|||
baseMapper.selectVoBatchIds(ids).forEach(item -> { |
|||
String modelId = item.getModelId(); |
|||
if (StringUtils.isNotBlank(modelId)) { |
|||
LambdaUpdateWrapper<PmgSupplierProductModel> modelUpdateWrapper = new LambdaUpdateWrapper<>(); // 临时数据标记
|
|||
modelUpdateWrapper.eq(PmgSupplierProductModel::getId, modelId); |
|||
supplierProductModelMapper.delete(modelUpdateWrapper); |
|||
// 更新型号规格参数的is_temporary标记为临时数据
|
|||
LambdaUpdateWrapper<PmgSupplierProductModelDetails> detailsUpdateWrapper = new LambdaUpdateWrapper<>(); |
|||
detailsUpdateWrapper.eq(PmgSupplierProductModelDetails::getModelId, modelId); |
|||
supplierProductModelDetailsMapper.delete(detailsUpdateWrapper); |
|||
} |
|||
}); |
|||
return baseMapper.deleteBatchIds(ids) > 0; |
|||
} |
|||
public Page<PmgSupplierProductsVo> querypagebyes(PmgSupplierProductsBo bo, PageQuery pageQuery) { |
|||
// 执行查询
|
|||
Page<PmgSupplierProductsVo> supplierProductsVOPage = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); |
|||
List<PmgSupplierProductsVo> supplierProductsVOList =new ArrayList<>(); |
|||
String productName = bo.getProductName(); |
|||
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); |
|||
SearchRequest searchRequest = new SearchRequest("pmg_supplier_products"); |
|||
// //高亮器
|
|||
HighlightBuilder highlightBuilder = new HighlightBuilder(); |
|||
highlightBuilder.requireFieldMatch(false)//多字段时,需要设置为false//因为高亮查询默认是对查询字段即description就行高亮,可以关闭字段匹配,这样就可以对查询到的多个字段(前提是有关键词并且改字段可以分词)进行高亮显示
|
|||
.field("product_name")//若有关键字切可以分词,则可以高亮,写*可以匹配所有字段
|
|||
.field("product_specifications")//若有关键字切可以分词,则可以高亮,写*可以匹配所有字段
|
|||
.preTags("<span style=\"color: red;\">")//手动前缀标签
|
|||
.postTags("</span>"); |
|||
searchSourceBuilder |
|||
.query(QueryBuilders.multiMatchQuery(productName, "product_name", "product_specifications")) |
|||
.highlighter(highlightBuilder) |
|||
.from(pageQuery.getPageNum()-1) //起始位置:start=(page-1)*size
|
|||
.size(pageQuery.getPageSize()); //每页显示条数;
|
|||
|
|||
searchRequest.source(searchSourceBuilder); |
|||
try { |
|||
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT); |
|||
// 解析结果
|
|||
SearchHits hits = response.getHits(); |
|||
|
|||
|
|||
supplierProductsVOPage.setTotal(response.getHits().getTotalHits().value); |
|||
SearchHit[] searchHits = hits.getHits(); |
|||
ObjectMapper mapper = new ObjectMapper(); |
|||
for (SearchHit hit : searchHits) { |
|||
String json =mapper.writeValueAsString(hit.getSourceAsMap()); |
|||
SupplierProductsDTO supplierProductsDTO = mapper.readValue(json, SupplierProductsDTO.class); |
|||
PmgSupplierProductsVo supplierProductsVO = new PmgSupplierProductsVo(); |
|||
BeanUtils.copyProperties(supplierProductsDTO,supplierProductsVO); |
|||
if(hit.getHighlightFields().get("product_name")!=null){ |
|||
supplierProductsVO.setProductName(hit.getHighlightFields().get("product_name").getFragments()[0].toString()); |
|||
|
|||
} |
|||
if(hit.getHighlightFields().get("product_specifications")!=null){ |
|||
supplierProductsVO.setProductSpecifications(hit.getHighlightFields().get("product_specifications").getFragments()[0].toString()); |
|||
|
|||
} |
|||
supplierProductsVOList.add(supplierProductsVO); |
|||
} |
|||
supplierProductsVOPage.setRecords(supplierProductsVOList); |
|||
return supplierProductsVOPage; |
|||
} catch (Exception e) { |
|||
throw new RuntimeException(e); |
|||
} |
|||
} |
|||
} |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue