| | |
| | | BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | LocalDateTime plusDays = now.plusDays(1); |
| | | LocalDateTime startTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.getDayOfMonth(),8,0,0); |
| | | LocalDateTime endTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.plusDays(1).getDayOfMonth(),23,0,0); |
| | | LocalDateTime endTime = LocalDateTime.of(now.getYear(),plusDays.getMonthValue(),plusDays.getDayOfMonth(),23,0,0); |
| | | String s1 = startTime.format(formatter); |
| | | String s2 = endTime.format(formatter); |
| | | bsOrderScheduling.setStartTime(s1); |
| | |
| | | /** 总成序列号 */ |
| | | @Excel(name = "箱体编码") |
| | | @ExcelProperty(value = "箱体编码", index = 0) |
| | | private String sfcCode; |
| | | private String sfcCode; |
| | | |
| | | /** 产品编号 */ |
| | | @Excel(name = "产品编号") |
| | |
| | | rmRepairRecord.setBoxCode(result.getSfcCode()); |
| | | rmRepairRecord.setProcessesCode(result.getLocationCode()); |
| | | rmRepairRecord.setOriginalResult(result.getOutRsSign()); |
| | | rmRepairRecord.setCreateTime(new Date()); |
| | | rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord); |
| | | daPassingStationCollectionMapper.deleteDaPassingStationCollectionById(result.getId()); |
| | | } |
| | |
| | | } |
| | | String balanceSplit = ""; |
| | | String boxCodeSplit = ""; |
| | | ArrayList<String> xtList = ListUtil.toList(boxCode.split(";")); |
| | | // ArrayList<String> xtList = ListUtil.toList(boxCode.split(";")); |
| | | ArrayList<String> xtList = ListUtil.toList(boxCode.split(",")); |
| | | ArrayList<String> czList = ListUtil.toList(balanceCode.split(";")); |
| | | if (CollUtil.isNotEmpty(xtList) && xtList.size()>1 && |
| | | CollUtil.isNotEmpty(czList) && czList.size()>3){ |
| | |
| | | daTileMatchRules.setScanObject2("曲轴"); |
| | | List<DaTileMatchRules> daTileMatchRulesList = this.selectDaTileMatchRulesList(daTileMatchRules); |
| | | if (StrUtil.isNotBlank(XT) && StrUtil.isNotBlank(CZ)){ |
| | | ArrayList<String> xtList = ListUtil.toList(XT.split(";")); |
| | | // ArrayList<String> xtList = ListUtil.toList(XT.split(";")); |
| | | ArrayList<String> xtList = ListUtil.toList(XT.split(",")); |
| | | ArrayList<String> czList = new ArrayList<>(); |
| | | String s2 = ""; |
| | | if (CZ.contains(";")){ |
| | |
| | | import java.util.List; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.jcdm.common.exception.ServiceException; |
| | | import com.jcdm.main.bs.modelNumber.domain.BsModelNumber; |
| | | import com.jcdm.main.bs.modelNumber.service.IBsModelNumberService; |
| | | import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; |
| | |
| | | String dateTimeRule = omProductionOrdeInfo.getDateTimeRule(); |
| | | |
| | | Long[] id=omProductionOrdeInfo.getIdNums(); |
| | | OmProductionOrdeInfo ProductionOrde; |
| | | OmProductionOrdeInfo ProductionOrde = new OmProductionOrdeInfo(); |
| | | for (int a=0;a<id.length;a++){ |
| | | ProductionOrde=omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id[a]); |
| | | Integer planQty = Math.toIntExact(ProductionOrde.getPlanQty());//计划数量 |
| | | String engineNo = ""; |
| | | if(planQty>0) { |
| | | for (int i = 0; i < planQty; i++) { |
| | | engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0"); |
| | | String engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0"); |
| | | BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); |
| | | bsOrderScheduling.setOrderNo(ProductionOrde.getWorkOrderNo()); |
| | | bsOrderScheduling.setWorkingHours(String.valueOf(i+1)); |
| | | bsOrderScheduling.setModel(ProductionOrde.getTypeZ()); |
| | | bsOrderScheduling.setEngineNo(engineNo); |
| | | bsOrderScheduling.setProductionStatus("1"); |
| | |
| | | @GetMapping("/getProductionNotice") |
| | | public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo) |
| | | { |
| | | String factory = omProductionOrdeInfo.getWorkshopCode(); |
| | | String productionNotice = omProductionOrdeInfo.getProductionNotice(); |
| | | if (StrUtil.isBlank(productionNotice)){ |
| | | throw new ServiceException("请输入生产通知单号"); |
| | | } |
| | | if (StrUtil.isBlank(factory)){ |
| | | throw new ServiceException("请选择工厂编号"); |
| | | } |
| | | List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo); |
| | | if(omProductionOrdeInfos.size() == 0){ |
| | | try { |
| | | ReceivingServices.insertWebserviceData(productionNotice); |
| | | ReceivingServices.insertWebserviceData(factory,productionNotice); |
| | | } catch (Exception e) { |
| | | return error("接收失败!请检查通知单号"); |
| | | } |
| | |
| | | List<BsOrderScheduling> queryOrderList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderSchedulingQuery); |
| | | if (CollUtil.isNotEmpty(queryOrderList)){ |
| | | a = "1"; |
| | | //如果是老车型,判断是否重复扫码 |
| | | if (OPCElement.OP050_CODE_CHECK.equals(Node)){ |
| | | String type = productNewFlag(SNCode); |
| | | if (!"280".equals(type) && !"380".equals(type)){ |
| | | DaPassingStationCollection passCheck = new DaPassingStationCollection(); |
| | | passCheck.setSfcCode(SNCode); |
| | | passCheck.setLocationCode("OP050"); |
| | | List<DaPassingStationCollection> passCheckList = passingStationCollectionServiceImpl.selectDaPassingStationCollectionList(passCheck); |
| | | if (CollUtil.isNotEmpty(passCheckList)){ |
| | | //是否返修 |
| | | a = "5"; |
| | | // RmRepairRecord repairRecordCheck = new RmRepairRecord(); |
| | | // repairRecordCheck.setBoxCode(SNCode); |
| | | // repairRecordCheck.setProcessesCode("OP050"); |
| | | // List<RmRepairRecord> repairCheckList = rmRepairRecordService.selectRmRepairRecordList(repairRecordCheck); |
| | | // if (CollUtil.isEmpty(repairCheckList)){ |
| | | // |
| | | // } |
| | | } |
| | | } |
| | | } |
| | | }else { |
| | | a = "4"; |
| | | } |
| | |
| | | package com.jcdm.main.webservice.service; |
| | | |
| | | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.JsonNode; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.JsonObject; |
| | | import com.jcdm.common.exception.ServiceException; |
| | | import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService; |
| | | import com.jcdm.main.da.opcuaconfig.init.BeanUtils; |
| | | import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; |
| | |
| | | // private static IOmProductionOrdeInfoService omProductionOrdeInfoService; |
| | | private static IOmProductionOrdeInfoService omProductionOrdeInfoService = BeanUtils.getBean(IOmProductionOrdeInfoService.class); |
| | | |
| | | public static final String ProductionPlanInformationUrl = "http://podqapp.cfmoto.com.cn:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_MES_005_SYN_OUT&interfaceNamespace=http://cfmoto.com/xi/MES"; |
| | | public static final String ProductionPlanInformationUrl = "http://popappdb.cfmoto.com.cn:50100/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_MES_005_SYN_OUT&interfaceNamespace=http%3A%2F%2Fcfmoto.com%2Fxi%2FMES"; |
| | | // public static final String ProductionPlanInformationUrl = "http://podqapp.cfmoto.com.cn:50200/XISOAPAdapter/MessageServlet?senderParty=&senderService=BC_MES&receiverParty=&receiverService=&interface=SI_ZPP_CF_MES_005_SYN_OUT&interfaceNamespace=http://cfmoto.com/xi/MES"; |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | // getInterfaceInformationXml(ProductionPlanInformationUrl,getProductionPlanInformationXml("A0055577")); |
| | |
| | | // } |
| | | } |
| | | |
| | | public static void insertWebserviceData(String str) { |
| | | String result = getInterfaceInformationXml(ProductionPlanInformationUrl, getProductionPlanInformationXml(str)); |
| | | public static void insertWebserviceData(String factory,String str) { |
| | | String result = getInterfaceInformationXml(ProductionPlanInformationUrl, getProductionPlanInformationXml(factory,str)); |
| | | String jsonStr = xmlToJSON2(result); |
| | | Gson gson = new Gson(); |
| | | // 将json字符串转换成对象 |
| | | ItemList itemList = gson.fromJson(jsonStr, ItemList.class); |
| | | for (Item item : itemList.getItem()) { |
| | | OmProductionOrdeInfo ordeInfo = new OmProductionOrdeInfo(); |
| | | ordeInfo.setProductCode(item.getPLNBEZ()); |
| | | ordeInfo.setProductName(item.getMAKTX()); |
| | | ordeInfo.setLineCode(item.getFEVOR()); |
| | | ordeInfo.setWorkOrderNo(item.getAUFNR()); |
| | | ordeInfo.setPlanQty((long) Double.parseDouble(item.getPSMNG())); |
| | | ordeInfo.setProductionNotice(item.getZSCTZD()); |
| | | ordeInfo.setTypeZ(item.getFERTH()); |
| | | ordeInfo.setCreateUser(item.getZUSER()); |
| | | //ordeInfo.setCreateTime(item.getZDATE()); |
| | | ordeInfo.setDemandDate(item.getGSTRP());//开工日期 |
| | | omProductionOrdeInfoService.insertOmProductionOrdeInfo(ordeInfo); |
| | | if (StrUtil.isNotBlank(jsonStr)){ |
| | | if (!jsonStr.contains("[") && !jsonStr.contains("]")){ |
| | | StringBuilder stringBuilder = new StringBuilder(jsonStr); |
| | | stringBuilder.insert(8,"["); |
| | | stringBuilder.insert(jsonStr.length(),"]"); |
| | | jsonStr = stringBuilder.toString(); |
| | | } |
| | | Gson gson = new Gson(); |
| | | // 将json字符串转换成对象 |
| | | ItemList itemList = gson.fromJson(jsonStr, ItemList.class); |
| | | for (Item item : itemList.getItem()) { |
| | | OmProductionOrdeInfo ordeInfo = new OmProductionOrdeInfo(); |
| | | ordeInfo.setWorkshopCode(item.getWERKS()); |
| | | ordeInfo.setProductCode(item.getPLNBEZ()); |
| | | ordeInfo.setProductName(item.getMAKTX()); |
| | | ordeInfo.setLineCode(item.getFEVOR()); |
| | | ordeInfo.setWorkOrderNo(item.getAUFNR()); |
| | | ordeInfo.setPlanQty((long) Double.parseDouble(item.getPSMNG())); |
| | | ordeInfo.setProductionNotice(item.getZSCTZD()); |
| | | ordeInfo.setTypeZ(item.getFERTH()); |
| | | ordeInfo.setCreateUser(item.getZUSER()); |
| | | //ordeInfo.setCreateTime(item.getZDATE()); |
| | | ordeInfo.setDemandDate(item.getGSTRP());//开工日期 |
| | | omProductionOrdeInfoService.insertOmProductionOrdeInfo(ordeInfo); |
| | | } |
| | | } else { |
| | | throw new ServiceException("未接收到数据,请检查"); |
| | | } |
| | | |
| | | } |
| | | |
| | | public static String getInterfaceInformationXml(String url,String xml){ |
| | |
| | | return "接口调用错误"; |
| | | } |
| | | |
| | | public static String getProductionPlanInformationXml(String str){ |
| | | public static String getProductionPlanInformationXml(String factory,String planNo){ |
| | | String content = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:sap-com:document:sap:rfc:functions\">\n" + |
| | | " <soapenv:Header/>\n" + |
| | | " <soapenv:Body>\n" + |
| | | " <urn:ZPP_CF_MES_005>\n" + |
| | | " <!--Optional:-->\n" + |
| | | " <IV_WERKS>1000</IV_WERKS>\n" + |
| | | " <IV_WERKS>"+factory+"</IV_WERKS>\n" + |
| | | " <!--Optional:-->\n" + |
| | | " <IV_ZSCTZD>"+str+"</IV_ZSCTZD>\n" + |
| | | " <IV_ZSCTZD>"+planNo+"</IV_ZSCTZD>\n" + |
| | | " </urn:ZPP_CF_MES_005>\n" + |
| | | " </soapenv:Body>\n" + |
| | | "</soapenv:Envelope>"; |
| | |
| | | */ |
| | | public static String xmlToJSON2(String xmlStr){ |
| | | JSONObject jsonObject1 = cn.hutool.json.XML.toJSONObject(xmlStr, true); |
| | | |
| | | String data = new String(); |
| | | Gson gson = new Gson(); |
| | | JsonObject jsonObject2 = gson.fromJson(jsonObject1.toString(), JsonObject.class); |
| | | JsonObject etData = jsonObject2 |
| | | JsonObject result = jsonObject2 |
| | | .getAsJsonObject("SOAP:Envelope") |
| | | .getAsJsonObject("SOAP:Body") |
| | | .getAsJsonObject("n0:ZPP_CF_MES_005.Response") |
| | | .getAsJsonObject("ET_DATA"); |
| | | return etData.toString(); |
| | | .getAsJsonObject("n0:ZPP_CF_MES_005.Response"); |
| | | if (ObjectUtil.isNotNull(result)){ |
| | | String string = result.get("EV_MESSAGE").toString(); |
| | | if (string.contains("查询成功")){ |
| | | JsonObject etData = jsonObject2 |
| | | .getAsJsonObject("SOAP:Envelope") |
| | | .getAsJsonObject("SOAP:Body") |
| | | .getAsJsonObject("n0:ZPP_CF_MES_005.Response") |
| | | .getAsJsonObject("ET_DATA"); |
| | | data = etData.toString(); |
| | | } |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | /** |
| | | * 方式--贰 |
| | |
| | | <if test="productionLine != null and productionLine != ''"> and production_line = #{productionLine}</if> |
| | | <if test="locationCode != null and locationCode != ''"> and location_code = #{locationCode}</if> |
| | | <if test="equipmentNo != null and equipmentNo != ''"> and equipment_no = #{equipmentNo}</if> |
| | | <if test="inboundTime != null "> and inbound_time = #{inboundTime}</if> |
| | | <if test="outboundTime != null "> and outbound_time = #{outboundTime}</if> |
| | | <if test="inboundTime != null "> and CAST(inbound_time as DATE) = #{inboundTime}</if> |
| | | <if test="outboundTime != null "> and CAST(outbound_time as DATE) = #{outboundTime}</if> |
| | | <if test="outRsSign != null "> and out_rs_sign = #{outRsSign}</if> |
| | | <if test="outRsSign != null "> and out_rs_sign = #{outRsSign}</if> |
| | | <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> and outbound_time between #{startTime} and #{endTime}</if> |
| | |
| | | pageSize: 10, |
| | | materialCode: undefined, |
| | | materialName: undefined, |
| | | itemTypeId: 0, |
| | | typeL: 1, |
| | | itemTypeId: null, |
| | | typeL: null, |
| | | }, |
| | | // 列信息 |
| | | columns: [ |
| | |
| | | }, |
| | | // 单选选中数据 |
| | | handleRowChange(row) { |
| | | debugger; |
| | | if(row){ |
| | | this.selectedRows = row; |
| | | } |
| | |
| | | // 取箱体码第三段为配瓦值 |
| | | axisValueextracted() { |
| | | console.log("33") |
| | | if (this.from.scanObject1.indexOf(";") !== -1) { |
| | | const parts1 = this.from.scanObject1.split(";"); |
| | | // if (this.from.scanObject1.indexOf(";") !== -1) { |
| | | if (this.from.scanObject1.indexOf(",") !== -1) { |
| | | // const parts1 = this.from.scanObject1.split(";"); |
| | | const parts1 = this.from.scanObject1.split(","); |
| | | if (parts1.length >= 2) { |
| | | console.log("44", parts1) |
| | | //const axisValueextracted = parts1[2].substring(3,4); |
| | |
| | | }, |
| | | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.clear(); |
| | | if(this.from.scanObject1 !== null && this.from.scanObject2 !== null |
| | | && this.from.axisName !== null && this.from.axisName !== "" |
| | | && this.from.neckName !== null && this.from.neckName !== "" |
| | | && this.from.tileName !== null && this.from.tileName !== "" |
| | | && this.from.productSeries !== null && this.from.productSeries !== "") |
| | | { |
| | | this.axisValueextracted(); |
| | | this.neckValueextracted(); |
| | | if(this.queryParams.axisValue !== null && this.queryParams.neckValue !== null){ |
| | | this.insetFromToQueryParams(); |
| | | this.getList(); |
| | | } |
| | | else{ |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h('p',null, [ |
| | | h('span', null, '警告 '), |
| | | h('i', { style: 'color: black' }, '箱体码或曲轴码输入有误'), |
| | | h()]), |
| | | type: 'error', |
| | | center: true, |
| | | offset:300 |
| | | }); |
| | | } |
| | | } |
| | | else{ |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h('p',null, [ |
| | | h('span', null, '警告 '), |
| | | h('i', { style: 'color: black' }, '请填写所有搜索条件'), |
| | | h()]), |
| | | type: 'error', |
| | | center: true, |
| | | offset:300 |
| | | }); |
| | | } |
| | | }, |
| | | // handleQuery() { |
| | | // this.clear(); |
| | | // if(this.from.scanObject1 !== null && this.from.scanObject2 !== null |
| | | // && this.from.axisName !== null && this.from.axisName !== "" |
| | | // && this.from.neckName !== null && this.from.neckName !== "" |
| | | // && this.from.tileName !== null && this.from.tileName !== "" |
| | | // && this.from.productSeries !== null && this.from.productSeries !== "") |
| | | // { |
| | | // this.axisValueextracted(); |
| | | // this.neckValueextracted(); |
| | | // if(this.queryParams.axisValue !== null && this.queryParams.neckValue !== null){ |
| | | // this.insetFromToQueryParams(); |
| | | // this.getList(); |
| | | // } |
| | | // else{ |
| | | // const h = this.$createElement; |
| | | // this.$message({ |
| | | // message: h('p',null, [ |
| | | // h('span', null, '警告 '), |
| | | // h('i', { style: 'color: black' }, '箱体码或曲轴码输入有误'), |
| | | // h()]), |
| | | // type: 'error', |
| | | // center: true, |
| | | // offset:300 |
| | | // }); |
| | | // } |
| | | // } |
| | | // else{ |
| | | // const h = this.$createElement; |
| | | // this.$message({ |
| | | // message: h('p',null, [ |
| | | // h('span', null, '警告 '), |
| | | // h('i', { style: 'color: black' }, '请填写所有搜索条件'), |
| | | // h()]), |
| | | // type: 'error', |
| | | // center: true, |
| | | // offset:300 |
| | | // }); |
| | | // } |
| | | // }, |
| | | |
| | | // 取箱体码第三段为配瓦值 |
| | | axisValueextracted() { |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-card class="box-card"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="产品编码" prop="productCode"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-form-item label="发动机编码" prop="sfcCode"> |
| | | <el-input |
| | | v-model="queryParams.productCode" |
| | | placeholder="请输入产品编码" |
| | | v-model="queryParams.sfcCode" |
| | | placeholder="请输入发动机编码" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称" prop="productName"> |
| | | <el-form-item label="工位编号" prop="locationCode"> |
| | | <el-input |
| | | v-model="queryParams.productName" |
| | | placeholder="请输入产品名称" |
| | | v-model="queryParams.locationCode" |
| | | placeholder="请输入工位编号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | |
| | | |
| | | <el-table v-loading="loading" border :data="paramCollectionList" @selection-change="handleSelectionChange" v-if="paramCollectionList.length > 0"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="工单编号" align="center" prop="workOrderNo"></el-table-column> |
| | | <el-table-column label="总成序列号" align="center" width="140" prop="sfcCode" ></el-table-column> |
| | | <el-table-column label="产品编号" align="center" prop="productCode"></el-table-column> |
| | | <el-table-column label="产线编号" align="center" prop="productionLine"></el-table-column> |
| | | <!-- <el-table-column label="工单编号" align="center" prop="workOrderNo"></el-table-column>--> |
| | | <el-table-column label="发动机编码" align="center" width="160" prop="sfcCode" ></el-table-column> |
| | | <!-- <el-table-column label="产品编号" align="center" prop="productCode"></el-table-column>--> |
| | | <!-- <el-table-column label="产线编号" align="center" prop="productionLine"></el-table-column>--> |
| | | <el-table-column label="工位编号" align="center" prop="locationCode"></el-table-column> |
| | | <el-table-column label="设备编号" align="center" prop="equipmentNo"></el-table-column> |
| | | <!-- <el-table-column label="设备编号" align="center" prop="equipmentNo"></el-table-column>--> |
| | | <el-table-column label="参数编码" align="center" prop="paramCode"></el-table-column> |
| | | <el-table-column label="参数值" align="center" prop="paramValue"></el-table-column> |
| | | <el-table-column label="参数上限" align="center" prop="paramUpper"></el-table-column> |
| | |
| | | <!-- 添加或修改设备产品过程参数采集对话框 --> |
| | | <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-form-item label="工单编号" prop="workOrderNo"> |
| | | <el-input v-model="form.workOrderNo" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <el-form-item label="总成序列号" prop="sfcCode"> |
| | | <!-- <el-form-item label="工单编号" prop="workOrderNo">--> |
| | | <!-- <el-input v-model="form.workOrderNo" type="textarea" placeholder="请输入内容" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="发动机编码" prop="sfcCode"> |
| | | <el-input v-model="form.sfcCode" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品编号" prop="productCode"> |
| | | <el-input v-model="form.productCode" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <el-form-item label="产线编号" prop="productionLine"> |
| | | <el-input v-model="form.productionLine" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="产线编号" prop="productionLine">--> |
| | | <!-- <el-input v-model="form.productionLine" type="textarea" placeholder="请输入内容" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="工位编号" prop="locationCode"> |
| | | <el-input v-model="form.locationCode" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <el-form-item label="设备编号" prop="equipmentNo"> |
| | | <el-input v-model="form.equipmentNo" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="设备编号" prop="equipmentNo">--> |
| | | <!-- <el-input v-model="form.equipmentNo" type="textarea" placeholder="请输入内容" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="参数编码" prop="paramCode"> |
| | | <el-input v-model="form.paramCode" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | |
| | | id: [ |
| | | { required: true, message: "主键id不能为空", trigger: "blur" } |
| | | ], |
| | | workOrderNo: [ |
| | | { required: true, message: "工单编号不能为空", trigger: "blur" } |
| | | ], |
| | | // workOrderNo: [ |
| | | // { required: true, message: "工单编号不能为空", trigger: "blur" } |
| | | // ], |
| | | sfcCode: [ |
| | | { required: true, message: "总成序列号不能为空", trigger: "blur" } |
| | | ], |
| | | productCode: [ |
| | | { required: true, message: "产品编号不能为空", trigger: "blur" } |
| | | ], |
| | | productionLine: [ |
| | | { required: true, message: "产线编号不能为空", trigger: "blur" } |
| | | ], |
| | | // productionLine: [ |
| | | // { required: true, message: "产线编号不能为空", trigger: "blur" } |
| | | // ], |
| | | locationCode: [ |
| | | { required: true, message: "工位编号不能为空", trigger: "blur" } |
| | | ], |
| | |
| | | <div class="app-container"> |
| | | <el-card class="box-card"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label-width="100" label="发动机编码" prop="sfcCode"> |
| | | <el-input v-model="queryParams.sfcCode" placeholder="请输入发动机编码" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="入站时间" prop="inboundTime"> |
| | | <el-date-picker clearable |
| | | v-model="queryParams.inboundTime" |
| | |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="工单编号" align="center" prop="workOrderNo"> |
| | | </el-table-column> |
| | | <el-table-column label="总成序列号" align="center" prop="sfcCode"> |
| | | <el-table-column label="发动机编码" align="center" prop="sfcCode" width="150"> |
| | | </el-table-column> |
| | | <el-table-column label="产品编号" align="center" prop="productCode"> |
| | | </el-table-column> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="工位编号" align="center" prop="locationCode"> |
| | | </el-table-column> |
| | | <el-table-column label="入站时间" align="center" prop="inboundTime" width="100"> |
| | | <el-table-column label="入站时间" align="center" prop="inboundTime" width="160"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.inboundTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="出站时间" align="center" prop="outboundTime" width="100"> |
| | | <el-table-column label="出站时间" align="center" prop="outboundTime" width="160"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.outboundTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> |
| | | </template> |
| | |
| | | <el-form-item label="工单编号" prop="workOrderNo"> |
| | | <el-input v-model="form.workOrderNo" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <el-form-item label="总成序列号" prop="sfcCode"> |
| | | <el-form-item label="发动机编码" prop="sfcCode"> |
| | | <el-input v-model="form.sfcCode" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <el-form-item label="产品编号" prop="productCode"> |
| | |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除产品过站采集编号为"' + ids + '"的数据项?').then(function() { |
| | | this.$modal.confirm('是否确认删除?').then(function() { |
| | | return delPassingStationCollection(ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | |
| | | <el-form-item label-width="100" label="生产通知单" prop="productName"> |
| | | <el-input v-model="queryParams.productionNotice" placeholder="请输入生产通知单" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label-width="100" label="工厂编号" prop="workshopCode"> |
| | | <el-select v-model="queryParams.workshopCode" placeholder="请选择工厂编号" clearable> |
| | | <el-option |
| | | v-for="dict in dict.type.factory_code" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label-width="80" label="生产订单" prop="workOrderNo"> |
| | | <el-input v-model="queryParams.workOrderNo" placeholder="请输入生产订单" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | |
| | | |
| | | export default { |
| | | name: "ProductionOrde", |
| | | dicts: ['order_state','year','month','day','subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable'], |
| | | dicts: ['order_state','year','month','day','subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable','factory_code'], |
| | | components: { |
| | | ItemSelect , |
| | | Detail |
| | |
| | | marketAreaCode: null, |
| | | softwareVersionCode: null, |
| | | productCompanyCode: null, |
| | | frontEndId: 0, |
| | | frontEndId: null, |
| | | idNums: null, |
| | | typeZ: null, |
| | | flag: null, |
| | |
| | | dateTimeRule = this.form.typeZ +" "+dateTimeRule;//此处加机型,顺序不能颠倒 |
| | | |
| | | //赋值起始编码 |
| | | this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') + " " + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | this.form.startEndCode = dateTimeRule + String(parseInt(startCode)).padStart(3, '0') +"\n"+ dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ; |
| | | } |
| | | }, |
| | | |
| | |
| | | <el-form-item label="种类" prop="productName"> |
| | | <el-input v-model="form.typeZ" disabled placeholder="请输入种类" /> |
| | | </el-form-item> |
| | | <el-form-item label="实际数量" prop="actualQty"> |
| | | <el-input v-model="form.actualQty" placeholder="请输入实际数量" /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="实际数量" prop="actualQty">--> |
| | | <!-- <el-input v-model="form.actualQty" placeholder="请输入实际数量" />--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item label="车间编号" prop="workshopCode"> |
| | | <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="请选择车间编号"> |
| | | <el-option |