dev
parent
7a1c5f62ee
commit
3bc624b4f2
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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("作废失败");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 银行支付成功
|
* 银行支付成功
|
||||||
*
|
*
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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("打印指令失败");
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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.*;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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("作废失败");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue