大佬,这边简单修改了下;可以参考下哦~
- console.log('第一行');
- try {
- console.log('第二行');
- const useCrews = {};
- Forguncy.CommandHelper.getVariableValue("使用班组")?.map(item => {
- useCrews[item['title']] = item['value'];
- });
- console.log('第三行');
- const resourceStatusMap = {};
- Forguncy.CommandHelper.getVariableValue("状态")?.map(item => {
- resourceStatusMap[item['title']] = item['value'];
- });
- console.log('第四行');
- const personMap = {};
- Forguncy.CommandHelper.getVariableValue("人员信息")?.map(item => {
- personMap[item['名称']] = item['工号'];
- });
- console.log('第五行');
- const deptMap = {};
- Forguncy.CommandHelper.getVariableValue("部门")?.map(item => {
- deptMap[item['Name']] = item['ID'];
- });
- console.log('第六行');
- const listview = Forguncy.Page.getListView("导入暂存表");
- const count = listview.getRowCount();
- if (count === 0) {
- Forguncy.Page.getCell("报错状态").setValue(false);
- Forguncy.Page.getCell("报错").setValue(`导入excel数据为空`);
- }
- console.log('第七行');
- function isDateTimeString(str) {
- if (!isNaN(Date.parse(str))) return true;
- const chineseDateRegex = /^(\d{4})年(0?[1-9]|1[0-2])月(0?[1-9]|[12][0-9]|3[01])日$/;
- if (chineseDateRegex.test(str)) {
- const [, year, month, day] = str.match(chineseDateRegex);
- const date = new Date(year, month - 1, day);
- return date.getFullYear() == year &&
- date.getMonth() + 1 == month &&
- date.getDate() == day;
- }
- return /^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(str);
- }
- const infos = listview.getMergedColumnInfos();
- const keyArrarys = [];
- for (let i = 0; i < count; i++) {
- let currentStatus = true;
- let errorMessage = "";
- let 名称 = listview.getValue(i, "名称") ?? '';
- let 数量 = listview.getValue(i, "数量");
- let 规格型号 = listview.getValue(i, "规格型号") ?? '';
- let 物料编码 = listview.getValue(i, "物料编码") ?? '';
- let 厂家批号 = listview.getValue(i, "厂家批号") ?? '';
- let supplier = listview.getValue(i, "供应商");
- let 唯一标识 = listview.getValue(i, "唯一标识");
- let 购置时间 = listview.getValue(i, "购置时间");
- let 状态 = listview.getValue(i, "状态");
- let 当前位置 = listview.getValue(i, "当前位置");
- let 备注 = listview.getValue(i, "备注");
- let 使用班组 = listview.getValue(i, "使用班组");
- let 班组负责人 = listview.getValue(i, "班组负责人");
- let 工艺负责人 = listview.getValue(i, "工艺负责人");
- let 使用人 = listview.getValue(i, "使用人");
- let 使用部门 = listview.getValue(i, "使用部门");
- let 是否专用资源 = listview.getValue(i, "是否专用资源");
- let 专用机型 = listview.getValue(i, "专用机型");
- let 是否站位串用资源 = listview.getValue(i, "是否站位串用资源");
- let 是否计量 = listview.getValue(i, "是否计量");
- let key = 名称 + 规格型号 + 厂家批号 + 物料编码;
- if (keyArrarys.includes(key)) {
- currentStatus = false;
- errorMessage += `名称:${名称},规格型号:${规格型号},厂家批号:${厂家批号},物料编码:${物料编码}重复`;
- } else {
- keyArrarys.push(key);
- }
- if (!名称 || !数量 || !规格型号 || !厂家批号) {
- currentStatus = false;
- errorMessage += `名称,数量,规格型号,供应商必填,`;
- }
- if (状态 && !resourceStatusMap[状态]) {
- currentStatus = false;
- errorMessage += `状态在数据字典中不存在,`;
- } else {
- listview.setValue(i, "状态", resourceStatusMap[状态]);
- }
- if (数量 && isNaN(parseFloat(数量))) {
- currentStatus = false;
- errorMessage += `数量不是数字,`;
- }
- if (使用班组 && !useCrews[使用班组]) {
- currentStatus = false;
- errorMessage += `使用班组在数据字典中不存在,`;
- } else {
- listview.setValue(i, "使用班组", useCrews[使用班组]);
- }
- if (是否专用资源 && !['是', '否'].includes(是否专用资源)) {
- currentStatus = false;
- errorMessage += `导入的是否专业资源文本不是是或否,`;
- } else {
- listview.setValue(i, "是否专用资源", 是否专用资源 === '是' ? 1 : 0);
- }
- if (是否站位串用资源 && !['是', '否'].includes(是否站位串用资源)) {
- currentStatus = false;
- errorMessage += `导入的是否站位串用资源文本不是是或否,`;
- } else {
- listview.setValue(i, "是否站位串用资源", 是否站位串用资源 === '是' ? 1 : 0);
- }
- if (是否计量 && !['是', '否'].includes(是否计量)) {
- currentStatus = false;
- errorMessage += `导入的是是否计量文本不是是或否,`;
- } else {
- listview.setValue(i, "是否计量", 是否计量 === '是' ? 1 : 0);
- }
- if (购置时间 && !isDateTimeString(购置时间)) {
- currentStatus = false;
- errorMessage += `时间类型格式不正确,`;
- }
- if (班组负责人 && !personMap[班组负责人]) {
- currentStatus = false;
- errorMessage += `班组负责人不存在,`;
- } else {
- listview.setValue(i, "班组负责人", personMap[班组负责人]);
- }
- if (工艺负责人 && !personMap[工艺负责人]) {
- currentStatus = false;
- errorMessage += `工艺负责人不存在,`;
- } else {
- listview.setValue(i, "工艺负责人", personMap[工艺负责人]);
- }
- if (使用人 && !personMap[使用人]) {
- currentStatus = false;
- errorMessage += `使用人不存在,`;
- } else {
- listview.setValue(i, "使用人", personMap[使用人]);
- }
- if (使用部门 && !deptMap[使用部门]) {
- currentStatus = false;
- errorMessage += `使用部门不存在,`;
- } else {
- listview.setValue(i, "使用部门", deptMap[使用部门]);
- }
- if (!currentStatus) {
- const oldError = Forguncy.Page.getCell('报错').getValue();
- Forguncy.Page.getCell('报错').setValue((oldError ? oldError + '\n' : '') + `第${i + 1}行${errorMessage};`);
- Forguncy.Page.getCell("报错状态").setValue(false);
- }
- for (let j = 0; j < infos?.length; j++) {
- let columnName = infos[j]['ColumnName'];
- let value = listview.getValue(i, columnName);
- if (columnName && typeof value === 'string') {
- listview.setValue(i, columnName, value.trim());
- }
- if (value === null) {
- listview.setValue(i, columnName, '');
- }
- }
- }
- } catch (error) {
- console.log(error, 'xxx');
- }
- console.log('第八行');
复制代码
|