lisai17@sina.com 2020-09-22 00:15:50 +08:00
parent 7a1c5f62ee
commit 3bc624b4f2
18 changed files with 300 additions and 278 deletions

View File

@ -0,0 +1,37 @@
package com.cowr.ssjygl.order;
import com.cowr.common.base.BaseModel;
import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.model.*;
import com.jfinal.kit.StrKit;
public class OrderService {
public static OrderService me = new OrderService();
/**
* sn
*
* @param sn
* @return
*/
public BaseModel getOrderBySn(String sn) {
if (StrKit.isBlank(sn)) {
return null;
}
int sntype = Integer.parseInt(sn.substring(10, 12));
if (sntype == OrderTypeEnum.SALE.getTypeid()) {
return OrderSale.dao.findById(sn);
} else if (sntype == OrderTypeEnum.TRANSFER.getTypeid()) {
return OrderTransfer.dao.findById(sn);
} else if (sntype == OrderTypeEnum.TEMP.getTypeid()) {
return OrderTemp.dao.findById(sn);
} else if (sntype == OrderTypeEnum.TRASH.getTypeid()) {
return OrderTrash.dao.findById(sn);
} else if (sntype == OrderTypeEnum.PURCHASE.getTypeid()) {
return OrderPurchase.dao.findById(sn);
} else {
return null;
}
}
}

View File

@ -63,49 +63,4 @@ public class InvoiceLogController extends Controller {
InvoiceLog model = getModel(InvoiceLog.class, "", true); // 忽略不在model中的字段 InvoiceLog model = getModel(InvoiceLog.class, "", true); // 忽略不在model中的字段
renderJson(InvoiceLogService.me.findByPk(model)); renderJson(InvoiceLogService.me.findByPk(model));
} }
public void cancel() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
if (tokenuser == null) {
renderJson(Result.noauth());
return;
}
String id = get("id");
String invalid_memo = get("invalid_memo");
renderJson(InvoiceLogSyncService.me.cancel(id, invalid_memo, tokenuser));
}
public void cancelByCode() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
if (tokenuser == null) {
renderJson(Result.noauth());
return;
}
String code = get("code");
String invoice_number = get("invoice_number");
String invalid_memo = get("invalid_memo");
renderJson(InvoiceLogSyncService.me.cancelByCode(invoice_number, code, invalid_memo, tokenuser));
}
public void invalid() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
if (tokenuser == null) {
renderJson(Result.noauth());
return;
}
Integer supermarket_id = getInt("supermarket_id", 0);
String invoice_number = get("invoice_number");
String code = get("code");
String invalid_memo = get("invalid_memo");
renderJson(InvoiceLogSyncService.me.invalid(supermarket_id, invoice_number, code, invalid_memo, tokenuser));
}
} }

View File

