diff --git a/klp-pocket/src/main/java/com/klp/pocket/acid/controller/AcidTypingController.java b/klp-pocket/src/main/java/com/klp/pocket/acid/controller/AcidTypingController.java new file mode 100644 index 00000000..d11fb8fc --- /dev/null +++ b/klp-pocket/src/main/java/com/klp/pocket/acid/controller/AcidTypingController.java @@ -0,0 +1,26 @@ +package com.klp.pocket.acid.controller; + +import com.klp.common.core.controller.BaseController; +import com.klp.common.core.domain.R; +import com.klp.pocket.acid.domain.vo.AcidTypingPrefillVo; +import com.klp.pocket.acid.service.IAcidTypingService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RequiredArgsConstructor +@RestController +@RequestMapping("/pocket/acidTyping") +public class AcidTypingController extends BaseController { + + private final IAcidTypingService acidTypingService; + + @GetMapping("/prefill") + public R getTypingPrefill(@RequestParam String currentCoilNo) { + AcidTypingPrefillVo vo = acidTypingService.getTypingPrefillByCurrentCoilNo(currentCoilNo); + return R.ok(vo); + } +} + diff --git a/klp-pocket/src/main/java/com/klp/pocket/acid/domain/vo/AcidTypingPrefillVo.java b/klp-pocket/src/main/java/com/klp/pocket/acid/domain/vo/AcidTypingPrefillVo.java new file mode 100644 index 00000000..8b671ad0 --- /dev/null +++ b/klp-pocket/src/main/java/com/klp/pocket/acid/domain/vo/AcidTypingPrefillVo.java @@ -0,0 +1,27 @@ +package com.klp.pocket.acid.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 酸连轧工序:typing页面表单预填数据 + */ +@Data +public class AcidTypingPrefillVo { + + /** 当前钢卷号(来自klptcm1_pdo_excoil.encoilid) */ + private String currentCoilNo; + + /** 出口卷号(klptcm1_pdo_excoil.excoilid) */ + private String excoilId; + + /** 出口重量(t) */ + private BigDecimal exitWeight; + + /** 出口长度(m) */ + private BigDecimal exitLength; + + /** 班组(格式:shift-crew,例如:甲-A) */ + private String team; +} diff --git a/klp-pocket/src/main/java/com/klp/pocket/acid/mapper/AcidTypingMapper.java b/klp-pocket/src/main/java/com/klp/pocket/acid/mapper/AcidTypingMapper.java new file mode 100644 index 00000000..a51536f2 --- /dev/null +++ b/klp-pocket/src/main/java/com/klp/pocket/acid/mapper/AcidTypingMapper.java @@ -0,0 +1,12 @@ +package com.klp.pocket.acid.mapper; + +import com.klp.pocket.acid.domain.vo.AcidTypingPrefillVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface AcidTypingMapper { + + AcidTypingPrefillVo selectTypingPrefillByEncoilId(@Param("encoilId") String encoilId); +} + diff --git a/klp-pocket/src/main/java/com/klp/pocket/acid/service/IAcidTypingService.java b/klp-pocket/src/main/java/com/klp/pocket/acid/service/IAcidTypingService.java new file mode 100644 index 00000000..c63ab7f3 --- /dev/null +++ b/klp-pocket/src/main/java/com/klp/pocket/acid/service/IAcidTypingService.java @@ -0,0 +1,9 @@ +package com.klp.pocket.acid.service; + +import com.klp.pocket.acid.domain.vo.AcidTypingPrefillVo; + +public interface IAcidTypingService { + + AcidTypingPrefillVo getTypingPrefillByCurrentCoilNo(String currentCoilNo); +} + diff --git a/klp-pocket/src/main/java/com/klp/pocket/acid/service/impl/AcidTypingServiceImpl.java b/klp-pocket/src/main/java/com/klp/pocket/acid/service/impl/AcidTypingServiceImpl.java new file mode 100644 index 00000000..28813cab --- /dev/null +++ b/klp-pocket/src/main/java/com/klp/pocket/acid/service/impl/AcidTypingServiceImpl.java @@ -0,0 +1,22 @@ +package com.klp.pocket.acid.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.klp.pocket.acid.domain.vo.AcidTypingPrefillVo; +import com.klp.pocket.acid.mapper.AcidTypingMapper; +import com.klp.pocket.acid.service.IAcidTypingService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@RequiredArgsConstructor +@DS("acid") +@Service +public class AcidTypingServiceImpl implements IAcidTypingService { + + private final AcidTypingMapper acidTypingMapper; + + @Override + public AcidTypingPrefillVo getTypingPrefillByCurrentCoilNo(String currentCoilNo) { + return acidTypingMapper.selectTypingPrefillByEncoilId(currentCoilNo); + } +} + diff --git a/klp-pocket/src/main/resources/mapper/pocket/AcidTypingMapper.xml b/klp-pocket/src/main/resources/mapper/pocket/AcidTypingMapper.xml new file mode 100644 index 00000000..d173ec13 --- /dev/null +++ b/klp-pocket/src/main/resources/mapper/pocket/AcidTypingMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/klp-ui/src/api/pocket/acidTyping.js b/klp-ui/src/api/pocket/acidTyping.js new file mode 100644 index 00000000..8cebf1d7 --- /dev/null +++ b/klp-ui/src/api/pocket/acidTyping.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +export function getAcidTypingPrefill(currentCoilNo) { + return request({ + url: '/pocket/acidTyping/prefill', + method: 'get', + params: { currentCoilNo } + }) +} + diff --git a/klp-ui/src/views/wms/coil/panels/do.vue b/klp-ui/src/views/wms/coil/panels/do.vue index 1390e4a7..1b949a34 100644 --- a/klp-ui/src/views/wms/coil/panels/do.vue +++ b/klp-ui/src/views/wms/coil/panels/do.vue @@ -832,11 +832,14 @@ export default { } // 跳转并传递参数 + const currentActionTypeLabel = this.$route?.query?.actionType + this.$router.push({ path: path, query: { coilId: row.coilId, - actionId: row.actionId + actionId: row.actionId, + ...(currentActionTypeLabel ? { actionType: currentActionTypeLabel } : {}) } }) }).catch(error => { diff --git a/klp-ui/src/views/wms/coil/typing.vue b/klp-ui/src/views/wms/coil/typing.vue index fa51fa68..f04ea961 100644 --- a/klp-ui/src/views/wms/coil/typing.vue +++ b/klp-ui/src/views/wms/coil/typing.vue @@ -12,6 +12,15 @@ + +
@@ -255,6 +264,7 @@ import { completeAction } from '@/api/wms/pendingAction'; import { listWarehouse } from '@/api/wms/warehouse'; import { listRawMaterialWithBom } from '@/api/wms/rawMaterial'; import { listProductWithBom } from '@/api/wms/product'; +import { getAcidTypingPrefill } from '@/api/pocket/acidTyping'; import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect"; import RawMaterialSelect from "@/components/KLPService/RawMaterialSelect"; import ProductSelect from "@/components/KLPService/ProductSelect"; @@ -358,6 +368,12 @@ export default { warehouseList: [], historySteps: [], actionId: null, + acidPrefill: { + visible: false, + type: 'info', + title: '' + }, + isAcidRolling: false, // 原材料和产品列表(实时搜索,不再保存完整备份) rawMaterialList: [], productList: [], @@ -411,10 +427,67 @@ export default { // 从路由参数获取coilId和actionId const coilId = this.$route.query.coilId; const actionId = this.$route.query.actionId; + const actionType = this.$route.query.actionType; const readonly = this.$route.query.readonly; + this.isAcidRolling = actionType === '酸连轧工序' + + if (this.isAcidRolling) { + this.acidPrefill.visible = true + this.acidPrefill.type = 'info' + this.acidPrefill.title = '正在结合酸轧二级系统自动填写部分信息...' + } + if (coilId) { await this.loadCoilInfo(coilId); + + if (this.isAcidRolling) { + const currentCoilNo = this.currentInfo && this.currentInfo.currentCoilNo + console.log('[typing] acid rolling actionType detected, will call prefill API with currentCoilNo (encoilid)=', currentCoilNo) + + if (!currentCoilNo) { + this.acidPrefill.type = 'warning' + this.acidPrefill.title = '当前钢卷号为空' + } else { + try { + const prefillRes = await getAcidTypingPrefill(currentCoilNo) + const prefill = prefillRes && prefillRes.data + + if (!prefill) { + this.acidPrefill.type = 'info' + this.acidPrefill.title = '未在二级系统中查找到对应信息,请自行填写' + } else { + if (prefill.exitWeight != null && prefill.exitWeight !== '') { + const w = Number(prefill.exitWeight) + if (!Number.isNaN(w)) { + this.$set(this.updateForm, 'grossWeight', w) + this.$set(this.updateForm, 'netWeight', w) + } + } + + if (prefill.exitLength != null && prefill.exitLength !== '') { + const len = Number(prefill.exitLength) + if (!Number.isNaN(len)) { + this.$set(this.updateForm, 'length', len) + } + } + + if (prefill.team) { + this.$set(this.updateForm, 'team', prefill.team) + } + + this.acidPrefill.type = 'success' + this.acidPrefill.title = '已结合酸轧二级系统完成部分信息填写' + + console.log('[typing] acid rolling prefill applied:', prefill) + } + } catch (e) { + console.error('[typing] acid rolling prefill request failed:', e) + this.acidPrefill.type = 'error' + this.acidPrefill.title = '未在二级系统中查找到对应信息,故自动填写失败' + } + } + } } if (actionId) {