ZengTao
2024-06-17 70f2265af5c8ec078ef2a7be65dd7229ab5f2924
Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes
16个文件已修改
282 ■■■■■ 已修改文件
Albania_Mes-ui/src/api/home.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/en-US.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/zh-CN.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/home/index.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/application.properties 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/api/home.js
@@ -357,6 +357,13 @@
        data:""
    })
}
export function StartChange(flowcard) {
    return request({
        url: '/home/StartChange?flowcard='+flowcard,
        method: 'post',
        data:""
    })
}
Albania_Mes-ui/src/lang/locales/en-US.json
@@ -40,6 +40,10 @@
  "Height":"Height",
  "Thickness":"Thickness",
  "Clear":"Clear",
  "MeasureNumber":"MeasureNumber",
  "results":"results",
  "start work":"start work",
  "ip":"localhost",
Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -39,6 +39,9 @@
  "Height":"高",
  "Thickness":"厚度",
  "Clear":"清除",
  "MeasureNumber":"测量数量",
  "results":"结果",
  "start work":"开始工作",
  "ip":"localhost",
  "systemTitle": "登录系统",
Albania_Mes-ui/src/views/home/index.vue
@@ -306,7 +306,9 @@
.cells {
    height: 100%;
}
.custom-row-class{
    background-color: rgb(150, 238, 234) !important;
}
</style>
<template>
    <el-container>
@@ -478,12 +480,12 @@
            <div style="height: 780px;">
                <!--功能-->
                <div>
                    <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state<=0)"
                    <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state <= 0)"
                        style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state<=0)"
                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state <= 0)"
                        style="z-index: 999;">{{
                $t('Manual removal') }}</el-button>
                    <el-button type="primary" @click="AnewMeasure()" :disabled="(this.LastQueue.state<=0)"
                    <el-button type="primary" @click="AnewMeasure()" :disabled="(this.LastQueue.state <= 0)"
                        style="z-index: 999;">{{
                $t('Remeasure') }}</el-button>
                </div>
@@ -493,28 +495,36 @@
                    <!--玻璃图  #81b337-->
                    <div
                        :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:' + ((720 - (this.LastQueue.glassheight / 25 * 7)) / 2) + 'px auto;width:'
                + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
                + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
                + (this.LastQueue.glassheight / 25 * 7) + 'px; background-color: '
                + (this.LastQueue.state > 0 ? '#4CCCE4' : (this.LastQueue.state == 0 ? '#E4CA4C' : '#E4CA4C')) + ';text-align: center;'">
                        {{
                (this.LastQueue.glasswidth + this.LastQueue.glassheight) != 0 ? (this.LastQueue.glasswidth + "*" + this.LastQueue.glassheight) : ""
            }}
                         + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
                         + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
                         + (this.LastQueue.glassheight / 25 * 7/3) + 'px; background-color: '
                         + (this.LastQueue.state > 0 ? '#4CCCE4' : (this.LastQueue.state == 0 ? '#E4CA4C' : '#E4CA4C')) + ';text-align: center;font-size:50px'">
                         <div>
                            {{ $t('Measure')}}
                        </div>
                        <div>
                            {{ $t('Width')+"*"+$t('Height') }}:{{(this.LastQueue.glasswidth + this.LastQueue.glassheight) != 0 ? (this.LastQueue.glasswidth + "*"+this.LastQueue.glassheight)+"" : ""}}
                        </div>
                        <div>
                            {{ $t('results') }}:{{this.LastState[this.LastQueue.state]}}
                        </div>
                    </div>
                </div>
                <!--显示-->
                <div style="width:20px;height: 720px;float: left;"></div>
                <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;">
                    <!--玻璃图  #81b337-->
                    <span class="measuretitle">{{ $t('Width') }}:</span> <span class="measureValue">{{
                <div style="width:600px;height: 720px;border: 2px solid #d1d1d1;float: left;">
                    <!--玻璃图  #81b337  padding: 50px 50px;-->
                    <!-- <span class="measuretitle">{{ $t('Width') }}:</span> <span class="measureValue">{{
                this.LastQueue.glasswidth
            }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Height') }}:</span> <span class="measureValue">{{
                this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Measure Width') }}:</span> <span class="measureValue">{{
                this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                    <br>
@@ -522,10 +532,20 @@
                this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Matching results') }}:</span> <span class="measureValue">{{
                this.LastQueue.state > 0 ? $t('Matching successful') :
                (this.LastQueue.state == 0 ? $t('Multiple data matching'):$t('Matching failed')) }}</span>
                    <br>
                this.LastQueue.state > 0 ? $t('Matching successful') :
                    (this.LastQueue.state == 0 ? $t('Multiple data matching') : $t('Matching failed')) }}</span>
                    <br> -->
                    <el-table :data="this.tasklist3" :row-class-name="rowClassName" style="width: 100%;padding:0;">
                        <el-table-column prop="flowcard" :label="$t('flowcard')"></el-table-column>
                        <el-table-column prop="films" :label="$t('Films')"></el-table-column>
                        <el-table-column prop="width" :label="$t('Width')"></el-table-column>
                        <el-table-column prop="height" :label="$t('Height')"></el-table-column>
                        <el-table-column prop="thickness" :label="$t('Thickness')"></el-table-column>
                        <el-table-column prop="number" :label="$t('Number')"></el-table-column>
                        <el-table-column prop="measurenumber" :label="$t('MeasureNumber')"></el-table-column>
                    </el-table>
                </div>
            </div>
        </el-dialog>
