-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
- 冷卷号
- {{ currentCoil.EXIT_COILID }}
-
-
- 钢种
- {{ currentCoil.ORDER_QUALITY }}
-
-
- 来料厚度
- {{ currentCoil.ENTRY_THICK }}
- mm
-
-
- 产品厚度
- {{ currentCoil.EXIT_THICK }}
- mm
-
-
- 压下率
- {{ currentCoil.reductionRate }}
- %
-
-
- 来料宽度
- {{ currentCoil.ENTRY_WIDTH }}
- mm
-
-
- 产品宽度
- {{ currentCoil.EXIT_WIDTH }}
- mm
-
-
-
-
-
-
-
- 冷卷号
- {{ nextCoil.EXIT_COILID }}
-
-
- 钢种
- {{ nextCoil.ORDER_QUALITY }}
-
-
- 来料厚度
- {{ nextCoil.ENTRY_THICK }}
- mm
-
-
- 产品厚度
- {{ nextCoil.EXIT_THICK }}
- mm
-
-
- 压下率
- {{ nextCoil.reductionRate }}
- %
-
-
- 来料宽度
- {{ nextCoil.ENTRY_WIDTH }}
- mm
-
-
- 产品宽度
- {{ nextCoil.EXIT_WIDTH }}
- mm
-
-
-
+
+
+
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
- {{ formatDate(row.insDate) }}
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
- {{ formatDate(row.insDate) }}
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
- {{ formatDate(row.insDate) }}
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
-
- {{ formatDate(row.insDate) }}
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
- 新增
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 取消
- 确定
-
-
-
-
-
-
-
-
-
-
-
-
{{ device.deviceName }}
-
- {{ device.deviceCode }}
- {{ device.deviceType }}
-
-
- {{ [device.workshop, device.lineName].filter(Boolean).join(' / ') }}
-
-
-
- handleDeviceToggle(device, val)" />
-
-
-
- 暂无设备数据
-
-
-
+
暂无数据
diff --git a/klp-ui/src/views/micro/pages/acid/index.vue b/klp-ui/src/views/micro/pages/acid/index.vue
index bb6e6b7ac..b6ea99577 100644
--- a/klp-ui/src/views/micro/pages/acid/index.vue
+++ b/klp-ui/src/views/micro/pages/acid/index.vue
@@ -26,6 +26,10 @@
规程
+
+
+ 模型
+
计划
@@ -39,7 +43,7 @@
实绩
-
+
配辊
@@ -54,10 +58,6 @@
app
-
-
- 模型
-
@@ -98,7 +98,7 @@ export default {
AcidTiming,
TrackingView,
ProcessSpec,
- Model,
+ Model
},
data() {
return {
@@ -166,6 +166,7 @@ export default {
color: #606266;
padding: 0 20px;
font-size: 14px;
+ transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
&:hover {
background-color: #ecf5ff;
@@ -176,11 +177,13 @@ export default {
background-color: #ecf5ff;
color: #409eff;
border-right: 3px solid #409eff;
+ font-weight: 600;
}
i {
font-size: 18px;
margin-right: 8px;
+ transition: color 0.2s ease;
}
}
}
diff --git a/klp-ui/vue.config.js b/klp-ui/vue.config.js
index b14f87c2e..48eec3ae6 100644
--- a/klp-ui/vue.config.js
+++ b/klp-ui/vue.config.js
@@ -54,6 +54,14 @@ module.exports = {
['^' + '/zinc-api']: '/api'
}
},
+ // 酸轧六机架轧制模型服务(klp-ml-mill FastAPI),/predict /latest /sync /retrain /health
+ '/mill-api': {
+ target: `http://117.72.159.31:10001`,
+ changeOrigin: true,
+ pathRewrite: {
+ ['^' + '/mill-api']: ''
+ }
+ },
// 直接代理WebSocket相关路径
'/websocket': {
target: `http://localhost:8080`,
diff --git a/klp-wms/src/main/java/com/klp/controller/WmsInspectionMainController.java b/klp-wms/src/main/java/com/klp/controller/WmsInspectionMainController.java
index 1c190b35e..a39eb5d79 100644
--- a/klp-wms/src/main/java/com/klp/controller/WmsInspectionMainController.java
+++ b/klp-wms/src/main/java/com/klp/controller/WmsInspectionMainController.java
@@ -3,6 +3,7 @@ package com.klp.controller;
import java.util.List;
import java.util.Arrays;
+import com.klp.domain.bo.BatchInspectionMainBo;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
@@ -96,4 +97,14 @@ public class WmsInspectionMainController extends BaseController {
@PathVariable Long[] mainIds) {
return toAjax(iWmsInspectionMainService.deleteWithValidByIds(Arrays.asList(mainIds), true));
}
+
+ /**
+ * 批量新增检验主及明细,更新申请单detailIds为主键列表
+ */
+ @Log(title = "批量新增检验主", businessType = BusinessType.INSERT)
+ @PostMapping("/batchInsertWithDetails")
+ public R batchInsertWithDetails(@RequestBody BatchInspectionMainBo batchBo) {
+ return toAjax(iWmsInspectionMainService.batchInsertWithDetails(
+ batchBo.getMasterId(), batchBo.getApplicationId(), batchBo.getBoList()));
+ }
}
diff --git a/klp-wms/src/main/java/com/klp/controller/WmsInspectionTensileDetailController.java b/klp-wms/src/main/java/com/klp/controller/WmsInspectionTensileDetailController.java
index 79acd62fe..a523d915f 100644
--- a/klp-wms/src/main/java/com/klp/controller/WmsInspectionTensileDetailController.java
+++ b/klp-wms/src/main/java/com/klp/controller/WmsInspectionTensileDetailController.java
@@ -3,6 +3,7 @@ package com.klp.controller;
import java.util.List;
import java.util.Arrays;
+import com.klp.domain.bo.BatchInspectionTensileBo;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
@@ -19,7 +20,9 @@ import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsInspectionTensileDetailVo;
import com.klp.domain.bo.WmsInspectionTensileDetailBo;
+import com.klp.domain.bo.WmsInspectionTensileBo;
import com.klp.service.IWmsInspectionTensileDetailService;
+import com.klp.service.IWmsInspectionTensileService;
import com.klp.common.core.page.TableDataInfo;
/**
@@ -96,4 +99,14 @@ public class WmsInspectionTensileDetailController extends BaseController {
@PathVariable String[] detailIds) {
return toAjax(iWmsInspectionTensileDetailService.deleteWithValidByIds(Arrays.asList(detailIds), true));
}
+
+ /**
+ * 批量插入明细并更新申请单detailIds
+ */
+ @Log(title = "批量插入拉伸试验明细", businessType = BusinessType.INSERT)
+ @PostMapping("/batchInsertDetails")
+ public R batchInsertDetails(@RequestBody BatchInspectionTensileBo bo) {
+ return toAjax(iWmsInspectionTensileDetailService.batchInsertDetails(
+ bo.getMasterId(), bo.getApplicationId(), bo.getDetailList()));
+ }
}
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/BatchInspectionMainBo.java b/klp-wms/src/main/java/com/klp/domain/bo/BatchInspectionMainBo.java
new file mode 100644
index 000000000..608496b5e
--- /dev/null
+++ b/klp-wms/src/main/java/com/klp/domain/bo/BatchInspectionMainBo.java
@@ -0,0 +1,11 @@
+package com.klp.domain.bo;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class BatchInspectionMainBo {
+ private Long masterId;
+ private Long applicationId;
+ private List boList;
+}
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/BatchInspectionTensileBo.java b/klp-wms/src/main/java/com/klp/domain/bo/BatchInspectionTensileBo.java
new file mode 100644
index 000000000..bf4dc43a0
--- /dev/null
+++ b/klp-wms/src/main/java/com/klp/domain/bo/BatchInspectionTensileBo.java
@@ -0,0 +1,12 @@
+package com.klp.domain.bo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BatchInspectionTensileBo {
+ private Long masterId;
+ private Long applicationId;
+ private List detailList;
+}
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionMainBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionMainBo.java
index 7b3de4d49..ec475247a 100644
--- a/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionMainBo.java
+++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionMainBo.java
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
+import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@@ -74,5 +75,10 @@ public class WmsInspectionMainBo extends BaseEntity {
*/
private String remark;
+ /**
+ * 检验项目明细列表
+ */
+ private List detailList;
+
}
diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionTensileDetailBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionTensileDetailBo.java
index ffce19e15..2ce7d49b9 100644
--- a/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionTensileDetailBo.java
+++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsInspectionTensileDetailBo.java
@@ -7,6 +7,8 @@ import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
+
import com.fasterxml.jackson.annotation.JsonFormat;
/**
@@ -265,4 +267,9 @@ public class WmsInspectionTensileDetailBo extends BaseEntity {
private String remark;
+ /**
+ * 试验样品明细列表
+ */
+ private List detailList;
+
}
diff --git a/klp-wms/src/main/java/com/klp/service/IWmsInspectionMainService.java b/klp-wms/src/main/java/com/klp/service/IWmsInspectionMainService.java
index 9436e4aff..fb3d3d003 100644
--- a/klp-wms/src/main/java/com/klp/service/IWmsInspectionMainService.java
+++ b/klp-wms/src/main/java/com/klp/service/IWmsInspectionMainService.java
@@ -46,4 +46,9 @@ public interface IWmsInspectionMainService {
* 校验并批量删除检验主信息
*/
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+
+ /**
+ * 批量新增检验主及明细,并更新申请单detailIds为主键列表
+ */
+ Boolean batchInsertWithDetails(Long masterId, Long applicationId, List boList);
}
diff --git a/klp-wms/src/main/java/com/klp/service/IWmsInspectionTensileDetailService.java b/klp-wms/src/main/java/com/klp/service/IWmsInspectionTensileDetailService.java
index 79aa0f980..3b3327af8 100644
--- a/klp-wms/src/main/java/com/klp/service/IWmsInspectionTensileDetailService.java
+++ b/klp-wms/src/main/java/com/klp/service/IWmsInspectionTensileDetailService.java
@@ -46,4 +46,6 @@ public interface IWmsInspectionTensileDetailService {
* 校验并批量删除金属材料室温拉伸试验样品明细信息
*/
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+
+ Boolean batchInsertDetails(Long masterId, Long applicationId, List detailList);
}
diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java
index 9acf2a9cb..eb096a748 100644
--- a/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java
+++ b/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionMainServiceImpl.java
@@ -2,15 +2,19 @@ package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.klp.common.core.page.TableDataInfo;
import com.klp.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.klp.common.utils.StringUtils;
+import com.klp.domain.WmsInspectionApplication;
+import com.klp.mapper.WmsInspectionApplicationMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsInspectionMainBo;
+import com.klp.domain.bo.WmsInspectionDetailBo;
import com.klp.domain.vo.WmsInspectionMainVo;
import com.klp.domain.vo.WmsInspectionDetailVo;
import com.klp.domain.WmsInspectionMain;
@@ -19,6 +23,7 @@ import com.klp.mapper.WmsInspectionMainMapper;
import com.klp.mapper.WmsInspectionDetailMapper;
import com.klp.service.IWmsInspectionMainService;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -37,6 +42,7 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
private final WmsInspectionMainMapper baseMapper;
private final WmsInspectionDetailMapper detailMapper;
+ private final WmsInspectionApplicationMapper applicationMapper;
/**
* 查询检验主
@@ -107,6 +113,15 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setMainId(add.getMainId());
+ if (CollUtil.isNotEmpty(bo.getDetailList())) {
+ List detailEntities = new ArrayList<>();
+ for (WmsInspectionDetailBo detailBo : bo.getDetailList()) {
+ detailBo.setMainId(add.getMainId());
+ detailBo.setDetailId(null);
+ detailEntities.add(BeanUtil.toBean(detailBo, WmsInspectionDetail.class));
+ }
+ detailMapper.insertBatch(detailEntities);
+ }
}
return flag;
}
@@ -118,7 +133,61 @@ public class WmsInspectionMainServiceImpl implements IWmsInspectionMainService {
public Boolean updateByBo(WmsInspectionMainBo bo) {
WmsInspectionMain update = BeanUtil.toBean(bo, WmsInspectionMain.class);
validEntityBeforeSave(update);
- return baseMapper.updateById(update) > 0;
+ boolean flag = baseMapper.updateById(update) > 0;
+ if (flag && CollUtil.isNotEmpty(bo.getDetailList())) {
+ for (WmsInspectionDetailBo detailBo : bo.getDetailList()) {
+ detailBo.setMainId(bo.getMainId());
+ WmsInspectionDetail detail = BeanUtil.toBean(detailBo, WmsInspectionDetail.class);
+ if (detailBo.getDetailId() != null) {
+ detailMapper.updateById(detail);
+ } else {
+ detail.setDetailId(null);
+ detailMapper.insert(detail);
+ }
+ }
+ }
+ return flag;
+ }
+
+ /**
+ * 批量新增检验主及明细,并更新申请单detailIds为主键列表
+ */
+ @Override
+ public Boolean batchInsertWithDetails(Long masterId, Long applicationId, List boList) {
+ if (CollUtil.isEmpty(boList)) {
+ return false;
+ }
+ List mainIds = new ArrayList<>();
+ for (WmsInspectionMainBo bo : boList) {
+ WmsInspectionMain add = BeanUtil.toBean(bo, WmsInspectionMain.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (!flag) {
+ return false;
+ }
+ bo.setMainId(add.getMainId());
+ mainIds.add(add.getMainId());
+ if (CollUtil.isNotEmpty(bo.getDetailList())) {
+ List detailEntities = new ArrayList<>();
+ for (WmsInspectionDetailBo detailBo : bo.getDetailList()) {
+ detailBo.setMainId(add.getMainId());
+ detailBo.setDetailId(null);
+ detailEntities.add(BeanUtil.toBean(detailBo, WmsInspectionDetail.class));
+ }
+ detailMapper.insertBatch(detailEntities);
+ }
+ }
+ if (masterId != null && applicationId != null) {
+ String detailIds = mainIds.stream().map(String::valueOf).collect(Collectors.joining(","));
+ applicationMapper.update(null,
+ new LambdaUpdateWrapper()
+ .eq(WmsInspectionApplication::getMainId, masterId)
+ .eq(WmsInspectionApplication::getApplicationId, applicationId)
+ // 同时还要修改状态字段为6
+ .set(WmsInspectionApplication::getFlowStatus, 6)
+ .set(WmsInspectionApplication::getDetailIds, detailIds));
+ }
+ return true;
}
/**
diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionTensileDetailServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionTensileDetailServiceImpl.java
index b10281de7..6efb4d576 100644
--- a/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionTensileDetailServiceImpl.java
+++ b/klp-wms/src/main/java/com/klp/service/impl/WmsInspectionTensileDetailServiceImpl.java
@@ -1,12 +1,16 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.klp.common.core.page.TableDataInfo;
import com.klp.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.klp.common.utils.StringUtils;
+import com.klp.domain.WmsInspectionApplication;
+import com.klp.mapper.WmsInspectionApplicationMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsInspectionTensileDetailBo;
@@ -15,9 +19,11 @@ import com.klp.domain.WmsInspectionTensileDetail;
import com.klp.mapper.WmsInspectionTensileDetailMapper;
import com.klp.service.IWmsInspectionTensileDetailService;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* 金属材料室温拉伸试验样品明细Service业务层处理
@@ -31,6 +37,8 @@ public class WmsInspectionTensileDetailServiceImpl implements IWmsInspectionTens
private final WmsInspectionTensileDetailMapper baseMapper;
+ private final WmsInspectionApplicationMapper applicationMapper;
+
/**
* 查询金属材料室温拉伸试验样品明细
*/
@@ -151,4 +159,35 @@ public class WmsInspectionTensileDetailServiceImpl implements IWmsInspectionTens
}
return baseMapper.deleteBatchIds(ids) > 0;
}
+
+ /**
+ * 批量插入明细并更新申请单detailIds
+ */
+ @Override
+ public Boolean batchInsertDetails(Long masterId, Long applicationId, List detailList) {
+ if (CollUtil.isEmpty(detailList)) {
+ return false;
+ }
+ List details = new ArrayList<>();
+ for (WmsInspectionTensileDetailBo bo : detailList) {
+ bo.setDetailId(null);
+ details.add(BeanUtil.toBean(bo, WmsInspectionTensileDetail.class));
+ }
+ boolean flag = baseMapper.insertBatch(details);
+ if (flag && masterId != null && applicationId != null) {
+ String detailIds = details.stream()
+ .map(WmsInspectionTensileDetail::getDetailId)
+ .collect(Collectors.joining(","));
+ applicationMapper.update(null,
+ new LambdaUpdateWrapper()
+ .eq(WmsInspectionApplication::getMainId, masterId)
+ .eq(WmsInspectionApplication::getApplicationId, applicationId)
+ // 同时还要把状态字段改成6
+ .set(WmsInspectionApplication::getFlowStatus, 6)
+ .set(WmsInspectionApplication::getDetailIds, detailIds));
+ }
+ return flag;
+ }
+
+
}
diff --git a/script/docker/nginx/conf/nginx.conf b/script/docker/nginx/conf/nginx.conf
index e9630aaf7..b1a677310 100644
--- a/script/docker/nginx/conf/nginx.conf
+++ b/script/docker/nginx/conf/nginx.conf
@@ -81,6 +81,15 @@ http {
proxy_pass http://server/;
}
+ # 酸轧六机架轧制模型服务(klp-ml-mill FastAPI)
+ location /mill-api/ {
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header REMOTE-HOST $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_pass http://117.72.159.31:10001/;
+ }
+
# https 会拦截内链所有的 http 请求 造成功能无法使用
# 解决方案1 将 admin 服务 也配置成 https
# 解决方案2 将菜单配置为外链访问 走独立页面 http 访问