1、大理片笼进片任务新增数量校验,当收到进片请求时,拿电气的玻璃数量与mes接收到的数量作比较,相同继续执行,不相同结束本次任务
2、李赛克文件优化,合中空玻璃每个间隔框的类型可能不同,需要在界面上做选择
3、中空设备号与格子号不匹配bug解决
4、自动报工存在接口调用异常,临时将调用接口回退原版本,待最新接口调用无异常后更新接口
5、fixbug:中空大理片详情界面删除接口异常
13个文件已修改
170 ■■■■ 已修改文件
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -75,6 +75,12 @@
        List<DamagePrint> damage2=damageService.selectDamagePrintDetails(damage);
        return Result.build(200,"查询成功",damage2);
    }
    @ApiOperation("自动报工")
    @PostMapping("/autoSubmitReport")
    public Result autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type) {
        damageService.autoSubmitReport(glassId,deviceId,workingProcedure,remark,type);
        return Result.build(200,"查询成功","");
    }
}
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -19,6 +19,7 @@
import com.mes.work_assignment.entity.WorkAssignment;
import com.mes.work_assignment.mapper.WorkAssignmentMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -96,7 +97,12 @@
            reportingWork.setOrderId(damages.get(0).getProcessId().substring(0, 10));
            reportingWork.setProductionId(damages.get(0).getProcessId().substring(0, 11));
            reportingWork.setProcessId(damages.get(0).getProcessId() + "/" + damages.get(0).getTechnologyNumber());
            reportingWork.setDeviceName(damages.get(0).getDeviceName());
//            reportingWork.setDeviceName(damages.get(0).getDeviceName());
            if (StringUtils.isBlank(damages.get(0).getDeviceName())){
                reportingWork.setDeviceName("auto");
            }else{
                reportingWork.setDeviceName(damages.get(0).getDeviceName());
            }
            reportingWork.setThisProcess(damages.get(0).getWorkingProcedure());
            reportingWork.setThisCompletedQuantity(0);
            reportingWork.setThisWornQuantity(0);
@@ -148,9 +154,12 @@
        reportingWork.setOrderId(damage.getProcessId().substring(0, 10));
        reportingWork.setProductionId(damage.getProcessId().substring(0, 11));
        reportingWork.setProcessId(damage.getProcessId() + "/" + damage.getTechnologyNumber());
        reportingWork.setDeviceName(damage.getDeviceName());
        if (StringUtils.isBlank(damage.getDeviceName())){
            reportingWork.setDeviceName("auto");
        }else{
            reportingWork.setDeviceName(damage.getDeviceName());
        }
        reportingWork.setThisProcess(damage.getWorkingProcedure());
//        reportingWork.setNextProcess("磨边");
        reportingWork.setThisCompletedQuantity(1);
        reportingWork.setThisWornQuantity(0);
        reportingWork.setClasses("早班");
