|  |  | 
 |  |  | 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; | 
 |  |  |  | 
 |  |  | 
 |  |  |                 byte[] read = read(8, 100); | 
 |  |  |                 if (null != read) { | 
 |  |  |                     String s = new String(read); | 
 |  |  |                     if (!Cools.isEmpty(s) && s.startsWith("=")) { | 
 |  |  |                     if (!Cools.isEmpty(s) && s.startsWith("\u0002+")) { | 
 |  |  | //                    if (!Cools.isEmpty(s) && s.startsWith("=")) { | 
 |  |  |                         scale = Double.parseDouble(s.substring(1)); | 
 |  |  |  | 
 |  |  | //                        System.out.println("scale:"+scale+ "ip:"+slave.getIp()); | 
 |  |  | //                        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("更新数据库数据失败"); | 
 |  |  | //                        if(scale > 20) { | 
 |  |  |                             try{ | 
 |  |  |                                 // 获取站信息 | 
 |  |  |                                 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, slave.getDevpPlcId()); | 
 |  |  |                                 StaProtocol staProtocol = devpThread.getStation().get(slave.getStaNo()); | 
 |  |  |                                 if (staProtocol != null) { | 
 |  |  |                                     if (scale>10000){ | 
 |  |  |                                         scale = scale-10000; | 
 |  |  |                                     } | 
 |  |  |                                     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); | 
 |  |  | // | 
 |  |  | //                            } | 
 |  |  | //                        } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 Thread.sleep(100); | 
 |  |  | 
 |  |  |             dataOutputStream = new DataOutputStream(socket.getOutputStream()); | 
 |  |  |             dataInputStream = new DataInputStream(socket.getInputStream()); | 
 |  |  | //            log.info("条码扫描仪连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  |             DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
 |  |  |             deviceErrorService.deleteDeviceError("scale", slave.getId()); | 
 |  |  |             try{ | 
 |  |  |                 DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
 |  |  |                 deviceErrorService.deleteDeviceError("Scale", slave.getId()); | 
 |  |  |             } catch (Exception e){ | 
 |  |  | //                log.error("e:"+e.getMessage()); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             socket = null; | 
 |  |  |             log.error("磅秤连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  |             DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
 |  |  |             deviceErrorService.addDeviceError("scale", slave.getId(), "磅秤连接失败"); | 
 |  |  | //            log.error("磅秤连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  | //            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
 |  |  | //            deviceErrorService.addDeviceError("scale", slave.getId(), "磅秤连接失败"); | 
 |  |  |             try{ | 
 |  |  |                 DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); | 
 |  |  |                 deviceErrorService.deleteDeviceError("Scale", slave.getId()); | 
 |  |  |             } catch (Exception e1){ | 
 |  |  | //                log.error("e:"+e1.getMessage()); | 
 |  |  |             } | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |         return true; | 
 |  |  | 
 |  |  |         return true; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 清除作业启动中 | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public void setWrkSign() { | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |