2个文件已修改
3个文件已添加
193 ■■■■■ 已修改文件
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/dto/DamageDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/ProcessCardReport.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/dto/DamageDTO.java
New file
@@ -0,0 +1,29 @@
package com.mes.damage.entity.dto;
import com.mes.damage.entity.Damage;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * <p>
 *
 * </p>
 *
 * @author wu
 * @since 2024-06-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class DamageDTO extends Damage {
    /**
     * 宽
     */
    private Integer width;
    /**
     * 宽
     */
    private Integer height;
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/order/entity/ProcessCardReport.java
New file
@@ -0,0 +1,89 @@
package com.mes.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
 * <p>
 *
 * </p>
 *
 * @author wu
 * @since 2024-06-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ProcessCardReport implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * <订单表>
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 订单Id
     */
    private String orderId;
    /**
     * 流程卡号
     */
    private String processId;
    /**
     * 订单序号
     */
    private Integer orderNumber;
    /**
     * 层号
     */
    private Integer technologyNumber;
    /**
     * 工艺
     */
    private String process;
    /**
     * 累计报工数
     */
    private Integer reportWorkNumCount;
    /**
     * 报工数
     */
    private Integer reportWorkNum;
    /**
     * 破损数量
     */
    private Integer brokenNum;
    /**
     * 创建时间
     */
    private Data createTime;
    /**
     * 最后一次报工时间
     */
    private Data updateTime;
    /**
     * 流程卡数量
     */
    private Integer quantity;
    /**
     * 缺片数量
     */
    private Integer lackQuantity;
}
hangzhoumesParent/common/servicebase/src/main/resources/mapper/DamageMapper.xml
New file
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mes.damage.mapper.DamageMapper">
    <select id="queryUnTempByFlowCardId" resultType="com.mes.damage.entity.Damage">
        SELECT glass_id,
               order_number,
               technology_number,
               working_procedure
        FROM (
                 SELECT glass_id,
                        order_number,
                        technology_number,
                        working_procedure,
                        ROW_NUMBER() OVER (
      PARTITION BY glass_id
      ORDER BY damage_time DESC
    ) AS rn
                 FROM damage
                 WHERE process_id = #{flowCardId}
                   AND glass_id NOT IN (
                     SELECT DISTINCT glass_id
                     FROM damage
                     WHERE process_id = #{flowCardId}
                       AND working_procedure = "钢化"
                 )
             ) t
        WHERE rn = 1;
    </select>
    <select id="selectDamageList" resultType="com.mes.damage.entity.dto.DamageDTO">
        SELECT
        t.*,t1.width,t1.height
        FROM
        damage t left join glass_info t1 on t.glass_id=t1.glass_id
        <where>
            damage_time BETWEEN #{startTime} AND #{endTime}
            <if test="type != null and type != 0">
                AND t.type = #{type}
            </if>
            <if test="status != null and status != 0">
                AND t.status = #{status}
            </if>
            <if test="workingProcedure != null">
                AND t.working_procedure = #{workingProcedure}
            </if>
        </where>
    </select>
</mapper>
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -3,7 +3,6 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
@@ -415,6 +414,8 @@
                LambdaQueryWrapper<BigStorageCage> queryWrapper = new LambdaQueryWrapper<BigStorageCage>()
                        .eq(BigStorageCage::getRemainWidth, slotWidth)
                        .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
                        .le(BigStorageCage::getMinThickness, info.getThickness())
                        .ge(BigStorageCage::getMaxThickness, info.getThickness())
                        .orderByAsc(BigStorageCage::getDeviceId).orderByAsc(BigStorageCage::getSlot)
                        .last("limit 1");
@@ -593,6 +594,7 @@
                    .eq(BigStorageCage::getEnableState, Const.SLOT_ON));
            //定义10个格子为阈值
            if (count <= 10) {
                log.info("笼子超过阈值,执行4号笼子调度逻辑");
                //获取序号为1的格子 将格子内的所有玻璃送到对应的笼子
                BigStorageCage bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
                        .eq(BigStorageCage::getRemainWidth, slotWidth)
@@ -600,15 +602,18 @@
                        .in(BigStorageCage::getDeviceId, Arrays.asList(5, 6))
                        .orderByAsc(BigStorageCage::getDeviceId).orderByAsc(BigStorageCage::getSlot)
                        .last("limit 1"));
                list = bigStorageCageDetailsService.queryNeedDispatch();
                computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
                        bigStorageCage.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
                List<Integer> slotList = new ArrayList<>();
                slotList.add(bigStorageCage.getSlot());
                slotList.add(list.get(0).getSlot());
                updateSlotRemainBySlots(slotList);
                return;
                if (null != bigStorageCage) {
                    list = bigStorageCageDetailsService.queryNeedDispatch();
                    if (CollectionUtil.isNotEmpty(list)) {
                        computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
                                bigStorageCage.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
                        List<Integer> slotList = new ArrayList<>();
                        slotList.add(bigStorageCage.getSlot());
                        slotList.add(list.get(0).getSlot());
                        updateSlotRemainBySlots(slotList);
                        return;
                    }
                }
            }
            //生成调度任务按照组号组序由1开始依次往5号笼子送小片
            BigStorageSlotDTO slotDTO = bigStorageCageDetailsService.queryNeedDispatchSlotBySequence();
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -308,7 +308,7 @@
        FROM big_storage_cage_details
        WHERE STATE = 100
          AND SLOT =
              (SELECT SLOT FROM big_storage_cage_details WHERE STATE = 100 AND sequence = 1 order by slot desc LIMIT 1)
              (SELECT SLOT FROM big_storage_cage_details WHERE STATE = 100 AND sequence = 1 AND device_id = 4 order by slot desc LIMIT 1)
        ORDER BY tempering_feed_sequence
    </select>