billion-main/src/main/java/com/billion/main/da/controller/DaParamCollectionController.java
@@ -5,7 +5,6 @@ import com.billion.common.core.domain.AjaxResult; import com.billion.common.core.page.TableDataInfo; import com.billion.common.enums.BusinessType; import com.billion.common.utils.DateUtils; import com.billion.common.utils.poi.ExcelUtil; import com.billion.main.da.domain.DaParamCollection; import com.billion.main.da.service.IDaParamCollectionService; @@ -72,8 +71,6 @@ @PostMapping public AjaxResult add(@RequestBody DaParamCollection daParamCollection) { daParamCollection.setCreateBy(getUsername()); daParamCollection.setCreateTime(DateUtils.getNowDate()); return toAjax(daParamCollectionService.insertDaParamCollection(daParamCollection)); } @@ -85,8 +82,6 @@ @PutMapping public AjaxResult edit(@RequestBody DaParamCollection daParamCollection) { daParamCollection.setUpdateBy(getUsername()); daParamCollection.setUpdateTime(DateUtils.getNowDate()); return toAjax(daParamCollectionService.updateDaParamCollection(daParamCollection)); } billion-main/src/main/java/com/billion/main/da/domain/DaParamCollection.java
@@ -1,16 +1,8 @@ package com.billion.main.da.domain; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.HeadFontStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.billion.common.annotation.Excel; import com.billion.main.common.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @@ -21,42 +13,21 @@ * @date 2024-11-20 */ @Data @ExcelIgnoreUnannotated @ColumnWidth(16) @HeadRowHeight(14) @HeadFontStyle(fontHeightInPoints = 11) public class DaParamCollection extends BaseEntity public class DaParamCollection { private static final long serialVersionUID = 1L; /** 主键id */ private Long id; /** 工单编号 */ @Excel(name = "工单编号") private String workOrderNo; private String repairFlag; /** 总成序列号 */ @Excel(name = "箱体编码") @Excel(name = "总成序列号") private String sfcCode; /** 产品编号 */ @Excel(name = "产品编号") private String productCode; /** 产线编号 */ @Excel(name = "产线编号") private String productionLine; /** 工位编号 */ @Excel(name = "工位编号") private String locationCode; /** 设备编号 */ @Excel(name = "设备编号") private String equipmentNo; /** 参数编码 */ @Excel(name = "参数编码") @@ -66,295 +37,19 @@ @Excel(name = "参数值") private String paramValue; /** 参数上限 */ @Excel(name = "参数上限") private String paramUpper; /** 参数下限 */ @Excel(name = "参数下限") private String paramLower; /** 标准值 */ @Excel(name = "标准值") private String paramStandard; /** 采集时间 */ @Excel(name = "采集时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectionTime; @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date collectTime; /** 预留字段1 */ private String spareField1; /** 预留字段2 */ private String spareField2; /** 创建用户 */ private String createUser; /** 更改用户 */ private String updateUser; /** 状态(1合格、2不合格) */ @Excel(name = "状态", readConverterExp = "1=合格、2不合格") private String state; /** 参数名称 */ @Excel(name = "参数名称") private String paramName; /** 单位 */ @Excel(name = "单位") private String unit; /** 类型 */ @Excel(name = "类型") private String type; private String[] dateConditions; private String startTime; private String endTime; public String[] getDateConditions() { return dateConditions; } public void setDateConditions(String[] dateConditions) { this.dateConditions = dateConditions; } public String getStartTime() {return startTime;} public void setStartTime(String startTime) { this.startTime = startTime; } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { this.endTime = endTime; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setWorkOrderNo(String workOrderNo) { this.workOrderNo = workOrderNo; } public String getWorkOrderNo() { return workOrderNo; } public void setSfcCode(String sfcCode) { this.sfcCode = sfcCode; } public String getSfcCode() { return sfcCode; } public void setProductCode(String productCode) { this.productCode = productCode; } public String getProductCode() { return productCode; } public void setProductionLine(String productionLine) { this.productionLine = productionLine; } public String getProductionLine() { return productionLine; } public void setLocationCode(String locationCode) { this.locationCode = locationCode; } public String getLocationCode() { return locationCode; } public void setEquipmentNo(String equipmentNo) { this.equipmentNo = equipmentNo; } public String getEquipmentNo() { return equipmentNo; } public void setParamCode(String paramCode) { this.paramCode = paramCode; } public String getParamCode() { return paramCode; } public void setParamValue(String paramValue) { this.paramValue = paramValue; } public String getParamValue() { return paramValue; } public void setParamUpper(String paramUpper) { this.paramUpper = paramUpper; } public String getParamUpper() { return paramUpper; } public void setParamLower(String paramLower) { this.paramLower = paramLower; } public String getParamLower() { return paramLower; } public void setParamStandard(String paramStandard) { this.paramStandard = paramStandard; } public String getParamStandard() { return paramStandard; } public void setCollectionTime(Date collectionTime) { this.collectionTime = collectionTime; } public Date getCollectionTime() { return collectionTime; } public void setSpareField1(String spareField1) { this.spareField1 = spareField1; } public String getSpareField1() { return spareField1; } public void setSpareField2(String spareField2) { this.spareField2 = spareField2; } public String getSpareField2() { return spareField2; } public void setCreateUser(String createUser) { this.createUser = createUser; } public String getCreateUser() { return createUser; } public void setUpdateUser(String updateUser) { this.updateUser = updateUser; } public String getUpdateUser() { return updateUser; } public void setState(String state) { this.state = state; } public String getState() { return state; } public void setParamName(String paramName) { this.paramName = paramName; } public String getParamName() { return paramName; } public void setUnit(String unit) { this.unit = unit; } public String getUnit() { return unit; } public void setType(String type) { this.type = type; } public String getType() { return type; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("workOrderNo", getWorkOrderNo()) .append("sfcCode", getSfcCode()) .append("productCode", getProductCode()) .append("productionLine", getProductionLine()) .append("locationCode", getLocationCode()) .append("equipmentNo", getEquipmentNo()) .append("paramCode", getParamCode()) .append("paramValue", getParamValue()) .append("paramUpper", getParamUpper()) .append("paramLower", getParamLower()) .append("paramStandard", getParamStandard()) .append("collectionTime", getCollectionTime()) .append("spareField1", getSpareField1()) .append("spareField2", getSpareField2()) .append("createUser", getCreateUser()) .append("createTime", getCreateTime()) .append("updateUser", getUpdateUser()) .append("updateTime", getUpdateTime()) .append("state", getState()) .append("paramName", getParamName()) .append("unit", getUnit()) .append("type", getType()) .toString(); } } billion-main/src/main/java/com/billion/main/da/service/impl/DaParamCollectionServiceImpl.java
@@ -1,6 +1,5 @@ package com.billion.main.da.service.impl; import com.billion.common.utils.DateUtils; import com.billion.main.da.domain.DaParamCollection; import com.billion.main.da.mapper.DaParamCollectionMapper; import com.billion.main.da.service.IDaParamCollectionService; @@ -54,11 +53,6 @@ @Override public List<DaParamCollection> selectDaParamCollectionList(DaParamCollection daParamCollection) { if(daParamCollection.getDateConditions()!=null){ String[] conditions = daParamCollection.getDateConditions(); daParamCollection.setStartTime(conditions[0]); daParamCollection.setEndTime(conditions[1]); } return daParamCollectionMapper.selectDaParamCollectionList(daParamCollection); } @@ -71,7 +65,6 @@ @Override public int insertDaParamCollection(DaParamCollection daParamCollection) { daParamCollection.setCreateTime(DateUtils.getNowDate()); return daParamCollectionMapper.insertDaParamCollection(daParamCollection); } billion-main/src/main/java/com/billion/main/plcServer/sub/OPCUaSubscription.java
@@ -16,6 +16,7 @@ import com.billion.main.om.domain.OmProductionOrderInfo; import com.billion.main.om.service.IOmOrderSchedulingService; import com.billion.main.om.service.IOmProductionOrderInfoService; import com.billion.main.plcServer.util.TimeUtil; import com.billion.main.sys.domain.SysCount; import com.billion.main.sys.service.ISysCountService; import com.kangaroohy.milo.model.ReadWriteEntity; @@ -23,7 +24,6 @@ import com.kangaroohy.milo.service.MiloService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import com.billion.main.plcServer.util.TimeUtil; import java.text.SimpleDateFormat; import java.time.LocalDateTime; @@ -140,6 +140,11 @@ omOrderScheduling.setWorkOrderNo(workOrderNumber.toString()); omOrderScheduling.setNowQty(nowQty.toString()); omOrderScheduling.setSfcCode(SFCCode.toString()); Date Time = new Date(); ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime"); Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); omOrderScheduling.setOnlineTime(Time); omOrderScheduling.setStatus("1"); //托盘绑定SFCCode和工单和产线 if(Constants.OP005.equals(device)){ omOrderScheduling.setRemarks("Body"); @@ -149,6 +154,11 @@ } omOrderSchedulingService.insertOmOrderScheduling(omOrderScheduling); }else if(Constants.OFFLINE.contains(device)){ Date Time = new Date(); ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime"); Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); omOrderScheduling.setOfflineTime(Time); omOrderScheduling.setStatus("2"); if(Constants.C060.equals(device)){ omOrderScheduling.setRemarks("Head"); omOrderScheduling.setSfcCode(SFCCode.toString()); @@ -203,38 +213,50 @@ //查询descriptive字段等于1的采集项保存到扫码保存到da_material_collection表里 DaCollectionParamConf daCollectionParamConf1 = new DaCollectionParamConf(); daCollectionParamConf1.setProcessesCode(device); daCollectionParamConf1.setDescriptive("3"); daCollectionParamConf1.setDescriptive("1"); List<DaCollectionParamConf> daCollectionParamConfList1 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf1); for (DaCollectionParamConf conf : daCollectionParamConfList1) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // 获取原始值对象:ml-citation{ref="4" data="citationList"} if (valueObj != null ) { String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 获取原始值对象:ml-citation{ref="4" data="citationList"} if (!Objects.equals(valueObj, " ")) { DaMaterialCollection materialCollection = new DaMaterialCollection(); materialCollection.setSfcCode(SFCCode.toString()); materialCollection.setLocationCode(device); materialCollection.setParamName(conf.getParameterSetName()); materialCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); materialCollection.setCollectTime(new Date()); materialCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString()); Date Time = new Date(); ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime"); Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); materialCollection.setCollectTime(Time); daMaterialCollectionService.insertDaMaterialCollection(materialCollection); } else { log.debug("采集项为空: {}", gatherAddress); } } //查询descriptive字段等于2的采集项保存到扫码保存到da_param_collection表里 DaCollectionParamConf daCollectionParamConf2 = new DaCollectionParamConf(); daCollectionParamConf2.setProcessesCode(device); daCollectionParamConf2.setDescriptive("4"); daCollectionParamConf2.setDescriptive("2"); List<DaCollectionParamConf> daCollectionParamConfList2 = daCollectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf2); for (DaCollectionParamConf conf : daCollectionParamConfList2) { String gatherAddress = conf.getGatherAddress(); Object valueObj = miloService.readFromOpcUa(gatherAddress).getValue(); // 获取原始值对象:ml-citation{ref="4" data="citationList"} if (valueObj != null ) { String valueObj = miloService.readFromOpcUa(gatherAddress).getValue().toString(); // 获取原始值对象:ml-citation{ref="4" data="citationList"} if (!Objects.equals(valueObj, "0.0") && !Objects.equals(valueObj, "0")) { DaParamCollection paramCollection = new DaParamCollection(); paramCollection.setSfcCode(SFCCode.toString()); paramCollection.setLocationCode(device); paramCollection.setParamName(conf.getParameterSetName()); paramCollection.setParamValue((String) miloService.readFromOpcUa(gatherAddress).getValue()); paramCollection.setCollectionTime(new Date()); paramCollection.setParamValue(miloService.readFromOpcUa(gatherAddress).getValue().toString()); Date Time = new Date(); ReadWriteEntity TimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StopTime"); Time = format.parse(TimeUtil.test(TimeUtil.stringProcessing(TimeRead.getValue().toString()))); paramCollection.setCollectTime(Time); daParamCollectionService.insertDaParamCollection(paramCollection); } else { log.debug("采集项为空: {}", gatherAddress); } } DaStationCollection daStationCollection = new DaStationCollection(); daStationCollection.setLocationCode(device); billion-main/src/main/resources/mapper/da/DaParamCollectionMapper.xml
@@ -38,19 +38,19 @@ <insert id="insertDaParamCollection" parameterType="DaParamCollection" useGeneratedKeys="true" keyProperty="id"> insert into da_param_collection <trim prefix="(" suffix=")" suffixOverrides=","> <if test="sfcCode != null and sfcCode != ''">sfc_code,</if> <if test="locationCode != null and locationCode != ''">location_code,</if> <if test="paramCode != null and paramCode != ''">param_code,</if> <if test="sfcCode != null">sfc_code,</if> <if test="locationCode != null">location_code,</if> <if test="paramCode != null">param_code,</if> <if test="paramName != null">param_name,</if> <if test="paramValue != null and paramValue != ''">param_value,</if> <if test="paramValue != null">param_value,</if> <if test="collectTime != null">collect_time,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="sfcCode != null and sfcCode != ''">#{sfcCode},</if> <if test="locationCode != null and locationCode != ''">#{locationCode},</if> <if test="paramCode != null and paramCode != ''">#{paramCode},</if> <if test="sfcCode != null">#{sfcCode},</if> <if test="locationCode != null">#{locationCode},</if> <if test="paramCode != null">#{paramCode},</if> <if test="paramName != null">#{paramName},</if> <if test="paramValue != null and paramValue != ''">#{paramValue},</if> <if test="paramValue != null">#{paramValue},</if> <if test="collectTime != null">#{collectTime},</if> </trim> </insert> billion-ui/src/views/main/bs/bomInfo/index.vue
@@ -74,16 +74,6 @@ </el-col> <el-col :span="1.5"> <el-button plain icon="el-icon-setting" size="mini" :disabled="multiple" @click="statusChange" v-hasPermi="['bs:bomInfo:remove']" >状态变更</el-button> </el-col> <el-col :span="1.5"> <el-button type="warning" plain icon="el-icon-download"