@ -1,183 +1,10 @@
package com.cowr.local.ssjygl.invoice.log; package com.cowr.local.ssjygl.invoice.log;
import com.cowr.common.base.BaseModel;
import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.base.BaseSyncService; import com.cowr.local.ssjygl.base.BaseSyncService;
import com.cowr.local.ssjygl.order.OrderService;
import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.cowr.model.*;
import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService;
import com.cowr.ssjygl.modifylog.ModifyLogService;
import com.jfinal.kit.StrKit;
import com.jfinal.log.Log; import com.jfinal.log.Log;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.IAtom;
import java.sql.SQLException;
import java.util.Date;
public class InvoiceLogSyncService extends BaseSyncService { public class InvoiceLogSyncService extends BaseSyncService {
private static Log log = Log.getLog(InvoiceLogSyncService.class); private static Log log = Log.getLog(InvoiceLogSyncService.class);
public static InvoiceLogSyncService me = new InvoiceLogSyncService(); public static InvoiceLogSyncService me = new InvoiceLogSyncService();
/**
* 使
* @return
*/
public Result invalid(int supermarket_id, String invoice_number, String code, String invalid_memo, Sysuser sysuser){
Supermarket supermarket = Supermarket.dao.findById(supermarket_id);
if(supermarket == null){
return Result.failed("未找到超市信息");
}
InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where code = ? limit 1 ", code);
if (invoiceLog != null) {
return Result.failed("发票已使用,请使用“取消发票”功能");
}
InvoiceReceive receive = InvoiceReceiveService.me.foremostReceive(supermarket_id, invoice_number);
if (receive == null) {
return Result.failed("没有有效的发票领用记录");
}
String next_invoice_code = InvoiceReceiveService.me.nextInvoiceCode(receive);
if (next_invoice_code == null) {
return Result.failed("没有可用发票");
}
if(!next_invoice_code.equals(code)){
return Result.failed("只能按顺序作废发票");
}
invoiceLog = new InvoiceLog();
invoiceLog.setId(StrKit.getRandomUUID());
invoiceLog.setInvalidUserId(sysuser.getId());
invoiceLog.setInvalidUserName(sysuser.getName());
invoiceLog.setInvalidTime(new Date());
invoiceLog.setInvalidMemo(invalid_memo);
invoiceLog.setState(OrderStateEnum.INVALID.getStateid());
invoiceLog.setInvoiceReceiveId(receive.getId());
invoiceLog.setCode(code);
invoiceLog.setInvoiceNumber(invoice_number);
InvoiceLog finalInvoiceLog = invoiceLog;
boolean ret = Db.tx(new IAtom() {
@Override
public boolean run() throws SQLException {
try {
boolean ret = finalInvoiceLog.save();
if(!ret){
return false;
}
SyncTask synctask = new SyncTask();
synctask.addSaveData(finalInvoiceLog);
receive.setSurplus(receive.getSurplus() - 1);
receive.setCurrentCode(next_invoice_code);
ret = receive.update();
if (!ret) {
log.error("发票领用信息更新失败", next_invoice_code);
return false;
}
synctask.addUpdateData(receive);
return SyncTaskService.me.save(synctask)
&& ModifyLogService.me.save(finalInvoiceLog, null, Enums.DataOpType.SAVE.getId(), sysuser);
} catch (Exception e) {
log.error(e.getMessage(), e);
return false;
}
}
});
return ret ? Result.success(invoiceLog) : Result.failed(false, "处理失败");
}
public Result cancelByCode(String invoice_number, String code, String invalid_memo, Sysuser sysuser){
InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where invoice_number = ? and code = ? limit 1 ", invoice_number, code);
if (invoiceLog == null) {
return Result.failed("未找到发票记录");
}
return cancel(invoiceLog, invalid_memo, sysuser);
}
public Result cancel(String id, String invalid_memo, Sysuser sysuser){
InvoiceLog invoiceLog = InvoiceLog.dao.findById(id);
if(invoiceLog == null){
return Result.failed("未找到发票记录");
}
return cancel(invoiceLog, invalid_memo, sysuser);
}
/**
* 使
* @param invoiceLog
* @param sysuser
* @return
*/
public Result cancel(InvoiceLog invoiceLog, String invalid_memo, Sysuser sysuser){
if(invoiceLog.getState() == OrderStateEnum.INVALID.getStateid()){
return Result.failed("记录已作废");
}
InvoiceLog old = invoiceLog.clone();
BaseModel order = OrderService.me.getOrderBySn(invoiceLog.getOrderSn());
if(order == null){
return Result.failedstr("未找到订单信息");
}
invoiceLog.setInvalidMemo(invalid_memo);
invoiceLog.setInvalidTime(new Date());
invoiceLog.setInvalidUserId(sysuser.getId());
invoiceLog.setInvalidUserName(sysuser.getName());
invoiceLog.setState(OrderStateEnum.INVALID.getStateid());
boolean ret = Db.tx(new IAtom() {
@Override
public boolean run() {
try{
order.set("invoice_code", null);
order.set("invoice_number", null);
boolean ret = order.update();
if(!ret){
return false;
}
SyncTask synctask = new SyncTask();
synctask.addUpdateData(order);
ret = invoiceLog.update();
if(!ret){
return false;
}
synctask.addUpdateData(invoiceLog);
return SyncTaskService.me.save(synctask) && ModifyLogService.me.save(invoiceLog, old, Enums.DataOpType.UPDATE.getId(), sysuser);
}catch (Exception e){
log.error(e.getMessage(), e);
}
return false;
}
});
return ret ? Result.success() : Result.failed("作废失败");
}
} }

