From f3839eb798ed0c2a1f1055426b25d7edef497076 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Sun, 7 Mar 2021 02:04:54 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E7=9F=B3=E7=95=88=E7=AB=99=E6=9B=B4?= =?UTF-8?q?=E6=8D=A2=E5=9C=B0=E7=A3=85=EF=BC=8C=E4=BF=AE=E5=A4=8DPLC?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devicectrl/common/DeviceThread.java | 25 +++++++++++++++++-- .../devicectrl/controllers/InController.java | 4 +-- .../devicectrl/controllers/OutController.java | 2 +- .../com/cowr/local/ssjygl/main/Config.java | 2 +- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/common/DeviceThread.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/common/DeviceThread.java index 68bd03b..c250416 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/common/DeviceThread.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/common/DeviceThread.java @@ -195,7 +195,10 @@ public class DeviceThread extends Thread { scale = new YaoHuaScale(which + "_scale", scaleconf.getString("ip"), scaleconf.getIntValue("port")); } else if (supermarket_id == 4) { // 石畈用了两个不一样的表头 if (scaleconf.getIntValue("port") == 10001) { // 根据现场实际接线配置 - scale = new YaoHuaScale(which + "_scale", scaleconf.getString("ip"), scaleconf.getIntValue("port")); +// scale = new YaoHuaScale(which + "_scale", scaleconf.getString("ip"), scaleconf.getIntValue("port")); + + // 2021-03-07 原来地方1号传感器故障,让二期地磅厂家更换传感器 + scale = new DingsongScale(which + "_scale", scaleconf.getString("ip"), scaleconf.getIntValue("port")); } else { scale = new XiShuiScale(which + "_scale", scaleconf.getString("ip"), scaleconf.getIntValue("port")); } @@ -306,7 +309,25 @@ public class DeviceThread extends Thread { scale.connect(); } - return scale.weigh15(); + try { + return scale.weigh15(); + }catch (Exception e){ + log.error(e.getMessage(), e); + + try { + scale.disconnect(); + Thread.sleep(500); + scale.connect(); + } catch (Exception e1) { + log.error(e1.getMessage(), e1); + } + + if (!scale.isConnected()) { + return null; + } + + return scale.weigh15(); + } } public void print(String printerId, File file) throws IOException { diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/InController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/InController.java index cacf78a..483a689 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/InController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/InController.java @@ -33,13 +33,13 @@ public class InController extends Controller implements Runnable { setRod1Up("rodIn1Up"); } if (StrKit.isBlank(rod2Up)) { - setRod1Up("rodIn2Up"); + setRod2Up("rodIn2Up"); } if (StrKit.isBlank(sensor1Reset)) { setSensor1Reset("sensorIn1Reset"); } if (StrKit.isBlank(sensor2Reset)) { - setSensor1Reset("sensorIn2Reset"); + setSensor2Reset("sensorIn2Reset"); } if (StrKit.isBlank(sensor1)) { setSensor1("sensorIn1"); diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/OutController.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/OutController.java index 8061d18..fb0d734 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/OutController.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/controllers/OutController.java @@ -47,7 +47,7 @@ public class OutController extends Controller implements Runnable { setSensor1("sensorOut1"); } if (StrKit.isBlank(sensor2)) { - setSensor1("sensorOut2"); + setSensor2("sensorOut2"); } } diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java index 62d29e4..2e5f524 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java @@ -95,7 +95,7 @@ public class Config extends JFinalConfig { public static DeviceThread deviceThread = new DeviceThread(); public static SocketIOService socketio = null; private static boolean client_run = true; - public static final String CLINET_VERSION = "20210221"; + public static final String CLINET_VERSION = "20210307"; public static String getRootPath() { return PathKit.getWebRootPath() From f54734c197dead6e59e568111a38ab9eceb9ddc3 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Sun, 7 Mar 2021 19:32:22 +0800 Subject: [PATCH 2/7] . --- .../devicectrl/device/DingsongScale.java | 65 ++++++++++--------- .../transport/TransportSyncService.java | 15 ++++- 2 files changed, 46 insertions(+), 34 deletions(-) diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/DingsongScale.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/DingsongScale.java index 983c766..63bb499 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/DingsongScale.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/DingsongScale.java @@ -59,45 +59,48 @@ public class DingsongScale extends AbsScale { ArrayList list = new ArrayList<>(); AtomicBoolean run = new AtomicBoolean(true); - InputStream inputStream = socket.getInputStream(); - byte[] clearBuf = new byte[inputStream.available()]; - inputStream.read(clearBuf); - int errCount = 0; + try (InputStream inputStream = socket.getInputStream()) { + byte[] clearBuf = new byte[inputStream.available()]; + inputStream.read(clearBuf); + int errCount = 0; - while (run.get() && list.size() < 15) { - long st = System.currentTimeMillis(); + while (run.get() && list.size() < 15) { + long st = System.currentTimeMillis(); - byte[] buf = new byte[DATA_LENGTH]; - int read = inputStream.read(buf); + byte[] buf = new byte[DATA_LENGTH]; + int read = inputStream.read(buf); - if (read != DATA_LENGTH && errCount < 10) { - errCount++; - continue; - } - - String weight = new String(Arrays.copyOfRange(buf, DATA_FROM, DATA_TO)); - - if (!pattern.matcher(weight).matches() || weight.equals("000000")) { -// System.out.println("error:" + weight); - - if (errCount == 100) { - break; - } - errCount++; - continue; - } - - try { - if (Long.parseLong(weight) > 100000) { + if (read != DATA_LENGTH && errCount < 10) { errCount++; continue; } - } catch (Exception e) { - log.error(e.getMessage(), e); - } + + String weight = new String(Arrays.copyOfRange(buf, DATA_FROM, DATA_TO)); + + if (!pattern.matcher(weight).matches() || weight.equals("000000")) { +// System.out.println("error:" + weight); + + if (errCount == 100) { + break; + } + errCount++; + continue; + } + + try { + if (Long.parseLong(weight) < 50 || Long.parseLong(weight) > 100000) { + errCount++; + continue; + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } // System.out.println("读一次耗时:" + (System.currentTimeMillis() - st) + ", " + Double.parseDouble(flip(weight))); - list.add(weight); + list.add(weight); + } + } catch (Exception e) { + log.error(e.getMessage(), e); } String max = "0"; diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java index dc45b3f..0f18fbf 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/transport/TransportSyncService.java @@ -9,14 +9,13 @@ import com.cowr.common.view.Result; import com.cowr.local.ssjygl.devicectrl.common.Const; import com.cowr.local.ssjygl.main.CliCacheData; import com.cowr.local.ssjygl.main.Config; -import com.cowr.local.ssjygl.order.LocalOrderService; +import com.cowr.local.ssjygl.modifylog.ModifyLogSyncService; import com.cowr.local.ssjygl.ossfilelog.OssfileLogService; import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.model.*; import com.cowr.ssjygl.CacheData; import com.cowr.ssjygl.blacklist.BlacklistService; -import com.cowr.local.ssjygl.modifylog.ModifyLogSyncService; import com.cowr.ssjygl.order.OrderService; import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService; import com.cowr.ssjygl.transport.TransportService; @@ -30,7 +29,7 @@ import net.coobird.thumbnailator.Thumbnails; import java.io.File; import java.math.BigDecimal; -import java.util.*; +import java.util.Date; /** * 该类下会操作 MySQL 数据,需要将修改的数据同步到服务端 @@ -361,6 +360,16 @@ public class TransportSyncService { Config.socketio.pubMessage(new Record().set("truck_license", result.getLicense()).set("msg", result.getLicense() + " 未找到入场记录!")); return result; } + + Date intime = transport.getInTime(); + + // 水利站是同进同出,进场时间不足 1 分钟,不识别抬杆 + if (supermarket_id == 9 && (intime != null) && ((System.currentTimeMillis() - intime.getTime()) < (60 * 1000))) { + log.error("车辆【" + result.getLicense() + "】入场不到 1 分钟,可能是识别了车尾!"); + Config.socketio.pubMessage(new Record().set("truck_license", result.getLicense()).set("msg", result.getLicense() + " 入场不到 1 分钟,可能是识别了车尾!")); + return result; + } + File uploadfile = null; if (file != null) { String fileuuid = StrKit.getRandomUUID(); From 5bfea9b517a5f79af5c186e386dad3032b3efc31 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Mon, 8 Mar 2021 19:31:36 +0800 Subject: [PATCH 3/7] . --- .../ssjygl/devicectrl/device/KeLiScale.java | 66 ++++++++++--------- .../ssjygl/devicectrl/device/XiShuiScale.java | 64 +++++++++--------- .../ssjygl/devicectrl/device/YaoHuaScale.java | 63 +++++++++--------- .../com/cowr/local/ssjygl/main/Config.java | 2 +- 4 files changed, 103 insertions(+), 92 deletions(-) diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/KeLiScale.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/KeLiScale.java index 8603bdd..57616d7 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/KeLiScale.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/KeLiScale.java @@ -59,47 +59,51 @@ public class KeLiScale extends AbsScale { ArrayList list = new ArrayList<>(); AtomicBoolean run = new AtomicBoolean(true); - InputStream inputStream = socket.getInputStream(); - byte[] clearBuf = new byte[inputStream.available()]; - inputStream.read(clearBuf); - int errCount = 0; + try (InputStream inputStream = socket.getInputStream()) { + byte[] clearBuf = new byte[inputStream.available()]; + inputStream.read(clearBuf); + int errCount = 0; - while (run.get() && list.size() < 15) { - long st = System.currentTimeMillis(); + while (run.get() && list.size() < 15) { + long st = System.currentTimeMillis(); - byte[] buf = new byte[DATA_LENGTH]; - int read = inputStream.read(buf); + byte[] buf = new byte[DATA_LENGTH]; + int read = inputStream.read(buf); - if (read != DATA_LENGTH && errCount < 10) { - errCount++; - continue; - } - - String weight = new String(Arrays.copyOfRange(buf, DATA_FROM, DATA_TO)); - - if (!pattern.matcher(weight).matches() || weight.equals("000000")) { -// System.out.println("error:" + weight); - - if (errCount == 100) { - break; - } - errCount++; - continue; - } - - try { - if (Long.parseLong(weight) > 100000) { + if (read != DATA_LENGTH && errCount < 10) { errCount++; continue; } - } catch (Exception e) { - log.error(e.getMessage(), e); - } + + String weight = new String(Arrays.copyOfRange(buf, DATA_FROM, DATA_TO)); + + if (!pattern.matcher(weight).matches() || weight.equals("000000")) { +// System.out.println("error:" + weight); + + if (errCount == 100) { + break; + } + errCount++; + continue; + } + + try { + if (Long.parseLong(weight) > 100000) { + errCount++; + continue; + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } // System.out.println("读一次耗时:" + (System.currentTimeMillis() - st) + ", " + Double.parseDouble(flip(weight))); - list.add(weight); + list.add(weight); + } + } catch (Exception e) { + log.error(e.getMessage(), e); } + String max = "0"; if (list.size() > 0) { Map collect = list.stream().collect( diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/XiShuiScale.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/XiShuiScale.java index 9e59749..2b21803 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/XiShuiScale.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/XiShuiScale.java @@ -52,47 +52,51 @@ public class XiShuiScale extends AbsScale { ArrayList list = new ArrayList<>(); AtomicBoolean run = new AtomicBoolean(true); - InputStream inputStream = socket.getInputStream(); - byte[] clearBuf = new byte[inputStream.available()]; - inputStream.read(clearBuf); - int errCount = 0; + try (InputStream inputStream = socket.getInputStream()) { + byte[] clearBuf = new byte[inputStream.available()]; + inputStream.read(clearBuf); + int errCount = 0; - while (run.get() && list.size() < 15) { + while (run.get() && list.size() < 15) { // long st = System.currentTimeMillis(); - byte[] buf = new byte[18]; - int read = inputStream.read(buf); + byte[] buf = new byte[18]; + int read = inputStream.read(buf); - if (read != 18 && errCount < 10) { - errCount++; - continue; - } - - String weight = new String(Arrays.copyOfRange(buf, 4, 10)); - - if (!pattern.matcher(weight).matches() || weight.equals("000000")) { -// log.error("error weight: %s", weight); - - if (errCount == 100) { - break; - } - errCount++; - continue; - } - - try { - if (Long.parseLong(weight) > 100000) { + if (read != 18 && errCount < 10) { errCount++; continue; } - } catch (Exception e) { - log.error(e.getMessage(), e); - } + + String weight = new String(Arrays.copyOfRange(buf, 4, 10)); + + if (!pattern.matcher(weight).matches() || weight.equals("000000")) { +// log.error("error weight: %s", weight); + + if (errCount == 100) { + break; + } + errCount++; + continue; + } + + try { + if (Long.parseLong(weight) > 100000) { + errCount++; + continue; + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } // System.out.println("读一次耗时:" + (System.currentTimeMillis() - st) + ", " + Double.parseDouble(flip(weight))); - list.add(weight); + list.add(weight); + } + } catch (Exception e) { + log.error(e.getMessage(), e); } + String max = "0"; if (list.size() > 0) { Map collect = list.stream().collect( diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/YaoHuaScale.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/YaoHuaScale.java index ec9118e..44912b0 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/YaoHuaScale.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/devicectrl/device/YaoHuaScale.java @@ -55,44 +55,47 @@ public class YaoHuaScale extends AbsScale { ArrayList list = new ArrayList<>(); AtomicBoolean run = new AtomicBoolean(true); - InputStream inputStream = socket.getInputStream(); - byte[] clearBuf = new byte[inputStream.available()]; - inputStream.read(clearBuf); - int errCount = 0; + try (InputStream inputStream = socket.getInputStream()) { + byte[] clearBuf = new byte[inputStream.available()]; + inputStream.read(clearBuf); + int errCount = 0; - while (run.get() && list.size() < 15) { - long st = System.currentTimeMillis(); + while (run.get() && list.size() < 15) { + long st = System.currentTimeMillis(); - byte[] buf = new byte[12]; - int read = inputStream.read(buf); + byte[] buf = new byte[12]; + int read = inputStream.read(buf); - if (read != 18 && errCount < 10) { - errCount++; - continue; - } - - String weight = new String(Arrays.copyOfRange(buf, 2, 8)); - - if (!pattern.matcher(weight).matches() || weight.equals("000000")) { -// System.out.println("error:" + weight); - - if (errCount == 100) { - break; - } - errCount++; - continue; - } - try { - if (Long.parseLong(weight) > 100000) { + if (read != 18 && errCount < 10) { errCount++; continue; } - } catch (Exception e) { - log.error(e.getMessage(), e); - } + + String weight = new String(Arrays.copyOfRange(buf, 2, 8)); + + if (!pattern.matcher(weight).matches() || weight.equals("000000")) { +// System.out.println("error:" + weight); + + if (errCount == 100) { + break; + } + errCount++; + continue; + } + try { + if (Long.parseLong(weight) > 100000) { + errCount++; + continue; + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } // System.out.println("读一次耗时:" + (System.currentTimeMillis() - st) + ", " + Double.parseDouble(flip(weight))); - list.add(weight); + list.add(weight); + } + } catch (Exception e) { + log.error(e.getMessage(), e); } String max = "0"; diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java index 2e5f524..fcbcd98 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java @@ -95,7 +95,7 @@ public class Config extends JFinalConfig { public static DeviceThread deviceThread = new DeviceThread(); public static SocketIOService socketio = null; private static boolean client_run = true; - public static final String CLINET_VERSION = "20210307"; + public static final String CLINET_VERSION = "20210308"; public static String getRootPath() { return PathKit.getWebRootPath() From d3a1b6834c6cb41d42103aeb176fc4b51abf2d67 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Tue, 9 Mar 2021 20:56:29 +0800 Subject: [PATCH 4/7] . --- .../java/com/cowr/local/ssjygl/synctask/SyncTaskService.java | 2 +- .../java/com/cowr/service/ssjygl/synctask/SyncTaskService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/synctask/SyncTaskService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/synctask/SyncTaskService.java index 8defb02..ad2e8ac 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/synctask/SyncTaskService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/synctask/SyncTaskService.java @@ -291,7 +291,7 @@ public class SyncTaskService { } } - if (!saveauthlics.isEmpty() && !deleteauthlics.isEmpty()) { + if (!saveauthlics.isEmpty() || !deleteauthlics.isEmpty()) { return recvAuthLicense(saveauthlics, deleteauthlics); } diff --git a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/synctask/SyncTaskService.java b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/synctask/SyncTaskService.java index 842ec36..5777f79 100644 --- a/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/synctask/SyncTaskService.java +++ b/ssjygl-xsx-service/src/main/java/com/cowr/service/ssjygl/synctask/SyncTaskService.java @@ -449,7 +449,7 @@ public class SyncTaskService { } } - if (!saveauthlics.isEmpty() && !deleteauthlics.isEmpty()) { + if (!saveauthlics.isEmpty() || !deleteauthlics.isEmpty()) { return recvAuthLicense(saveauthlics, deleteauthlics, current_supermarket_id); } From 81f60e05be610d914ada439e535412e5d03add87 Mon Sep 17 00:00:00 2001 From: "lisai17@sina.com" Date: Thu, 11 Mar 2021 23:16:43 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E5=8F=91=E7=A5=A8=E4=BD=BF=E7=94=A8=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ssjygl/invoice/log/InvoiceLogService.java | 8 ++++++++ .../java/com/cowr/local/ssjygl/main/Config.java | 2 +- .../order/ordertemp/OrderTempSyncService.java | 16 ++++++++-------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/invoice/log/InvoiceLogService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/invoice/log/InvoiceLogService.java index 4a289c3..36f8b0b 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/invoice/log/InvoiceLogService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/invoice/log/InvoiceLogService.java @@ -26,6 +26,14 @@ import java.util.List; public class InvoiceLogService extends BaseService { public static final InvoiceLogService me = new InvoiceLogService(); + public InvoiceLog checkUseInvoiceLog(String invoice_number, String invoice_code) { + return InvoiceLog.dao.findFirst( + "select * from invoice_log t where t.invoice_number = ? and t.code = ? ", + invoice_number, + invoice_code + ); + } + public InvoiceLog checkInvalidInvoiceLog(String invoice_number, String invoice_code) { return InvoiceLog.dao.findFirst( "select * from invoice_log t where t.state = ? and t.invoice_number = ? and t.code = ?", diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java index fcbcd98..61ac2f5 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/main/Config.java @@ -95,7 +95,7 @@ public class Config extends JFinalConfig { public static DeviceThread deviceThread = new DeviceThread(); public static SocketIOService socketio = null; private static boolean client_run = true; - public static final String CLINET_VERSION = "20210308"; + public static final String CLINET_VERSION = "20210311"; public static String getRootPath() { return PathKit.getWebRootPath() diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java index 2b9f272..e668cec 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java @@ -60,9 +60,9 @@ public class OrderTempSyncService { return Result.failed("没有有效的发票领用记录,或者发票已经被使用"); } - InvoiceLog invoiceLog = InvoiceLogService.me.checkInvalidInvoiceLog(invoice_number, invoice_code); + InvoiceLog invoiceLog = InvoiceLogService.me.checkUseInvoiceLog(invoice_number, invoice_code); if (invoiceLog != null) { - return Result.failedstr("发票 %s|%s 已作废", invoice_number, invoice_code); + return Result.failedstr("发票 %s|%s 已使用!重新打开结算界面,获取新的发票信息。", invoice_number, invoice_code); } Product product = Product.dao.findById(product_id); @@ -321,9 +321,9 @@ public class OrderTempSyncService { return Result.failed("没有有效的发票领用记录,或者发票已经被使用"); } - InvoiceLog invoiceLog = InvoiceLogService.me.checkInvalidInvoiceLog(invoice_number, invoice_code); + InvoiceLog invoiceLog = InvoiceLogService.me.checkUseInvoiceLog(invoice_number, invoice_code); if (invoiceLog != null) { - return Result.failedstr("发票 %s|%s 已作废", invoice_number, invoice_code); + return Result.failedstr("发票 %s|%s 已使用!重新打开结算界面,获取新的发票信息。", invoice_number, invoice_code); } order.setInvoiceCode(invoice_code); @@ -642,9 +642,9 @@ public class OrderTempSyncService { return Result.failed("没有有效的发票领用记录,或者发票已经被使用"); } - InvoiceLog invoiceLog = InvoiceLogService.me.checkInvalidInvoiceLog(invoice_number, invoice_code); + InvoiceLog invoiceLog = InvoiceLogService.me.checkUseInvoiceLog(invoice_number, invoice_code); if (invoiceLog != null) { - return Result.failedstr("发票 %s|%s 已作废", invoice_number, invoice_code); + return Result.failedstr("发票 %s|%s 已使用!重新打开结算界面,获取新的发票信息。", invoice_number, invoice_code); } // 不满足开专票的条件的,就必须开具冠名发票 @@ -891,9 +891,9 @@ public class OrderTempSyncService { return Result.failed("没有有效的发票领用记录,或者发票已经被使用"); } - InvoiceLog invoiceLog = InvoiceLogService.me.checkInvalidInvoiceLog(invoice_number, invoice_code); + InvoiceLog invoiceLog = InvoiceLogService.me.checkUseInvoiceLog(invoice_number, invoice_code); if (invoiceLog != null) { - return Result.failedstr("发票 %s|%s 已作废", invoice_number, invoice_code); + return Result.failedstr("发票 %s|%s 已使用!重新打开结算界面,获取新的发票信息。", invoice_number, invoice_code); } order.setInvoiceCode(invoice_code); From 8323695197f2584873adc65fa0d6b48cf5af1ddc Mon Sep 17 00:00:00 2001 From: xiaocui <1334950895@qq.com> Date: Fri, 26 Mar 2021 09:27:47 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=86=BB=E7=BB=93=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cowr/ssjygl/customer/CustomerService.java | 12 +++++++++++- .../com/cowr/ssjygl/prepay/PrepayService.java | 7 +++++-- .../refunddetail/RefundDetailService.java | 18 ++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerService.java index 02b369d..93c9c5b 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/customer/CustomerService.java @@ -78,7 +78,17 @@ public class CustomerService extends BaseService { " ) a on a.customer_id = t.id\n" + " \n" + " left join (\n" + - " select t.* from prepay_customer t\n" + + " select t.id,"+ + " t.customer_id,\n"+ + " t.supermarket_id,\n"+ + "t.recharge_time,\n"+ + " t.spend_time,\n"+ + "t.first_recharge_time,\n"+ + " t.threshold,\n"+ + " t.notice,\n"+ + " (t.surplus-ifnull(m.amount,0)) surplus from prepay_customer t\n"+ + "left join (select customer_id,ifnull(sum(amount),0) amount from refund_detail where state<3 group by customer_id) m\n"+ + " on t.customer_id=m.customer_id\n"+ " left join (\n" + " select max(t.id) prepay_customer_id, t.customer_id from prepay_customer t\n" + " group by t.customer_id\n" + diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java index 10425ea..d99c41d 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/PrepayService.java @@ -11,6 +11,7 @@ import com.cowr.common.enums.OrderStateEnum; import com.cowr.ssjygl.customer.receiver.CustomerReceiverService; import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService; import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService; +import com.cowr.ssjygl.prepay.refunddetail.RefundDetailService; import com.jfinal.kit.StrKit; import com.jfinal.log.Log; import com.jfinal.plugin.activerecord.Db; @@ -20,6 +21,7 @@ import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -137,7 +139,8 @@ public class PrepayService { } Record out = new Record(); - + //获取账户可用余额 + BigDecimal availableBalance = RefundDetailService.me.getAvailableBalance(prepayCustomer.getCustomerId(), prepayCustomer.getSurplus()); out.set("prepay_truck", true); out.set("prepay_threshold", prepayCustomer.getThreshold()); out.set("prepay_truck_type", OrderTypeEnum.TEMP.getTypeid()); // 浠水固定只有外销 @@ -145,7 +148,7 @@ public class PrepayService { out.set("prepay_customer_name", customer.getName()); out.set("prepay_contact_name", pd.getContactName()); out.set("prepay_contact_phone", pd.getContactPhone()); - out.set("prepay_surplus", prepayCustomer.getSurplus()); + out.set("prepay_surplus", availableBalance); out.set("prepay_customer", customer); out.set("prepay_customer_info", prepayCustomer); out.set("prepay_customer_invoice_type", customer.getInvoiceType()); // 客户发票类型 diff --git a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/refunddetail/RefundDetailService.java b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/refunddetail/RefundDetailService.java index f3a3964..713c637 100644 --- a/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/refunddetail/RefundDetailService.java +++ b/ssjygl-xsx-common/src/main/java/com/cowr/ssjygl/prepay/refunddetail/RefundDetailService.java @@ -12,6 +12,7 @@ import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @@ -89,4 +90,21 @@ public class RefundDetailService extends BaseService { public List list() { return RefundDetail.dao.find("select * from refund_detail"); } + + /** + * 获取账户可用余额 + * @param customer_id 客户ID + * @param surplus 账户余额 + * @return + */ + public BigDecimal getAvailableBalance(Integer customer_id,BigDecimal surplus){ + Record record = Db.findFirst("select ifnull(sum(amount),0) amount from refund_detail where state<3 and customer_id=? limit 1", customer_id); + BigDecimal amount = record.getBigDecimal("amount"); + if(surplus==null){ + surplus=new BigDecimal('0'); + } + return surplus.subtract(amount); + } + + } From 66835a2f93890846f796da46830fbd8fe7902a72 Mon Sep 17 00:00:00 2001 From: xiaocui <1334950895@qq.com> Date: Fri, 26 Mar 2021 09:48:14 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=86=BB=E7=BB=93=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../local/ssjygl/order/ordertemp/OrderTempSyncService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java index e668cec..a32f925 100644 --- a/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java +++ b/ssjygl-xsx-local/src/main/java/com/cowr/local/ssjygl/order/ordertemp/OrderTempSyncService.java @@ -14,6 +14,7 @@ import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.ssjygl.invoice.log.InvoiceLogService; import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; import com.cowr.ssjygl.order.ordercluster.OrderclusterService; +import com.cowr.ssjygl.prepay.refunddetail.RefundDetailService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.model.*; @@ -619,13 +620,15 @@ public class OrderTempSyncService { return Result.failed("不是预付费客户"); } + PrepayCustomer prepayCustomer = PrepayCustomerService.me.getPrepayCustomer(customer.getId()); if (prepayCustomer == null) { return Result.failed("没有找到客户预付费信息"); } - - if (prepayCustomer.getSurplus() == null || prepayCustomer.getSurplus().compareTo(min) == 0) { + //账户可用余额 + BigDecimal availableBalance = RefundDetailService.me.getAvailableBalance(prepayCustomer.getCustomerId(), prepayCustomer.getSurplus()); + if (availableBalance == null || availableBalance.compareTo(min) <= 0) { return Result.failed("客户余额不足"); }