From 9010685763dda93909ca1016482c1890112768cf Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 3 Jan 2024 10:54:53 +0800 Subject: [PATCH] add table sxworkcelllineoffrecord --- .../jx/JxCenterWorkingBoardCenterThreeService.java | 26 +++++--- .../ext/mes/pojo/bean/SxWorkCellLineOffRecord.java | 75 ++++++++++++++++++++++ .../SxWorkCellLineOffRecordRepository.java | 14 ++++ 3 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/bean/SxWorkCellLineOffRecord.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/repository/SxWorkCellLineOffRecordRepository.java diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/JxCenterWorkingBoardCenterThreeService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/JxCenterWorkingBoardCenterThreeService.java index 05fd389..84bf978 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/JxCenterWorkingBoardCenterThreeService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/jx/JxCenterWorkingBoardCenterThreeService.java @@ -9,6 +9,7 @@ import cn.estsh.i3plus.ext.mes.pojo.bean.*; import cn.estsh.i3plus.ext.mes.pojo.model.jx.JxCenterWorkingBoardBusiModel; import cn.estsh.i3plus.ext.mes.pojo.model.jx.JxMergeTimeSlotsModel; import cn.estsh.i3plus.ext.mes.pojo.repository.MesShiftProdCenterRecordRepository; +import cn.estsh.i3plus.ext.mes.pojo.repository.SxWorkCellLineOffRecordRepository; import cn.estsh.i3plus.ext.mes.pojo.repository.SxWorkCellTaktCollectRepository; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil; @@ -51,6 +52,8 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard private SxWorkCellTaktCollectRepository workCellTaktCollectRepository; + private SxWorkCellLineOffRecordRepository workCellLineOffRecordRepository; + private MesShiftProdCenterRecordRepository shiftProdCenterRecordRepository; private IBusiConfigService busiConfigService; @@ -64,6 +67,7 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard this.timeSegmentStatisticsService = (IJxTimeSegmentStatisticsService) SpringContextsUtil.getBean("jxTimeSegmentStatisticsService"); this.prodOrgExtService = (IProdOrgExtService) SpringContextsUtil.getBean("prodOrgExtService"); this.workCellTaktCollectRepository = (SxWorkCellTaktCollectRepository) SpringContextsUtil.getBean("sxWorkCellTaktCollectRepository"); + this.workCellLineOffRecordRepository = (SxWorkCellLineOffRecordRepository) SpringContextsUtil.getBean("sxWorkCellLineOffRecordRepository"); this.shiftProdCenterRecordRepository = (MesShiftProdCenterRecordRepository) SpringContextsUtil.getBean("mesShiftProdCenterRecordRepository"); this.busiConfigService = (IBusiConfigService) SpringContextsUtil.getBean("busiConfigService"); this.mergeTimeSlotsService = (IJxMergeTimeSlotsService) SpringContextsUtil.getBean("jxMergeTimeSlotsService"); @@ -96,13 +100,11 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard dataMap.put("当前计划台数", getQtyStr(getCurPlanQty(curOutPutStatisticsList, curWorkOrder, workCenterExtDb, dataMap))); - Double completeQty = dataMap.containsKey(MesExtConstWords.COMPLET_QTY) ? (Double) dataMap.get(MesExtConstWords.COMPLET_QTY) : getOutPutStatisticsList2AmountQty(curOutPutStatisticsList); - - dataMap.put("当前实绩台数", getQtyStr(completeQty)); + dataMap.put("当前实绩台数", getQtyStr(dataMap.containsKey(MesExtConstWords.COMPLET_QTY) ? (Double) dataMap.get(MesExtConstWords.COMPLET_QTY) : getOutPutStatisticsList2AmountQty(curOutPutStatisticsList))); dataMap.put("小时产量", getTimeSegmentStatistics(outPutStatisticsTimeSegmentList, workCenterExtDb)); - dataMap.put("工序平衡可视化", getWorkCellTaktStatistics(dataMap, workCenterExtDb, curWorkOrder, completeQty)); + dataMap.put("工序平衡可视化", getWorkCellTaktStatistics(dataMap, workCenterExtDb, curWorkOrder)); return clearUselessData(dataMap); } @@ -220,7 +222,7 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard return CollectionUtils.isEmpty(outPutStatisticsTimeSegmentList) ? new Double(0) : outPutStatisticsTimeSegmentList.stream().filter(o -> null != o).mapToDouble(MesOutPutStatisticsTimeSegment::getQty).sum(); } - private JxCenterWorkingBoardBusiModel getWorkCellTaktStatistics(Map dataMap, MesWorkCenterExt workCenterExtDb, Optional curWorkOrder, Double completeQty) { + private JxCenterWorkingBoardBusiModel getWorkCellTaktStatistics(Map dataMap, MesWorkCenterExt workCenterExtDb, Optional curWorkOrder) { JxCenterWorkingBoardBusiModel psData = new JxCenterWorkingBoardBusiModel().title("工序平衡可视化"); @@ -245,7 +247,7 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard log.info("嘉兴产线运行看板 --- center03 --- curTime:{} --- lastHourTime:{} --- THREAD:{}", curTime, lastHourTime, Thread.currentThread().getName()); - BigDecimal realTakt = getRealTakt(shiftProdCenterRecordList, completeQty, curTime, lastHourTime); + BigDecimal realTakt = getRealTakt(shiftProdCenterRecordList, workCenterExtDb, curTime, lastHourTime); log.info("嘉兴产线运行看板 --- center03 --- realTakt:{} --- THREAD:{}", realTakt, Thread.currentThread().getName()); @@ -282,6 +284,13 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard return workCellTaktCollectRepository.findByHqlWhere(packBean); } + private Integer getWorkCellLineOffRecordCount(MesWorkCenterExt workCenterExtDb, String curTime, String lastHourTime) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(workCenterExtDb.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workCenterExtDb.getWorkCenterCode(), MesExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.timeBuilder(lastHourTime, curTime, MesExtConstWords.CREATE_DATE_TIME, true, true, packBean); + return workCellLineOffRecordRepository.findByHqlWhereCount(packBean); + } + private MesBusiConfig getLimitCfg(MesWorkCenterExt workCenterExtDb) { String limitCfg4Cached = (String) execCachedCenterWorkingBoardData(workCenterExtDb.getOrganizeCode(), MesExtConstWords.ZERO_STR, MesExtConstWords.SX_WORK_CELL_TAKT_LIMIT_CFG, null); return !StringUtils.isEmpty(limitCfg4Cached) ? JSONObject.parseObject(limitCfg4Cached, MesBusiConfig.class) : execLimitCfg(workCenterExtDb.getOrganizeCode()); @@ -334,10 +343,11 @@ public class JxCenterWorkingBoardCenterThreeService extends JxCenterWorkingBoard return shiftProdCenterRecordRepository.findByHqlWhere(packBean); } - private BigDecimal getRealTakt(List shiftProdCenterRecordList, Double completeQty, String curTime, String lastHourTime) { + private BigDecimal getRealTakt(List shiftProdCenterRecordList, MesWorkCenterExt workCenterExtDb, String curTime, String lastHourTime) { + Integer completeQty = getWorkCellLineOffRecordCount(workCenterExtDb, curTime, lastHourTime); log.info("嘉兴产线运行看板 --- center03 --- completeQty:{} --- THREAD:{}", completeQty, Thread.currentThread().getName()); if (MathOperation.compareTo(completeQty, new Double(0)) == 0) return format1RounHalfUp(new Double(0)); - return format1RounHalfUp(MathOperation.div(MathOperation.mul(MathOperation.sub(new Double(60), getStopTime(shiftProdCenterRecordList, curTime, lastHourTime)), new Double(60)), completeQty)); + return format1RounHalfUp(MathOperation.div(MathOperation.mul(MathOperation.sub(new Double(60), getStopTime(shiftProdCenterRecordList, curTime, lastHourTime)), new Double(60)), new Double(completeQty))); } private Double getStopTime(List shiftProdCenterRecordList, String curTime, String lastHourTime) { diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/bean/SxWorkCellLineOffRecord.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/bean/SxWorkCellLineOffRecord.java new file mode 100644 index 0000000..4afaddd --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/bean/SxWorkCellLineOffRecord.java @@ -0,0 +1,75 @@ +package cn.estsh.i3plus.ext.mes.pojo.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.annotations.ColumnDefault; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Index; +import javax.persistence.Table; +import java.io.Serializable; + +/** + * @DESCRIPTION: 松下工位节拍采集记录 + * @USER: wangjie + * @DATE: 2023-02-03 16:11 + */ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name = "SX_WORK_CELL_LINE_OFF_RECORD", indexes = { + @Index(columnList = "SYSTEM_SYNC_STATUS"), + @Index(columnList = "WORK_CENTER_CODE") +}) +@Api("松下工位下线记录") +public class SxWorkCellLineOffRecord extends BaseBean implements Serializable { + + private static final long serialVersionUID = -7594883880765090077L; + + @Column(name = "WORK_CENTER_CODE") + @ApiParam("生产线代码") + private String workCenterCode; + + @Column(name = "WORK_CELL_CODE") + @ApiParam("工位代码") + private String workCellCode; + + @Column(name = "SHIFT_CODE") + @ApiParam("班次代码") + private String shiftCode; + + @Column(name = "WORK_TIME") + @ApiParam("作业时间") + private String workTime; + + @Column(name = "PRODUCT_SN") + @ApiParam("产品条码") + private String productSn; + + @Column(name = "WORK_ORDER_NO") + @ApiParam("生产工单号") + private String workOrderNo; + + @Column(name = "PART_NO") + @ApiParam("物料号") + private String partNo; + + @Column(name = "WORK_ORDER_TYPE") + @ApiParam("工单类型") + private Integer workOrderType; + + @Column(name = "SYSTEM_SYNC_STATUS") + @ColumnDefault("2") + @ApiParam(value = "系统同步标志") + public Integer systemSyncStatus = 2; + +} + diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/repository/SxWorkCellLineOffRecordRepository.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/repository/SxWorkCellLineOffRecordRepository.java new file mode 100644 index 0000000..206c322 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/repository/SxWorkCellLineOffRecordRepository.java @@ -0,0 +1,14 @@ +package cn.estsh.i3plus.ext.mes.pojo.repository; + +import cn.estsh.i3plus.ext.mes.pojo.bean.SxWorkCellLineOffRecord; +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import org.springframework.stereotype.Repository; + +/** + * @author wangjie + * @version 1.0 + * @date 2021/1/29 15:02 + **/ +@Repository +public interface SxWorkCellLineOffRecordRepository extends BaseRepository { +}