View File

@ -14,6 +14,7 @@ import com.cowr.local.ssjygl.main.Config;
import com.cowr.local.ssjygl.transport.TransportDeviceService; import com.cowr.local.ssjygl.transport.TransportDeviceService;
import com.cowr.model.*; import com.cowr.model.*;
import com.cowr.ssjygl.CacheData; import com.cowr.ssjygl.CacheData;
import com.cowr.ssjygl.order.OrderService;
import com.cowr.ssjygl.transprice.TransPriceService; import com.cowr.ssjygl.transprice.TransPriceService;
import com.jfinal.kit.PathKit; import com.jfinal.kit.PathKit;
import com.jfinal.kit.StrKit; import com.jfinal.kit.StrKit;
@ -30,9 +31,9 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class OrderService { public class LocalOrderService {
private static Log log = Log.getLog(OrderService.class); private static Log log = Log.getLog(LocalOrderService.class);
public static OrderService me = new OrderService(); public static LocalOrderService me = new LocalOrderService();
private static final ThreadLocal<SimpleDateFormat> sdf = new ThreadLocal<SimpleDateFormat>() { private static final ThreadLocal<SimpleDateFormat> sdf = new ThreadLocal<SimpleDateFormat>() {
protected SimpleDateFormat initialValue() { protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@ -513,7 +514,7 @@ public class OrderService {
return Result.failed("sn 不能为 null"); return Result.failed("sn 不能为 null");
} }
BaseModel order = getOrderBySn(sn); BaseModel order = OrderService.me.getOrderBySn(sn);
if (order == null) { if (order == null) {
return Result.failed("未找到订单信息"); return Result.failed("未找到订单信息");
@ -549,34 +550,6 @@ public class OrderService {
return Result.success("打印指令已发送"); return Result.success("打印指令已发送");
} }
/**
* sn
*
* @param sn
* @return
*/
public BaseModel getOrderBySn(String sn) {
if (StrKit.isBlank(sn)) {
return null;
}
int sntype = Integer.parseInt(sn.substring(10, 12));
if (sntype == OrderTypeEnum.SALE.getTypeid()) {
return OrderSale.dao.findById(sn);
} else if (sntype == OrderTypeEnum.TRANSFER.getTypeid()) {
return OrderTransfer.dao.findById(sn);
} else if (sntype == OrderTypeEnum.TEMP.getTypeid()) {
return OrderTemp.dao.findById(sn);
} else if (sntype == OrderTypeEnum.TRASH.getTypeid()) {
return OrderTrash.dao.findById(sn);
} else if (sntype == OrderTypeEnum.PURCHASE.getTypeid()) {
return OrderPurchase.dao.findById(sn);
} else {
return null;
}
}
/** /**
* *
* *

View File

@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.PageParam; import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.Sysuser; import com.cowr.model.Sysuser;
import com.cowr.ssjygl.order.OrderCancelValidator; import com.cowr.ssjygl.order.OrderCancelValidator;
@ -92,7 +92,7 @@ public class OrderPurchaseController extends BaseController {
if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.PURCHASE.getTypeid()) { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.PURCHASE.getTypeid()) {
renderJson(Result.failed("sn 不能为 null")); renderJson(Result.failed("sn 不能为 null"));
}else{ }else{
renderJson(OrderService.me.print(sn, printer, tokenuser)); renderJson(LocalOrderService.me.print(sn, printer, tokenuser));
} }
} }
} }

View File

@ -4,7 +4,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
@ -175,7 +175,7 @@ public class OrderPurchaseSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result cancel(String sn, Sysuser sysuser, String password) { public Result cancel(String sn, Sysuser sysuser, String password) {

View File

@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.PageParam; import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.Sysuser; import com.cowr.model.Sysuser;
import com.cowr.ssjygl.order.OrderCancelValidator; import com.cowr.ssjygl.order.OrderCancelValidator;
@ -118,7 +118,7 @@ public class OrderSaleController extends BaseController {
if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.SALE.getTypeid()) { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.SALE.getTypeid()) {
renderJson(Result.failed("sn 不能为 null")); renderJson(Result.failed("sn 不能为 null"));
}else{ }else{
renderJson(OrderService.me.print(sn, printer, tokenuser)); renderJson(LocalOrderService.me.print(sn, printer, tokenuser));
} }
} }
} }

View File

@ -5,7 +5,7 @@ import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.utils.DateTimeUtil; import com.cowr.common.utils.DateTimeUtil;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.synctask.SyncTaskService;
@ -218,7 +218,7 @@ public class OrderSaleSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result prepay( public Result prepay(
@ -518,7 +518,7 @@ public class OrderSaleSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result cancel(String sn, Sysuser sysuser, String password) { public Result cancel(String sn, Sysuser sysuser, String password) {

View File

@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.PageParam; import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.Sysuser; import com.cowr.model.Sysuser;
import com.cowr.ssjygl.order.OrderCancelValidator; import com.cowr.ssjygl.order.OrderCancelValidator;
@ -164,7 +164,7 @@ public class OrderTempController extends BaseController {
if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TEMP.getTypeid()) { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TEMP.getTypeid()) {
renderJson(Result.failed("sn 不能为 null")); renderJson(Result.failed("sn 不能为 null"));
} else { } else {
renderJson(OrderService.me.print(sn, printer, tokenuser)); renderJson(LocalOrderService.me.print(sn, printer, tokenuser));
} }
} }
} }

View File

@ -7,7 +7,7 @@ import com.cowr.common.utils.DateTimeUtil;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.actioncmdlog.ActionCmdLogService; import com.cowr.local.ssjygl.actioncmdlog.ActionCmdLogService;
import com.cowr.local.ssjygl.main.Config; import com.cowr.local.ssjygl.main.Config;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService;
import com.cowr.ssjygl.order.ordercluster.OrderclusterService; import com.cowr.ssjygl.order.ordercluster.OrderclusterService;
@ -208,7 +208,7 @@ public class OrderTempSyncService {
}); });
// if (order.getPayType() == 1) { // if (order.getPayType() == 1) {
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
// } else { // } else {
// return ret ? Result.success(order) : Result.failed("结算失败"); // return ret ? Result.success(order) : Result.failed("结算失败");
// } // }
@ -464,7 +464,7 @@ public class OrderTempSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result prepay( public Result prepay(
@ -751,7 +751,7 @@ public class OrderTempSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result cancel(String sn, String invalid_memo, Sysuser sysuser, String password) { public Result cancel(String sn, String invalid_memo, Sysuser sysuser, String password) {
@ -992,7 +992,7 @@ public class OrderTempSyncService {
printdata.set("second_weight", transport.getSecondWeight()); printdata.set("second_weight", transport.getSecondWeight());
try { try {
Config.deviceThread.print(printerId, OrderService.me.getPrintFile(printdata)); Config.deviceThread.print(printerId, LocalOrderService.me.getPrintFile(printdata));
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
return Result.failed("打印指令失败"); return Result.failed("打印指令失败");

View File

@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.PageParam; import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.Sysuser; import com.cowr.model.Sysuser;
import com.cowr.ssjygl.order.OrderCancelValidator; import com.cowr.ssjygl.order.OrderCancelValidator;
@ -92,7 +92,7 @@ public class OrderTransferController extends BaseController {
if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TRANSFER.getTypeid()) { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TRANSFER.getTypeid()) {
renderJson(Result.failed("sn 不能为 null")); renderJson(Result.failed("sn 不能为 null"));
}else{ }else{
renderJson(OrderService.me.print(sn, printer, tokenuser)); renderJson(LocalOrderService.me.print(sn, printer, tokenuser));
} }
} }
} }

View File

@ -4,7 +4,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
@ -188,7 +188,7 @@ public class OrderTransferSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result cancel(String sn, Sysuser sysuser, String password) { public Result cancel(String sn, Sysuser sysuser, String password) {

View File

@ -5,7 +5,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.PageParam; import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.Sysuser; import com.cowr.model.Sysuser;
import com.cowr.ssjygl.order.OrderCancelValidator; import com.cowr.ssjygl.order.OrderCancelValidator;
@ -90,7 +90,7 @@ public class OrderTrashController extends BaseController {
if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TRASH.getTypeid()) { if (Integer.parseInt(sn.substring(10, 12)) != OrderTypeEnum.TRASH.getTypeid()) {
renderJson(Result.failed("sn 不能为 null")); renderJson(Result.failed("sn 不能为 null"));
}else{ }else{
renderJson(OrderService.me.print(sn, printer, tokenuser)); renderJson(LocalOrderService.me.print(sn, printer, tokenuser));
} }
} }
} }

View File

@ -4,7 +4,7 @@ import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderStateEnum; import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.enums.OrderTypeEnum; import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.order.orderseq.OrderSeqService; import com.cowr.local.ssjygl.order.orderseq.OrderSeqService;
import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
@ -164,7 +164,7 @@ public class OrderTrashSyncService {
} }
}); });
return OrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId); return LocalOrderService.me.orderPayComplete(ret, order.toRecord(), transport, printerId);
} }
public Result cancel(String sn, Sysuser sysuser, String password) { public Result cancel(String sn, Sysuser sysuser, String password) {

View File

@ -7,8 +7,9 @@ import com.cowr.common.enums.OrderTypeEnum;
import com.cowr.common.utils.ImageUtil; import com.cowr.common.utils.ImageUtil;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.main.Config; import com.cowr.local.ssjygl.main.Config;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService; import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService;
import com.cowr.ssjygl.order.OrderService;
import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService; import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService;
import com.cowr.ssjygl.supermarket.product.SupermarketProductService; import com.cowr.ssjygl.supermarket.product.SupermarketProductService;
import com.cowr.model.*; import com.cowr.model.*;

View File

@ -9,16 +9,15 @@ import com.cowr.common.view.Result;
import com.cowr.local.ssjygl.devicectrl.common.Const; import com.cowr.local.ssjygl.devicectrl.common.Const;
import com.cowr.local.ssjygl.main.CliCacheData; import com.cowr.local.ssjygl.main.CliCacheData;
import com.cowr.local.ssjygl.main.Config; import com.cowr.local.ssjygl.main.Config;
import com.cowr.local.ssjygl.order.OrderService; import com.cowr.local.ssjygl.order.LocalOrderService;
import com.cowr.local.ssjygl.synctask.SyncTaskService; import com.cowr.local.ssjygl.synctask.SyncTaskService;
import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService; import com.cowr.local.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.model.*; import com.cowr.model.*;
import com.cowr.ssjygl.CacheData; import com.cowr.ssjygl.CacheData;
import com.cowr.ssjygl.authlicense.AuthLicenseService;
import com.cowr.ssjygl.blacklist.BlacklistService; import com.cowr.ssjygl.blacklist.BlacklistService;
import com.cowr.ssjygl.modifylog.ModifyLogService; import com.cowr.ssjygl.modifylog.ModifyLogService;
import com.cowr.ssjygl.order.OrderService;
import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService; import com.cowr.ssjygl.order.ordercluster.truck.OrderclusterTruckService;
import com.cowr.ssjygl.prepay.prepaytruck.PrepayTruckService;
import com.cowr.ssjygl.transport.TransportService; import com.cowr.ssjygl.transport.TransportService;
import com.cowr.ssjygl.truck.TruckService; import com.cowr.ssjygl.truck.TruckService;
import com.jfinal.kit.StrKit; import com.jfinal.kit.StrKit;

View File

@ -3,6 +3,8 @@ package com.cowr.service.ssjygl.invoice.log;
import com.cowr.common.view.PageParam; import com.cowr.common.view.PageParam;
import com.cowr.common.view.Result; import com.cowr.common.view.Result;
import com.cowr.model.InvoiceLog; import com.cowr.model.InvoiceLog;
import com.cowr.model.Sysuser;
import com.cowr.service.ssjygl.system.sysuser.SysuserSyncService;
import com.cowr.ssjygl.invoice.log.InvoiceLogPKValidator; import com.cowr.ssjygl.invoice.log.InvoiceLogPKValidator;
import com.cowr.ssjygl.invoice.log.InvoiceLogService; import com.cowr.ssjygl.invoice.log.InvoiceLogService;
import com.cowr.ssjygl.invoice.log.InvoiceLogValidator; import com.cowr.ssjygl.invoice.log.InvoiceLogValidator;
@ -62,4 +64,58 @@ public class InvoiceLogController extends Controller {
InvoiceLog model = getModel(InvoiceLog.class, "", true); // 忽略不在model中的字段 InvoiceLog model = getModel(InvoiceLog.class, "", true); // 忽略不在model中的字段
renderJson(InvoiceLogService.me.findByPk(model)); renderJson(InvoiceLogService.me.findByPk(model));
} }
public void invalid() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
if (tokenuser == null) {
renderJson(Result.noauth());
return;
} else if (!SysuserSyncService.me.isTreasurer(tokenuser.getRole())) { // 财务才能作废发票
renderJson(Result.permissionDenied());
return;
}
Integer supermarket_id = getInt("supermarket_id", 0);
String invoice_number = get("invoice_number");
String code = get("code");
String invalid_memo = get("invalid_memo");
renderJson(InvoiceLogSyncService.me.invalid(supermarket_id, invoice_number, code, invalid_memo, tokenuser));
}
public void cancel() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
if (tokenuser == null) {
renderJson(Result.noauth());
return;
} else if (!SysuserSyncService.me.isTreasurer(tokenuser.getRole())) { // 财务才能作废发票
renderJson(Result.permissionDenied());
return;
}
String id = get("id");
String invalid_memo = get("invalid_memo");
renderJson(InvoiceLogSyncService.me.cancel(id, invalid_memo, tokenuser));
}
public void cancelByCode() {
Sysuser tokenuser = SysuserSyncService.me.getSysuserByToken(get("token"));
if (tokenuser == null) {
renderJson(Result.noauth());
return;
} else if (!SysuserSyncService.me.isTreasurer(tokenuser.getRole())) { // 财务才能作废发票
renderJson(Result.permissionDenied());
return;
}
String code = get("code");
String invoice_number = get("invoice_number");
String invalid_memo = get("invalid_memo");
renderJson(InvoiceLogSyncService.me.cancelByCode(invoice_number, code, invalid_memo, tokenuser));
}
} }

View File

@ -1,9 +1,183 @@
package com.cowr.service.ssjygl.invoice.log; package com.cowr.service.ssjygl.invoice.log;
import com.cowr.common.base.BaseModel;
import com.cowr.common.enums.Enums;
import com.cowr.common.enums.OrderStateEnum;
import com.cowr.common.view.Result;
import com.cowr.model.*;
import com.cowr.service.ssjygl.base.BaseSyncService; import com.cowr.service.ssjygl.base.BaseSyncService;
import com.cowr.service.ssjygl.synctask.SyncTaskService;
import com.cowr.ssjygl.invoice.receive.InvoiceReceiveService;
import com.cowr.ssjygl.modifylog.ModifyLogService;
import com.cowr.ssjygl.order.OrderService;
import com.jfinal.kit.StrKit;
import com.jfinal.log.Log; import com.jfinal.log.Log;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.IAtom;
import java.sql.SQLException;
import java.util.Date;
public class InvoiceLogSyncService extends BaseSyncService { public class InvoiceLogSyncService extends BaseSyncService {
private static Log log = Log.getLog(InvoiceLogSyncService.class); private static Log log = Log.getLog(InvoiceLogSyncService.class);
public static InvoiceLogSyncService me = new InvoiceLogSyncService(); public static InvoiceLogSyncService me = new InvoiceLogSyncService();
/**
* 使
* @return
*/
public Result invalid(int supermarket_id, String invoice_number, String code, String invalid_memo, Sysuser sysuser){
Supermarket supermarket = Supermarket.dao.findById(supermarket_id);
if(supermarket == null){
return Result.failed("未找到超市信息");
}
InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where code = ? limit 1 ", code);
if (invoiceLog != null) {
return Result.failed("发票已使用,请使用“取消发票”功能");
}
InvoiceReceive receive = InvoiceReceiveService.me.foremostReceive(supermarket_id, invoice_number);
if (receive == null) {
return Result.failed("没有有效的发票领用记录");
}
String next_invoice_code = InvoiceReceiveService.me.nextInvoiceCode(receive);
if (next_invoice_code == null) {
return Result.failed("没有可用发票");
}
if(!next_invoice_code.equals(code)){
return Result.failed("只能按顺序作废发票");
}
invoiceLog = new InvoiceLog();
invoiceLog.setId(StrKit.getRandomUUID());
invoiceLog.setInvalidUserId(sysuser.getId());
invoiceLog.setInvalidUserName(sysuser.getName());
invoiceLog.setInvalidTime(new Date());
invoiceLog.setInvalidMemo(invalid_memo);
invoiceLog.setState(OrderStateEnum.INVALID.getStateid());
invoiceLog.setInvoiceReceiveId(receive.getId());
invoiceLog.setCode(code);
invoiceLog.setInvoiceNumber(invoice_number);
InvoiceLog finalInvoiceLog = invoiceLog;
boolean ret = Db.tx(new IAtom() {
@Override
public boolean run() throws SQLException {
try {
boolean ret = finalInvoiceLog.save();
if(!ret){
return false;
}
SyncTask synctask = new SyncTask();
synctask.addSaveData(finalInvoiceLog);
receive.setSurplus(receive.getSurplus() - 1);
receive.setCurrentCode(next_invoice_code);
ret = receive.update();
if (!ret) {
log.error("发票领用信息更新失败", next_invoice_code);
return false;
}
synctask.addUpdateData(receive);
return SyncTaskService.me.save(synctask)
&& ModifyLogService.me.save(finalInvoiceLog, null, Enums.DataOpType.SAVE.getId(), sysuser);
} catch (Exception e) {
log.error(e.getMessage(), e);
return false;
}
}
});
return ret ? Result.success(invoiceLog) : Result.failed(false, "处理失败");
}
public Result cancelByCode(String invoice_number, String code, String invalid_memo, Sysuser sysuser){
InvoiceLog invoiceLog = InvoiceLog.dao.findFirst("select * from invoice_log t where invoice_number = ? and code = ? limit 1 ", invoice_number, code);
if (invoiceLog == null) {
return Result.failed("未找到发票记录");
}
return cancel(invoiceLog, invalid_memo, sysuser);
}
public Result cancel(String id, String invalid_memo, Sysuser sysuser){
InvoiceLog invoiceLog = InvoiceLog.dao.findById(id);
if(invoiceLog == null){
return Result.failed("未找到发票记录");
}
return cancel(invoiceLog, invalid_memo, sysuser);
}
/**
* 使
* @param invoiceLog
* @param sysuser
* @return
*/
public Result cancel(InvoiceLog invoiceLog, String invalid_memo, Sysuser sysuser){
if(invoiceLog.getState() == OrderStateEnum.INVALID.getStateid()){
return Result.failed("记录已作废");
}
InvoiceLog old = invoiceLog.clone();
BaseModel order = OrderService.me.getOrderBySn(invoiceLog.getOrderSn());
if(order == null){
return Result.failedstr("未找到订单信息");
}
invoiceLog.setInvalidMemo(invalid_memo);
invoiceLog.setInvalidTime(new Date());
invoiceLog.setInvalidUserId(sysuser.getId());
invoiceLog.setInvalidUserName(sysuser.getName());
invoiceLog.setState(OrderStateEnum.INVALID.getStateid());
boolean ret = Db.tx(new IAtom() {
@Override
public boolean run() {
try{
order.set("invoice_code", null);
order.set("invoice_number", null);
boolean ret = order.update();
if(!ret){
return false;
}
SyncTask synctask = new SyncTask();
synctask.addUpdateData(order);
ret = invoiceLog.update();
if(!ret){
return false;
}
synctask.addUpdateData(invoiceLog);
return SyncTaskService.me.save(synctask) && ModifyLogService.me.save(invoiceLog, old, Enums.DataOpType.UPDATE.getId(), sysuser);
}catch (Exception e){
log.error(e.getMessage(), e);
}
return false;
}
});
return ret ? Result.success() : Result.failed("作废失败");
}
} }