@@ -598,7 +618,7 @@
                </el-table-column>
                <el-table-column prop="line" :label="$t('Task Line')">
                </el-table-column>
                <el-table-column width="300" :label="$t('Operate')">
                <el-table-column width="350" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-select v-model="selected[scope.$index]" :placeholder="$t('Line')"
@@ -612,10 +632,17 @@
                            @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index])">
                            {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            v-show="scope.row.state >= 0 ? true : false"
                            @click="ModeChange(scope.row.flowcard, scope.row.method)">
                            {{ $t('Mode Change') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            v-show="scope.row.state >= 0 ? true : false"
                            @click="StartChange(scope.row.flowcard)">
                            {{ $t('start work') }}</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -661,7 +688,7 @@
    Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
    isAllowReorderings,
    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure
    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure,StartChange
} from "../../api/home";
@@ -724,6 +751,7 @@
            task2: 2,
            tasklist1: [],
            tasklist2: [],
            tasklist3: [],
            order: "",
            glassid: "",
            glassid1: "",
@@ -777,7 +805,8 @@
            GlassIdList: [],
            Scanningmethod: true,
            CurrrentGlassId: "",
            LastQueue: {}
            LastQueue: {},
            LastState: ["",this.$t('Matching successful'),this.$t('Multiple data matching'),this.$t('Matching failed')]
        };
    },
    created() {
@@ -833,6 +862,7 @@
                    this.cagelist2 = obj.cagelist2[0];
                    this.cagelist3 = obj.cagelist3[0];
                    this.cagelist4 = obj.cagelist4[0];
                    this.tasklist3 = obj.glassInfoFlowCard[0];
                    this.tasklist2 = obj.StoragTaskeTaskFeed[0];
                    this.tasklist1 = obj.StoragTaskeTaskOut[0];
                    if (obj.alarmmg[0].length > 0) {
@@ -960,6 +990,13 @@
        //修改出片方式
        ModeChange(flowcard, method) {
            ModeChange(flowcard, method).then(res => {
                if (res.data.message == 200) {
                    this.$message.success(this.$t('Operation successful'));
                }
            });
        },//选择开始工程
        StartChange(flowcard) {
            StartChange(flowcard).then(res => {
                if (res.data.message == 200) {
                    this.$message.success(this.$t('Operation successful'));
                }
@@ -1133,6 +1170,14 @@
        del() {
            this.StorageCageAdd = true;
        },
        rowClassName({ row, rowIndex }) {
            if (row.glasstype!=0&&row.glasstype == this.LastQueue.glasstype) {
                console.log(rowIndex);
                return 'custom-row-class';
            } else {
                return ''; // 返回空字符串表示不添加任何额外的类名
            }
        }
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -31,6 +31,8 @@
    private HomeMapper homeMapper;
    @Autowired
    private HomeService HomeService;
    @Autowired
    private GlassInfoMapper glassInfoMapper;
    private QueueMapper QueueMapper;
    private OutSliceServive outSliceServive;
@@ -63,6 +65,7 @@
    @Override
    public void run() {
        while (this != null) {
            JSONObject jsonObject = new JSONObject();
            try {
@@ -73,9 +76,10 @@
                homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
                storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
                glassInfoMapper = WebSocketServer.applicationContext.getBean(GlassInfoMapper.class);
                // 获取其车的位置
                if (S7control.getinstance().CheckConnected() == true) {
                if (S7control.getinstance().CheckConnected() == true&&false) {
                    double carposition = 0;
                    float car = S7control.getinstance().readFloat32("DB10.1992");
                    carposition = (-40 + (car / (carend - carstart) * 595));
@@ -134,30 +138,37 @@
                // 匹配
                // System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                // if (plcmes.getPlcParameter("GaToMES").getValue() != null) {
                //     String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 请求
                //     String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 发送
                //     double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());// 宽
                //     double height = Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 高
                //     if ("0".equals(PlcRequest) && istest) {
                //         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                 (short) 0);
                //     }
                //     if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
                //         boolean is = HomeService.Normal(width, height, "1");
                //         if (is && istest) {
                //             // 测量成功
                //             S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                     (short) 1);
                // String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 请求
                // String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 发送
                // double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());//
                // 宽
                // double height =
                // Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 高
                // if ("0".equals(PlcRequest) && istest) {
                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                // (short) 0);
                // }
                // if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
                // boolean is = HomeService.Normal(width, height, "1");
                // if (is && istest) {
                // // 测量成功
                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                // (short) 1);
                //         } else if (istest) {
                //             // 重新测量
                //             S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                     (short) 4);
                //         }
                //     }
                // } else if (istest) {
                // // 重新测量
                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                // (short) 4);
                // }
                // }
                // }
                // S7control.getinstance().WriteWord("DB14.170", (short)0);
                // 正在上片订单中的所有小片信息
                List<GlassInfo> glassInfoFlowCard = glassInfoMapper.selectOrderState(1);
                jsonObject.append("glassInfoFlowCard", glassInfoFlowCard);
                Queue LastQueue = QueueMapper.selectLastQueue();
                if (LastQueue == null) {
                    Queue nullQueue = new Queue();
@@ -165,6 +176,7 @@
                    nullQueue.setglassheight(0);
                    nullQueue.setglasswidth(0);
                    nullQueue.setglassheightmm(0);
                    nullQueue.setglasstype(0);
                    nullQueue.setglasswidthmm(0);
                    jsonObject.append("LastQueue", nullQueue);
                } else {
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -538,6 +538,12 @@
    public Result ManualTake(@RequestBody String glassInfo) {
      return storageCageService.ManualTake(glassInfo);
    }
    //开始工程
    @PostMapping("/StartChange")
    public Result StartChange(String flowcard) {
      return storageCageService.StartChange(flowcard);
    }
    //重新测量
    @PostMapping("/AnewMeasure")
    public Result AnewMeasure(@RequestBody String glassInfo) {
springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java
@@ -17,6 +17,8 @@
  private Integer state;// 状态
  private Integer method;// 出片方式
  private Date starttime;// 任务领取时间
  private Integer orderstate;// 任务领取时间
  
  public List<GlassInfo> glassinfo;// 玻璃信息
springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
@@ -24,4 +24,6 @@
  private Integer measurenumber;// 测量完成数量
  private Integer cageno;//笼内数量
  private Integer method;//出片方式
  private Integer orderstate;//出片方式
}
springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java
@@ -10,7 +10,7 @@
    private double glassheight;//玻璃高
    private double glasswidthmm;//玻璃宽英制
    private double glassheightmm;//玻璃高英制
    private int type;//类型
    private int glasstype;//类型
    private int state;//状态
    private String time;//修改时间
@@ -86,12 +86,12 @@
        this.glassheightmm = glassheightmm;
    }
    public int gettype() {
        return type;
    public int getglasstype() {
        return glasstype;
    }
    public void settype(int type) {
        this.type = type;
    public void setglasstype(int glasstype) {
        this.glasstype = glasstype;
    }
    public int getstate() {
springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java
@@ -17,6 +17,8 @@
  private Integer state;// 状态
  private Integer method;// 出片方式
  private Date starttime;// 任务领取时间
  private Integer orderstate;// 任务领取时间
  
  public List<GlassInfo> glassinfo;// 玻璃信息
springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
@@ -24,4 +24,6 @@
  private Integer measurenumber;// 测量完成数量
  private Integer cageno;//笼内数量
  private Integer method;//出片方式
  private Integer orderstate;//出片方式
}
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
@@ -13,12 +13,14 @@
@Repository
public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
    @Select("SELECT * FROM glassinfo where width<=#{maxwidth} and width>=#{minwidth} and height<=#{maxheight} and height>=#{minheight} and measurenumber<number")
    @Select("select gi.* from flowcard as fd LEFT JOIN glassinfo as gi on fd.flowcard=gi.flowcard where fd.orderstate=1 and gi.flowcard is not null and  gi.width<=#{maxwidth} and gi.width>=#{minwidth} and gi.height<=#{maxheight} and gi.height>=#{minheight} and gi.measurenumber<number")
    List<GlassInfo> selectGlassInfos(@Param("maxwidth") double maxwidth, @Param("minwidth") double minwidth, @Param("maxheight") double maxheight, @Param("minheight") double minheight);
    // @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
    // boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
    @Select("SELECT g.* FROM flowcard as f left join glassinfo as g on f.flowcard=g.flowcard WHERE f.orderstate = #{orderstate}")
    List<GlassInfo> selectOrderState(@Param("orderstate") int orderstate);
    @Update("UPDATE glassinfo SET measurenumber = measurenumber+1 WHERE id = #{id}")
    void updatemeasurenumber(@Param("id") int roleId);
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -283,6 +283,10 @@
  @Update("update flowcard set method=#{method} where flowcard=#{flowcard}")
  void ModeChange(String flowcard, int method);
  @Update("update flowcard set orderstate=#{orderstate} where flowcard=#{flowcard}")
  void StartChange(String flowcard,int orderstate);
  @Update("update queue set glassid=concat(#{flowcard},'-',#{tier}),flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},thickness=#{thickness},state=1 where state<=0")
  void UpdateQueue(String flowcard, double width, double height, Integer glasstype, Double thickness, Integer tier);
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
@@ -69,6 +69,7 @@
            //System.out.println("有匹配失败数据未去除");
            return false;
        }
        //查询当前领取的任务
        List<GlassInfo> Result = NormalGlassInfo(width, height, "1");
        if (Result.size() == 1) {
            // 匹配成功 就一种类型 添加数据
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -223,7 +223,7 @@
            homeMapper.DeleteStroageCageByCell(cell);
        } else {
            homeMapper.updateStroageCageByCell(cell, num);
            homeMapper.UpdateStroageCageWidthByCell(cell);//修改笼子宽度
            homeMapper.UpdateStroageCageWidthByCell(cell);// 修改笼子宽度
        }
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
@@ -294,9 +294,9 @@
    // 开始任务
    public Result ClaimTasks(String flowcard, Integer state, Integer line) {
        if (state == 1) {
            homeMapper.ClaimTasks(flowcard, 0,line);
            homeMapper.ClaimTasks(flowcard, 0, line);
        } else {
            homeMapper.ClaimTasks(flowcard, 1,line);
            homeMapper.ClaimTasks(flowcard, 1, line);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
@@ -318,10 +318,10 @@
    // 修改测量信息
    public Result UpdateQueue(GlassInfo glassInfo) {
        homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
                glassInfo.getGlasstype(),glassInfo.getThickness(),glassInfo.getTier());
                glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier());
        Map<String, Object> map = new HashMap<>();
        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
        map.put("message", "200");
        return Result.success(map);
    }
@@ -335,11 +335,19 @@
        // 读取DB105区文件
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 移除
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 3);
        //删除数据
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
        // 删除数据
        QueueMapper.DeleteErrorQueue();
        // plcmes.getPlcParameter("GaToMES").setValue("3");
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
    }
    // 开始工程
    public Result StartChange(String flowcard) {
        homeMapper.StartChange(flowcard, 1);
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
@@ -350,8 +358,8 @@
        // 读取DB105区文件
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 重新测量
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
        //删除数据
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
        // 删除数据
        QueueMapper.DeleteErrorQueue();
        // plcmes.getPlcParameter("GaToMES").setValue("2");
        Map<String, Object> map = new HashMap<>();
@@ -365,14 +373,15 @@
        // 筛选处理数据 1.去除无用数据 2.计算配片ID 3.计算ID 4. 计算总层数
        List<Map> TypeDatas = homeMapper.SelectType();
        Map<String, String> TypeData = new HashMap<String, String>();// 得到处理完后所有的类型
        Map<String, Integer> groupby=new HashMap<String, Integer>(); // 得到处理完后所有总层数;
        Map<String, Integer> OrderFinishedProduct=new HashMap<String, Integer>(); // 得到处理完后订单成品总数量;
        //"order zong 0  1  10  2 10"
        Map<String, Integer> groupby = new HashMap<String, Integer>(); // 得到处理完后所有总层数;
        Map<String, Integer> OrderFinishedProduct = new HashMap<String, Integer>(); // 得到处理完后订单成品总数量;
        // "order zong 0 1 10 2 10"
        List<Map> RemoveErrorData = IportDataStr.stream()
                .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null
                        &&
                        item.get("films") != null && item.get("base") != null && item.get("height") != null
                        && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null))
                        && item.get("thickness") != null && item.get("quantity") != null
                        && item.get("matching") != null))
                .collect(Collectors.toList());
        TypeDatas.forEach(item -> {
@@ -380,32 +389,34 @@
        });
        RemoveErrorData.forEach(item -> {
            String key=item.get("order").toString()+"_"+item.get("matching").toString();
            String keyCount=item.get("order").toString()+"_"+item.get("matching").toString()+"_"+item.get("tier").toString();
            String keyCountSum=item.get("order").toString()+"_"+item.get("matching").toString()+"_Sum";//订单总数
            if (OrderFinishedProduct.get(keyCount)!=null) {
                Integer count=OrderFinishedProduct.get(keyCount)+1;
                Integer sumcount=OrderFinishedProduct.get(keyCountSum)+Integer.parseInt(item.get("quantity").toString());
                OrderFinishedProduct.put(keyCount,count);
                OrderFinishedProduct.put(keyCountSum,sumcount);
            }else if(OrderFinishedProduct.get(keyCount)==null&&groupby.get(key)==null){
                OrderFinishedProduct.put(keyCount,1);
                OrderFinishedProduct.put(keyCountSum,Integer.parseInt(item.get("quantity").toString()));
            String key = item.get("order").toString() + "_" + item.get("matching").toString();
            String keyCount = item.get("order").toString() + "_" + item.get("matching").toString() + "_"
                    + item.get("tier").toString();
            String keyCountSum = item.get("order").toString() + "_" + item.get("matching").toString() + "_Sum";// 订单总数
            if (OrderFinishedProduct.get(keyCount) != null) {
                Integer count = OrderFinishedProduct.get(keyCount) + 1;
                Integer sumcount = OrderFinishedProduct.get(keyCountSum)
                        + Integer.parseInt(item.get("quantity").toString());
                OrderFinishedProduct.put(keyCount, count);
                OrderFinishedProduct.put(keyCountSum, sumcount);
            } else if (OrderFinishedProduct.get(keyCount) == null && groupby.get(key) == null) {
                OrderFinishedProduct.put(keyCount, 1);
                OrderFinishedProduct.put(keyCountSum, Integer.parseInt(item.get("quantity").toString()));
            }
            if (groupby.get(key)!=null) {
                Integer Tiers=groupby.get(key)+1;
            if (groupby.get(key) != null) {
                Integer Tiers = groupby.get(key) + 1;
                groupby.put(key, Tiers);
            }else{
            } else {
                groupby.put(key, 1);
            }
            }
        });
        System.out.println(RemoveErrorData.size());
        // 处理完成 添加数据库
        int count=1;
        int count = 1;
        for (Map map : RemoveErrorData) {
            String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
                       + map.get("thickness").toString() + "_" + map.get("films").toString();
                    + map.get("thickness").toString() + "_" + map.get("films").toString();
            String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
@@ -413,8 +424,8 @@
            Integer glasstype;
            if (TypeData.get(key) == null) {
                glasstype = homeMapper.SelectMaxType();
                if (glasstype==null) {
                    glasstype=1;
                if (glasstype == null) {
                    glasstype = 1;
                }
            } else {
                glasstype = Integer.valueOf(value);
@@ -422,21 +433,18 @@
            //
            homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
                    Integer.parseInt(map.get("matching").toString()) // 需要计算 配片ID
                    ,map.get("order").toString()+"-"+count+"" // 需要计算 玻璃ID
                    , map.get("order").toString() + "-" + count + "" // 需要计算 玻璃ID
                    , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(),
                    Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()),
                    Double.parseDouble(map.get("thickness").toString()),
                    Integer.parseInt(map.get("quantity").toString()),groupby.get(tierkey));// 需要计算总层数
            //订单内总层数
            homeMapper.InsertFlowcard(map.get("order").toString(),OrderFinishedProduct.get(tierkey+"_Sum"));
                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey));// 需要计算总层数
            // 订单内总层数
            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"));
            count++;
        }
        Map<String, Object> ResultCode = new HashMap<>();
        ResultCode.put("message", "200");
        return Result.success(ResultCode);
    }
}
springboot-vue3/src/main/resources/application.properties
@@ -6,8 +6,8 @@
#\u6570\u636E\u5E93\u9A71\u52A8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#\u6570\u636E\u5E93\u8FDE\u63A5\u5730\u5740
spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#spring.datasource.url=jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
# spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#\u6570\u636E\u5E93\u7528\u6237\u540D
spring.datasource.username=root
#\u6570\u636E\u5E93\u7528\u6237\u5BC6\u7801