mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
机台,标签配置压缩
This commit is contained in:
+249
-2
@@ -10,13 +10,19 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import lombok.Data;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.ToString;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
import java.util.zip.DataFormatException;
|
||||
import java.util.zip.Deflater;
|
||||
import java.util.zip.Inflater;
|
||||
|
||||
/**
|
||||
* JSON 工具类
|
||||
@@ -184,4 +190,245 @@ public class JsonUtils {
|
||||
return JSONUtil.isTypeJSON(text);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 压缩
|
||||
*/
|
||||
public static String zipString(String unzipString) {
|
||||
/**
|
||||
* https://www.yiibai.com/javazip/javazip_deflater.html#article-start
|
||||
* 0 ~ 9 压缩等级 低到高
|
||||
* public static final int BEST_COMPRESSION = 9; 最佳压缩的压缩级别。
|
||||
* public static final int BEST_SPEED = 1; 压缩级别最快的压缩。
|
||||
* public static final int DEFAULT_COMPRESSION = -1; 默认压缩级别。
|
||||
* public static final int DEFAULT_STRATEGY = 0; 默认压缩策略。
|
||||
* public static final int DEFLATED = 8; 压缩算法的压缩方法(目前唯一支持的压缩方法)。
|
||||
* public static final int FILTERED = 1; 压缩策略最适用于大部分数值较小且数据分布随机分布的数据。
|
||||
* public static final int FULL_FLUSH = 3; 压缩刷新模式,用于清除所有待处理的输出并重置拆卸器。
|
||||
* public static final int HUFFMAN_ONLY = 2; 仅用于霍夫曼编码的压缩策略。
|
||||
* public static final int NO_COMPRESSION = 0; 不压缩的压缩级别。
|
||||
* public static final int NO_FLUSH = 0; 用于实现最佳压缩结果的压缩刷新模式。
|
||||
* public static final int SYNC_FLUSH = 2; 用于清除所有未决输出的压缩刷新模式; 可能会降低某些压缩算法的压缩率。
|
||||
*/
|
||||
|
||||
//使用指定的压缩级别创建一个新的压缩器。
|
||||
Deflater deflater = new Deflater(Deflater.BEST_COMPRESSION);
|
||||
//设置压缩输入数据。
|
||||
deflater.setInput(unzipString.getBytes());
|
||||
//当被调用时,表示压缩应该以输入缓冲区的当前内容结束。
|
||||
deflater.finish();
|
||||
|
||||
final byte[] bytes = new byte[256];
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(256);
|
||||
|
||||
while (!deflater.finished()) {
|
||||
//压缩输入数据并用压缩数据填充指定的缓冲区。
|
||||
int length = deflater.deflate(bytes);
|
||||
outputStream.write(bytes, 0, length);
|
||||
}
|
||||
//关闭压缩器并丢弃任何未处理的输入。
|
||||
deflater.end();
|
||||
return Base64.getEncoder().encodeToString(outputStream.toByteArray());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 解压缩
|
||||
*/
|
||||
public static String unzipString(String zipString) {
|
||||
byte[] decode = Base64.getDecoder().decode(zipString);
|
||||
|
||||
//创建一个新的解压缩器 https://www.yiibai.com/javazip/javazip_inflater.html
|
||||
|
||||
Inflater inflater = new Inflater();
|
||||
//设置解压缩的输入数据。
|
||||
inflater.setInput(decode);
|
||||
final byte[] bytes = new byte[256];
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream(256);
|
||||
try {
|
||||
//finished() 如果已到达压缩数据流的末尾,则返回true。
|
||||
while (!inflater.finished()) {
|
||||
//将字节解压缩到指定的缓冲区中。
|
||||
int length = inflater.inflate(bytes);
|
||||
outputStream.write(bytes, 0, length);
|
||||
}
|
||||
} catch (DataFormatException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
} finally {
|
||||
//关闭解压缩器并丢弃任何未处理的输入。
|
||||
inflater.end();
|
||||
}
|
||||
|
||||
return outputStream.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
||||
|
||||
|
||||
* */
|
||||
public static List<List<Object>> jsonTo2DArray(String jsonString) {
|
||||
try {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
JsonNode jsonArray = objectMapper.readTree(jsonString);
|
||||
|
||||
Set<String> headers = new LinkedHashSet<>();
|
||||
List<List<Object>> result = new ArrayList<>();
|
||||
|
||||
// 从数组中的所有对象收集标头
|
||||
if (jsonArray.isArray()) {
|
||||
for (JsonNode jsonObject : jsonArray) {
|
||||
Iterator<String> fieldNames = jsonObject.fieldNames();
|
||||
while (fieldNames.hasNext()) {
|
||||
headers.add(fieldNames.next());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
result.add(new ArrayList<>(headers));
|
||||
|
||||
// 提取行
|
||||
for (JsonNode jsonObject : jsonArray) {
|
||||
List<Object> row = new ArrayList<>();
|
||||
for (String header : headers) {
|
||||
JsonNode valueNode = jsonObject.get(header);
|
||||
if (valueNode != null) {
|
||||
if (valueNode.isTextual()) {
|
||||
row.add(valueNode.asText());
|
||||
} else if (valueNode.isInt()) {
|
||||
row.add(valueNode.asInt());
|
||||
} else if (valueNode.isBoolean()) {
|
||||
row.add(valueNode.asBoolean());
|
||||
} else if (valueNode.isDouble()) {
|
||||
row.add(valueNode.asDouble());
|
||||
} else if (valueNode.isArray() || valueNode.isObject() ) {
|
||||
row.add(jsonTo2DArray(valueNode.toString()));
|
||||
} else {
|
||||
row.add(valueNode.asText());
|
||||
}
|
||||
} else {
|
||||
row.add(null); // 处理缺少的值
|
||||
}
|
||||
}
|
||||
result.add(row);
|
||||
}
|
||||
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 抽取 json数据,不改变数据结构对应的值,只改变数据结构(参考 HPACK 算法) 实现json数据抽取
|
||||
public static List<List<Object>> getData(Object object) {
|
||||
String jsonString = toJsonString(object);
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
try {
|
||||
List<Map<String, Object>> list = mapper.readValue(jsonString, new TypeReference<>() {});
|
||||
List<List<Object>> result = convertTo2DArray(list);
|
||||
|
||||
//
|
||||
return result;
|
||||
|
||||
} catch (IOException e) {
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static List<List<Object>> convertTo2DArray(List<Map<String, Object>> list) {
|
||||
List<List<Object>> result = new ArrayList<>();
|
||||
|
||||
// Get the headers from the first map
|
||||
if (list.size() > 0) {
|
||||
Map<String, Object> firstMap = list.get(0);
|
||||
List<Object> headers = new ArrayList<>(firstMap.keySet());
|
||||
result.add(headers);
|
||||
//
|
||||
// Add rows
|
||||
for (Map<String, Object> map : list) {
|
||||
//
|
||||
List<Object> row = new ArrayList<>();
|
||||
for (Object header : headers) {
|
||||
row.add(map.get(header));
|
||||
}
|
||||
result.add(row);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 将所有抽取后的 json 数据都加入一个统一的数据类型中,方便前端解析哪些代码是抽取的数据,进行数据还原
|
||||
@Data
|
||||
@ToString(callSuper = true)
|
||||
public static class ExtractedData {
|
||||
List<List<Object>> extractedData;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static List<List<List<Object>>> fetchData(Object obj) {
|
||||
List<List<List<Object>>> data = new ArrayList<>();
|
||||
try {
|
||||
// 获取所有字段
|
||||
Field[] fields = obj.getClass().getDeclaredFields();
|
||||
for (Field field : fields) {
|
||||
// 跳过静态或常量字段
|
||||
if (java.lang.reflect.Modifier.isStatic(field.getModifiers()) ||
|
||||
java.lang.reflect.Modifier.isFinal(field.getModifiers())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 确保字段是可访问的
|
||||
field.setAccessible(true);
|
||||
|
||||
// 获取字段值
|
||||
Object fieldValue = field.get(obj);
|
||||
|
||||
// 如果字段值是一个对象,递归调用 fetchData
|
||||
if (fieldValue != null && isCustomObject(fieldValue)) {
|
||||
data.add(JsonUtils.jsonTo2DArray(toJsonString(fieldValue)));
|
||||
fetchData(fieldValue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
// 判断一个对象是否是自定义的类对象
|
||||
private static boolean isCustomObject(Object obj) {
|
||||
Class<?> clazz = obj.getClass();
|
||||
// 自定义对象通常不会是 Java 的基本类型或标准库类型
|
||||
// 这里可以根据具体需求进行更加复杂的判断
|
||||
return !clazz.isPrimitive() &&
|
||||
!clazz.getName().startsWith("java.") &&
|
||||
!clazz.getName().startsWith("javax.") &&
|
||||
!clazz.getName().startsWith("sun.") &&
|
||||
!clazz.isAssignableFrom(Collection.class) &&
|
||||
!clazz.isAssignableFrom(Map.class);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+5
-1
@@ -3,6 +3,7 @@ package com.cf.imes.module.system.controller.admin.label;
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
@@ -23,6 +24,8 @@ import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||
|
||||
@@ -103,7 +106,8 @@ public class LabelController {
|
||||
public void exportLabelExcel(@Valid LabelPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<LabelDO> list = labelService.getLabelPage(pageReqVO).getList();
|
||||
List<LabelDO> list = labelService.getLabelPage(pageReqVO).getList()
|
||||
.stream().map(m->m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList());
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "标签.xls", "数据", LabelRespVO.class,
|
||||
BeanUtils.toBean(list, LabelRespVO.class));
|
||||
|
||||
+5
-1
@@ -1,5 +1,6 @@
|
||||
package com.cf.imes.module.system.controller.admin.labeltemplate;
|
||||
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@@ -8,6 +9,8 @@ import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import java.util.*;
|
||||
import java.io.IOException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
@@ -108,7 +111,8 @@ public class LabelTemplateController {
|
||||
public void exportLabelTemplateExcel(@Valid LabelTemplatePageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<LabelTemplateDO> list = labelTemplateService.getLabelTemplatePage(pageReqVO).getList();
|
||||
List<LabelTemplateDO> list = labelTemplateService.getLabelTemplatePage(pageReqVO).getList()
|
||||
.stream().map(m->m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList());
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "标签模板.xls", "数据", LabelTemplateRespVO.class,
|
||||
BeanUtils.toBean(list, LabelTemplateRespVO.class));
|
||||
|
||||
+12
-2
@@ -1,12 +1,10 @@
|
||||
package com.cf.imes.module.system.controller.admin.machine;
|
||||
|
||||
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||
import com.cf.imes.framework.es.core.valid.CreateGroup;
|
||||
import com.cf.imes.framework.es.core.valid.UpdateGroup;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.module.system.controller.admin.machine.vo.*;
|
||||
import com.cf.imes.module.system.dal.dataobject.dept.DeptDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
|
||||
import com.cf.imes.module.system.service.machine.MachineService;
|
||||
import com.cf.imes.module.system.service.machine.MachineTemplateService;
|
||||
@@ -139,4 +137,16 @@ public class MachineController {
|
||||
return success(list);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("getBrandAndModel")
|
||||
@Operation(summary = "获得机台的品牌跟型号")
|
||||
//@PreAuthorize("@ss.hasPermission('machine::query')")
|
||||
public CommonResult<Map<String, List<MachineBrandModelRespVO>>> getBrandAndModel(@RequestParam Long type) {
|
||||
return success(machineService.getBrandAndModel(type));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+9
@@ -31,6 +31,15 @@ public class CuttingRespVO {
|
||||
@Schema(description = "标签id")
|
||||
private Long labelId;
|
||||
|
||||
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@ExcelProperty("品牌")
|
||||
private String brand;
|
||||
|
||||
|
||||
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
|
||||
@ExcelProperty("型号")
|
||||
private String model;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
+8
-8
@@ -29,23 +29,23 @@ public class CuttingSaveReqVO {
|
||||
private Integer machineType;
|
||||
|
||||
@Schema(description = "标签id")
|
||||
@NotNull(message = "标签id不能空")
|
||||
// @NotNull(message = "标签id不能空")
|
||||
private Long labelId;
|
||||
|
||||
@Schema(description = "机台模板id")
|
||||
@NotNull(groups = CreateGroup.class, message = "机台模板id不能空")
|
||||
private Long templateId;
|
||||
|
||||
/* @Schema(description = "机台配置")
|
||||
@Valid
|
||||
private CuttingSettingDO machineSettingDO;*/
|
||||
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// @NotNull(message = "机台的品牌不能为空")
|
||||
private String brand;
|
||||
|
||||
@Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// @NotNull(message = "机台的型号不能为空")
|
||||
private String model;
|
||||
|
||||
@Schema(description = "机台配置")
|
||||
private JSONObject machineSettingDO;
|
||||
|
||||
|
||||
/* @Schema(description = "样式配置")
|
||||
@Valid
|
||||
private StyleMachineDO styleMachineDO;*/
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.cf.imes.module.system.controller.admin.machine.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
@Schema(description = "机台的型号信息")
|
||||
public class MachineBrandModelRespVO {
|
||||
|
||||
@Schema(description = "机台的品牌")
|
||||
private String brand;
|
||||
|
||||
@Schema(description = "机台的型号")
|
||||
private String model;
|
||||
|
||||
}
|
||||
+9
-6
@@ -15,11 +15,13 @@ public class MachineConvert {
|
||||
|
||||
public static MachineDO convert(CuttingSaveReqVO createReqVO) {
|
||||
return MachineDO.builder()
|
||||
.machineType(createReqVO.getMachineType())
|
||||
.name(createReqVO.getName())
|
||||
.id(createReqVO.getId())
|
||||
.labelId(createReqVO.getLabelId())
|
||||
.setting(createReqVO.getMachineSettingDO().toJSONString())
|
||||
.machineType(createReqVO.getMachineType())
|
||||
.name(createReqVO.getName())
|
||||
.id(createReqVO.getId())
|
||||
.labelId(createReqVO.getLabelId())
|
||||
.setting(createReqVO.getMachineSettingDO().toJSONString())
|
||||
.brand(createReqVO.getBrand())
|
||||
.model(createReqVO.getModel())
|
||||
.build();
|
||||
|
||||
}
|
||||
@@ -29,7 +31,8 @@ public class MachineConvert {
|
||||
.id(machineDO.getId())
|
||||
.machineSettingDO(JSON.parseObject(machineDO.getSetting()))
|
||||
.createTime(machineDO.getCreateTime())
|
||||
.labelId(machineDO.getLabelId())
|
||||
.brand(machineDO.getBrand())
|
||||
.model(machineDO.getModel())
|
||||
.name(machineDO.getName())
|
||||
.machineType(machineDO.getMachineType())
|
||||
.labelId(machineDO.getLabelId())
|
||||
|
||||
+11
@@ -45,4 +45,15 @@ public class MachineDO extends OrganBaseDO {
|
||||
*/
|
||||
private String setting;
|
||||
|
||||
/**
|
||||
* 品牌
|
||||
*/
|
||||
private String brand;
|
||||
|
||||
|
||||
/**
|
||||
* 型号
|
||||
*/
|
||||
private String model;
|
||||
|
||||
}
|
||||
+11
@@ -37,6 +37,17 @@ public class MachineTemplateDO extends BaseDO {
|
||||
*/
|
||||
private String setting;
|
||||
|
||||
/**
|
||||
* 品牌
|
||||
*/
|
||||
private String brand;
|
||||
|
||||
|
||||
/**
|
||||
* 型号
|
||||
*/
|
||||
private String model;
|
||||
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
|
||||
+9
@@ -40,4 +40,13 @@ public interface MachineTemplateMapper extends BaseMapperX<MachineTemplateDO> {
|
||||
Page<OrganTemplateResp> selectOrganTemplatePage(@Param("page") Page<OrganTemplateResp> respPage, @Param("vo") OrganTemplatePage page);
|
||||
|
||||
OrganTemplateResp selectOrganTemplate(Long organId);
|
||||
|
||||
|
||||
default MachineTemplateDO selectMachineId(String brand, String model) {
|
||||
return selectOne(new LambdaQueryWrapperX<MachineTemplateDO>()
|
||||
.eqIfPresent(MachineTemplateDO::getBrand,brand)
|
||||
.eqIfPresent(MachineTemplateDO::getModel,model));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+18
-7
@@ -1,6 +1,7 @@
|
||||
package com.cf.imes.module.system.service.labeltemplate;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -34,6 +35,7 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
|
||||
public Long createLabelTemplate(LabelTemplateSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
LabelTemplateDO labelTemplate = BeanUtils.toBean(createReqVO, LabelTemplateDO.class);
|
||||
labelTemplate.setTemplate(JsonUtils.zipString(labelTemplate.getTemplate()));
|
||||
labelTemplateMapper.insert(labelTemplate);
|
||||
// 返回
|
||||
return labelTemplate.getId();
|
||||
@@ -45,6 +47,10 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
|
||||
validateLabelTemplateExists(updateReqVO.getId());
|
||||
// 更新
|
||||
LabelTemplateDO updateObj = BeanUtils.toBean(updateReqVO, LabelTemplateDO.class);
|
||||
if(!updateReqVO.getTemplate().isEmpty()){
|
||||
updateObj.setTemplate(JsonUtils.zipString(updateObj.getTemplate()));
|
||||
|
||||
}
|
||||
labelTemplateMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@@ -71,6 +77,7 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
|
||||
@Override
|
||||
public LabelTemplateRespVO getLabelTemplate(Long id) {
|
||||
LabelTemplateDO labelTemplateDO = labelTemplateMapper.selectById(id);
|
||||
labelTemplateDO.setTemplate(JsonUtils.unzipString(labelTemplateDO.getTemplate()));
|
||||
LabelTemplateRespVO labelTemplateRespVO = BeanUtils.toBean(labelTemplateDO, LabelTemplateRespVO.class);
|
||||
return labelTemplateRespVO;
|
||||
}
|
||||
@@ -83,7 +90,8 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
|
||||
|
||||
@Override
|
||||
public Map<String, List<LabelTemplateRespVO>> getGroupList() {
|
||||
List<LabelTemplateDO> labelTemplateDOS = labelTemplateMapper.selectList();
|
||||
List<LabelTemplateDO> labelTemplateDOS = labelTemplateMapper.selectList()
|
||||
.stream().map( m-> m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList());
|
||||
List<LabelTemplateRespVO> labelTemplateRespVOS = BeanUtils.toBean(labelTemplateDOS, LabelTemplateRespVO.class);
|
||||
return labelTemplateRespVOS.stream().collect(Collectors.groupingBy(LabelTemplateRespVO::getType));
|
||||
}
|
||||
@@ -99,6 +107,7 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
|
||||
throw exception(DEFAULT_TEMPLATE_COUNT);
|
||||
}
|
||||
LabelTemplateDO labelTemplateDO = labelTemplateDOS.get(0);
|
||||
labelTemplateDO.setTemplate(JsonUtils.unzipString(labelTemplateDO.getTemplate()));
|
||||
LabelTemplateRespVO labelTemplateRespVO = BeanUtils.toBean(labelTemplateDO, LabelTemplateRespVO.class);
|
||||
return labelTemplateRespVO;
|
||||
}
|
||||
@@ -116,13 +125,15 @@ public class LabelTemplateServiceImpl implements LabelTemplateService {
|
||||
.eq(LabelTemplateDO::getIsDefault, Boolean.TRUE)
|
||||
.eq(LabelTemplateDO::getType, labelTemplateDO.getType())
|
||||
);
|
||||
if(CollectionUtil.isEmpty(labelTemplateDOS) || labelTemplateDOS.size()>1) {
|
||||
throw exception(DEFAULT_TEMPLATE_COUNT);
|
||||
// if(CollectionUtil.isEmpty(labelTemplateDOS) || labelTemplateDOS.size()>1) {
|
||||
// throw exception(DEFAULT_TEMPLATE_COUNT);
|
||||
// }
|
||||
if(!labelTemplateDOS.isEmpty()){
|
||||
LabelTemplateDO templateDO = new LabelTemplateDO();
|
||||
templateDO.setId(labelTemplateDOS.get(0).getId());
|
||||
templateDO.setIsDefault(Boolean.FALSE);
|
||||
labelTemplateMapper.updateById(templateDO);
|
||||
}
|
||||
LabelTemplateDO templateDO = new LabelTemplateDO();
|
||||
templateDO.setId(labelTemplateDOS.get(0).getId());
|
||||
templateDO.setIsDefault(Boolean.FALSE);
|
||||
labelTemplateMapper.updateById(templateDO);
|
||||
|
||||
labelTemplateDO.setIsDefault(Boolean.TRUE);
|
||||
labelTemplateMapper.updateById(labelTemplateDO);
|
||||
|
||||
+24
-9
@@ -2,6 +2,7 @@ package com.cf.imes.module.system.service.lable;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.system.controller.admin.label.vo.*;
|
||||
@@ -42,6 +43,7 @@ public class LabelServiceImpl implements LabelService {
|
||||
public Long createLabel(LabelSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
LabelDO Label = BeanUtils.toBean(createReqVO, LabelDO.class);
|
||||
Label.setTemplate(JsonUtils.zipString(Label.getTemplate()));
|
||||
labelMapper.insert(Label);
|
||||
// 返回
|
||||
return Label.getId();
|
||||
@@ -54,6 +56,10 @@ public class LabelServiceImpl implements LabelService {
|
||||
validateLabelExists(updateReqVO.getId());
|
||||
// 更新
|
||||
LabelDO updateObj = BeanUtils.toBean(updateReqVO, LabelDO.class);
|
||||
if(!updateReqVO.getTemplate().isEmpty()){
|
||||
updateObj.setTemplate(JsonUtils.zipString(updateObj.getTemplate()));
|
||||
}
|
||||
|
||||
labelMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@@ -86,34 +92,43 @@ public class LabelServiceImpl implements LabelService {
|
||||
@Override
|
||||
public LabelRespVO getLabel(Long id) {
|
||||
LabelDO LabelDO = labelMapper.selectById(id);
|
||||
LabelDO.setTemplate(JsonUtils.unzipString(LabelDO.getTemplate()));
|
||||
LabelRespVO LabelRespVO = BeanUtils.toBean(LabelDO, LabelRespVO.class);
|
||||
return LabelRespVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<LabelDO> getLabelPage(LabelPageReqVO pageReqVO) {
|
||||
return labelMapper.selectPage(pageReqVO);
|
||||
|
||||
PageResult<LabelDO> labelDOPageResult = labelMapper.selectPage(pageReqVO);
|
||||
|
||||
labelDOPageResult.setList(labelDOPageResult.getList().stream().map(m -> m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList()));
|
||||
|
||||
return labelDOPageResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, List<LabelRespVO>> getGroupList(Long organId) {
|
||||
List<LabelDO> LabelDOS = labelMapper.selectList(new LambdaQueryWrapperX<LabelDO>().eqIfPresent(LabelDO::getOrganId, organId));
|
||||
List<LabelDO> LabelDOS = labelMapper.selectList(new LambdaQueryWrapperX<LabelDO>()
|
||||
.eqIfPresent(LabelDO::getOrganId, organId)
|
||||
/*.eq(LabelDO::getDeleted,false)*/)
|
||||
.stream().map(m -> m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList());
|
||||
List<LabelRespVO> LabelRespVOS = BeanUtils.toBean(LabelDOS, LabelRespVO.class);
|
||||
return LabelRespVOS.stream().collect(Collectors.groupingBy(LabelRespVO::getType));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LabelDO> list(String type) {
|
||||
return labelMapper.selectList(new LambdaQueryWrapperX<LabelDO>()
|
||||
.eq(LabelDO::getOrganId,getUserOrganId())
|
||||
.eqIfPresent(LabelDO::getType, type));
|
||||
|
||||
// return labelMapper.selectList(new LambdaQueryWrapperX<LabelDO>()
|
||||
// .eqIfPresent(LabelDO::getType, type)
|
||||
// .eq(LabelDO::getOrganId,getUserOrganId()))
|
||||
// .stream().map( m -> m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList());
|
||||
// .eq(LabelDO::getOrganId,getUserOrganId())
|
||||
// .eqIfPresent(LabelDO::getType, type));
|
||||
|
||||
return labelMapper.selectList(new LambdaQueryWrapperX<LabelDO>()
|
||||
.eqIfPresent(LabelDO::getType, type)
|
||||
.eq(LabelDO::getOrganId,getUserOrganId()))
|
||||
.stream().map( m -> m.setTemplate(JsonUtils.unzipString(m.getTemplate()))).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
@@ -82,4 +82,6 @@ public interface MachineService {
|
||||
PageResult<MachineDO> page(MachinePageReqVO pageParam);
|
||||
|
||||
List<MachineSimpleRespVO> simpleList(Long organId,Long type);
|
||||
|
||||
Map<String, List<MachineBrandModelRespVO>> getBrandAndModel(Long type);
|
||||
}
|
||||
+59
-1
@@ -11,6 +11,7 @@ import co.elastic.clients.elasticsearch.core.SearchRequest;
|
||||
import co.elastic.clients.elasticsearch.core.SearchResponse;
|
||||
import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
@@ -24,10 +25,12 @@ import com.cf.imes.module.system.dal.dataobject.machine.DrillSettingDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.machine.CuttingSettingDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.machine.MachineLimitDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateLimitDO;
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateLimitMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -78,6 +81,9 @@ public class MachineServiceImpl implements MachineService {
|
||||
@Resource
|
||||
private MachineTemplateLimitMapper machineTemplateLimitMapper;
|
||||
|
||||
@Resource
|
||||
private MachineTemplateMapper machineTemplateMapper;
|
||||
|
||||
@Resource
|
||||
private OrderPlanApi orderPlanApi;
|
||||
|
||||
@@ -86,13 +92,22 @@ public class MachineServiceImpl implements MachineService {
|
||||
public Long createCutting(CuttingSaveReqVO createReqVO) {
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
assert loginUser != null;
|
||||
|
||||
// MachineTemplateDO machineTemplateDO = machineTemplateMapper.selectMachineId(createReqVO.getBrand(), createReqVO.getModel());
|
||||
|
||||
MachineTemplateLimitDO organMachineTemplateDO = machineTemplateLimitMapper.selectOne(new LambdaQueryWrapperX<MachineTemplateLimitDO>()
|
||||
.eq(MachineTemplateLimitDO::getMachineId, createReqVO.getTemplateId())
|
||||
.eq(MachineTemplateLimitDO::getOrganId, loginUser.getOrganId())
|
||||
);
|
||||
// 插入
|
||||
MachineDO machineDO = MachineConvert.convert(createReqVO);
|
||||
// if(createReqVO.getMachineSettingDO().isEmpty()) {
|
||||
// machineDO.setSetting(machineTemplateDO.getSetting());
|
||||
// }
|
||||
// 将机台的配置数据进行压缩
|
||||
machineDO.setSetting(JsonUtils.zipString(machineDO.getSetting()));
|
||||
machineMapper.insert(machineDO);
|
||||
|
||||
MachineLimitDO machineLimitDO = MachineLimitDO.builder()
|
||||
.organId(loginUser.getOrganId())
|
||||
.machineId(machineDO.getId())
|
||||
@@ -113,6 +128,13 @@ public class MachineServiceImpl implements MachineService {
|
||||
// 更新
|
||||
MachineDO updateObj = MachineConvert.convert(updateReqVO);
|
||||
//MachineDO updateObj = BeanUtils.toBean(updateReqVO, MachineDO.class);
|
||||
|
||||
|
||||
// 判断传入的机台配置是否存在,如果存在,压缩数据后更新
|
||||
if(!updateReqVO.getMachineSettingDO().isEmpty()){
|
||||
updateObj.setSetting(JsonUtils.zipString(updateObj.getSetting()));
|
||||
}
|
||||
|
||||
machineMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@@ -142,6 +164,10 @@ public class MachineServiceImpl implements MachineService {
|
||||
@Override
|
||||
public CuttingRespVO getCutting(Long id) {
|
||||
MachineDO machineDO = machineMapper.selectById(id);
|
||||
|
||||
// 对机台的配置进行解压
|
||||
machineDO.setSetting(JsonUtils.unzipString(machineDO.getSetting()));
|
||||
|
||||
if (Objects.isNull(machineDO)) {
|
||||
throw exception(MACHINE_NOT_EXISTS);
|
||||
}
|
||||
@@ -312,16 +338,48 @@ public class MachineServiceImpl implements MachineService {
|
||||
return BeanUtils.toBean(machineDOS, MachineSimpleRespVO.class);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, List<MachineBrandModelRespVO>> getBrandAndModel(Long type) {
|
||||
|
||||
List<MachineDO> machineDOS = machineMapper.selectList(new LambdaQueryWrapperX<MachineDO>()
|
||||
.eqIfPresent(MachineDO::getOrganId, getUserOrganId())
|
||||
.eqIfPresent(MachineDO::getMachineType, type)
|
||||
.select(MachineDO::getModel,MachineDO::getBrand)
|
||||
).stream().filter(f -> (!Objects.equals(f.getModel(), ""))).toList();
|
||||
|
||||
List<MachineBrandModelRespVO> machineVOS = BeanUtils.toBean(machineDOS, MachineBrandModelRespVO.class);
|
||||
|
||||
Map<String, List<MachineBrandModelRespVO>> map = machineVOS.stream().collect(Collectors.groupingBy(MachineBrandModelRespVO::getBrand));
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void validateExists(Long id) {
|
||||
if (machineMapper.selectById(id) == null) {
|
||||
throw exception(MACHINE_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
private Boolean validateBrandAndModel(String brand, String model){
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<MachineDO> getPage(MachinePageReqVO pageReqVO) {
|
||||
return machineMapper.selectPage(pageReqVO);
|
||||
// return machineMapper.selectPage(pageReqVO);
|
||||
|
||||
|
||||
PageResult<MachineDO> machineDOPageResult = machineMapper.selectPage(pageReqVO);
|
||||
// 将查询到的机台的数据中的配置信息进行解压
|
||||
List<MachineDO> list = machineDOPageResult.getList().stream().map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).collect(Collectors.toList());
|
||||
return machineDOPageResult.setList(list);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+25
-5
@@ -13,6 +13,7 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
@@ -156,6 +157,10 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long createCuttingTemplate(CuttingTemplateSaveReqVO reqVO) {
|
||||
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
|
||||
if(!templateDO.getSetting().isEmpty()){
|
||||
templateDO.setSetting(JsonUtils.zipString(templateDO.getSetting()));
|
||||
}
|
||||
|
||||
machineTemplateMapper.insert(templateDO);
|
||||
return templateDO.getId();
|
||||
}
|
||||
@@ -163,6 +168,10 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
@Override
|
||||
public Boolean updateCuttingTemplate(CuttingTemplateSaveReqVO reqVO) {
|
||||
MachineTemplateDO templateDO = MachineTemplateConvert.convert(reqVO);
|
||||
if(!reqVO.getSetting().isEmpty()){
|
||||
templateDO.setSetting(JsonUtils.zipString(templateDO.getSetting()));
|
||||
|
||||
}
|
||||
machineTemplateMapper.updateById(templateDO);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
@@ -170,6 +179,7 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
@Override
|
||||
public CuttingTemplateRespVO getCuttingTemplateById(String id) {
|
||||
MachineTemplateDO templateDO = machineTemplateMapper.selectById(id);
|
||||
templateDO.setSetting(JsonUtils.unzipString(templateDO.getSetting()));
|
||||
if (Objects.isNull(templateDO)) {
|
||||
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
|
||||
}
|
||||
@@ -198,6 +208,8 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
throw exception(DEFAULT_TEMPLATE_COUNT);
|
||||
}
|
||||
MachineTemplateDO templateDO = machineTemplateDOS.get(0);
|
||||
// 将机台的模板配置进行解压
|
||||
templateDO.setSetting(JsonUtils.unzipString(templateDO.getSetting()));
|
||||
return MachineTemplateConvert.convert1(templateDO);
|
||||
}
|
||||
throw exception(DEFAULT_TEMPLATE_NOT_EXISTS);
|
||||
@@ -224,7 +236,10 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
|
||||
@Override
|
||||
public Map<Integer, List<MachineTemplateDO>> getMachineTemplateTree() {
|
||||
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList();
|
||||
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList()
|
||||
// 将机台的配置进行解压
|
||||
.stream().map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).collect(Collectors.toList());
|
||||
|
||||
Map<Integer, List<MachineTemplateDO>> map = machineTemplateDOS.stream().collect(Collectors.groupingBy(MachineTemplateDO::getMachineType));
|
||||
return map;
|
||||
}
|
||||
@@ -256,9 +271,9 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
throw exception(MACHINE_TEMPLATE_NOT_EXISTS);
|
||||
}
|
||||
List<MachineTemplateDO> machineTemplateDOS = machineTemplateMapper.selectList(MachineTemplateDO::getMachineType, templateDO.getMachineType(), MachineTemplateDO::getIsDefault, Boolean.TRUE);
|
||||
// if(CollectionUtil.isEmpty(machineTemplateDOS) || machineTemplateDOS.size()>1) {
|
||||
// throw exception(DEFAULT_TEMPLATE_COUNT);
|
||||
// }
|
||||
if(CollectionUtil.isEmpty(machineTemplateDOS) || machineTemplateDOS.size()>1) {
|
||||
throw exception(DEFAULT_TEMPLATE_COUNT);
|
||||
}
|
||||
|
||||
if(!machineTemplateDOS.isEmpty()){
|
||||
MachineTemplateDO machineTemplateDO = new MachineTemplateDO();
|
||||
@@ -396,7 +411,12 @@ public class MachineTemplateServiceImpl implements MachineTemplateService {
|
||||
if(CollectionUtil.isEmpty(machineIds)) {
|
||||
return new PageResult<>();
|
||||
}*/
|
||||
return machineTemplateMapper.selectPage(pageParam, new ArrayList<>());
|
||||
|
||||
PageResult<MachineTemplateDO> machineTemplateDOPageResult = machineTemplateMapper.selectPage(pageParam, new ArrayList<>());
|
||||
// 将机台模板的配置进行解压
|
||||
machineTemplateDOPageResult.setList(machineTemplateDOPageResult.getList().stream().map(m -> m.setSetting(JsonUtils.unzipString(m.getSetting()))).collect(Collectors.toList()));
|
||||
|
||||
return machineTemplateDOPageResult;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user