@@ -307,7 +316,8 @@
        log.info("报工数据reportingWork:{},reportingWorkDetails:{}", reportingWork, reportingWorkDetails);
        try {
            // 目标系统的API URL
            String url = ERP_URL + "/reportingWork/mesReportingWork";
//            String url = ERP_URL + "/reportingWork/mesReportingWork";
            String url = ERP_URL + "/reportingWork/mesSaveReportingWorkWorn";
            URL obj = new URL(url);
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
@@ -2,16 +2,16 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 *
 *
 * </p>
 *
 * @author wu
@@ -26,13 +26,13 @@
    /**
     * <报工主表>
     */
      @TableId(value = "id", type = IdType.AUTO)
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 报工编号
     */
    private String reportingWorkId;
    private String reportingWorkId = "";
    /**
     * 销售单号
@@ -54,10 +54,10 @@
     */
    private String thisProcess;
    /**
     * 设备编号
     */
    private byte[] deviceId;
//    /**
//     * 设备编号
//     */
//    private byte[] deviceId;
    /**
     * 设备名称
@@ -67,12 +67,12 @@
    /**
     * 上工序
     */
    private String previousProcess;
//    private String previousProcess;
    /**
     * 上工序数量
     */
    private Integer previousProcessQuantity;
//    private Integer previousProcessQuantity;
    /**
     * 本工序数量
@@ -112,32 +112,32 @@
    /**
     * 报工状态
     */
    private Integer reportingWorkState;
//    private Integer reportingWorkState;
    /**
     * 审核人
     */
    private String reviewed;
//    private String reviewed;
    /**
     * 审核状态(默认0,审核通过1,不通过2,小于0删除)
     */
    private Integer reviewedState;
//    private Integer reviewedState;
    /**
     * 备注
     */
    private String notes;
//    private String notes;
    /**
     * 质检员
     */
    private String qualityInspector;
//    private String qualityInspector;
    /**
     * 包装方式
     */
    private String packagingMethod;
//    private String packagingMethod;
    /**
     * 报工时间
@@ -147,12 +147,12 @@
    /**
     * 审核时间
     */
    private LocalDateTime examineTime;
//    private LocalDateTime examineTime;
    /**
     * 质检时间
     */
    private LocalDateTime qualityInsTime;
//    private LocalDateTime qualityInsTime;
    /**
     * 创建者id
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -141,6 +141,11 @@
            return;
        }
        log.info("获取任务的玻璃id:{}", glassIdList);
        ReadWriteEntity countEntity = miloService.readFromOpcUa("DLP1A.DLP1A.glassCount");
        if (null == countEntity.getValue() || Integer.parseInt(countEntity.getValue() + "") != glassIdList.size()) {
            log.info("当前大车进片玻璃数量{}与mes读取到的数量{}不匹配,结束进片任务", countEntity.getValue(), glassIdList.size());
            return;
        }
        Map<String, Long> glassCountMap = glassIdList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
        for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
            if (entry.getValue() > 1) {
@@ -193,7 +198,7 @@
                .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
        //报工
        for (String glass : glassIdList) {
            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "磨边", "进大理片笼",1);
            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "磨边", "进大理片笼", 1);
        }
        Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
@@ -532,7 +537,7 @@
                    bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
                } else {
                    bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
                    //todo:按照格子信息更新对应的设备id
                    //按照格子信息更新对应的设备id
                    List<Integer> slotList = storageCageDTOList.stream().map(UpdateBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
                    bigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java
@@ -51,12 +51,30 @@
    private String casThree;
    @ApiModelProperty(value = "气体4(0无 1有) 930专用")
    private String casFour;
    @ApiModelProperty(value = "间隔框类型(tps胶为05 铝间隔条01) 930专用")
    private String intervalFrameType;
    @ApiModelProperty(value = "间隔框宽度 930专用")
    private String intervalFrameWidth;
    @ApiModelProperty(value = "间隔框高度 930专用")
    private String intervalFrameHeight;
    @ApiModelProperty(value = "间隔框类型1(tps胶为05 铝间隔条01) 930专用")
    private String intervalFrameTypeOne;
    @ApiModelProperty(value = "间隔框宽度1 930专用")
    private String intervalFrameWidthOne;
    @ApiModelProperty(value = "间隔框高度1 930专用")
    private String intervalFrameHeightOne;
    @ApiModelProperty(value = "间隔框类型2(tps胶为05 铝间隔条01) 930专用")
    private String intervalFrameTypeTwo;
    @ApiModelProperty(value = "间隔框宽度2 930专用")
    private String intervalFrameWidthTwo;
    @ApiModelProperty(value = "间隔框高度2 930专用")
    private String intervalFrameHeightTwo;
    @ApiModelProperty(value = "间隔框类型3(tps胶为05 铝间隔条01) 930专用")
    private String intervalFrameTypeThree;
    @ApiModelProperty(value = "间隔框宽度3 930专用")
    private String intervalFrameWidthThree;
    @ApiModelProperty(value = "间隔框高度3 930专用")
    private String intervalFrameHeightThree;
    @ApiModelProperty(value = "间隔框类型4(tps胶为05 铝间隔条01) 930专用")
    private String intervalFrameTypeFour;
    @ApiModelProperty(value = "间隔框宽度4 930专用")
    private String intervalFrameWidthFour;
    @ApiModelProperty(value = "间隔框高度4 930专用")
    private String intervalFrameHeightFour;
    /**
     * 创建时间
     */
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java
@@ -10,6 +10,13 @@
@Data
public class LisecHollowFrameDetails {
    public LisecHollowFrameDetails(String recType, String type, String width, String height) {
        this.recType = recType;
        this.type = type;
        this.width = width;
        this.height = height;
    }
    private String recType;
    //项目数量指数(如果所有记录相同,则为0)    用0填充即可
    private String itemInx = "0";
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java
@@ -32,5 +32,7 @@
    List<BigStorageVO> queryHollowbigStorageCageDetail();
    List<HollowBigStorageCageDetails> querySlotMaxSequence(@Param("flowCardId") String flowCardId, @Param("totalLayer") Integer totalLayer, @Param("layer") Integer layer, @Param("virtualSlot") Integer virtualSlot);
    void updateDeviceIdBySlot(@Param("list") List<Integer> slotList);
}
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java
@@ -44,5 +44,7 @@
    List<HollowBigStorageAndDetailsDTO> deleteHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot);
    List<HollowBigStorageAndDetailsDTO> damageHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot, int state);
    void updateDeviceIdBySlot(List<Integer> slotList);
}
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
@@ -119,6 +119,11 @@
        return hollowBigStorageCageDetailsChild(glassId, deviceId, slot, state);
    }
    @Override
    public void updateDeviceIdBySlot(List<Integer> slotList) {
        baseMapper.updateDeviceIdBySlot(slotList);
    }
    private List<HollowBigStorageAndDetailsDTO> hollowBigStorageCageDetailsChild(String glassId, Integer deviceId, Integer slot, int state) {
        //将对应格子号的玻璃id置为101
        this.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
@@ -126,7 +131,7 @@
                .eq(HollowBigStorageCageDetails::getSlot, slot)
                .eq(HollowBigStorageCageDetails::getGlassId, glassId)
        );
        //将流程卡广西表内对应的玻璃信息清除
        //将流程卡关系表内对应的玻璃信息清除
        hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
                .set(HollowGlassRelationInfo::getGlassId, null)
                .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -198,19 +198,20 @@
        Map<Integer, List<HollowGlassRelationInfo>> listMap = hollowGlassRelationInfos.stream().collect(Collectors.groupingBy(HollowGlassRelationInfo::getHollowSequence));
        //设置间隔板数据共所有配对玻璃使用
        List<LisecHollowFrameDetails> frameList = new ArrayList<>();
        for (int i = 1; i < relationInfo.getTotalLayer(); i++) {
            LisecHollowFrameDetails frameDetails = new LisecHollowFrameDetails();
            frameDetails.setRecType("<FR" + i + ">");
            frameDetails.setType(formulaDetails.getIntervalFrameType());
            frameDetails.setWidth(formulaDetails.getIntervalFrameWidth());
            frameDetails.setHeight(formulaDetails.getIntervalFrameHeight());
            frameList.add(frameDetails);
        }
