jindie xiangguangognneng
This commit is contained in:
parent
eeae37b7b7
commit
3c0a849df7
36
.trae/documents/Add SQL Server Query Integration.md
Normal file
36
.trae/documents/Add SQL Server Query Integration.md
Normal file
@ -0,0 +1,36 @@
|
||||
## 配置示例(建议)
|
||||
- 新增独立数据源前缀:`spring.datasource.mssql`(与主库区分)
|
||||
- Spring Boot 标准键名使用短横线:`driver-class-name`
|
||||
- SQL Server URL 推荐:`jdbc:sqlserver://主机:端口;databaseName=库名;encrypt=false;trustServerCertificate=true`
|
||||
- 不要使用 MySQL 专用参数(如 `rewriteBatchedStatements`)
|
||||
|
||||
示例:
|
||||
```
|
||||
spring:
|
||||
datasource:
|
||||
mssql:
|
||||
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
url: jdbc:sqlserver://localhost:1433;databaseName=tempdb;encrypt=false;trustServerCertificate=true
|
||||
username: SA
|
||||
password: root
|
||||
hikari:
|
||||
maximum-pool-size: 10
|
||||
connection-timeout: 30000
|
||||
read-only: true
|
||||
```
|
||||
|
||||
说明:
|
||||
- `DatabaseName` 可写为 `databaseName`(微软驱动两者等效,统一小写更常见)
|
||||
- `SelectMethod=cursor` 是旧驱动参数,通常不需要;保留仅在游标大结果集特殊场景
|
||||
- `rewriteBatchedStatements` 是 MySQL 参数,不适用于 SQL Server,需去掉
|
||||
- 生产环境请勿使用 `SA/root`,改为只读账号并限制权限
|
||||
|
||||
## 集成方式
|
||||
- 若项目已用动态数据源:注册名为 `mssql` 的数据源,查询处使用 `@DS("mssql")`
|
||||
- 若项目未用动态数据源:为上述 `spring.datasource.mssql` 创建 `DataSource` + `JdbcTemplate` Bean,Service 里使用模板执行参数化 SQL
|
||||
|
||||
## 验证步骤
|
||||
- 启动后编写一条简单查询(TOP 10)验证连通
|
||||
- 确认连接池参数和超时生效;异常时输出清晰日志
|
||||
|
||||
确认后我按你选择的“动态数据源/JdbcTemplate”方式,补全配置、注册 Bean,并提供示例查询接口与 Service。
|
||||
73
.trae/documents/导出Excel:BOM与工艺分离实现方案.md
Normal file
73
.trae/documents/导出Excel:BOM与工艺分离实现方案.md
Normal file
@ -0,0 +1,73 @@
|
||||
## 目标
|
||||
- 在同一个 Sheet 中导出两块数据:
|
||||
- 区域A:材料BOM(每物料1条)
|
||||
- 区域B:工艺路线(每工序1条,完整展示所有步骤)
|
||||
- 保持原始物料顺序;工艺按 `processNo` 升序。
|
||||
|
||||
## 布局设计(同一Sheet)
|
||||
- 区域A(上方):占位名 `KingdeeBomData`
|
||||
- 列建议:
|
||||
- 生产令号 `routeDescription`
|
||||
- 物料编码 `materialCode`
|
||||
- 名称 `materialName`
|
||||
- 材质 `material`
|
||||
- 单重KG `discWeight`
|
||||
- 材料BOM物料编码 `rawMaterialCode`
|
||||
- 材料BOM物料名称 `rawMaterialName`
|
||||
- BOM材质 `bomMaterial`
|
||||
- 材料单重KG `bomDanZhong`
|
||||
- 用量 `discUsage`
|
||||
- 单位 `bomUnit`
|
||||
- 区域B(下方,留若干空行与A区分):占位名 `ProcessRouteExcelDTO`
|
||||
- 列建议:
|
||||
- 生产令号 `routeDescription`
|
||||
- 物料编码 `materialCode`
|
||||
- 名称 `materialName`
|
||||
- 材质 `material`
|
||||
- 单重KG `discWeight`
|
||||
- 工序号 `processNo`
|
||||
- 工作中心 `workCenter`
|
||||
- 工序名称 `processName`
|
||||
- 工序说明 `processDescription`
|
||||
- 工序控制 `processControl`
|
||||
- 活动时长 `activityDuration`
|
||||
- 活动单位 `activityUnit`
|
||||
- 单台数量 `unitQuantity`
|
||||
- 本批数量 `batchQuantity`
|
||||
|
||||
## 数据生成逻辑
|
||||
- BOM区(每物料1条):
|
||||
- 取最新版本:`readGetTheLatestVersion(materialCode)`
|
||||
- 取 `getMaterialUseXByVer(version)` 的第一条(或按你后续指定规则汇总)作为该物料的BOM条目
|
||||
- 工艺区(每工序1条):
|
||||
- 取 `getRouteGuDing(materialCode)` 全量,按 `processNo` 升序展开;不写入任何BOM字段
|
||||
- 两区均附带物料基础字段(生产令号、编码、名称、材质、单重、数量等)
|
||||
|
||||
## 控制器改造要点(exportRoute2)
|
||||
1. 遍历 `routeList`(保序):
|
||||
- 构建 `kingdeeBomRows`(List<Map<String,Object>>)
|
||||
- 构建 `excelDTOList`(工艺 ProcessRouteExcelDTO 列表)
|
||||
2. 动态映射:
|
||||
- `DynamicDataMapping.createOneDataList("KingdeeBomData", kingdeeBomRows)`
|
||||
- `DynamicDataMapping.createOneDataList("ProcessRouteExcelDTO", evoRouteDataList)`
|
||||
3. 模板:在同一Sheet中放置两个表格块,分别绑定以上占位名
|
||||
|
||||
## 排序与顺序
|
||||
- 物料:沿用 `routeList` 的顺序
|
||||
- 工艺:`processNo` 升序,`null` 置后
|
||||
|
||||
## 边界情况
|
||||
- 无工艺:B区为空,但A区仍输出该物料的BOM
|
||||
- 无BOM:A区不输出该物料;B区正常输出工艺
|
||||
- 版本查询失败:A区跳过该物料或显示“未查询到”标记
|
||||
|
||||
## 验证
|
||||
- 用两种物料进行导出测试:一个多工序、一个单工序;核对两区行数与内容
|
||||
- 对比你提供的示例Excel,确认列头、顺序与格式
|
||||
|
||||
## 请你确认/提供
|
||||
- 同一Sheet模板文件或示意图:两块区域位置与占位名是否采用 `KingdeeBomData` 和 `ProcessRouteExcelDTO`
|
||||
- BOM“一条数据”的取值方式:直接取第一条还是需要汇总(若后续会出现多子项)
|
||||
- 是否需要在两区之间加入分隔行/标题行的样式要求
|
||||
|
||||
确认后我将按该方案更新导出逻辑并给你可下载的Excel。
|
||||
@ -100,11 +100,18 @@
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.microsoft.sqlserver</groupId>
|
||||
<artifactId>mssql-jdbc</artifactId>
|
||||
<version>6.4.0.jre8</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>dingtalk</artifactId>
|
||||
<version>2.2.41</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.ruoyi;
|
||||
|
||||
import org.apache.poi.openxml4j.util.ZipSecureFile;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@ -20,7 +21,13 @@ import org.springframework.cache.annotation.EnableCaching;
|
||||
@MapperScan("com.ruoyi.**.mapper")
|
||||
@EnableCaching
|
||||
public class RuoYiApplication {
|
||||
static {
|
||||
// 全局放宽,启动时执行一次即可
|
||||
ZipSecureFile.setMaxFileCount(100000);
|
||||
ZipSecureFile.setMinInflateRatio(0.005);
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
|
||||
System.setProperty("spring.devtools.restart.enabled", "false");
|
||||
SpringApplication application = new SpringApplication(RuoYiApplication.class);
|
||||
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||
|
||||
@ -62,26 +62,12 @@ spring:
|
||||
url: jdbc:mysql://192.168.5.121:3306/item_retrieval_salve?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
username: root
|
||||
password: root
|
||||
# oracle:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: oracle.jdbc.OracleDriver
|
||||
# url: jdbc:oracle:thin:@//localhost:1521/XE
|
||||
# username: ROOT
|
||||
# password: root
|
||||
# hikari:
|
||||
# connectionTestQuery: SELECT 1 FROM DUAL
|
||||
# postgres:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: org.postgresql.Driver
|
||||
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
|
||||
# username: root
|
||||
# password: root
|
||||
# sqlserver:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
|
||||
# username: SA
|
||||
# password: root
|
||||
sqlserver:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
url: jdbc:sqlserver://192.168.5.8:1433;databaseName=AIS20241010133631;encrypt=false;trustServerCertificate=true
|
||||
username: sa
|
||||
password: 1a!
|
||||
hikari:
|
||||
# 最大连接池数量
|
||||
maxPoolSize: 20
|
||||
|
||||
@ -52,7 +52,7 @@ spring:
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||
#url: jdbc:mysql://localhost:3306/item_retrieval-evo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
# url: jdbc:mysql://localhost:3306/item_retrieval-evo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
url: jdbc:mysql://192.168.5.121:3306/item_retrieval-evo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
username: root
|
||||
password: root
|
||||
@ -61,10 +61,16 @@ spring:
|
||||
lazy: true
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
# url: jdbc:mysql://localhost:3306/item_retrieval_salve?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
#url: jdbc:mysql://localhost:3306/item_retrieval_salve?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
url: jdbc:mysql://192.168.5.121:3306/item_retrieval_salve?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||
username: root
|
||||
password: root
|
||||
sqlserver:
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
url: jdbc:sqlserver://192.168.5.8:1433;databaseName=AIS20241010133631;encrypt=false;trustServerCertificate=true
|
||||
username: sa
|
||||
password: 1a!
|
||||
# oracle:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: oracle.jdbc.OracleDriver
|
||||
|
||||
@ -289,3 +289,5 @@ management:
|
||||
show-details: ALWAYS
|
||||
logfile:
|
||||
external-file: ./logs/sys-console.log
|
||||
dingtalk:
|
||||
|
||||
|
||||
@ -121,6 +121,11 @@
|
||||
<groupId>org.assertj</groupId>
|
||||
<artifactId>assertj-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.microsoft.sqlserver</groupId>
|
||||
<artifactId>mssql-jdbc</artifactId>
|
||||
<version>12.4.2.jre8</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
@ -21,6 +21,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.common.utils.JdUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
@ -212,7 +213,7 @@ public class BomDetailsController extends BaseController {
|
||||
*/
|
||||
|
||||
@Log(title = "明细导入", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("system:details:import")
|
||||
@SaCheckPermission("system:details:importData")
|
||||
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
|
||||
List<BomDetailsVo> bomDetailsVos = ExcelUtil.importExcel(file.getInputStream(), BomDetailsVo.class);
|
||||
@ -1778,8 +1779,10 @@ public class BomDetailsController extends BaseController {
|
||||
// 创建SubHeadEntity对象,并加入Model
|
||||
JsonObject subHeadEntity = new JsonObject();
|
||||
model.add("SubHeadEntity", subHeadEntity);
|
||||
|
||||
subHeadEntity.addProperty("FErpClsID", states);
|
||||
if (bomDetails1.getWareHouse().contains("伊特")){
|
||||
subHeadEntity.addProperty("FErpClsID", "2");
|
||||
}
|
||||
subHeadEntity.addProperty("FErpClsID", "1");
|
||||
subHeadEntity.addProperty("FFeatureItem", "1");
|
||||
|
||||
// 创建FCategoryID对象,并加入SubHeadEntity
|
||||
@ -2076,7 +2079,7 @@ public class BomDetailsController extends BaseController {
|
||||
|
||||
// 创建FBOMUnitId对象,并加入SubHeadEntity5
|
||||
JsonObject fBOMUnitId = new JsonObject();
|
||||
switch (bomDetails1.getWareHouse()) {
|
||||
switch (bomDetails1.getRemarks()) {
|
||||
case "把":
|
||||
fBaseUnitId.addProperty("FNumber", "002");
|
||||
break;
|
||||
@ -2185,30 +2188,57 @@ public class BomDetailsController extends BaseController {
|
||||
@Log(title = "导入电气bom", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("system:details:importElectricalBom")
|
||||
@PostMapping(value = "/importElectricalBom", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public void importElectricalBom(@RequestPart("file") MultipartFile file) throws Exception {
|
||||
List<ElectricalMaterialBomVO> electricalMaterialBomVOS = ExcelUtil.importExcel(file.getInputStream(), ElectricalMaterialBomVO.class);
|
||||
List<BomDetails> list = new ArrayList<>();
|
||||
for (ElectricalMaterialBomVO bomVO : electricalMaterialBomVOS) {
|
||||
BomDetails bomDetails = new BomDetails();
|
||||
bomDetails.setTotalWeight(bomVO.getProductionOrderNo());
|
||||
bomDetails.setFNumber(bomVO.getParentDrawingNo());
|
||||
bomDetails.setFName(bomVO.getParentPart());
|
||||
bomDetails.setPartNumber(bomVO.getDrawingNo());
|
||||
bomDetails.setName(bomVO.getDrawingName());
|
||||
bomDetails.setMaterial(bomVO.getModel());//
|
||||
bomDetails.setWareHouse(bomVO.getBrand());
|
||||
bomDetails.setStats("外购");
|
||||
String quantity = bomVO.getQuantity().toString();
|
||||
bomDetails.setQuantity(quantity);
|
||||
bomDetails.setRemarks(bomVO.getUnit());
|
||||
bomDetails.setUpdateTime(new Date());
|
||||
bomDetails.setBomType("1");//0 是生产bom 1 是电气bom
|
||||
list.add(bomDetails);
|
||||
}
|
||||
List<BomDetailsVo> bomDetailsVos1 = BeanUtil.copyToList(list, BomDetailsVo.class);
|
||||
List<BomDetails> bomDetails = saveBomDetails(bomDetailsVos1);
|
||||
bomDetailsMapper.insertBatch(bomDetails);
|
||||
public R<Map<String, Object>> importElectricalBom(@RequestPart("file") MultipartFile file) {
|
||||
Map<String, Object> resp = new HashMap<>();
|
||||
try {
|
||||
if (file == null || file.isEmpty() || StringUtils.isEmpty(file.getOriginalFilename())) {
|
||||
return R.fail("请选择有效的Excel文件");
|
||||
}
|
||||
String filename = file.getOriginalFilename();
|
||||
String suffix = filename.substring(filename.lastIndexOf('.') + 1).toLowerCase();
|
||||
if (!("xls".equals(suffix) || "xlsx".equals(suffix))) {
|
||||
return R.fail("仅支持Excel文件(xls/xlsx)");
|
||||
}
|
||||
|
||||
List<ElectricalMaterialBomVO> rows = ExcelUtil.importExcel(file.getInputStream(), ElectricalMaterialBomVO.class);
|
||||
int total = rows != null ? rows.size() : 0;
|
||||
List<BomDetails> list = new ArrayList<>();
|
||||
if (rows != null) {
|
||||
for (ElectricalMaterialBomVO bomVO : rows) {
|
||||
BomDetails bomDetails = new BomDetails();
|
||||
bomDetails.setTotalWeight(bomVO.getProductionOrderNo());
|
||||
bomDetails.setFNumber(bomVO.getParentDrawingNo());
|
||||
bomDetails.setFName(bomVO.getParentPart());
|
||||
bomDetails.setPartNumber(bomVO.getDrawingNo());
|
||||
bomDetails.setName(bomVO.getDrawingName());
|
||||
bomDetails.setMaterial(bomVO.getModel());
|
||||
bomDetails.setWareHouse(bomVO.getBrand());
|
||||
bomDetails.setStats("外购");
|
||||
bomDetails.setQuantity(bomVO.getQuantity() == null ? null : bomVO.getQuantity().toString());
|
||||
bomDetails.setRemarks(bomVO.getUnit());
|
||||
bomDetails.setUpdateTime(new Date());
|
||||
bomDetails.setQuantity(String.valueOf(bomVO.getQuantity()));
|
||||
bomDetails.setDenominator(1.0);
|
||||
bomDetails.setBomType("1");
|
||||
list.add(bomDetails);
|
||||
}
|
||||
}
|
||||
|
||||
List<BomDetailsVo> vos = BeanUtil.copyToList(list, BomDetailsVo.class);
|
||||
List<BomDetails> toInsert = saveBomDetails(vos);
|
||||
boolean saved = false;
|
||||
if (!toInsert.isEmpty()) {
|
||||
saved = bomDetailsMapper.insertBatch(toInsert);
|
||||
}
|
||||
|
||||
resp.put("totalRows", total);
|
||||
resp.put("parsedRows", list.size());
|
||||
resp.put("savedRows", saved);
|
||||
resp.put("message", "导入完成");
|
||||
return R.ok(resp);
|
||||
} catch (Exception e) {
|
||||
return R.fail("导入失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// 保存到 BomDetails 表中
|
||||
@ -2232,7 +2262,7 @@ public class BomDetailsController extends BaseController {
|
||||
}
|
||||
return materialsToAdd;
|
||||
}
|
||||
@Log(title = "推送工艺工序")
|
||||
@Log(title = "查看BOM上传日志")
|
||||
@SaCheckPermission("system:route:viewGetBomUploadStatus")
|
||||
@PostMapping("/viewGetBomUploadStatus")
|
||||
public R<String> viewGetBomUploadStatus(@RequestParam String rooteProdet) {
|
||||
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec100rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec100rBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec100rService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 100R设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec100r")
|
||||
public class DeviceSpec100rController extends BaseController {
|
||||
|
||||
private final IDeviceSpec100rService iDeviceSpec100rService;
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec100r:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec100rVo> list(DeviceSpec100rBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec100rService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出100R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec100r:export")
|
||||
@Log(title = "100R设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec100rBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec100rVo> list = iDeviceSpec100rService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "100R设备规格参数", DeviceSpec100rVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取100R设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec100r:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec100rVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec100rService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增100R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec100r:add")
|
||||
@Log(title = "100R设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec100rBo bo) {
|
||||
return toAjax(iDeviceSpec100rService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改100R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec100r:edit")
|
||||
@Log(title = "100R设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec100rBo bo) {
|
||||
return toAjax(iDeviceSpec100rService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除100R设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec100r:remove")
|
||||
@Log(title = "100R设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec100rService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec125rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec125rBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec125rService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 125R设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec125r")
|
||||
public class DeviceSpec125rController extends BaseController {
|
||||
|
||||
private final IDeviceSpec125rService iDeviceSpec125rService;
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec125r:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec125rVo> list(DeviceSpec125rBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec125rService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出125R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec125r:export")
|
||||
@Log(title = "125R设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec125rBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec125rVo> list = iDeviceSpec125rService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "125R设备规格参数", DeviceSpec125rVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取125R设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec125r:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec125rVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec125rService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增125R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec125r:add")
|
||||
@Log(title = "125R设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec125rBo bo) {
|
||||
return toAjax(iDeviceSpec125rService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改125R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec125r:edit")
|
||||
@Log(title = "125R设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec125rBo bo) {
|
||||
return toAjax(iDeviceSpec125rService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除125R设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec125r:remove")
|
||||
@Log(title = "125R设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec125rService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec150rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec150rBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec150rService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 150R设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec150r")
|
||||
public class DeviceSpec150rController extends BaseController {
|
||||
|
||||
private final IDeviceSpec150rService iDeviceSpec150rService;
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec150r:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec150rVo> list(DeviceSpec150rBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec150rService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出150R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec150r:export")
|
||||
@Log(title = "150R设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec150rBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec150rVo> list = iDeviceSpec150rService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "150R设备规格参数", DeviceSpec150rVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取150R设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec150r:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec150rVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec150rService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增150R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec150r:add")
|
||||
@Log(title = "150R设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec150rBo bo) {
|
||||
return toAjax(iDeviceSpec150rService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改150R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec150r:edit")
|
||||
@Log(title = "150R设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec150rBo bo) {
|
||||
return toAjax(iDeviceSpec150rService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除150R设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec150r:remove")
|
||||
@Log(title = "150R设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec150rService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30dVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec30dBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec30dService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 30D设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec30d")
|
||||
public class DeviceSpec30dController extends BaseController {
|
||||
|
||||
private final IDeviceSpec30dService iDeviceSpec30dService;
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D 列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec30d:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec30dVo> list(DeviceSpec30dBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec30dService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出device_spec_30D 列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec30d:export")
|
||||
@Log(title = "device_spec_30D ", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec30dBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec30dVo> list = iDeviceSpec30dService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "device_spec_30D ", DeviceSpec30dVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取device_spec_30D 详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec30d:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec30dVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec30dService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增device_spec_30D
|
||||
*/
|
||||
@SaCheckPermission("system:spec30d:add")
|
||||
@Log(title = "device_spec_30D ", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec30dBo bo) {
|
||||
return toAjax(iDeviceSpec30dService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改device_spec_30D
|
||||
*/
|
||||
@SaCheckPermission("system:spec30d:edit")
|
||||
@Log(title = "device_spec_30D ", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec30dBo bo) {
|
||||
return toAjax(iDeviceSpec30dService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除device_spec_30D
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec30d:remove")
|
||||
@Log(title = "device_spec_30D ", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec30dService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30sVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec30sBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec30sService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 30S设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec30s")
|
||||
public class DeviceSpec30sController extends BaseController {
|
||||
|
||||
private final IDeviceSpec30sService iDeviceSpec30sService;
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec30s:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec30sVo> list(DeviceSpec30sBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec30sService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出30S设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec30s:export")
|
||||
@Log(title = "30S设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec30sBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec30sVo> list = iDeviceSpec30sService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "30S设备规格参数", DeviceSpec30sVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取30S设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec30s:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec30sVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec30sService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增30S设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec30s:add")
|
||||
@Log(title = "30S设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec30sBo bo) {
|
||||
return toAjax(iDeviceSpec30sService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改30S设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec30s:edit")
|
||||
@Log(title = "30S设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec30sBo bo) {
|
||||
return toAjax(iDeviceSpec30sService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除30S设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec30s:remove")
|
||||
@Log(title = "30S设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec30sService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec40rBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec40rService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 40R设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec40r")
|
||||
public class DeviceSpec40rController extends BaseController {
|
||||
|
||||
private final IDeviceSpec40rService iDeviceSpec40rService;
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec40r:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec40rVo> list(DeviceSpec40rBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec40rService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出40R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec40r:export")
|
||||
@Log(title = "40R设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec40rBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec40rVo> list = iDeviceSpec40rService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "40R设备规格参数", DeviceSpec40rVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取40R设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec40r:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec40rVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec40rService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增40R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec40r:add")
|
||||
@Log(title = "40R设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec40rBo bo) {
|
||||
return toAjax(iDeviceSpec40rService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改40R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec40r:edit")
|
||||
@Log(title = "40R设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec40rBo bo) {
|
||||
return toAjax(iDeviceSpec40rService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除40R设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec40r:remove")
|
||||
@Log(title = "40R设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec40rService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40sVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec40sBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec40sService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 40S设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec40s")
|
||||
public class DeviceSpec40sController extends BaseController {
|
||||
|
||||
private final IDeviceSpec40sService iDeviceSpec40sService;
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec40s:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec40sVo> list(DeviceSpec40sBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec40sService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出40S设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec40s:export")
|
||||
@Log(title = "40S设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec40sBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec40sVo> list = iDeviceSpec40sService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "40S设备规格参数", DeviceSpec40sVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取40S设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec40s:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec40sVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec40sService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增40S设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec40s:add")
|
||||
@Log(title = "40S设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec40sBo bo) {
|
||||
return toAjax(iDeviceSpec40sService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改40S设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec40s:edit")
|
||||
@Log(title = "40S设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec40sBo bo) {
|
||||
return toAjax(iDeviceSpec40sService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除40S设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec40s:remove")
|
||||
@Log(title = "40S设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec40sService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec60rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec60rBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec60rService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 60R设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec60r")
|
||||
public class DeviceSpec60rController extends BaseController {
|
||||
|
||||
private final IDeviceSpec60rService iDeviceSpec60rService;
|
||||
|
||||
/**
|
||||
* 查询60R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec60r:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec60rVo> list(DeviceSpec60rBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec60rService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出60R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec60r:export")
|
||||
@Log(title = "60R设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec60rBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec60rVo> list = iDeviceSpec60rService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "60R设备规格参数", DeviceSpec60rVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取60R设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec60r:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec60rVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec60rService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增60R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec60r:add")
|
||||
@Log(title = "60R设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec60rBo bo) {
|
||||
return toAjax(iDeviceSpec60rService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改60R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec60r:edit")
|
||||
@Log(title = "60R设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec60rBo bo) {
|
||||
return toAjax(iDeviceSpec60rService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除60R设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec60r:remove")
|
||||
@Log(title = "60R设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec60rService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec80rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec80rBo;
|
||||
import com.ruoyi.system.service.IDeviceSpec80rService;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 80R设备规格参数
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/spec80r")
|
||||
public class DeviceSpec80rController extends BaseController {
|
||||
|
||||
private final IDeviceSpec80rService iDeviceSpec80rService;
|
||||
|
||||
/**
|
||||
* 查询80R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec80r:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<DeviceSpec80rVo> list(DeviceSpec80rBo bo, PageQuery pageQuery) {
|
||||
return iDeviceSpec80rService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出80R设备规格参数列表
|
||||
*/
|
||||
@SaCheckPermission("system:spec80r:export")
|
||||
@Log(title = "80R设备规格参数", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(DeviceSpec80rBo bo, HttpServletResponse response) {
|
||||
List<DeviceSpec80rVo> list = iDeviceSpec80rService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "80R设备规格参数", DeviceSpec80rVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取80R设备规格参数详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("system:spec80r:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<DeviceSpec80rVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(iDeviceSpec80rService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增80R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec80r:add")
|
||||
@Log(title = "80R设备规格参数", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody DeviceSpec80rBo bo) {
|
||||
return toAjax(iDeviceSpec80rService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改80R设备规格参数
|
||||
*/
|
||||
@SaCheckPermission("system:spec80r:edit")
|
||||
@Log(title = "80R设备规格参数", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DeviceSpec80rBo bo) {
|
||||
return toAjax(iDeviceSpec80rService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除80R设备规格参数
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("system:spec80r:remove")
|
||||
@Log(title = "80R设备规格参数", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(iDeviceSpec80rService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
}
|
||||
@ -1,14 +1,17 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.kingdee.bos.webapi.entity.SuccessEntity;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
@ -17,14 +20,17 @@ import com.ruoyi.common.excel.ExcelResult;
|
||||
import com.ruoyi.common.utils.JdUtils;
|
||||
import com.ruoyi.system.domain.EleMaterials;
|
||||
import com.ruoyi.system.domain.ImMaterial;
|
||||
import com.ruoyi.system.domain.PartCost;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.system.domain.vo.ExcelVo;
|
||||
import com.ruoyi.system.mapper.ImMaterialMapper;
|
||||
import com.ruoyi.system.mapper.PartCostMapper;
|
||||
import com.ruoyi.system.runner.JdUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.MediaType;
|
||||
@ -58,6 +64,7 @@ public class EleMaterialsController extends BaseController {
|
||||
private final IEleMaterialsService iEleMaterialsService;
|
||||
private final ImMaterialMapper materialMapper;
|
||||
private static final Logger log = LoggerFactory.getLogger(EleMaterialsController.class);
|
||||
private final PartCostMapper partCostMapper;
|
||||
|
||||
/**
|
||||
* 查询电器物料管理列表
|
||||
@ -540,4 +547,35 @@ public class EleMaterialsController extends BaseController {
|
||||
return R.ok("更新成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Log(title = "获取金蝶成本价", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("system:materials:importDataTime")
|
||||
@PostMapping(value = "/importMAMA", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importMAMA(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
log.info("读取文件名: " + originalFilename);
|
||||
ExcelResult<ChengBeDTO> result = ExcelUtil.importExcelSheet1(file.getInputStream(), ChengBeDTO.class, true);
|
||||
List<ChengBeDTO> list = result.getList();
|
||||
List<PartCost> costList = partCostMapper.selectList();
|
||||
Map<String, BigDecimal> costMap = costList.stream()
|
||||
.collect(Collectors.toMap(PartCost::getMaterialCode, PartCost::getCostPrice, (a, b) -> a));
|
||||
List<ChengBeDTO> chengBeDTOS = new ArrayList<>(list.size());
|
||||
for (ChengBeDTO dto : list) {
|
||||
BigDecimal price = costMap.get(dto.getDrawingNo());
|
||||
if (price != null) {
|
||||
dto.setCostUnitPrice(price);
|
||||
}
|
||||
chengBeDTOS.add(dto);
|
||||
}
|
||||
String ts = DateUtil.format(new Date(), "yyyyMMddHHmmss");
|
||||
String fileName = "成本数据_" + ts + ".xlsx";
|
||||
String filePath = FileUtils.getTempDirectoryPath() + File.separator + fileName;
|
||||
EasyExcel.write(filePath, ChengBeDTO.class)
|
||||
.sheet("成本数据")
|
||||
.doWrite(chengBeDTOS);
|
||||
log.info("成本数据已写入本地Excel: {}", filePath);
|
||||
return R.ok("更新成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -87,10 +87,13 @@ public class FigureSaveController extends BaseController {
|
||||
@SaCheckPermission("system:save:edit")
|
||||
@Log(title = "外购件临时", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody FigureSaveBo bo) {
|
||||
return toAjax(iFigureSaveService.updateByBo(bo));
|
||||
}
|
||||
@PutMapping()
|
||||
public R<Void> edit(@RequestBody @Validated FigureSaveBo bo) {
|
||||
if (bo.getId() == null) {
|
||||
return toAjax(iFigureSaveService.insertByBo(bo));
|
||||
}
|
||||
return toAjax(iFigureSaveService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除外购件临时
|
||||
|
||||
@ -2,6 +2,7 @@ package com.ruoyi.system.controller;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
@ -22,16 +23,13 @@ import com.ruoyi.common.utils.HttpRequestUtil;
|
||||
import com.ruoyi.common.utils.WxRobotUtil;
|
||||
import com.ruoyi.common.poi.ExcelTemplateProc;
|
||||
import com.ruoyi.common.poi.DynamicDataMapping;
|
||||
import com.ruoyi.system.domain.ProcessRoute;
|
||||
import com.ruoyi.system.domain.SafetyStock;
|
||||
import com.ruoyi.system.domain.WlStockData;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.system.domain.vo.WlStockDataVo;
|
||||
import com.ruoyi.system.mapper.WlStockDataMapper;
|
||||
import com.ruoyi.system.runner.JdUtil;
|
||||
import com.ruoyi.system.service.IProcessRouteService;
|
||||
import com.ruoyi.system.service.ISafetyStockService;
|
||||
import com.ruoyi.system.service.IWeComService;
|
||||
import com.ruoyi.system.service.*;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@ -59,8 +57,6 @@ import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.vo.KingdeeWorkCenterDataVo;
|
||||
import com.ruoyi.system.domain.bo.KingdeeWorkCenterDataBo;
|
||||
import com.ruoyi.system.service.IKingdeeWorkCenterDataService;
|
||||
import java.util.stream.Collectors;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
@ -85,11 +81,20 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
private final WlStockDataMapper baseMapper;
|
||||
private final ISafetyStockService iSafetyStockService;
|
||||
private final IWeComService iWeComService;
|
||||
private final MssqlQueryService mssqlQueryService;
|
||||
@Autowired
|
||||
IProcessRouteService iProcessRouteService;
|
||||
private static final String QUALITY_KANBAN_URL = "http://192.168.5.8/K3Cloud/DataBoard/QualityKanBan/index.html#/";
|
||||
|
||||
|
||||
/**
|
||||
* 获取金蝶生产看板数据 (SQL Server直连)
|
||||
*/
|
||||
@GetMapping("/produceData")
|
||||
public R<List<KingdeeWorkCenterDataBo>> produceData(@RequestParam(required = false) String workCenter) {
|
||||
return R.ok(mssqlQueryService.getKingdeeProduceData(workCenter));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询金蝶工段数据列表
|
||||
*/
|
||||
@ -158,7 +163,7 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
/**
|
||||
* 获取金蝶相关工段数据
|
||||
*/
|
||||
@SaCheckPermission("system:workCenterData:remove")
|
||||
@SaCheckPermission("system:workCenterData:getKingdeeWorkCenterData")
|
||||
@Log(title = "金蝶工段数据提前2天", businessType = BusinessType.DELETE)
|
||||
@PostMapping("/getKingdeeWorkCenterData")
|
||||
public R<List<KingdeeWorkCenterDataBo>> getKingdeeWorkCenterData(@RequestParam(value = "workCenter") String workCenter) {
|
||||
@ -208,9 +213,9 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
data.setMoOrderNo(item.getString("MoOrderNo"));
|
||||
data.setMaterialNumber(item.getString("FMaterialNumber"));
|
||||
data.setMaterialName(item.getString("FMaterialName"));
|
||||
data.setOperQty(item.getLong("FOperQty"));
|
||||
data.setTransInQty(item.getLong("FTransInQty"));
|
||||
data.setTransOutQty(item.getLong("FTransOutQty"));
|
||||
data.setOperQty(item.getBigDecimal("FOperQty"));
|
||||
data.setTransInQty(item.getBigDecimal("FTransInQty"));
|
||||
data.setTransOutQty(item.getBigDecimal("FTransOutQty"));
|
||||
data.setMaterialStatus(item.getString("FMaterialStatus"));
|
||||
data.setOperNumber(item.getString("FOperNumber"));
|
||||
data.setProcessName(item.getString("FProcessName"));
|
||||
@ -240,7 +245,7 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
}
|
||||
|
||||
@Log(title = "获取金蝶工段数据模板2")
|
||||
@SaCheckPermission("system:route:sendMsg")
|
||||
@SaCheckPermission("system:route:getMassage")
|
||||
@PostMapping("/sendMsg")
|
||||
public R<Void> getMassage(@RequestParam String workCenter) {
|
||||
String robotId = "4d2f037d-0cee-493a-a4ff-1758f67b8069";
|
||||
@ -305,8 +310,7 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
parameter.addProperty("FWorkCenterName", "委外中心");
|
||||
Object[] parameters = new Object[]{parameter.toString()};
|
||||
String execute = client.execute(
|
||||
"Ljint.Kingdee.YiTe.KanBan.WebApi.ProduceWebApi.ExecuteService,Ljint.Kingdee.YiTe.KanBan.WebApi",
|
||||
parameters);
|
||||
"Ljint.Kingdee.YiTe.KanBan.WebApi.ProduceWebApi.ExecuteService,Ljint.Kingdee.YiTe.KanBan.WebApi", parameters);
|
||||
|
||||
// 解析响应
|
||||
JSONObject response = JSONObject.parseObject(execute);
|
||||
@ -406,10 +410,18 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
DateUtil.format(new Date(), "yyyyMMddHHmmss"));
|
||||
String filePath = FileUtils.getTempDirectoryPath() + File.separator + fileName;
|
||||
|
||||
// 使用EasyExcel写入数据
|
||||
EasyExcel.write(filePath, KingdeeWorkCenterDataVo.class)
|
||||
.sheet("工段数据")
|
||||
.doWrite(BeanUtil.copyToList(dataList, KingdeeWorkCenterDataVo.class));
|
||||
// 使用模板+动态数据映射写入数据
|
||||
String templatePath = "jpg/工段数据模板.xlsx";
|
||||
Map<String, Object> staticDataMap = new HashMap<>();
|
||||
staticDataMap.put("workCenter", workCenter);
|
||||
staticDataMap.put("generatedAt", currentTime);
|
||||
|
||||
List<DynamicDataMapping> dynamicDataMappingList = new ArrayList<>();
|
||||
List<KingdeeWorkCenterDataVo> voList = BeanUtil.copyToList(dataList, KingdeeWorkCenterDataVo.class);
|
||||
List<Map<String, Object>> workCenterData = convertWorkCenterToMapList(voList, workCenter);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("WorkCenterData", workCenterData));
|
||||
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
@ -444,12 +456,12 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
@PostMapping("/getKingdeeDelayData")
|
||||
public R<List<KingdeeWorkCenterDataBo>> getKingdeeDelayData(@RequestParam(value = "workCenter") String workCenter) {
|
||||
try {
|
||||
K3CloudApi client = new K3CloudApi();
|
||||
/* K3CloudApi client = new K3CloudApi();
|
||||
JsonObject parameter = new JsonObject();
|
||||
List<KingdeeWorkCenterDataBo> kingdeeWorkCenterDataVos = new ArrayList<>();
|
||||
parameter.addProperty("FWorkCenterName", workCenter);
|
||||
Object[] parameters = new Object[]{parameter.toString()};
|
||||
String execute = client.execute("Ljint.Kingdee.YiTe.KanBan.WebApi.ProduceWebApi.ExecuteService,Ljint.Kingdee.YiTe.KanBan.WebApi121303", parameters);
|
||||
String execute = client.execute("Ljint.Kingdee.YiTe.KanBan.WebApi.ProduceWebApi.ExecuteService,Ljint.Kingdee.YiTe.KanBan.WebApi", parameters);
|
||||
log.info("金蝶接口:" + workCenter + "===> 返回数据: {}", execute);
|
||||
|
||||
// 解析响应
|
||||
@ -457,24 +469,22 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
if (!"true".equals(response.getString("IsSuccess"))) {
|
||||
String errorMsg = response.getString("Message");
|
||||
return R.fail("获取工段数据失败:" + errorMsg);
|
||||
}
|
||||
}*/
|
||||
// 获取明天的日期字符串 (格式: yyyy-MM-dd)
|
||||
String yesterday = DateUtil.format(DateUtil.yesterday(), "yyyy-MM-dd");
|
||||
|
||||
// 获取数据数组
|
||||
/* // 获取数据数组
|
||||
JSONArray dataArray = response.getJSONArray("data");
|
||||
if (dataArray == null || dataArray.isEmpty()) {
|
||||
return R.ok("无数据");
|
||||
}
|
||||
|
||||
for (int i = 0; i < dataArray.size(); i++) {
|
||||
JSONArray queryList = dataArray.getJSONObject(i).getJSONArray("QueryList");
|
||||
for (int j = 0; j < queryList.size(); j++) {
|
||||
JSONObject item = queryList.getJSONObject(j);
|
||||
|
||||
*/
|
||||
List<KingdeeWorkCenterDataBo> kingdeeProduceData = mssqlQueryService.getKingdeeProduceData(workCenter);
|
||||
List<KingdeeWorkCenterDataBo> kingdeeWorkCenterDataVos = new ArrayList<>();
|
||||
for (KingdeeWorkCenterDataBo kingnum : kingdeeProduceData) {
|
||||
// 获取计划结束时间并转换为日期格式进行比较
|
||||
String planFinishTime = item.getString("FOperPlanFinishTime2");
|
||||
String delayDaysStr = item.getString("FDelayDays");
|
||||
String planFinishTime = kingnum.getOperPlanFinishTime2();
|
||||
String delayDaysStr = kingnum.getDelayDays();
|
||||
Long delayDays = null;
|
||||
if (delayDaysStr != null && !delayDaysStr.isEmpty()) {
|
||||
try {
|
||||
@ -485,34 +495,20 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
}
|
||||
if (delayDays != null && delayDays > 0) {
|
||||
// 只处理延期天数大于0的工单
|
||||
long transOutQty = item.getLong("FTransOutQty");
|
||||
BigDecimal transOutQty = kingnum.getTransOutQty();
|
||||
// 转入
|
||||
long transInQty = item.getLong("FTransInQty");
|
||||
BigDecimal transInQty = kingnum.getTransInQty();
|
||||
//转出小于转入数量
|
||||
if (transOutQty < transInQty) {
|
||||
// 转换为实体对象
|
||||
KingdeeWorkCenterDataBo data = new KingdeeWorkCenterDataBo();
|
||||
data.setWorkCenter(workCenter);
|
||||
data.setMoBillNo(item.getString("MoBillNo"));
|
||||
data.setMoOrderNo(item.getString("MoOrderNo"));
|
||||
data.setMaterialNumber(item.getString("FMaterialNumber"));
|
||||
data.setMaterialName(item.getString("FMaterialName"));
|
||||
data.setOperQty(item.getLong("FOperQty"));
|
||||
data.setTransInQty(transInQty);
|
||||
data.setTransOutQty(transOutQty);
|
||||
data.setOperNumber(item.getString("FOperNumber"));
|
||||
data.setProcessName(item.getString("FProcessName"));
|
||||
data.setOperPlanStartTime(item.getString("FOperPlanStartTime2"));
|
||||
data.setOperPlanFinishTime(planFinishTime);
|
||||
data.setDelayDays(item.getString("FDelayDays"));
|
||||
kingdeeWorkCenterDataVos.add(data);
|
||||
Boolean b = iKingdeeWorkCenterDataService.insertByBo(data);
|
||||
if (transOutQty.compareTo( transInQty)<0) {
|
||||
|
||||
kingdeeWorkCenterDataVos.add(kingnum);
|
||||
Boolean b = iKingdeeWorkCenterDataService.insertByBo(kingnum);
|
||||
if (!b) {
|
||||
return R.fail("保存工段数据失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (kingdeeWorkCenterDataVos.isEmpty()) {
|
||||
@ -546,7 +542,6 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
for (String workCenter : workCenters) {
|
||||
try {
|
||||
R<List<KingdeeWorkCenterDataBo>> result = getKingdeeDelayData(workCenter);
|
||||
List<KingdeeWorkCenterDataBo> data = result.getData();
|
||||
if (R.isError(result) || CollUtil.isEmpty(result.getData())) {
|
||||
markdownMsg.append("- ").append(workCenter).append(":<font color=\"comment\">无数据</font>\n");
|
||||
continue;
|
||||
@ -561,10 +556,18 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
DateUtil.format(new Date(), "yyyyMMddHHmmss"));
|
||||
String filePath = FileUtils.getTempDirectoryPath() + File.separator + fileName;
|
||||
|
||||
// 使用EasyExcel写入数据
|
||||
EasyExcel.write(filePath, KingdeeWorkCenterDataVo.class)
|
||||
.sheet("工段数据")
|
||||
.doWrite(BeanUtil.copyToList(dataList, KingdeeWorkCenterDataVo.class));
|
||||
// 使用模板+动态数据映射写入延期数据
|
||||
String templatePath = "jpg/延期工段数据模板.xlsx";
|
||||
Map<String, Object> staticDataMap = new HashMap<>();
|
||||
staticDataMap.put("workCenter", workCenter);
|
||||
staticDataMap.put("generatedAt", currentTime);
|
||||
|
||||
List<DynamicDataMapping> dynamicDataMappingList = new ArrayList<>();
|
||||
List<KingdeeWorkCenterDataVo> voList = BeanUtil.copyToList(dataList, KingdeeWorkCenterDataVo.class);
|
||||
List<Map<String, Object>> workCenterData = convertWorkCenterToMapList(voList, workCenter);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("WorkCenterData", workCenterData));
|
||||
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
@ -648,10 +651,17 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
String fileName = String.format("%s安全预警数据_%s.xlsx", "企标", DateUtil.format(new Date(), "yyyyMMddHHmmss"));
|
||||
String filePath = FileUtils.getTempDirectoryPath() + File.separator + fileName;
|
||||
|
||||
// 使用EasyExcel写入数据
|
||||
EasyExcel.write(filePath, WlStockDataVo.class)
|
||||
.sheet("工段数据")
|
||||
.doWrite(BeanUtil.copyToList(safetyStocks, WlStockDataVo.class));
|
||||
// 使用模板+动态数据映射写入安全库存数据
|
||||
String templatePath = "jpg/安全库存数据模板.xlsx";
|
||||
Map<String, Object> staticDataMap = new HashMap<>();
|
||||
staticDataMap.put("generatedAt", DateUtil.format(new Date(), "yyyy年MM月dd日 HH:mm:ss"));
|
||||
|
||||
List<DynamicDataMapping> dynamicDataMappingList = new ArrayList<>();
|
||||
List<WlStockDataVo> voList = BeanUtil.copyToList(safetyStocks, WlStockDataVo.class);
|
||||
List<Map<String, Object>> safetyData = convertSafetyStockToMapList(voList);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("SafetyStockData", safetyData));
|
||||
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, filePath, staticDataMap, dynamicDataMappingList);
|
||||
|
||||
// 发送Excel文件
|
||||
File excelFile = new File(filePath);
|
||||
@ -673,6 +683,57 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> convertWorkCenterToMapList(List<KingdeeWorkCenterDataVo> data, String workCenter) {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (KingdeeWorkCenterDataVo vo : data) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("workCenter", workCenter);
|
||||
map.put("id", vo.getId());
|
||||
map.put("moBillNo", vo.getMoBillNo());
|
||||
map.put("moOrderNo", vo.getMoOrderNo());
|
||||
map.put("materialNumber", vo.getMaterialNumber());
|
||||
map.put("materialName", vo.getMaterialName());
|
||||
map.put("operQty", vo.getOperQty());
|
||||
map.put("transInQty", vo.getTransInQty());
|
||||
map.put("transOutQty", vo.getTransOutQty());
|
||||
map.put("materialStatus", vo.getMaterialStatus());
|
||||
map.put("operNumber", vo.getOperNumber());
|
||||
map.put("processName", vo.getProcessName());
|
||||
map.put("operPlanStartTime", vo.getOperPlanStartTime2());
|
||||
map.put("operPlanFinishTime", vo.getOperPlanFinishTime2());
|
||||
map.put("FReportQty", vo.getFReportQty());
|
||||
map.put("FScrapQty", vo.getFScrapQty());
|
||||
map.put("delayDays", vo.getDelayDays());
|
||||
list.add(map);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> convertSafetyStockToMapList(List<WlStockDataVo> data) {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (WlStockDataVo vo : data) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", vo.getId());
|
||||
map.put("materialCode", vo.getMaterialCode());
|
||||
map.put("materialName", vo.getMaterialName());
|
||||
map.put("documentType", vo.getDocumentType());
|
||||
map.put("requiredStock", vo.getRequiredStock());
|
||||
map.put("currentStock", vo.getCurrentStock());
|
||||
map.put("availableStock", vo.getAvailableStock());
|
||||
map.put("secAvbqty", vo.getSecAvbqty());
|
||||
map.put("productionQty", vo.getProductionQty());
|
||||
map.put("purchaseQty", vo.getPurchaseQty());
|
||||
map.put("secQty", vo.getSecQty());
|
||||
map.put("maxsafetyStock", vo.getMaxsafetyStock());
|
||||
map.put("minsafetyStock", vo.getMinsafetyStock());
|
||||
map.put("safeStatus", vo.getSafeStatus());
|
||||
map.put("wlMaterial", vo.getWlMaterial());
|
||||
map.put("triggerTime", vo.getTriggerTime());
|
||||
list.add(map);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private List<WlStockData> processMaterialGroups(List<WlStockData> originalStocks) {
|
||||
if (CollUtil.isEmpty(originalStocks)) {
|
||||
return new ArrayList<>();
|
||||
@ -875,8 +936,7 @@ public class KingdeeWorkCenterDataController extends BaseController {
|
||||
msg.append("- 采购申请单:").append(purchaseRequestList.size()).append("条\n");
|
||||
|
||||
// 生成Excel文件使用采购模板
|
||||
String fileName = String.format("采购订单和申请数据_%s.xlsx",
|
||||
DateUtil.format(new Date(), "yyyyMMddHHmmss"));
|
||||
String fileName = String.format("采购订单和申请数据_%s.xlsx",DateUtil.format(new Date(), "yyyyMMddHHmmss"));
|
||||
String filePath = FileUtils.getTempDirectoryPath() + File.separator + fileName;
|
||||
|
||||
// 准备模板数据
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.system.service.MssqlQueryService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/system/mssql")
|
||||
public class MssqlQueryController {
|
||||
|
||||
private final MssqlQueryService mssqlQueryService;
|
||||
|
||||
public MssqlQueryController(MssqlQueryService mssqlQueryService) {
|
||||
this.mssqlQueryService = mssqlQueryService;
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:mssql:query")
|
||||
@PostMapping("/query")
|
||||
public R<List<Map<String, Object>>> query(@RequestBody String sql) {
|
||||
String s = sql == null ? "" : sql.trim();
|
||||
String up = s.toUpperCase();
|
||||
if (!up.startsWith("SELECT") || up.contains(";") || up.contains("UPDATE") || up.contains("DELETE") || up.contains("INSERT") || up.contains("DROP")) {
|
||||
return R.fail("仅支持只读的 SELECT 查询,且禁止分号和写操作关键字");
|
||||
}
|
||||
try {
|
||||
List<Map<String, Object>> rows = mssqlQueryService.queryForList(s);
|
||||
return R.ok(rows);
|
||||
} catch (Exception e) {
|
||||
return R.fail("查询失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
|
||||
|
||||
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -5,10 +5,8 @@ import java.math.BigDecimal;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.ruoyi.common.excel.DefaultExcelListener;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
@ -18,26 +16,23 @@ import com.ruoyi.common.utils.file.SmbUtil;
|
||||
import com.ruoyi.common.poi.ExcelTemplateProc;
|
||||
import com.ruoyi.common.poi.DynamicDataMapping;
|
||||
import com.ruoyi.system.domain.*;
|
||||
import com.ruoyi.system.domain.bo.FigureSaveBo;
|
||||
import com.ruoyi.system.domain.dto.MaterialUseDTO;
|
||||
import com.ruoyi.system.domain.dto.ProcessRouteDTO;
|
||||
import com.ruoyi.system.domain.dto.ProcessRouteExcelDTO;
|
||||
import com.ruoyi.system.domain.dto.ProcessRoutePushResultDTO;
|
||||
import com.ruoyi.system.domain.dto.excuteDrawing.RigidChainModelDTO;
|
||||
import com.ruoyi.system.domain.vo.*;
|
||||
import com.ruoyi.system.domain.vo.BomDataVO;
|
||||
import com.ruoyi.system.mapper.ProcessOrderProMapper;
|
||||
import com.ruoyi.system.mapper.SafetyStockMapper;
|
||||
import com.ruoyi.system.runner.JdUtil;
|
||||
import com.ruoyi.system.service.*;
|
||||
import com.ruoyi.system.service.impl.ProductionOrderServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.poi.xssf.usermodel.XSSFCell;
|
||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -56,10 +51,10 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.system.domain.bo.ProcessOrderProBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||
|
||||
/**
|
||||
* 项目令号
|
||||
*
|
||||
* 生产项目
|
||||
* @author tzy
|
||||
* @date 2024-10-22
|
||||
*/
|
||||
@ -74,7 +69,9 @@ public class ProcessOrderProController extends BaseController {
|
||||
private final IMrpResultCheckService iMrpResultCheckService;
|
||||
private final ProcessOrderProMapper processOrderProMapper;
|
||||
private final IImMaterialService imMaterialService;
|
||||
private final ISafetyStockService iSafetyStockService;
|
||||
private final ISafetyStockService safetyStockService;
|
||||
private final IProcessRouteService processRouteService;
|
||||
private final SafetyStockMapper stockMapper;
|
||||
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy年MM月dd日");
|
||||
|
||||
/**
|
||||
@ -86,7 +83,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
return iProcessOrderProService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:orderPro:list")
|
||||
@SaCheckPermission("system:orderPro:processlist")
|
||||
@GetMapping("/processlist")
|
||||
public List<ProcessRoute> processList(ProcessOrderProBo bo) {
|
||||
|
||||
@ -196,16 +193,16 @@ public class ProcessOrderProController extends BaseController {
|
||||
iProcessOrderProService.batchUpdateProjectTimeRanges();
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:plan:add")
|
||||
@SaCheckPermission("system:orderPro:addProduct")
|
||||
@Log(title = "排产计划", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/addProduct")
|
||||
public R<Void> addProduct(@Validated(AddGroup.class) @RequestBody FigureSaveBo bo, @RequestBody ProcessOrderProBo orderPro) {
|
||||
iProcessOrderProService.addProduct(bo, orderPro);
|
||||
public R<Void> addProduct(@Validated(AddGroup.class) @RequestBody RigidChainModelDTO orderPro) {
|
||||
iProcessOrderProService.addProduct(orderPro);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:plan:add")
|
||||
@SaCheckPermission("system:orderPro:executDrawing")
|
||||
@Log(title = "执行出图", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/executDrawing")
|
||||
@ -214,36 +211,46 @@ public class ProcessOrderProController extends BaseController {
|
||||
return R.ok(s);
|
||||
}
|
||||
|
||||
@GetMapping("/executDrawing/progress/{id}")
|
||||
public SseEmitter executDrawingProgress(@PathVariable Long id) {
|
||||
return iProcessOrderProService.startDrawingSse(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传dwg图纸
|
||||
*
|
||||
* @param id
|
||||
* @param filePath
|
||||
* @return
|
||||
*/
|
||||
@SaCheckPermission("system:orderPro:uploadDwg")
|
||||
@Log(title = "上传dwg图纸", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/uploadDwg")
|
||||
@ResponseBody
|
||||
public R<Void> uploadContractPDF(@RequestParam("id") Integer id, @RequestParam("file") MultipartFile filePath) {
|
||||
public R<Void> uploadContractPDF(@RequestParam("ids") List<Long> ids, @RequestParam("file") MultipartFile filePath) {
|
||||
String originalFilename = filePath.getOriginalFilename();
|
||||
if (StringUtils.isEmpty(originalFilename)) {
|
||||
return R.fail("获取文件名称错误!!");
|
||||
}
|
||||
//校验文件后缀 jpg jpeg pdf 格式的文件不允许上传
|
||||
String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
|
||||
if (!"dwg".equals(suffix)) {
|
||||
String suffix = originalFilename.substring(originalFilename.lastIndexOf('.') + 1);
|
||||
if (!"dwg".equalsIgnoreCase(suffix)) {
|
||||
return R.fail("禁止非法文件上传!!");
|
||||
}
|
||||
|
||||
String reslut = iProcessOrderProService.uploadContractPDF(id, originalFilename, filePath);
|
||||
|
||||
return R.ok(reslut);
|
||||
List<String> results = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
if (id == null) {
|
||||
results.add("ID为空,已跳过");
|
||||
continue;
|
||||
}
|
||||
String res = iProcessOrderProService.uploadContractPDF(id.intValue(), originalFilename, filePath);
|
||||
results.add("ID=" + id + ":" + res);
|
||||
}
|
||||
return R.ok(StringUtils.join(results, ","));
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载PDF并生成zip包
|
||||
*/
|
||||
|
||||
@SaCheckPermission("system:processOrderPro:uploadPDF")
|
||||
@SaCheckPermission("system:orderPro:uploadPDF")
|
||||
@Log(title = "下载PDF", businessType = BusinessType.UPDATE)
|
||||
@CrossOrigin(origins = "*", allowedHeaders = "*", exposedHeaders = {"Content-Disposition", "Content-Length"})
|
||||
@GetMapping("/uploadPDF")
|
||||
@ -303,7 +310,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
/**
|
||||
* 下载ZIP包
|
||||
*/
|
||||
@SaCheckPermission("system:processOrderPro:downloadZip")
|
||||
@SaCheckPermission("system:orderPro:downloadZip")
|
||||
@Log(title = "下载ZIP包", businessType = BusinessType.OTHER)
|
||||
@GetMapping("/downloadZip/{id}")
|
||||
public void downloadZip(@PathVariable Long id, HttpServletResponse response) {
|
||||
@ -364,7 +371,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
return iMrpResultCheckService.getMRPResults(id);
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:orderPro:geMRPResults")
|
||||
@SaCheckPermission("system:orderPro:getRouteLog")
|
||||
@Log(title = "获取工艺上传结果", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/getRouteLog/{id}")
|
||||
public R<String> getRouteLog(@PathVariable Long id) throws JsonProcessingException {
|
||||
@ -372,7 +379,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("system:route:exportRoute")
|
||||
@SaCheckPermission("system:orderPro:exportRoute")
|
||||
@Log(title = "下载工艺生产表", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/exportRoute")
|
||||
public void exportRoute(@RequestParam("id") Long id, HttpServletResponse response) {
|
||||
@ -452,7 +459,7 @@ public class ProcessOrderProController extends BaseController {
|
||||
|| materialCode.startsWith("009001") || materialCode.startsWith("009081")
|
||||
|| (remark != null && remark.contains("外购"))) {
|
||||
// 过滤安全库存:如果属于安全库存,则进入工艺数据列表
|
||||
Boolean isSafeStock = iSafetyStockService.isSafeCode(materialCode.trim());
|
||||
Boolean isSafeStock = safetyStockService.isSafeCode(materialCode.trim());
|
||||
if (isSafeStock) {
|
||||
// 属于安全库存,添加到工艺数据列表
|
||||
processDataList.add(item);
|
||||
@ -1139,9 +1146,9 @@ public class ProcessOrderProController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("system:route:exportRoute")
|
||||
@SaCheckPermission("system:orderPro:exportRoute2")
|
||||
@Log(title = "下载工艺生产表2", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/exportRoute2")
|
||||
@GetMapping ("/exportRoute2")
|
||||
public void exportRoute2(@RequestParam("id") Long id, HttpServletResponse response) {
|
||||
try {
|
||||
ProcessOrderPro orderPro = processOrderProMapper.selectById(id);
|
||||
@ -1164,7 +1171,26 @@ public class ProcessOrderProController extends BaseController {
|
||||
List<ProcessRoute> routes = new ArrayList<>();
|
||||
List<Map<String, Object>> kingdeeBomRows = new ArrayList<>();
|
||||
for (ProcessRoute base : routeList) {
|
||||
|
||||
|
||||
String materialCode = base.getMaterialCode();
|
||||
//如果项目零号是CP 跳过安全库存物料
|
||||
LambdaQueryWrapper<SafetyStock> wr = new LambdaQueryWrapper<>();
|
||||
wr.eq(SafetyStock::getMaterialCode, materialCode);
|
||||
SafetyStock safetyStock = stockMapper.selectOne(wr);
|
||||
if (safetyStock != null && base.getRouteDescription().startsWith("CP")) {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
item.setMaterialCode(base.getMaterialCode());
|
||||
item.setMaterialName(base.getMaterialName());
|
||||
item.setMaterial(base.getMaterial());
|
||||
item.setDiscWeight(base.getDiscWeight());
|
||||
item.setUnitQuantity(base.getUnitQuantity());
|
||||
item.setBatchQuantity(base.getBatchQuantity());
|
||||
routes.add(item);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(materialCode)) {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
@ -1296,9 +1322,10 @@ public class ProcessOrderProController extends BaseController {
|
||||
// 电气外包分类条件:物料编码开头空格/特定前缀 或 备注包含"外购"
|
||||
if (materialCode.startsWith(" ")
|
||||
|| materialCode.startsWith("009301") || materialCode.startsWith("009999") || materialCode.startsWith("017003") || materialCode.startsWith("017002")
|
||||
|| materialCode.startsWith("009001") || materialCode.startsWith("009081") || (remark != null && remark.contains("外购"))) {
|
||||
|| materialCode.startsWith("009001") || materialCode.startsWith("009081")
|
||||
|| (remark != null && remark.contains("外购"))) {
|
||||
// 过滤安全库存:如果属于安全库存,则进入工艺数据列表
|
||||
Boolean isSafeStock = iSafetyStockService.isSafeCode(materialCode.trim());
|
||||
Boolean isSafeStock = safetyStockService.isSafeCode(materialCode.trim());
|
||||
if (isSafeStock) {
|
||||
// 属于安全库存,添加到工艺数据列表
|
||||
processDataList.add(item);
|
||||
@ -1638,5 +1665,380 @@ public class ProcessOrderProController extends BaseController {
|
||||
return mapList;
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:orderPro:exportRoute3")
|
||||
@Log(title = "下载工艺生产表3", businessType = BusinessType.EXPORT)
|
||||
@GetMapping ("/exportRoute3")
|
||||
public void exportRoute3(@RequestParam("id") Long id, HttpServletResponse response) {
|
||||
try {
|
||||
ProcessOrderPro orderPro = processOrderProMapper.selectById(id);
|
||||
// 下载Excel文件
|
||||
SmbUtil.downloadExcelFiles(orderPro.getProductionOrderNo());
|
||||
// 构建文件路径
|
||||
String excelName = "D:\\file\\" + orderPro.getProductionOrderNo() + "汇总表.xlsx";
|
||||
String rawDataFile = "D:\\file\\RawDataTable.xlsx";
|
||||
File file = new File(excelName);
|
||||
if (!file.exists()) {
|
||||
throw new ServiceException("项目 " + orderPro.getProductionOrderNo() + " 未出图");
|
||||
}
|
||||
// 1. 读取第一个sheet的数据list - 使用POI直接读取以保留空格
|
||||
List<ProductionOrderVo> allDataList = readExcelWithPOI(excelName,orderPro.getProductionOrderNo());
|
||||
List<ProcessRoute> routeList = readExcelPOIRoute(excelName,orderPro.getProductionOrderNo());
|
||||
List<ProcessRoute> routes = new ArrayList<>();
|
||||
List<Map<String, Object>> kingdeeBomRows = new ArrayList<>();
|
||||
for (ProcessRoute base : routeList) {
|
||||
String processDescription = base.getRouteDescription();
|
||||
String materialCode = base.getMaterialCode();
|
||||
String materialName = base.getMaterialName();
|
||||
//如果项目零号是CP 跳过安全库存物料
|
||||
LambdaQueryWrapper<SafetyStock> wr = new LambdaQueryWrapper<>();
|
||||
wr.eq(SafetyStock::getMaterialCode, materialCode);
|
||||
SafetyStock safetyStock = stockMapper.selectOne(wr);
|
||||
if (safetyStock != null && base.getRouteDescription().startsWith("CP")) {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
item.setMaterialCode(base.getMaterialCode());
|
||||
item.setMaterialName(base.getMaterialName());
|
||||
item.setMaterial(base.getMaterial());
|
||||
item.setDiscWeight(base.getDiscWeight());
|
||||
item.setUnitQuantity(base.getUnitQuantity());
|
||||
item.setBatchQuantity(base.getBatchQuantity());
|
||||
routes.add(item);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(materialCode)) {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
item.setMaterialCode(base.getMaterialCode());
|
||||
item.setMaterialName(base.getMaterialName());
|
||||
item.setMaterial(base.getMaterial());
|
||||
item.setDiscWeight(base.getDiscWeight());
|
||||
item.setUnitQuantity(base.getUnitQuantity());
|
||||
item.setBatchQuantity(base.getBatchQuantity());
|
||||
routes.add(item);
|
||||
continue;
|
||||
}
|
||||
|
||||
//List<ProcessRouteDTO> routeGuDing = JdUtil.getRouteGuDing(materialCode);processRouteService
|
||||
List<MaterialBom> bomItems = processRouteService.getProcessMaterialList(materialCode, materialName, processDescription);
|
||||
List<ProcessRoute> routeGuDing = processRouteService.getProcessRoutesByOrder(processDescription, materialCode);
|
||||
if (routeGuDing != null && !routeGuDing.isEmpty()) {
|
||||
routeGuDing.stream().forEach(r -> {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
item.setMaterialCode(base.getMaterialCode());
|
||||
item.setMaterialName(base.getMaterialName());
|
||||
item.setMaterial(base.getMaterial());
|
||||
item.setDiscWeight(base.getDiscWeight());
|
||||
item.setUnitQuantity(base.getUnitQuantity());
|
||||
item.setBatchQuantity(base.getBatchQuantity());
|
||||
// 不写入BOM字段,保持纯工艺数据行
|
||||
item.setProcessNo(r.getProcessNo());
|
||||
item.setWorkCenter(r.getWorkCenter());
|
||||
item.setProcessName(r.getProcessName());
|
||||
item.setProcessDescription(r.getProcessDescription());
|
||||
item.setProcessControl(r.getProcessControl());
|
||||
item.setActivityDuration(r.getActivityDuration());
|
||||
item.setActivityUnit(r.getActivityUnit());
|
||||
routes.add(item);
|
||||
});
|
||||
} else {
|
||||
ProcessRoute item = new ProcessRoute();
|
||||
item.setRouteDescription(base.getRouteDescription());
|
||||
item.setMaterialCode(base.getMaterialCode());
|
||||
item.setMaterialName(base.getMaterialName());
|
||||
item.setMaterial(base.getMaterial());
|
||||
item.setDiscWeight(base.getDiscWeight());
|
||||
item.setUnitQuantity(base.getUnitQuantity());
|
||||
item.setBatchQuantity(base.getBatchQuantity());
|
||||
// 不写入BOM字段,保持纯工艺数据行
|
||||
routes.add(item);
|
||||
}
|
||||
if (bomItems != null && !bomItems.isEmpty()) {
|
||||
if ("总装部件".equals(Objects.toString(base.getMaterial(), "").trim())) {
|
||||
|
||||
} else {
|
||||
for (MaterialBom b : bomItems) {
|
||||
Map<String, Object> bomMap = new HashMap<>();
|
||||
bomMap.put("routeDescription", base.getRouteDescription());
|
||||
bomMap.put("materialCode", base.getMaterialCode());
|
||||
bomMap.put("materialName", base.getMaterialName());
|
||||
bomMap.put("material", base.getMaterial());
|
||||
bomMap.put("discWeight", base.getDiscWeight());
|
||||
bomMap.put("rawMaterialCode", b.getMaterialCode());
|
||||
bomMap.put("rawMaterialName", b.getMaterialName());
|
||||
bomMap.put("bomMaterial", b.getMaterialType());
|
||||
bomMap.put("bomDanZhong", null);
|
||||
if ("根".equals(b.getUnit())) {
|
||||
if (b.getQuantity() != null && b.getQuantity().contains("/")) {
|
||||
String[] arr = b.getQuantity().split("/");
|
||||
bomMap.put("discUsage", Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
|
||||
} else {
|
||||
bomMap.put("discUsage", null);
|
||||
}
|
||||
} else if ("mm".equals(b.getUnit())) {
|
||||
b.setUnit("m");
|
||||
bomMap.put("discUsage", b.getQuantity());
|
||||
} else {
|
||||
bomMap.put("discUsage", b.getQuantity());
|
||||
}
|
||||
|
||||
|
||||
bomMap.put("bomUnit", b.getUnit());
|
||||
kingdeeBomRows.add(bomMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 用生成的 routes 替换原始 routeList,保持原序展开后的结构用于后续导出
|
||||
routeList = routes;
|
||||
// 2. 读取原始表数据
|
||||
List<BomDataVO> rawDataList = readRawDataTable(rawDataFile);
|
||||
|
||||
// 3. 数据分类处理
|
||||
List<VMIDataVO> vmiList = new ArrayList<>(); // 009开头
|
||||
List<ElecOutDataVO> elecOutList = new ArrayList<>(); // 两个空格和017开头
|
||||
List<SupProvidDataVO> supplierList = new ArrayList<>(); // 甲供件
|
||||
List<EVOProductsDataVO> evoProductsList = new ArrayList<>(); // 伊特
|
||||
List<ProductionOrderVo> processDataList = new ArrayList<>(); // 工艺数据(剩余数据)
|
||||
|
||||
// 分类逻辑
|
||||
for (ProductionOrderVo item : allDataList) {
|
||||
String materialCode = item.getDrawingNo();
|
||||
String remark = item.getRemark(); // 使用备注字段
|
||||
|
||||
// 009开头的加入VMI表
|
||||
if (materialCode != null) {
|
||||
String drawingNo = item.getDrawingNo();
|
||||
String drawingName = item.getDrawingName();
|
||||
if (drawingName != null) {
|
||||
ImMaterial material = imMaterialService.selectByCodeAndName(drawingNo, drawingName);
|
||||
if (material != null) {
|
||||
//判断是否是VMI物料
|
||||
if ("true".equals(material.getClassificationName())) {
|
||||
// 检查是否已存在相同的DrawingNo
|
||||
boolean found = false;
|
||||
for (VMIDataVO existingVmi : vmiList) {
|
||||
if (drawingNo.equals(existingVmi.getDrawingNo())) {
|
||||
// 将数量和批次数量相加
|
||||
Integer currentQuantity = existingVmi.getQuantity() != null ? existingVmi.getQuantity() : 0;
|
||||
Integer itemQuantity = item.getQuantity() != null ? item.getQuantity().intValue() : 0;
|
||||
existingVmi.setQuantity(currentQuantity + itemQuantity);
|
||||
|
||||
Integer currentBatchQuantity = existingVmi.getBatchQuantity() != null ? existingVmi.getBatchQuantity() : 0;
|
||||
Integer itemBatchQuantity = item.getBatchQuantity() != null ? Integer.parseInt(item.getBatchQuantity()) : 0;
|
||||
existingVmi.setBatchQuantity(currentBatchQuantity + itemBatchQuantity);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果没有找到相同的DrawingNo,则添加新的VMI数据
|
||||
if (!found) {
|
||||
VMIDataVO vmiData = convertToVMIDataVO(item);
|
||||
vmiList.add(vmiData);
|
||||
}
|
||||
continue; // 已分类,跳过后续检查
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 电气外包分类条件:物料编码开头空格/特定前缀 或 备注包含"外购"
|
||||
if (materialCode.startsWith(" ")
|
||||
|| materialCode.startsWith("009301") || materialCode.startsWith("009999") || materialCode.startsWith("017003") || materialCode.startsWith("017002")
|
||||
|| materialCode.startsWith("009001") || materialCode.startsWith("009081")
|
||||
|| (remark != null && remark.contains("外购"))) {
|
||||
// 过滤安全库存:如果属于安全库存,则进入工艺数据列表
|
||||
Boolean isSafeStock = safetyStockService.isSafeCode(materialCode.trim());
|
||||
if (isSafeStock) {
|
||||
// 属于安全库存,添加到工艺数据列表
|
||||
processDataList.add(item);
|
||||
continue; // 已分类,跳过后续检查
|
||||
} else {
|
||||
// 不属于安全库存,检查是否已存在相同的DrawingNo
|
||||
boolean found = false;
|
||||
for (ElecOutDataVO existingElec : elecOutList) {
|
||||
if (item.getDrawingNo() != null && item.getDrawingNo().equals(existingElec.getDrawingNo())) {
|
||||
// 将数量和批次数量相加
|
||||
Double currentQuantity = existingElec.getQuantity() != null ? existingElec.getQuantity() : 0.0;
|
||||
Double itemQuantity = item.getQuantity() != null ? item.getQuantity() : 0.0;
|
||||
Double newQuantity = currentQuantity + itemQuantity;
|
||||
existingElec.setQuantity(newQuantity);
|
||||
|
||||
// 批次数量相加(String类型)
|
||||
String currentBatchQuantity = existingElec.getBatchQuantity() != null ? (existingElec.getBatchQuantity()).toString() : "0";
|
||||
String itemBatchQuantity = item.getBatchQuantity() != null ? item.getBatchQuantity() : "0";
|
||||
try {
|
||||
Integer currentBatch = Integer.valueOf(currentBatchQuantity);
|
||||
Integer itemBatch = Integer.valueOf(itemBatchQuantity);
|
||||
String newBatchQuantity = String.valueOf(currentBatch + itemBatch);
|
||||
existingElec.setBatchQuantity(Integer.valueOf(newBatchQuantity));
|
||||
} catch (NumberFormatException e) {
|
||||
// 如果转换失败,保持原值
|
||||
existingElec.setBatchQuantity(Integer.valueOf(currentBatchQuantity));
|
||||
}
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果没有找到相同的DrawingNo,则添加新的电气外包数据
|
||||
if (!found) {
|
||||
ElecOutDataVO elecData = convertToElecOutDataVO(item);
|
||||
elecOutList.add(elecData);
|
||||
}
|
||||
continue; // 已分类,跳过后续检查
|
||||
}
|
||||
}
|
||||
|
||||
// 备注是甲供件的
|
||||
if (remark != null && remark.contains("甲供件")) {
|
||||
SupProvidDataVO supplierData = convertToSupProvidDataVO(item);
|
||||
supplierList.add(supplierData);
|
||||
continue; // 已分类,跳过后续检查
|
||||
}
|
||||
|
||||
// 备注是伊特
|
||||
if (remark != null && remark.contains("伊特")) {
|
||||
EVOProductsDataVO evoData = convertToEVOProductsDataVO(item);
|
||||
evoProductsList.add(evoData);
|
||||
continue; // 已分类,跳过后续检查
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否已存在相同的DrawingNo
|
||||
boolean found = false;
|
||||
for (ProductionOrderVo existingProcess : processDataList) {
|
||||
if (item.getDrawingNo() != null && item.getDrawingNo().equals(existingProcess.getDrawingNo())) {
|
||||
// 将数量和批次数量相加
|
||||
Double currentQuantity = existingProcess.getQuantity() != null ? existingProcess.getQuantity() : 0.0;
|
||||
Double itemQuantity = item.getQuantity() != null ? item.getQuantity() : 0.0;
|
||||
Double newQuantity = currentQuantity + itemQuantity;
|
||||
existingProcess.setQuantity(newQuantity);
|
||||
|
||||
// 批次数量相加(String类型)
|
||||
String currentBatchQuantity = existingProcess.getBatchQuantity() != null ? existingProcess.getBatchQuantity() : "0";
|
||||
String itemBatchQuantity = item.getBatchQuantity() != null ? item.getBatchQuantity() : "0";
|
||||
try {
|
||||
Integer currentBatch = Integer.valueOf(currentBatchQuantity);
|
||||
Integer itemBatch = Integer.valueOf(itemBatchQuantity);
|
||||
String newBatchQuantity = String.valueOf(currentBatch + itemBatch);
|
||||
existingProcess.setBatchQuantity(newBatchQuantity);
|
||||
} catch (NumberFormatException e) {
|
||||
// 如果转换失败,保持原值
|
||||
existingProcess.setBatchQuantity(currentBatchQuantity);
|
||||
}
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果没有找到相同的DrawingNo,则添加新的工艺数据
|
||||
if (!found) {
|
||||
processDataList.add(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 使用Excel模板文件
|
||||
String templatePath = "jpg/生产及工艺计划模版.xlsx";
|
||||
String outputPath = "D:/file/" + orderPro.getProductionOrderNo() + "生产及工艺计划表.xlsx";
|
||||
|
||||
// 准备模板数据
|
||||
Map<String, Object> staticDataMap = new HashMap<>();
|
||||
staticDataMap.put("productionOrderNo", orderPro.getProductionOrderNo());
|
||||
staticDataMap.put("productionName", orderPro.getProductionName());
|
||||
|
||||
// 准备动态数据映射
|
||||
List<DynamicDataMapping> dynamicDataMappingList = new ArrayList<>();
|
||||
|
||||
// 添加生产订单数据
|
||||
if (!allDataList.isEmpty()) {
|
||||
List<Map<String, Object>> productionDataList = convertProductionOrderToMapList(allDataList, orderPro.getProductionOrderNo());
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("ProductionOrder", productionDataList));
|
||||
}
|
||||
|
||||
// 添加工艺数据(第七个sheet:工艺及生产计划表)
|
||||
if (!processDataList.isEmpty()) {
|
||||
List<Map<String, Object>> processDataMapList = convertProductionOrderToMapList(processDataList, orderPro.getProductionOrderNo());
|
||||
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("ProcessData", processDataMapList));
|
||||
}
|
||||
|
||||
// 添加VMI数据
|
||||
if (!vmiList.isEmpty()) {
|
||||
List<Map<String, Object>> vmiDataList = convertVMIDataToMapList(vmiList);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("VMIDataVO", vmiDataList));
|
||||
}
|
||||
|
||||
// 添加电气外购数据
|
||||
if (!elecOutList.isEmpty()) {
|
||||
List<Map<String, Object>> elecDataList = convertElecOutDataToMapList(elecOutList);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("ElecOutDataVO", elecDataList));
|
||||
}
|
||||
|
||||
// 添加BOM数据
|
||||
if (!rawDataList.isEmpty()) {
|
||||
List<Map<String, Object>> bomDataList = convertBomDataToMapList(rawDataList);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("BomDataVO", bomDataList));
|
||||
}
|
||||
|
||||
// 添加甲供件数据
|
||||
if (!supplierList.isEmpty()) {
|
||||
List<Map<String, Object>> supplierDataList = convertSupProvidDataToMapList(supplierList);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("SupProvidDataVO", supplierDataList));
|
||||
}
|
||||
|
||||
// 添加伊特产品数据
|
||||
if (!evoProductsList.isEmpty()) {
|
||||
List<Map<String, Object>> evoDataList = convertEVOProductsDataToMapList(evoProductsList);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("EVOProductsDataVO", evoDataList));
|
||||
}
|
||||
if (!kingdeeBomRows.isEmpty()) {
|
||||
List<Map<String, Object>> bomDataList2 = convertKingdeeBomToMapList(kingdeeBomRows);
|
||||
// 合并到 RouteBomData 中统一按物料分组导出(方案A)
|
||||
}
|
||||
// 添加伊特产品数据
|
||||
if (!routeList.isEmpty()) {
|
||||
// 合并到 RouteBomData 中统一按物料分组导出(方案A)
|
||||
}
|
||||
|
||||
// 方案A:合并工艺与BOM为单一数据集并按物料分组
|
||||
if (!routeList.isEmpty() || !kingdeeBomRows.isEmpty()) {
|
||||
List<Map<String, Object>> routeBomDataList = convertRouteBomToMapList(routeList, kingdeeBomRows);
|
||||
dynamicDataMappingList.addAll(DynamicDataMapping.createOneDataList("RouteBomData", routeBomDataList));
|
||||
}
|
||||
|
||||
// 使用模板导出Excel
|
||||
ExcelTemplateProc.doExportExcelByTemplateProc(templatePath, outputPath, staticDataMap, dynamicDataMappingList);
|
||||
|
||||
// 设置响应头
|
||||
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
String fileName = URLEncoder.encode(orderPro.getProductionOrderNo() + "_分类BOM表", "UTF-8")
|
||||
.replaceAll("\\+", "%20");
|
||||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
||||
|
||||
// 将生成的文件写入响应
|
||||
File outputFile = new File(outputPath);
|
||||
if (outputFile.exists()) {
|
||||
try (FileInputStream fis = new FileInputStream(outputFile);
|
||||
OutputStream os = response.getOutputStream()) {
|
||||
byte[] buffer = new byte[8192];
|
||||
int length;
|
||||
while ((length = fis.read(buffer)) > 0) {
|
||||
os.write(buffer, 0, length);
|
||||
}
|
||||
os.flush();
|
||||
}
|
||||
// 删除临时文件
|
||||
outputFile.delete();
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("导出分类BOM表失败", e);
|
||||
throw new RuntimeException("导出失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -73,6 +73,7 @@ public class ProcessRouteController extends BaseController {
|
||||
MaterialBomMapper materialBomMapper;
|
||||
private final IBomDetailsService iBomDetailsService;
|
||||
private final ProcessOrderProMapper proMapper;
|
||||
|
||||
private Long generateUniqueParentId(Long originalId) {
|
||||
return originalId + 1000;
|
||||
}
|
||||
@ -221,10 +222,11 @@ public class ProcessRouteController extends BaseController {
|
||||
child.setXuEndTime(processRouteVo.getXuEndTime());
|
||||
return child;
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出工艺路线列表
|
||||
*/
|
||||
@SaCheckPermission("system:route:export")
|
||||
@SaCheckPermission("system:route:export2")
|
||||
@Log(title = "工艺路线", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export2")
|
||||
public void export2(ProcessRouteBo bo, HttpServletResponse response) {
|
||||
@ -270,6 +272,7 @@ public class ProcessRouteController extends BaseController {
|
||||
throw new RuntimeException("导出Excel异常: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
@SaCheckPermission("system:route:export")
|
||||
@Log(title = "工艺路线", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
@ -289,7 +292,7 @@ public class ProcessRouteController extends BaseController {
|
||||
if (file.exists()) {
|
||||
// 读取Excel的sheet6 从第三行开始 读取到第4列 无数据的跳过
|
||||
DefaultExcelListener<ProcessRoute> listener = new DefaultExcelListener<>(true);
|
||||
EasyExcel.read(ExcelName, ProcessRoute.class,listener)
|
||||
EasyExcel.read(ExcelName, ProcessRoute.class, listener)
|
||||
.sheet(6)
|
||||
.headRowNumber(3)
|
||||
.doRead();
|
||||
@ -316,7 +319,7 @@ public class ProcessRouteController extends BaseController {
|
||||
.build()) {
|
||||
|
||||
// 写入到第七个 sheet(index=6),并命名为“工艺路线”
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet( "已有工艺路线")
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet("已有工艺路线")
|
||||
.head(ProcessRoute.class)
|
||||
.needHead(true)
|
||||
.build();
|
||||
@ -331,8 +334,6 @@ public class ProcessRouteController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取工艺路线详细信息
|
||||
*
|
||||
@ -355,7 +356,8 @@ public class ProcessRouteController extends BaseController {
|
||||
return toAjax(iProcessRouteService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**导出
|
||||
/**
|
||||
* 导出
|
||||
* 修改工艺路线
|
||||
*/
|
||||
@SaCheckPermission("system:route:edit")
|
||||
@ -378,8 +380,8 @@ public class ProcessRouteController extends BaseController {
|
||||
return toAjax(iProcessRouteService.deleteWithValidByIds(Arrays.asList(ids), true));
|
||||
}
|
||||
|
||||
@Log(title = "明细导入", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("system:route:import")
|
||||
@Log(title = "生产工艺计划表导入", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("system:route:importRoute")
|
||||
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R importData(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
@ -392,16 +394,16 @@ public class ProcessRouteController extends BaseController {
|
||||
ExcelResult<ProductionOrderVo> result1 = ExcelUtil.importExcelSheet1(file.getInputStream(), ProductionOrderVo.class, true);
|
||||
List<ProductionOrderVo> list = result1.getList();
|
||||
String productionOrderNo = list1.get(0).getRouteDescription();
|
||||
List<BomDetails> bomDetails = iBomDetailsService.selectByProjectNumber(list1.get(0).getRouteDescription());
|
||||
List<BomDetails> bomDetails = iBomDetailsService.selectByProjectNumber(list1.get(0).getRouteDescription());
|
||||
List<ProcessRoute> route = iProcessRouteService.selectByProjectNumber(list1.get(0).getRouteDescription());
|
||||
if (list1.isEmpty()){
|
||||
return R.fail("项目 "+productionOrderNo+"工艺生产计划表为空,请检查此表或将sheet移动至第七个!");
|
||||
if (list1.isEmpty()) {
|
||||
return R.fail("项目 " + productionOrderNo + "工艺生产计划表为空,请检查此表或将sheet移动至第七个!");
|
||||
}
|
||||
if (!bomDetails.isEmpty()){
|
||||
return R.fail("项目 "+productionOrderNo+"已导入过BOM,请先清空再上传");
|
||||
if (!bomDetails.isEmpty()) {
|
||||
return R.fail("项目 " + productionOrderNo + "已导入过BOM,请先清空再上传");
|
||||
}
|
||||
if (!route.isEmpty()){
|
||||
return R.fail("项目 "+productionOrderNo+"已导入过工艺 ,请先清空再上传");
|
||||
if (!route.isEmpty()) {
|
||||
return R.fail("项目 " + productionOrderNo + "已导入过工艺 ,请先清空再上传");
|
||||
}
|
||||
if (iProcessRouteService.saveData(list1, list)) {
|
||||
return R.ok("上传物料成功");
|
||||
@ -433,8 +435,7 @@ public class ProcessRouteController extends BaseController {
|
||||
/**
|
||||
* 查询工艺表中所有的需要做工艺的物料
|
||||
*
|
||||
* @return
|
||||
* RequestBody List<ProcessRouteVo> routeVoList
|
||||
* @return RequestBody List<ProcessRouteVo> routeVoList
|
||||
*/
|
||||
public List<ProcessRoute> getProcessRouteList(@RequestParam String rooteProdet) {
|
||||
List<ProcessRoute> list = iProcessRouteService.pushRawMater(rooteProdet);
|
||||
@ -451,36 +452,36 @@ public class ProcessRouteController extends BaseController {
|
||||
@Log(title = "推送工艺工序")
|
||||
@SaCheckPermission("system:route:pushRouteBom")
|
||||
@PostMapping("/pushRouteBom")
|
||||
public R<ProcessRoutePushResultDTO> pushRouteBom(@RequestParam String rooteProdet,@RequestParam String groupName) {
|
||||
return iProcessRouteService.pushRouteBom(rooteProdet,groupName);
|
||||
public R<ProcessRoutePushResultDTO> pushRouteBom(@RequestParam String rooteProdet, @RequestParam String groupName) {
|
||||
return iProcessRouteService.pushRouteBom(rooteProdet, groupName);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目列表
|
||||
*/
|
||||
@Log(title = "获取所有的项目令号")
|
||||
@SaCheckPermission("system:route:getRawBom")
|
||||
@SaCheckPermission("system:route:getDistinctProjectCodes")
|
||||
@GetMapping("/getDistinctProjectCodes")
|
||||
public ResponseEntity<List<String>> getDistinctProjectCodes(String query) {
|
||||
return ResponseEntity.ok(iProcessRouteService.getDistinctProjectCodes(query));
|
||||
}
|
||||
|
||||
@Log(title = "获取工序列表")
|
||||
@SaCheckPermission("system:route:getRawBom")
|
||||
@SaCheckPermission("system:route:getProcessInfoList")
|
||||
@GetMapping("/getProcessInfoList")
|
||||
public ResponseEntity<List<String>> getProcessInfoList(String query) {
|
||||
return ResponseEntity.ok(iProcessRouteService.getProcessInfoList(query));
|
||||
}
|
||||
|
||||
@Log(title = "根据生产令号获取生产编号==》获取计划编号")
|
||||
@SaCheckPermission("system:route:getRawBom")
|
||||
@SaCheckPermission("system:route:getSelecPlanRouteList")
|
||||
@PostMapping("/getSelecPlanRouteList")
|
||||
public List<CombinedDTO> getSelecPlanRouteList(@RequestParam String rooteProdet) {
|
||||
return iProcessRouteService.getSelecPlanRouteList(rooteProdet);
|
||||
}
|
||||
|
||||
@Log(title = "生成这个项目的pdf")
|
||||
@SaCheckPermission("system:route:getRawBom")
|
||||
@Log(title = "生成项目图纸PDF")
|
||||
@SaCheckPermission("system:route:generatePDFs")
|
||||
@GetMapping("/generatePDFs")
|
||||
public void generatePDFs(String rooteProdet, HttpServletResponse response) throws IOException {
|
||||
// 调用服务层方法生成 ZIP 文件并获取其路径
|
||||
@ -513,6 +514,7 @@ public class ProcessRouteController extends BaseController {
|
||||
public List<Model> updateProcessPlan(@RequestParam String rooteProdet) throws Exception {
|
||||
return iProcessRouteService.updateProcessPlan(rooteProdet);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新生产订单的时间
|
||||
*/
|
||||
@ -544,10 +546,9 @@ public class ProcessRouteController extends BaseController {
|
||||
}
|
||||
|
||||
@Log(title = "获取材料bom列表")
|
||||
@SaCheckPermission("system:route:getRawBom")
|
||||
@SaCheckPermission("system:route:getBomInfo")
|
||||
@PostMapping("/getBomInfo")
|
||||
public ResponseEntity<List<MaterialBom>> getProcessMaterialList(
|
||||
@RequestParam(value = "materialCode") String materialCode,
|
||||
public ResponseEntity<List<MaterialBom>> getProcessMaterialList( @RequestParam(value = "materialCode") String materialCode,
|
||||
@RequestParam(value = "materialName") String materialName,
|
||||
@RequestParam(value = "productionOrderNo") String productionOrderNo) {
|
||||
|
||||
@ -578,12 +579,12 @@ public class ProcessRouteController extends BaseController {
|
||||
|
||||
|
||||
@Log(title = "导入时间", businessType = BusinessType.IMPORT)
|
||||
@SaCheckPermission("system:route:importDataTime")
|
||||
@SaCheckPermission("system:route:importDataTime123")
|
||||
@PostMapping(value = "/importDataTime123", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importDataTime123(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
|
||||
DefaultExcelListener<PcRigidChainVo> listener = new DefaultExcelListener<>(true);
|
||||
EasyExcel.read(file.getInputStream(), PcRigidChainVo.class,listener) .excelType(ExcelTypeEnum.XLS).sheet(1).headRowNumber(4).doRead();
|
||||
EasyExcel.read(file.getInputStream(), PcRigidChainVo.class, listener).excelType(ExcelTypeEnum.XLS).sheet(1).headRowNumber(4).doRead();
|
||||
|
||||
List<PcRigidChainVo> list1 = listener.getExcelResult().getList();
|
||||
for (PcRigidChainVo pcRigidChainVO : list1) {
|
||||
@ -594,9 +595,8 @@ public class ProcessRouteController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Log(title = "获取金蝶工艺路线")
|
||||
@SaCheckPermission("system:route:getSelectProcessRoute")
|
||||
@SaCheckPermission("system:route:getSelectProcessRout1e")
|
||||
@PostMapping("/getSelectProcessRout1e")
|
||||
public List<ProcessRouteSelectDTO> getSelectProcessRoute1(@RequestParam String materilCode) {
|
||||
return iProcessRouteService.getSelectProcessRoute(materilCode);
|
||||
@ -620,9 +620,10 @@ public class ProcessRouteController extends BaseController {
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void processMaterAndRoute(JDMaterialAndRoute materialAndRoute, List<BomDetails> bomDetailsList, List<ProcessRoute> routeList, List<MaterialBom> materialBoms, String productionOrderNo) {
|
||||
// 处理工序列表
|
||||
materialAndRoute.getPlannedProcessVos().forEach(processRouteDTO -> {
|
||||
materialAndRoute.getPlannedProcessVos().forEach(processRouteDTO -> {
|
||||
ProcessRoute processRoute = createProcessRoute1(processRouteDTO, materialAndRoute, productionOrderNo);
|
||||
routeList.add(processRoute);
|
||||
});
|
||||
@ -649,7 +650,7 @@ public class ProcessRouteController extends BaseController {
|
||||
materialBom.setUnit(materialUsageDTO.getChildUnit());
|
||||
materialBom.setMaterialType(materialUsageDTO.getCaizhi());
|
||||
//保留四位小数
|
||||
materialBom.setQuantity(String.valueOf(BigDecimal.valueOf(materialUsageDTO.getFenzi()).divide(new BigDecimal(materialUsageDTO.getFenmu()),4, RoundingMode.HALF_UP)));
|
||||
materialBom.setQuantity(String.valueOf(BigDecimal.valueOf(materialUsageDTO.getFenzi()).divide(new BigDecimal(materialUsageDTO.getFenmu()), 4, RoundingMode.HALF_UP)));
|
||||
|
||||
return materialBom;
|
||||
}
|
||||
@ -705,7 +706,7 @@ public class ProcessRouteController extends BaseController {
|
||||
processRoute.setRawMaterialCode(materialUsageDTO.getMaterialCode());
|
||||
processRoute.setRawMaterialName(materialUsageDTO.getMaterialName());
|
||||
processRoute.setBomUnit(materialUsageDTO.getChildUnit());
|
||||
if (materialUsageDTO.getChildUnit().equals("根")) {
|
||||
if (materialUsageDTO.getChildUnit().equals("根")) {
|
||||
processRoute.setDiscUsage(String.valueOf(Double.valueOf(materialUsageDTO.getFenmu())));
|
||||
} else {
|
||||
processRoute.setDiscUsage(String.valueOf((double) (materialUsageDTO.getFenzi() / materialUsageDTO.getFenmu())));
|
||||
@ -810,9 +811,9 @@ public class ProcessRouteController extends BaseController {
|
||||
//子项分母
|
||||
bomDetails.setDenominator(materialUsageDTO.getFDenominator());
|
||||
bomDetails.setName(materialUsageDTO.getMaterialName());
|
||||
if (materialUsageDTO.getItemType().equals("1")){
|
||||
if (materialUsageDTO.getItemType().equals("1")) {
|
||||
bomDetails.setStats("外购");
|
||||
}else{
|
||||
} else {
|
||||
bomDetails.setStats("自制");
|
||||
}
|
||||
|
||||
@ -821,7 +822,7 @@ public class ProcessRouteController extends BaseController {
|
||||
}
|
||||
|
||||
private MaterialBom creatBomMaterial(MaterialUsageDTO materialUsageDTO, CombinedDTO combinedDTO,
|
||||
String productionOrderNo) {
|
||||
String productionOrderNo) {
|
||||
MaterialBom materialBom = new MaterialBom();
|
||||
materialBom.setProjectNumber(productionOrderNo);
|
||||
materialBom.setParentMaterialCode(combinedDTO.getMaterialCode());
|
||||
@ -865,7 +866,7 @@ public class ProcessRouteController extends BaseController {
|
||||
.headRowNumber(3)
|
||||
.doRead();
|
||||
List<ProcessRouteGetDTO> list = listener.getExcelResult().getList();
|
||||
List<JDMaterialAndRoute> list1 = iProcessRouteService.getProcessRouteGD(list,rooteProdet);
|
||||
List<JDMaterialAndRoute> list1 = iProcessRouteService.getProcessRouteGD(list, rooteProdet);
|
||||
|
||||
List<BomDetails> bomDetailsList = new ArrayList<>();
|
||||
List<ProcessRoute> routeList = new ArrayList<>();
|
||||
@ -875,13 +876,38 @@ public class ProcessRouteController extends BaseController {
|
||||
processMaterAndRoute(materialAndRoute, bomDetailsList, routeList, materialBoms, rooteProdet);
|
||||
}
|
||||
|
||||
bomDetailsMapper.insertBatch(bomDetailsList);
|
||||
baseMapper.insertBatch(routeList);
|
||||
materialBomMapper.insertBatch(materialBoms);
|
||||
bomDetailsMapper.insertBatch(bomDetailsList);
|
||||
baseMapper.insertBatch(routeList);
|
||||
materialBomMapper.insertBatch(materialBoms);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 更新生产订单仓库字段
|
||||
*/
|
||||
@SaCheckPermission("system:route:updateProductionOrders")
|
||||
@Log(title = "获取全部工艺路线和物料清单", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/updateProductionOrders")
|
||||
public R updateProductionOrders(@RequestParam("rooteProdet") String rooteProdet,@RequestParam("cangKuNum")String cangKuNum) throws Exception {
|
||||
//判断此项目是否有
|
||||
List<String> list = iProcessRouteService.updateProductionOrders(rooteProdet,cangKuNum);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新采购申请仓库字段
|
||||
*/
|
||||
@SaCheckPermission("system:route:updateProductionOrders")
|
||||
@Log(title = "获取全部工艺路线和物料清单", businessType = BusinessType.OTHER)
|
||||
@PostMapping("/updateCgOrders")
|
||||
public R updateCgOrders(@RequestParam("rooteProdet") String rooteProdet,@RequestParam("cangKuNum")String cangKuNum) {
|
||||
//判断此项目是否有
|
||||
List<String> list = iProcessRouteService.updateCgOrders(rooteProdet,cangKuNum);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,173 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 100R设备规格参数对象 device_spec_100r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_100r")
|
||||
public class DeviceSpec100r extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
private Long V1;
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
private Long V2;
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
private Long V3;
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
private Long V4;
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
private Long V5;
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
private Long V6;
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
private Long V7;
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
private Long V8;
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
private BigDecimal G1;
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
private Long V9;
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
private BigDecimal G2;
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
private Long V10;
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
private BigDecimal G5;
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
private Long V11;
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
private Long V12;
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
private BigDecimal G6;
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
private Long V13;
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
private Long V14;
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
private BigDecimal G7;
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
private Long V15;
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
private Long V41;
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
private Long V42;
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
private Long V43;
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
private Long V44;
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
private Long V45;
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
private Long V46;
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
private Long V47;
|
||||
/**
|
||||
* 垫圈
|
||||
*/
|
||||
private Long V48;
|
||||
/**
|
||||
* 挡圈
|
||||
*/
|
||||
private Long V49;
|
||||
/**
|
||||
* 滚轮隔套
|
||||
*/
|
||||
private Long V50;
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
private Long V51;
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
private Long V52;
|
||||
|
||||
}
|
||||
@ -0,0 +1,197 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 125R设备规格参数对象 device_spec_125r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_125r")
|
||||
public class DeviceSpec125r extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
private Long v1;
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
private Long v2;
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
private Long v3;
|
||||
/**
|
||||
* v4
|
||||
*/
|
||||
private Long v4;
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
private Long v5;
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
private Long v6;
|
||||
/**
|
||||
* v7
|
||||
*/
|
||||
private Long v7;
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
private Long v8;
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
private BigDecimal g1;
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
private Long v9;
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
private BigDecimal g2;
|
||||
/**
|
||||
* g3
|
||||
*/
|
||||
private BigDecimal g3;
|
||||
/**
|
||||
* g4
|
||||
*/
|
||||
private BigDecimal g4;
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
private Long v10;
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
private BigDecimal g5;
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
private Long v11;
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
private Long v12;
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
private BigDecimal g6;
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
private Long v13;
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
private Long v14;
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
private BigDecimal g7;
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
private Long v15;
|
||||
/**
|
||||
* v16
|
||||
*/
|
||||
private Long v16;
|
||||
/**
|
||||
* v17
|
||||
*/
|
||||
private Long v17;
|
||||
/**
|
||||
* v18
|
||||
*/
|
||||
private Long v18;
|
||||
/**
|
||||
* v19
|
||||
*/
|
||||
private Long v19;
|
||||
/**
|
||||
* v20
|
||||
*/
|
||||
private Long v20;
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
private Long v41;
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
private Long v42;
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
private Long v43;
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
private Long v44;
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
private Long v45;
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
private Long v46;
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
private Long v47;
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
private Long v48;
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
private Long v49;
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
private Long v50;
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
private Long v51;
|
||||
|
||||
}
|
||||
@ -0,0 +1,213 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 150R设备规格参数对象 device_spec_150r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_150r")
|
||||
public class DeviceSpec150r extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
private Long v1;
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
private Long v2;
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
private Long v3;
|
||||
/**
|
||||
* v4
|
||||
*/
|
||||
private Long v4;
|
||||
/**
|
||||
* v21
|
||||
*/
|
||||
private Long v21;
|
||||
/**
|
||||
* v22
|
||||
*/
|
||||
private Long v22;
|
||||
/**
|
||||
* v23
|
||||
*/
|
||||
private Long v23;
|
||||
/**
|
||||
* v24
|
||||
*/
|
||||
private Long v24;
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
private Long v5;
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
private Long v6;
|
||||
/**
|
||||
* v7
|
||||
*/
|
||||
private Long v7;
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
private Long v8;
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
private BigDecimal g1;
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
private Long v9;
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
private BigDecimal g2;
|
||||
/**
|
||||
* g3
|
||||
*/
|
||||
private BigDecimal g3;
|
||||
/**
|
||||
* g4
|
||||
*/
|
||||
private BigDecimal g4;
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
private Long v10;
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
private BigDecimal g5;
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
private Long v11;
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
private Long v12;
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
private BigDecimal g6;
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
private Long v13;
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
private Long v14;
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
private BigDecimal g7;
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
private Long v15;
|
||||
/**
|
||||
* v16
|
||||
*/
|
||||
private Long v16;
|
||||
/**
|
||||
* v17
|
||||
*/
|
||||
private Long v17;
|
||||
/**
|
||||
* v18
|
||||
*/
|
||||
private Long v18;
|
||||
/**
|
||||
* v19
|
||||
*/
|
||||
private Long v19;
|
||||
/**
|
||||
* v20
|
||||
*/
|
||||
private Long v20;
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
private Long v41;
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
private Long v42;
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
private Long v43;
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
private Long v44;
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
private Long v45;
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
private Long v46;
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
private Long v47;
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
private Long v48;
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
private Long v49;
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
private Long v50;
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
private Long v51;
|
||||
|
||||
}
|
||||
@ -0,0 +1,129 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* device_spec_30D 对象 device_spec_30d
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_30d")
|
||||
public class DeviceSpec30d extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
private Long v1;
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
private Long v2;
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
private Long v3;
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
private Long v5;
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
private Long v6;
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
private Long v8;
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
private BigDecimal g1;
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
private Long v10;
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
private BigDecimal g5;
|
||||
/**
|
||||
* g8
|
||||
*/
|
||||
private BigDecimal g8;
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
private Long v12;
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
private BigDecimal g6;
|
||||
/**
|
||||
* g9
|
||||
*/
|
||||
private BigDecimal g9;
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
private Long v41;
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
private Long v42;
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
private Long v43;
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
private Long v44;
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
private Long v45;
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
private Long v46;
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
private Long v47;
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
private Long v48;
|
||||
|
||||
}
|
||||
@ -0,0 +1,109 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 30S设备规格参数对象 device_spec_30s
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_30s")
|
||||
public class DeviceSpec30s extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
private Long v1;
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
private Long v2;
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
private Long v3;
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
private Long v5;
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
private Long v8;
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
private BigDecimal g1;
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
private Long v10;
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
private BigDecimal g5;
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
private Long v12;
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
private BigDecimal g6;
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
private Long v41;
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
private Long v42;
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
private Long v43;
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
private Long v44;
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
private Long v45;
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
private Long v46;
|
||||
|
||||
}
|
||||
@ -125,5 +125,12 @@ public class DeviceSpec35r extends BaseEntity {
|
||||
* 35E链板
|
||||
*/
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long V47;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long V48;
|
||||
}
|
||||
|
||||
@ -0,0 +1,157 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 40R设备规格参数对象 device_spec_40r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_40r")
|
||||
public class DeviceSpec40r extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
private Long V1;
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
private Long V2;
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
private Long V3;
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
private Long V5;
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
private Long V6;
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
private Long V8;
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
private BigDecimal G1;
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
private Long V9;
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
private BigDecimal G2;
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
private Long V10;
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
private BigDecimal G5;
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
private Long V11;
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
private Long V12;
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
private BigDecimal G6;
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
private Long V13;
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
private Long V14;
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
private BigDecimal G7;
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
private Long V15;
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
private Long V41;
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
private Long V42;
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
private Long V43;
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
private Long V44;
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
private Long V45;
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
private Long V46;
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
private Long V47;
|
||||
/**
|
||||
* 卡簧
|
||||
*/
|
||||
private Long V48;
|
||||
/**
|
||||
* 链套轴
|
||||
*/
|
||||
private Long V49;
|
||||
/**
|
||||
* 链套
|
||||
*/
|
||||
private Long V50;
|
||||
|
||||
}
|
||||
@ -0,0 +1,169 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 40S设备规格参数对象 device_spec_40s
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_40s")
|
||||
public class DeviceSpec40s extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
private Long V1;
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
private Long V2;
|
||||
/**
|
||||
* P40SI设备总仓
|
||||
*/
|
||||
private Long V22;
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
private Long V3;
|
||||
/**
|
||||
* P40SI地脚位置
|
||||
*/
|
||||
private Long V23;
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
private Long V5;
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
private Long V6;
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
private Long V8;
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
private BigDecimal G1;
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
private Long V9;
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
private BigDecimal G2;
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
private Long V10;
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
private BigDecimal G5;
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
private Long V11;
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
private Long V12;
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
private BigDecimal G6;
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
private Long V13;
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
private Long V14;
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
private BigDecimal G7;
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
private Long V15;
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
private Long V41;
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
private Long V42;
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
private Long V43;
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
private Long V44;
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
private Long V45;
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
private Long V46;
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
private Long V47;
|
||||
/**
|
||||
* 垫圈
|
||||
*/
|
||||
private Long V48;
|
||||
/**
|
||||
* 挡圈
|
||||
*/
|
||||
private Long V49;
|
||||
/**
|
||||
* 滚轮隔套
|
||||
*/
|
||||
private Long V50;
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
private Long V51;
|
||||
|
||||
}
|
||||
@ -0,0 +1,157 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 60R设备规格参数对象 device_spec_60r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_60r")
|
||||
public class DeviceSpec60r extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
private Long v1;
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
private Long v2;
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
private Long v3;
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
private Long v5;
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
private Long v6;
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
private Long v8;
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
private BigDecimal g1;
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
private Long v9;
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
private BigDecimal g2;
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
private Long v10;
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
private BigDecimal g5;
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
private Long v11;
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
private Long v12;
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
private BigDecimal g6;
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
private Long v13;
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
private Long v14;
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
private BigDecimal g7;
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
private Long v15;
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
private Long v41;
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
private Long v42;
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
private Long v43;
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
private Long v44;
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
private Long v45;
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
private Long v46;
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
private Long v47;
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
private Long v48;
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
private Long v49;
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
private Long v50;
|
||||
|
||||
}
|
||||
@ -0,0 +1,161 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 80R设备规格参数对象 device_spec_80r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("device_spec_80r")
|
||||
public class DeviceSpec80r extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
private String travelLength;
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String itemType;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
private Long v1;
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
private Long v2;
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
private Long v3;
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
private Long v5;
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
private Long v6;
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
private Long v8;
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
private BigDecimal g1;
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
private Long v9;
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
private BigDecimal g2;
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
private Long v10;
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
private BigDecimal g5;
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
private Long v11;
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
private Long v12;
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
private BigDecimal g6;
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
private Long v13;
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
private Long v14;
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
private BigDecimal g7;
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
private Long v15;
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
private Long v41;
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
private Long v42;
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
private Long v43;
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
private Long v44;
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
private Long v45;
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
private Long v46;
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
private Long v47;
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
private Long v48;
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
private Long v49;
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
private Long v50;
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
private Long v51;
|
||||
|
||||
}
|
||||
@ -57,4 +57,12 @@ public class FigureSave extends BaseEntity {
|
||||
* 关联项目表
|
||||
*/
|
||||
private Long pid;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
private String axialType;
|
||||
/**
|
||||
* 箱体类型
|
||||
*/
|
||||
private String boxType;
|
||||
}
|
||||
|
||||
@ -0,0 +1,246 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 100R设备规格参数业务对象 device_spec_100r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec100rBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@NotNull(message = "行程不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V1;
|
||||
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
@NotNull(message = "设备总长不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V2;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@NotNull(message = "地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V3;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@NotNull(message = "地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V4;
|
||||
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
@NotNull(message = "箱体装配长度不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V5;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@NotNull(message = "箱体地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V6;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@NotNull(message = "箱体地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V7;
|
||||
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
@NotNull(message = "铝箱长度1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V8;
|
||||
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
@NotNull(message = "铝箱1重量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G1;
|
||||
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
@NotNull(message = "铝箱长度2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V9;
|
||||
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
@NotNull(message = "铝箱2重量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G2;
|
||||
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
@NotNull(message = "导向条长度1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V10;
|
||||
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
@NotNull(message = "导向条1单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G5;
|
||||
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
@NotNull(message = "导向条长度1数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V11;
|
||||
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
@NotNull(message = "导向条长度2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V12;
|
||||
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
@NotNull(message = "导向条2单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G6;
|
||||
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
@NotNull(message = "导向条2数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V13;
|
||||
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
@NotNull(message = "导向条长度3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V14;
|
||||
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
@NotNull(message = "导向条3单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G7;
|
||||
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
@NotNull(message = "导向条3数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V15;
|
||||
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
@NotNull(message = "外链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V41;
|
||||
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
@NotNull(message = "内链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V42;
|
||||
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
@NotNull(message = "连接板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V43;
|
||||
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
@NotNull(message = "滚轮轴不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V44;
|
||||
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
@NotNull(message = "隔套不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V45;
|
||||
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
@NotNull(message = "隔垫不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
@NotNull(message = "滚轮不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
* 垫圈
|
||||
*/
|
||||
@NotNull(message = "垫圈不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V48;
|
||||
|
||||
/**
|
||||
* 挡圈
|
||||
*/
|
||||
@NotNull(message = "挡圈不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V49;
|
||||
|
||||
/**
|
||||
* 滚轮隔套
|
||||
*/
|
||||
@NotNull(message = "滚轮隔套不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V50;
|
||||
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
@NotNull(message = "内链板组件不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V51;
|
||||
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
@NotNull(message = "内链板组件不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V52;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,282 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 125R设备规格参数业务对象 device_spec_125r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec125rBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@NotBlank(message = "行程不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@NotNull(message = "v1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@NotNull(message = "v2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@NotNull(message = "v3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v4
|
||||
*/
|
||||
@NotNull(message = "v4不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v4;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@NotNull(message = "v5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@NotNull(message = "v6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v7
|
||||
*/
|
||||
@NotNull(message = "v7不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v7;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@NotNull(message = "v8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@NotNull(message = "g1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@NotNull(message = "v9不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@NotNull(message = "g2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* g3
|
||||
*/
|
||||
@NotNull(message = "g3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g3;
|
||||
|
||||
/**
|
||||
* g4
|
||||
*/
|
||||
@NotNull(message = "g4不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g4;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@NotNull(message = "v10不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@NotNull(message = "g5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@NotNull(message = "v11不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@NotNull(message = "v12不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@NotNull(message = "g6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@NotNull(message = "v13不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@NotNull(message = "v14不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@NotNull(message = "g7不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@NotNull(message = "v15不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v16
|
||||
*/
|
||||
@NotNull(message = "v16不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v16;
|
||||
|
||||
/**
|
||||
* v17
|
||||
*/
|
||||
@NotNull(message = "v17不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v17;
|
||||
|
||||
/**
|
||||
* v18
|
||||
*/
|
||||
@NotNull(message = "v18不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v18;
|
||||
|
||||
/**
|
||||
* v19
|
||||
*/
|
||||
@NotNull(message = "v19不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v19;
|
||||
|
||||
/**
|
||||
* v20
|
||||
*/
|
||||
@NotNull(message = "v20不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v20;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@NotNull(message = "v41不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@NotNull(message = "v42不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@NotNull(message = "v43不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@NotNull(message = "v44不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@NotNull(message = "v45不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@NotNull(message = "v46不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@NotNull(message = "v47不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@NotNull(message = "v48不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@NotNull(message = "v49不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@NotNull(message = "v50不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v50;
|
||||
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
@NotNull(message = "v51不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v51;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,306 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 150R设备规格参数业务对象 device_spec_150r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec150rBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@NotBlank(message = "行程不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@NotNull(message = "v1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@NotNull(message = "v2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@NotNull(message = "v3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v4
|
||||
*/
|
||||
@NotNull(message = "v4不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v4;
|
||||
|
||||
/**
|
||||
* v21
|
||||
*/
|
||||
@NotNull(message = "v21不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v21;
|
||||
|
||||
/**
|
||||
* v22
|
||||
*/
|
||||
@NotNull(message = "v22不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v22;
|
||||
|
||||
/**
|
||||
* v23
|
||||
*/
|
||||
@NotNull(message = "v23不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v23;
|
||||
|
||||
/**
|
||||
* v24
|
||||
*/
|
||||
@NotNull(message = "v24不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v24;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@NotNull(message = "v5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@NotNull(message = "v6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v7
|
||||
*/
|
||||
@NotNull(message = "v7不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v7;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@NotNull(message = "v8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@NotNull(message = "g1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@NotNull(message = "v9不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@NotNull(message = "g2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* g3
|
||||
*/
|
||||
@NotNull(message = "g3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g3;
|
||||
|
||||
/**
|
||||
* g4
|
||||
*/
|
||||
@NotNull(message = "g4不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g4;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@NotNull(message = "v10不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@NotNull(message = "g5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@NotNull(message = "v11不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@NotNull(message = "v12不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@NotNull(message = "g6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@NotNull(message = "v13不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@NotNull(message = "v14不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@NotNull(message = "g7不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@NotNull(message = "v15不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v16
|
||||
*/
|
||||
@NotNull(message = "v16不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v16;
|
||||
|
||||
/**
|
||||
* v17
|
||||
*/
|
||||
@NotNull(message = "v17不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v17;
|
||||
|
||||
/**
|
||||
* v18
|
||||
*/
|
||||
@NotNull(message = "v18不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v18;
|
||||
|
||||
/**
|
||||
* v19
|
||||
*/
|
||||
@NotNull(message = "v19不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v19;
|
||||
|
||||
/**
|
||||
* v20
|
||||
*/
|
||||
@NotNull(message = "v20不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v20;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@NotNull(message = "v41不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@NotNull(message = "v42不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@NotNull(message = "v43不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@NotNull(message = "v44不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@NotNull(message = "v45不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@NotNull(message = "v46不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@NotNull(message = "v47不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@NotNull(message = "v48不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@NotNull(message = "v49不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@NotNull(message = "v50不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v50;
|
||||
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
@NotNull(message = "v51不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v51;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,179 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
/**
|
||||
* device_spec_30D 业务对象 device_spec_30d
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec30dBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@NotNull(message = "v1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@NotNull(message = "v2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@NotNull(message = "v3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@NotNull(message = "v5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@NotNull(message = "v6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@NotNull(message = "v8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@NotNull(message = "g1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@NotNull(message = "v10不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@NotNull(message = "g5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* g8
|
||||
*/
|
||||
@NotNull(message = "g8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g8;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@NotNull(message = "v12不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@NotNull(message = "g6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* g9
|
||||
*/
|
||||
@NotNull(message = "g9不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g9;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@NotNull(message = "v41不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@NotNull(message = "v42不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@NotNull(message = "v43不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@NotNull(message = "v44不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@NotNull(message = "v45不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@NotNull(message = "v46不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@NotNull(message = "v47不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@NotNull(message = "v48不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v48;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,149 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
/**
|
||||
* 30S设备规格参数业务对象 device_spec_30s
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec30sBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@NotNull(message = "v1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@NotNull(message = "v2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@NotNull(message = "v3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@NotNull(message = "v5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@NotNull(message = "v8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@NotNull(message = "g1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@NotNull(message = "v10不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@NotNull(message = "g5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@NotNull(message = "v12不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@NotNull(message = "g6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@NotNull(message = "v41不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@NotNull(message = "v42不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@NotNull(message = "v43不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@NotNull(message = "v44不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@NotNull(message = "v45不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@NotNull(message = "v46不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v46;
|
||||
|
||||
|
||||
}
|
||||
@ -175,6 +175,17 @@ public class DeviceSpec35rBo extends BaseEntity {
|
||||
*/
|
||||
@NotNull(message = "35E链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V46;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "V47不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "V48不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V48;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,222 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 40R设备规格参数业务对象 device_spec_40r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec40rBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@NotNull(message = "行程不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V1;
|
||||
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
@NotNull(message = "设备总长不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V2;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@NotNull(message = "地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V3;
|
||||
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
@NotNull(message = "箱体装配长度不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V5;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@NotNull(message = "箱体地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V6;
|
||||
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
@NotNull(message = "铝箱长度1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V8;
|
||||
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
@NotNull(message = "铝箱1重量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G1;
|
||||
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
@NotNull(message = "铝箱长度2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V9;
|
||||
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
@NotNull(message = "铝箱2重量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G2;
|
||||
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
@NotNull(message = "导向条长度1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V10;
|
||||
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
@NotNull(message = "导向条1单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G5;
|
||||
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
@NotNull(message = "导向条长度1数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V11;
|
||||
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
@NotNull(message = "导向条长度2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V12;
|
||||
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
@NotNull(message = "导向条2单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G6;
|
||||
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
@NotNull(message = "导向条2数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V13;
|
||||
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
@NotNull(message = "导向条长度3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V14;
|
||||
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
@NotNull(message = "导向条3单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G7;
|
||||
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
@NotNull(message = "导向条3数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V15;
|
||||
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
@NotNull(message = "外链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V41;
|
||||
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
@NotNull(message = "内链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V42;
|
||||
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
@NotNull(message = "连接板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V43;
|
||||
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
@NotNull(message = "滚轮轴不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V44;
|
||||
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
@NotNull(message = "隔套不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V45;
|
||||
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
@NotNull(message = "隔垫不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
@NotNull(message = "滚轮不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
* 卡簧
|
||||
*/
|
||||
@NotNull(message = "卡簧不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V48;
|
||||
|
||||
/**
|
||||
* 链套轴
|
||||
*/
|
||||
@NotNull(message = "链套轴不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V49;
|
||||
|
||||
/**
|
||||
* 链套
|
||||
*/
|
||||
@NotNull(message = "链套不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V50;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,240 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 40S设备规格参数业务对象 device_spec_40s
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec40sBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@NotNull(message = "行程不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V1;
|
||||
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
@NotNull(message = "设备总长不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V2;
|
||||
|
||||
/**
|
||||
* P40SI设备总仓
|
||||
*/
|
||||
@NotNull(message = "P40SI设备总仓不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V22;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@NotNull(message = "地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V3;
|
||||
|
||||
/**
|
||||
* P40SI地脚位置
|
||||
*/
|
||||
@NotNull(message = "P40SI地脚位置不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V23;
|
||||
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
@NotNull(message = "箱体装配长度不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V5;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@NotNull(message = "箱体地脚位置1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V6;
|
||||
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
@NotNull(message = "铝箱长度1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V8;
|
||||
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
@NotNull(message = "铝箱1重量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G1;
|
||||
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
@NotNull(message = "铝箱长度2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V9;
|
||||
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
@NotNull(message = "铝箱2重量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G2;
|
||||
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
@NotNull(message = "导向条长度1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V10;
|
||||
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
@NotNull(message = "导向条1单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G5;
|
||||
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
@NotNull(message = "导向条长度1数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V11;
|
||||
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
@NotNull(message = "导向条长度2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V12;
|
||||
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
@NotNull(message = "导向条2单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G6;
|
||||
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
@NotNull(message = "导向条2数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V13;
|
||||
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
@NotNull(message = "导向条长度3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V14;
|
||||
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
@NotNull(message = "导向条3单重不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal G7;
|
||||
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
@NotNull(message = "导向条3数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V15;
|
||||
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
@NotNull(message = "外链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V41;
|
||||
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
@NotNull(message = "内链板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V42;
|
||||
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
@NotNull(message = "连接板不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V43;
|
||||
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
@NotNull(message = "滚轮轴不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V44;
|
||||
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
@NotNull(message = "隔套不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V45;
|
||||
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
@NotNull(message = "隔垫不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
@NotNull(message = "滚轮不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
* 垫圈
|
||||
*/
|
||||
@NotNull(message = "垫圈不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V48;
|
||||
|
||||
/**
|
||||
* 挡圈
|
||||
*/
|
||||
@NotNull(message = "挡圈不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V49;
|
||||
|
||||
/**
|
||||
* 滚轮隔套
|
||||
*/
|
||||
@NotNull(message = "滚轮隔套不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V50;
|
||||
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
@NotNull(message = "内链板组件不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long V51;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,221 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
/**
|
||||
* 60R设备规格参数业务对象 device_spec_60r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec60rBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@NotNull(message = "v1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@NotNull(message = "v2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@NotNull(message = "v3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@NotNull(message = "v5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@NotNull(message = "v6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@NotNull(message = "v8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@NotNull(message = "g1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@NotNull(message = "v9不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@NotNull(message = "g2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@NotNull(message = "v10不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@NotNull(message = "g5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@NotNull(message = "v11不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@NotNull(message = "v12不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@NotNull(message = "g6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@NotNull(message = "v13不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@NotNull(message = "v14不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@NotNull(message = "g7不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@NotNull(message = "v15不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@NotNull(message = "v41不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@NotNull(message = "v42不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@NotNull(message = "v43不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@NotNull(message = "v44不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@NotNull(message = "v45不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@NotNull(message = "v46不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@NotNull(message = "v47不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@NotNull(message = "v48不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@NotNull(message = "v49不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@NotNull(message = "v50不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v50;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,228 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 80R设备规格参数业务对象 device_spec_80r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class DeviceSpec80rBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@NotBlank(message = "行程变量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@NotBlank(message = "轴向不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@NotBlank(message = "箱体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@NotNull(message = "v1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@NotNull(message = "v2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@NotNull(message = "v3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@NotNull(message = "v5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@NotNull(message = "v6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@NotNull(message = "v8不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@NotNull(message = "g1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@NotNull(message = "v9不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@NotNull(message = "g2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@NotNull(message = "v10不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@NotNull(message = "g5不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@NotNull(message = "v11不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@NotNull(message = "v12不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@NotNull(message = "g6不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@NotNull(message = "v13不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@NotNull(message = "v14不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@NotNull(message = "g7不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@NotNull(message = "v15不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@NotNull(message = "v41不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@NotNull(message = "v42不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@NotNull(message = "v43不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@NotNull(message = "v44不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@NotNull(message = "v45不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@NotNull(message = "v46不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@NotNull(message = "v47不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@NotNull(message = "v48不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@NotNull(message = "v49不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@NotNull(message = "v50不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v50;
|
||||
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
@NotNull(message = "v51不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long v51;
|
||||
|
||||
|
||||
}
|
||||
@ -1,31 +1,35 @@
|
||||
package com.ruoyi.system.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 外购件临时业务对象 figure_save
|
||||
*
|
||||
* @author tzy
|
||||
* @date 2024-05-28
|
||||
* @author ruoyi
|
||||
* @date 2025-12-04
|
||||
*/
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class FigureSaveBo extends BaseEntity {
|
||||
|
||||
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联项目表
|
||||
*/
|
||||
@NotNull(message = "关联项目表不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long pid;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
@ -44,6 +48,12 @@ public class FigureSaveBo extends BaseEntity {
|
||||
@NotBlank(message = "产品型号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String figureNumber;
|
||||
|
||||
/**
|
||||
* 图纸路径
|
||||
*/
|
||||
@NotBlank(message = "图纸路径不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String drawPath;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
@ -58,16 +68,17 @@ public class FigureSaveBo extends BaseEntity {
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String productType;
|
||||
/**
|
||||
* 图纸路径
|
||||
*/
|
||||
private String drawPath;
|
||||
|
||||
/**
|
||||
* 关联项目表
|
||||
* 轴向
|
||||
*/
|
||||
@NotNull(message = "关联项目表不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long pid;
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
private String boxType;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import com.ruoyi.common.core.validate.EditGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import javax.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
@ -53,19 +54,19 @@ public class KingdeeWorkCenterDataBo extends BaseEntity {
|
||||
* 生产数量
|
||||
*/
|
||||
@NotNull(message = "生产数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long operQty;
|
||||
private BigDecimal operQty;
|
||||
|
||||
/**
|
||||
* 转入数量
|
||||
*/
|
||||
@NotNull(message = "转入数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long transInQty;
|
||||
private BigDecimal transInQty;
|
||||
|
||||
/**
|
||||
* 转出数量
|
||||
*/
|
||||
@NotNull(message = "转出数量不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long transOutQty;
|
||||
private BigDecimal transOutQty;
|
||||
|
||||
/**
|
||||
* 物料状态
|
||||
@ -97,6 +98,16 @@ public class KingdeeWorkCenterDataBo extends BaseEntity {
|
||||
@NotBlank(message = "计划完成时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String operPlanFinishTime;
|
||||
|
||||
/**
|
||||
* 计划开始时间2 (YYYY-MM-DD)
|
||||
*/
|
||||
private String operPlanStartTime2;
|
||||
|
||||
/**
|
||||
* 计划完成时间2 (YYYY-MM-DD)
|
||||
*/
|
||||
private String operPlanFinishTime2;
|
||||
|
||||
/**
|
||||
* 延迟天数
|
||||
*/
|
||||
@ -109,5 +120,13 @@ public class KingdeeWorkCenterDataBo extends BaseEntity {
|
||||
*/
|
||||
@NotBlank(message = "工作中心不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String workCenter;
|
||||
/**
|
||||
* 汇报数量
|
||||
*/
|
||||
private BigDecimal FReportQty;
|
||||
/**
|
||||
* 工废数量
|
||||
*/
|
||||
private BigDecimal FScrapQty;
|
||||
|
||||
}
|
||||
|
||||
@ -22,25 +22,21 @@ public class SysConfigIniBo extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@NotNull(message = "主键id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* dir
|
||||
*/
|
||||
@NotBlank(message = "dir不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String dir;
|
||||
|
||||
/**
|
||||
* 路径
|
||||
*/
|
||||
@NotBlank(message = "路径不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 项目图纸路径
|
||||
*/
|
||||
@NotBlank(message = "项目图纸路径不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String productDir;
|
||||
|
||||
/**
|
||||
@ -58,31 +54,26 @@ public class SysConfigIniBo extends BaseEntity {
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 备用字段1
|
||||
*/
|
||||
@NotBlank(message = "备用字段1不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String sparedOne;
|
||||
|
||||
/**
|
||||
* 备用字段2
|
||||
*/
|
||||
@NotBlank(message = "备用字段2不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String sparedTwo;
|
||||
|
||||
/**
|
||||
* 备用字段3
|
||||
*/
|
||||
@NotNull(message = "备用字段3不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long sparedThree;
|
||||
|
||||
/**
|
||||
* 备用字段4
|
||||
*/
|
||||
@NotNull(message = "备用字段4不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long sparedFour;
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
package com.ruoyi.system.domain.dto;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
@Data
|
||||
public class ChengBeDTO {
|
||||
/** 序号 */
|
||||
@ExcelProperty(value = "序号")
|
||||
private String seqNo;
|
||||
|
||||
/** 图号 */
|
||||
@ExcelProperty(value = "图号")
|
||||
private String drawingNo;
|
||||
|
||||
/** 名称 */
|
||||
@ExcelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/** 单台数量 */
|
||||
@ExcelProperty(value = "单台数量")
|
||||
private BigDecimal qtyPerUnit;
|
||||
|
||||
/** 材料 */
|
||||
@ExcelProperty(value = "材料")
|
||||
private String material;
|
||||
|
||||
/** 规格型号 */
|
||||
@ExcelProperty(value = "规格型号")
|
||||
private String specification;
|
||||
|
||||
/** 单重 */
|
||||
@ExcelProperty(value = "单重")
|
||||
private BigDecimal unitWeight;
|
||||
|
||||
/** 本批数量 */
|
||||
@ExcelProperty(value = "本批数量")
|
||||
private BigDecimal batchQty;
|
||||
|
||||
/** 成本单价 */
|
||||
@ExcelProperty(value = "成本单价")
|
||||
private BigDecimal costUnitPrice;
|
||||
|
||||
/** 备注 */
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
}
|
||||
@ -33,4 +33,6 @@ public class PlanPrcessNumDTO {
|
||||
private Date FOperPlanFinishTime;
|
||||
@JsonProperty("FMONumber")
|
||||
private String FMONumber;
|
||||
@JsonProperty("F_HBYT_RKCK.FName")
|
||||
private String FRKCKFName;
|
||||
}
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
package com.ruoyi.system.domain.dto.excuteDrawing;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class RigidChainModelDTO {
|
||||
private Long id;
|
||||
|
||||
private Long pid;
|
||||
//生产令号
|
||||
private String productionCode;
|
||||
//类型
|
||||
private String productType;
|
||||
//变量
|
||||
private String journey;
|
||||
//轴向
|
||||
private String axialType;
|
||||
//箱体
|
||||
private String boxType;
|
||||
//数量
|
||||
private Integer figureNum;
|
||||
//文件类型
|
||||
private String selectedFileType;
|
||||
//文件路径
|
||||
private String drawPath;
|
||||
|
||||
private String figureNumber;
|
||||
private String productName;
|
||||
private String figureName;
|
||||
}
|
||||
|
||||
@ -0,0 +1,246 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 100R设备规格参数视图对象 device_spec_100r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec100rVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@ExcelProperty(value = "行程")
|
||||
private Long V1;
|
||||
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
@ExcelProperty(value = "设备总长")
|
||||
private Long V2;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "地脚位置1")
|
||||
private Long V3;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "地脚位置1")
|
||||
private Long V4;
|
||||
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
@ExcelProperty(value = "箱体装配长度")
|
||||
private Long V5;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "箱体地脚位置1")
|
||||
private Long V6;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "箱体地脚位置1")
|
||||
private Long V7;
|
||||
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱长度1")
|
||||
private Long V8;
|
||||
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱1重量")
|
||||
private BigDecimal G1;
|
||||
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱长度2")
|
||||
private Long V9;
|
||||
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱2重量")
|
||||
private BigDecimal G2;
|
||||
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度1")
|
||||
private Long V10;
|
||||
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条1单重")
|
||||
private BigDecimal G5;
|
||||
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度1数量")
|
||||
private Long V11;
|
||||
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度2")
|
||||
private Long V12;
|
||||
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条2单重")
|
||||
private BigDecimal G6;
|
||||
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条2数量")
|
||||
private Long V13;
|
||||
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度3")
|
||||
private Long V14;
|
||||
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条3单重")
|
||||
private BigDecimal G7;
|
||||
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条3数量")
|
||||
private Long V15;
|
||||
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
@ExcelProperty(value = "外链板")
|
||||
private Long V41;
|
||||
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
@ExcelProperty(value = "内链板")
|
||||
private Long V42;
|
||||
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
@ExcelProperty(value = "连接板")
|
||||
private Long V43;
|
||||
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮轴")
|
||||
private Long V44;
|
||||
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
@ExcelProperty(value = "隔套")
|
||||
private Long V45;
|
||||
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
@ExcelProperty(value = "隔垫")
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮")
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
* 垫圈
|
||||
*/
|
||||
@ExcelProperty(value = "垫圈")
|
||||
private Long V48;
|
||||
|
||||
/**
|
||||
* 挡圈
|
||||
*/
|
||||
@ExcelProperty(value = "挡圈")
|
||||
private Long V49;
|
||||
|
||||
/**
|
||||
* 滚轮隔套
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮隔套")
|
||||
private Long V50;
|
||||
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
@ExcelProperty(value = "内链板组件")
|
||||
private Long V51;
|
||||
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
@ExcelProperty(value = "内链板组件")
|
||||
private Long V52;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,282 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 125R设备规格参数视图对象 device_spec_125r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec125rVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@ExcelProperty(value = "行程")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@ExcelProperty(value = "v1")
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@ExcelProperty(value = "v2")
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@ExcelProperty(value = "v3")
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v4
|
||||
*/
|
||||
@ExcelProperty(value = "v4")
|
||||
private Long v4;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@ExcelProperty(value = "v5")
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@ExcelProperty(value = "v6")
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v7
|
||||
*/
|
||||
@ExcelProperty(value = "v7")
|
||||
private Long v7;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@ExcelProperty(value = "v8")
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@ExcelProperty(value = "g1")
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@ExcelProperty(value = "v9")
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@ExcelProperty(value = "g2")
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* g3
|
||||
*/
|
||||
@ExcelProperty(value = "g3")
|
||||
private BigDecimal g3;
|
||||
|
||||
/**
|
||||
* g4
|
||||
*/
|
||||
@ExcelProperty(value = "g4")
|
||||
private BigDecimal g4;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@ExcelProperty(value = "v10")
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@ExcelProperty(value = "g5")
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@ExcelProperty(value = "v11")
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@ExcelProperty(value = "v12")
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@ExcelProperty(value = "g6")
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@ExcelProperty(value = "v13")
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@ExcelProperty(value = "v14")
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@ExcelProperty(value = "g7")
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@ExcelProperty(value = "v15")
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v16
|
||||
*/
|
||||
@ExcelProperty(value = "v16")
|
||||
private Long v16;
|
||||
|
||||
/**
|
||||
* v17
|
||||
*/
|
||||
@ExcelProperty(value = "v17")
|
||||
private Long v17;
|
||||
|
||||
/**
|
||||
* v18
|
||||
*/
|
||||
@ExcelProperty(value = "v18")
|
||||
private Long v18;
|
||||
|
||||
/**
|
||||
* v19
|
||||
*/
|
||||
@ExcelProperty(value = "v19")
|
||||
private Long v19;
|
||||
|
||||
/**
|
||||
* v20
|
||||
*/
|
||||
@ExcelProperty(value = "v20")
|
||||
private Long v20;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@ExcelProperty(value = "v41")
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@ExcelProperty(value = "v42")
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@ExcelProperty(value = "v43")
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@ExcelProperty(value = "v44")
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@ExcelProperty(value = "v45")
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@ExcelProperty(value = "v46")
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@ExcelProperty(value = "v47")
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@ExcelProperty(value = "v48")
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@ExcelProperty(value = "v49")
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@ExcelProperty(value = "v50")
|
||||
private Long v50;
|
||||
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
@ExcelProperty(value = "v51")
|
||||
private Long v51;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,306 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 150R设备规格参数视图对象 device_spec_150r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec150rVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@ExcelProperty(value = "行程")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@ExcelProperty(value = "v1")
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@ExcelProperty(value = "v2")
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@ExcelProperty(value = "v3")
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v4
|
||||
*/
|
||||
@ExcelProperty(value = "v4")
|
||||
private Long v4;
|
||||
|
||||
/**
|
||||
* v21
|
||||
*/
|
||||
@ExcelProperty(value = "v21")
|
||||
private Long v21;
|
||||
|
||||
/**
|
||||
* v22
|
||||
*/
|
||||
@ExcelProperty(value = "v22")
|
||||
private Long v22;
|
||||
|
||||
/**
|
||||
* v23
|
||||
*/
|
||||
@ExcelProperty(value = "v23")
|
||||
private Long v23;
|
||||
|
||||
/**
|
||||
* v24
|
||||
*/
|
||||
@ExcelProperty(value = "v24")
|
||||
private Long v24;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@ExcelProperty(value = "v5")
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@ExcelProperty(value = "v6")
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v7
|
||||
*/
|
||||
@ExcelProperty(value = "v7")
|
||||
private Long v7;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@ExcelProperty(value = "v8")
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@ExcelProperty(value = "g1")
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@ExcelProperty(value = "v9")
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@ExcelProperty(value = "g2")
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* g3
|
||||
*/
|
||||
@ExcelProperty(value = "g3")
|
||||
private BigDecimal g3;
|
||||
|
||||
/**
|
||||
* g4
|
||||
*/
|
||||
@ExcelProperty(value = "g4")
|
||||
private BigDecimal g4;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@ExcelProperty(value = "v10")
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@ExcelProperty(value = "g5")
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@ExcelProperty(value = "v11")
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@ExcelProperty(value = "v12")
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@ExcelProperty(value = "g6")
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@ExcelProperty(value = "v13")
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@ExcelProperty(value = "v14")
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@ExcelProperty(value = "g7")
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@ExcelProperty(value = "v15")
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v16
|
||||
*/
|
||||
@ExcelProperty(value = "v16")
|
||||
private Long v16;
|
||||
|
||||
/**
|
||||
* v17
|
||||
*/
|
||||
@ExcelProperty(value = "v17")
|
||||
private Long v17;
|
||||
|
||||
/**
|
||||
* v18
|
||||
*/
|
||||
@ExcelProperty(value = "v18")
|
||||
private Long v18;
|
||||
|
||||
/**
|
||||
* v19
|
||||
*/
|
||||
@ExcelProperty(value = "v19")
|
||||
private Long v19;
|
||||
|
||||
/**
|
||||
* v20
|
||||
*/
|
||||
@ExcelProperty(value = "v20")
|
||||
private Long v20;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@ExcelProperty(value = "v41")
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@ExcelProperty(value = "v42")
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@ExcelProperty(value = "v43")
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@ExcelProperty(value = "v44")
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@ExcelProperty(value = "v45")
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@ExcelProperty(value = "v46")
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@ExcelProperty(value = "v47")
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@ExcelProperty(value = "v48")
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@ExcelProperty(value = "v49")
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@ExcelProperty(value = "v50")
|
||||
private Long v50;
|
||||
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
@ExcelProperty(value = "v51")
|
||||
private Long v51;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,180 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* device_spec_30D 视图对象 device_spec_30d
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec30dVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@ExcelProperty(value = "v1")
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@ExcelProperty(value = "v2")
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@ExcelProperty(value = "v3")
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@ExcelProperty(value = "v5")
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@ExcelProperty(value = "v6")
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@ExcelProperty(value = "v8")
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@ExcelProperty(value = "g1")
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@ExcelProperty(value = "v10")
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@ExcelProperty(value = "g5")
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* g8
|
||||
*/
|
||||
@ExcelProperty(value = "g8")
|
||||
private BigDecimal g8;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@ExcelProperty(value = "v12")
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@ExcelProperty(value = "g6")
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* g9
|
||||
*/
|
||||
@ExcelProperty(value = "g9")
|
||||
private BigDecimal g9;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@ExcelProperty(value = "v41")
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@ExcelProperty(value = "v42")
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@ExcelProperty(value = "v43")
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@ExcelProperty(value = "v44")
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@ExcelProperty(value = "v45")
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@ExcelProperty(value = "v46")
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@ExcelProperty(value = "v47")
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@ExcelProperty(value = "v48")
|
||||
private Long v48;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,150 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 30S设备规格参数视图对象 device_spec_30s
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec30sVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@ExcelProperty(value = "v1")
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@ExcelProperty(value = "v2")
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@ExcelProperty(value = "v3")
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@ExcelProperty(value = "v5")
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@ExcelProperty(value = "v8")
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@ExcelProperty(value = "g1")
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@ExcelProperty(value = "v10")
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@ExcelProperty(value = "g5")
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@ExcelProperty(value = "v12")
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@ExcelProperty(value = "g6")
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@ExcelProperty(value = "v41")
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@ExcelProperty(value = "v42")
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@ExcelProperty(value = "v43")
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@ExcelProperty(value = "v44")
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@ExcelProperty(value = "v45")
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@ExcelProperty(value = "v46")
|
||||
private Long v46;
|
||||
|
||||
|
||||
}
|
||||
@ -176,5 +176,15 @@ public class DeviceSpec35rVo {
|
||||
@ExcelProperty(value = "35E链板")
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "V47")
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "V48")
|
||||
private Long V48;
|
||||
}
|
||||
|
||||
@ -0,0 +1,222 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 40R设备规格参数视图对象 device_spec_40r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec40rVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@ExcelProperty(value = "行程")
|
||||
private Long V1;
|
||||
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
@ExcelProperty(value = "设备总长")
|
||||
private Long V2;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "地脚位置1")
|
||||
private Long V3;
|
||||
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
@ExcelProperty(value = "箱体装配长度")
|
||||
private Long V5;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "箱体地脚位置1")
|
||||
private Long V6;
|
||||
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱长度1")
|
||||
private Long V8;
|
||||
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱1重量")
|
||||
private BigDecimal G1;
|
||||
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱长度2")
|
||||
private Long V9;
|
||||
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱2重量")
|
||||
private BigDecimal G2;
|
||||
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度1")
|
||||
private Long V10;
|
||||
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条1单重")
|
||||
private BigDecimal G5;
|
||||
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度1数量")
|
||||
private Long V11;
|
||||
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度2")
|
||||
private Long V12;
|
||||
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条2单重")
|
||||
private BigDecimal G6;
|
||||
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条2数量")
|
||||
private Long V13;
|
||||
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度3")
|
||||
private Long V14;
|
||||
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条3单重")
|
||||
private BigDecimal G7;
|
||||
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条3数量")
|
||||
private Long V15;
|
||||
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
@ExcelProperty(value = "外链板")
|
||||
private Long V41;
|
||||
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
@ExcelProperty(value = "内链板")
|
||||
private Long V42;
|
||||
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
@ExcelProperty(value = "连接板")
|
||||
private Long V43;
|
||||
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮轴")
|
||||
private Long V44;
|
||||
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
@ExcelProperty(value = "隔套")
|
||||
private Long V45;
|
||||
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
@ExcelProperty(value = "隔垫")
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮")
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
* 卡簧
|
||||
*/
|
||||
@ExcelProperty(value = "卡簧")
|
||||
private Long V48;
|
||||
|
||||
/**
|
||||
* 链套轴
|
||||
*/
|
||||
@ExcelProperty(value = "链套轴")
|
||||
private Long V49;
|
||||
|
||||
/**
|
||||
* 链套
|
||||
*/
|
||||
@ExcelProperty(value = "链套")
|
||||
private Long V50;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,240 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 40S设备规格参数视图对象 device_spec_40s
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec40sVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* 行程
|
||||
*/
|
||||
@ExcelProperty(value = "行程")
|
||||
private Long V1;
|
||||
|
||||
/**
|
||||
* 设备总长
|
||||
*/
|
||||
@ExcelProperty(value = "设备总长")
|
||||
private Long V2;
|
||||
|
||||
/**
|
||||
* P40SI设备总仓
|
||||
*/
|
||||
@ExcelProperty(value = "P40SI设备总仓")
|
||||
private Long V22;
|
||||
|
||||
/**
|
||||
* 地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "地脚位置1")
|
||||
private Long V3;
|
||||
|
||||
/**
|
||||
* P40SI地脚位置
|
||||
*/
|
||||
@ExcelProperty(value = "P40SI地脚位置")
|
||||
private Long V23;
|
||||
|
||||
/**
|
||||
* 箱体装配长度
|
||||
*/
|
||||
@ExcelProperty(value = "箱体装配长度")
|
||||
private Long V5;
|
||||
|
||||
/**
|
||||
* 箱体地脚位置1
|
||||
*/
|
||||
@ExcelProperty(value = "箱体地脚位置1")
|
||||
private Long V6;
|
||||
|
||||
/**
|
||||
* 铝箱长度1
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱长度1")
|
||||
private Long V8;
|
||||
|
||||
/**
|
||||
* 铝箱1重量
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱1重量")
|
||||
private BigDecimal G1;
|
||||
|
||||
/**
|
||||
* 铝箱长度2
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱长度2")
|
||||
private Long V9;
|
||||
|
||||
/**
|
||||
* 铝箱2重量
|
||||
*/
|
||||
@ExcelProperty(value = "铝箱2重量")
|
||||
private BigDecimal G2;
|
||||
|
||||
/**
|
||||
* 导向条长度1
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度1")
|
||||
private Long V10;
|
||||
|
||||
/**
|
||||
* 导向条1单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条1单重")
|
||||
private BigDecimal G5;
|
||||
|
||||
/**
|
||||
* 导向条长度1数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度1数量")
|
||||
private Long V11;
|
||||
|
||||
/**
|
||||
* 导向条长度2
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度2")
|
||||
private Long V12;
|
||||
|
||||
/**
|
||||
* 导向条2单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条2单重")
|
||||
private BigDecimal G6;
|
||||
|
||||
/**
|
||||
* 导向条2数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条2数量")
|
||||
private Long V13;
|
||||
|
||||
/**
|
||||
* 导向条长度3
|
||||
*/
|
||||
@ExcelProperty(value = "导向条长度3")
|
||||
private Long V14;
|
||||
|
||||
/**
|
||||
* 导向条3单重
|
||||
*/
|
||||
@ExcelProperty(value = "导向条3单重")
|
||||
private BigDecimal G7;
|
||||
|
||||
/**
|
||||
* 导向条3数量
|
||||
*/
|
||||
@ExcelProperty(value = "导向条3数量")
|
||||
private Long V15;
|
||||
|
||||
/**
|
||||
* 外链板
|
||||
*/
|
||||
@ExcelProperty(value = "外链板")
|
||||
private Long V41;
|
||||
|
||||
/**
|
||||
* 内链板
|
||||
*/
|
||||
@ExcelProperty(value = "内链板")
|
||||
private Long V42;
|
||||
|
||||
/**
|
||||
* 连接板
|
||||
*/
|
||||
@ExcelProperty(value = "连接板")
|
||||
private Long V43;
|
||||
|
||||
/**
|
||||
* 滚轮轴
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮轴")
|
||||
private Long V44;
|
||||
|
||||
/**
|
||||
* 隔套
|
||||
*/
|
||||
@ExcelProperty(value = "隔套")
|
||||
private Long V45;
|
||||
|
||||
/**
|
||||
* 隔垫
|
||||
*/
|
||||
@ExcelProperty(value = "隔垫")
|
||||
private Long V46;
|
||||
|
||||
/**
|
||||
* 滚轮
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮")
|
||||
private Long V47;
|
||||
|
||||
/**
|
||||
* 垫圈
|
||||
*/
|
||||
@ExcelProperty(value = "垫圈")
|
||||
private Long V48;
|
||||
|
||||
/**
|
||||
* 挡圈
|
||||
*/
|
||||
@ExcelProperty(value = "挡圈")
|
||||
private Long V49;
|
||||
|
||||
/**
|
||||
* 滚轮隔套
|
||||
*/
|
||||
@ExcelProperty(value = "滚轮隔套")
|
||||
private Long V50;
|
||||
|
||||
/**
|
||||
* 内链板组件
|
||||
*/
|
||||
@ExcelProperty(value = "内链板组件")
|
||||
private Long V51;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,224 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
|
||||
/**
|
||||
* 60R设备规格参数视图对象 device_spec_60r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec60rVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@ExcelProperty(value = "v1")
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@ExcelProperty(value = "v2")
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@ExcelProperty(value = "v3")
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@ExcelProperty(value = "v5")
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@ExcelProperty(value = "v6")
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@ExcelProperty(value = "v8")
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@ExcelProperty(value = "g1")
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@ExcelProperty(value = "v9")
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@ExcelProperty(value = "g2")
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@ExcelProperty(value = "v10")
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@ExcelProperty(value = "g5")
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@ExcelProperty(value = "v11")
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@ExcelProperty(value = "v12")
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@ExcelProperty(value = "g6")
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@ExcelProperty(value = "v13")
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@ExcelProperty(value = "v14")
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@ExcelProperty(value = "g7")
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@ExcelProperty(value = "v15")
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@ExcelProperty(value = "v41")
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@ExcelProperty(value = "v42")
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@ExcelProperty(value = "v43")
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@ExcelProperty(value = "v44")
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@ExcelProperty(value = "v45")
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@ExcelProperty(value = "v46")
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@ExcelProperty(value = "v47")
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@ExcelProperty(value = "v48")
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@ExcelProperty(value = "v49")
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@ExcelProperty(value = "v50")
|
||||
private Long v50;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,228 @@
|
||||
package com.ruoyi.system.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 80R设备规格参数视图对象 device_spec_80r
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class DeviceSpec80rVo {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 行程变量
|
||||
*/
|
||||
@ExcelProperty(value = "行程变量")
|
||||
private String travelLength;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String itemType;
|
||||
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体
|
||||
*/
|
||||
@ExcelProperty(value = "箱体")
|
||||
private String boxType;
|
||||
|
||||
/**
|
||||
* v1
|
||||
*/
|
||||
@ExcelProperty(value = "v1")
|
||||
private Long v1;
|
||||
|
||||
/**
|
||||
* v2
|
||||
*/
|
||||
@ExcelProperty(value = "v2")
|
||||
private Long v2;
|
||||
|
||||
/**
|
||||
* v3
|
||||
*/
|
||||
@ExcelProperty(value = "v3")
|
||||
private Long v3;
|
||||
|
||||
/**
|
||||
* v5
|
||||
*/
|
||||
@ExcelProperty(value = "v5")
|
||||
private Long v5;
|
||||
|
||||
/**
|
||||
* v6
|
||||
*/
|
||||
@ExcelProperty(value = "v6")
|
||||
private Long v6;
|
||||
|
||||
/**
|
||||
* v8
|
||||
*/
|
||||
@ExcelProperty(value = "v8")
|
||||
private Long v8;
|
||||
|
||||
/**
|
||||
* g1
|
||||
*/
|
||||
@ExcelProperty(value = "g1")
|
||||
private BigDecimal g1;
|
||||
|
||||
/**
|
||||
* v9
|
||||
*/
|
||||
@ExcelProperty(value = "v9")
|
||||
private Long v9;
|
||||
|
||||
/**
|
||||
* g2
|
||||
*/
|
||||
@ExcelProperty(value = "g2")
|
||||
private BigDecimal g2;
|
||||
|
||||
/**
|
||||
* v10
|
||||
*/
|
||||
@ExcelProperty(value = "v10")
|
||||
private Long v10;
|
||||
|
||||
/**
|
||||
* g5
|
||||
*/
|
||||
@ExcelProperty(value = "g5")
|
||||
private BigDecimal g5;
|
||||
|
||||
/**
|
||||
* v11
|
||||
*/
|
||||
@ExcelProperty(value = "v11")
|
||||
private Long v11;
|
||||
|
||||
/**
|
||||
* v12
|
||||
*/
|
||||
@ExcelProperty(value = "v12")
|
||||
private Long v12;
|
||||
|
||||
/**
|
||||
* g6
|
||||
*/
|
||||
@ExcelProperty(value = "g6")
|
||||
private BigDecimal g6;
|
||||
|
||||
/**
|
||||
* v13
|
||||
*/
|
||||
@ExcelProperty(value = "v13")
|
||||
private Long v13;
|
||||
|
||||
/**
|
||||
* v14
|
||||
*/
|
||||
@ExcelProperty(value = "v14")
|
||||
private Long v14;
|
||||
|
||||
/**
|
||||
* g7
|
||||
*/
|
||||
@ExcelProperty(value = "g7")
|
||||
private BigDecimal g7;
|
||||
|
||||
/**
|
||||
* v15
|
||||
*/
|
||||
@ExcelProperty(value = "v15")
|
||||
private Long v15;
|
||||
|
||||
/**
|
||||
* v41
|
||||
*/
|
||||
@ExcelProperty(value = "v41")
|
||||
private Long v41;
|
||||
|
||||
/**
|
||||
* v42
|
||||
*/
|
||||
@ExcelProperty(value = "v42")
|
||||
private Long v42;
|
||||
|
||||
/**
|
||||
* v43
|
||||
*/
|
||||
@ExcelProperty(value = "v43")
|
||||
private Long v43;
|
||||
|
||||
/**
|
||||
* v44
|
||||
*/
|
||||
@ExcelProperty(value = "v44")
|
||||
private Long v44;
|
||||
|
||||
/**
|
||||
* v45
|
||||
*/
|
||||
@ExcelProperty(value = "v45")
|
||||
private Long v45;
|
||||
|
||||
/**
|
||||
* v46
|
||||
*/
|
||||
@ExcelProperty(value = "v46")
|
||||
private Long v46;
|
||||
|
||||
/**
|
||||
* v47
|
||||
*/
|
||||
@ExcelProperty(value = "v47")
|
||||
private Long v47;
|
||||
|
||||
/**
|
||||
* v48
|
||||
*/
|
||||
@ExcelProperty(value = "v48")
|
||||
private Long v48;
|
||||
|
||||
/**
|
||||
* v49
|
||||
*/
|
||||
@ExcelProperty(value = "v49")
|
||||
private Long v49;
|
||||
|
||||
/**
|
||||
* v50
|
||||
*/
|
||||
@ExcelProperty(value = "v50")
|
||||
private Long v50;
|
||||
|
||||
/**
|
||||
* v51
|
||||
*/
|
||||
@ExcelProperty(value = "v51")
|
||||
private Long v51;
|
||||
|
||||
|
||||
}
|
||||
@ -51,7 +51,7 @@ public class ElectricalMaterialBomVO {
|
||||
/**
|
||||
* 批次数量
|
||||
*/
|
||||
@ExcelProperty(value = "批次数量")
|
||||
@ExcelProperty(value = "本批数量")
|
||||
private String batchQuantity;
|
||||
|
||||
/**
|
||||
|
||||
@ -69,4 +69,15 @@ public class FigureSaveVo {
|
||||
*/
|
||||
@ExcelProperty(value = "关联项目表")
|
||||
private Long pid;
|
||||
/**
|
||||
* 轴向
|
||||
*/
|
||||
@ExcelProperty(value = "轴向")
|
||||
private String axialType;
|
||||
|
||||
/**
|
||||
* 箱体类型
|
||||
*/
|
||||
@ExcelProperty(value = "箱体类型")
|
||||
private String boxType;
|
||||
}
|
||||
|
||||
@ -6,6 +6,8 @@ import com.ruoyi.common.annotation.ExcelDictFormat;
|
||||
import com.ruoyi.common.convert.ExcelDictConvert;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 金蝶工段数据视图对象 kingdee_work_center_data
|
||||
@ -96,6 +98,15 @@ public class KingdeeWorkCenterDataVo {
|
||||
*/
|
||||
@ExcelProperty(value = "计划完成时间")
|
||||
private String operPlanFinishTime;
|
||||
/**
|
||||
* 计划开始时间2 (YYYY-MM-DD)
|
||||
*/
|
||||
private String operPlanStartTime2;
|
||||
|
||||
/**
|
||||
* 计划完成时间2 (YYYY-MM-DD)
|
||||
*/
|
||||
private String operPlanFinishTime2;
|
||||
|
||||
/**
|
||||
* 延迟天数
|
||||
@ -107,6 +118,16 @@ public class KingdeeWorkCenterDataVo {
|
||||
*/
|
||||
@ExcelProperty(value = "工作中心")
|
||||
private String workCenter;
|
||||
|
||||
/**
|
||||
* 汇报数量
|
||||
*/
|
||||
@ExcelProperty(value = "汇报数量")
|
||||
private BigDecimal FReportQty;
|
||||
/**
|
||||
* 工废数量
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "工废数量")
|
||||
private BigDecimal FScrapQty;
|
||||
|
||||
}
|
||||
|
||||
@ -116,6 +116,10 @@ public class ProcessOrderProVo {
|
||||
private String drawingPathUrl;
|
||||
|
||||
private Date createTime;
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
private String createBy;
|
||||
/**
|
||||
* 工艺上传日志
|
||||
*/
|
||||
|
||||
@ -18,4 +18,9 @@ public class FSubEntity {
|
||||
|
||||
@JsonProperty("FOperNumber")
|
||||
private Long FOperNumber;
|
||||
/*
|
||||
入库仓库
|
||||
*/
|
||||
@JsonProperty("F_HBYT_RKCK.FName")
|
||||
private String rkckName;
|
||||
}
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package com.ruoyi.system.jdmain.rouplan;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FidEntryIdDTO {
|
||||
private Long fid;
|
||||
private Long fEntryId;
|
||||
private String warehouseNumber;
|
||||
public FidEntryIdDTO(Long fid, Long fEntryId, String warehouseNumber) {
|
||||
this.fid = fid;
|
||||
this.fEntryId = fEntryId;
|
||||
this.warehouseNumber = warehouseNumber;
|
||||
}
|
||||
|
||||
public Long getFid() {
|
||||
return fid;
|
||||
}
|
||||
|
||||
public Long getFEntryId() {
|
||||
return fEntryId;
|
||||
}
|
||||
|
||||
public String getWarehouseNumber() {
|
||||
return warehouseNumber;
|
||||
}
|
||||
}
|
||||
@ -18,7 +18,6 @@ public class Model {
|
||||
private String FProcessId_number;
|
||||
@JsonProperty("FMONumber")
|
||||
private String FMONumber;
|
||||
|
||||
@JsonProperty("FPlanFinishTime")
|
||||
private Date FPlanFinishTime;
|
||||
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec100r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec100rVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 100R设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec100rMapper extends BaseMapperPlus<DeviceSpec100rMapper, DeviceSpec100r, DeviceSpec100rVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec125r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec125rVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 125R设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface DeviceSpec125rMapper extends BaseMapperPlus<DeviceSpec125rMapper, DeviceSpec125r, DeviceSpec125rVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec150r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec150rVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 150R设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface DeviceSpec150rMapper extends BaseMapperPlus<DeviceSpec150rMapper, DeviceSpec150r, DeviceSpec150rVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec30d;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30dVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* device_spec_30D Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec30dMapper extends BaseMapperPlus<DeviceSpec30dMapper, DeviceSpec30d, DeviceSpec30dVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec30s;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30sVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 30S设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec30sMapper extends BaseMapperPlus<DeviceSpec30sMapper, DeviceSpec30s, DeviceSpec30sVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec40r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40rVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 40R设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec40rMapper extends BaseMapperPlus<DeviceSpec40rMapper, DeviceSpec40r, DeviceSpec40rVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec40s;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40sVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 40S设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec40sMapper extends BaseMapperPlus<DeviceSpec40sMapper, DeviceSpec40s, DeviceSpec40sVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec60r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec60rVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 60R设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec60rMapper extends BaseMapperPlus<DeviceSpec60rMapper, DeviceSpec60r, DeviceSpec60rVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.ruoyi.system.mapper;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec80r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec80rVo;
|
||||
import com.ruoyi.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 80R设备规格参数Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface DeviceSpec80rMapper extends BaseMapperPlus<DeviceSpec80rMapper, DeviceSpec80r, DeviceSpec80rVo> {
|
||||
|
||||
}
|
||||
@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.*;
|
||||
import com.kingdee.bos.webapi.entity.RepoRet;
|
||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
@ -17,6 +14,7 @@ import com.ruoyi.system.domain.BomDetails;
|
||||
import com.ruoyi.system.domain.PartCost;
|
||||
import com.ruoyi.system.domain.dto.*;
|
||||
import com.ruoyi.system.domain.vo.*;
|
||||
import com.ruoyi.system.jdmain.rouplan.FidEntryIdDTO;
|
||||
import com.ruoyi.system.jdmain.rouplan.Model;
|
||||
import org.aspectj.bridge.MessageUtil;
|
||||
import org.slf4j.Logger;
|
||||
@ -2055,8 +2053,9 @@ public class JdUtil {
|
||||
|
||||
return null; // 如果没有找到,返回 null
|
||||
}
|
||||
|
||||
//保存更新生产订单的开工时间
|
||||
/**
|
||||
* 保存更新生产订单的开工时间
|
||||
*/
|
||||
public static String updateOrder(JdHuoZhu jdHuoZhu, Model numDTO, Date xuStartTime, Date xuEndTime) throws Exception {
|
||||
String planStartDate = dateFormat.format(xuStartTime);
|
||||
String planFinishDate = dateFormat.format(xuEndTime);
|
||||
@ -3332,4 +3331,218 @@ public class JdUtil {
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取此令号下的所有物料编码
|
||||
* @param productionOrderNo
|
||||
* @return
|
||||
*/
|
||||
public static List<String> getOrderNumberCollection(String productionOrderNo) {
|
||||
K3CloudApi client = new K3CloudApi();
|
||||
// 请求参数,要求为json字符串
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("FormId", "PRD_MO");
|
||||
json.addProperty("FieldKeys", "FMaterialId.FNumber");
|
||||
JsonArray filterString = new JsonArray();
|
||||
JsonObject filterObject = new JsonObject();
|
||||
filterObject.addProperty("FieldName", "F_HBYT_SCLH");
|
||||
filterObject.addProperty("Compare", "67");
|
||||
filterObject.addProperty("Value", productionOrderNo);
|
||||
filterObject.addProperty("Left", "");
|
||||
filterObject.addProperty("Right", "");
|
||||
filterObject.addProperty("Logic", 0);
|
||||
filterString.add(filterObject);
|
||||
|
||||
json.add("FilterString", filterString);
|
||||
json.addProperty("OrderString", "");
|
||||
json.addProperty("TopRowCount", 0);
|
||||
json.addProperty("StartRow", 0);
|
||||
json.addProperty("Limit", 2000);
|
||||
json.addProperty("SubSystemId", "");
|
||||
|
||||
String jsonData = json.toString();
|
||||
try {
|
||||
String resultJson = String.valueOf(client.billQuery(jsonData));
|
||||
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
|
||||
List<String> list = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
|
||||
if (jsonObject.has("FMaterialId.FNumber")) {
|
||||
list.add(jsonObject.get("FMaterialId.FNumber").getAsString());
|
||||
}
|
||||
}
|
||||
return list;
|
||||
} catch (Exception e) {
|
||||
log.error("调用接口时发生异常: " + e.getMessage(), e);
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
/**
|
||||
* 获取此令号下的采购申请单对应的所有物料编码
|
||||
* @param productionOrderNo
|
||||
* @return
|
||||
*/
|
||||
public static List<String> getCaiGouOrderNumberList(String productionOrderNo) {
|
||||
K3CloudApi client = new K3CloudApi();
|
||||
// 请求参数,要求为json字符串
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("FormId", "PUR_Requisition");
|
||||
json.addProperty("FieldKeys", "FMaterialId.FNumber");
|
||||
JsonArray filterString = new JsonArray();
|
||||
JsonObject filterObject = new JsonObject();
|
||||
filterObject.addProperty("FieldName", "F_UCHN_Text");
|
||||
filterObject.addProperty("Compare", "67");
|
||||
filterObject.addProperty("Value", productionOrderNo);
|
||||
filterObject.addProperty("Left", "");
|
||||
filterObject.addProperty("Right", "");
|
||||
filterObject.addProperty("Logic", 0);
|
||||
filterString.add(filterObject);
|
||||
json.add("FilterString", filterString);
|
||||
json.addProperty("OrderString", "");
|
||||
json.addProperty("TopRowCount", 0);
|
||||
json.addProperty("StartRow", 0);
|
||||
json.addProperty("Limit", 2000);
|
||||
json.addProperty("SubSystemId", "");
|
||||
|
||||
String jsonData = json.toString();
|
||||
try {
|
||||
String resultJson = String.valueOf(client.billQuery(jsonData));
|
||||
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
|
||||
List<String> list = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
|
||||
if (jsonObject.has("FMaterialId.FNumber")) {
|
||||
list.add(jsonObject.get("FMaterialId.FNumber").getAsString());
|
||||
}
|
||||
}
|
||||
return list;
|
||||
} catch (Exception e) {
|
||||
log.error("调用接口时发生异常: " + e.getMessage(), e);
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
public static String updateOrder2(JdHuoZhu jdHuoZhu, String cangKuNum) throws Exception {
|
||||
|
||||
K3CloudApi api = new K3CloudApi(false);
|
||||
JsonObject json = new JsonObject();
|
||||
|
||||
JsonArray needUpDateFields = new JsonArray();
|
||||
needUpDateFields.add("FID");
|
||||
needUpDateFields.add("F_HBYT_RKCK.FName");
|
||||
needUpDateFields.add("FTreeEntity_FENTRYID");
|
||||
json.add("NeedUpDateFields", needUpDateFields);
|
||||
|
||||
json.addProperty("IsDeleteEntry", "false");
|
||||
|
||||
JsonObject model = new JsonObject();
|
||||
model.addProperty("FID", jdHuoZhu.getFID());
|
||||
|
||||
JsonArray fTreeEntity = new JsonArray();
|
||||
JsonObject fTreeEntityItem = new JsonObject();
|
||||
fTreeEntityItem.addProperty("F_HBYT_RKCK.FName", cangKuNum);
|
||||
fTreeEntityItem.addProperty("FENTRYID", jdHuoZhu.getFTreeEntityFENTRYID());
|
||||
fTreeEntity.add(fTreeEntityItem);
|
||||
model.add("FTreeEntity", fTreeEntity);
|
||||
|
||||
json.add("Model", model);
|
||||
|
||||
// Gson 自己序列化自己
|
||||
String data = json.toString();
|
||||
System.out.println(data);
|
||||
|
||||
String result = api.save("PRD_MO", data);
|
||||
|
||||
Gson gson = new Gson();
|
||||
RepoRet sRet = gson.fromJson(result, RepoRet.class);
|
||||
|
||||
if (sRet.isSuccessfully()) {
|
||||
return "生产订单保存成功";
|
||||
} else {
|
||||
return "生产订单保存失败:" + gson.toJson(sRet.getResult());
|
||||
}
|
||||
}
|
||||
|
||||
public static String updateCgOrder1(List<FidEntryIdDTO> list, String cangKuNum) throws Exception {
|
||||
|
||||
K3CloudApi api = new K3CloudApi(false);
|
||||
JsonObject json = new JsonObject();
|
||||
|
||||
JsonArray needUpDateFields = new JsonArray();
|
||||
needUpDateFields.add("FID");
|
||||
needUpDateFields.add("F_HBYT_RKCK.FName");
|
||||
needUpDateFields.add("FTreeEntity_FENTRYID");
|
||||
json.add("NeedUpDateFields", needUpDateFields);
|
||||
|
||||
json.addProperty("IsDeleteEntry", "false");
|
||||
|
||||
JsonObject model = new JsonObject();
|
||||
model.addProperty("FID", jdHuoZhu.getFID());
|
||||
|
||||
JsonArray fTreeEntity = new JsonArray();
|
||||
JsonObject fTreeEntityItem = new JsonObject();
|
||||
fTreeEntityItem.addProperty("F_HBYT_RKCK.FName", cangKuNum);
|
||||
fTreeEntityItem.addProperty("FENTRYID", jdHuoZhu.getFTreeEntityFENTRYID());
|
||||
fTreeEntity.add(fTreeEntityItem);
|
||||
model.add("FTreeEntity", fTreeEntity);
|
||||
|
||||
json.add("Model", model);
|
||||
|
||||
// Gson 自己序列化自己
|
||||
String data = json.toString();
|
||||
System.out.println(data);
|
||||
|
||||
String result = api.save("PRD_MO", data);
|
||||
|
||||
Gson gson = new Gson();
|
||||
RepoRet sRet = gson.fromJson(result, RepoRet.class);
|
||||
|
||||
if (sRet.isSuccessfully()) {
|
||||
return "生产订单保存成功";
|
||||
} else {
|
||||
return "生产订单保存失败:" + gson.toJson(sRet.getResult());
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
*/
|
||||
public static List<String> getCaiGouOrderNumberList(String productionOrderNo) {
|
||||
K3CloudApi client = new K3CloudApi();
|
||||
// 请求参数,要求为json字符串
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("FormId", "PUR_Requisition");
|
||||
json.addProperty("FieldKeys", "FMaterialId.FNumber");
|
||||
JsonArray filterString = new JsonArray();
|
||||
JsonObject filterObject = new JsonObject();
|
||||
filterObject.addProperty("FieldName", "F_UCHN_Text");
|
||||
filterObject.addProperty("Compare", "67");
|
||||
filterObject.addProperty("Value", productionOrderNo);
|
||||
filterObject.addProperty("Left", "");
|
||||
filterObject.addProperty("Right", "");
|
||||
filterObject.addProperty("Logic", 0);
|
||||
filterString.add(filterObject);
|
||||
json.add("FilterString", filterString);
|
||||
json.addProperty("OrderString", "");
|
||||
json.addProperty("TopRowCount", 0);
|
||||
json.addProperty("StartRow", 0);
|
||||
json.addProperty("Limit", 2000);
|
||||
json.addProperty("SubSystemId", "");
|
||||
|
||||
String jsonData = json.toString();
|
||||
try {
|
||||
String resultJson = String.valueOf(client.billQuery(jsonData));
|
||||
JsonArray jsonArray = new Gson().fromJson(resultJson, JsonArray.class);
|
||||
List<String> list = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
|
||||
if (jsonObject.has("FMaterialId.FNumber")) {
|
||||
list.add(jsonObject.get("FMaterialId.FNumber").getAsString());
|
||||
}
|
||||
}
|
||||
return list;
|
||||
} catch (Exception e) {
|
||||
log.error("调用接口时发生异常: " + e.getMessage(), e);
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -25,30 +25,25 @@ public class updatePcessPlanConver {
|
||||
subEntity.setFDetailID(numDTO.getFEntity().get(0).getFSubEntity().get(0).getFDetailID()); // 确保获取正确的 FDetailID
|
||||
subEntity.setFOperPlanStartTime(processRoute.getXuStartTime());
|
||||
subEntity.setFOperPlanFinishTime(processRoute.getXuEndTime());
|
||||
|
||||
// 创建 Entity 对象并设置字段
|
||||
FEntity entity = new FEntity();
|
||||
entity.setFEntryID(numDTO.getFEntity().get(0).getFEntryID());
|
||||
entity.setFSeqNumber(numDTO.getFEntity().get(0).getFSeqNumber());
|
||||
entity.setFSeqName(numDTO.getFEntity().get(0).getFSeqName());
|
||||
|
||||
|
||||
// 将 SubEntity 添加到 Entity 的 FSubEntity 列表中
|
||||
List<FSubEntity> subEntities = new ArrayList<>();
|
||||
subEntities.add(subEntity);
|
||||
entity.setFSubEntity(subEntities);
|
||||
|
||||
// 创建 Model 对象并设置字段
|
||||
Model model = new Model();
|
||||
model.setFID(numDTO.getFID());
|
||||
model.setFPlanStartTime(processTimeInfo.getTenthProcessStartTime());
|
||||
model.setFPlanFinishTime(processTimeInfo.getLastProcessEndTime());
|
||||
|
||||
// 将 Entity 添加到 Model 的 FEntity 列表中
|
||||
List<FEntity> entities = new ArrayList<>();
|
||||
entities.add(entity);
|
||||
model.setFEntity(entities);
|
||||
|
||||
// 创建 MainModel 并设置字段
|
||||
MainModel mainModel = new MainModel();
|
||||
List<String> needUpDateFields = Arrays.asList(
|
||||
@ -113,7 +108,7 @@ public class updatePcessPlanConver {
|
||||
//对返回结果进行解析和校验
|
||||
repoRet = gson.fromJson(resultJson, RepoRet.class);
|
||||
if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
|
||||
System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult()));
|
||||
System.out.printf("接口返回结果====================》: %s%n", gson.toJson(repoRet.getResult()));
|
||||
} else {
|
||||
fail("接口返回结果: " + gson.toJson(repoRet.getResult().getResponseStatus().getErrors().get(1)));
|
||||
}
|
||||
@ -125,5 +120,42 @@ public class updatePcessPlanConver {
|
||||
return repoRet;
|
||||
}
|
||||
|
||||
public static RepoRet updatePcessPlan2(List<Model> numDTO) {
|
||||
|
||||
RepoRet repoRet = null;
|
||||
for (Model model : numDTO) {
|
||||
MainModel mainModel = new MainModel();
|
||||
List<String> needUpDateFields = Arrays.asList(
|
||||
"FEntity", "FSubEntity", "F_HBYT_RKCK.FName"
|
||||
);
|
||||
mainModel.setNeedUpDateFields(needUpDateFields);
|
||||
mainModel.setDeleteEntry(false);
|
||||
mainModel.setModel(model);
|
||||
// 将对象转换为 JSON
|
||||
Gson gson1 = new GsonBuilder().setPrettyPrinting().create();
|
||||
K3CloudApi client = new K3CloudApi();
|
||||
String jsonOutput = gson1.toJson(mainModel);
|
||||
repoRet = null;
|
||||
try {
|
||||
//业务对象标识工序计划表
|
||||
String formId = "SFC_OperationPlanning";
|
||||
//调用接口
|
||||
String resultJson = client.save(formId, jsonOutput);
|
||||
//用于记录结果
|
||||
Gson gson = new Gson();
|
||||
//对返回结果进行解析和校验
|
||||
repoRet = gson.fromJson(resultJson, RepoRet.class);
|
||||
if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
|
||||
System.out.printf("接口返回结果====================》: %s%n", gson.toJson(repoRet.getResult()));
|
||||
} else {
|
||||
fail("接口返回结果: " + gson.toJson(repoRet.getResult().getResponseStatus().getErrors().get(1)));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
fail(e.getMessage());
|
||||
return repoRet;
|
||||
}
|
||||
}
|
||||
return repoRet;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec100r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec100rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec100rBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 100R设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec100rService {
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数
|
||||
*/
|
||||
DeviceSpec100rVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec100rVo> queryPageList(DeviceSpec100rBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec100rVo> queryList(DeviceSpec100rBo bo);
|
||||
|
||||
/**
|
||||
* 新增100R设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec100rBo bo);
|
||||
|
||||
/**
|
||||
* 修改100R设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec100rBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除100R设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec125r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec125rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec125rBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 125R设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface IDeviceSpec125rService {
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数
|
||||
*/
|
||||
DeviceSpec125rVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec125rVo> queryPageList(DeviceSpec125rBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec125rVo> queryList(DeviceSpec125rBo bo);
|
||||
|
||||
/**
|
||||
* 新增125R设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec125rBo bo);
|
||||
|
||||
/**
|
||||
* 修改125R设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec125rBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除125R设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec150r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec150rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec150rBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 150R设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
public interface IDeviceSpec150rService {
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数
|
||||
*/
|
||||
DeviceSpec150rVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec150rVo> queryPageList(DeviceSpec150rBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec150rVo> queryList(DeviceSpec150rBo bo);
|
||||
|
||||
/**
|
||||
* 新增150R设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec150rBo bo);
|
||||
|
||||
/**
|
||||
* 修改150R设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec150rBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除150R设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec30d;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30dVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec30dBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* device_spec_30D Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec30dService {
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D
|
||||
*/
|
||||
DeviceSpec30dVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D 列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec30dVo> queryPageList(DeviceSpec30dBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D 列表
|
||||
*/
|
||||
List<DeviceSpec30dVo> queryList(DeviceSpec30dBo bo);
|
||||
|
||||
/**
|
||||
* 新增device_spec_30D
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec30dBo bo);
|
||||
|
||||
/**
|
||||
* 修改device_spec_30D
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec30dBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除device_spec_30D 信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec30s;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30sVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec30sBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 30S设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec30sService {
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数
|
||||
*/
|
||||
DeviceSpec30sVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec30sVo> queryPageList(DeviceSpec30sBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec30sVo> queryList(DeviceSpec30sBo bo);
|
||||
|
||||
/**
|
||||
* 新增30S设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec30sBo bo);
|
||||
|
||||
/**
|
||||
* 修改30S设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec30sBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除30S设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec40r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec40rBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 40R设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec40rService {
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数
|
||||
*/
|
||||
DeviceSpec40rVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec40rVo> queryPageList(DeviceSpec40rBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec40rVo> queryList(DeviceSpec40rBo bo);
|
||||
|
||||
/**
|
||||
* 新增40R设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec40rBo bo);
|
||||
|
||||
/**
|
||||
* 修改40R设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec40rBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除40R设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec40s;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40sVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec40sBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 40S设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec40sService {
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数
|
||||
*/
|
||||
DeviceSpec40sVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec40sVo> queryPageList(DeviceSpec40sBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec40sVo> queryList(DeviceSpec40sBo bo);
|
||||
|
||||
/**
|
||||
* 新增40S设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec40sBo bo);
|
||||
|
||||
/**
|
||||
* 修改40S设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec40sBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除40S设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec60r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec60rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec60rBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 60R设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec60rService {
|
||||
|
||||
/**
|
||||
* 查询60R设备规格参数
|
||||
*/
|
||||
DeviceSpec60rVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询60R设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec60rVo> queryPageList(DeviceSpec60rBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询60R设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec60rVo> queryList(DeviceSpec60rBo bo);
|
||||
|
||||
/**
|
||||
* 新增60R设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec60rBo bo);
|
||||
|
||||
/**
|
||||
* 修改60R设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec60rBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除60R设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.system.domain.DeviceSpec80r;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec80rVo;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec80rBo;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 80R设备规格参数Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
public interface IDeviceSpec80rService {
|
||||
|
||||
/**
|
||||
* 查询80R设备规格参数
|
||||
*/
|
||||
DeviceSpec80rVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询80R设备规格参数列表
|
||||
*/
|
||||
TableDataInfo<DeviceSpec80rVo> queryPageList(DeviceSpec80rBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询80R设备规格参数列表
|
||||
*/
|
||||
List<DeviceSpec80rVo> queryList(DeviceSpec80rBo bo);
|
||||
|
||||
/**
|
||||
* 新增80R设备规格参数
|
||||
*/
|
||||
Boolean insertByBo(DeviceSpec80rBo bo);
|
||||
|
||||
/**
|
||||
* 修改80R设备规格参数
|
||||
*/
|
||||
Boolean updateByBo(DeviceSpec80rBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除80R设备规格参数信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -9,6 +9,7 @@ import com.ruoyi.system.domain.bo.FigureSaveBo;
|
||||
import com.ruoyi.system.domain.dto.ProcessRouteExcelDTO;
|
||||
import com.ruoyi.system.domain.dto.ProcessRoutePushResultDTO;
|
||||
import com.ruoyi.system.domain.dto.ProcessRouteXuDTO;
|
||||
import com.ruoyi.system.domain.dto.excuteDrawing.RigidChainModelDTO;
|
||||
import com.ruoyi.system.domain.vo.OverdueProjectVo;
|
||||
import com.ruoyi.system.domain.vo.ProcessOrderProVo;
|
||||
import com.ruoyi.system.domain.bo.ProcessOrderProBo;
|
||||
@ -16,6 +17,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.system.domain.vo.ProductionOrderVo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -67,7 +69,7 @@ public interface IProcessOrderProService {
|
||||
void batchUpdateProjectTimeRanges();
|
||||
List<ProcessOrderPro> selectByProjectNumbers(Set<String> routeDescSet);
|
||||
|
||||
void addProduct(FigureSaveBo bo, ProcessOrderProBo orderPro);
|
||||
void addProduct( RigidChainModelDTO orderPro);
|
||||
|
||||
String executDrawing(ProcessOrderProBo orderPro);
|
||||
|
||||
@ -85,4 +87,6 @@ public interface IProcessOrderProService {
|
||||
List<ProcessRouteExcelDTO> getRouteAndBomDetail(List<ProcessRoute> routlist,List<ProductionOrderVo> processDataList,ProcessOrderPro orderPro);
|
||||
|
||||
R<String> getRouteLog(Long id) throws JsonProcessingException;
|
||||
|
||||
SseEmitter startDrawingSse(Long id);
|
||||
}
|
||||
|
||||
@ -149,4 +149,8 @@ public interface IProcessRouteService {
|
||||
|
||||
//根据令号和物料编码 查询工艺路线
|
||||
ProcessRoute getProcessRoutesXuTime(String productionOrderNo, String materialCode,String xu);
|
||||
|
||||
List<String> updateProductionOrders(String rooteProdet,String cangKuNum) throws Exception;
|
||||
|
||||
List<String> updateCgOrders(String rooteProdet, String cangKuNum) throws Exception;
|
||||
}
|
||||
|
||||
@ -58,4 +58,8 @@ public interface IProductionOrderService {
|
||||
Boolean executDrawing(ProcessOrderProBo orderPro);
|
||||
|
||||
List<ProductionOrder> selectByProCode(String productionOrderNo);
|
||||
/**
|
||||
* 是否属于外购件
|
||||
*/
|
||||
Boolean isPurchas(String proCode,String materialCode);
|
||||
}
|
||||
|
||||
@ -0,0 +1,139 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.bo.KingdeeWorkCenterDataBo;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class MssqlQueryService {
|
||||
|
||||
private final JdbcTemplate jdbcTemplate;
|
||||
|
||||
public MssqlQueryService(JdbcTemplate jdbcTemplate) {
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
}
|
||||
|
||||
@DS("sqlserver")
|
||||
public List<Map<String, Object>> queryForList(String sql) {
|
||||
return jdbcTemplate.queryForList(sql);
|
||||
}
|
||||
|
||||
@DS("sqlserver")
|
||||
public List<KingdeeWorkCenterDataBo> getKingdeeProduceData(String workCenterName) {
|
||||
String sql = "select t8.FBillNo as MoBillNo,t8.F_HBYT_SCLH as MoOrderNo, \n" +
|
||||
" t5.FNumber as FMaterialNumber,t6.FName as FMaterialName, \n" +
|
||||
" t3.FOperQty,t4.FTransInQty,t4.FTransOutQty, \n" +
|
||||
" t4.FReportQty as FReportQty, \n" +
|
||||
" t4.FScrapQty as FScrapQty, \n" +
|
||||
" case when FTransOutQty = 0 and FTransInQty > 0 \n" +
|
||||
" \t then '未转出' \n" +
|
||||
" \t when FTransOutQty = 0 and FTransInQty = 0 \n" +
|
||||
" \t then '未转入' \n" +
|
||||
" \t when FTransOutQty > 0 and FTransInQty > 0 \n" +
|
||||
" \t then '已转出' \n" +
|
||||
" end as FMaterialStatus, \n" +
|
||||
" t3.FOperNumber,t7.FName as FProcessName, \n" +
|
||||
" SUBSTRING(CONVERT(varchar,t3.FOperPlanStartTime,23),6,8) as FOperPlanStartTime, \n" +
|
||||
" SUBSTRING(CONVERT(varchar,t3.FOperPlanFinishTime,23),6,8) as FOperPlanFinishTime, \n" +
|
||||
" CONVERT(varchar,t3.FOperPlanStartTime,23) as FOperPlanStartTime2, \n" +
|
||||
" CONVERT(varchar,t3.FOperPlanFinishTime,23) as FOperPlanFinishTime2, \n" +
|
||||
" DATEDIFF(day,t3.FOperPlanFinishTime,GETDATE()) as FDelayDays, \n" +
|
||||
" t9.FName as WorkCenterName \n" +
|
||||
" from T_SFC_OPERPLANNING t1 \n" +
|
||||
" inner join T_SFC_OPERPLANNINGSEQ t2 on t1.FID = t2.FID \n" +
|
||||
" inner join T_SFC_OPERPLANNINGDETAIL t3 on t2.FENTRYID = t3.FENTRYID \n" +
|
||||
" inner join T_SFC_OPERPLANNINGDETAIL_B t4 on t3.FDETAILID = t4.FDETAILID \n" +
|
||||
" inner join T_BD_MATERIAL t5 on t1.FProductId = t5.FMaterialId \n" +
|
||||
" inner join T_BD_MATERIAL_L t6 on t1.FProductId = t6.FMaterialId \n" +
|
||||
" inner join T_ENG_PROCESS_L t7 on t3.FProcessId = t7.FID \n" +
|
||||
" left join T_PRD_MO t8 on t1.FMoId = t8.FID \n" +
|
||||
" inner join T_ENG_WORKCENTER_L t9 on t3.FWorkCenterId = t9.FID \n" +
|
||||
" where t1.FDOCUMENTSTATUS = 'C' and (FOperStatus =2 or FOperStatus =3 or FOperStatus =4) \n" +
|
||||
" and t8.F_HBYT_SCLH not like '%YF%'";
|
||||
|
||||
List<Map<String, Object>> resultList;
|
||||
if (StringUtils.isNotEmpty(workCenterName)) {
|
||||
sql += " and t9.FName = ?";
|
||||
resultList = jdbcTemplate.queryForList(sql, workCenterName);
|
||||
} else {
|
||||
resultList = jdbcTemplate.queryForList(sql);
|
||||
}
|
||||
|
||||
List<KingdeeWorkCenterDataBo> boList = new ArrayList<>();
|
||||
for (Map<String, Object> row : resultList) {
|
||||
KingdeeWorkCenterDataBo bo = new KingdeeWorkCenterDataBo();
|
||||
bo.setMoBillNo(getString(row, "MoBillNo"));
|
||||
bo.setMoOrderNo(getString(row, "MoOrderNo"));
|
||||
bo.setMaterialNumber(getString(row, "FMaterialNumber"));
|
||||
bo.setMaterialName(getString(row, "FMaterialName"));
|
||||
|
||||
BigDecimal operQty = getBigDecimal(row, "FOperQty");
|
||||
bo.setOperQty(operQty);
|
||||
|
||||
BigDecimal FTransInQty = getBigDecimal(row, "FTransInQty");
|
||||
bo.setTransInQty(FTransInQty);
|
||||
|
||||
BigDecimal FTransOutQty = getBigDecimal(row, "FTransOutQty");
|
||||
bo.setTransOutQty(FTransOutQty);
|
||||
|
||||
bo.setFReportQty(getBigDecimal(row, "FReportQty"));
|
||||
bo.setFScrapQty(getBigDecimal(row, "FScrapQty"));
|
||||
|
||||
/* FRemainQty = FTransInQty - FTransOutQty
|
||||
if (transInQty != null && transOutQty != null) {
|
||||
bo.setRemainQty(transInQty.subtract(transOutQty).setScale(2, RoundingMode.HALF_UP));
|
||||
} else {
|
||||
bo.setRemainQty(BigDecimal.ZERO);
|
||||
}*/
|
||||
|
||||
bo.setMaterialStatus(getString(row, "FMaterialStatus"));
|
||||
bo.setOperNumber(getString(row, "FOperNumber"));
|
||||
bo.setProcessName(getString(row, "FProcessName"));
|
||||
bo.setOperPlanStartTime(getString(row, "FOperPlanStartTime"));
|
||||
bo.setOperPlanFinishTime(getString(row, "FOperPlanFinishTime"));
|
||||
bo.setOperPlanStartTime2(getString(row, "FOperPlanStartTime2"));
|
||||
bo.setOperPlanFinishTime2(getString(row, "FOperPlanFinishTime2"));
|
||||
bo.setWorkCenter(getString(row, "WorkCenterName"));
|
||||
|
||||
// Delay Days Logic
|
||||
Object delayDaysObj = row.get("FDelayDays");
|
||||
int delayDays = 0;
|
||||
if (delayDaysObj != null) {
|
||||
try {
|
||||
delayDays = Integer.parseInt(delayDaysObj.toString());
|
||||
} catch (NumberFormatException e) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
bo.setDelayDays(delayDays <= 0 ? "" : String.valueOf(delayDays));
|
||||
|
||||
boList.add(bo);
|
||||
}
|
||||
return boList;
|
||||
}
|
||||
|
||||
private String getString(Map<String, Object> row, String key) {
|
||||
Object val = row.get(key);
|
||||
return val != null ? val.toString() : "";
|
||||
}
|
||||
|
||||
|
||||
private BigDecimal getBigDecimal(Map<String, Object> row, String key) {
|
||||
Object val = row.get(key);
|
||||
if (val == null) return BigDecimal.ZERO;
|
||||
try {
|
||||
return new BigDecimal(val.toString()).setScale(2, RoundingMode.HALF_UP);
|
||||
} catch (Exception e) {
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,144 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec100rBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec100rVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec100r;
|
||||
import com.ruoyi.system.mapper.DeviceSpec100rMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec100rService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 100R设备规格参数Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec100rServiceImpl implements IDeviceSpec100rService {
|
||||
|
||||
private final DeviceSpec100rMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec100rVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec100rVo> queryPageList(DeviceSpec100rBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec100r> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec100rVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询100R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec100rVo> queryList(DeviceSpec100rBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec100r> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec100r> buildQueryWrapper(DeviceSpec100rBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec100r> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec100r::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec100r::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec100r::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec100r::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec100r::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec100r::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec100r::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV4() != null, DeviceSpec100r::getV4, bo.getV4());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec100r::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV6() != null, DeviceSpec100r::getV6, bo.getV6());
|
||||
lqw.eq(bo.getV7() != null, DeviceSpec100r::getV7, bo.getV7());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec100r::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec100r::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV9() != null, DeviceSpec100r::getV9, bo.getV9());
|
||||
lqw.eq(bo.getG2() != null, DeviceSpec100r::getG2, bo.getG2());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec100r::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec100r::getG5, bo.getG5());
|
||||
lqw.eq(bo.getV11() != null, DeviceSpec100r::getV11, bo.getV11());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec100r::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec100r::getG6, bo.getG6());
|
||||
lqw.eq(bo.getV13() != null, DeviceSpec100r::getV13, bo.getV13());
|
||||
lqw.eq(bo.getV14() != null, DeviceSpec100r::getV14, bo.getV14());
|
||||
lqw.eq(bo.getG7() != null, DeviceSpec100r::getG7, bo.getG7());
|
||||
lqw.eq(bo.getV15() != null, DeviceSpec100r::getV15, bo.getV15());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec100r::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec100r::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec100r::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec100r::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec100r::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec100r::getV46, bo.getV46());
|
||||
lqw.eq(bo.getV47() != null, DeviceSpec100r::getV47, bo.getV47());
|
||||
lqw.eq(bo.getV48() != null, DeviceSpec100r::getV48, bo.getV48());
|
||||
lqw.eq(bo.getV49() != null, DeviceSpec100r::getV49, bo.getV49());
|
||||
lqw.eq(bo.getV50() != null, DeviceSpec100r::getV50, bo.getV50());
|
||||
lqw.eq(bo.getV51() != null, DeviceSpec100r::getV51, bo.getV51());
|
||||
lqw.eq(bo.getV52() != null, DeviceSpec100r::getV52, bo.getV52());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增100R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec100rBo bo) {
|
||||
DeviceSpec100r add = BeanUtil.toBean(bo, DeviceSpec100r.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改100R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec100rBo bo) {
|
||||
DeviceSpec100r update = BeanUtil.toBean(bo, DeviceSpec100r.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec100r entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除100R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,150 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec125rBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec125rVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec125r;
|
||||
import com.ruoyi.system.mapper.DeviceSpec125rMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec125rService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 125R设备规格参数Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec125rServiceImpl implements IDeviceSpec125rService {
|
||||
|
||||
private final DeviceSpec125rMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec125rVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec125rVo> queryPageList(DeviceSpec125rBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec125r> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec125rVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询125R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec125rVo> queryList(DeviceSpec125rBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec125r> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec125r> buildQueryWrapper(DeviceSpec125rBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec125r> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec125r::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec125r::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec125r::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec125r::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec125r::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec125r::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec125r::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV4() != null, DeviceSpec125r::getV4, bo.getV4());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec125r::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV6() != null, DeviceSpec125r::getV6, bo.getV6());
|
||||
lqw.eq(bo.getV7() != null, DeviceSpec125r::getV7, bo.getV7());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec125r::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec125r::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV9() != null, DeviceSpec125r::getV9, bo.getV9());
|
||||
lqw.eq(bo.getG2() != null, DeviceSpec125r::getG2, bo.getG2());
|
||||
lqw.eq(bo.getG3() != null, DeviceSpec125r::getG3, bo.getG3());
|
||||
lqw.eq(bo.getG4() != null, DeviceSpec125r::getG4, bo.getG4());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec125r::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec125r::getG5, bo.getG5());
|
||||
lqw.eq(bo.getV11() != null, DeviceSpec125r::getV11, bo.getV11());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec125r::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec125r::getG6, bo.getG6());
|
||||
lqw.eq(bo.getV13() != null, DeviceSpec125r::getV13, bo.getV13());
|
||||
lqw.eq(bo.getV14() != null, DeviceSpec125r::getV14, bo.getV14());
|
||||
lqw.eq(bo.getG7() != null, DeviceSpec125r::getG7, bo.getG7());
|
||||
lqw.eq(bo.getV15() != null, DeviceSpec125r::getV15, bo.getV15());
|
||||
lqw.eq(bo.getV16() != null, DeviceSpec125r::getV16, bo.getV16());
|
||||
lqw.eq(bo.getV17() != null, DeviceSpec125r::getV17, bo.getV17());
|
||||
lqw.eq(bo.getV18() != null, DeviceSpec125r::getV18, bo.getV18());
|
||||
lqw.eq(bo.getV19() != null, DeviceSpec125r::getV19, bo.getV19());
|
||||
lqw.eq(bo.getV20() != null, DeviceSpec125r::getV20, bo.getV20());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec125r::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec125r::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec125r::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec125r::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec125r::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec125r::getV46, bo.getV46());
|
||||
lqw.eq(bo.getV47() != null, DeviceSpec125r::getV47, bo.getV47());
|
||||
lqw.eq(bo.getV48() != null, DeviceSpec125r::getV48, bo.getV48());
|
||||
lqw.eq(bo.getV49() != null, DeviceSpec125r::getV49, bo.getV49());
|
||||
lqw.eq(bo.getV50() != null, DeviceSpec125r::getV50, bo.getV50());
|
||||
lqw.eq(bo.getV51() != null, DeviceSpec125r::getV51, bo.getV51());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增125R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec125rBo bo) {
|
||||
DeviceSpec125r add = BeanUtil.toBean(bo, DeviceSpec125r.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改125R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec125rBo bo) {
|
||||
DeviceSpec125r update = BeanUtil.toBean(bo, DeviceSpec125r.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec125r entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除125R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,154 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec150rBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec150rVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec150r;
|
||||
import com.ruoyi.system.mapper.DeviceSpec150rMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec150rService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 150R设备规格参数Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-06
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec150rServiceImpl implements IDeviceSpec150rService {
|
||||
|
||||
private final DeviceSpec150rMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec150rVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec150rVo> queryPageList(DeviceSpec150rBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec150r> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec150rVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询150R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec150rVo> queryList(DeviceSpec150rBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec150r> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec150r> buildQueryWrapper(DeviceSpec150rBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec150r> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec150r::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec150r::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec150r::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec150r::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec150r::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec150r::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec150r::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV4() != null, DeviceSpec150r::getV4, bo.getV4());
|
||||
lqw.eq(bo.getV21() != null, DeviceSpec150r::getV21, bo.getV21());
|
||||
lqw.eq(bo.getV22() != null, DeviceSpec150r::getV22, bo.getV22());
|
||||
lqw.eq(bo.getV23() != null, DeviceSpec150r::getV23, bo.getV23());
|
||||
lqw.eq(bo.getV24() != null, DeviceSpec150r::getV24, bo.getV24());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec150r::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV6() != null, DeviceSpec150r::getV6, bo.getV6());
|
||||
lqw.eq(bo.getV7() != null, DeviceSpec150r::getV7, bo.getV7());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec150r::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec150r::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV9() != null, DeviceSpec150r::getV9, bo.getV9());
|
||||
lqw.eq(bo.getG2() != null, DeviceSpec150r::getG2, bo.getG2());
|
||||
lqw.eq(bo.getG3() != null, DeviceSpec150r::getG3, bo.getG3());
|
||||
lqw.eq(bo.getG4() != null, DeviceSpec150r::getG4, bo.getG4());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec150r::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec150r::getG5, bo.getG5());
|
||||
lqw.eq(bo.getV11() != null, DeviceSpec150r::getV11, bo.getV11());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec150r::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec150r::getG6, bo.getG6());
|
||||
lqw.eq(bo.getV13() != null, DeviceSpec150r::getV13, bo.getV13());
|
||||
lqw.eq(bo.getV14() != null, DeviceSpec150r::getV14, bo.getV14());
|
||||
lqw.eq(bo.getG7() != null, DeviceSpec150r::getG7, bo.getG7());
|
||||
lqw.eq(bo.getV15() != null, DeviceSpec150r::getV15, bo.getV15());
|
||||
lqw.eq(bo.getV16() != null, DeviceSpec150r::getV16, bo.getV16());
|
||||
lqw.eq(bo.getV17() != null, DeviceSpec150r::getV17, bo.getV17());
|
||||
lqw.eq(bo.getV18() != null, DeviceSpec150r::getV18, bo.getV18());
|
||||
lqw.eq(bo.getV19() != null, DeviceSpec150r::getV19, bo.getV19());
|
||||
lqw.eq(bo.getV20() != null, DeviceSpec150r::getV20, bo.getV20());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec150r::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec150r::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec150r::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec150r::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec150r::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec150r::getV46, bo.getV46());
|
||||
lqw.eq(bo.getV47() != null, DeviceSpec150r::getV47, bo.getV47());
|
||||
lqw.eq(bo.getV48() != null, DeviceSpec150r::getV48, bo.getV48());
|
||||
lqw.eq(bo.getV49() != null, DeviceSpec150r::getV49, bo.getV49());
|
||||
lqw.eq(bo.getV50() != null, DeviceSpec150r::getV50, bo.getV50());
|
||||
lqw.eq(bo.getV51() != null, DeviceSpec150r::getV51, bo.getV51());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增150R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec150rBo bo) {
|
||||
DeviceSpec150r add = BeanUtil.toBean(bo, DeviceSpec150r.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改150R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec150rBo bo) {
|
||||
DeviceSpec150r update = BeanUtil.toBean(bo, DeviceSpec150r.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec150r entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除150R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,133 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec30dBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30dVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec30d;
|
||||
import com.ruoyi.system.mapper.DeviceSpec30dMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec30dService;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* device_spec_30D Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec30dServiceImpl implements IDeviceSpec30dService {
|
||||
|
||||
private final DeviceSpec30dMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec30dVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D 列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec30dVo> queryPageList(DeviceSpec30dBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec30d> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec30dVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询device_spec_30D 列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec30dVo> queryList(DeviceSpec30dBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec30d> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec30d> buildQueryWrapper(DeviceSpec30dBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec30d> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec30d::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec30d::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec30d::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec30d::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec30d::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec30d::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec30d::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec30d::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV6() != null, DeviceSpec30d::getV6, bo.getV6());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec30d::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec30d::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec30d::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec30d::getG5, bo.getG5());
|
||||
lqw.eq(bo.getG8() != null, DeviceSpec30d::getG8, bo.getG8());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec30d::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec30d::getG6, bo.getG6());
|
||||
lqw.eq(bo.getG9() != null, DeviceSpec30d::getG9, bo.getG9());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec30d::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec30d::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec30d::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec30d::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec30d::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec30d::getV46, bo.getV46());
|
||||
lqw.eq(bo.getV47() != null, DeviceSpec30d::getV47, bo.getV47());
|
||||
lqw.eq(bo.getV48() != null, DeviceSpec30d::getV48, bo.getV48());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增device_spec_30D
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec30dBo bo) {
|
||||
DeviceSpec30d add = BeanUtil.toBean(bo, DeviceSpec30d.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改device_spec_30D
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec30dBo bo) {
|
||||
DeviceSpec30d update = BeanUtil.toBean(bo, DeviceSpec30d.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec30d entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除device_spec_30D
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,127 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.system.domain.bo.DeviceSpec30sBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec30sVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec30s;
|
||||
import com.ruoyi.system.mapper.DeviceSpec30sMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec30sService;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 30S设备规格参数Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec30sServiceImpl implements IDeviceSpec30sService {
|
||||
|
||||
private final DeviceSpec30sMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec30sVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec30sVo> queryPageList(DeviceSpec30sBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec30s> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec30sVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询30S设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec30sVo> queryList(DeviceSpec30sBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec30s> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec30s> buildQueryWrapper(DeviceSpec30sBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec30s> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec30s::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec30s::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec30s::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec30s::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec30s::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec30s::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec30s::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec30s::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec30s::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec30s::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec30s::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec30s::getG5, bo.getG5());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec30s::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec30s::getG6, bo.getG6());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec30s::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec30s::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec30s::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec30s::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec30s::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec30s::getV46, bo.getV46());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增30S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec30sBo bo) {
|
||||
DeviceSpec30s add = BeanUtil.toBean(bo, DeviceSpec30s.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改30S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec30sBo bo) {
|
||||
DeviceSpec30s update = BeanUtil.toBean(bo, DeviceSpec30s.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec30s entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除30S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,140 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec40rBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40rVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec40r;
|
||||
import com.ruoyi.system.mapper.DeviceSpec40rMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec40rService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 40R设备规格参数Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec40rServiceImpl implements IDeviceSpec40rService {
|
||||
|
||||
private final DeviceSpec40rMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec40rVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec40rVo> queryPageList(DeviceSpec40rBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec40r> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec40rVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询40R设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec40rVo> queryList(DeviceSpec40rBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec40r> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec40r> buildQueryWrapper(DeviceSpec40rBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec40r> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec40r::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec40r::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec40r::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec40r::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec40r::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec40r::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec40r::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec40r::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV6() != null, DeviceSpec40r::getV6, bo.getV6());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec40r::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec40r::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV9() != null, DeviceSpec40r::getV9, bo.getV9());
|
||||
lqw.eq(bo.getG2() != null, DeviceSpec40r::getG2, bo.getG2());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec40r::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec40r::getG5, bo.getG5());
|
||||
lqw.eq(bo.getV11() != null, DeviceSpec40r::getV11, bo.getV11());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec40r::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec40r::getG6, bo.getG6());
|
||||
lqw.eq(bo.getV13() != null, DeviceSpec40r::getV13, bo.getV13());
|
||||
lqw.eq(bo.getV14() != null, DeviceSpec40r::getV14, bo.getV14());
|
||||
lqw.eq(bo.getG7() != null, DeviceSpec40r::getG7, bo.getG7());
|
||||
lqw.eq(bo.getV15() != null, DeviceSpec40r::getV15, bo.getV15());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec40r::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec40r::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec40r::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec40r::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec40r::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec40r::getV46, bo.getV46());
|
||||
lqw.eq(bo.getV47() != null, DeviceSpec40r::getV47, bo.getV47());
|
||||
lqw.eq(bo.getV48() != null, DeviceSpec40r::getV48, bo.getV48());
|
||||
lqw.eq(bo.getV49() != null, DeviceSpec40r::getV49, bo.getV49());
|
||||
lqw.eq(bo.getV50() != null, DeviceSpec40r::getV50, bo.getV50());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增40R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec40rBo bo) {
|
||||
DeviceSpec40r add = BeanUtil.toBean(bo, DeviceSpec40r.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改40R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec40rBo bo) {
|
||||
DeviceSpec40r update = BeanUtil.toBean(bo, DeviceSpec40r.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec40r entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除40R设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,143 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.domain.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 com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.system.domain.bo.DeviceSpec40sBo;
|
||||
import com.ruoyi.system.domain.vo.DeviceSpec40sVo;
|
||||
import com.ruoyi.system.domain.DeviceSpec40s;
|
||||
import com.ruoyi.system.mapper.DeviceSpec40sMapper;
|
||||
import com.ruoyi.system.service.IDeviceSpec40sService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 40S设备规格参数Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2025-12-03
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class DeviceSpec40sServiceImpl implements IDeviceSpec40sService {
|
||||
|
||||
private final DeviceSpec40sMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public DeviceSpec40sVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<DeviceSpec40sVo> queryPageList(DeviceSpec40sBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<DeviceSpec40s> lqw = buildQueryWrapper(bo);
|
||||
Page<DeviceSpec40sVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询40S设备规格参数列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeviceSpec40sVo> queryList(DeviceSpec40sBo bo) {
|
||||
LambdaQueryWrapper<DeviceSpec40s> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<DeviceSpec40s> buildQueryWrapper(DeviceSpec40sBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<DeviceSpec40s> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTravelLength()), DeviceSpec40s::getTravelLength, bo.getTravelLength());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), DeviceSpec40s::getItemType, bo.getItemType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAxialType()), DeviceSpec40s::getAxialType, bo.getAxialType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBoxType()), DeviceSpec40s::getBoxType, bo.getBoxType());
|
||||
lqw.eq(bo.getV1() != null, DeviceSpec40s::getV1, bo.getV1());
|
||||
lqw.eq(bo.getV2() != null, DeviceSpec40s::getV2, bo.getV2());
|
||||
lqw.eq(bo.getV22() != null, DeviceSpec40s::getV22, bo.getV22());
|
||||
lqw.eq(bo.getV3() != null, DeviceSpec40s::getV3, bo.getV3());
|
||||
lqw.eq(bo.getV23() != null, DeviceSpec40s::getV23, bo.getV23());
|
||||
lqw.eq(bo.getV5() != null, DeviceSpec40s::getV5, bo.getV5());
|
||||
lqw.eq(bo.getV6() != null, DeviceSpec40s::getV6, bo.getV6());
|
||||
lqw.eq(bo.getV8() != null, DeviceSpec40s::getV8, bo.getV8());
|
||||
lqw.eq(bo.getG1() != null, DeviceSpec40s::getG1, bo.getG1());
|
||||
lqw.eq(bo.getV9() != null, DeviceSpec40s::getV9, bo.getV9());
|
||||
lqw.eq(bo.getG2() != null, DeviceSpec40s::getG2, bo.getG2());
|
||||
lqw.eq(bo.getV10() != null, DeviceSpec40s::getV10, bo.getV10());
|
||||
lqw.eq(bo.getG5() != null, DeviceSpec40s::getG5, bo.getG5());
|
||||
lqw.eq(bo.getV11() != null, DeviceSpec40s::getV11, bo.getV11());
|
||||
lqw.eq(bo.getV12() != null, DeviceSpec40s::getV12, bo.getV12());
|
||||
lqw.eq(bo.getG6() != null, DeviceSpec40s::getG6, bo.getG6());
|
||||
lqw.eq(bo.getV13() != null, DeviceSpec40s::getV13, bo.getV13());
|
||||
lqw.eq(bo.getV14() != null, DeviceSpec40s::getV14, bo.getV14());
|
||||
lqw.eq(bo.getG7() != null, DeviceSpec40s::getG7, bo.getG7());
|
||||
lqw.eq(bo.getV15() != null, DeviceSpec40s::getV15, bo.getV15());
|
||||
lqw.eq(bo.getV41() != null, DeviceSpec40s::getV41, bo.getV41());
|
||||
lqw.eq(bo.getV42() != null, DeviceSpec40s::getV42, bo.getV42());
|
||||
lqw.eq(bo.getV43() != null, DeviceSpec40s::getV43, bo.getV43());
|
||||
lqw.eq(bo.getV44() != null, DeviceSpec40s::getV44, bo.getV44());
|
||||
lqw.eq(bo.getV45() != null, DeviceSpec40s::getV45, bo.getV45());
|
||||
lqw.eq(bo.getV46() != null, DeviceSpec40s::getV46, bo.getV46());
|
||||
lqw.eq(bo.getV47() != null, DeviceSpec40s::getV47, bo.getV47());
|
||||
lqw.eq(bo.getV48() != null, DeviceSpec40s::getV48, bo.getV48());
|
||||
lqw.eq(bo.getV49() != null, DeviceSpec40s::getV49, bo.getV49());
|
||||
lqw.eq(bo.getV50() != null, DeviceSpec40s::getV50, bo.getV50());
|
||||
lqw.eq(bo.getV51() != null, DeviceSpec40s::getV51, bo.getV51());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增40S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(DeviceSpec40sBo bo) {
|
||||
DeviceSpec40s add = BeanUtil.toBean(bo, DeviceSpec40s.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改40S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(DeviceSpec40sBo bo) {
|
||||
DeviceSpec40s update = BeanUtil.toBean(bo, DeviceSpec40s.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(DeviceSpec40s entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除40S设备规格参数
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user