From ba8aa925e7901381ceb394adb53eca8723d1c4c5 Mon Sep 17 00:00:00 2001
From: leiqunqing <zhengqifeng@hnkhzn.com>
Date: 星期一, 19 一月 2026 11:05:49 +0800
Subject: [PATCH] 完善工位界面
---
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaService.cs | 4
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/FormulaController.cs | 15
.vs/slnx.sqlite | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IBoxingDetailService.cs | 7
代码管理/WIDESEAWCS_Client/src/views/basicinfo/formula.vue | 248 --
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCs_TaskInfoService.assets.cache | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cbdcf3-408e-4196-9c7f-486ef5eef107.vsidx | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/ToolingBoardSubmitDto.cs | 26
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfo.cs | 42
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoDetailService.cs | 24
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_Formula.cs | 46
代码管理/WIDESEAWCS_Client/src/extension/basicinfo/boxingDetail.js | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 | 0
代码管理/WIDESEAWCS_Client/src/components/basic/VolForm.vue | 407 ++---
代码管理/WIDESEAWCS_Client/src/views/Home.vue | 1094 ++++++++++++++++
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ScanStationService.cs | 208 +++
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/BoxingDetailController.cs | 18
代码管理/WIDESEAWCS_Client/src/views/basicinfo/formulaDetail.vue | 54
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0f5d7584-9cfe-4074-aeb3-fa1f9e570949.vsidx | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_FormulaDetail.cs | 8
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml | 6
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj | 1
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoDetailController.cs | 21
代码管理/WIDESEAWCS_Client/src/extension/basicinfo/formula.js | 11
代码管理/WIDESEAWCS_Client/src/views/basicinfo/scanStation.vue | 238 --
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfo.cs | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/UpdatePartScannedStatusRequest.cs | 22
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/R_PLCDBName.cs | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj | 10
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/W_PLCDBName.cs | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ScanStationController.cs | 62
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b8b6a38-d1b1-459e-b415-f709208d542a.vsidx | 0
代码管理/WIDESEAWCS_Client/src/router/viewGird.js | 4
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SocketClient.cs | 52
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaService.cs | 45
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoController.cs | 16
代码管理/WIDESEAWCS_Client/src/extension/basicinfo/processInfoDetail.js | 22
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfoDetail.cs | 38
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IScanStationService.cs | 16
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/BoxingDetailService.cs | 271 +++
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a92150fa-07f2-4b35-842d-8af5d93da741.vsidx | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaDetailService.cs | 6
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json | 5
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs | 359 ++---
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/CodeChunks.db | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoService.cs | 45
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo | 0
代码管理/WIDESEAWCS_Client/src/api/http.js | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaDetailService.cs | 7
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c99954ff-673f-45d7-b93b-30e6c1adfe58.vsidx | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/SemanticSymbols.db | 0
代码管理/WIDESEAWCS_Client/src/extension/basicinfo/boxing.js | 2
代码管理/WIDESEAWCS_Client/src/views/basicinfo/boxing.vue | 59
.vs/VSWorkspaceState.json | 7
代码管理/WIDESEAWCS_Client/src/components/basic/VolTable.vue | 139 +
代码管理/WIDESEAWCS_Client/src/views/basicinfo/processInfoDetail.vue | 176 ++
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ScanStation.cs | 4
/dev/null | 0
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfoInputs.cache | 2
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoService.cs | 4
代码管理/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoDetailService.cs | 16
64 files changed, 2,879 insertions(+), 1,002 deletions(-)
diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json
new file mode 100644
index 0000000..93d0dbb
--- /dev/null
+++ b/.vs/VSWorkspaceState.json
@@ -0,0 +1,7 @@
+{
+ "ExpandedNodes": [
+ ""
+ ],
+ "SelectedNode": "\\WIDESEAWCS_Server.sln",
+ "PreviewInSolutionExplorer": false
+}
\ No newline at end of file
diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite
new file mode 100644
index 0000000..fac1efa
--- /dev/null
+++ b/.vs/slnx.sqlite
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/api/http.js"
index f73725b..993d5d5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/api/http.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/api/http.js"
@@ -19,7 +19,7 @@
}
else if (process.env.NODE_ENV == 'production') {
- axios.defaults.baseURL = 'http://127.0.0.1:8098/';
+ axios.defaults.baseURL = 'http://192.168.2.110:8098/';
}
if (!axios.defaults.baseURL.endsWith('/')) {
axios.defaults.baseURL+="/";
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolForm.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolForm.vue"
index 3e6b9b1..224bcfd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolForm.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolForm.vue"
@@ -26,9 +26,7 @@
></form-expand>
<!-- 2021.10.17澧炲姞琛ㄥ崟瀹炴椂鏂规硶璁$畻 -->
<span
- v-else-if="
- item.readonly && typeof formFields[item.field] == 'function'
- "
+ v-else-if="item.readonly && typeof formFields[item.field] == 'function'"
>{{ formFields[item.field]() }}</span
>
<!-- 鍙鍥剧墖鎴栨枃浠� -->
@@ -82,17 +80,15 @@
node-key="key"
:props="{ label: 'label' }"
>
- <template #default="{data,node }">
+ <template #default="{ data, node }">
<!-- <el-checkbox v-model="node.checked"></el-checkbox> -->
- <!-- {{getNode(node, data)}} -->
- <!-- {{node.checked}} -->
- <!-- 杩欓噷杩樻湁鐐归棶棰橈紝鍚庨潰澶勭悊 -->
- {{ data.label}}</template
+ <!-- {{getNode(node, data)}} -->
+ <!-- {{node.checked}} -->
+ <!-- 杩欓噷杩樻湁鐐归棶棰橈紝鍚庨潰澶勭悊 -->
+ {{ data.label }}</template
>
</el-tree-select>
- <template
- v-else-if="['select', 'selectList'].indexOf(item.type) != -1"
- >
+ <template v-else-if="['select', 'selectList'].indexOf(item.type) != -1">
<el-select-v2
:disabled="item.readonly || item.disabled"
v-show="!item.hidden"
@@ -230,9 +226,7 @@
<div
class="v-date-range"
style="display: flex"
- v-else-if="
- ['date', 'datetime'].indexOf(item.type) != -1 && item.range
- "
+ v-else-if="['date', 'datetime'].indexOf(item.type) != -1 && item.range"
>
<el-date-picker
:size="size"
@@ -250,9 +244,7 @@
:value-format="getDateFormat(item)"
>
</el-date-picker>
- <span style="margin: 0px 5px; font-size: 13px; color: #6f6b6b"
- >鑷�</span
- >
+ <span style="margin: 0px 5px; font-size: 13px; color: #6f6b6b">鑷�</span>
<el-date-picker
:size="size"
:disabled="item.readonly || item.disabled"
@@ -284,9 +276,7 @@
v-model="formFields[item.field]"
@change="item.onChange"
:type="item.type"
- :placeholder="
- item.placeholder ? item.placeholder : '璇烽�夋嫨' + item.title
- "
+ :placeholder="item.placeholder ? item.placeholder : '璇烽�夋嫨' + item.title"
:disabledDate="(val) => getDateOptions(val, item)"
:value-format="getDateFormat(item)"
>
@@ -308,9 +298,7 @@
<el-scrollbar
style="border: 1px solid #c7d8db; border-radius: 5px"
:height="item.height || 150"
- v-else-if="
- item.type == 'editor' && (item.readonly || item.disabled)
- "
+ v-else-if="item.type == 'editor' && (item.readonly || item.disabled)"
>
<div ref="editor" v-html="formFields[item.field]"></div>
</el-scrollbar>
@@ -358,7 +346,7 @@
v-else-if="item.type == 'cascader'"
:options="item.data"
:props="{
- checkStrictly: item.changeOnSelect || item.checkStrictly
+ checkStrictly: item.changeOnSelect || item.checkStrictly,
}"
@change="item.onChange"
>
@@ -373,10 +361,7 @@
:max="item.max"
v-model="formFields[item.field]"
/>
- <div
- style="display: flex"
- v-else-if="item.type == 'range' || item.range"
- >
+ <div style="display: flex" v-else-if="item.type == 'range' || item.range">
<el-input
:size="size"
:disabled="item.readonly || item.disabled"
@@ -404,7 +389,7 @@
type="textarea"
:autosize="{
minRows: item.minRows || 2,
- maxRows: item.maxRows || 10
+ maxRows: item.maxRows || 10,
}"
:placeholder="item.placeholder ? item.placeholder : item.title"
/>
@@ -492,33 +477,25 @@
</template>
<script>
const rule = {
- change: [
- 'checkbox',
- 'select',
- 'date',
- 'datetime',
- 'drop',
- 'radio',
- 'cascader'
- ], // 2020.05.31澧炲姞绾ц仈绫诲瀷
+ change: ["checkbox", "select", "date", "datetime", "drop", "radio", "cascader"], // 2020.05.31澧炲姞绾ц仈绫诲瀷
phone: /^[1][3,4,5,6,7,8,9][0-9]{9}$/,
decimal: /(^[\-0-9][0-9]*(.[0-9]+)?)$/,
- number: /(^[\-0-9][0-9]*([0-9]+)?)$/
+ number: /(^[\-0-9][0-9]*([0-9]+)?)$/,
};
-const inputTypeArr = ['text', 'string', 'mail', 'textarea', 'password'];
+const inputTypeArr = ["text", "string", "mail", "textarea", "password"];
const types = {
- int: 'number',
- byte: 'number',
- decimal: 'number', // "float",
- string: 'string',
- bool: 'boolean',
- date: 'datetime',
- date: 'date',
- mail: 'email'
+ int: "number",
+ byte: "number",
+ decimal: "number", // "float",
+ string: "string",
+ bool: "boolean",
+ date: "datetime",
+ date: "date",
+ mail: "email",
};
//琛ㄥ崟楠岃瘉娉ㄦ剰锛氭瘡娆¢獙璇侀兘蹇呴』鎵цcallback,鍚﹀垯楠岃瘉涓嶆墽琛屽洖璋冩柟娉�
const colPow = Math.pow(10, 3);
-import FormExpand from './VolForm/VolFormRender';
+import FormExpand from "./VolForm/VolFormRender";
import {
defineAsyncComponent,
defineComponent,
@@ -527,61 +504,59 @@
toRefs,
getCurrentInstance,
onMounted,
- watch
-} from 'vue';
+ watch,
+} from "vue";
export default defineComponent({
components: {
FormExpand,
- 'vol-upload': defineAsyncComponent(() =>
- import('@/components/basic/VolUpload.vue')
+ "vol-upload": defineAsyncComponent(() => import("@/components/basic/VolUpload.vue")),
+ "vol-wang-editor": defineAsyncComponent(() =>
+ import("@/components/editor/VolWangEditor.vue")
),
- 'vol-wang-editor': defineAsyncComponent(() =>
- import('@/components/editor/VolWangEditor.vue')
- )
},
props: {
loadKey: {
// 鏄惁鍔犺浇formRules瀛楁閰嶇疆鐨勬暟鎹簮
type: Boolean,
- default: true
+ default: true,
},
width: {
// 琛ㄥ崟瀹藉害
type: Number,
- default: 0
+ default: 0,
},
labelWidth: {
// 琛ㄥ崟宸﹁竟label鏂囧瓧鏍囩鐨勫搴�
type: Number,
- default: 100
+ default: 100,
},
formRules: {
// 琛ㄥ崟閰嶇疆瑙勫垯锛屽瀛楁绫诲瀷锛屾槸鍚﹀繀濉�
type: Array,
- default: []
+ default: [],
},
formFields: {
type: Object,
default: () => {
return {};
- }
+ },
},
editor: {
// 2021.01.16缂栬緫鍣ㄤ俊鎭� {uploadImgUrl:"",upload:null//涓婁紶鏂规硶}
type: Object,
default: () => {
return {};
- }
+ },
},
size: {
type: String, //large / default / small
- default: 'large'
+ default: "large",
},
select2Count: {
//瓒呭嚭鏁伴噺鏄剧ずselect2缁勪欢
type: Number,
- default: 500
- }
+ default: 500,
+ },
},
computed: {
rules() {
@@ -597,7 +572,7 @@
}, 100);
}
return ruleResult;
- }
+ },
},
setup(props, context) {
const { appContext, proxy } = getCurrentInstance();
@@ -630,7 +605,7 @@
});
}
row.forEach((item, yIndex) => {
- if (item.type == 'number') {
+ if (item.type == "number") {
numberFields.push(item.field);
}
// 鐩墠鍙敮鎸乻elect鍗曢�夎繙绋嬫悳绱紝remote杩滅▼浠庡悗鍙板瓧鍏告暟鎹簮杩涜鎼滅储锛寀rl浠庢寚瀹氱殑url鎼滅储
@@ -644,18 +619,18 @@
// 鍒濆鍖栨暟鎹簮绌哄璞�
if (item.dataKey) {
// 涓嬫媺妗嗛兘寮哄埗璁剧疆涓哄瓧绗︿覆绫诲瀷
- item.columnType = 'string';
+ item.columnType = "string";
if (!item.data) {
item.data = [];
}
}
- if (item.range || item.type == 'range') {
+ if (item.range || item.type == "range") {
if (
!(props.formFields[item.field] instanceof Array) ||
props.formFields[item.field].length != 2
) {
- props.formFields[item.field] = ['', ''];
+ props.formFields[item.field] = ["", ""];
}
rangeFields.push(item.field);
}
@@ -681,10 +656,10 @@
if (keys.length == 0) return;
appContext.config.globalProperties.http
- .post('/api/Sys_Dictionary/GetVueDictionary', keys)
+ .post("/api/Sys_Dictionary/GetVueDictionary", keys)
.then((dic) => {
bindOptions(dic, binds);
- proxy.$emit('dicInited', dic);
+ proxy.$emit("dicInited", dic);
});
};
const bindOptions = (dic, binds) => {
@@ -692,7 +667,7 @@
if (d.data.length > props.select2Count) {
if (
!binds.some((x) => {
- return x.key == d.dicNo && x.type == 'cascader';
+ return x.key == d.dicNo && x.type == "cascader";
})
) {
d.data.forEach((item) => {
@@ -706,7 +681,7 @@
// 濡傛灉鏈夋暟鎹殑鍒欎笉鏌ヨ
if (x.data.length > 0) return true;
//2022.03.13澧炲姞绾ц仈鏁版嵁婧愯嚜鍔ㄨ浆鎹�
- if (x.type == 'cascader' || x.type == 'treeSelect') {
+ if (x.type == "cascader" || x.type == "treeSelect") {
let _data = JSON.parse(JSON.stringify(d.data));
let cascaderArr = appContext.config.globalProperties.base.convertTree(
_data,
@@ -726,13 +701,13 @@
}
});
});
- } else if (d.data.length > 0 && !d.data[0].hasOwnProperty('key')) {
+ } else if (d.data.length > 0 && !d.data[0].hasOwnProperty("key")) {
let source = d.data,
newSource = new Array(source.length);
for (let index = 0; index < source.length; index++) {
newSource[index] = {
- key: source['key'] + '',
- value: source['value']
+ key: source["key"] + "",
+ value: source["value"],
};
}
x.data.push(...newSource);
@@ -745,18 +720,15 @@
const initUpload = (item, init) => {
if (!init) return;
- if (
- ['img', 'excel', 'file'].indexOf(item.type != -1) ||
- item.columnType == 'img'
- ) {
+ if (["img", "excel", "file"].indexOf(item.type != -1) || item.columnType == "img") {
// 鍙槸娌¤缃槸鍚﹁嚜鍔ㄤ笂浼犵殑锛岄粯璁ら兘鏄�夋嫨鏂囦欢鍚庤嚜鍔ㄤ笂浼�
- if (!item.hasOwnProperty('autoUpload')) {
+ if (!item.hasOwnProperty("autoUpload")) {
item.autoUpload = true;
}
- if (!item.hasOwnProperty('fileList')) {
+ if (!item.hasOwnProperty("fileList")) {
item.fileList = true;
}
- if (!item.hasOwnProperty('downLoad')) {
+ if (!item.hasOwnProperty("downLoad")) {
item.downLoad = true;
}
if (!item.removeBefore) {
@@ -790,9 +762,9 @@
let result = true;
volform.value.validate((valid) => {
if (!valid) {
- appContext.config.globalProperties.$message.error('鏁版嵁楠岃瘉鏈�氳繃!');
+ appContext.config.globalProperties.$message.error("鏁版嵁楠岃瘉鏈�氳繃!");
result = false;
- } else if (typeof callback === 'function') {
+ } else if (typeof callback === "function") {
try {
callback(valid);
} catch (error) {
@@ -812,7 +784,7 @@
rangeFields,
numberFields,
validate,
- volform
+ volform,
// initFormRules,
// initSource
};
@@ -820,7 +792,7 @@
created() {
this.formRules.forEach((rules) => {
rules.forEach((option) => {
- if (option.type == 'treeSelect' && option.multiple === undefined) {
+ if (option.type == "treeSelect" && option.multiple === undefined) {
option.multiple = true;
}
});
@@ -830,7 +802,7 @@
data() {
return {
// remoteCall: true,
- errorImg: 'this.src="' + require('@/assets/imgs/error-img.png') + '"'
+ errorImg: 'this.src="' + require("@/assets/imgs/error-img.png") + '"',
// span: 1,
// rangeFields: [],
};
@@ -847,8 +819,7 @@
if (rowLength > _span) _span = rowLength;
});
let rete =
- Math.round(((item.colSize || 12 / _span) / 0.12) * colPow, 10.0) /
- colPow;
+ Math.round(((item.colSize || 12 / _span) / 0.12) * colPow, 10.0) / colPow;
if (item.colSize) return rete.toFixed(3);
return rete.toFixed(3);
// return (100 - rete).toFixed(3);
@@ -858,7 +829,7 @@
},
getSrc(path) {
if (!path) return;
- if (!this.base.isUrl(path) && path.indexOf('.') != -1) {
+ if (!this.base.isUrl(path) && path.indexOf(".") != -1) {
return this.http.ipAddress + path;
}
return path;
@@ -866,10 +837,10 @@
// 鏄惁涓哄浘鐗囨枃浠剁瓑鏍煎紡骞跺瀛楁鐨勮浆鎹㈡垚鏁扮粍锛歔{name:'1.jpg',path:'127.0.0.1/ff/1.jpg'}]
isFile(item, formFields) {
if (
- item.type == 'img' ||
- item.columnType == 'img' ||
- item.type == 'excel' ||
- item.type == 'file'
+ item.type == "img" ||
+ item.columnType == "img" ||
+ item.type == "excel" ||
+ item.type == "file"
) {
this.convertFileToArray(item, formFields);
return true;
@@ -896,21 +867,21 @@
return;
}
// 灏嗕互閫楀彿闅斿紑鐨勬枃浠跺垎鍓叉垚鏁扮粍127.0.0.1/aa/1.jpg,灏�127.0.0.1/aa/2.jpg
- if (typeof fileInfo === 'string') {
- if (fileInfo.trim() === '') {
+ if (typeof fileInfo === "string") {
+ if (fileInfo.trim() === "") {
formFields[item.field] = [];
return;
}
// 濡傛灉鏂囦欢璺緞鏄瓧绗︿覆锛屽垯浣跨敤锛屾媶鍒�
- fileInfo = fileInfo.replace(/\\/g, '/');
- let files = fileInfo.split(',');
+ fileInfo = fileInfo.replace(/\\/g, "/");
+ let files = fileInfo.split(",");
formFields[item.field] = [];
for (let index = 0; index < files.length; index++) {
let file = files[index];
- let splitFile = file.split('/');
+ let splitFile = file.split("/");
formFields[item.field].push({
name: splitFile.length > 0 ? splitFile[splitFile.length - 1] : file,
- path: file // this.base.isUrl(file) ? file : this.http.ipAddress + file,
+ path: file, // this.base.isUrl(file) ? file : this.http.ipAddress + file,
});
}
}
@@ -920,26 +891,26 @@
file.path,
file.name,
{
- Authorization: this.$store.getters.getToken()
+ Authorization: this.$store.getters.getToken(),
},
this.http.ipAddress
);
},
validatorPhone(ruleOption, value, callback) {
- if (!ruleOption.required && !value && value != '0') {
+ if (!ruleOption.required && !value && value != "0") {
return callback();
}
- if (!rule.phone.test((value || '').trim())) {
- return callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�'));
+ if (!rule.phone.test((value || "").trim())) {
+ return callback(new Error("璇疯緭鍏ユ纭殑鎵嬫満鍙�"));
}
callback();
},
validatorPwd(ruleOption, value, callback) {
- if (!ruleOption.required && !value && value != '0') {
+ if (!ruleOption.required && !value && value != "0") {
return callback();
}
- if ((value + '').trim().length < 6) {
- return callback(new Error('瀵嗙爜闀垮害涓嶈兘灏忎簬6浣�'));
+ if ((value + "").trim().length < 6) {
+ return callback(new Error("瀵嗙爜闀垮害涓嶈兘灏忎簬6浣�"));
}
callback();
},
@@ -951,33 +922,33 @@
? val.map((x) => {
return x;
})
- : val.split(',');
+ : val.split(",");
for (let index = 0; index < valArr.length; index++) {
var _item = data.find((x) => {
- return x.key && x.key != '0' && x.key + '' == valArr[index] + '';
+ return x.key && x.key != "0" && x.key + "" == valArr[index] + "";
});
if (_item) {
valArr[index] = _item.value;
}
}
- return valArr.join(',');
+ return valArr.join(",");
},
getText(formFields, item) {
// 2019.10.24淇琛ㄥ崟select缁勪欢涓哄彧璇荤殑灞炴�ф椂娌℃湁缁戝畾鏁版嵁婧�
let text = formFields[item.field];
- if (typeof text === 'function') return text(formFields);
- if (text === 'null' || text === '' || text === null || text === undefined)
- return '--';
+ if (typeof text === "function") return text(formFields);
+ if (text === "null" || text === "" || text === null || text === undefined)
+ return "--";
//2021.03.02澧炲姞鍙鏃舵棩鏈熷鐞�
- if (item.type == 'date') {
- return text.replace('T', ' ').split(' ')[0];
+ if (item.type == "date") {
+ return text.replace("T", " ").split(" ")[0];
}
//2021.03.31淇琛ㄥ崟switch鍙鏃舵病鏈夎浆鎹㈠�肩殑闂
- if (item.type == 'switch') {
- return text ? '鏄�' : '鍚�';
+ if (item.type == "switch") {
+ return text ? "鏄�" : "鍚�";
}
if (!item.data) return text;
- if (item.type == 'selectList' || item.type == 'checkbox') {
+ if (item.type == "selectList" || item.type == "checkbox") {
return this.convertArrayValue(item.data, text);
}
var _item = item.data.find((x) => {
@@ -991,7 +962,7 @@
// console.log(2);
},
onChange(item, value) {
- if (item.onChange && typeof item.onChange === 'function') {
+ if (item.onChange && typeof item.onChange === "function") {
item.onChange(value, item);
}
},
@@ -1002,7 +973,7 @@
// console.log('undefined');
}
this.remoteCall = false;
- if (item.onChange && typeof item.onChange === 'function') {
+ if (item.onChange && typeof item.onChange === "function") {
item.onChange(value, item);
}
},
@@ -1016,23 +987,22 @@
return;
}
if (
- val == '' ||
- (item.data.length == 1 &&
- (val == item.data[0].key || val == item.data[0].value))
+ val == "" ||
+ (item.data.length == 1 && (val == item.data[0].key || val == item.data[0].value))
) {
return;
}
// 寮瑰嚭妗嗘垨鍒濆鍖栬〃鍗曟椂缁檇ata璁剧疆鏁扮粍榛樿鍊�2
// 2020.09.26淇杩滅▼鎼滅储鑷畾涔塽rl涓嶈捣浣滅敤鐨勯棶棰�
let url;
- if (typeof item.url === 'function') {
+ if (typeof item.url === "function") {
url = item.url(val, item.dataKey, item);
} else {
url =
- (item.url || '/api/Sys_Dictionary/GetSearchDictionary') +
- '?dicNo=' +
+ (item.url || "/api/Sys_Dictionary/GetSearchDictionary") +
+ "?dicNo=" +
item.dataKey +
- '&value=' +
+ "&value=" +
val;
}
this.http.post(url).then((dicData) => {
@@ -1043,14 +1013,14 @@
});
},
getObject(date) {
- if (typeof date === 'object') {
+ if (typeof date === "object") {
return date;
}
return new Date(date);
},
reset(sourceObj) {
// 閲嶇疆琛ㄥ崟鏃讹紝绂佺敤杩滅▼鏌ヨ
- this.$refs['volform'].resetFields();
+ this.$refs["volform"].resetFields();
if (this.rangeFields.length) {
this.rangeFields.forEach((key) => {
this.formFields[key].splice(0);
@@ -1085,145 +1055,139 @@
if (
// item.readonly ||
// item.disabled ||
- item.type == 'switch' ||
- item.type == 'range'
+ item.type == "switch" ||
+ item.type == "range"
)
return { required: false };
// 鐢ㄦ埛璁剧疆鐨勮嚜瀹氫箟鏂规硶
- if (item.validator && typeof item.validator === 'function') {
+ if (item.validator && typeof item.validator === "function") {
return {
validator: (rule, val, callback) => {
// 鐢ㄦ埛鑷畾涔夌殑鏂规硶锛屽鏋滆繑鍥炰簡鍊硷紝鐩存帴鏄剧ず杩斿洖鐨勫�硷紝楠岃瘉涓嶉�氳繃
let message = item.validator(rule, val);
- if (message) return callback(new Error(message + ''));
+ if (message) return callback(new Error(message + ""));
return callback();
},
required: item.required,
- trigger: rule.change.indexOf(item.type) != -1 ? 'change' : 'blur'
+ trigger: rule.change.indexOf(item.type) != -1 ? "change" : "blur",
};
}
- if (['img', 'excel', 'file'].indexOf(item.type) != -1) {
+ if (["img", "excel", "file"].indexOf(item.type) != -1) {
return {
validator: (rule, val, callback) => {
//2021.09.05绉婚櫎鏂囦欢涓婁紶榛樿蹇呭~
- if (
- item.required &&
- !this.isReadonly(item) &&
- (!val || !val.length)
- ) {
+ if (item.required && !this.isReadonly(item) && (!val || !val.length)) {
return callback(
- new Error(item.type == 'img' ? '璇蜂笂浼犵収鐗�' : '璇蜂笂浼犳枃浠�')
+ new Error(item.type == "img" ? "璇蜂笂浼犵収鐗�" : "璇蜂笂浼犳枃浠�")
);
}
return callback();
},
required: item.required,
- trigger: 'change'
+ trigger: "change",
};
}
// 璁剧疆鏁板瓧鐨勬渶澶у�兼皯鏈�灏忓��
if (
- item.type == 'number' ||
- item.columnType == 'number' ||
- item.columnType == 'int' ||
- item.type == 'decimal'
+ item.type == "number" ||
+ item.columnType == "number" ||
+ item.columnType == "int" ||
+ item.type == "decimal"
) {
// 濡傛灉鏄繀濉」鐨勬暟瀛楋紝璁剧疆涓�涓粯璁ゆ渶澶т笌鏈�鍊煎皬
- if (item.required && typeof item.min !== 'number') {
+ if (item.required && typeof item.min !== "number") {
item.min = 0; //item.type == "decimal" ? 0.1 : 1;
}
return {
required: item.required,
- message: item.title + '鍙兘鏄暟瀛�',
+ message: item.title + "鍙兘鏄暟瀛�",
title: item.title,
- trigger: 'blur',
+ trigger: "blur",
min: item.min,
max: item.max,
type: item.columnType || item.type,
validator: (ruleObj, value, callback) => {
if (!ruleObj.min && !ruleObj.max) {
if (ruleObj.required) {
- if ((!value && value != '0') || !rule.decimal.test(value)) {
- return callback(new Error('鍙兘鏄暟瀛�'));
+ if ((!value && value != "0") || !rule.decimal.test(value)) {
+ return callback(new Error("鍙兘鏄暟瀛�"));
}
}
return callback();
}
if (this.isReadonly(item)) return callback();
- if (ruleObj.type == 'number') {
+ if (ruleObj.type == "number") {
if (!rule.number.test(value)) {
- ruleObj.message = ruleObj.title + '鍙兘鏄暣鏁�';
+ ruleObj.message = ruleObj.title + "鍙兘鏄暣鏁�";
return callback(new Error(ruleObj.message));
}
} else {
if (!rule.decimal.test(value)) {
- ruleObj.message = ruleObj.title + '鍙兘鏄暟瀛�';
+ ruleObj.message = ruleObj.title + "鍙兘鏄暟瀛�";
return callback(new Error(ruleObj.message));
}
}
if (
ruleObj.min !== undefined &&
- typeof ruleObj.min === 'number' &&
+ typeof ruleObj.min === "number" &&
value < ruleObj.min
) {
- ruleObj.message = ruleObj.title + '涓嶈兘灏忎簬' + ruleObj.min;
+ ruleObj.message = ruleObj.title + "涓嶈兘灏忎簬" + ruleObj.min;
return callback(new Error(ruleObj.message));
}
if (
ruleObj.max !== undefined &&
- typeof ruleObj.max === 'number' &&
+ typeof ruleObj.max === "number" &&
value > ruleObj.max
) {
- ruleObj.message = ruleObj.title + '涓嶈兘澶т簬' + ruleObj.max;
+ ruleObj.message = ruleObj.title + "涓嶈兘澶т簬" + ruleObj.max;
return callback(new Error(ruleObj.message));
}
return callback();
- }
+ },
};
}
// 鎵嬫満銆佸瘑鐮侀獙璇�
- if (item.type == 'password' || item.type == 'phone') {
+ if (item.type == "password" || item.type == "phone") {
return {
- validator:
- item.type == 'phone' ? this.validatorPhone : this.validatorPwd,
+ validator: item.type == "phone" ? this.validatorPhone : this.validatorPwd,
required: item.required,
- trigger: 'blur'
+ trigger: "blur",
};
}
- if (!item.required && item.type != 'mail') return { required: false };
+ if (!item.required && item.type != "mail") return { required: false };
- if (!item.hasOwnProperty('type')) item.type = 'text';
+ if (!item.hasOwnProperty("type")) item.type = "text";
if (inputTypeArr.indexOf(item.type) != -1) {
let message =
- item.title +
- (item.type == 'mail' ? '蹇呴』鏄竴涓偖绠卞湴鍧�' : '涓嶈兘涓虹┖');
- let type = item.type == 'mail' ? 'email' : types[item.columnType];
+ item.title + (item.type == "mail" ? "蹇呴』鏄竴涓偖绠卞湴鍧�" : "涓嶈兘涓虹┖");
+ let type = item.type == "mail" ? "email" : types[item.columnType];
let _rule = {
required: true,
message: message,
- trigger: 'blur',
+ trigger: "blur",
type: type,
validator: (ruleObj, value, callback) => {
if (
!this.isReadonly(item) &&
- (value === '' || value === undefined || value === null)
+ (value === "" || value === undefined || value === null)
) {
return callback(new Error(ruleObj.message));
}
return callback();
- }
+ },
};
- if (item.type == 'mail') {
+ if (item.type == "mail") {
_rule.validator = undefined;
return _rule;
}
if (item.min) {
_rule.min = item.min;
- _rule.message = item.title + '鑷冲皯' + item.min + '涓瓧绗�!';
+ _rule.message = item.title + "鑷冲皯" + item.min + "涓瓧绗�!";
}
if (item.max) {
return [
@@ -1231,94 +1195,94 @@
{
max: item.max,
required: true,
- message: item.title + '鏈�澶�' + item.max + '涓瓧绗�!',
- trigger: 'blur'
- }
+ message: item.title + "鏈�澶�" + item.max + "涓瓧绗�!",
+ trigger: "blur",
+ },
];
}
return _rule;
}
- if (item.type == 'radio') {
+ if (item.type == "radio") {
return {
required: item.required,
- message: '璇烽�夋嫨' + item.title,
- trigger: 'change',
- type: 'string'
+ message: "璇烽�夋嫨" + item.title,
+ trigger: "change",
+ type: "string",
};
}
if (
- item.type == 'date' ||
- item.type == 'datetime' ||
- item.type == 'month' ||
- item.type == 'time'
+ item.type == "date" ||
+ item.type == "datetime" ||
+ item.type == "month" ||
+ item.type == "time"
) {
return {
required: true,
- message: '璇烽�夋嫨' + item.title,
- trigger: 'change',
- type: item.range ? 'array' : 'string',
+ message: "璇烽�夋嫨" + item.title,
+ trigger: "change",
+ type: item.range ? "array" : "string",
validator: (rule, val, callback) => {
if (this.isReadonly(item)) return callback();
// 鐢ㄦ埛鑷畾涔夌殑鏂规硶锛屽鏋滆繑鍥炰簡鍊硷紝鐩存帴鏄剧ず杩斿洖鐨勫�硷紝楠岃瘉涓嶉�氳繃
if (!val || (item.range && !val.length)) {
- return callback(new Error('璇烽�夋嫨鏃ユ湡'));
+ return callback(new Error("璇烽�夋嫨鏃ユ湡"));
}
return callback();
- }
+ },
};
}
- if (item.type == 'cascader') {
+ if (item.type == "cascader") {
return {
- type: 'array',
+ type: "array",
required: true,
min: item.min || 1,
// message: "璇烽�夋嫨" + item.title,
- trigger: 'change',
+ trigger: "change",
validator: (rule, val, callback) => {
if (this.isReadonly(item)) return callback();
// 鐢ㄦ埛鑷畾涔夌殑鏂规硶锛屽鏋滆繑鍥炰簡鍊硷紝鐩存帴鏄剧ず杩斿洖鐨勫�硷紝楠岃瘉涓嶉�氳繃
let _arr = this.formFields[item.field];
if (!_arr || !_arr.length) {
- return callback(new Error('璇烽�夋嫨' + item.title));
+ return callback(new Error("璇烽�夋嫨" + item.title));
}
return callback();
- }
+ },
};
}
if (
- ['select', 'selectList', 'checkbox', 'cascader', 'treeSelect'].indexOf(
+ ["select", "selectList", "checkbox", "cascader", "treeSelect"].indexOf(
item.type
) != -1
) {
let _rule = {
- type: item.type == 'select' ? 'string' : 'array',
+ type: item.type == "select" ? "string" : "array",
required: true,
min: item.min || 1,
- message: '璇烽�夋嫨' + item.title,
- trigger: 'change',
+ message: "璇烽�夋嫨" + item.title,
+ trigger: "change",
validator: (rule, value, callback) => {
if (this.isReadonly(item)) return callback();
//2021.11.27淇澶氶�夋病鏈夋彁绀虹殑闂
- if (value == undefined || value === '') {
+ if (value == undefined || value === "") {
return callback(new Error(rule.message));
} else if (
- (item.type == 'checkbox' ||
- item.type == 'selectList' ||
- item.type == 'treeSelect') &&
+ (item.type == "checkbox" ||
+ item.type == "selectList" ||
+ item.type == "treeSelect") &&
(!(value instanceof Array) || !value.length)
) {
return callback(new Error(rule.message));
}
return callback();
- }
+ },
};
if (_rule.max) {
_rule.nax = item.max;
- _rule.message = '鏈�澶氬彧鑳介�夋嫨' + item.max + '椤�';
+ _rule.message = "鏈�澶氬彧鑳介�夋嫨" + item.max + "椤�";
}
return _rule;
}
@@ -1329,8 +1293,7 @@
return true;
}
return (
- date1.valueOf() <
- (typeof date2 == 'number' ? date2 : new Date(date2).valueOf())
+ date1.valueOf() < (typeof date2 == "number" ? date2 : new Date(date2).valueOf())
);
},
getDateOptions(date, item) {
@@ -1338,27 +1301,25 @@
if ((!item.min && !item.max) || !date) {
return false;
}
- if (item.min && item.min.indexOf(' ') == -1) {
+ if (item.min && item.min.indexOf(" ") == -1) {
//涓嶈缃椂鍒嗙锛屽悗闈細鑷姩鍔犱笂 08:00
- item.min = item.min + ' 00:00:000';
+ item.min = item.min + " 00:00:000";
}
- return (
- this.compareDate(date, item.min) || !this.compareDate(date, item.max)
- );
+ return this.compareDate(date, item.min) || !this.compareDate(date, item.max);
},
getDateFormat(item) {
- if (item.type == 'month') {
- return 'YYYY-MM';
+ if (item.type == "month") {
+ return "YYYY-MM";
}
// if (item.type=='time') {
// return 'HH:mm:ss'
// }
//瑙乭ttps://day.js.org/docs/zh-CN/display/format
- return item.type == 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss';
+ return item.type == "date" ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm:ss";
},
dateRangeChange(val, item) {
if (!val) {
- this.$emit('update:formFields');
+ this.$emit("update:formFields");
return;
}
item.onChange && item.onChange(val);
@@ -1372,10 +1333,10 @@
filterMethod(value, data) {
return data.label.includes(value);
},
- getNode( label,node, data){
- console.log(label)
- }
- }
+ getNode(label, node, data) {
+ console.log(label);
+ },
+ },
});
</script>
<style lang="less" scoped>
@@ -1455,8 +1416,8 @@
padding-left: 5px;
}
.el-form-item ::v-deep(textarea) {
- font-family: 'Helvetica Neue', Helvetica, 'PingFang SC', 'Hiragino Sans GB',
- 'Microsoft YaHei', '寰蒋闆呴粦', Arial, sans-serif !important;
+ font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
+ "Microsoft YaHei", "寰蒋闆呴粦", Arial, sans-serif !important;
}
.el-form-item ::v-deep(.el-select .el-select__tags > span) {
display: flex;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolTable.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolTable.vue"
index af51360..096a1ea 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolTable.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/components/basic/VolTable.vue"
@@ -642,6 +642,7 @@
default: 500,
},
selectable: {
+
type: Function,
default: (row, index) => {
return true;
@@ -884,47 +885,110 @@
rowDbClick(row, column, event) {
//2021.05.23澧炲姞鍙屽嚮琛屼簨浠�
this.$emit("rowDbClick", { row, column, event });
- },
- rowClick(row, column, event) {
- //2022.02.20澧炲姞鐐瑰嚮鏃惰〃鏍煎弬鏁板垽鏂�
- if (!column) {
- return;
- }
- //姝e湪缂栬緫鏃讹紝绂佹鍑哄彂rowClick浜嬩欢
- if (this.edit.rowIndex == -1) {
- this.$emit("rowClick", { row, column, event });
- }
- // 鐐瑰嚮琛屼簨浠�(2020.11.07)
+ },rowClick(row, column, event) {
+ // 2022.02.20澧炲姞鐐瑰嚮鏃惰〃鏍煎弬鏁板垽鏂�
+ if (!column) {
+ return;
+ }
- if (!this.doubleEdit) {
- return;
- }
- // 鐐瑰嚮鍏朵粬琛屾椂锛屽鏋滅偣鍑荤殑琛屼笌姝e湪缂栬緫鐨勮鐩稿悓锛屼繚鎸佺紪杈戠姸鎬�
- if (this.clickEdit && this.edit.rowIndex != -1) {
- if (row.elementIndex == this.edit.rowIndex) {
- // 鐐瑰嚮鐨勫崟鍏冩牸濡傛灉涓嶅彲浠ョ紪杈戯紝鐩存帴缁撴潫缂栬緫
- // 2020.10.12淇缁撴潫缂栬緫鏃讹紝element table楂樼増鏈睘鎬ц幏鍙栦笉鍒扮殑闂
- let _col = this.columns.find((x) => {
- return x.field == ((event && event.property) || column.property);
- });
- if (_col && (!_col.edit || _col.readonly)) {
- if (this.rowEndEdit(row, event)) {
- this.edit.rowIndex = -1;
- }
- }
- return;
- }
- if (this.rowEndEdit(row, event && event.property ? event : column)) {
+ // ===== 浼樺寲锛氶殧绂诲閫夋鐐瑰嚮浜嬩欢锛岄伩鍏嶅啋娉″共鎵� 寮�濮� =====
+ // 鍒ゆ柇鐐瑰嚮鐩爣鏄惁鏄閫夋锛堟垨澶嶉�夋鎵�鍦ㄧ殑鍗曞厓鏍�/鍥炬爣锛�
+ const targetEl = event.target;
+ const isCheckbox = targetEl.classList.contains('el-checkbox__input') ||
+ targetEl.closest('.el-checkbox__input') ||
+ targetEl.closest('.el-table-column--selection');
+ // 濡傛灉鐐瑰嚮鐨勬槸澶嶉�夋鍖哄煙锛岀洿鎺ヨ繑鍥烇紝涓嶆墽琛岃閫変腑閫昏緫
+ if (isCheckbox) {
+ return;
+ }
+ // ===== 浼樺寲锛氶殧绂诲閫夋鐐瑰嚮浜嬩欢 缁撴潫 =====
+
+ // ===== 浼樺寲锛氱偣鍑昏閫変腑/鍒囨崲澶嶉�夋 寮�濮� =====
+ // 1. 鍒ゆ柇鏄惁鏄剧ず澶嶉�夋锛坈k涓簍rue锛夛紝涓嶆樉绀哄垯鏃犻渶澶勭悊
+ // 2. 缂栬緫鐘舵�佷笅涓嶈Е鍙戯紙閬垮厤骞叉壈缂栬緫鍔熻兘锛�
+ if (this.ck && this.edit.rowIndex === -1) {
+ // 3. 鍗曢�夊満鏅紙single涓簍rue锛夛細鍏堟竻绌烘墍鏈夐�変腑椤癸紝鍐嶅己鍒堕�変腑褰撳墠琛岋紙淇濇寔鍗曢�夐�昏緫锛�
+ if (this.single) {
+ this.$refs.table.clearSelection(); // 娓呯┖鎵�鏈夐�変腑
+ this.$refs.table.toggleRowSelection(row, true); // 鍗曢�夊満鏅己鍒堕�変腑褰撳墠琛�
+ }
+ // 4. 澶氶�夊満鏅紙single涓篺alse锛夛細涓嶄紶绗簩涓弬鏁帮紝瀹炵幇鍒囨崲閫変腑/鍙栨秷鐘舵��
+ else {
+ this.$refs.table.toggleRowSelection(row); // 鍒囨崲鐘舵�侊紝鏀寔鍙栨秷閫変腑
+ }
+ }
+ // ===== 浼樺寲锛氱偣鍑昏閫変腑/鍒囨崲澶嶉�夋 缁撴潫 =====
+
+ // 姝e湪缂栬緫鏃讹紝绂佹瑙﹀彂rowClick浜嬩欢
+ if (this.edit.rowIndex == -1) {
+ this.$emit("rowClick", { row, column, event });
+ }
+ // 鐐瑰嚮琛屼簨浠�(2020.11.07)
+ if (!this.doubleEdit) {
+ return;
+ }
+ // 鐐瑰嚮鍏朵粬琛屾椂锛屽鏋滅偣鍑荤殑琛屼笌姝e湪缂栬緫鐨勮鐩稿悓锛屼繚鎸佺紪杈戠姸鎬�
+ if (this.clickEdit && this.edit.rowIndex != -1) {
+ if (row.elementIndex == this.edit.rowIndex) {
+ // 鐐瑰嚮鐨勫崟鍏冩牸濡傛灉涓嶅彲浠ョ紪杈戯紝鐩存帴缁撴潫缂栬緫
+ // 2020.10.12淇缁撴潫缂栬緫鏃讹紝element table楂樼増鏈睘鎬ц幏鍙栦笉鍒扮殑闂
+ let _col = this.columns.find((x) => {
+ return x.field == ((event && event.property) || column.property);
+ });
+ if (_col && (!_col.edit || _col.readonly)) {
+ if (this.rowEndEdit(row, event)) {
this.edit.rowIndex = -1;
}
- //褰撴鍦ㄧ紪杈戯紝涓旂偣鍑诲埌鍏朵粬琛屾椂锛屽湪鍘熺紪杈戠殑琛岀粨鏉熺紪杈戝悗锛岃Е鍙戞柊琛岀殑rowClick浜嬩欢
- //姝e湪缂栬緫鏃讹紝绂佹鍑哄彂rowClick浜嬩欢
- if (this.edit.rowIndex == -1) {
- this.$emit("rowClick", { row, column, event });
- }
}
- this.rowBeginEdit(row, column);
- },
+ return;
+ }
+ if (this.rowEndEdit(row, event && event.property ? event : column)) {
+ this.edit.rowIndex = -1;
+ }
+ //褰撴鍦ㄧ紪杈戯紝涓旂偣鍑诲埌鍏朵粬琛屾椂锛屽湪鍘熺紪杈戠殑琛岀粨鏉熺紪杈戝悗锛岃Е鍙戞柊琛岀殑rowClick浜嬩欢
+ //姝e湪缂栬緫鏃讹紝绂佹瑙﹀彂rowClick浜嬩欢
+ if (this.edit.rowIndex == -1) {
+ this.$emit("rowClick", { row, column, event });
+ }
+ }
+ this.rowBeginEdit(row, column);
+},
+
+ // //姝e湪缂栬緫鏃讹紝绂佹鍑哄彂rowClick浜嬩欢
+ // if (this.edit.rowIndex == -1) {
+ // this.$emit("rowClick", { row, column, event });
+ // }
+ // // 鐐瑰嚮琛屼簨浠�(2020.11.07)
+
+ // if (!this.doubleEdit) {
+ // return;
+ // }
+ // // 鐐瑰嚮鍏朵粬琛屾椂锛屽鏋滅偣鍑荤殑琛屼笌姝e湪缂栬緫鐨勮鐩稿悓锛屼繚鎸佺紪杈戠姸鎬�
+ // if (this.clickEdit && this.edit.rowIndex != -1) {
+ // if (row.elementIndex == this.edit.rowIndex) {
+ // // 鐐瑰嚮鐨勫崟鍏冩牸濡傛灉涓嶅彲浠ョ紪杈戯紝鐩存帴缁撴潫缂栬緫
+ // // 2020.10.12淇缁撴潫缂栬緫鏃讹紝element table楂樼増鏈睘鎬ц幏鍙栦笉鍒扮殑闂
+ // let _col = this.columns.find((x) => {
+ // return x.field == ((event && event.property) || column.property);
+ // });
+ // if (_col && (!_col.edit || _col.readonly)) {
+ // if (this.rowEndEdit(row, event)) {
+ // this.edit.rowIndex = -1;
+ // }
+ // }
+ // return;
+ // }
+ // if (this.rowEndEdit(row, event && event.property ? event : column)) {
+ // this.edit.rowIndex = -1;
+ // }
+ // //褰撴鍦ㄧ紪杈戯紝涓旂偣鍑诲埌鍏朵粬琛屾椂锛屽湪鍘熺紪杈戠殑琛岀粨鏉熺紪杈戝悗锛岃Е鍙戞柊琛岀殑rowClick浜嬩欢
+ // //姝e湪缂栬緫鏃讹紝绂佹鍑哄彂rowClick浜嬩欢
+ // if (this.edit.rowIndex == -1) {
+ // this.$emit("rowClick", { row, column, event });
+ // }
+ // }
+ // this.rowBeginEdit(row, column);
+ // },
dowloadFile(file) {
this.base.dowloadFile(
file.path,
@@ -1654,6 +1718,7 @@
return column.edit.type == "date" ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm:ss";
},
userSelect(selection, row) {
+ console.log("userSelect", selection, row);
this.selectRows = selection;
if (!this.single) {
this.$emit("rowChange", { row, selection });
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxing.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxing.js"
index da94487..76c1328 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxing.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxing.js"
@@ -1,5 +1,3 @@
-
-
let extension = {
components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
//琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxingDetail.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxingDetail.js"
index da94487..76c1328 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxingDetail.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/boxingDetail.js"
@@ -1,5 +1,3 @@
-
-
let extension = {
components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
//琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/formula.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/formula.js"
index da94487..96e8cfd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/formula.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/formula.js"
@@ -1,10 +1,9 @@
-
let extension = {
components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
//琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
gridHeader:'',
- gridbody:'',
+ gridBody: '',
gridFooter: '',
//寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
modelHeader: '',
@@ -14,7 +13,13 @@
buttons: [],//鎵╁睍鐨勬寜閽�
methods: {//浜嬩欢鎵╁睍
onInit() {
- },
+ var detailImport = this.detailOptions.buttons.find(item=>item.value == 'import');
+ if(detailImport){
+ detailImport.onClick = () => {
+ this.$refs.gridBody.open();
+ }
+ }
+ },
onInited() {
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/processInfoDetail.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/processInfoDetail.js"
new file mode 100644
index 0000000..da94487
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/extension/basicinfo/processInfoDetail.js"
@@ -0,0 +1,22 @@
+
+
+let extension = {
+ components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ gridHeader:'',
+ gridbody:'',
+ gridFooter: '',
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ buttons: [],//鎵╁睍鐨勬寜閽�
+ methods: {//浜嬩欢鎵╁睍
+ onInit() {
+ },
+ onInited() {
+ }
+ }
+};
+export default extension;
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/router/viewGird.js"
index 2e93c1c..3bb9020 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/router/viewGird.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/router/viewGird.js"
@@ -78,6 +78,10 @@
name: 'processInfo',
component: () => import('@/views/basicinfo/processInfo.vue')
}, {
+ path: '/processInfoDetail',
+ name: 'processInfoDetail',
+ component: () => import('@/views/basicinfo/processInfoDetail.vue')
+ }, {
path: '/scanStation',
name: 'scanStation',
component: () => import('@/views/basicinfo/scanStation.vue')
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/Home.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/Home.vue"
index 820437a..b82d2f2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/Home.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/Home.vue"
@@ -1,24 +1,1094 @@
<template>
- <div class="title"></div>
+ <div class="container">
+ <!-- 宸︿晶鍖哄煙 - 鏃犱换浣曟爣棰樻爣娉� -->
+ <div class="left-area">
+ <div class="left-top">
+ <!-- 鎸夐挳+淇″彿 妯悜鎺掑垪瀹瑰櫒 -->
+ <div class="btn-signal-group">
+ <!-- 鎸夐挳缁� - 淇敼涓轰笂涓嬫帓鍒� -->
+ <div class="btn-group">
+ <button
+ class="btn"
+ :class="isPLCStarted ? 'stop-btn' : 'start-btn'"
+ @click="handleToggle"
+ >
+ <i class="icon" :class="isPLCStarted ? 'icon-stop' : 'icon-start'"></i>
+ {{ isPLCStarted ? "鍏抽棴" : "鍚姩" }}
+ </button>
+ <button
+ class="btn"
+ :class="isPLCPaused ? 'resume-btn' : 'pause-btn'"
+ @click="handlePauseToggle"
+ :disabled="!isPLCStarted"
+ >
+ <i class="icon" :class="isPLCPaused ? 'icon-resume' : 'icon-pause'"></i>
+ {{ isPLCPaused ? "鎭㈠" : "鏆傚仠" }}
+ </button>
+ </div>
+
+ <!-- 淇″彿鐏粍 鍗犱袱涓寜閽搴� + 鏁翠綋鏀惧ぇ -->
+ <div class="signal-status">
+ <div class="signal-item" v-for="(signal, index) in signalStates" :key="index">
+ <div
+ class="signal-light"
+ :class="signal ? 'signal-active' : 'signal-inactive'"
+ >
+ <div class="signal-light-inner"></div>
+ </div>
+ <span class="signal-label">{{ signalLabels[index] }}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="left-bottom">
+ <div class="form-row finished-product-row">
+ <span class="label">鎴愬搧缂栧彿锛�</span>
+ <input type="text" class="input-box" v-model="finishedProduct" disabled />
+ </div>
+ <div class="parts-list">
+ <div
+ class="form-row part-item"
+ v-for="(item, index) in leftPartCodes"
+ :key="index"
+ >
+ <span class="label">闆朵欢{{ index + 1 }}锛�</span>
+ <input
+ type="text"
+ class="input-box"
+ v-model="leftPartCodes[index]"
+ disabled
+ />
+ <label class="checkbox-container">
+ <input
+ type="checkbox"
+ class="part-checkbox"
+ v-model="leftPartChecked[index]"
+ @change="handlePartCheck(index)"
+ />
+ <span class="checkmark"></span>
+ <span class="checkbox-label">{{
+ leftPartChecked[index] ? "鎵爜" : "涓嶆壂"
+ }}</span>
+ </label>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <!-- 鍙充晶鍖哄煙 - 鏃犱换浣曟爣棰樻爣娉� 銆愬凡鍒犻櫎娓呯┖+淇濆瓨鎸夐挳銆� -->
+ <div class="right-area">
+ <div class="right-top">
+ <div class="form-row">
+ <span class="label">褰曞叆妗嗭細</span>
+ <!-- 鉁� 鍙繚鐣欑函褰曞叆妗嗭紝娓呯┖/淇濆瓨鎸夐挳宸插垹闄� -->
+ <input type="text" class="input-box" v-model="rightTopInput" />
+ </div>
+ </div>
+
+ <div class="right-bottom">
+ <div class="form-row tooling-board-row">
+ <span class="short-label">宸ヨ鏉跨紪鍙凤細</span>
+ <input
+ type="text"
+ class="input-box short-input"
+ v-model="toolingBoardNo"
+ placeholder="璇疯緭鍏ュ伐瑁呮澘缂栧彿"
+ />
+ <button class="btn clear-btn" @click="clearToolingBoardNo">
+ <i class="icon icon-clear"></i>娓呴櫎
+ </button>
+ <button class="btn save-btn" @click="saveToolingBoardNo">
+ <i class="icon icon-submit"></i>鎻愪氦
+ </button>
+ </div>
+ <div class="parts-list">
+ <div class="form-row part-item finished-product-row">
+ <span class="label">鎴愬搧缂栧彿锛�</span>
+ <input
+ type="text"
+ class="input-box"
+ v-model="finishedProductCode"
+ placeholder="璇疯緭鍏ユ垚鍝佺紪鍙�"
+ />
+ <button class="btn clear-btn" @click="clearFinishedProductCode">
+ <i class="icon icon-clear"></i>娓呴櫎
+ </button>
+ </div>
+ <div
+ class="form-row part-item"
+ v-for="(item, index) in rightPartCodes"
+ :key="index"
+ >
+ <span class="label">闆朵欢{{ index + 1 }}锛�</span>
+ <input
+ type="text"
+ class="input-box"
+ v-model="rightPartCodes[index]"
+ placeholder="璇疯緭鍏ラ浂浠剁紪鍙�"
+ />
+ <button class="btn clear-btn" @click="clearRightPart(index)">
+ <i class="icon icon-clear"></i>娓呴櫎
+ </button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
</template>
<script>
-import { ref, reactive } from 'vue'
+import { ref, onMounted, onUnmounted, watch, computed } from "vue";
+import axios from "axios";
export default {
setup() {
- return {
+ // 鍩虹鏁版嵁瀹氫箟 - 1:1绮惧噯瀵规帴鍚庣 鎴愬搧缂栧彿+闆朵欢缂栧彿 鏃犲啑浣欏吋瀹�
+ const finishedProduct = ref(""); // 宸︿晶鎴愬搧缂栧彿锛圙etLeftInitialData鎺ュ彛杩斿洖锛�
+ const finishedProductId = ref("");
+ const rightTopInput = ref("");
+ const leftPartCodes = ref(Array(10).fill("")); // 宸︿晶闆朵欢缂栧彿鏁扮粍
+ const rightPartCodes = ref(Array(10).fill("")); // 鍙充晶闆朵欢缂栧彿鏁扮粍
+ const leftPartChecked = ref(Array(10).fill(false));
+ const toolingBoardNo = ref("");
+ const fillIndex = ref(-1);
+ const leftPartIds = ref(Array(10).fill(""));
+ const finishedProductCode = ref(""); // 鍙充晶鎴愬搧缂栧彿锛堝伐瑁呮澘鎺ュ彛杩斿洖锛�
- }
- }
-}
+ // PLC鐘舵��
+ const isPLCStarted = ref(false);
+ const isPLCPaused = ref(false);
+
+ // 淇″彿鐩稿叧
+ const signalStates = ref([false, false, false, false, false]);
+ const signalLabels = ref([
+ "蹇冭烦淇″彿",
+ "鎬ュ仠淇″彿",
+ "鑷姩杩愯淇″彿",
+ "鍦ㄧ嚎妯″紡淇″彿",
+ "鏁呴殰淇″彿",
+ ]);
+
+ // 瀹氭椂杞鏍稿績閰嶇疆
+ let pollingTimer = null;
+ const pollingInterval = 5000;
+ let checkDebounceTimer = null;
+ let destroyDelayTimer = null;
+ const destroyDelayTime = 500; // 鉁� 鏍稿績锛氬~鍏�+娓呯┖ 閮藉欢杩�500姣
+ let boardCodeDebounceTimer = null;
+ // 鉁� 鏂板锛氳嚜鍔ㄦ彁浜ら槻鎶栧畾鏃跺櫒锛岄槻姝㈤噸澶嶆彁浜�
+ let autoSubmitDebounceTimer = null;
+ // 鉁� 鏂板锛氭彁浜ら攣锛岄槻姝㈡棤鍕鹃�夋椂閲嶅瑙﹀彂鎻愪氦
+ let submitLock = ref(false);
+
+ // 鉁� 鉁� 鉁� 鏍稿績鏂板1锛氳绠楀睘鎬� - 瀹炴椂缁熻宸︿晶鍕鹃�夌殑澶嶉�夋鏁伴噺 (鑷姩鏇存柊)
+ const checkedCount = computed(() => {
+ // 缁熻leftPartChecked鏁扮粍涓负true鐨勬暟閲�
+ return leftPartChecked.value.filter((checked) => checked === true).length;
+ });
+
+ // 鉁� 鉁� 鉁� 鏍稿績鏂板2锛氳绠楀睘鎬� - 瀹炴椂缁熻鍙充晶宸插~鍏呯殑闆朵欢鏁伴噺 (鑷姩鏇存柊)
+ const filledPartCount = computed(() => {
+ // 缁熻rightPartCodes鏁扮粍涓湁鍊�(闈炵┖)鐨勯浂浠舵暟閲�
+ return rightPartCodes.value.filter((code) => code.trim() !== "").length;
+ });
+
+ // 鉁� 鑾峰彇宸︿晶鍒濆鏁版嵁 - 瀵规帴 /api/scanStation/GetLeftInitialData
+ const fetchLeftInitialData = async () => {
+ try {
+ console.log("姝e湪鑾峰彇宸︿晶鍒濆鏁版嵁锛堟垚鍝佺紪鍙�+闆朵欢缂栧彿+鍕鹃�夌姸鎬�+闆朵欢ID锛�...");
+ const response = await axios.get("/api/scanStation/GetLeftInitialData", {
+ timeout: 5000,
+ });
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ if (isSuccess) {
+ const data = resData.Data || resData.data || {};
+ if (data.finishedProductId) finishedProductId.value = data.finishedProductId;
+ if (data.finishedProduct) finishedProduct.value = data.finishedProduct;
+ // 璧嬪�煎乏渚ч浂浠剁紪鍙�
+ if (Array.isArray(data.leftPartCodes) && data.leftPartCodes.length >= 10) {
+ for (let i = 0; i < 10; i++) {
+ leftPartCodes.value[i] = data.leftPartCodes[i] || "";
+ leftPartIds.value[i] = data.leftPartIds?.[i] || "";
+ }
+ }
+ // 璧嬪�煎嬀閫夌姸鎬�
+ if (Array.isArray(data.leftPartChecked) && data.leftPartChecked.length >= 10) {
+ for (let i = 0; i < 10; i++) {
+ leftPartChecked.value[i] = !!data.leftPartChecked[i];
+ }
+ }
+ }
+ } catch (error) {
+ console.error("鑾峰彇宸︿晶鍒濆鏁版嵁澶辫触锛�", error);
+ }
+ };
+
+ // 鉁� 鑾峰彇淇″彿+PLC鐘舵��
+ const fetchSignalAndPLCStates = async () => {
+ try {
+ const response = await axios.get("/api/scanStation/GetSignalStates", {
+ timeout: 5000,
+ });
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ if (isSuccess) {
+ const data = resData.Data || resData.data || {};
+ const newSignalStates = data.signalStates || [];
+ for (let i = 0; i < 5; i++) signalStates.value[i] = newSignalStates[i] ?? false;
+ const plcStatus = data.plcStatus || data.plc_status || {};
+ isPLCStarted.value = plcStatus.isStarted ?? isPLCStarted.value;
+ // 鉁� 淇BUG锛氬師浠g爜鏄� isPLCStarted.value 瀵艰嚧鏆傚仠鐘舵�佽祴鍊奸敊璇�
+ isPLCPaused.value = plcStatus.isPaused ?? isPLCPaused.value;
+ }
+ } catch (error) {
+ console.error("鑾峰彇淇″彿鍜孭LC鐘舵�佸け璐ワ細", error);
+ }
+ };
+
+ // 鉁� 銆愭牳蹇冧慨鏀广�戝伐瑁呮澘鏌ヨ鎺ュ彛 - 鏈夋暟鎹氨濉厖锛屾棤鏁版嵁/澶辫触 瀹屽叏淇濈暀鍘熸湁鍐呭锛屼笉鍋氫换浣曟竻绌烘搷浣�
+ const fetchProductAndPartsByBoardCode = async (boardCode) => {
+ if (!boardCode.trim()) return;
+ try {
+ console.log(`宸ヨ鏉跨紪鍙峰彉鏇达紝璇锋眰鏁版嵁锛�${boardCode}`);
+ const response = await axios.get(
+ "/api/boxingDetail/GetProductAndPartsByBoardNo",
+ {
+ params: { palletCode: boardCode.trim() },
+ timeout: 5000,
+ }
+ );
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ // 鉁� 鍙湁銆愭帴鍙f垚鍔�+鏈夎繑鍥炴暟鎹�戠殑鏃跺�欙紝鎵嶆墽琛岃祴鍊艰鐩�
+ if (isSuccess) {
+ const data = resData.Data || resData.data || {};
+ // 鏈夋垚鍝佺紪鍙峰氨璧嬪�硷紝娌℃湁灏变笉鎿嶄綔
+ if (data.finishedProductCode) {
+ finishedProductCode.value = data.finishedProductCode;
+ }
+ // 鏈夐浂浠跺垪琛ㄥ氨濉厖锛屾病鏈夊氨涓嶆搷浣�
+ const partsList = Array.isArray(data.partsList) ? data.partsList : [];
+ if (partsList.length > 0) {
+ for (let i = 0; i < 10; i++) {
+ if (partsList[i]) {
+ rightPartCodes.value[i] = partsList[i];
+ }
+ }
+ }
+ console.log("鉁� 宸ヨ鏉挎煡璇㈡垚鍔燂紝鎴愬搧缂栧彿+闆朵欢缂栧彿濉厖瀹屾垚");
+ } else {
+ // 鉁� 鏃犲搴旀暟鎹細鍙脊鎻愮ず锛屼笉娓呯┖浠讳綍鍐呭
+ alert(
+ "鑾峰彇鏁版嵁澶辫触锛�" + (resData.Message || resData.message || "鏃犲搴斿伐瑁呮澘鏁版嵁")
+ );
+ }
+ } catch (error) {
+ // 鉁� 璇锋眰澶辫触锛氬彧寮规彁绀猴紝涓嶆竻绌轰换浣曞唴瀹�
+ alert("宸ヨ鏉挎暟鎹姹傚け璐ワ紝璇锋鏌ョ綉缁滄垨鎺ュ彛锛�");
+ console.error("宸ヨ鏉挎帴鍙h姹傚け璐ワ細", error);
+ } finally {
+ boardCodeDebounceTimer = null;
+ }
+ };
+
+ // 鍚姩/鍋滄瀹氭椂杞
+ const startPolling = () => {
+ if (pollingTimer) clearInterval(pollingTimer);
+ fetchSignalAndPLCStates();
+ pollingTimer = setInterval(fetchSignalAndPLCStates, pollingInterval);
+ };
+ const stopPolling = () => {
+ if (pollingTimer) clearInterval(pollingTimer);
+ pollingTimer = null;
+ };
+
+ // PLC鍚姩/鍏抽棴閫昏緫
+ const handleToggle = async () => {
+ try {
+ const response = await axios.get("/api/scanStation/StartPLC", {
+ params: { isStop: isPLCStarted.value },
+ timeout: 5000,
+ });
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ if (isSuccess) {
+ isPLCStarted.value = !isPLCStarted.value;
+ isPLCPaused.value = false;
+ fetchSignalAndPLCStates();
+ } else {
+ alert(
+ resData.Message ||
+ resData.message ||
+ (isPLCStarted.value ? "鍏抽棴澶辫触" : "鍚姩澶辫触")
+ );
+ }
+ } catch (error) {
+ alert(isPLCStarted.value ? "鍏抽棴PLC澶辫触" : "鍚姩PLC澶辫触");
+ console.error("PLC鍚仠澶辫触锛�", error);
+ }
+ };
+
+ // PLC鏆傚仠/鎭㈠閫昏緫
+ const handlePauseToggle = async () => {
+ try {
+ const response = await axios.get("/api/scanStation/PausePLC", {
+ params: { isPause: !isPLCPaused.value },
+ timeout: 5000,
+ });
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ if (isSuccess) {
+ isPLCPaused.value = !isPLCPaused.value;
+ fetchSignalAndPLCStates();
+ } else {
+ alert(
+ resData.Message ||
+ resData.message ||
+ (isPLCPaused.value ? "鎭㈠澶辫触" : "鏆傚仠澶辫触")
+ );
+ }
+ } catch (error) {
+ alert(isPLCPaused.value ? "鎭㈠PLC澶辫触" : "鏆傚仠PLC澶辫触");
+ console.error("PLC鏆傚仠鎭㈠澶辫触锛�", error);
+ }
+ };
+
+ // 闆朵欢鍕鹃�夌姸鎬佸彉鏇村鐞�
+ const handlePartCheck = async (index) => {
+ const isChecked = leftPartChecked.value[index];
+ const partCode = leftPartCodes.value[index];
+ const partId = leftPartIds.value[index];
+
+ if (!finishedProductId.value) {
+ alert("鎴愬搧ID涓嶅瓨鍦紝鏃犳硶鏇存柊闆朵欢鎵爜鐘舵�侊紒");
+ leftPartChecked.value[index] = !isChecked;
+ return;
+ }
+ if (!partId) {
+ alert(`闆朵欢${index + 1}鏁版嵁搴揑D涓嶅瓨鍦紝鏃犳硶鏇存柊鎵爜鐘舵�侊紒`);
+ leftPartChecked.value[index] = !isChecked;
+ return;
+ }
+ if (!partCode.trim()) {
+ alert(`闆朵欢${index + 1}缂栧彿涓虹┖锛屾棤娉曟洿鏂版壂鐮佺姸鎬侊紒`);
+ leftPartChecked.value[index] = !isChecked;
+ return;
+ }
+
+ if (checkDebounceTimer) clearTimeout(checkDebounceTimer);
+ checkDebounceTimer = setTimeout(async () => {
+ try {
+ const response = await axios.post(
+ "/api/scanStation/UpdatePartScannedStatus",
+ { Id: partId, IsScanned: isChecked ? 1 : 0 },
+ { timeout: 5000 }
+ );
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ if (isSuccess) {
+ console.log(`闆朵欢${index + 1}鎵爜鐘舵�佹洿鏂版垚鍔焋);
+ // 鉁� 鍕鹃�夌姸鎬佸彉鍖栨椂锛岄噸缃彁浜ら攣
+ submitLock.value = false;
+ } else {
+ leftPartChecked.value[index] = !isChecked;
+ alert(
+ `闆朵欢${index + 1}鐘舵�佹洿鏂板け璐ワ細${
+ resData.Message || resData.message || "鏈煡閿欒"
+ }`
+ );
+ }
+ } catch (error) {
+ leftPartChecked.value[index] = !isChecked;
+ alert(`闆朵欢${index + 1}鐘舵�佹洿鏂拌姹傚け璐ワ紝璇锋鏌ョ綉缁滄垨鎺ュ彛锛乣);
+ console.error(`鏇存柊闆朵欢${index + 1}鎵爜鐘舵�佸け璐ワ細`, error);
+ } finally {
+ checkDebounceTimer = null;
+ }
+ }, 500);
+ };
+
+ // 鉁� 鏍稿績淇敼锛氬欢杩�0.5绉掑~鍏� + 寤惰繜0.5绉掓竻绌� 鍚屾鎵ц 鏃犻渶鎵嬪姩鎸夐挳
+ const fillContent = () => {
+ if (!rightTopInput.value.trim()) return;
+ const inputValue = rightTopInput.value.trim();
+
+ // 娓呴櫎鏃у畾鏃跺櫒锛岄槻姝㈤噸澶嶆墽琛�
+ if (destroyDelayTimer) clearTimeout(destroyDelayTimer);
+ // 缁熶竴寤惰繜500ms鎵ц銆愬~鍏�+娓呯┖銆�
+ destroyDelayTimer = setTimeout(() => {
+ if (!toolingBoardNo.value.trim()) {
+ toolingBoardNo.value = inputValue;
+ } else if (!finishedProductCode.value.trim()) {
+ finishedProductCode.value = inputValue;
+ } else if (fillIndex.value < 10) {
+ rightPartCodes.value[fillIndex.value] = inputValue;
+ fillIndex.value++;
+ } else {
+ alert("宸ヨ鏉跨紪鍙枫�佹垚鍝佺紪鍙峰拰闆朵欢1-10宸插叏閮ㄥ~鍏呭畬鎴�,鏃犳硶缁х画褰曞叆!");
+ rightTopInput.value = "";
+ destroyDelayTimer = null;
+ return;
+ }
+ // 濉厖瀹屾垚鍚� 鑷姩娓呯┖褰曞叆妗�
+ rightTopInput.value = "";
+ destroyDelayTimer = null;
+ }, destroyDelayTime);
+ };
+
+ // 鉁� 鐩戝惉褰曞叆妗嗗唴瀹瑰彉鍖栬嚜鍔ㄨЕ鍙戝~鍏呴�昏緫
+ watch(
+ rightTopInput,
+ (newVal) => {
+ if (newVal.trim()) fillContent();
+ },
+ { immediate: false }
+ );
+
+ // 鐩戝惉宸ヨ鏉跨紪鍙峰彉鍖栨煡璇㈡暟鎹�
+ watch(
+ toolingBoardNo,
+ (newVal) => {
+ const boardCode = newVal.trim();
+ if (boardCode) {
+ if (boardCodeDebounceTimer) clearTimeout(boardCodeDebounceTimer);
+ boardCodeDebounceTimer = setTimeout(
+ () => fetchProductAndPartsByBoardCode(boardCode),
+ 300
+ );
+ } else {
+ if (boardCodeDebounceTimer) clearTimeout(boardCodeDebounceTimer);
+ }
+ },
+ { immediate: false }
+ );
+
+ // 鍙充晶椤甸潰鎿嶄綔鏂规硶 (宸插垹闄ゆ竻绌�/淇濆瓨褰曞叆妗嗙殑鏂规硶锛屾棤鍐椾綑)
+ const clearToolingBoardNo = () => (toolingBoardNo.value = "");
+ const clearRightPart = (index) => (rightPartCodes.value[index] = "");
+ const clearFinishedProductCode = () => (finishedProductCode.value = "");
+
+ // 鎻愪氦宸ヨ鏉挎暟鎹埌鍚庣
+ const saveToolingBoardNo = async () => {
+ if (!toolingBoardNo.value.trim()) {
+ alert("宸ヨ鏉跨紪鍙蜂笉鑳戒负绌猴紝璇疯緭鍏ュ悗鍐嶆彁浜わ紒");
+ return;
+ }
+ if (!finishedProductCode.value.trim()) {
+ alert("鎴愬搧缂栧彿涓嶈兘涓虹┖锛岃杈撳叆鍚庡啀鎻愪氦锛�");
+ return;
+ }
+ try {
+ const submitData = {
+ toolingBoardNo: toolingBoardNo.value.trim(),
+ finishedProductCode: finishedProductCode.value.trim(),
+ partsList: rightPartCodes.value.map((item) => item.trim()),
+ };
+ console.log("鉁� 鎻愪氦宸ヨ鏉挎暟鎹細", submitData);
+ const response = await axios.post(
+ "/api/boxingDetail/SaveToolingBoardNo",
+ submitData,
+ { timeout: 5000 }
+ );
+ const resData = response.data;
+ const isSuccess = resData.Status === true || resData.status === true;
+ if (isSuccess) {
+ alert("鉁� 鎻愪氦鎴愬姛锛�");
+ toolingBoardNo.value = "";
+ finishedProductCode.value = "";
+ rightPartCodes.value = Array(10).fill("");
+ rightTopInput.value = "";
+ fillIndex.value = -1;
+ // 鉁� 鎻愪氦鎴愬姛鍚庯紝閲嶇疆鎻愪氦閿�
+ submitLock.value = false;
+ } else {
+ alert("鎻愪氦澶辫触锛�" + (resData.Message || resData.message || "鏈煡閿欒"));
+ }
+ } catch (error) {
+ alert("鎻愪氦璇锋眰澶辫触锛岃妫�鏌ョ綉缁滄垨鎺ュ彛锛�");
+ console.error("鎻愪氦鎺ュ彛澶辫触锛�", error);
+ // 鉁� 璇锋眰澶辫触涔熼噸缃攣
+ submitLock.value = false;
+ }
+ };
+
+ // 鉁� 鉁� 鉁� 鏍稿績鍗囩骇锛氳嚜鍔ㄦ彁浜ゅ垽鏂�昏緫 - 鏂板鏃犲嬀閫夋椂鎴愬搧缂栧彿濉厖鍗虫彁浜�
+ const checkAutoSubmit = () => {
+ // 闃叉姈锛氶槻姝㈢煭鏃堕棿鍐呭娆¤Е鍙戞彁浜�
+ if (autoSubmitDebounceTimer) clearTimeout(autoSubmitDebounceTimer);
+ autoSubmitDebounceTimer = setTimeout(() => {
+ const needCheckNum = checkedCount.value; // 宸︿晶鍕鹃�夌殑鏁伴噺
+ const filledNum = filledPartCount.value; // 鍙充晶濉厖鐨勯浂浠舵暟閲�
+ const hasBoardNo = toolingBoardNo.value.trim() !== ""; // 宸ヨ鏉挎湁鍊�
+ const hasProductCode = finishedProductCode.value.trim() !== ""; // 鎴愬搧鏈夊��
+
+ console.log(`鉁� 鑷姩鎻愪氦鏍¢獙锛氬乏渚у嬀閫�${needCheckNum}涓紝鍙充晶濉厖${filledNum}涓猔);
+
+ // 鍒嗘敮1锛氬乏渚ф湁鍕鹃�� 鈫� 鍘熸湁閫昏緫锛氶浂浠跺~鍏呮暟鈮ュ嬀閫夋暟 鎵嶆彁浜�
+ if (needCheckNum > 0) {
+ if (hasBoardNo && hasProductCode && filledNum >= needCheckNum) {
+ console.log("鉁� 婊¤冻鍕鹃�夋暟閲忔潯浠讹紝鎵ц鑷姩鎻愪氦锛�");
+ saveToolingBoardNo();
+ }
+ }
+ // 鍒嗘敮2锛氬乏渚ф棤鍕鹃�� 鈫� 鏂板閫昏緫锛氬伐瑁呮澘+鎴愬搧閮芥湁鍊� 灏辨彁浜� (鍔犻攣闃查噸澶�)
+ else {
+ if (hasBoardNo && hasProductCode && !submitLock.value) {
+ console.log("鉁� 宸︿晶鏃犲嬀閫夛紝鎴愬搧缂栧彿濉厖瀹屾垚锛屾墽琛岃嚜鍔ㄦ彁浜わ紒");
+ submitLock.value = true; // 鍔犻攣闃叉閲嶅鎻愪氦
+ saveToolingBoardNo();
+ }
+ }
+ autoSubmitDebounceTimer = null;
+ }, 300);
+ };
+
+ // 鉁� 鉁� 鉁� 鏍稿績鏂板4锛氱洃鍚叧閿暟鎹彉鍖栵紝瑙﹀彂鑷姩鎻愪氦鏍¢獙
+ watch(
+ [checkedCount, filledPartCount, toolingBoardNo, finishedProductCode],
+ () => {
+ checkAutoSubmit();
+ },
+ { deep: true, immediate: false }
+ );
+
+ // 鑷姩妫�娴嬪~鍏呯储寮曢�昏緫
+ const detectFillIndex = () => {
+ if (!toolingBoardNo.value.trim() || !finishedProductCode.value.trim()) {
+ fillIndex.value = -1;
+ return;
+ }
+ for (let i = 0; i < 10; i++) {
+ if (!rightPartCodes.value[i].trim()) {
+ fillIndex.value = i;
+ return;
+ }
+ }
+ fillIndex.value = 10;
+ };
+
+ watch(
+ [toolingBoardNo, finishedProductCode, () => [...rightPartCodes.value]],
+ detectFillIndex,
+ {
+ immediate: true,
+ deep: true,
+ }
+ );
+
+ // 椤甸潰鎸傝浇/鍗歌浇鐢熷懡鍛ㄦ湡
+ onMounted(async () => {
+ await fetchLeftInitialData();
+ startPolling();
+ detectFillIndex();
+ });
+
+ onUnmounted(() => {
+ stopPolling();
+ if (checkDebounceTimer) clearTimeout(checkDebounceTimer);
+ if (destroyDelayTimer) clearTimeout(destroyDelayTimer);
+ if (boardCodeDebounceTimer) clearTimeout(boardCodeDebounceTimer);
+ if (autoSubmitDebounceTimer) clearTimeout(autoSubmitDebounceTimer);
+ });
+
+ return {
+ finishedProduct,
+ finishedProductId,
+ rightTopInput,
+ leftPartCodes,
+ rightPartCodes,
+ leftPartChecked,
+ leftPartIds,
+ toolingBoardNo,
+ isPLCStarted,
+ isPLCPaused,
+ signalStates,
+ signalLabels,
+ finishedProductCode,
+ handleToggle,
+ handlePauseToggle,
+ handlePartCheck,
+ clearToolingBoardNo,
+ saveToolingBoardNo,
+ clearRightPart,
+ clearFinishedProductCode,
+ };
+ },
+};
</script>
<style scoped>
-.title {
- line-height: 70vh;
- text-align: center;
- font-size: 28px;
- color: orange;
+/* 鍩虹鏍峰紡閲嶇疆涓庡叏灞�鏍峰紡 */
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ font-family: "Microsoft Yahei", "PingFang SC", "Inter", sans-serif;
+ scrollbar-width: none;
+ -ms-overflow-style: none;
}
-</style>
\ No newline at end of file
+*::-webkit-scrollbar {
+ display: none;
+}
+
+body {
+ background: linear-gradient(135deg, #f0f4f8 0%, #e9ecef 100%);
+ min-height: 100vh;
+ overflow: hidden;
+ font-size: 14px;
+}
+
+/* 瀹瑰櫒鏍峰紡 - 鏀惧ぇ 闂磋窛鍔犲 */
+.container {
+ display: flex;
+ width: 100%;
+ height: 100vh;
+ margin: 0;
+ gap: 15px;
+ padding: 15px;
+ overflow: hidden;
+}
+
+/* 闈㈡澘閫氱敤鏍峰紡 - 缁熶竴鍐呰竟璺� 纭繚宸﹀彸瀵归綈 */
+.left-area,
+.right-area {
+ flex: 1;
+ width: 50%;
+ display: flex;
+ flex-direction: column;
+ gap: 15px;
+ padding: 18px;
+ background: #ffffff;
+ border: 1px solid #e2e8f0;
+ border-radius: 15px;
+ box-shadow: 0 6px 16px rgba(149, 157, 165, 0.15);
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
+}
+
+/* 鎸夐挳+淇″彿 妯悜鎺掑垪瀹瑰櫒 - 鏍稿績甯冨眬 */
+.btn-signal-group {
+ display: flex;
+ align-items: center;
+ gap: 20px;
+ width: 100%;
+}
+.btn-group {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ flex-shrink: 0;
+}
+.signal-status {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ gap: 18px;
+ flex-shrink: 0;
+ padding: 0;
+}
+
+.left-top {
+ background: #f8fafc;
+ padding: 15px;
+ border-radius: 12px;
+ flex-shrink: 0;
+ width: 100%;
+}
+
+.left-bottom,
+.right-bottom {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ flex: 1;
+ overflow: hidden !important;
+}
+
+.right-top {
+ padding: 15px;
+ background: #f8fafc;
+ border-radius: 12px;
+ flex-shrink: 0;
+}
+
+/* 琛ㄥ崟琛屾牱寮� - 缁熶竴楂樺害鍜岄棿璺� 纭繚宸﹀彸瀵归綈 */
+.form-row {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ flex-wrap: nowrap;
+ padding: 6px 10px;
+ border-radius: 8px;
+ transition: all 0.2s ease;
+ height: 48px;
+ line-height: 48px;
+ flex-shrink: 0;
+ width: 100%;
+}
+
+.form-row:hover {
+ background: #f8fafc;
+}
+
+.finished-product-row {
+ background: #eff6ff;
+ border-left: 4px solid #3b82f6;
+}
+
+.tooling-board-row {
+ background: #f0fdf4;
+ border-left: 4px solid #22c55e;
+}
+
+.part-item {
+ border-bottom: 1px solid #f1f5f9;
+ margin-bottom: 3px;
+}
+
+.part-item:last-child {
+ border-bottom: none;
+}
+
+/* 鏍囩鏍峰紡 - 缁熶竴瀹藉害 纭繚宸﹀彸瀵归綈 */
+.label {
+ width: 90px;
+ text-align: right;
+ color: #334155;
+ font-size: 15px;
+ font-weight: 600;
+ flex-shrink: 0;
+}
+
+.short-label {
+ width: 110px;
+ text-align: right;
+ color: #334155;
+ font-size: 15px;
+ font-weight: 600;
+ flex-shrink: 0;
+}
+
+/* 杈撳叆妗嗘牱寮� - 缁熶竴灏哄 纭繚宸﹀彸瀵归綈 */
+.input-box {
+ flex: 1;
+ min-width: 100px;
+ height: 42px;
+ padding: 0 15px;
+ border: 1px solid #e2e8f0;
+ border-radius: 8px;
+ outline: none;
+ font-size: 15px;
+ transition: all 0.2s ease;
+ background-color: #ffffff;
+}
+
+.short-input {
+ width: 150px !important;
+ flex: none !important;
+}
+
+.input-box:focus {
+ border-color: #3b82f6;
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
+}
+
+.input-box:disabled {
+ background-color: #f1f5f9;
+ color: #64748b;
+ cursor: not-allowed;
+}
+
+.input-box::placeholder {
+ color: #94a3b8;
+ font-size: 14px;
+}
+
+/* 鎸夐挳鏍峰紡 - 鍥哄畾瀹藉害 涓嶅彉 */
+.btn {
+ width: 120px;
+ height: 42px;
+ padding: 0 16px;
+ border: none;
+ border-radius: 8px;
+ cursor: pointer;
+ font-size: 14px;
+ font-weight: 600;
+ transition: all 0.2s ease;
+ flex-shrink: 0;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ gap: 8px;
+ position: relative;
+ overflow: hidden;
+}
+
+.btn:disabled {
+ opacity: 0.6;
+ cursor: not-allowed;
+ transform: none !important;
+ box-shadow: none !important;
+}
+
+.btn::after {
+ content: "";
+ position: absolute;
+ top: 0;
+ left: -100%;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
+ transition: all 0.5s ease;
+}
+
+.btn:hover::after {
+ left: 100%;
+}
+
+/* 鍥炬爣鏍峰紡 - 鍥炬爣鏀惧ぇ */
+.icon {
+ display: inline-block;
+ width: 18px;
+ height: 18px;
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+.icon-start {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E");
+}
+
+.icon-stop {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6 6h12v12H6z'/%3E%3C/svg%3E");
+}
+
+.icon-pause {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E");
+}
+
+.icon-resume {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M11 5L6 9H2v6h4l5 4V5zm7 0v14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z'/%3E%3C/svg%3E");
+}
+
+.icon-clear {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");
+}
+
+.icon-submit {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M2.01 21L15 13.4 23 21V5H2.01V21zM17 15l-5-5-5 5V7h10v8z'/%3E%3C/svg%3E");
+}
+
+/* 鎸夐挳绫诲瀷鏍峰紡 - 涓嶅彉 */
+.start-btn {
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
+ color: #fff;
+}
+.start-btn:hover:not(:disabled) {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(16, 185, 129, 0.2);
+}
+
+.stop-btn {
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
+ color: #fff;
+}
+.stop-btn:hover:not(:disabled) {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(239, 68, 68, 0.2);
+}
+
+.pause-btn {
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
+ color: #fff;
+}
+.pause-btn:hover:not(:disabled) {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(245, 158, 11, 0.2);
+}
+
+.resume-btn {
+ background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
+ color: #fff;
+}
+.resume-btn:hover:not(:disabled) {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(139, 92, 246, 0.2);
+}
+
+.clear-btn {
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
+ color: #fff;
+ padding: 0 12px;
+}
+.clear-btn:hover:not(:disabled) {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(239, 68, 68, 0.15);
+}
+
+.save-btn {
+ background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
+ color: #fff;
+ padding: 0 12px;
+}
+.save-btn:hover:not(:disabled) {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(59, 130, 246, 0.15);
+}
+
+/* 淇″彿鐏牱寮� 閱掔洰鏀惧ぇ */
+.signal-item {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 5px;
+ min-width: 60px;
+}
+.signal-label {
+ font-size: 14px;
+ color: #334155;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ text-align: center;
+ font-weight: 600;
+}
+.signal-light {
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
+ transition: all 0.3s ease;
+ position: relative;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+.signal-light-inner {
+ width: 14px;
+ height: 14px;
+ border-radius: 50%;
+ background: white;
+ opacity: 0.9;
+ transition: all 0.3s ease;
+}
+.signal-active {
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
+ box-shadow: 0 0 18px rgba(16, 185, 129, 0.7);
+ animation: pulse 2s infinite;
+}
+.signal-inactive {
+ background: linear-gradient(135deg, #94a3b8 0%, #64748b 100%);
+}
+@keyframes pulse {
+ 0% {
+ box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.8);
+ }
+ 70% {
+ box-shadow: 0 0 0 15px rgba(16, 185, 129, 0);
+ }
+ 100% {
+ box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
+ }
+}
+
+/* 鑷畾涔夊閫夋鏍峰紡 - 鏀惧ぇ 鐐瑰嚮鍖哄煙鏇村ぇ */
+.checkbox-container {
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ cursor: pointer;
+ font-size: 14px;
+ color: #334155;
+ flex-shrink: 0;
+}
+.part-checkbox {
+ display: none;
+}
+.checkmark {
+ width: 22px;
+ height: 22px;
+ background-color: #f1f5f9;
+ border: 1px solid #cbd5e1;
+ border-radius: 4px;
+ transition: all 0.2s ease;
+ position: relative;
+}
+.part-checkbox:checked ~ .checkmark {
+ background-color: #3b82f6;
+ border-color: #3b82f6;
+}
+.checkmark:after {
+ content: "";
+ position: absolute;
+ display: none;
+ left: 7px;
+ top: 2px;
+ width: 6px;
+ height: 12px;
+ border: solid white;
+ border-width: 0 3px 3px 0;
+ transform: rotate(45deg);
+}
+.part-checkbox:checked ~ .checkmark:after {
+ display: block;
+}
+.checkbox-label {
+ font-size: 13px;
+ color: #475569;
+ width: 50px;
+}
+
+/* 鍝嶅簲寮忛�傞厤 */
+@media (max-width: 1200px) {
+ .container {
+ flex-direction: column;
+ height: auto;
+ }
+ .left-area,
+ .right-area {
+ width: 100%;
+ flex: none;
+ }
+ .btn-signal-group {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+ .signal-status {
+ width: 100%;
+ justify-content: flex-start;
+ }
+}
+
+@media (max-width: 768px) {
+ .form-row {
+ flex-direction: column;
+ align-items: flex-start;
+ height: auto;
+ line-height: normal;
+ }
+ .label,
+ .short-label {
+ width: 100%;
+ text-align: left;
+ margin-bottom: 6px;
+ }
+ .input-box {
+ width: 100%;
+ }
+ .short-input {
+ width: 100% !important;
+ }
+ .btn {
+ width: 100%;
+ margin-top: 6px;
+ }
+ .btn-group {
+ flex-direction: column;
+ gap: 10px;
+ width: 100%;
+ }
+}
+</style>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/boxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/boxing.vue"
index 8ba74f8..e648e50 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/boxing.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/boxing.vue"
@@ -24,13 +24,13 @@
footer: "Foots",
cnName: "缁勭洏淇℃伅",
name: "boxing",
- url: "/boxing/",
- sortName: "createDate",
+ url: "/boxing/",
+ sortName: "createDate",
});
const editFormFields = ref({
id: "",
- palletCode: "",
+ palletCode: "",
productCode: "",
productName: "",
});
@@ -41,22 +41,23 @@
field: "palletCode",
type: "input",
width: 200,
- require: true
+ link: true,
+ require: true,
},
{
title: "鎴愬搧缂栧彿",
field: "productCode",
type: "input",
width: 200,
- require: true
+ require: true,
},
{
title: "鎴愬搧鍚嶇О",
field: "productName",
type: "input",
width: 200,
- require: true
- }
+ require: true,
+ },
],
[
{
@@ -65,9 +66,9 @@
type: "input",
width: 100,
hidden: true,
- readonly: true
- }
- ]
+ readonly: true,
+ },
+ ],
]);
const searchFormFields = ref({
@@ -105,6 +106,7 @@
field: "palletCode",
title: "宸ヨ鏉跨紪鍙�",
type: "string",
+ link: true,
width: 200,
align: "left",
},
@@ -161,11 +163,36 @@
]);
const detail = ref({
- cnName: "",
- table: "",
- columns: [],
- sortName: "",
- key: "",
+ cnName: "缁勭洏璇︾粏淇℃伅",
+ table: "boxingDetail",
+ columns: [
+ {
+ field: "boxingId",
+ title: "缁勭洏ID",
+ type: "int",
+ width: 90,
+ hidden: true,
+ readonly: true,
+ require: true,
+ align: "left",
+ },
+ {
+ field: "componentCode",
+ title: "闆朵欢缂栧彿",
+ type: "string",
+ width: 200,
+ align: "left",
+ },
+ {
+ field: "componentName",
+ title: "闆朵欢鍚嶇О",
+ type: "string",
+ width: 200,
+ align: "left",
+ },
+ ],
+ sortName: "createDate",
+ key: "id",
});
return {
@@ -180,4 +207,4 @@
};
},
});
-</script>
\ No newline at end of file
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formula.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formula.vue"
index 0967c15..99f5833 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formula.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formula.vue"
@@ -24,13 +24,13 @@
footer: "Foots",
cnName: "閰嶆柟淇℃伅",
name: "formula",
- url: "/formula/",
- sortName: "createDate",
+ url: "/formula/",
+ sortName: "createDate",
});
const editFormFields = ref({
id: "",
- productCode: "",
+ productCode: "",
productName: "",
productLength: 0,
productWidth: 0,
@@ -44,8 +44,8 @@
yDirectionHeight2: 0,
xDirectionDistance3: 0,
yDirectionHeight3: 0,
-});
-
+ });
+
const editFormOptions = ref([
[
{
@@ -53,106 +53,14 @@
field: "productCode",
type: "input",
width: 200,
- require: true
+ require: true,
},
{
title: "鎴愬搧鍚嶇О",
field: "productName",
type: "input",
width: 200,
- require: true
- },
- {
- title: "鍘嬭浣嶄骇鍝侀暱搴�",
- field: "productLength",
- type: "number",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "鍘嬭浣嶄骇鍝佸搴�",
- field: "productWidth",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "鍘嬭浣嶄骇鍝侀珮搴�",
- field: "productHeight",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "鍘嬭浣嶆嫥绱т笅闄嶉珮搴�",
- field: "screwDownsetDistance",
- type: "number",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "鍘嬭浣嶆嫥绱ф壄鍔�",
- field: "screwTorqueOutput",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "鍘嬭浣嶈嚜鍔ㄦ嫥绱ф墦寮�",
- field: "dintAutoScrewOn",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "妫�娴嬩綅X鍋忕Щ璺濈1",
- field: "xDirectionDistance1",
- type: "number",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "妫�娴嬩綅Z楂樺害1",
- field: "yDirectionHeight1",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "妫�娴嬩綅X鍋忕Щ璺濈2",
- field: "xDirectionDistance2",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "妫�娴嬩綅Z楂樺害2",
- field: "yDirectionHeight2",
- type: "number",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "妫�娴嬩綅X鍋忕Щ璺濈3",
- field: "xDirectionDistance3",
- type: "number",
- width: 200,
- require: false
- },
- {
- title: "妫�娴嬩綅Z楂樺害3",
- field: "yDirectionHeight3",
- type: "number",
- width: 200,
- require: false
+ require: true,
},
{
title: "涓婚敭ID",
@@ -160,9 +68,9 @@
type: "input",
width: 100,
hidden: true,
- readonly: true
- }
- ]
+ readonly: true,
+ },
+ ],
]);
const searchFormFields = ref({
@@ -198,6 +106,7 @@
field: "productCode",
title: "鎴愬搧缂栧彿",
type: "string",
+ link: true,
width: 200,
align: "left",
},
@@ -205,90 +114,6 @@
field: "productName",
title: "鎴愬搧鍚嶇О",
type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "productLength",
- title: "鍘嬭浣嶄骇鍝侀暱搴�",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "productWidth",
- title: "鍘嬭浣嶄骇鍝佸搴�",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "productHeight",
- title: "鍘嬭浣嶄骇鍝侀珮搴�",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "screwDownsetDistance",
- title: "鍘嬭浣嶆嫥绱т笅闄嶉珮搴�",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "screwTorqueOutput",
- title: "鍘嬭浣嶆嫥绱ф壄鍔�",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "dintAutoScrewOn",
- title: "鍘嬭浣嶈嚜鍔ㄦ嫥绱ф墦寮�",
- type: "int",
- width: 200,
- align: "left",
- },
- {
- field: "xDirectionDistance1",
- title: "妫�娴嬩綅X鍋忕Щ璺濈1",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "yDirectionHeight1",
- title: "妫�娴嬩綅Z楂樺害1",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "xDirectionDistance2",
- title: "妫�娴嬩綅X鍋忕Щ璺濈2",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "yDirectionHeight2",
- title: "妫�娴嬩綅Z楂樺害2",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "xDirectionDistance3",
- title: "妫�娴嬩綅X鍋忕Щ璺濈3",
- type: "float",
- width: 200,
- align: "left",
- },
- {
- field: "yDirectionHeight3",
- title: "妫�娴嬩綅Z楂樺害3",
- type: "float",
width: 200,
align: "left",
},
@@ -321,13 +146,50 @@
align: "left",
},
]);
-
const detail = ref({
- cnName: "",
- table: "",
- columns: [],
- sortName: "",
- key: "",
+ cnName: "闆朵欢璇︾粏淇℃伅",
+ table: "componentDetail",
+ columns: [
+ {
+ field: "formulaId",
+ title: "ID",
+ type: "int",
+ width: 90,
+ hidden: true,
+ require: true,
+ align: "left",
+ },
+ {
+ field: "componentCode",
+ title: "闆朵欢缂栧彿",
+ type: "string",
+ width: 120,
+ require: true,
+ align: "left",
+ },
+ {
+ field: "componentName",
+ title: "闆朵欢鍚嶇О",
+ type: "string",
+ width: 150,
+ require: true,
+ align: "left",
+ },
+ {
+ title: "鏄惁鎵爜",
+ field: "isScanned",
+ type: "select",
+ bind: {
+ key: "value",
+ data: [
+ { key: "0", value: "鍚�" },
+ { key: "1", value: "鏄�" },
+ ],
+ },
+ },
+ ],
+ sortName: "createDate",
+ key: "id",
});
return {
@@ -342,4 +204,4 @@
};
},
});
-</script>
\ No newline at end of file
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formulaDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formulaDetail.vue"
index 8f54220..fb57cfe 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formulaDetail.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/formulaDetail.vue"
@@ -24,17 +24,17 @@
footer: "Foots",
cnName: "閰嶆柟淇℃伅璇︽儏",
name: "formulaDetail",
- url: "/formulaDetail/",
- sortName: "createDate",
+ url: "/formulaDetail/",
+ sortName: "createDate",
});
const editFormFields = ref({
id: "",
- formulaId: "",
+ formulaId: "",
componentCode: "",
componentName: "",
});
-
+
const editFormOptions = ref([
[
{
@@ -42,22 +42,31 @@
field: "formulaId",
type: "input",
width: 200,
- require: true
+ require: true,
},
{
title: "闆朵欢缂栧彿",
field: "componentCode",
type: "input",
width: 200,
- require: true
+ require: true,
},
{
title: "闆朵欢鍚嶇О",
field: "componentName",
type: "input",
width: 200,
- require: true
- }
+ require: true,
+ },
+ {
+ title: "鏄惁鎵爜",
+ field: "isScanned",
+ type: "select",
+ data: [
+ { key: "0", value: "鍚�" },
+ { key: "1", value: "鏄�" },
+ ],
+ },
],
[
{
@@ -66,9 +75,9 @@
type: "input",
width: 100,
hidden: true,
- readonly: true
- }
- ]
+ readonly: true,
+ },
+ ],
]);
const searchFormFields = ref({
@@ -84,6 +93,15 @@
{ title: "閰嶆柟淇℃伅涓婚敭", field: "formulaId", type: "int" },
{ title: "闆朵欢缂栧彿", field: "componentCode", type: "like" },
{ title: "闆朵欢鍚嶇О", field: "componentName", type: "like" },
+ {
+ title: "鏄惁鎵爜",
+ field: "isScanned",
+ type: "select",
+ data: [
+ { key: "0", value: "鍚�" },
+ { key: "1", value: "鏄�" },
+ ],
+ },
],
[
{ title: "鍒涘缓浜�", field: "creater", type: "like" },
@@ -122,6 +140,18 @@
type: "string",
width: 200,
align: "left",
+ },
+ {
+ title: "鏄惁鎵爜",
+ field: "isScanned",
+ type: "select",
+ bind: {
+ key: "value",
+ data: [
+ { key: "0", value: "鍚�" },
+ { key: "1", value: "鏄�" },
+ ],
+ },
},
{
field: "creater",
@@ -173,4 +203,4 @@
};
},
});
-</script>
\ No newline at end of file
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/processInfoDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/processInfoDetail.vue"
new file mode 100644
index 0000000..5800e3f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/processInfoDetail.vue"
@@ -0,0 +1,176 @@
+<template>
+ <view-grid
+ ref="grid"
+ :columns="columns"
+ :detail="detail"
+ :editFormFields="editFormFields"
+ :editFormOptions="editFormOptions"
+ :searchFormFields="searchFormFields"
+ :searchFormOptions="searchFormOptions"
+ :table="table"
+ :extend="extend"
+ >
+ </view-grid>
+</template>
+
+<script>
+import extend from "@/extension/basicinfo/processInfoDetail.js";
+import { ref, defineComponent } from "vue";
+
+export default defineComponent({
+ setup() {
+ const table = ref({
+ key: "id",
+ footer: "Foots",
+ cnName: "鍔犲伐淇℃伅璇︽儏",
+ name: "processInfoDetail",
+ url: "/processInfoDetail/",
+ sortName: "createDate",
+ });
+
+ const editFormFields = ref({
+ id: "",
+ palletCode: "",
+ productCode: "",
+ productName: "",
+ });
+
+ const editFormOptions = ref([
+ [
+ {
+ title: "宸ヨ鏉跨紪鍙�",
+ field: "palletCode",
+ type: "input",
+ width: 200,
+ require: true,
+ },
+ {
+ title: "鎴愬搧缂栧彿",
+ field: "productCode",
+ type: "input",
+ width: 200,
+ require: true,
+ },
+ {
+ title: "鎴愬搧鍚嶇О",
+ field: "productName",
+ type: "input",
+ width: 200,
+ require: true,
+ },
+ ],
+ [
+ {
+ title: "涓婚敭ID",
+ field: "id",
+ type: "input",
+ width: 100,
+ hidden: true,
+ readonly: true,
+ },
+ ],
+ ]);
+
+ const searchFormFields = ref({
+ palletCode: "",
+ productCode: "",
+ productName: "",
+ creater: "",
+ createDate: "",
+ });
+
+ const searchFormOptions = ref([
+ [
+ { title: "宸ヨ鏉跨紪鍙�", field: "palletCode", type: "like" },
+ { title: "鎴愬搧缂栧彿", field: "productCode", type: "like" },
+ { title: "鎴愬搧鍚嶇О", field: "productName", type: "like" },
+ ],
+ [
+ { title: "鍒涘缓浜�", field: "creater", type: "like" },
+ { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
+ ],
+ ]);
+
+ const columns = ref([
+ {
+ field: "id",
+ title: "搴忓彿",
+ type: "int",
+ width: 90,
+ hidden: true,
+ readonly: true,
+ require: true,
+ align: "left",
+ },
+ {
+ field: "palletCode",
+ title: "宸ヨ鏉跨紪鍙�",
+ type: "string",
+ width: 200,
+ align: "left",
+ },
+ {
+ field: "productCode",
+ title: "鎴愬搧缂栧彿",
+ type: "string",
+ width: 200,
+ align: "left",
+ },
+ {
+ field: "productName",
+ title: "鎴愬搧鍚嶇О",
+ type: "string",
+ width: 200,
+ align: "left",
+ },
+ {
+ field: "creater",
+ title: "鍒涘缓浜�",
+ type: "string",
+ width: 90,
+ align: "left",
+ },
+ {
+ field: "createDate",
+ title: "鍒涘缓鏃堕棿",
+ type: "datetime",
+ width: 150,
+ align: "left",
+ },
+ {
+ field: "modifier",
+ title: "淇敼浜�",
+ type: "string",
+ width: 100,
+ align: "left",
+ },
+ {
+ field: "modifyDate",
+ title: "淇敼鏃堕棿",
+ type: "datetime",
+ width: 160,
+ align: "left",
+ },
+ ]);
+
+ const detail = ref({
+ cnName: "",
+ table: "",
+ columns: [],
+ sortName: "",
+ key: "",
+ });
+
+ return {
+ table,
+ extend,
+ editFormFields,
+ editFormOptions,
+ searchFormFields,
+ searchFormOptions,
+ columns,
+ detail,
+ };
+ },
+});
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/scanStation.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/scanStation.vue"
index 4cab5db..d7aaa15 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/scanStation.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Client/src/views/basicinfo/scanStation.vue"
@@ -15,37 +15,30 @@
<script>
import extend from "@/extension/basicinfo/scanStation.js";
-import { ref, defineComponent } from "vue";
+import { ref, defineComponent, onMounted } from "vue";
+import axios from "axios";
export default defineComponent({
setup() {
+ // 鍏ㄥ眬涓嬫媺鏁版嵁婧愬彉閲� - 鎵�鏈変笅鎷夋鍏辩敤锛屼竴澶勮祴鍊硷紝涓夊澶嶇敤
+ const stationEndProductList = ref([]);
+
const table = ref({
key: "id",
footer: "Foots",
cnName: "鎵弿宸ヤ綅",
name: "scanStation",
- url: "/scanStation/",
- sortName: "createDate",
+ url: "/scanStation/",
+ sortName: "createDate",
});
const editFormFields = ref({
id: "",
- stationCode: "",
+ stationCode: "",
stationName: "",
stationEndProduct: "",
- stationComponentQty: "",
- stationComponent1: "",
- stationComponent2: "",
- stationComponent3: "",
- stationComponent4: "",
- stationComponent5: "",
- stationComponent6: "",
- stationComponent7: "",
- stationComponent8: "",
- stationComponent9: "",
- stationComponent10: "",
});
-
+
const editFormOptions = ref([
[
{
@@ -53,116 +46,38 @@
field: "stationCode",
type: "input",
width: 200,
- require: true
+ require: true,
},
+ ],
+ [
{
title: "绔欏彴鍚嶇О",
field: "stationName",
type: "input",
width: 200,
- require: true
+ require: true,
},
+ ],
+ [
{
title: "绔欏彴鎴愬搧",
field: "stationEndProduct",
- type: "input",
+ type: "select",
+ data: stationEndProductList, // 缁戝畾鍏ㄥ眬鎺ュ彛鏁版嵁
width: 200,
- require: false
- }
+ require: false,
+ },
],
[
- {
- title: "闆朵欢鏁伴噺",
- field: "stationComponentQty",
- type: "input",
- width: 200,
- require: true
- },
- {
- title: "闆朵欢1",
- field: "stationComponent1",
- type: "input",
- width: 200,
- require: false
- },
- {
- title: "闆朵欢2",
- field: "stationComponent2",
- type: "input",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "闆朵欢3",
- field: "stationComponent3",
- type: "input",
- width: 200,
- require: false
- },
- {
- title: "闆朵欢4",
- field: "stationComponent4",
- type: "input",
- width: 200,
- require: false
- },
- {
- title: "闆朵欢5",
- field: "stationComponent5",
- type: "input",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "闆朵欢6",
- field: "stationComponent6",
- type: "input",
- width: 200,
- require: false
- },
- {
- title: "闆朵欢7",
- field: "stationComponent7",
- type: "input",
- width: 200,
- require: false
- },
- {
- title: "闆朵欢8",
- field: "stationComponent8",
- type: "input",
- width: 200,
- require: false
- }
- ],
- [
- {
- title: "闆朵欢9",
- field: "stationComponent9",
- type: "input",
- width: 200,
- require: false
- },
- {
- title: "闆朵欢10",
- field: "stationComponent10",
- type: "input",
- width: 200,
- require: false
- },
{
title: "涓婚敭ID",
field: "id",
type: "input",
width: 100,
hidden: true,
- readonly: true
- }
- ]
+ readonly: true,
+ },
+ ],
]);
const searchFormFields = ref({
@@ -177,7 +92,12 @@
[
{ title: "绔欏彴缂栧彿", field: "stationCode", type: "like" },
{ title: "绔欏彴鍚嶇О", field: "stationName", type: "like" },
- { title: "绔欏彴鎴愬搧", field: "stationEndProduct", type: "like" },
+ {
+ title: "绔欏彴鎴愬搧",
+ field: "stationEndProduct",
+ type: "select-search",
+ data: stationEndProductList, // 缁戝畾鍏ㄥ眬鎺ュ彛鏁版嵁
+ },
],
[
{ title: "鍒涘缓浜�", field: "creater", type: "like" },
@@ -213,84 +133,12 @@
{
field: "stationEndProduct",
title: "绔欏彴鎴愬搧",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponentQty",
- title: "闆朵欢鏁伴噺",
- type: "int",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent1",
- title: "闆朵欢1",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent2",
- title: "闆朵欢2",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent3",
- title: "闆朵欢3",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent4",
- title: "闆朵欢4",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent5",
- title: "闆朵欢5",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent6",
- title: "闆朵欢6",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent7",
- title: "闆朵欢7",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent8",
- title: "闆朵欢8",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent9",
- title: "闆朵欢9",
- type: "string",
- width: 200,
- align: "left",
- },
- {
- field: "stationComponent10",
- title: "闆朵欢10",
- type: "string",
+ type: "select",
+ bind: {
+ key: "value",
+ data: stationEndProductList, // 缁戝畾鍏ㄥ眬鎺ュ彛鏁版嵁
+ },
+ link: true,
width: 200,
align: "left",
},
@@ -332,6 +180,22 @@
key: "",
});
+ const getStationEndProductData = async () => {
+ try {
+ const res = await axios.get("/api/formula/getEndProductList");
+ stationEndProductList.value = (res.data?.data || []).map(
+ (item) => item || { key: "", value: "", disabled: false }
+ );
+ } catch (error) {
+ stationEndProductList.value = [];
+ console.error("鑾峰彇绔欏彴鎴愬搧鏁版嵁澶辫触锛�", error);
+ }
+ };
+
+ onMounted(() => {
+ getStationEndProductData();
+ });
+
return {
table,
extend,
@@ -344,4 +208,4 @@
};
},
});
-</script>
\ No newline at end of file
+</script>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/CodeChunks.db" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/CodeChunks.db"
deleted file mode 100644
index b093a5e..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/CodeChunks.db"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db"
deleted file mode 100644
index bdd2782..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db-shm" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db-shm"
deleted file mode 100644
index 0cd0447..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db-shm"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db-wal" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db-wal"
deleted file mode 100644
index dba103d..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.12.53.23981/SemanticSymbols.db-wal"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db"
deleted file mode 100644
index 79d7454..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db-shm" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db-shm"
deleted file mode 100644
index 0fabd61..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db-shm"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db-wal" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db-wal"
deleted file mode 100644
index 085dc98..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/CodeChunks.db-wal"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db"
deleted file mode 100644
index 41cb1f9..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db-shm" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db-shm"
deleted file mode 100644
index e5be343..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db-shm"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db-wal" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db-wal"
deleted file mode 100644
index 59cb4ea..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1518.61961/SemanticSymbols.db-wal"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/CodeChunks.db" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/CodeChunks.db"
index 767c364..5723a8c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/CodeChunks.db"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/CodeChunks.db"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/SemanticSymbols.db" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/SemanticSymbols.db"
index c948c81..6c09c44 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/SemanticSymbols.db"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.794.21998/SemanticSymbols.db"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2"
index 3c006dc..f1d839d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0f5d7584-9cfe-4074-aeb3-fa1f9e570949.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0f5d7584-9cfe-4074-aeb3-fa1f9e570949.vsidx"
new file mode 100644
index 0000000..dda52cf
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0f5d7584-9cfe-4074-aeb3-fa1f9e570949.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cbdcf3-408e-4196-9c7f-486ef5eef107.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cbdcf3-408e-4196-9c7f-486ef5eef107.vsidx"
new file mode 100644
index 0000000..7297cf9
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cbdcf3-408e-4196-9c7f-486ef5eef107.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5d2c31e8-d7a5-4453-ab25-eb41469b50b2.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5d2c31e8-d7a5-4453-ab25-eb41469b50b2.vsidx"
deleted file mode 100644
index d1733fe..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5d2c31e8-d7a5-4453-ab25-eb41469b50b2.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b8b6a38-d1b1-459e-b415-f709208d542a.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b8b6a38-d1b1-459e-b415-f709208d542a.vsidx"
new file mode 100644
index 0000000..f2b9d44
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b8b6a38-d1b1-459e-b415-f709208d542a.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6ed546f4-fadb-4993-bf10-0046de75bd74.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6ed546f4-fadb-4993-bf10-0046de75bd74.vsidx"
deleted file mode 100644
index 33f822d..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6ed546f4-fadb-4993-bf10-0046de75bd74.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7765cc9c-7efa-493e-8c24-c5cc86a879de.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7765cc9c-7efa-493e-8c24-c5cc86a879de.vsidx"
deleted file mode 100644
index 66a87aa..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7765cc9c-7efa-493e-8c24-c5cc86a879de.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8803666d-3cb0-4d8e-9882-52f506e51b7a.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8803666d-3cb0-4d8e-9882-52f506e51b7a.vsidx"
deleted file mode 100644
index 841c3e6..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8803666d-3cb0-4d8e-9882-52f506e51b7a.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a92150fa-07f2-4b35-842d-8af5d93da741.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a92150fa-07f2-4b35-842d-8af5d93da741.vsidx"
new file mode 100644
index 0000000..c2a4f87
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a92150fa-07f2-4b35-842d-8af5d93da741.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c99954ff-673f-45d7-b93b-30e6c1adfe58.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c99954ff-673f-45d7-b93b-30e6c1adfe58.vsidx"
new file mode 100644
index 0000000..aab3472
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c99954ff-673f-45d7-b93b-30e6c1adfe58.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/db45f673-18a0-4069-a270-036150636661.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/db45f673-18a0-4069-a270-036150636661.vsidx"
deleted file mode 100644
index 99eb04c..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/db45f673-18a0-4069-a270-036150636661.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2"
index 19e5d1c..8167d69 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo"
index 164b339..085d885 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/BoxingDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/BoxingDetailService.cs"
index dd8c472..7db9778 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/BoxingDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/BoxingDetailService.cs"
@@ -1,22 +1,40 @@
锘縰sing System;
+using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoService
{
public class BoxingDetailService : ServiceBase<Dt_BoxingDetail, IRepository<Dt_BoxingDetail>>, IBoxingDetailService
{
- public BoxingDetailService(IRepository<Dt_BoxingDetail> BaseDal) : base(BaseDal)
+
+ private readonly IBoxingService _boxingService;
+ private readonly IFormulaService _formulaService;
+ private readonly IFormulaDetailService _formulaDetailService;
+ private readonly IUnitOfWorkManage _unitOfWorkManage;
+
+ public BoxingDetailService(
+ IRepository<Dt_BoxingDetail> BaseDal,
+ IFormulaService formulaService,
+ IBoxingService boxingService,
+ IFormulaDetailService formulaDetailService,
+ IUnitOfWorkManage unitOfWorkManage
+ ) : base(BaseDal)
{
+ _formulaService = formulaService;
+ _boxingService = boxingService;
+ _formulaDetailService = formulaDetailService;
+ _unitOfWorkManage = unitOfWorkManage;
}
public IRepository<Dt_BoxingDetail> Repository => BaseDal;
-
/// <summary>
/// 姣旇緝闆朵欢鏄惁榻愬叏
@@ -30,26 +48,249 @@
{
return false;
}
+ List<string> BoxingIdList = boxingDetails.Select(x => x.ComponentCode).ToList();
+ List<string> FormulaIdList = formulaDetails.Select(x => x.ComponentCode).ToList();
+ return !BoxingIdList.Except(FormulaIdList).Any() && !FormulaIdList.Except(BoxingIdList).Any();
+ }
- List<string> BoxingIdList = new List<string>();
- List<string> FormulaIdList = new List<string>();
- for (int i = 0; i < boxingDetails.Count; i++)
+ /// <summary>
+ /// 妫�鏌ラ浂浠�
+ /// </summary>
+ /// <param name="boxingDetails"></param>
+ /// <param name="formulaDetails"></param>
+ /// <returns></returns>
+ public string IsComponentCodesEqual(List<string> boxingDetails, List<string> formulaDetails)
+ {
+ // 澶勭悊null闆嗗悎锛岃閬跨┖鎸囬拡寮傚父
+ var boxList = boxingDetails ?? new List<string>();
+ var formulaList = formulaDetails ?? new List<string>();
+
+ var validBoxCodes = boxList.Where(code => !string.IsNullOrEmpty(code)).ToList();
+ var validFormulaCodes = formulaList.Where(code => !string.IsNullOrEmpty(code)).ToList();
+
+ foreach (var group in validBoxCodes.GroupBy(code => code))
{
- BoxingIdList.Add(boxingDetails[i].ComponentCode);
- FormulaIdList.Add(formulaDetails[i].ComponentCode);
- }
- BoxingIdList.Sort();
- FormulaIdList.Sort();
+ string componentCode = group.Key;
+ int boxCount = group.Count();
+ int formulaCount = validFormulaCodes.Count(code => code == componentCode);
- for (int i = 0; i < BoxingIdList.Count; i++)
- {
- if (BoxingIdList[i] != FormulaIdList[i])
+ if (formulaCount == 0 || formulaCount < boxCount)
{
- return false;
+ return componentCode;
}
}
- return true;
+ return null;
+ }
+
+
+ /// <summary>
+ /// 娣诲姞/淇敼缁勭洏淇℃伅锛堜竴浣撳寲鎺ュ彛锛氫紶宸ヨ鏉跨紪鍙峰瓨鍦ㄥ垯淇敼锛屼笉瀛樺湪鍒欐柊澧烇級
+ /// </summary>
+ /// <param name="toolingBoardSubmitDto"></param>
+ /// <returns></returns>
+ public WebResponseContent SaveToolingBoardNo(ToolingBoardSubmitDto toolingBoardSubmitDto)
+ {
+ using (var uow = _unitOfWorkManage.CreateUnitOfWork())
+ {
+ try
+ {
+ // 1. 鍙傛暟鏍¢獙
+ if (toolingBoardSubmitDto == null)
+ {
+ return WebResponseContent.Instance.Error("鎻愪氦鍙傛暟涓嶈兘涓虹┖");
+ }
+ string palletCode = toolingBoardSubmitDto.ToolingBoardNo?.Trim();
+ string productCode = toolingBoardSubmitDto.FinishedProductCode?.Trim();
+ if (string.IsNullOrWhiteSpace(palletCode))
+ {
+ return WebResponseContent.Instance.Error("宸ヨ鏉跨紪鍙蜂笉鑳戒负绌�");
+ }
+ if (string.IsNullOrWhiteSpace(productCode))
+ {
+ return WebResponseContent.Instance.Error("鎴愬搧缂栫爜涓嶈兘涓虹┖");
+ }
+
+ // 2. 鏌ヨ鎴愬搧閰嶆柟淇℃伅
+ Dt_Formula formulaModel = _formulaService.Repository.QueryFirst(x => x.ProductCode == productCode);
+ if (formulaModel == null)
+ {
+ return WebResponseContent.Instance.Error("鏃犳垚鍝侀厤鏂癸紝璇锋牳瀵规垚鍝佺紪鐮�");
+ }
+
+ List<Dt_FormulaDetail> dt_FormulaDetails = _formulaDetailService.Repository.QueryData(x => x.FormulaId == formulaModel.Id && x.IsScanned == 1);
+ List<string> Codelist = dt_FormulaDetails.Select(x => x.ComponentCode).ToList();
+ string IsCode = IsComponentCodesEqual(toolingBoardSubmitDto.PartsList, Codelist);
+ if (IsCode != null)
+ {
+ return WebResponseContent.Instance.Error($"鐗╂枡銆恵IsCode}銆戦敊璇紝璇锋牳瀵圭墿鏂欑紪鍙�");
+ }
+
+
+ // 3. 鏍稿績鍒ゆ柇锛氭牴鎹伐瑁呮澘缂栧彿鏌ヨ鏄惁瀛樺湪銆愭柊澧�/淇敼銆戠殑涓昏〃鏁版嵁
+ Dt_Boxing existBoxinModel = _boxingService.Repository.QueryFirst(x => x.PalletCode == palletCode);
+ if (existBoxinModel == null)
+ {
+ #region 鏂板閫昏緫 - 鍘熼�昏緫浼樺寲鐗�
+ Dt_Boxing dt_boxin = new Dt_Boxing()
+ {
+ PalletCode = palletCode,
+ ProductCode = productCode,
+ ProductName = formulaModel.ProductName.Trim(),
+ Creater = "admin",
+ CreateDate = DateTime.Now
+ };
+ int newBoxingId = _boxingService.Repository.AddData(dt_boxin);
+
+
+ // 鎵归噺娣诲姞鏄庣粏琛ㄦ暟鎹�
+ if (toolingBoardSubmitDto.PartsList != null && toolingBoardSubmitDto.PartsList.Count > 0)
+ {
+ List<Dt_BoxingDetail> detailList = new List<Dt_BoxingDetail>();
+ foreach (string ComponentCode in toolingBoardSubmitDto.PartsList)
+ {
+ if (string.IsNullOrWhiteSpace(ComponentCode)) continue;
+ string ComponentCodeTrim = ComponentCode.Trim();
+
+ Dt_FormulaDetail formulaDetail = _formulaDetailService.Repository.QueryFirst(x => x.FormulaId == formulaModel.Id && x.ComponentCode == ComponentCodeTrim);
+ if (formulaDetail == null)
+ {
+ return WebResponseContent.Instance.Error($"閰嶆柟涓棤姝ょ墿鏂欍�恵ComponentCodeTrim}銆戯紝璇锋牳瀵圭墿鏂欑紪鍙�");
+ }
+
+ Dt_BoxingDetail detailModel = new Dt_BoxingDetail()
+ {
+ BoxingId = newBoxingId,
+ ComponentCode = ComponentCodeTrim,
+ ComponentName = formulaDetail.ComponentName,
+ Creater = "admin",
+ CreateDate = DateTime.Now
+ };
+ detailList.Add(detailModel);
+ }
+ if (detailList.Count > 0)
+ {
+ BaseDal.AddData(detailList);
+ }
+ }
+ #endregion
+ }
+ else
+ {
+ #region 淇敼閫昏緫 - 鏂板鏍稿績閫昏緫
+ // 1. 鏇存柊涓昏〃鏁版嵁
+ existBoxinModel.ProductCode = productCode;
+ existBoxinModel.ProductName = formulaModel.ProductName.Trim();
+ existBoxinModel.Modifier = "admin";
+ existBoxinModel.ModifyDate = DateTime.Now;
+ _boxingService.Repository.UpdateData(existBoxinModel);
+
+ int boxingId = existBoxinModel.Id;
+
+ // 2. 鍒犻櫎璇ョ粍鐩樹笅鐨勩�愬師鏈夊叏閮ㄦ槑缁嗚〃鏁版嵁銆�
+ List<Dt_BoxingDetail> oldDetailList = BaseDal.QueryData(x => x.BoxingId == boxingId);
+ if (oldDetailList != null && oldDetailList.Count > 0)
+ {
+ BaseDal.DeleteData(oldDetailList);
+ }
+
+ // 3. 閲嶆柊鎻掑叆淇敼鍚庣殑鏄庣粏琛ㄦ暟鎹�
+ if (toolingBoardSubmitDto.PartsList != null && toolingBoardSubmitDto.PartsList.Count > 0)
+ {
+ List<Dt_BoxingDetail> detailList = new List<Dt_BoxingDetail>();
+ foreach (string ComponentCode in toolingBoardSubmitDto.PartsList)
+ {
+ if (string.IsNullOrWhiteSpace(ComponentCode)) continue;
+ string ComponentCodeTrim = ComponentCode.Trim();
+
+ Dt_FormulaDetail formulaDetail = _formulaDetailService.Repository.QueryFirst(x => x.FormulaId == formulaModel.Id && x.ComponentCode == ComponentCodeTrim);
+ if (formulaDetail == null)
+ {
+ return WebResponseContent.Instance.Error($"閰嶆柟涓棤姝ょ墿鏂欍�恵ComponentCodeTrim}銆戯紝璇锋牳瀵圭墿鏂欏悕绉�");
+ }
+
+ Dt_BoxingDetail detailModel = new Dt_BoxingDetail()
+ {
+ BoxingId = boxingId,
+ ComponentCode = ComponentCodeTrim,
+ ComponentName = formulaDetail.ComponentName,
+ Creater = "admin",
+ CreateDate = DateTime.Now
+ };
+ detailList.Add(detailModel);
+ }
+ if (detailList.Count > 0)
+ {
+ BaseDal.AddData(detailList);
+ }
+ }
+ #endregion
+ }
+ uow.Commit();
+ string msg = existBoxinModel == null ? "缁勭洏淇℃伅鏂板鎴愬姛锛�" : "缁勭洏淇℃伅淇敼鎴愬姛锛�";
+ return WebResponseContent.Instance.OK(msg);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"淇濆瓨宸ヨ鏉跨粍鐩樹俊鎭紓甯革細{ex.Message}锛屽爢鏍堬細{ex.StackTrace}");
+ return WebResponseContent.Instance.Error($"鎻愪氦澶辫触锛歿ex.Message}");
+ }
+ }
+ }
+
+
+
+ /// <summary>
+ /// 鑾峰彇鎴愬搧缂栧彿鍜岄浂浠剁紪鍙�
+ /// </summary>
+ /// <param name="palletCode"></param>
+ /// <returns></returns>
+ public WebResponseContent GetProductAndPartsByBoardNo(string palletCode)
+ {
+ try
+ {
+ if (string.IsNullOrWhiteSpace(palletCode))
+ {
+ return WebResponseContent.Instance.OK("鏌ヨ鎴愬姛", new
+ {
+ finishedProductCode = "",
+ partsList = Enumerable.Repeat("", 10).ToList()
+ });
+ }
+ Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == palletCode);
+ if (dt_Boxing == null)
+ {
+ return WebResponseContent.Instance.OK("鏈煡璇㈠埌璇ュ伐瑁呮澘瀵瑰簲鐨勬垚鍝佷俊鎭�", new
+ {
+ finishedProductCode = "",
+ partsList = Enumerable.Repeat("", 10).ToList()
+ });
+ }
+ List<Dt_BoxingDetail> dt_BoxingDetails = BaseDal.QueryData(x => x.BoxingId == dt_Boxing.Id)?.ToList() ?? new List<Dt_BoxingDetail>();
+ // 鍙栭浂浠剁紪鍙�
+ List<string> partsList = dt_BoxingDetails.Select(d => d.ComponentCode).ToList();
+ List<string> resultPartsList = new List<string>();
+ for (int i = 0; i < 10; i++)
+ {
+ if (i < partsList.Count)
+ {
+ resultPartsList.Add(partsList[i] ?? "");
+ }
+ else
+ {
+ resultPartsList.Add("");
+ }
+ }
+ return WebResponseContent.Instance.OK("闆朵欢缂栧彿鍒楄〃鏌ヨ鎴愬姛", new
+ {
+ finishedProductCode = dt_Boxing.ProductCode ?? "",
+ partsList = resultPartsList
+ });
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"鏌ヨ闆朵欢缂栧彿鍒楄〃寮傚父锛歿ex.Message}");
+ }
}
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaDetailService.cs"
index 12070e3..52be02e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaDetailService.cs"
@@ -3,8 +3,10 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoService
@@ -16,5 +18,9 @@
}
public IRepository<Dt_FormulaDetail> Repository => BaseDal;
+
+
+
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaService.cs"
index 35c819e..200ea66 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/FormulaService.cs"
@@ -31,18 +31,18 @@
Id = saveModel.MainData["id"].ObjToInt(),
ProductCode = saveModel.MainData["productCode"].ToString(),
ProductName = saveModel.MainData["productName"].ToString(),
- ProductLength = float.Parse(saveModel.MainData["productLength"].ToString()),
- ProductWidth = float.Parse(saveModel.MainData["productWidth"].ToString()),
- ProductHeight = float.Parse(saveModel.MainData["productHeight"].ToString()),
- ScrewDownsetDistance = float.Parse(saveModel.MainData["screwDownsetDistance"].ToString()),
- ScrewTorqueOutput = float.Parse(saveModel.MainData["screwTorqueOutput"].ToString()),
+ ProductLength = decimal.Parse(saveModel.MainData["productLength"].ToString()),
+ ProductWidth = decimal.Parse(saveModel.MainData["productWidth"].ToString()),
+ ProductHeight = decimal.Parse(saveModel.MainData["productHeight"].ToString()),
+ ScrewDownsetDistance = decimal.Parse(saveModel.MainData["screwDownsetDistance"].ToString()),
+ ScrewTorqueOutput = decimal.Parse(saveModel.MainData["screwTorqueOutput"].ToString()),
DintAutoScrewOn = saveModel.MainData["dintAutoScrewOn"].ObjToInt(),
- XDirectionDistance1 = float.Parse(saveModel.MainData["xDirectionDistance1"].ToString()),
- YDirectionHeight1 = float.Parse(saveModel.MainData["yDirectionHeight1"].ToString()),
- XDirectionDistance2 = float.Parse(saveModel.MainData["xDirectionDistance2"].ToString()),
- YDirectionHeight2 = float.Parse(saveModel.MainData["yDirectionHeight2"].ToString()),
- XDirectionDistance3 = float.Parse(saveModel.MainData["xDirectionDistance3"].ToString()),
- YDirectionHeight3 = float.Parse(saveModel.MainData["yDirectionHeight3"].ToString())
+ XDirectionDistance1 = decimal.Parse(saveModel.MainData["xDirectionDistance1"].ToString()),
+ YDirectionHeight1 = decimal.Parse(saveModel.MainData["yDirectionHeight1"].ToString()),
+ XDirectionDistance2 = decimal.Parse(saveModel.MainData["xDirectionDistance2"].ToString()),
+ YDirectionHeight2 = decimal.Parse(saveModel.MainData["yDirectionHeight2"].ToString()),
+ XDirectionDistance3 = decimal.Parse(saveModel.MainData["xDirectionDistance3"].ToString()),
+ YDirectionHeight3 = decimal.Parse(saveModel.MainData["yDirectionHeight3"].ToString())
//ScrewTorque = float.Parse(saveModel.MainData["ScrewTorque"].ToString()),
//UpdateBy = saveModel.UpdateBy,
@@ -56,5 +56,28 @@
{
return base.UpdateData(entity);
}
+
+
+ /// <summary>
+ /// 鑾峰彇绔欏彴鎴愬搧
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent getEndProductList()
+ {
+ try
+ {
+ List<Dt_Formula> dt_Formulas = BaseDal.QueryData(x => 1 == 1);
+ var resultList = dt_Formulas.Select(item => new
+ {
+ key = item.ProductCode,
+ value = item.ProductCode
+ }).ToList();
+ return WebResponseContent.Instance.OK("鏌ヨ绔欏彴鎴愬搧鎴愬姛", resultList);
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"鏌ヨ绔欏彴鎴愬搧澶辫触锛歿ex.Message}");
+ }
+ }
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoDetailService.cs"
new file mode 100644
index 0000000..924520d
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoDetailService.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_IBasicInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_BasicInfoService
+{
+
+ public class ProcessInfoDetailService : ServiceBase<Dt_ProcessInfoDetail, IRepository<Dt_ProcessInfoDetail>>, IProcessInfoDetailService
+ {
+ public ProcessInfoDetailService(IRepository<Dt_ProcessInfoDetail> BaseDal) : base(BaseDal)
+ {
+ }
+
+ public IRepository<Dt_ProcessInfoDetail> Repository => BaseDal;
+
+
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoService.cs"
index 81866db..098bb4e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ProcessInfoService.cs"
@@ -1,10 +1,9 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+锘縰sing OfficeOpenXml;
+using Spire.Xls;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoService
@@ -16,5 +15,41 @@
}
public IRepository<Dt_ProcessInfo> Repository => BaseDal;
+
+ /// <summary>
+ /// 涓嬭浇娴佺▼鍗�
+ /// </summary>
+ /// <param name="dt_ProcessInfo"></param>
+ /// <returns></returns>
+ public WebResponseContent ExportData(Dt_ProcessInfo dt_ProcessInfo)
+ {
+
+ string fileName = $"{DateTime.Now.ToString("yyyyMMddHHssmm")}.xlsx";
+ string templatePath = $"{AppDomain.CurrentDomain.BaseDirectory}ExprotTemplate\\鍙戠數鏈哄脊鎬ф敮鎾戜俊鎭寲娴佺▼鍗�.xlsx";//妯℃澘璺緞
+ string savePath = $"{AppDomain.CurrentDomain.BaseDirectory}Download\\{fileName}";//淇濆瓨鏂囦欢璺緞
+
+ using Stream templateStream = new FileStream(templatePath, FileMode.Open);
+ using Stream saveStream = new FileStream(savePath, FileMode.Create);
+ using ExcelPackage package = new ExcelPackage(saveStream, templateStream);
+ ExcelWorksheet worksheet = package.Workbook.Worksheets["娴佺▼鍗�"];
+ worksheet.Cells[3, 5].Value = dt_ProcessInfo.ProductCode;//鎴愬搧缂栧彿
+
+ package.Save();
+
+ string pdfFileName = $"{DateTime.Now.ToString("yyyyMMddHHssmm")}.pdf";
+ string pdfPath = $"{AppDomain.CurrentDomain.BaseDirectory}Download\\{pdfFileName}";
+
+ Workbook workbook = new Workbook();
+ workbook.LoadFromFile(savePath);
+
+ // 杞崲绗竴涓伐浣滆〃鍒癙DF
+ workbook.SaveToFile(pdfPath, FileFormat.PDF);
+ return WebResponseContent.Instance.OK(data: new { path = pdfPath, fileName = pdfFileName });
+
+ }
+
+
+
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ScanStationService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ScanStationService.cs"
index 172962a..4a5fcda 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ScanStationService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ScanStationService.cs"
@@ -1,20 +1,224 @@
-锘縰sing System;
+锘縰sing Autofac.Core;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Common.PLCEnum;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_BasicInfoService
{
public class ScanStationService : ServiceBase<Dt_ScanStation, IRepository<Dt_ScanStation>>, IScanStationService
{
- public ScanStationService(IRepository<Dt_ScanStation> BaseDal) : base(BaseDal)
+ private readonly IFormulaService _formulaService;
+ private readonly IFormulaDetailService _formulaDetailService;
+
+ public ScanStationService(IRepository<Dt_ScanStation> BaseDal,
+ IFormulaService formulaService,
+ IFormulaDetailService formulaDetailService
+ ) : base(BaseDal)
{
+ _formulaService = formulaService;
+ _formulaDetailService = formulaDetailService;
}
public IRepository<Dt_ScanStation> Repository => BaseDal;
+
+
+ /// <summary>
+ /// 鍚姩PLC
+ /// </summary>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ /// <summary>
+ public WebResponseContent StartPLC(bool isStop)
+ {
+ try
+ {
+ OtherDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == "涓绘帶PLC") as OtherDevice;
+ if (device == null) throw new Exception("鏈壘鍒颁富鎺LC璁惧淇℃伅");
+ if (!device.IsConnected) throw new Exception($"涓绘帶PLC璁惧閫氳寮傚父");
+ if (isStop)
+ {
+ device.SetValue(W_PLCDBName.wboolAutoStart, false);
+ //鏆傚仠淇″彿
+ device.SetValue(W_PLCDBName.wboolAutoPause, false);
+ return WebResponseContent.Instance.OK();
+ }
+ var Heart = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolHeart);
+ var EMG = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolEMG);
+ var OnlineExecuting = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolOnlineExecuting);
+ var Error = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolError);
+
+ if (Heart && !EMG && OnlineExecuting && !Error)
+ {
+ device.SetValue(W_PLCDBName.wboolAutoStart, true);
+ //鏆傚仠淇″彿
+ device.SetValue(W_PLCDBName.wboolAutoPause, false);
+ return WebResponseContent.Instance.OK();
+ }
+
+ return WebResponseContent.Instance.Error("璁惧涓嶆槸鍦ㄧ嚎鐘舵��");
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
+
+ /// <summary>
+ /// 鏆傚仠/鎭㈠PLC锛堝弻鍚戞帶鍒讹級
+ /// </summary>
+ /// <param name="isPause">鏄惁涓烘殏鍋滄搷浣滐細true=鏆傚仠锛宖alse=鎭㈠</param>
+ /// <returns>缁熶竴鏍煎紡鐨勫搷搴旂粨鏋�</returns>
+ public WebResponseContent PausePLC(bool isPause)
+ {
+ try
+ {
+ OtherDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == "涓绘帶PLC") as OtherDevice;
+ if (device == null) throw new Exception("鏈壘鍒颁富鎺LC璁惧淇℃伅");
+ if (!device.IsConnected) throw new Exception($"涓绘帶PLC璁惧閫氳寮傚父");
+
+ var Heart = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolHeart);
+ var EMG = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolEMG);
+ var Error = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolError);
+ if(!device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolAutoStart))
+ {
+ return WebResponseContent.Instance.Error("璁惧鏈惎鍔�");
+ }
+
+ if (!Heart || EMG || Error)
+ {
+ return WebResponseContent.Instance.Error("璁惧鐘舵�佸紓甯革紝鏃犳硶鎵ц鏆傚仠/鎭㈠鎿嶄綔");
+ }
+ device.SetValue(W_PLCDBName.wboolAutoPause, isPause);
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+
+
+ /// <summary>
+ /// 杩斿洖淇″彿
+ /// </summary>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public WebResponseContent GetSignalStates()
+ {
+ OtherDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceName == "涓绘帶PLC") as OtherDevice;
+ if (device == null) throw new Exception("鏈壘鍒颁富鎺LC璁惧淇℃伅");
+ if (!device.IsConnected) throw new Exception($"涓绘帶PLC璁惧閫氳寮傚父");
+
+ //鑾峰彇淇″彿鐏姸鎬�
+ var Heart = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolHeart);
+ var EMG = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolEMG);
+ var AutoExecuting = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolAutoExecuting);
+ var OnlineExecuting = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolOnlineExecuting);
+ var Error = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolError);
+
+ //鑾峰彇鍚姩鏆傚仠鐘舵��
+ var IsStarted = device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolAutoStart);
+ var IsPaused = device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolAutoPause);
+
+ //杩斿洖瀵硅薄
+ var responseData = new
+ {
+ // 淇″彿鐏姸鎬佹暟缁勶紙淇濇寔鍘熸湁椤哄簭锛�
+ signalStates = new bool[] { Heart, EMG, AutoExecuting, OnlineExecuting, Error },
+ // PLC鍚姩/鏆傚仠鐘舵�佸璞�
+ plcStatus = new
+ {
+ isStarted = IsStarted,
+ isPaused = IsPaused
+ }
+ };
+ return WebResponseContent.Instance.OK(data: responseData);
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎴愬搧淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent GetLeftInitialData()
+ {
+ try
+ {
+ Dt_ScanStation dt_ScanStation = BaseDal.QueryFirst(x => x.StationCode == "001");
+ if (dt_ScanStation == null)
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒板伐浣嶇紪鐮佷负001鐨勫伐浣嶄俊鎭�");
+ }
+ Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == dt_ScanStation.StationEndProduct);
+ if (dt_Formula == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒版垚鍝佺紪鍙枫�恵dt_ScanStation.StationEndProduct}銆戝搴旂殑閰嶆柟淇℃伅");
+ }
+ List<Dt_FormulaDetail> dt_FormulaDetails = _formulaDetailService.Repository.QueryData(x => x.FormulaId == dt_Formula.Id);
+
+ var responseData = new
+ {
+ finishedProductId = dt_Formula.Id,
+ finishedProduct = dt_Formula.ProductCode,
+ leftPartCodes = new List<string>(),
+ leftPartIds = new List<int>(),
+ leftPartChecked = new List<int>()
+ };
+
+ foreach (var detail in dt_FormulaDetails.Take(10))
+ {
+ responseData.leftPartCodes.Add(detail.ComponentCode ?? "");
+ responseData.leftPartIds.Add(detail.Id);
+ responseData.leftPartChecked.Add(detail.IsScanned);
+ }
+
+ int needFillCount = 10 - responseData.leftPartCodes.Count;
+ for (int i = 0; i < needFillCount; i++)
+ {
+ responseData.leftPartCodes.Add("");
+ responseData.leftPartIds.Add(0);
+ responseData.leftPartChecked.Add(0);
+ }
+ return WebResponseContent.Instance.OK("鑾峰彇宸︿晶鍒濆鏁版嵁鎴愬姛", responseData);
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"鑾峰彇宸︿晶鍒濆鏁版嵁澶辫触锛岃绋嶅悗閲嶈瘯銆恵ex.Message}銆�");
+ }
+ }
+
+ /// <summary>
+ /// 鏇存柊鏄惁鎵爜
+ /// </summary>
+ /// <param name="updatePartScannedStatusRequest"></param>
+ /// <returns></returns>
+ public WebResponseContent UpdatePartScannedStatus(UpdatePartScannedStatusRequest updatePartScannedStatusRequest)
+ {
+ try
+ {
+ Dt_FormulaDetail dt_FormulaDetail = _formulaDetailService.Repository.QueryFirst(x => x.Id == updatePartScannedStatusRequest.Id);
+ dt_FormulaDetail.IsScanned = updatePartScannedStatusRequest.IsScanned;
+ bool flag = _formulaDetailService.Repository.UpdateData(dt_FormulaDetail);
+ if (flag)
+ {
+ return WebResponseContent.Instance.OK();
+ }
+ return WebResponseContent.Instance.Error("鏇存柊閿欒");
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error("鑾峰彇鏁版嵁澶辫触");
+ }
+ }
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
index 132b4ea..a51c847 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
@@ -1,4 +1,4 @@
-<Project Sdk="Microsoft.NET.Sdk">
+锘�<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
@@ -7,11 +7,17 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="WIDESEAWCS_QuartzJob" Version="1.0.0" />
+ <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.11" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WIDESEAWCS_IBasicInfoService\WIDESEAWCS_IBasicInfoService.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <Reference Include="Spire.XLS">
+ <HintPath>Spire.XLS.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+
</Project>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/R_PLCDBName.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/R_PLCDBName.cs"
similarity index 97%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/R_PLCDBName.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/R_PLCDBName.cs"
index 22228cc..0a3cdae 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/R_PLCDBName.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/R_PLCDBName.cs"
@@ -4,7 +4,7 @@
using System.Text;
using System.Threading.Tasks;
-namespace WIDESEAWCS_Tasks
+namespace WIDESEAWCS_Common.PLCEnum
{
public enum R_PLCDBName
{
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/W_PLCDBName.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/W_PLCDBName.cs"
similarity index 98%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/W_PLCDBName.cs"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/W_PLCDBName.cs"
index 5cfd1c3..84b9686 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/W_PLCDBName.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Common/PLCEnum/W_PLCDBName.cs"
@@ -4,7 +4,7 @@
using System.Text;
using System.Threading.Tasks;
-namespace WIDESEAWCS_Tasks
+namespace WIDESEAWCS_Common.PLCEnum
{
public enum W_PLCDBName
{
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/ToolingBoardSubmitDto.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/ToolingBoardSubmitDto.cs"
new file mode 100644
index 0000000..2c10519
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/ToolingBoardSubmitDto.cs"
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.BasicInfo
+{
+ public class ToolingBoardSubmitDto
+ {
+ /// <summary>
+ /// 宸ヨ鏉跨紪鍙� (蹇呭~)
+ /// </summary>
+ public string ToolingBoardNo { get; set; }
+
+ /// <summary>
+ /// 鎴愬搧缂栧彿 (蹇呭~)
+ /// </summary>
+ public string FinishedProductCode { get; set; }
+
+ /// <summary>
+ /// 闆朵欢鍒楄〃(鍥哄畾10涓紝瀵瑰簲闆朵欢1~闆朵欢10锛岀┖鍒欎紶绌哄瓧绗︿覆)
+ /// </summary>
+ public List<string> PartsList { get; set; }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/UpdatePartScannedStatusRequest.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/UpdatePartScannedStatusRequest.cs"
new file mode 100644
index 0000000..8dacfd2
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/UpdatePartScannedStatusRequest.cs"
@@ -0,0 +1,22 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.BasicInfo
+{
+ public class UpdatePartScannedStatusRequest
+ {
+ /// <summary>
+ /// 闆朵欢鏁版嵁搴撲富閿甀D
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鏄惁鎵爜
+ /// </summary>
+ public int IsScanned { get; set; }
+ }
+
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IBoxingDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IBoxingDetailService.cs"
index eed9187..2c784bc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IBoxingDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IBoxingDetailService.cs"
@@ -3,8 +3,10 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoService
@@ -15,5 +17,10 @@
//姣旇緝闆朵欢鏄惁榻愬叏
public bool IsComponentCodesEqual(List<Dt_BoxingDetail> boxingDetails, List<Dt_FormulaDetail> formulaDetails);
+
+ //娣诲姞缁勭洏淇℃伅
+ public WebResponseContent SaveToolingBoardNo(ToolingBoardSubmitDto toolingBoardSubmitDto);
+ //鑾峰彇鎴愬搧缂栧彿鍜岄浂浠�
+ public WebResponseContent GetProductAndPartsByBoardNo(string palletCode);
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaDetailService.cs"
index f68b1ab..8602d89 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaDetailService.cs"
@@ -13,4 +13,11 @@
{
public IRepository<Dt_FormulaDetail> Repository { get; }
}
+
+
+
+
+
+
+
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaService.cs"
index a92882e..42c6633 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IFormulaService.cs"
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
@@ -12,5 +13,8 @@
public interface IFormulaService : IService<Dt_Formula>
{
public IRepository<Dt_Formula> Repository { get; }
+
+ //鑾峰彇绔欏彴鎴愬搧
+ public WebResponseContent getEndProductList();
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoDetailService.cs"
new file mode 100644
index 0000000..da6e6b4
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoDetailService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IBasicInfoService
+{
+ public interface IProcessInfoDetailService : IService<Dt_ProcessInfoDetail>
+ {
+ public IRepository<Dt_ProcessInfoDetail> Repository { get; }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoService.cs"
index c38dacd..f232de0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IProcessInfoService.cs"
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
@@ -12,5 +13,8 @@
public interface IProcessInfoService : IService<Dt_ProcessInfo>
{
public IRepository<Dt_ProcessInfo> Repository { get; }
+
+ // 涓嬭浇娴佺▼鍗�
+ public WebResponseContent ExportData(Dt_ProcessInfo dt_ProcessInfo);
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IScanStationService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IScanStationService.cs"
index c54df53..caad7f5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IScanStationService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IScanStationService.cs"
@@ -3,8 +3,10 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_BasicInfoService
@@ -12,5 +14,19 @@
public interface IScanStationService : IService<Dt_ScanStation>
{
public IRepository<Dt_ScanStation> Repository { get; }
+
+ //鍚姩PLC
+ public WebResponseContent StartPLC(bool isStop);
+
+ //鏆傚仠PLC
+ public WebResponseContent PausePLC(bool isPause);
+
+ //杩斿洖淇″彿
+ public WebResponseContent GetSignalStates();
+
+ //鑾峰彇鎴愬搧淇℃伅
+ public WebResponseContent GetLeftInitialData();
+ //鏇存柊鎵爜鐘舵��
+ public WebResponseContent UpdatePartScannedStatus(UpdatePartScannedStatusRequest updatePartScannedStatusRequest);
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_Formula.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_Formula.cs"
index 4665677..b4d4339 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_Formula.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_Formula.cs"
@@ -33,74 +33,74 @@
/// <summary>
/// 鍘嬭浣嶄骇鍝侀暱搴�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶄骇鍝侀暱搴�")]
- public float ProductLength { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits =2, ColumnDescription = "鍘嬭浣嶄骇鍝侀暱搴�")]
+ public decimal ProductLength { get; set; }
/// <summary>
/// 鍘嬭浣嶄骇鍝佸搴�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶄骇鍝佸搴�")]
- public float ProductWidth { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶄骇鍝佸搴�")]
+ public decimal ProductWidth { get; set; }
/// <summary>
/// 鍘嬭浣嶄骇鍝侀珮搴�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶄骇鍝侀珮搴�")]
- public float ProductHeight { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶄骇鍝侀珮搴�")]
+ public decimal ProductHeight { get; set; }
/// <summary>
/// 鍘嬭浣嶆嫥绱т笅闄嶉珮搴�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶆嫥绱т笅闄嶉珮搴�")]
- public float ScrewDownsetDistance { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶆嫥绱т笅闄嶉珮搴�")]
+ public decimal ScrewDownsetDistance { get; set; }
/// <summary>
/// 鍘嬭浣嶆嫥绱ф壄鍔�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶆嫥绱ф壄鍔�")]
- public float ScrewTorqueOutput { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶆嫥绱ф壄鍔�")]
+ public decimal ScrewTorqueOutput { get; set; }
/// <summary>
/// 鍘嬭浣嶈嚜鍔ㄦ嫥绱ф墦寮�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶈嚜鍔ㄦ嫥绱ф墦寮�")]
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶈嚜鍔ㄦ嫥绱ф墦寮�")]
public int DintAutoScrewOn { get; set; }
/// <summary>
/// 妫�娴嬩綅X鍋忕Щ璺濈1
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "妫�娴嬩綅X鍋忕Щ璺濈1")]
- public float XDirectionDistance1 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "妫�娴嬩綅X鍋忕Щ璺濈1")]
+ public decimal XDirectionDistance1 { get; set; }
/// <summary>
/// 妫�娴嬩綅Z楂樺害1
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "妫�娴嬩綅Z楂樺害1")]
- public float YDirectionHeight1 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "妫�娴嬩綅Z楂樺害1")]
+ public decimal YDirectionHeight1 { get; set; }
/// <summary>
/// 妫�娴嬩綅X鍋忕Щ璺濈2
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "妫�娴嬩綅X鍋忕Щ璺濈2")]
- public float XDirectionDistance2 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "妫�娴嬩綅X鍋忕Щ璺濈2")]
+ public decimal XDirectionDistance2 { get; set; }
/// <summary>
/// 妫�娴嬩綅Z楂樺害2
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "妫�娴嬩綅Z楂樺害2")]
- public float YDirectionHeight2 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "妫�娴嬩綅Z楂樺害2")]
+ public decimal YDirectionHeight2 { get; set; }
/// <summary>
/// 妫�娴嬩綅X鍋忕Щ璺濈3
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "妫�娴嬩綅X鍋忕Щ璺濈3")]
- public float XDirectionDistance3 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "妫�娴嬩綅X鍋忕Щ璺濈3")]
+ public decimal XDirectionDistance3 { get; set; }
/// <summary>
/// 妫�娴嬩綅Z楂樺害3
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "妫�娴嬩綅Z楂樺害3")]
- public float YDirectionHeight3 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "妫�娴嬩綅Z楂樺害3")]
+ public decimal YDirectionHeight3 { get; set; }
[SugarColumn(IsIgnore = true)]//涓嶅弬涓庢暟鎹簱鏄犲皠锛屾祴璇曚娇鐢�
[Navigate(NavigateType.OneToMany, nameof(Dt_FormulaDetail.FormulaId), nameof(Id))]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_FormulaDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_FormulaDetail.cs"
index 1fcbeac..9a29a81 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_FormulaDetail.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_FormulaDetail.cs"
@@ -33,5 +33,13 @@
/// </summary>
[SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "闆朵欢鍚嶇О")]
public string ComponentName { get; set; }
+
+ /// <summary>
+ /// 鏄惁鎵爜
+ /// </summary>
+ [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鏄惁鎵爜")]
+ public int IsScanned { get; set; }
+
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfo.cs"
index e3ee104..cb53c29 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfo.cs"
@@ -44,67 +44,67 @@
/// <summary>
/// 鎵姏鍊�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鎵姏鍊�")]
- public float TorsioValue { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鎵姏鍊�")]
+ public decimal TorsioValue { get; set; }
/// <summary>
/// 鎵姏鍊兼爣鍑�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鎵姏鍊兼爣鍑�")]
- public float TorsioValueStandard { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鎵姏鍊兼爣鍑�")]
+ public decimal TorsioValueStandard { get; set; }
/// <summary>
/// 鍒氬害鍊�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍒氬害鍊�")]
- public float StiffnessValue { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍒氬害鍊�")]
+ public decimal StiffnessValue { get; set; }
/// <summary>
/// 鍒氬害鍊兼爣鍑�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍒氬害鍊兼爣鍑�")]
- public float StiffnessValueStandard { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍒氬害鍊兼爣鍑�")]
+ public decimal StiffnessValueStandard { get; set; }
/// <summary>
/// 娴嬭瘯缁撴灉
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "娴嬭瘯缁撴灉")]
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "娴嬭瘯缁撴灉")]
public int TestResult { get; set; }
/// <summary>
/// 鍘嬭浣嶄笅鍘嬫娴嬮珮搴�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶄笅鍘嬫娴嬮珮搴�")]
- public float PressHeight { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶄笅鍘嬫娴嬮珮搴�")]
+ public decimal PressHeight { get; set; }
/// <summary>
/// 鍘嬭浣嶆嫥绱ф娴嬫壄鍔�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶆嫥绱ф娴嬫壄鍔�")]
- public float ScrewTorque { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶆嫥绱ф娴嬫壄鍔�")]
+ public decimal ScrewTorque { get; set; }
/// <summary>
/// 鍘嬭浣嶆嫥绱ф娴嬭搴�
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鍘嬭浣嶆嫥绱ф娴嬭搴�")]
- public float ScrewAngle { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鍘嬭浣嶆嫥绱ф娴嬭搴�")]
+ public decimal ScrewAngle { get; set; }
/// <summary>
/// 鎷х揣浣嶆娴嬮珮搴�1
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鎷х揣浣嶆娴嬮珮搴�1")]
- public float Height1 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鎷х揣浣嶆娴嬮珮搴�1")]
+ public decimal Height1 { get; set; }
/// <summary>
/// 鎷х揣浣嶆娴嬮珮搴�2
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鎷х揣浣嶆娴嬮珮搴�2")]
- public float Height2 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鎷х揣浣嶆娴嬮珮搴�2")]
+ public decimal Height2 { get; set; }
/// <summary>
/// 鎷х揣浣嶆娴嬮珮搴�3
/// </summary>
- [SugarColumn(IsNullable = true, ColumnDescription = "鎷х揣浣嶆娴嬮珮搴�3")]
- public float Height3 { get; set; }
+ [SugarColumn(IsNullable = true, DecimalDigits = 2, ColumnDescription = "鎷х揣浣嶆娴嬮珮搴�3")]
+ public decimal Height3 { get; set; }
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfoDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfoDetail.cs"
new file mode 100644
index 0000000..78802a3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ProcessInfoDetail.cs"
@@ -0,0 +1,38 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+ [SugarTable(nameof(Dt_ProcessInfoDetail), "鍔犲伐淇℃伅璇︽儏琛�")]
+ public class Dt_ProcessInfoDetail : BaseEntity
+ {
+ /// <summary>
+ /// 涓婚敭
+ /// </summary>
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 宸ヨ鏉跨紪鍙�
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "宸ヨ鏉跨紪鍙�")]
+ public string PalletCode { get; set; }
+
+ /// <summary>
+ /// 鎴愬搧缂栧彿
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎴愬搧缂栧彿")]
+ public string ProductCode { get; set; }
+
+ /// <summary>
+ /// 鎴愬搧鍚嶇О
+ /// </summary>
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎴愬搧鍚嶇О")]
+ public string ProductName { get; set; }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ScanStation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ScanStation.cs"
index e725e75..24010ef 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ScanStation.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_ScanStation.cs"
@@ -32,13 +32,13 @@
/// <summary>
/// 绔欏彴鎴愬搧
/// </summary>
- [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "绔欏彴鎴愬搧")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绔欏彴鎴愬搧")]
public string StationEndProduct { get; set; }
/// <summary>
/// 闆朵欢鏁伴噺
/// </summary>
- [SugarColumn(IsNullable = false, ColumnDescription = "闆朵欢鏁伴噺")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "闆朵欢鏁伴噺")]
public int StationComponentQty { get; set; }
/// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
index dd63ccd..f6e245e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
@@ -8,7 +8,7 @@
<ItemGroup>
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
- <PackageReference Include="WIDESEAWCS_Core" Version="1.0.17" />
+ <PackageReference Include="WIDESEAWCS_Core" Version="1.0.32" />
</ItemGroup>
<ItemGroup>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json"
new file mode 100644
index 0000000..b0e38ab
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json"
@@ -0,0 +1,5 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {}
+}
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/BoxingDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/BoxingDetailController.cs"
index 8982087..9c85305 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/BoxingDetailController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/BoxingDetailController.cs"
@@ -1,6 +1,9 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_Server.Controllers.BoxingInfo
@@ -17,5 +20,18 @@
}
+
+ [HttpPost, Route("SaveToolingBoardNo"), AllowAnonymous]
+ public WebResponseContent SaveToolingBoardNo([FromBody] ToolingBoardSubmitDto toolingBoardSubmitDto)
+ {
+ return Service.SaveToolingBoardNo(toolingBoardSubmitDto);
+ }
+
+
+ [HttpGet, Route("GetProductAndPartsByBoardNo"), AllowAnonymous]
+ public WebResponseContent GetProductAndPartsByBoardNo([FromQuery] string palletCode)
+ {
+ return Service.GetProductAndPartsByBoardNo(palletCode);
+ }
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/FormulaController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/FormulaController.cs"
index eb2fd6c..7cccf9c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/FormulaController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/FormulaController.cs"
@@ -1,5 +1,7 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_Model.Models;
@@ -17,5 +19,16 @@
}
+
+ /// <summary>
+ /// 鑾峰彇绔欏彴鎴愬搧
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet, Route("getEndProductList"), AllowAnonymous]
+ public WebResponseContent getEndProductList()
+ {
+ return Service.getEndProductList();
+ }
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoController.cs"
index 5757c24..0154273 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoController.cs"
@@ -1,5 +1,7 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
using WIDESEAWCS_Model.Models;
@@ -17,5 +19,17 @@
}
+
+ /// <summary>
+ /// 涓嬭浇娴佺▼鍗�
+ /// </summary>
+ /// <param name="dt_ProcessInfo"></param>
+ /// <returns></returns>
+ [HttpPost, Route("ExportData"), AllowAnonymous]
+ public WebResponseContent ExportData([FromBody] Dt_ProcessInfo dt_ProcessInfo)
+ {
+ return Service.ExportData(dt_ProcessInfo);
+ }
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoDetailController.cs"
new file mode 100644
index 0000000..5bbfe2b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ProcessInfoDetailController.cs"
@@ -0,0 +1,21 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_IBasicInfoService;
+
+namespace WIDESEAWCS_Server.Controllers.BasicInfo
+{
+ /// <summary>
+ /// 鍔犲伐淇℃伅
+ /// </summary>
+ [Route("api/processInfoDetail")]
+ [ApiController]
+ public class ProcessInfoDetailController : ApiBaseController<IProcessInfoDetailService, Dt_ProcessInfoDetail>
+ {
+ public ProcessInfoDetailController(IProcessInfoDetailService service) : base(service)
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ScanStationController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ScanStationController.cs"
index 1ec23af..09960c0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ScanStationController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/ScanStationController.cs"
@@ -1,6 +1,9 @@
-锘縰sing Microsoft.AspNetCore.Mvc;
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.BasicInfo;
using WIDESEAWCS_Model.Models;
namespace WIDESEAWCS_Server.Controllers.BasicInfo
@@ -17,5 +20,62 @@
}
+
+ /// <summary>
+ /// 鍚姩PLC
+ /// </summary>
+ /// <param name="isStop"></param>
+ /// <returns></returns>
+ [HttpGet, Route("StartPLC"), AllowAnonymous]
+ public WebResponseContent StartPLC([FromQuery] bool isStop)
+ {
+ return Service.StartPLC(isStop);
+ }
+
+
+ /// <summary>
+ /// 鏆傚仠PLC
+ /// </summary>
+ /// <param name="isPause"></param>
+ /// <returns></returns>
+ [HttpGet, Route("PausePLC"), AllowAnonymous]
+ public WebResponseContent PausePLC([FromQuery] bool isPause)
+ {
+ return Service.PausePLC(isPause);
+ }
+
+
+ /// <summary>
+ /// 鑾峰彇淇″彿鐏�
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet, Route("GetSignalStates"), AllowAnonymous]
+ public WebResponseContent GetSignalStates()
+ {
+ return Service.GetSignalStates();
+ }
+
+
+ /// <summary>
+ /// 鑾峰彇鎴愬搧淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ [HttpGet, Route("GetLeftInitialData"), AllowAnonymous]
+ public WebResponseContent GetLeftInitialData()
+ {
+ return Service.GetLeftInitialData();
+ }
+
+ /// <summary>
+ /// 鏇存柊鏄惁鎵爜
+ /// </summary>
+ /// <param name="updatePartScannedStatusRequest"></param>
+ /// <returns></returns>
+ [HttpPost, Route("UpdatePartScannedStatus"), AllowAnonymous]
+ public WebResponseContent UpdatePartScannedStatus([FromBody] UpdatePartScannedStatusRequest updatePartScannedStatusRequest)
+ {
+ return Service.UpdatePartScannedStatus(updatePartScannedStatusRequest);
+ }
+
}
}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml"
index 36847ea..d7c38db 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml"
@@ -10,8 +10,12 @@
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
- <PublishUrl>bin\Release\net6.0\publish\</PublishUrl>
+ <PublishUrl>F:\IIS\鎬濆▉鍗氭亽\WCS</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<_TargetId>Folder</_TargetId>
+ <SiteUrlToLaunchAfterPublish />
+ <TargetFramework>net6.0</TargetFramework>
+ <ProjectGuid>487fa45b-ea1a-4aca-bb5b-0f6708f462c0</ProjectGuid>
+ <SelfContained>false</SelfContained>
</PropertyGroup>
</Project>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
index cd526a9..a79c368 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
@@ -68,6 +68,7 @@
</ItemGroup>
<ItemGroup>
+ <ProjectReference Include="..\WIDESEAWCS_IProductRecordServer\WIDESEAWCS_IProductRecordService.csproj" />
<ProjectReference Include="..\WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj" />
<ProjectReference Include="..\WIDESEAWCs_TaskInfoService\WIDESEAWCs_TaskInfoService.csproj" />
<ProjectReference Include="..\WIDESEAWCS_Tasks\WIDESEAWCS_Tasks.csproj" />
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfo.cs"
index 27f36ff..f19d4fb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfo.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfo.cs"
@@ -14,7 +14,7 @@
[assembly: System.Reflection.AssemblyCompanyAttribute("WIDESEAWCS_TaskInfoService")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+86f5db51a5fd895dcae671d01b28cd0d4948af0e")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2eea48595c784d1d6d58d526f1da12427dfa0a25")]
[assembly: System.Reflection.AssemblyProductAttribute("WIDESEAWCS_TaskInfoService")]
[assembly: System.Reflection.AssemblyTitleAttribute("WIDESEAWCS_TaskInfoService")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfoInputs.cache" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfoInputs.cache"
index 1d039b6..7ffa8b5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfoInputs.cache"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.AssemblyInfoInputs.cache"
@@ -1 +1 @@
-d4cf05aa7aa7ae843c211aeed38667b4957a26b93e653654b3b863537f1c7404
+c9c87e496556920f27ef09770ceb3d9cdc2a9b9b20ce0dfcd54bba65b5fd5b5e
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCs_TaskInfoService.assets.cache" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCs_TaskInfoService.assets.cache"
index d1e5321..8d4b0d5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCs_TaskInfoService.assets.cache"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCs_TaskInfoService.assets.cache"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs"
index 03c0398..e373ad1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PLCJob.cs"
@@ -1,27 +1,13 @@
-锘縰sing System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using Autofac.Core;
-using HslCommunication;
-using HslCommunication.Core;
-using Microsoft.VisualBasic.FileIO;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
+锘縰sing System.Text;
using Quartz;
-using SixLabors.ImageSharp.PixelFormats;
using WIDESEAWCS_BasicInfoService;
+using WIDESEAWCS_Common.PLCEnum;
using WIDESEAWCS_Communicator;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_QuartzJob.DeviceBase;
-using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
namespace WIDESEAWCS_Tasks
{
@@ -33,22 +19,33 @@
private readonly IFormulaService _formulaService;
private readonly IFormulaDetailService _formulaDetailService;
private readonly IProcessInfoService _processInfoService;
+ private readonly IProcessInfoDetailService _processDetailInfoService;
private readonly IUnitOfWorkManage _unitOfWorkManage;
- public PLCJob(IBoxingService boxingService, IBoxingDetailService boxingDetailService, IFormulaService formulaService, IFormulaDetailService formulaDetailService, IProcessInfoService processInfoService, IUnitOfWorkManage unitOfWorkManage)
+ private readonly IScanStationService _scanStationService;
+ //private readonly string PalletCode = "PL107";
+
+ public PLCJob(IBoxingService boxingService,
+ IBoxingDetailService boxingDetailService,
+ IFormulaService formulaService,
+ IFormulaDetailService formulaDetailService,
+ IProcessInfoService processInfoService,
+ IProcessInfoDetailService processDetailInfoService,
+ IUnitOfWorkManage unitOfWorkManage,
+ IScanStationService scanStationService
+ )
{
_boxingService = boxingService;
_boxingDetailService = boxingDetailService;
_formulaService = formulaService;
_formulaDetailService = formulaDetailService;
_processInfoService = processInfoService;
+ _processDetailInfoService = processDetailInfoService;
_unitOfWorkManage = unitOfWorkManage;
+ _scanStationService = scanStationService;
}
- private readonly string set = "0x16,0x4D,0x0D,0x30,0x34,0x30,0x31,0x44,0x30,0x35,0x2E";//涓绘満鍙戦�佽缃壂鎻忔ā寮忎负涓绘満妯″紡鐨勫懡浠�,鎵弿鍣ㄨ繑鍥炴帴鏀跺埌鐨勫懡浠ゅ拰<ACK>锛�0x06锛夊悗锛屽皢鎵弿妯″紡鏇存敼涓轰富鏈烘ā寮�
- private readonly string Text = "寮�鍚壂鐮�";//涓绘満鍙戦�佽缃壂鎻忔ā寮忎负涓绘満妯″紡鐨勫懡浠�,鎵弿鍣ㄨ繑鍥炴帴鏀跺埌鐨勫懡浠ゅ拰<ACK>锛�0x06锛夊悗锛屽皢鎵弿妯″紡鏇存敼涓轰富鏈烘ā寮�
- private readonly string command = "0x16,0x54,0x0D";//鍙戦�佸紑濮嬭В鐮佸懡浠わ紱"0x16,0x55,0x0D"鍙戦�佸仠姝㈣В鐮佸懡浠�
public Task Execute(IJobExecutionContext context)
{
-
+
bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
if (flag && value != null)
{
@@ -63,6 +60,7 @@
var AutoExecuting = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolAutoExecuting);
var OnlineExecuting = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolOnlineExecuting);
var Error = device.GetValue<R_PLCDBName, bool>(R_PLCDBName.rboolError);
+
if (Heart && !EMG && AutoExecuting && OnlineExecuting && !Error)
{
#region 涓婄嚎鎵爜
@@ -103,64 +101,35 @@
var Location1ScanDone = device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolLocation1ScanDone);
if (Location1ScanStart && !Location1ScanDone)//鎺у埗鎵爜鏋壂鎻忔墭鐩樼爜锛屾牴鎹墭鐩樼爜鏌ヨ缁勭洏鏁版嵁锛屽垽鏂墭鐩樼粦瀹氭垚鍝佹槸鍚﹀凡缁戝畾鎵�鏈夋墍闇�闆朵欢
{
- #region 涓插彛杩炴帴
- SerialPortCommunicator portCommunicator1 = new SerialPortCommunicator("COM1", 9600, "涓婄嚎鎵爜鏋�");
- bool IsConnected1 = false;
- SerialPortCommunicator portCommunicator2 = new SerialPortCommunicator("COM2", 9600, "涓婄嚎鎵爜鏋�");
- bool IsConnected2 = false;
- if (!IsConnected1) IsConnected1 = portCommunicator1.Connect();
- if (!IsConnected2) IsConnected2 = portCommunicator2.Connect();
- byte[] dataToSend1 = Encoding.ASCII.GetBytes(command);//杞垚瀛楄妭鏁扮粍
- portCommunicator1.Write(dataToSend1);
- string receiveData = portCommunicator2.ToString(Encoding.UTF8);
- //if (receiveData == "0x16,0x54,0x0D")
- //{
- // Console.WriteLine(receiveData);
- byte[] dataToSend2 = Encoding.ASCII.GetBytes("PL106");//杞垚瀛楄妭鏁扮粍
- portCommunicator2.Write(dataToSend2);
- //}
- string PalletCode = portCommunicator1.ToString(Encoding.UTF8);
- using (var uow = _unitOfWorkManage.CreateUnitOfWork())
+ var PalletCode = TcpClientExample.Start("192.168.2.120", 2001);
+ try
{
- try
+ if (!PalletCode.IsNotEmptyOrNull())
{
- if (PalletCode.IsNotEmptyOrNull())
- {
- var boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
- if (boxing == null)
- {
- WriteError(device.DeviceName, "绌烘墭鐩�");
- return;
- }
- List<Dt_BoxingDetail> dt_BoxingDetails = _boxingDetailService.Repository.QueryData(x => x.BoxingId == boxing.Id);
- Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == boxing.ProductCode);
- if (dt_Formula == null)
- {
- WriteError(device.DeviceName, "鏃犳垚鍝侀厤鏂�");
- return;
- }
- List<Dt_FormulaDetail> dt_FormulaDetails = _formulaDetailService.Repository.QueryData(x => x.FormulaId == dt_Formula.Id);
- //姣旇緝闆朵欢鏄惁榻愬叏
- if (!_boxingDetailService.IsComponentCodesEqual(dt_BoxingDetails, dt_FormulaDetails))
- {
- WriteError(device.DeviceName, "闆朵欢鏈夐棶棰橈紝璇峰鐞�");
- return;
- }
- }
- //鎻愪氦浜嬪姟
- uow.Commit();
-
- IsConnected1 = !portCommunicator1.Disconnect();
- IsConnected2 = !portCommunicator2.Disconnect();
- #endregion
- device.SetValue(W_PLCDBName.wboolLocation1ScanDone, true);
-
-
+ throw new InvalidOperationException("鎵樼洏涓虹┖");
}
- catch (Exception ex)
+ var boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+ if (boxing == null)
{
- WriteError(device.DeviceName, "涓婄嚎鎵爜娴佺▼鎵ц寮傚父", ex);
+ throw new InvalidOperationException("鏈坊鍔犵粍鐩樹俊鎭�");
}
+ List<Dt_BoxingDetail> dt_BoxingDetails = _boxingDetailService.Repository.QueryData(x => x.BoxingId == boxing.Id);
+ Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == boxing.ProductCode);
+ if (dt_Formula == null)
+ {
+ throw new InvalidOperationException("鏃犳垚鍝侀厤鏂�");
+ }
+ List<Dt_FormulaDetail> dt_FormulaDetails = _formulaDetailService.Repository.QueryData(x => x.FormulaId == dt_Formula.Id && x.IsScanned == 1);
+ //姣旇緝闆朵欢鏄惁榻愬叏
+ if (!_boxingDetailService.IsComponentCodesEqual(dt_BoxingDetails, dt_FormulaDetails))
+ {
+ throw new InvalidOperationException("闆朵欢鏈夐棶棰橈紝璇峰鐞�");
+ }
+ device.SetValue(W_PLCDBName.wboolLocation1ScanDone, true);
+ }
+ catch (Exception ex)
+ {
+ WriteError(device.DeviceName, "涓婄嚎鎵爜娴佺▼鎵ц寮傚父", ex);
}
}
else if (!Location1ScanStart && Location1ScanDone)
@@ -179,71 +148,44 @@
var Location2ScanDone = device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolLocation2ScanDone);
if (Location2ScanStart && !Location2ScanDone)//鎺у埗鎵爜鏋壂鎻忔墭鐩樼爜锛屾牴鎹墭鐩樼爜鏌ヨ鎵樼洏缁戝畾鎴愬搧鍔犲伐鎵�闇�鏁版嵁锛屽啓鍏LC
{
- #region MyRegion
- #region 涓插彛杩炴帴
- SerialPortCommunicator portCommunicator17 = new SerialPortCommunicator("COM17", 9600, "鍘嬭鎵爜鏋�");
- bool IsConnected17 = false;
- SerialPortCommunicator portCommunicator18 = new SerialPortCommunicator("COM18", 9600, "鍘嬭鎵爜鏋�");
- bool IsConnected18 = false;
- if (!IsConnected17) IsConnected17 = portCommunicator17.Connect();
- if (!IsConnected18) IsConnected18 = portCommunicator18.Connect();
- byte[] dataToSend1 = Encoding.ASCII.GetBytes(command);//杞垚瀛楄妭鏁扮粍
- portCommunicator17.Write(dataToSend1);
- string receiveData = portCommunicator18.ToString(Encoding.UTF8);
- byte[] dataToSend2 = Encoding.ASCII.GetBytes("PL106");//杞垚瀛楄妭鏁扮粍
- portCommunicator18.Write(dataToSend2);
- //}
- string PalletCode = portCommunicator17.ToString(Encoding.UTF8);
- using (var uow = _unitOfWorkManage.CreateUnitOfWork())
+ var PalletCode = TcpClientExample.Start("192.168.2.121", 2001);
+
+ try
{
- try
+ if (!PalletCode.IsNotEmptyOrNull())
{
- if (PalletCode.IsNotEmptyOrNull())
- {
- Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
- Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == dt_Boxing.ProductCode);
- //鍐欏叆PLC
- device.SetValue(W_PLCDBName.wrealProductLength, dt_Formula.ProductLength);
- device.SetValue(W_PLCDBName.wrealProductWidth, dt_Formula.ProductWidth);
- device.SetValue(W_PLCDBName.wrealProductHeight, dt_Formula.ProductHeight);
- device.SetValue(W_PLCDBName.wrealScrewDownsetDistance, dt_Formula.ScrewDownsetDistance);
- device.SetValue(W_PLCDBName.wrealScrewTorqueOutput, dt_Formula.ScrewTorqueOutput);
- device.SetValue(W_PLCDBName.wDintAutoScrewOn, dt_Formula.DintAutoScrewOn);
-
- //鍘嬭鎵爜瀹屾垚
- device.SetValue(W_PLCDBName.wboolLocation2ScanDone, true);
-
- //鎺ユ敹鏁版嵁
- float PressHeight = device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectPressHeight);
- float ScrewTorque = device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectScrewTorque);
- float ScrewAngle = device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectScrewAngle);
-
- //娣诲姞鍒版暟鎹簱
- Dt_ProcessInfo dt_ProcessInfo = new Dt_ProcessInfo()
- {
- PalletCode = PalletCode,
- ProductCode = dt_Formula.ProductCode,
- ProductName = dt_Formula.ProductName,
- PressHeight = PressHeight,
- ScrewTorque = ScrewTorque,
- ScrewAngle = ScrewAngle
-
- };
- _processInfoService.Repository.AddData(dt_ProcessInfo);
- }
- //鎻愪氦浜嬪姟
- uow.Commit();
-
- IsConnected17 = !portCommunicator17.Disconnect();
- IsConnected18 = !portCommunicator18.Disconnect();
- #endregion
- #endregion
-
+ throw new InvalidOperationException("鎵樼洏涓虹┖");
}
- catch (Exception ex)
+ Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+ Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == dt_Boxing.ProductCode);
+ //鍐欏叆PLC
+ device.SetValue(W_PLCDBName.wrealProductLength, dt_Formula.ProductLength);
+ device.SetValue(W_PLCDBName.wrealProductWidth, dt_Formula.ProductWidth);
+ device.SetValue(W_PLCDBName.wrealProductHeight, dt_Formula.ProductHeight);
+ device.SetValue(W_PLCDBName.wrealScrewDownsetDistance, dt_Formula.ScrewDownsetDistance);
+ device.SetValue(W_PLCDBName.wrealScrewTorqueOutput, dt_Formula.ScrewTorqueOutput);
+ device.SetValue(W_PLCDBName.wDintAutoScrewOn, dt_Formula.DintAutoScrewOn);
+ //鍘嬭鎵爜瀹屾垚
+ device.SetValue(W_PLCDBName.wboolLocation2ScanDone, true);
+ //鎺ユ敹鏁版嵁
+ decimal PressHeight = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectPressHeight);
+ decimal ScrewTorque = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectScrewTorque);
+ decimal ScrewAngle = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectScrewAngle);
+ //娣诲姞鍒版暟鎹簱
+ Dt_ProcessInfo dt_ProcessInfo = new Dt_ProcessInfo()
{
- WriteError(device.DeviceName, "鍘嬭鎵爜娴佺▼鎵ц寮傚父", ex);
- }
+ PalletCode = PalletCode,
+ ProductCode = dt_Formula.ProductCode,
+ ProductName = dt_Formula.ProductName,
+ PressHeight = PressHeight,
+ ScrewTorque = ScrewTorque,
+ ScrewAngle = ScrewAngle
+ };
+ _processInfoService.Repository.AddData(dt_ProcessInfo);
+ }
+ catch (Exception ex)
+ {
+ WriteError(device.DeviceName, "鍘嬭鎵爜娴佺▼鎵ц寮傚父", ex);
}
}
else if (!Location2ScanStart && Location2ScanDone)
@@ -262,71 +204,44 @@
var Location3ScanDone = device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolLocation3ScanDone);
if (Location3ScanStart && !Location3ScanDone)
{
- #region MyRegion
- #region 涓插彛杩炴帴
- SerialPortCommunicator portCommunicator19 = new SerialPortCommunicator("COM19", 9600, "妫�娴嬫壂鐮佹灙");
- bool IsConnected19 = false;
- SerialPortCommunicator portCommunicator20 = new SerialPortCommunicator("COM20", 9600, "妫�娴嬫壂鐮佹灙");
- bool IsConnected20 = false;
- if (!IsConnected19) IsConnected19 = portCommunicator19.Connect();
- if (!IsConnected20) IsConnected20 = portCommunicator20.Connect();
- byte[] dataToSend1 = Encoding.ASCII.GetBytes(command);//杞垚瀛楄妭鏁扮粍
- portCommunicator19.Write(dataToSend1);
- string receiveData = portCommunicator20.ToString(Encoding.UTF8);
- byte[] dataToSend2 = Encoding.ASCII.GetBytes("PL106");//杞垚瀛楄妭鏁扮粍
- portCommunicator20.Write(dataToSend2);
- //}
- string PalletCode = portCommunicator19.ToString(Encoding.UTF8);
-
- using (var uow = _unitOfWorkManage.CreateUnitOfWork())
+ var PalletCode = TcpClientExample.Start("192.168.2.122", 2001);
+ try
{
- try
+ if (!PalletCode.IsNotEmptyOrNull())
{
- if (PalletCode.IsNotEmptyOrNull())
- {
- Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
- Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == dt_Boxing.ProductCode);
- //鍐欏叆PLC
- device.SetValue(W_PLCDBName.wrealXDirectionDistance1, dt_Formula.XDirectionDistance1);
- device.SetValue(W_PLCDBName.wrealYDirectionHeight1, dt_Formula.YDirectionHeight1);
- device.SetValue(W_PLCDBName.wrealXDirectionDistance2, dt_Formula.XDirectionDistance2);
- device.SetValue(W_PLCDBName.wrealYDirectionHeight2, dt_Formula.YDirectionHeight2);
- device.SetValue(W_PLCDBName.wrealXDirectionDistance3, dt_Formula.XDirectionDistance3);
- device.SetValue(W_PLCDBName.wrealYDirectionHeight3, dt_Formula.YDirectionHeight3);
-
- //妫�娴嬫壂鐮佸畬鎴�
- device.SetValue(W_PLCDBName.wboolLocation3ScanDone, true);
-
- //鎺ユ敹鏁版嵁
- float Height1 = device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight1);
- float Height2 = device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight2);
- float Height3 = device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight3);
-
- Dt_ProcessInfo dt_ProcessInfo = _processInfoService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
- if (dt_ProcessInfo == null)
- {
- WriteInfo(device.DeviceName, "鎴愬搧鏈帇瑁�");
- device.SetValue(W_PLCDBName.wboolLocation1ScanDone, true);
- return;
- }
- dt_ProcessInfo.Height1 = Height1;
- dt_ProcessInfo.Height2 = Height2;
- dt_ProcessInfo.Height3 = Height3;
- _processInfoService.Repository.UpdateData(dt_ProcessInfo);
-
- }
- //鎻愪氦浜嬪姟
- uow.Commit();
-
- IsConnected19 = !portCommunicator19.Disconnect();
- IsConnected20 = !portCommunicator20.Disconnect();
- #endregion
- #endregion
+ throw new InvalidOperationException("鎵樼洏涓虹┖");
}
- catch (Exception ex)
+ Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+ Dt_Formula dt_Formula = _formulaService.Repository.QueryFirst(x => x.ProductCode == dt_Boxing.ProductCode);
+ //鍐欏叆PLC
+ device.SetValue(W_PLCDBName.wrealXDirectionDistance1, dt_Formula.XDirectionDistance1);
+ device.SetValue(W_PLCDBName.wrealYDirectionHeight1, dt_Formula.YDirectionHeight1);
+ device.SetValue(W_PLCDBName.wrealXDirectionDistance2, dt_Formula.XDirectionDistance2);
+ device.SetValue(W_PLCDBName.wrealYDirectionHeight2, dt_Formula.YDirectionHeight2);
+ device.SetValue(W_PLCDBName.wrealXDirectionDistance3, dt_Formula.XDirectionDistance3);
+ device.SetValue(W_PLCDBName.wrealYDirectionHeight3, dt_Formula.YDirectionHeight3);
+
+ //妫�娴嬫壂鐮佸畬鎴�
+ device.SetValue(W_PLCDBName.wboolLocation3ScanDone, true);
+
+ //鎺ユ敹鏁版嵁
+ decimal Height1 = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight1);
+ decimal Height2 = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight2);
+ decimal Height3 = (decimal)device.GetValue<R_PLCDBName, float>(R_PLCDBName.rrealDetectHeight3);
+
+ Dt_ProcessInfo dt_ProcessInfo = _processInfoService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+ if (dt_ProcessInfo == null)
{
- WriteError(device.DeviceName, "妫�娴嬫壂鐮佹祦绋嬫墽琛屽紓甯�", ex);
+ throw new InvalidOperationException("鎴愬搧鏈帇瑁�");
}
+ dt_ProcessInfo.Height1 = Height1;
+ dt_ProcessInfo.Height2 = Height2;
+ dt_ProcessInfo.Height3 = Height3;
+ _processInfoService.Repository.UpdateData(dt_ProcessInfo);
+ }
+ catch (Exception ex)
+ {
+ WriteError(device.DeviceName, "妫�娴嬫壂鐮佹祦绋嬫墽琛屽紓甯�", ex);
}
}
else if (!Location3ScanStart && Location3ScanDone)
@@ -346,38 +261,38 @@
var Location4ScanDone = device.GetValue<W_PLCDBName, bool>(W_PLCDBName.wboolLocation4ScanDone);
if (Location4ScanStart && !Location4ScanDone)//鎺у埗鎵爜鏋壂鎻忔墭鐩樼爜锛屾牴鎹墭鐩樼爜鏌ヨ缁勭洏鏁版嵁锛屽垽鏂墭鐩樼粦瀹氭垚鍝佹槸鍚﹀凡缁戝畾鎵�鏈夋墍闇�闆朵欢
{
- SerialPortCommunicator portCommunicator21 = new SerialPortCommunicator("COM21", 9600, "涓嬬嚎鎵爜鏋�");
- bool IsConnected21 = false;
- SerialPortCommunicator portCommunicator22 = new SerialPortCommunicator("COM22", 9600, "涓嬬嚎鎵爜鏋�");
- bool IsConnected22 = false;
- if (!IsConnected21) IsConnected21 = portCommunicator21.Connect();
- if (!IsConnected22) IsConnected22 = portCommunicator22.Connect();
- byte[] dataToSend1 = Encoding.ASCII.GetBytes(command);//杞垚瀛楄妭鏁扮粍
- portCommunicator21.Write(dataToSend1);
- string receiveData = portCommunicator22.ToString(Encoding.UTF8);
- byte[] dataToSend2 = Encoding.ASCII.GetBytes("PL106");//杞垚瀛楄妭鏁扮粍
- portCommunicator22.Write(dataToSend2);
- //}
- string PalletCode = portCommunicator21.ToString(Encoding.UTF8);
+ var PalletCode = TcpClientExample.Start("192.168.2.123", 2001);
using (var uow = _unitOfWorkManage.CreateUnitOfWork())
{
try
{
- if (PalletCode.IsNotEmptyOrNull())
+ if (!PalletCode.IsNotEmptyOrNull())
{
- Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
- _boxingService.Repository.DeleteData(dt_Boxing);
- List<Dt_BoxingDetail> dt_BoxingDetails = _boxingDetailService.Repository.QueryData(x => x.BoxingId == dt_Boxing.Id);
- foreach (Dt_BoxingDetail dt_BoxingDetail in dt_BoxingDetails)
- {
- _boxingDetailService.Repository.DeleteDataById(dt_BoxingDetail.Id);
- }
- uow.Commit();
- //涓嬬嚎鎵爜瀹屾垚
- device.SetValue(W_PLCDBName.wboolLocation4ScanDone, true);
+ throw new InvalidOperationException("鎵樼洏涓虹┖");
}
- IsConnected21 = !portCommunicator21.Disconnect();
- IsConnected22 = !portCommunicator22.Disconnect();
+ Dt_ProcessInfo dt_ProcessInfo = _processInfoService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+ if (dt_ProcessInfo == null)
+ {
+ throw new InvalidOperationException("鎴愬搧鏈帇瑁呭拰妫�娴�");
+ }
+ Dt_Boxing dt_Boxing = _boxingService.Repository.QueryFirst(x => x.PalletCode == PalletCode);
+ _boxingService.Repository.DeleteData(dt_Boxing);
+ List<Dt_BoxingDetail> dt_BoxingDetails = _boxingDetailService.Repository.QueryData(x => x.BoxingId == dt_Boxing.Id);
+ _boxingDetailService.Repository.DeleteData(dt_BoxingDetails);
+
+ Dt_ProcessInfoDetail dt_ProcessInfoDetail = new Dt_ProcessInfoDetail()
+ {
+ PalletCode = PalletCode,
+ ProductCode = dt_ProcessInfo.ProductCode,
+ ProductName = dt_ProcessInfo.ProductName,
+ Creater = "admin",
+ CreateDate = DateTime.Now
+ };
+ _processDetailInfoService.Repository.AddData(dt_ProcessInfoDetail);
+ _processInfoService.DeleteData(dt_ProcessInfo);
+ uow.Commit();
+ //涓嬬嚎鎵爜瀹屾垚
+ device.SetValue(W_PLCDBName.wboolLocation4ScanDone, true);
}
catch (Exception ex)
{
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SocketClient.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SocketClient.cs"
new file mode 100644
index 0000000..f0e7c29
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SocketClient.cs"
@@ -0,0 +1,52 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_DTO.System;
+
+namespace WIDESEAWCS_Tasks
+{
+ public class TcpClientExample
+ {
+ public static string Start(string Ip, int Prot)
+ {
+ try
+ {
+ // 1. 鍒涘缓 Socket 瀵硅薄
+ Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ // 1.閰嶇疆瓒呮椂锛堟牳蹇冿細閬垮厤Receive鏃犻檺闃诲锛�
+ clientSocket.SendTimeout = 3000; // 杩炴帴瓒呮椂3绉�
+ clientSocket.ReceiveTimeout = 3000; // 杩炴帴瓒呮椂3绉�
+ // 2. 杩炴帴鏈嶅姟鍣紙IP 涓烘湇鍔″櫒鐨� IP锛岀鍙d笌鏈嶅姟鍣ㄤ竴鑷达級
+ IPAddress serverIp = IPAddress.Parse(Ip); // 鏈湴娴嬭瘯鐢� 127.0.0.1锛屽疄闄呮浛鎹负鏈嶅姟鍣� IP
+ IPEndPoint serverEndPoint = new IPEndPoint(serverIp, Prot);
+ clientSocket.Connect(serverEndPoint);
+ //Console.WriteLine("宸叉垚鍔熻繛鎺ュ埌鏈嶅姟鍣�");
+
+ // 灏嗗瓧绗︿覆杞崲涓哄瓧鑺傛暟缁勫苟鍙戦��
+ byte[] sendBuffer = Encoding.UTF8.GetBytes("start");
+ clientSocket.Send(sendBuffer);
+ // 鎺ユ敹鏈嶅姟鍣ㄥ洖澶�
+ byte[] recvBuffer = new byte[1024];
+ int recvLen = clientSocket.Receive(recvBuffer);
+ string recvMsg = Encoding.UTF8.GetString(recvBuffer, 0, recvLen);
+ //Console.WriteLine($"鏀跺埌鏈嶅姟鍣ㄥ洖澶嶏細{recvMsg}");
+
+ // 4. 鍏抽棴杩炴帴
+ clientSocket.Shutdown(SocketShutdown.Both);
+ clientSocket.Close();
+ //Console.WriteLine("宸叉柇寮�涓庢湇鍔″櫒鐨勮繛鎺�");
+
+ return recvMsg;
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e.Message);
+ return "";
+ }
+ }
+ }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
index 3f53268..ecedd2a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
@@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.9" />
+ <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.11" />
</ItemGroup>
<ItemGroup>
--
Gitblit v1.9.3