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/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-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); + } + + } 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/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/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 fee8e85..ba5eb73 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 @@ -64,10 +64,14 @@ import com.cowr.model._MappingKit; import com.cowr.ssjygl.CacheData; import com.cowr.ssjygl.actioncmdlog.ActionCmdLogController; import com.cowr.ssjygl.cctv.CctvController; +import com.cowr.local.ssjygl.prepay.PrepayController; +import com.cowr.local.ssjygl.overall.OverallController; import com.cowr.ssjygl.modifylog.ModifyLogController; import com.cowr.ssjygl.stat.invoice.InvoiceUseController; import com.cowr.ssjygl.stat.purchase.OrderPurchaseStatController; +import com.cowr.local.ssjygl.stat.sale.OrderStatController; import com.cowr.ssjygl.stat.transfer.OrderTransferStatController; +import com.cowr.local.ssjygl.system.sysuser.SysuserController; import com.cowr.ssjygl.transportcompany.TransportCompanyService; import com.cowr.ssjygl.transprice.TransPriceService; import com.jfinal.config.*; @@ -84,6 +88,10 @@ import com.jfinal.plugin.druid.DruidPlugin; import com.jfinal.plugin.druid.DruidStatViewHandler; import com.jfinal.plugin.redis.RedisPlugin; import com.jfinal.template.Engine; +import com.cowr.common.Interceptor.ReporterInterceptor; +import com.cowr.common.handler.GlobalHandler; +import com.cowr.common.view.JsonRenderFactory; +import com.cowr.model._MappingKit; import java.io.File; import java.sql.Connection; 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 ab442ce..0bbba21 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 @@ -17,6 +17,11 @@ import com.cowr.model.*; 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.*; +import com.cowr.local.ssjygl.modifylog.ModifyLogSyncService; import com.cowr.ssjygl.prepay.prepaycustomer.PrepayCustomerService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.ssjygl.ticket.log.TicketLogService; @@ -377,9 +382,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); @@ -719,13 +724,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("客户余额不足"); } @@ -740,9 +747,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); } receive.setSurplus(receive.getSurplus() - 1); @@ -1045,9 +1052,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); 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-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();