自动化立体仓库 - WCS系统
*
lsh
2 天以前 184980deb3f854a98eb112e7998875113ebbba9a
src/main/java/com/zy/core/thread/ScaleThread.java
@@ -7,9 +7,13 @@
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceErrorService;
import com.zy.core.DevpThread;
import com.zy.core.Slave;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@@ -52,25 +56,47 @@
                    if (!Cools.isEmpty(s) && s.startsWith("=")) {
                        scale = Double.parseDouble(s.substring(1));
//                        String substring = s.substring(1);
//                        String s1 = new StringBuilder(substring).reverse().toString();//逆序
//                        scale = Double.parseDouble(s1);
                        //将称重重量写入设备基础数据中的gross_wt字段
                        if(scale > 20) {
                            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
                            Integer staNo = slave.getId() == 1 ? 101 : 201;
                            BasDevp basDevp = basDevpService.selectById(staNo);
                            if(!Cools.isEmpty(basDevp)) {
                                basDevp.setGrossWt(scale);
                                if (null != basDevpService && !basDevpService.updateById(basDevp)) {
                                    throw new Exception("更新数据库数据失败");
                            try{
                                // 获取站信息
                                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, slave.getDevpPlcId());
                                StaProtocol staProtocol = devpThread.getStation().get(slave.getStaNo());
                                if (staProtocol != null) {
                                    devpThread.setGrossWt(staProtocol.getSiteId(), scale);
                                    JSONObject jsonObject = new JSONObject();
                                    jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
                                    jsonObject.put("id", slave.getStaNo());
                                    jsonObject.put("scale", scale);
                                    if (OutputQueue.SCALE.size() >= 32) {
                                        OutputQueue.SCALE.poll();
                                    }
                                    OutputQueue.SCALE.offer(jsonObject);
                                }
                                JSONObject jsonObject = new JSONObject();
                                jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
                                jsonObject.put("id", staNo);
                                jsonObject.put("scale", scale);
                                if (OutputQueue.SCALE.size() >= 32) {
                                    OutputQueue.SCALE.poll();
                                }
                                OutputQueue.SCALE.offer(jsonObject);
                            } catch (Exception e){
                                log.error("称重模块异常"+e.getMessage());
                            }
//                            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
//                            BasDevp basDevp = basDevpService.selectById(slave.getStaNo());
//                            if(!Cools.isEmpty(basDevp)) {
//                                basDevp.setGrossWt(scale);
//                                if (null != basDevpService && !basDevpService.updateById(basDevp)) {
//                                    throw new Exception("更新数据库数据失败");
//                                }
//                                JSONObject jsonObject = new JSONObject();
//                                jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
//                                jsonObject.put("id", slave.getStaNo());
//                                jsonObject.put("scale", scale);
//                                if (OutputQueue.SCALE.size() >= 32) {
//                                    OutputQueue.SCALE.poll();
//                                }
//                                OutputQueue.SCALE.offer(jsonObject);
//
//                            }
                        }
                    }
                }