//        for (int i = 1; i < relationInfo.getTotalLayer(); i++) {
//            LisecHollowFrameDetails frameDetails = new LisecHollowFrameDetails();
//            frameDetails.setRecType("<FR" + i + ">");
//            frameDetails.setType(formulaDetails.getIntervalFrameType());
//            frameDetails.setWidth(formulaDetails.getIntervalFrameWidth());
//            frameDetails.setHeight(formulaDetails.getIntervalFrameHeight());
//            frameList.add(frameDetails);
//        }
        List<LisecHollowGlassAndFrameDetails> glassAndFrameList = new ArrayList<>();
        listMap.forEach((e, v) -> {
            LisecHollowGlassAndFrameDetails glassAndFrame = new LisecHollowGlassAndFrameDetails();
            List<LisecHollowGlassDetails> glassList = new ArrayList<>();
            List<LisecHollowFrameDetails> frameList = new ArrayList<>();
            for (int i = 1; i <= v.size(); i++) {
                LisecHollowGlassDetails hollowGlassDetails = new LisecHollowGlassDetails();
                hollowGlassDetails.setRecType("<GL" + i + ">");
@@ -219,7 +220,7 @@
                glassList.add(hollowGlassDetails);
            }
            glassAndFrame.setGlassList(glassList);
            glassAndFrame.setFrameList(frameList);
            glassAndFrame.setItemNum(e + "");
            glassAndFrame.setIdNum(e + "");
            glassAndFrame.setBarcode(randomNumber.substring(randomNumber.length() - 3));
@@ -227,35 +228,43 @@
            glassAndFrame.setHeight((int) (v.get(0).getHeight() * 10) + "");
            glassAndFrame.setGlass1(e * ID_RATIO + 1 + "");
            glassAndFrame.setFrame1(formulaDetails.getFrameOne());
            frameList.add(new LisecHollowFrameDetails("<FR1",formulaDetails.getIntervalFrameTypeOne(), formulaDetails.getIntervalFrameWidthOne(), formulaDetails.getIntervalFrameHeightOne()));
            glassAndFrame.setGasCode1(formulaDetails.getCasOne());
            if (relationInfo.getTotalLayer() == 2) {
                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
            } else if (relationInfo.getTotalLayer() == 3) {
                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
                glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
                frameList.add(new LisecHollowFrameDetails("<FR2",formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
                glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
                glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
            } else if (relationInfo.getTotalLayer() == 4) {
                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
                glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
                frameList.add(new LisecHollowFrameDetails("<FR2",formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
                glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
                glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
                glassAndFrame.setFrame3(formulaDetails.getFrameThree());
                frameList.add(new LisecHollowFrameDetails("<FR3",formulaDetails.getIntervalFrameTypeThree(), formulaDetails.getIntervalFrameWidthThree(), formulaDetails.getIntervalFrameHeightThree()));
                glassAndFrame.setGasCode3(formulaDetails.getCasThree());
                glassAndFrame.setGlass4(e * ID_RATIO + 4 + "");
            } else {
                glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
                glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
                frameList.add(new LisecHollowFrameDetails("<FR2",formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
                glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
                glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
                glassAndFrame.setFrame3(formulaDetails.getFrameThree());
                frameList.add(new LisecHollowFrameDetails("<FR3",formulaDetails.getIntervalFrameTypeThree(), formulaDetails.getIntervalFrameWidthThree(), formulaDetails.getIntervalFrameHeightThree()));
                glassAndFrame.setGasCode3(formulaDetails.getCasThree());
                glassAndFrame.setGlass4(e * ID_RATIO + 4 + "");
                glassAndFrame.setFrame3(formulaDetails.getFrameFour());
                frameList.add(new LisecHollowFrameDetails("<FR4",formulaDetails.getIntervalFrameTypeFour(), formulaDetails.getIntervalFrameWidthFour(), formulaDetails.getIntervalFrameHeightFour()));
                glassAndFrame.setGasCode4(formulaDetails.getCasFour());
                glassAndFrame.setGlass4(e * ID_RATIO + 5 + "");
            }
            glassAndFrame.setInset(formulaDetails.getSealInsert());
            glassAndFrame.setFrameList(frameList);
            glassAndFrameList.add(glassAndFrame);
        });
        details.setGlassAndFrameList(glassAndFrameList);
@@ -279,7 +288,7 @@
        // 将生成的文件存入指定路径
        //计算生成李赛克需要的数据给到每个属性
        StringWriter out = new StringWriter();
        File file = new File("D:\\temp", relationInfo.getFlowCardId() + randomNumber.substring(randomNumber.length() - 3) + ".trf");
        File file = new File(System.getProperty("user.dir")+"/lisec", relationInfo.getFlowCardId() + randomNumber.substring(randomNumber.length() - 3) + ".trf");
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
            temp.process(root, out);
            writer.write(out.toString());
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -540,6 +540,9 @@
                    hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
                } else {
                    hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
                    //按照格子信息更新对应的设备id
                    List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
                    hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
                }
                log.info("4、大理片笼进片状态已完成已完成的玻璃信息id:{}", v);
                updateSlotRemainBySlots(outSuccessGlassSlot);
hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
@@ -39,6 +39,15 @@
            and state !=101
        </where>
    </update>
    <update id="updateDeviceIdBySlot">
        update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
        set t.device_id = t1.device_id
        where t.slot in (
        <foreach collection="list" item="item" separator=",">
            #{item}
        </foreach>
        )
    </update>
    <select id="hollowIsAll" resultMap="baseMap">
        WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, min(thickness) as
hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl
@@ -2,11 +2,11 @@
${details.bthRecType}|${blank.computeBlank(details.bathInfo,10)}|${blank.computeBlank(details.bcdStart,6)}|${blank.computeZero(details.batchNo,8)}
${details.ordRecType}|${blank.computeZero(details.ord,10)}|${blank.computeBlank(details.custNum,10)}|${blank.computeBlank(details.custNam,40)}|${blank.computeBlank(details.text1,40)}|${blank.computeBlank(details.text2,40)}|${blank.computeBlank(details.text3,40)}|${blank.computeBlank(details.text4,40)}|${blank.computeBlank(details.text5,40)}|${details.proDate}|${details.delDate}|${blank.computeBlank(details.delArea,10)}
<#list details.glassAndFrameList as item>
    ${item.recType}|${blank.computeZero(item.itemNum,5)}|${blank.computeBlank(item.idNum,8)}|${blank.computeZero(item.barcode,4)}|${item.qty}|${blank.computeZero(item.width,6)}|${blank.computeZero(item.height,6)}|${blank.computeBlank(item.glass1,9)}|${blank.computeBlank(item.frame1,9)}|${blank.computeBlank(item.glass2,9)}|${blank.computeBlank(item.frame2,9)}|${blank.computeBlank(item.glass3,9)}|${blank.computeBlank(item.frame3,9)}|${blank.computeBlank(item.glass4,9)}|${blank.computeBlank(item.frame4,9)}|${blank.computeBlank(item.glass5,9)}|${blank.computeZero(item.inset,4)}|${blank.computeZero(item.frameTxt,2)}|${blank.computeZero(item.gasCode1,9)}|${blank.computeZero(item.gasCode2,9)}|${blank.computeZero(item.gasCode3,9)}|${blank.computeZero(item.gasCode4,9)}|${blank.computeZero(item.sealType,9)}|${blank.computeZero(item.frahType,1)}|${blank.computeZero(item.frahHoe,6)}|${blank.computeZero(item.pattDir,1)}|${blank.computeZero(item.dguPane,1)}
${item.recType}|${blank.computeZero(item.itemNum,5)}|${blank.computeBlank(item.idNum,8)}|${blank.computeZero(item.barcode,4)}|${item.qty}|${blank.computeZero(item.width,6)}|${blank.computeZero(item.height,6)}|${blank.computeBlank(item.glass1,9)}|${blank.computeBlank(item.frame1,9)}|${blank.computeBlank(item.glass2,9)}|${blank.computeBlank(item.frame2,9)}|${blank.computeBlank(item.glass3,9)}|${blank.computeBlank(item.frame3,9)}|${blank.computeBlank(item.glass4,9)}|${blank.computeBlank(item.frame4,9)}|${blank.computeBlank(item.glass5,9)}|${blank.computeZero(item.inset,4)}|${blank.computeZero(item.frameTxt,2)}|${blank.computeZero(item.gasCode1,9)}|${blank.computeZero(item.gasCode2,9)}|${blank.computeZero(item.gasCode3,9)}|${blank.computeZero(item.gasCode4,9)}|${blank.computeZero(item.sealType,9)}|${blank.computeZero(item.frahType,1)}|${blank.computeZero(item.frahHoe,6)}|${blank.computeZero(item.pattDir,1)}|${blank.computeZero(item.dguPane,1)}
    <#list item.glassList as glass>
        ${glass.recType}|${blank.computeZero(glass.itemInx,5)}|${blank.computeBlank(glass.descript,40)}|${blank.computeZero(glass.surface,1)}|${blank.computeZero(glass.thickness,5)}|${blank.computeZero(glass.faceSide,1)}|${blank.computeBlank(glass.ident,10)}|${blank.computeZero(glass.pattDir,1)}|${blank.computeBlank(glass.paneBcd,10)}|${blank.computeZero(glass.prodPane,1)}|${blank.computeZero(glass.prodComp,2)}|${blank.computeZero(glass.gategory,2)}
${glass.recType}|${blank.computeZero(glass.itemInx,5)}|${blank.computeBlank(glass.descript,40)}|${blank.computeZero(glass.surface,1)}|${blank.computeZero(glass.thickness,5)}|${blank.computeZero(glass.faceSide,1)}|${blank.computeBlank(glass.ident,10)}|${blank.computeZero(glass.pattDir,1)}|${blank.computeBlank(glass.paneBcd,10)}|${blank.computeZero(glass.prodPane,1)}|${blank.computeZero(glass.prodComp,2)}|${blank.computeZero(glass.gategory,2)}
    </#list>
    <#list item.frameList as frame>
        ${frame.recType}|${blank.computeZero(frame.itemInx,5)}|${blank.computeBlank(frame.descript,40)}|${blank.computeZero(frame.type,2)}|${blank.computeZero(frame.color,2)}|${blank.computeZero(frame.width,5)}|${blank.computeZero(frame.height,5)}|${blank.computeBlank(frame.ident,10)}|${blank.computeBlank(frame.frameBcd,10)}
${frame.recType}|${blank.computeZero(frame.itemInx,5)}|${blank.computeBlank(frame.descript,40)}|${blank.computeZero(frame.type,2)}|${blank.computeZero(frame.color,2)}|${blank.computeZero(frame.width,5)}|${blank.computeZero(frame.height,5)}|${blank.computeBlank(frame.ident,10)}|${blank.computeBlank(frame.frameBcd,10)}
    </#list>
</#list>