@ -0,0 +1,657 @@
package com.mt.wms.empty.controller ;
import com.alibaba.fastjson.JSON ;
import com.alibaba.fastjson.JSONObject ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.mt.wms.core.base.BaseController ;
import com.mt.wms.core.constants.CommonConstant ;
import com.mt.wms.core.dal.entity.* ;
import com.mt.wms.core.dal.service.* ;
import com.mt.wms.core.params.IdParam ;
import com.mt.wms.core.utils.BeanUtils ;
import com.mt.wms.core.utils.HttpClient ;
import com.mt.wms.core.vo.R ;
import com.mt.wms.empty.params.ElectricQueryParam ;
import com.mt.wms.empty.service.EleService ;
import com.mt.wms.empty.task.ScheduledTask ;
import com.mt.wms.empty.vo.ApmsCheckResultVo ;
import com.mt.wms.empty.vo.CurrTaskDetVo ;
import com.mt.wms.empty.vo.EnergyVo ;
import com.mt.wms.empty.vo.NowCurrTaskDetVo ;
import io.swagger.annotations.Api ;
import io.swagger.annotations.ApiOperation ;
import lombok.extern.slf4j.Slf4j ;
import org.apache.xmlbeans.impl.xb.xsdschema.Public ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.validation.annotation.Validated ;
import org.springframework.web.bind.annotation.PostMapping ;
import org.springframework.web.bind.annotation.RequestBody ;
import org.springframework.web.bind.annotation.RequestMapping ;
import org.springframework.web.bind.annotation.RestController ;
import javax.annotation.Resource ;
import javax.validation.groups.Default ;
import java.io.IOException ;
import java.math.BigDecimal ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
/ * *
* @Author : LGH
* @Date : 2022 / 12 / 27
* /
@RestController
@RequestMapping ( CommonConstant . API_MODULE_BASE + " screenInfo " )
@Slf4j
@Api ( value = " 大屏信息相关接口 " , tags = " 大屏信息相关接口 " , hidden = false )
public class ScreenController extends BaseController {
private final static Logger logger = LoggerFactory . getLogger ( ScreenController . class ) ;
@Autowired
private PlcNameSpaceServiceBiz plcNameSpaceServiceBiz ;
@Autowired
private CurrTaskDetServiceBiz currTaskDetServiceBiz ;
@Autowired
private OrderInfoServiceBiz orderInfoServiceBiz ;
@Autowired
private CurrTaskServiceBiz currTaskServiceBiz ;
@Autowired
private KilnInfoServiceBiz kilnInfoServiceBiz ;
@Autowired
private ParEleValueServiceBiz parEleValueServiceBiz ;
@Autowired
private ParGasValueServiceBiz parGasValueServiceBiz ;
@Autowired
private ParRotSpeedValueServiceBiz parRotSpeedValueServiceBiz ;
@Autowired
private ParTemValueServiceBiz parTemValueServiceBiz ;
@Autowired
private EleService eleService ;
@PostMapping ( value = " getKilnList " )
@ApiOperation ( value = " 获取加工炉信息 " )
public R < List < KilnInfo > > getKilnList ( ) {
List < KilnInfo > kilnInfoList = kilnInfoServiceBiz . list ( ) ;
for ( KilnInfo kilnInfo : kilnInfoList
) {
Boolean kilnWorking = kilnWorking ( kilnInfo . getId ( ) ) ;
if ( kilnWorking ) {
kilnInfo . setStatus ( 2 ) ;
}
Boolean kilnOnline = kilnOnline ( kilnInfo . getId ( ) ) ;
if ( ! kilnOnline ) {
/ / 不在线视为损坏
kilnInfo . setStatus ( 1 ) ;
}
}
return successful ( kilnInfoList ) ;
}
public R countEleByKiln ( @Validated @RequestBody IdParam idParam ) {
return eleService . list ( idParam . getId ( ) ) ;
}
@PostMapping ( value = " CurrTaskInfo " )
@ApiOperation ( value = " 获取当前加工任务基础信息 " )
public R < List < NowCurrTaskDetVo > > CurrTaskInfo ( ) {
/ / 查询出正在进炉加工的curr_task , 查询对应炉号是否Working , 查询计划时间 , 剩余时间 , 查询标识卡详情
List < CurrTask > currTaskList = currTaskServiceBiz . list ( new QueryWrapper < CurrTask > ( )
. eq ( CurrTask . IS_IN , 1 )
. eq ( CurrTask . STATUS , 1 ) ) ;
if ( currTaskList . size ( ) = = 0 ) {
return failed ( " " ) ;
}
List < NowCurrTaskDetVo > nowCurrTaskDetVoList = BeanUtils . copyList ( currTaskList , NowCurrTaskDetVo . class ) ;
for ( NowCurrTaskDetVo nowCurrTask : nowCurrTaskDetVoList
) {
Long kilnId = nowCurrTask . getKilnId ( ) ;
Boolean kilnWorking = kilnWorking ( kilnId ) ;
/ / 查询对应炉号是否Working
if ( kilnWorking ) {
String nameSpace = plcNameSpaceServiceBiz . getOne ( new QueryWrapper < PlcNameSpace > ( )
. eq ( PlcNameSpace . EQ_TYPE , 0 )
. eq ( PlcNameSpace . TYPE , 0 )
. eq ( PlcNameSpace . EQ_ID , kilnId ) ) . getName ( ) ;
KilnInfo kilnInfo = kilnInfoServiceBiz . getById ( kilnId ) ;
nowCurrTask . setTaskCode ( nowCurrTask . getSheetNo ( ) ) ;
nowCurrTask . setKilnCode ( kilnInfo . getCode ( ) ) ;
nowCurrTask . setTaskId ( nowCurrTask . getId ( ) ) ;
/ / 设定时间
Integer setupTime = 1 ;
/ / 剩余时间
Integer remainingTime = 0 ;
if ( kilnInfo . getType ( ) ! = 4 ) {
if ( kilnInfo . getType ( ) = = 3 ) {
remainingTime = readPlc ( nameSpace , " ProgramTimeRemaining " ) . intValue ( ) ;
} else {
remainingTime = readPlc ( nameSpace , " ProgramTimeRemain " ) . intValue ( ) ;
}
}
if ( kilnInfo . getType ( ) = = 1 | | kilnInfo . getType ( ) = = 3 ) {
/ / 运行时间
Integer runTime = readPlc ( nameSpace , " ProgramRunTime " ) . intValue ( ) ;
setupTime = runTime + remainingTime ;
}
if ( kilnInfo . getType ( ) = = 2 ) {
setupTime = readPlc ( nameSpace , " SetTime " ) . intValue ( ) ;
}
nowCurrTask . setSetupTime ( setupTime ) ;
nowCurrTask . setRemainingTime ( remainingTime ) ;
int completeness = ( int ) ( ( ( float ) remainingTime / ( float ) setupTime ) * 100 ) ;
nowCurrTask . setCompleteness ( completeness ) ;
nowCurrTask . setKilnCode ( kilnInfo . getCode ( ) ) ;
/ / 标识卡详情
List < CurrTaskDet > currTaskDetList = currTaskDetServiceBiz . list ( new QueryWrapper < CurrTaskDet > ( )
. eq ( CurrTaskDet . CURR_TASK_ID , nowCurrTask . getId ( ) ) ) ;
List < CurrTaskDetVo > currTaskDetVoList = BeanUtils . copyList ( currTaskDetList , CurrTaskDetVo . class ) ;
for ( CurrTaskDetVo currTaskDetVo : currTaskDetVoList
) {
String customerName = orderInfoServiceBiz . getOne ( new QueryWrapper < OrderInfo > ( ) . eq ( OrderInfo . IDEN_CARD_NUM , currTaskDetVo . getIdenCardNum ( ) ) ) . getCustomerName ( ) ;
currTaskDetVo . setCustomer ( customerName ) ;
}
nowCurrTask . setCurrTaskDetVoList ( currTaskDetVoList ) ;
}
}
return successful ( nowCurrTaskDetVoList ) ;
}
@PostMapping ( value = " energyInfo " )
@ApiOperation ( value = " 获取当前加工任务能源消耗信息 " )
public R < JSONObject > list ( @Validated @RequestBody IdParam idParam ) {
Long taskId = idParam . getId ( ) ;
Map < String , Object > map = new HashMap < > ( ) ;
/ / 电度值
List < List < EnergyVo > > eleConsumeList = new ArrayList < > ( ) ;
/ / A向电压
List < List < EnergyVo > > aVolConsumeList = new ArrayList < > ( ) ;
/ / B向电压
List < List < EnergyVo > > bVolConsumeList = new ArrayList < > ( ) ;
/ / C向电压
List < List < EnergyVo > > cVolConsumeList = new ArrayList < > ( ) ;
/ / A向电流
List < List < EnergyVo > > aCurrentList = new ArrayList < > ( ) ;
/ / B向电流
List < List < EnergyVo > > bCurrentList = new ArrayList < > ( ) ;
/ / C向电流
List < List < EnergyVo > > cCurrentList = new ArrayList < > ( ) ;
/ / 氮气
List < List < EnergyVo > > nitConsumeList = new ArrayList < > ( ) ;
/ / 甲醇
List < List < EnergyVo > > metConsumeList = new ArrayList < > ( ) ;
/ / 丙烷
List < List < EnergyVo > > propaneConsumeList = new ArrayList < > ( ) ;
/ / 氨气
List < List < EnergyVo > > ammoniaConsumeList = new ArrayList < > ( ) ;
/ / 二氧化碳
List < List < EnergyVo > > carbonConsumeList = new ArrayList < > ( ) ;
/ / 1号油搅拌转速
List < List < EnergyVo > > rot1ConsumeList = new ArrayList < > ( ) ;
/ / 2号油搅拌转速
List < List < EnergyVo > > rot2ConsumeList = new ArrayList < > ( ) ;
/ / 温度
List < List < EnergyVo > > tempConsumeList = new ArrayList < > ( ) ;
/ / 油槽温度
List < List < EnergyVo > > oilTempConsumeList = new ArrayList < > ( ) ;
/ / 外一区温度
List < List < EnergyVo > > outerZone1TempConsumeList = new ArrayList < > ( ) ;
/ / 外二区温度
List < List < EnergyVo > > outerZone2TempConsumeList = new ArrayList < > ( ) ;
/ / 碳 / 氮势
List < List < EnergyVo > > carbonList = new ArrayList < > ( ) ;
List < List < ApmsCheckResultVo > > checkResultList = new ArrayList < > ( ) ;
CurrTask currTask = currTaskServiceBiz . getById ( taskId ) ;
/ / 防止早期没有炉号的报错
if ( currTask . getStoveCode ( ) = = null ) {
currTask . setStoveCode ( currTask . getSheetNo ( ) ) ;
}
Long kilnId = currTask . getKilnId ( ) ;
KilnInfo kilnInfo = kilnInfoServiceBiz . getById ( kilnId ) ;
Integer kilnType = kilnInfo . getType ( ) ;
/ / 电能消耗
List < ParEleValue > parEleValueList = parEleValueServiceBiz . list ( new QueryWrapper < ParEleValue > ( )
. eq ( ParEleValue . KILN_ID , kilnId )
. eq ( ParEleValue . TASK_ID , taskId ) ) ;
if ( parEleValueList . size ( ) > 0 ) {
List < Object > eleList = new ArrayList < > ( ) ;
/ / 电能消耗
List < EnergyVo > eleConsume = new ArrayList < > ( ) ;
/ / A向电压
List < EnergyVo > aVolConsume = new ArrayList < > ( ) ;
/ / B向电压
List < EnergyVo > bVolConsume = new ArrayList < > ( ) ;
/ / C向电压
List < EnergyVo > cVolConsume = new ArrayList < > ( ) ;
/ / A向电流
List < EnergyVo > aCurrentConsume = new ArrayList < > ( ) ;
/ / B向电流
List < EnergyVo > bCurrentConsume = new ArrayList < > ( ) ;
/ / C向电流
List < EnergyVo > cCurrentConsume = new ArrayList < > ( ) ;
Float talBat = 0F ;
int i = 0 ;
for ( ParEleValue parEleValue : parEleValueList
) {
/ / 首位置为0
if ( i = = 0 ) {
talBat = parEleValue . getTotalBat ( ) ;
}
i + + ;
EnergyVo eleVo = EnergyVo . builder ( ) . build ( ) ;
eleVo . setCode ( currTask . getStoveCode ( ) ) ;
eleVo . setName ( " 耗电量 " ) ;
eleVo . setUnit ( " KW " ) ;
eleVo . setTime ( parEleValue . getCreateTime ( ) ) ;
eleVo . setValue ( floatSubtract ( parEleValue . getTotalBat ( ) , talBat ) ) ;
eleConsume . add ( eleVo ) ;
EnergyVo aVolVo = EnergyVo . builder ( ) . build ( ) ;
aVolVo . setCode ( currTask . getStoveCode ( ) ) ;
aVolVo . setName ( " A向电压 " ) ;
aVolVo . setUnit ( " V " ) ;
aVolVo . setTime ( parEleValue . getCreateTime ( ) ) ;
aVolVo . setValue ( parEleValue . getAVoltagevValue ( ) ) ;
aVolConsume . add ( aVolVo ) ;
EnergyVo bVolVo = EnergyVo . builder ( ) . build ( ) ;
bVolVo . setCode ( currTask . getStoveCode ( ) ) ;
bVolVo . setName ( " B向电压 " ) ;
bVolVo . setUnit ( " V " ) ;
bVolVo . setTime ( parEleValue . getCreateTime ( ) ) ;
bVolVo . setValue ( parEleValue . getBVoltagevValue ( ) ) ;
bVolConsume . add ( bVolVo ) ;
EnergyVo cVolVo = EnergyVo . builder ( ) . build ( ) ;
cVolVo . setCode ( currTask . getStoveCode ( ) ) ;
cVolVo . setName ( " C向电压 " ) ;
cVolVo . setUnit ( " V " ) ;
cVolVo . setTime ( parEleValue . getCreateTime ( ) ) ;
cVolVo . setValue ( parEleValue . getCVoltagevValue ( ) ) ;
cVolConsume . add ( cVolVo ) ;
EnergyVo aCurrVo = EnergyVo . builder ( ) . build ( ) ;
aCurrVo . setCode ( currTask . getStoveCode ( ) ) ;
aCurrVo . setName ( " A向电流 " ) ;
aCurrVo . setUnit ( " A " ) ;
aCurrVo . setTime ( parEleValue . getCreateTime ( ) ) ;
aCurrVo . setValue ( parEleValue . getACurrentValue ( ) ) ;
aCurrentConsume . add ( aCurrVo ) ;
EnergyVo bCurrVo = EnergyVo . builder ( ) . build ( ) ;
bCurrVo . setCode ( currTask . getStoveCode ( ) ) ;
bCurrVo . setName ( " B向电流 " ) ;
bCurrVo . setUnit ( " A " ) ;
bCurrVo . setTime ( parEleValue . getCreateTime ( ) ) ;
bCurrVo . setValue ( parEleValue . getBCurrentValue ( ) ) ;
bCurrentConsume . add ( bCurrVo ) ;
EnergyVo cCurrVo = EnergyVo . builder ( ) . build ( ) ;
cCurrVo . setCode ( currTask . getStoveCode ( ) ) ;
cCurrVo . setName ( " C向电流 " ) ;
cCurrVo . setUnit ( " A " ) ;
cCurrVo . setTime ( parEleValue . getCreateTime ( ) ) ;
cCurrVo . setValue ( parEleValue . getCCurrentValue ( ) ) ;
cCurrentConsume . add ( cCurrVo ) ;
}
eleConsumeList . add ( eleConsume ) ;
aVolConsumeList . add ( aVolConsume ) ;
bVolConsumeList . add ( bVolConsume ) ;
cVolConsumeList . add ( cVolConsume ) ;
aCurrentList . add ( aCurrentConsume ) ;
bCurrentList . add ( bCurrentConsume ) ;
cCurrentList . add ( cCurrentConsume ) ;
}
/ / 氮气 、 甲醇 、 丙烷 、 氨气二氧化碳消耗量碳势
List < ParGasValue > parGasValueList = parGasValueServiceBiz . list ( new QueryWrapper < ParGasValue > ( )
. eq ( ParEleValue . KILN_ID , kilnId )
. eq ( ParEleValue . TASK_ID , taskId ) ) ;
if ( parGasValueList . size ( ) > 0 ) {
if ( kilnType = = 1 ) {
/ / 碳 / 氮势
List < EnergyVo > carbon = new ArrayList < > ( ) ;
/ / 碳 / 氮势 - 设定
List < EnergyVo > carbonSet = new ArrayList < > ( ) ;
/ / 氮气
List < EnergyVo > nitConsume = new ArrayList < > ( ) ;
/ / 甲醇
List < EnergyVo > metConsume = new ArrayList < > ( ) ;
/ / 丙烷
List < EnergyVo > propaneConsume = new ArrayList < > ( ) ;
/ / 氨气
List < EnergyVo > ammoniaConsume = new ArrayList < > ( ) ;
for ( ParGasValue parGasValue : parGasValueList
) {
EnergyVo carbonSetVo = EnergyVo . builder ( ) . build ( ) ;
carbonSetVo . setTime ( parGasValue . getCreateTime ( ) ) ;
carbonSetVo . setCode ( currTask . getStoveCode ( ) . concat ( " -设定 " ) ) ;
carbonSetVo . setUnit ( " % " ) ;
carbonSetVo . setName ( " 碳/氮势 " ) ;
carbonSetVo . setValue ( parGasValue . getSetNitPotValue ( ) ) ;
carbonSet . add ( carbonSetVo ) ;
EnergyVo carbonActVo = EnergyVo . builder ( ) . build ( ) ;
carbonActVo . setValue ( parGasValue . getActualNitPotValue ( ) ) ;
carbonActVo . setUnit ( " % " ) ;
carbonActVo . setName ( " 碳/氮势 " ) ;
carbonActVo . setCode ( currTask . getStoveCode ( ) ) ;
carbon . add ( carbonActVo ) ;
EnergyVo nitVo = EnergyVo . builder ( ) . build ( ) ;
nitVo . setTime ( parGasValue . getCreateTime ( ) ) ;
nitVo . setUnit ( " m³/h " ) ;
nitVo . setValue ( parGasValue . getNitFlowValue ( ) ) ;
nitVo . setName ( " 氮气 " ) ;
nitVo . setCode ( currTask . getStoveCode ( ) ) ;
nitConsume . add ( nitVo ) ;
EnergyVo metVo = EnergyVo . builder ( ) . build ( ) ;
metVo . setCode ( currTask . getStoveCode ( ) ) ;
metVo . setValue ( parGasValue . getMethanolFlow ( ) ) ;
metVo . setName ( " 甲醇 " ) ;
metVo . setUnit ( " m³/h " ) ;
metVo . setTime ( parGasValue . getCreateTime ( ) ) ;
metConsume . add ( metVo ) ;
EnergyVo propaneVo = EnergyVo . builder ( ) . build ( ) ;
propaneVo . setTime ( parGasValue . getCreateTime ( ) ) ;
propaneVo . setCode ( currTask . getStoveCode ( ) ) ;
propaneVo . setUnit ( " m³/h " ) ;
propaneVo . setValue ( parGasValue . getPropaneFlow ( ) ) ;
propaneVo . setName ( " 丙烷 " ) ;
propaneConsume . add ( propaneVo ) ;
EnergyVo ammoniaVo = EnergyVo . builder ( ) . build ( ) ;
ammoniaVo . setName ( " 氨气 " ) ;
ammoniaVo . setCode ( currTask . getStoveCode ( ) ) ;
ammoniaVo . setValue ( parGasValue . getAmmoniaFlowValue ( ) ) ;
ammoniaVo . setUnit ( " m³/h " ) ;
ammoniaVo . setTime ( parGasValue . getCreateTime ( ) ) ;
ammoniaConsume . add ( ammoniaVo ) ;
}
carbonList . add ( carbon ) ;
carbonList . add ( carbonSet ) ;
nitConsumeList . add ( nitConsume ) ;
metConsumeList . add ( metConsume ) ;
propaneConsumeList . add ( propaneConsume ) ;
ammoniaConsumeList . add ( ammoniaConsume ) ;
}
if ( kilnType = = 3 ) {
/ / 碳 / 氮势
List < EnergyVo > carbon = new ArrayList < > ( ) ;
/ / 碳 / 氮势 - 设定
List < EnergyVo > carbonSet = new ArrayList < > ( ) ;
/ / 氮气
List < EnergyVo > nitConsume = new ArrayList < > ( ) ;
/ / 二氧化碳
List < EnergyVo > carbonConsume = new ArrayList < > ( ) ;
/ / 氨气
List < EnergyVo > ammoniaConsume = new ArrayList < > ( ) ;
for ( ParGasValue parGasValue : parGasValueList
) {
EnergyVo carbonSetVo = EnergyVo . builder ( ) . build ( ) ;
carbonSetVo . setTime ( parGasValue . getCreateTime ( ) ) ;
carbonSetVo . setCode ( currTask . getStoveCode ( ) . concat ( " -设定 " ) ) ;
carbonSetVo . setUnit ( " % " ) ;
carbonSetVo . setName ( " 碳/氮势 " ) ;
carbonSetVo . setValue ( parGasValue . getSetNitPotValue ( ) ) ;
carbonSet . add ( carbonSetVo ) ;
EnergyVo carbonActVo = EnergyVo . builder ( ) . build ( ) ;
carbonActVo . setTime ( parGasValue . getCreateTime ( ) ) ;
carbonActVo . setValue ( parGasValue . getActualNitPotValue ( ) ) ;
carbonActVo . setUnit ( " % " ) ;
carbonActVo . setName ( " 碳/氮势 " ) ;
carbonActVo . setCode ( currTask . getStoveCode ( ) ) ;
carbon . add ( carbonActVo ) ;
EnergyVo nitVo = EnergyVo . builder ( ) . build ( ) ;
nitVo . setTime ( parGasValue . getCreateTime ( ) ) ;
nitVo . setUnit ( " m³/h " ) ;
nitVo . setValue ( parGasValue . getNitFlowValue ( ) ) ;
nitVo . setName ( " 氮气 " ) ;
nitVo . setCode ( currTask . getStoveCode ( ) ) ;
nitConsume . add ( nitVo ) ;
EnergyVo carbonVo = EnergyVo . builder ( ) . build ( ) ;
carbonVo . setTime ( parGasValue . getCreateTime ( ) ) ;
carbonVo . setCode ( currTask . getStoveCode ( ) ) ;
carbonVo . setUnit ( " m³/h " ) ;
carbonVo . setValue ( parGasValue . getCarDioxideFlowValue ( ) ) ;
carbonVo . setName ( " 二氧化碳 " ) ;
carbonConsume . add ( carbonVo ) ;
EnergyVo ammoniaVo = EnergyVo . builder ( ) . build ( ) ;
ammoniaVo . setName ( " 氨气 " ) ;
ammoniaVo . setCode ( currTask . getStoveCode ( ) ) ;
ammoniaVo . setValue ( parGasValue . getAmmoniaFlowValue ( ) ) ;
ammoniaVo . setUnit ( " m³/h " ) ;
ammoniaVo . setTime ( parGasValue . getCreateTime ( ) ) ;
ammoniaConsume . add ( ammoniaVo ) ;
}
carbonList . add ( carbon ) ;
carbonList . add ( carbonSet ) ;
carbonConsumeList . add ( carbonConsume ) ;
nitConsumeList . add ( nitConsume ) ;
ammoniaConsumeList . add ( ammoniaConsume ) ;
}
}
/ / 油搅拌转速趋势
List < ParRotSpeedValue > parRotSpeedValueList = parRotSpeedValueServiceBiz . list ( new QueryWrapper < ParRotSpeedValue > ( )
. eq ( ParEleValue . KILN_ID , kilnId )
. eq ( ParEleValue . TASK_ID , taskId ) ) ;
if ( parRotSpeedValueList . size ( ) > 0 ) {
if ( kilnType = = 1 ) {
List < EnergyVo > rot1Consume = new ArrayList < > ( ) ;
for ( ParRotSpeedValue parRotSpeedValue : parRotSpeedValueList
) {
EnergyVo rot1Vo = EnergyVo . builder ( ) . build ( ) ;
rot1Vo . setCode ( currTask . getStoveCode ( ) ) ;
rot1Vo . setUnit ( " 转/min " ) ;
rot1Vo . setName ( " 1号油搅拌转速 " ) ;
rot1Vo . setValue ( parRotSpeedValue . getOilStiSpeedAValue ( ) ) ;
rot1Vo . setTime ( parRotSpeedValue . getCreateTime ( ) ) ;
rot1Consume . add ( rot1Vo ) ;
}
rot1ConsumeList . add ( rot1Consume ) ;
}
}
/ / 温度趋势 ( 实际温度 、 设定温度 ) 油槽温度外区温度
List < ParTemValue > parTemValueList = parTemValueServiceBiz . list ( new QueryWrapper < ParTemValue > ( )
. eq ( ParEleValue . KILN_ID , kilnId )
. eq ( ParEleValue . TASK_ID , taskId ) ) ;
if ( parTemValueList . size ( ) > 0 ) {
if ( kilnType = = 1 ) {
List < EnergyVo > actualTempConsume = new ArrayList < > ( ) ;
List < EnergyVo > setupTempConsume = new ArrayList < > ( ) ;
List < EnergyVo > actualOilTempConsume = new ArrayList < > ( ) ;
List < EnergyVo > setupOilTempConsume = new ArrayList < > ( ) ;
for ( ParTemValue parTemValue : parTemValueList
) {
EnergyVo actTempVo = EnergyVo . builder ( ) . build ( ) ;
actTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
actTempVo . setCode ( currTask . getStoveCode ( ) ) ;
actTempVo . setUnit ( " ℃ " ) ;
actTempVo . setValue ( parTemValue . getActTemValue ( ) ) ;
actTempVo . setName ( " 实际温度 " ) ;
actualTempConsume . add ( actTempVo ) ;
EnergyVo setTempVo = EnergyVo . builder ( ) . build ( ) ;
setTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
setTempVo . setCode ( currTask . getStoveCode ( ) . concat ( " -设定 " ) ) ;
setTempVo . setUnit ( " ℃ " ) ;
setTempVo . setValue ( parTemValue . getSetTemValue ( ) ) ;
setTempVo . setName ( " 设定温度 " ) ;
setupTempConsume . add ( setTempVo ) ;
EnergyVo oilSetTempVo = EnergyVo . builder ( ) . build ( ) ;
oilSetTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
oilSetTempVo . setCode ( currTask . getStoveCode ( ) . concat ( " -设定 " ) ) ;
oilSetTempVo . setUnit ( " ℃ " ) ;
oilSetTempVo . setValue ( parTemValue . getOilTankSetTemValue ( ) ) ;
oilSetTempVo . setName ( " 油槽设定温度 " ) ;
setupOilTempConsume . add ( oilSetTempVo ) ;
EnergyVo oilActTempVo = EnergyVo . builder ( ) . build ( ) ;
oilActTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
oilActTempVo . setCode ( currTask . getStoveCode ( ) ) ;
oilActTempVo . setUnit ( " ℃ " ) ;
oilActTempVo . setValue ( parTemValue . getOilTankActTemValue ( ) ) ;
oilActTempVo . setName ( " 油槽实际温度 " ) ;
actualOilTempConsume . add ( oilActTempVo ) ;
}
tempConsumeList . add ( actualTempConsume ) ;
tempConsumeList . add ( setupTempConsume ) ;
oilTempConsumeList . add ( actualOilTempConsume ) ;
oilTempConsumeList . add ( setupOilTempConsume ) ;
}
if ( kilnType = = 2 ) {
List < EnergyVo > actualTempConsume = new ArrayList < > ( ) ;
List < EnergyVo > setupTempConsume = new ArrayList < > ( ) ;
for ( ParTemValue parTemValue : parTemValueList
) {
EnergyVo actTempVo = EnergyVo . builder ( ) . build ( ) ;
actTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
actTempVo . setCode ( currTask . getStoveCode ( ) ) ;
actTempVo . setUnit ( " ℃ " ) ;
actTempVo . setValue ( parTemValue . getActTemValue ( ) ) ;
actTempVo . setName ( " 实际温度 " ) ;
actualTempConsume . add ( actTempVo ) ;
EnergyVo setTempVo = EnergyVo . builder ( ) . build ( ) ;
setTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
setTempVo . setCode ( currTask . getStoveCode ( ) . concat ( " -设定 " ) ) ;
setTempVo . setUnit ( " ℃ " ) ;
setTempVo . setValue ( parTemValue . getSetTemValue ( ) ) ;
setTempVo . setName ( " 设定温度 " ) ;
setupTempConsume . add ( setTempVo ) ;
}
tempConsumeList . add ( actualTempConsume ) ;
tempConsumeList . add ( setupTempConsume ) ;
;
}
if ( kilnType = = 3 ) {
List < EnergyVo > actualTempConsume = new ArrayList < > ( ) ;
List < EnergyVo > setupTempConsume = new ArrayList < > ( ) ;
List < EnergyVo > outerZone1TempConsume = new ArrayList < > ( ) ;
List < EnergyVo > outerZone2TempConsume = new ArrayList < > ( ) ;
for ( ParTemValue parTemValue : parTemValueList
) {
EnergyVo actTempVo = EnergyVo . builder ( ) . build ( ) ;
actTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
actTempVo . setCode ( currTask . getStoveCode ( ) ) ;
actTempVo . setUnit ( " ℃ " ) ;
actTempVo . setValue ( parTemValue . getActTemValue ( ) ) ;
actTempVo . setName ( " 实际温度 " ) ;
actualTempConsume . add ( actTempVo ) ;
EnergyVo setTempVo = EnergyVo . builder ( ) . build ( ) ;
setTempVo . setTime ( parTemValue . getCreateTime ( ) ) ;
setTempVo . setCode ( currTask . getStoveCode ( ) . concat ( " -设定 " ) ) ;
setTempVo . setUnit ( " ℃ " ) ;
setTempVo . setValue ( parTemValue . getSetTemValue ( ) ) ;
setTempVo . setName ( " 设定温度 " ) ;
setupTempConsume . add ( setTempVo ) ;
}
tempConsumeList . add ( actualTempConsume ) ;
tempConsumeList . add ( setupTempConsume ) ;
}
}
map . put ( " checkResult " , checkResultList ) ;
map . put ( " ele " , eleConsumeList ) ;
map . put ( " aVol " , aVolConsumeList ) ;
map . put ( " bVol " , bVolConsumeList ) ;
map . put ( " cVol " , cVolConsumeList ) ;
map . put ( " aCurr " , aCurrentList ) ;
map . put ( " bCurr " , bCurrentList ) ;
map . put ( " cCurr " , cCurrentList ) ;
map . put ( " carbon " , carbonList ) ;
map . put ( " nit " , nitConsumeList ) ;
map . put ( " met " , metConsumeList ) ;
map . put ( " propane " , propaneConsumeList ) ;
map . put ( " ammon " , ammoniaConsumeList ) ;
map . put ( " car " , carbonConsumeList ) ;
map . put ( " rot1 " , rot1ConsumeList ) ;
map . put ( " temp " , tempConsumeList ) ;
map . put ( " oilTemp " , oilTempConsumeList ) ;
return successful ( JSONObject . parseObject ( JSON . toJSONString ( map ) ) ) ;
}
private Boolean kilnWorking ( Long kilnId ) {
PlcNameSpace nameSpace = plcNameSpaceServiceBiz . getOne ( new QueryWrapper < PlcNameSpace > ( )
. eq ( PlcNameSpace . EQ_TYPE , 0 )
. eq ( PlcNameSpace . EQ_ID , kilnId )
. eq ( PlcNameSpace . TYPE , 0 ) ) ;
String nameSpaceNote = nameSpace . getName ( ) ;
String result = readPlcToString ( nameSpaceNote , " Working " ) ;
return Boolean . valueOf ( JSONObject . parseObject ( result ) . get ( " result " ) . toString ( ) ) ;
}
private Boolean kilnOnline ( Long kilnId ) {
PlcNameSpace nameSpace = plcNameSpaceServiceBiz . getOne ( new QueryWrapper < PlcNameSpace > ( )
. eq ( PlcNameSpace . EQ_TYPE , 0 )
. eq ( PlcNameSpace . EQ_ID , kilnId )
. eq ( PlcNameSpace . TYPE , 0 ) ) ;
String nameSpaceNote = nameSpace . getName ( ) ;
String result = readPlcToString ( nameSpaceNote , " ManualAutomatic " ) ;
return Boolean . valueOf ( JSONObject . parseObject ( result ) . get ( " result " ) . toString ( ) ) ;
}
/ * *
* 获取变量值
*
* @param nameSpace nameSpace前缀
* @param variableName 变量名称
* @return 变量值
* /
private Double readPlc ( String nameSpace , String variableName ) {
String identifier = nameSpace . concat ( variableName ) ;
Map < String , Object > json = new HashMap ( ) ;
json . put ( " nameSpace " , 6 ) ;
json . put ( " plcName " , " plc1 " ) ;
json . put ( " identifier " , identifier ) ;
String result = null ;
try {
result = HttpClient . httpPost ( " http://192.168.6.51:8009/opcua/read " , JSON . toJSONString ( json ) ) ;
} catch ( IOException e ) {
e . printStackTrace ( ) ;
logger . info ( " 能源消耗统计:获取 " + identifier + " 的值失败 " ) ;
}
return Double . valueOf ( JSONObject . parseObject ( result ) . get ( " result " ) . toString ( ) ) ;
}
/ * *
* 获取变量值
*
* @param nameSpace nameSpace前缀
* @param variableName 变量名称
* @return result字符串
* /
private String readPlcToString ( String nameSpace , String variableName ) {
String identifier = nameSpace . concat ( variableName ) ;
Map < String , Object > json = new HashMap ( ) ;
json . put ( " nameSpace " , 6 ) ;
json . put ( " plcName " , " plc1 " ) ;
json . put ( " identifier " , identifier ) ;
String result = null ;
try {
result = HttpClient . httpPost ( " http://192.168.6.51:8009/opcua/read " , JSON . toJSONString ( json ) ) ;
} catch ( IOException e ) {
e . printStackTrace ( ) ;
logger . info ( " readPLC: " + identifier + " 的值失败 " ) ;
}
return result ;
}
private Float floatSubtract ( Float a , Float b ) {
BigDecimal a1 = new BigDecimal ( Float . toString ( a ) ) ;
BigDecimal b1 = new BigDecimal ( Float . toString ( b ) ) ;
return a1 . subtract ( b1 ) . floatValue ( ) ;
}
}