Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
| | |
| | | selectDetailProcessCard:"流程卡明细查询" |
| | | |
| | | }, |
| | | buildingNumber:'楼号', |
| | | longSide:'长边', |
| | | shortSide:'短边', |
| | | printCompound:'需要同架的层', |
| | | flashback:'倒序', |
| | | processId:'رقم بطاقة العملية', |
| | |
| | | passAudit:'تمت الموافقة', |
| | | patchCondition:'补片状态', |
| | | changeFailed:'修改失败,请检查是否为报工转移订单', |
| | | hiddenVal:'隐藏', |
| | | |
| | | |
| | | futureTime:'报工时间不能大于当前时间', |
| | | longTime:'报工时间与当前时间超过15天', |
| | | selectResponsibleTeam:'الرجاء اختيار الفريق المسؤول', |
| | | selectWorkReportingTeam:'الرجاء اختيار الفريق المسؤول', |
| | | successfulModificationOfWorkApplication:'تم تعديل التقرير بنجاح', |
| | |
| | | printFlowCard:"Process card printing", |
| | | selectDetailProcessCard:"Process card details query" |
| | | }, |
| | | buildingNumber:'楼号', |
| | | longSide:'长边', |
| | | shortSide:'短边', |
| | | printCompound:'需要同架的层', |
| | | flashback:'倒序', |
| | | processId:'Process Card Number', |
| | |
| | | passAudit:'Pass The Audit', |
| | | patchCondition:'Patch Condition', |
| | | changeFailed:'修改失败,请检查是否为报工转移订单', |
| | | hiddenVal:'隐藏', |
| | | |
| | | futureTime:'报工时间不能大于当前时间', |
| | | longTime:'报工时间与当前时间超过15天', |
| | | selectResponsibleTeam:'Please select a responsible team', |
| | | selectWorkReportingTeam:'Please select a responsible team', |
| | | successfulModificationOfWorkApplication:'Report modification succeeded', |
| | |
| | | selectDetailProcessCard:'프로세스 카드 상세 조회' |
| | | |
| | | }, |
| | | buildingNumber:'楼号', |
| | | longSide:'长边', |
| | | shortSide:'短边', |
| | | printCompound:'需要同架的层', |
| | | flashback:'倒序', |
| | | processId:'프로세스 카드 번호', |
| | |
| | | passAudit:'승인 완료', |
| | | patchCondition:'패치 상태', |
| | | changeFailed:'수정 실패, 실적 보고 이관 주문 여부 확인해 주세요', |
| | | hiddenVal:'隐藏', |
| | | |
| | | |
| | | futureTime:'报工时间不能大于当前时间', |
| | | longTime:'报工时间与当前时间超过15天', |
| | | selectResponsibleTeam:'담당 팀을 선택해 주세요.', |
| | | selectWorkReportingTeam:'담당 팀을 선택해 주세요.', |
| | | successfulModificationOfWorkApplication:'작업 보고 수정 성공', |
| | |
| | | printFlowCard:"流程卡打印", |
| | | selectDetailProcessCard:"流程卡明细查询" |
| | | }, |
| | | buildingNumber:'楼号', |
| | | longSide:'长边', |
| | | shortSide:'短边', |
| | | printCompound:'需要同架的层', |
| | | flashback:'倒序', |
| | | processId:'Номер процесса', |
| | |
| | | passAudit:'Проверка прошла', |
| | | patchCondition:'补片状态', |
| | | changeFailed:'修改失败,请检查是否为报工转移订单', |
| | | hiddenVal:'隐藏', |
| | | |
| | | |
| | | futureTime:'报工时间不能大于当前时间', |
| | | longTime:'报工时间与当前时间超过15天', |
| | | selectResponsibleTeam:'Пожалуйста, выберите группу ответственности.', |
| | | selectWorkReportingTeam:'Пожалуйста, выберите группу ответственности.', |
| | | successfulModificationOfWorkApplication:'Изменение обратной связи успешно', |
| | |
| | | selectDetailProcessCard:"流程卡明细查询" |
| | | |
| | | }, |
| | | buildingNumber:'楼号', |
| | | longSide:'长边', |
| | | shortSide:'短边', |
| | | printCompound:'需要同架的层', |
| | |
| | | changeFailed:'修改失败,请检查是否为报工转移订单', |
| | | hiddenVal:'隐藏', |
| | | |
| | | |
| | | futureTime:'报工时间不能大于当前时间', |
| | | longTime:'报工时间与当前时间超过15天', |
| | | selectResponsibleTeam:'请选择责任班组', |
| | | selectWorkReportingTeam:'请选择责任班组', |
| | | successfulModificationOfWorkApplication:'报工修改成功', |
| | |
| | | , sortable: true |
| | | }, |
| | | { |
| | | field: 'building_number', |
| | | title: t('processCard.buildingNumber'), |
| | | filters: [{data: ''}], |
| | | slots: {filter: 'num1_filter'}, |
| | | filterMethod: filterChanged, width: 120 |
| | | , sortable: true |
| | | }, |
| | | { |
| | | field: 'width', |
| | | title: t('order.width'), |
| | | filters: [{data: ''}], |
| | |
| | | return |
| | | } |
| | | |
| | | const reportingWorkTime = titleUploadData.value.reportingWorkTime |
| | | const currentTime = new Date() |
| | | const targetTime = new Date(reportingWorkTime) |
| | | //未来时间 |
| | | if (targetTime > currentTime) { |
| | | ElMessage.error(t('reportingWorks.futureTime')) |
| | | return |
| | | } |
| | | // 两个时间的毫秒差 |
| | | const diffMs = currentTime - targetTime |
| | | // 转换为天数 |
| | | const diffDays = diffMs / (1000 * 60 * 60 * 24) |
| | | if (diffDays > 15) { |
| | | ElMessage.error(t('reportingWorks.longTime')) |
| | | return |
| | | } |
| | | |
| | | const seenIds = {} |
| | | const uniqueByOrderNum = xGrid.value.getTableData().fullData.filter(item => { |
| | | // 检查item的id是否已经在seenIds中 |
| | |
| | | //判断早晚班 |
| | | titleUploadData.value.classes=t('reportingWorks.early') |
| | | titleUploadData.value.reportingWorkTime = formatCurrentTime() |
| | | |
| | | //处理编号列 |
| | | //定义存放编号数组 |
| | | const s01Values = []; |
| | | for (let i = 0; i < res.data.Detail.length; i++) { |
| | | const s01Values = []; |
| | | // 遍历 detailList 数组,提取 S01 值到 s01Values 数组 |
| | | if (res.data.Detail[i].other_columns!=null|| res.data.Detail[i].other_columns!=undefined){ |
| | | res.data.Detail.forEach(element => { |
| | | const otherColumnsObject = JSON.parse(element.other_columns); |
| | | const s01Value = otherColumnsObject.S01; |
| | | s01Values.push(s01Value || ''); // 如果 S01 值为空,添加空字符串或者其他默认值 |
| | | }); |
| | | |
| | | // 将 s01Values 中的值赋给每个订单详情对象的 s01Value 属性 |
| | | res.data.Detail.forEach((detail, index) => { |
| | | detail.s01Value = index < s01Values.length ? s01Values[index] : ''; // 赋值给 s01Value 属性 |
| | | }); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | //绑定下方表格 |
| | |
| | | private Integer importNumber; |
| | | //订单转移导出数量 |
| | | private Integer exportNumber; |
| | | //连线状态(0不连线1连线,默认1,添加时间 |
| | | private Integer onlineStatus; |
| | | //建立时间 |
| | | private LocalDate createTime; |
| | | //修改时间 |
| | |
| | | private String reviewer; |
| | | //审核状态 |
| | | private Integer reviewStatus; |
| | | //架号 |
| | | private String rack; |
| | | //创建时间 |
| | | private LocalDate createTime; |
| | | //修改时间 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 在保存之前处理 glassPoint 数据 |
| | | for (Map<String, Object> detail : objectMap2) { |
| | | if (detail.containsKey("glassPoint")) { |
| | | Object glassPointObj = detail.get("glassPoint"); |
| | | if (glassPointObj != null) { |
| | | try { |
| | | // 如果 glassPointObj 已经是字符串,则不需要转换 |
| | | if (!(glassPointObj instanceof String)) { |
| | | // 将对象转换为 JSON 字符串 |
| | | String glassPointStr = mapper.writeValueAsString(glassPointObj); |
| | | detail.put("glassPoint", glassPointStr); |
| | | } |
| | | } catch (Exception e) { |
| | | // 如果转换失败,记录错误并移除该字段 |
| | | System.err.println("转换 glassPoint 失败: " + e.getMessage()); |
| | | detail.remove("glassPoint"); |
| | | } |
| | | } else { |
| | | // 如果 glassPointObj 为 null,移除该字段 |
| | | detail.remove("glassPoint"); |
| | | } |
| | | } |
| | | } |
| | | glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId); |
| | | } |
| | | glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1); |
| | |
| | | if (offsets != null) { |
| | | allDetails.addAll(offsets); |
| | | } |
| | | |
| | | // 解析 glassPoint 字符串 |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | for (Map<String, Object> detail : allDetails) { |
| | | if (detail.containsKey("glassPoint")) { |
| | | Object glassPointObj = detail.get("glassPoint"); |
| | | if (glassPointObj instanceof String) { |
| | | String glassPointStr = (String) glassPointObj; |
| | | if (glassPointStr != null && !glassPointStr.isEmpty() && !glassPointStr.equals("null")) { |
| | | try { |
| | | // 解析 JSON 字符串为对象 |
| | | Object parsedGlassPoint = mapper.readValue(glassPointStr, Object.class); |
| | | detail.put("glassPoint", parsedGlassPoint); |
| | | } catch (Exception e) { |
| | | System.err.println("解析 glassPoint 失败: " + e.getMessage()); |
| | | // 解析失败时保留原字符串或设置默认值 |
| | | detail.put("glassPoint", new ArrayList<>()); |
| | | } |
| | | } else { |
| | | // 空字符串或 null 时设置默认值 |
| | | detail.put("glassPoint", new ArrayList<>()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 按照stockId将明细分组并添加到对应的布局中 |
| | | if (layouts != null && !layouts.isEmpty()) { |
| | | for (Map<String, Object> layout : layouts) { |
| | |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber, |
| | | od.order_number, |
| | | od.width, |
| | | od.height |
| | | od.height, |
| | | od.building_number |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and |
| | |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04, |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05 |
| | | JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05, |
| | | od.building_number |
| | | from flow_card as fc |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and |
| | |
| | | patch_state, |
| | | mark_icon, |
| | | isRotate, |
| | | glass_point, |
| | | rack_no |
| | | ) VALUES ( |
| | | #{projectId}, |
| | |
| | | #{glass.patchState}, |
| | | #{glass.markIcon}, |
| | | #{glass.isRotate}, |
| | | #{glass.glassPoint}, |
| | | #{glass.rackNo} |
| | | ); |
| | | </foreach> |
| | |
| | | y_axis AS y, |
| | | mark_icon AS markIcon, |
| | | isRotate, |
| | | glass_point AS glassPoint, |
| | | rack_no As rackNo |
| | | FROM |
| | | pp.optimize_detail |
| | |
| | | odpd.reporting_work_num as completed, |
| | | odpd.broken_num as onceBroken, |
| | | if(fc.quantity -odpd.reporting_work_num = 0 ,true,false) as saveFlag, -- 判断是否已经完成,已经完成不序号和同序号数量相同才能提交 |
| | | od.other_columns |
| | | if(ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'')!='', |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),''), |
| | | od.building_number) as s01Value |
| | | FROM |
| | | sd.order_detail AS od |
| | | LEFT JOIN sd.order_glass_detail AS ogd |
| | |
| | | ogd.`group`, |
| | | if(fc.quantity -odpd.reporting_work_num = 0 ,true,false) as saveFlag, -- 判断是否已经完成,已经完成不序号和同序号数量相同才能提交 |
| | | od.other_columns, |
| | | ogd.id as 'glassId',IFNULL(rws.reviewed_state,0) as reviewed_state |
| | | ogd.id as 'glassId',IFNULL(rws.reviewed_state,0) as reviewed_state, |
| | | if(ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'')!='', |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),''), |
| | | od.building_number) as s01Value |
| | | |
| | | FROM |
| | | sd.order_detail AS od |
| | |
| | | ifnull(f.completed_quantity,0) as thisQuantitySum ,-- 本工序完工和 |
| | | if(c.quantity-f.completed_quantity = 0 ,true,false) as saveFlag, |
| | | e.other_columns, |
| | | if(ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'')!='', |
| | | ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),''), |
| | | od.building_number) as s01Value |
| | | IF(count(pl.id)>0,'已补片','') as patchStatusOther, |
| | | |
| | | <if test="nextProcess != null and nextProcess != ''"> -- 非最后一道工序 |
| | |
| | | |
| | | SELECT * FROM sd.basic_data |
| | | WHERE basic_type='product' AND basic_category='process' AND basic_name='钢化' |
| | | |
| | | UNION |
| | | |
| | | SELECT * FROM sd.basic_data |
| | | WHERE basic_type='product' AND basic_category='process' AND basic_name='热弯' |
| | | ) AS combined_results; |
| | | </select> |
| | | |