552 lines
34 KiB
Java
552 lines
34 KiB
Java
package tqq9.lc123.cloud.app.plugin.operate.pm;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.google.gson.Gson;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.utils.StringUtils;
|
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
|
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
|
import kd.bos.logging.Log;
|
|
import kd.bos.logging.LogFactory;
|
|
import kd.bos.orm.query.QCP;
|
|
import kd.bos.orm.query.QFilter;
|
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
import kd.sdk.plugin.Plugin;
|
|
import tqq9.lc123.cloud.app.plugin.utils.HttpRequestUtils;
|
|
|
|
import java.io.IOException;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.util.HashMap;
|
|
|
|
/**
|
|
* 采购订单操作插件
|
|
*/
|
|
public class PurOrderBillRebatePlugin extends AbstractOperationServicePlugIn implements Plugin {
|
|
|
|
private final static Log logger = LogFactory.getLog(PurOrderBillRebatePlugin.class);
|
|
private final static String ENTRYENTITY = "billentry";
|
|
|
|
// private final static HashMap<String, String> tokenMap = new HashMap<String, String>() {{
|
|
// put("Authorization", "Bearer b96dad1eb4f84c41bae651162aeacdd3");
|
|
// }};
|
|
|
|
private static String Create_URL;
|
|
private static String Cancel_URL;
|
|
private static String Use_URL;
|
|
private static String FLXT_TOKEN;
|
|
|
|
static {
|
|
DynamicObject url = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name",
|
|
new QFilter[]{new QFilter("number", QCP.equals, "FLXT_BillCreate_Url")});
|
|
Create_URL = url != null ? url.getString("name") : null;
|
|
|
|
url = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name",
|
|
new QFilter[]{new QFilter("number", QCP.equals, "FLXT_Billcancel_Url")});
|
|
Cancel_URL = url != null ? url.getString("name") : null;
|
|
|
|
url = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name",
|
|
new QFilter[]{new QFilter("number", QCP.equals, "FLXT_Deduct_Url")});
|
|
Use_URL = url != null ? url.getString("name") : null;
|
|
DynamicObject token = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name",
|
|
new QFilter[]{new QFilter("number", QCP.equals, "FLXT_TOKEN")});
|
|
FLXT_TOKEN = token != null ? token.getString("name") : null;
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
|
super.onPreparePropertys(e);
|
|
e.getFieldKeys().add("billno");
|
|
e.getFieldKeys().add("supplier");
|
|
e.getFieldKeys().add("tqq9_hshfsyje");
|
|
e.getFieldKeys().add("tqq9_hsxfsyje");
|
|
e.getFieldKeys().add("tqq9_hshfsyje_old");
|
|
e.getFieldKeys().add("tqq9_hsxfsyje_old");
|
|
e.getFieldKeys().add("tqq9_hshfsysl");
|
|
e.getFieldKeys().add("tqq9_hsxfsysl");
|
|
e.getFieldKeys().add("tqq9_hfid");
|
|
e.getFieldKeys().add("tqq9_xfid");
|
|
e.getFieldKeys().add("tqq9_payamount");
|
|
}
|
|
|
|
@Override
|
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
|
super.afterExecuteOperationTransaction(e);
|
|
String operationKey = e.getOperationKey();
|
|
HashMap<String, String> tokenMap = new HashMap<String, String>();
|
|
tokenMap.put("Authorization", FLXT_TOKEN);
|
|
BigDecimal oneHundred = new BigDecimal(100);
|
|
if (StringUtils.equals("save", operationKey)) {
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
String billno = dataEntity.getString("billno");
|
|
DynamicObject supplier = dataEntity.getDynamicObject("supplier");//供应商
|
|
DynamicObject org = dataEntity.getDynamicObject("org");//组织
|
|
String number = org.getString("number");
|
|
DynamicObject org_fl = BusinessDataServiceHelper.loadSingle("tqq9_thirdconfig", "name",
|
|
new QFilter[]{new QFilter("number", QCP.equals, number)});
|
|
String orgid_fl = org_fl != null ? org_fl.getString("name") : null;
|
|
BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal("tqq9_hshfsyje").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额
|
|
BigDecimal tqq9_hsxfsyje = dataEntity.getBigDecimal("tqq9_hsxfsyje").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额
|
|
BigDecimal tqq9_hshfsyje_old = dataEntity.getBigDecimal("tqq9_hshfsyje_old").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额(旧)
|
|
BigDecimal tqq9_hsxfsyje_old = dataEntity.getBigDecimal("tqq9_hsxfsyje_old").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额(旧)
|
|
String tqq9_hfid = dataEntity.getString("tqq9_hfid");//货返id
|
|
String tqq9_xfid = dataEntity.getString("tqq9_xfid");//现返id
|
|
Integer hfid = null;
|
|
Integer xfid = null;
|
|
if (StringUtils.isNotBlank(tqq9_hfid)) {
|
|
hfid = Integer.valueOf(tqq9_hfid);
|
|
|
|
}
|
|
if (StringUtils.isNotBlank(tqq9_xfid)) {
|
|
xfid = Integer.valueOf(tqq9_xfid);
|
|
|
|
}
|
|
//货返锁定
|
|
if (tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0 && !tqq9_hshfsyje.equals(tqq9_hshfsyje_old) && tqq9_hshfsyje_old.compareTo(BigDecimal.ZERO) == 0) {
|
|
DynamicObject tqq9_hshfsysl = dataEntity.getDynamicObject("tqq9_hshfsysl");//含税货返使用税率
|
|
BigDecimal taxrate = tqq9_hshfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hshfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hshfsyje.subtract(notaxamount);//税额
|
|
// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
JSONObject bodyMap = new JSONObject();
|
|
bodyMap.put("supplierId", supplier.getString("tqq9_ztsupplierid"));
|
|
bodyMap.put("companyId", orgid_fl);
|
|
bodyMap.put("type", 0);
|
|
bodyMap.put("money", tqq9_hshfsyje);
|
|
bodyMap.put("taxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.postJson(Create_URL, bodyMap.toString(), tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Object data = map.getInteger("data");
|
|
if (data != null) {
|
|
dataEntity.set("tqq9_hfid", data.toString());
|
|
} else {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",保存时占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
dataEntity.set("tqq9_hshfsyje_old", tqq9_hshfsyje);//含税货返使用金额(旧)
|
|
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
|
|
|
|
}
|
|
//现返锁定
|
|
if (tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0 && !tqq9_hsxfsyje.equals(tqq9_hsxfsyje_old) && tqq9_hsxfsyje_old.compareTo(BigDecimal.ZERO) == 0) {
|
|
DynamicObject tqq9_hsxfsysl = dataEntity.getDynamicObject("tqq9_hsxfsysl");//含税现返使用税率
|
|
BigDecimal taxrate = tqq9_hsxfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hsxfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hsxfsyje.subtract(notaxamount);//税额
|
|
// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
JSONObject bodyMap = new JSONObject();
|
|
bodyMap.put("supplierId", supplier.getString("tqq9_ztsupplierid"));
|
|
bodyMap.put("companyId", orgid_fl);
|
|
bodyMap.put("type", 1);
|
|
bodyMap.put("money", tqq9_hsxfsyje);
|
|
bodyMap.put("taxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.postJson(Create_URL, bodyMap.toString(), tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Object data = map.getInteger("data");
|
|
if (data != null) {
|
|
dataEntity.set("tqq9_xfid", data.toString());
|
|
} else {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",保存时占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
dataEntity.set("tqq9_hsxfsyje_old", tqq9_hsxfsyje);//含税现返使用金额(旧)
|
|
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
|
|
}
|
|
//货返修改
|
|
if (!tqq9_hshfsyje.equals(tqq9_hshfsyje_old) && tqq9_hshfsyje_old.compareTo(BigDecimal.ZERO) > 0) {
|
|
DynamicObject tqq9_hshfsysl = dataEntity.getDynamicObject("tqq9_hshfsysl");//含税货返使用税率
|
|
BigDecimal taxrate = tqq9_hshfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hshfsyje_old.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hshfsyje_old.subtract(notaxamount);//税额
|
|
HashMap<String, Object> queryMap = new HashMap<>();
|
|
queryMap.put("id", hfid);
|
|
queryMap.put("money", tqq9_hshfsyje_old);
|
|
queryMap.put("taxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.doGet(Cancel_URL, queryMap, tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Boolean data = map.getBoolean("data");
|
|
if (data == null || !data) {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",删除时撤销占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
|
|
if (tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0) {
|
|
notaxamount = tqq9_hshfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
taxamount = tqq9_hshfsyje.subtract(notaxamount);//税额
|
|
// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
JSONObject bodyMap = new JSONObject();
|
|
bodyMap.put("supplierId", supplier.getString("tqq9_ztsupplierid"));
|
|
bodyMap.put("companyId", orgid_fl);
|
|
bodyMap.put("type", 0);
|
|
bodyMap.put("money", tqq9_hshfsyje);
|
|
bodyMap.put("taxAmount", taxamount);
|
|
try {
|
|
String bodyString = HttpRequestUtils.postJson(Create_URL, bodyMap.toString(), tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Object data = map.getInteger("data");
|
|
if (data != null) {
|
|
dataEntity.set("tqq9_hfid", data.toString());
|
|
} else {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",保存时占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
dataEntity.set("tqq9_hshfsyje_old", tqq9_hshfsyje);//含税货返使用金额(旧)
|
|
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
}
|
|
|
|
|
|
}
|
|
//现返修改
|
|
if ( !tqq9_hsxfsyje.equals(tqq9_hsxfsyje_old) && tqq9_hsxfsyje_old.compareTo(BigDecimal.ZERO) > 0) {
|
|
DynamicObject tqq9_hsxfsysl = dataEntity.getDynamicObject("tqq9_hsxfsysl");//含税现返使用税率
|
|
BigDecimal taxrate = tqq9_hsxfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hsxfsyje_old.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hsxfsyje_old.subtract(notaxamount);//税额
|
|
HashMap<String, Object> queryMap = new HashMap<>();
|
|
queryMap.put("id", xfid);
|
|
queryMap.put("money", tqq9_hsxfsyje_old);
|
|
queryMap.put("taxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.doGet(Cancel_URL, queryMap, tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Boolean data = map.getBoolean("data");
|
|
if (data == null || !data) {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",删除时撤销占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
if (tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0) {
|
|
// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
notaxamount = tqq9_hsxfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
taxamount = tqq9_hsxfsyje.subtract(notaxamount);//税额
|
|
JSONObject bodyMap = new JSONObject();
|
|
bodyMap.put("supplierId", supplier.getString("tqq9_ztsupplierid"));
|
|
bodyMap.put("companyId", orgid_fl);
|
|
bodyMap.put("type", 1);
|
|
bodyMap.put("money", tqq9_hsxfsyje);
|
|
bodyMap.put("taxAmount", taxamount);
|
|
try {
|
|
String bodyString = HttpRequestUtils.postJson(Create_URL, bodyMap.toString(), tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Object data = map.getInteger("data");
|
|
if (data != null) {
|
|
dataEntity.set("tqq9_xfid", data.toString());
|
|
} else {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",保存时占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
dataEntity.set("tqq9_hsxfsyje_old", tqq9_hsxfsyje);//含税现返使用金额(旧)
|
|
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// else if (StringUtils.equals("submit", operationKey)) {
|
|
// for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
// String billno = dataEntity.getString("billno");
|
|
// DynamicObject supplier = dataEntity.getDynamicObject("supplier");//供应商
|
|
// DynamicObject org = dataEntity.getDynamicObject("org");//组织
|
|
// BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal("tqq9_hshfsyje").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额
|
|
// BigDecimal tqq9_hsxfsyje = dataEntity.getBigDecimal("tqq9_hsxfsyje").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额
|
|
// BigDecimal tqq9_hshfsyje_old = dataEntity.getBigDecimal("tqq9_hshfsyje_old").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额(旧)
|
|
// BigDecimal tqq9_hsxfsyje_old = dataEntity.getBigDecimal("tqq9_hsxfsyje_old").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额(旧)
|
|
// //货返锁定
|
|
// if (tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0 && !tqq9_hshfsyje.equals(tqq9_hshfsyje_old) && tqq9_hshfsyje_old.compareTo(BigDecimal.ZERO) == 0) {
|
|
// DynamicObject tqq9_hshfsysl = dataEntity.getDynamicObject("tqq9_hshfsysl");//含税货返使用税率
|
|
// BigDecimal taxrate = tqq9_hshfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal notaxamount = tqq9_hshfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
|
|
// BigDecimal taxamount = tqq9_hshfsyjesubtract(notaxamount);//税额
|
|
// // HashMap<String, Object> bodyMap = new HashMap<>();
|
|
// JSONObject bodyMap = new JSONObject();
|
|
// bodyMap.put("supplierId", supplier.getString("tqq9_ztsupplierid"));
|
|
// bodyMap.put("companyId", orgid_fl);
|
|
// bodyMap.put("type", 0);
|
|
// bodyMap.put("money", tqq9_hshfsyje);
|
|
// bodyMap.put("taxAmount", taxamount);
|
|
// Gson gson = new Gson();
|
|
// try {
|
|
// String bodyString = HttpRequestUtils.postJson(Create_URL, bodyMap.toString(), tokenMap);
|
|
// JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
// Object data = map.getInteger("data");
|
|
// if (data != null) {
|
|
// dataEntity.set("tqq9_hfid", data.toString());
|
|
// } else {
|
|
// this.getOperationResult().setMessage("采购订单:" + billno + ",保存时占用金额失败");
|
|
// }
|
|
// } catch (IOException ex) {
|
|
// throw new RuntimeException(ex);
|
|
// }
|
|
// dataEntity.set("tqq9_hshfsyje_old", tqq9_hshfsyje);//含税货返使用金额(旧)
|
|
// SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
//
|
|
//
|
|
// }
|
|
// //现返锁定
|
|
// if (tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0 && !tqq9_hsxfsyje.equals(tqq9_hsxfsyje_old) && tqq9_hsxfsyje_old.compareTo(BigDecimal.ZERO) == 0) {
|
|
// DynamicObject tqq9_hsxfsysl = dataEntity.getDynamicObject("tqq9_hsxfsysl");//含税现返使用税率
|
|
// BigDecimal taxrate = tqq9_hsxfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal notaxamount = tqq9_hsxfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal taxamount = tqq9_hsxfsyje.subtract(notaxamount);//税额
|
|
//// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
// JSONObject bodyMap = new JSONObject();
|
|
// bodyMap.put("supplierId", supplier.getString("tqq9_ztsupplierid"));
|
|
// bodyMap.put("companyId", orgid_fl);
|
|
// bodyMap.put("type", 1);
|
|
// bodyMap.put("money", tqq9_hsxfsyje);
|
|
// bodyMap.put("taxAmount", taxamount);
|
|
// Gson gson = new Gson();
|
|
// try {
|
|
// String bodyString = HttpRequestUtils.postJson(Create_URL, bodyMap.toString(), tokenMap);
|
|
// JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
// Object data = map.getInteger("data");
|
|
// if (data != null) {
|
|
// dataEntity.set("tqq9_xfid", data.toString());
|
|
// } else {
|
|
// this.getOperationResult().setMessage("采购订单:" + billno + ",保存时占用金额失败");
|
|
// }
|
|
// } catch (IOException ex) {
|
|
// throw new RuntimeException(ex);
|
|
// }
|
|
// dataEntity.set("tqq9_hsxfsyje_old", tqq9_hsxfsyje);//含税现返使用金额(旧)
|
|
// SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
// }
|
|
// }
|
|
//
|
|
// } else if (StringUtils.equals("unsubmit", operationKey)) {
|
|
// //货返删除
|
|
// for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
// String billno = dataEntity.getString("billno");
|
|
// BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal("tqq9_hshfsyje").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额
|
|
// BigDecimal tqq9_hsxfsyje = dataEntity.getBigDecimal("tqq9_hsxfsyje").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额
|
|
// String tqq9_hfid = dataEntity.getString("tqq9_hfid");//货返id
|
|
// String tqq9_xfid = dataEntity.getString("tqq9_xfid");//现返id
|
|
// Integer hfid = null;
|
|
// Integer xfid = null;
|
|
// if (StringUtils.isNotBlank(tqq9_hfid)) {
|
|
// hfid = Integer.valueOf(tqq9_hfid);
|
|
//
|
|
// }
|
|
// if (StringUtils.isNotBlank(tqq9_xfid)) {
|
|
// xfid = Integer.valueOf(tqq9_xfid);
|
|
//
|
|
// }
|
|
// if (StringUtils.isNotBlank(tqq9_hfid)) {
|
|
// hfid = Integer.valueOf(tqq9_hfid);
|
|
//
|
|
// }
|
|
// if (StringUtils.isNotBlank(tqq9_xfid)) {
|
|
// xfid = Integer.valueOf(tqq9_xfid);
|
|
//
|
|
// }
|
|
// if (tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0) {
|
|
// DynamicObject tqq9_hshfsysl = dataEntity.getDynamicObject("tqq9_hshfsysl");//含税货返使用税率
|
|
// BigDecimal taxrate = tqq9_hshfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal notaxamount = tqq9_hshfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal taxamount = tqq9_hshfsyje.subtract(notaxamount);//税额
|
|
//// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
// JSONObject bodyMap = new JSONObject();
|
|
// bodyMap.put("id", hfid);
|
|
// bodyMap.put("money", tqq9_hshfsyje);
|
|
// bodyMap.put("taxAmount", taxamount);
|
|
// Gson gson = new Gson();
|
|
// try {
|
|
// String bodyString = HttpRequestUtils.postJson(Cancel_URL, bodyMap.toString(), tokenMap);
|
|
// JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
// Boolean data = map.getBoolean("data");
|
|
// if (data==null||!data)) {
|
|
// this.getOperationResult().setMessage("采购订单:" + billno + ",删除时撤销占用金额失败");
|
|
// }
|
|
// } catch (IOException ex) {
|
|
// throw new RuntimeException(ex);
|
|
// }
|
|
//
|
|
// }
|
|
// //现返删除
|
|
// if (tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0) {
|
|
// DynamicObject tqq9_hsxfsysl = dataEntity.getDynamicObject("tqq9_hsxfsysl");//含税现返使用税率
|
|
// BigDecimal taxrate = tqq9_hsxfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal notaxamount = tqq9_hsxfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
// BigDecimal taxamount = tqq9_hsxfsyje.subtract(notaxamount);//税额
|
|
//// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
// JSONObject bodyMap = new JSONObject();
|
|
// bodyMap.put("id", xfid);
|
|
// bodyMap.put("money", tqq9_hsxfsyje);
|
|
// bodyMap.put("taxAmount", taxamount);
|
|
// Gson gson = new Gson();
|
|
// try {
|
|
// String bodyString = HttpRequestUtils.postJson(Cancel_URL, bodyMap.toString(), tokenMap);
|
|
// JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
// Boolean data = map.getBoolean("data");
|
|
// if (data==null||!data)) {
|
|
// this.getOperationResult().setMessage("采购订单:" + billno + ",删除时撤销占用金额失败");
|
|
// }
|
|
// } catch (IOException ex) {
|
|
// throw new RuntimeException(ex);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
if (StringUtils.equals("delete", operationKey)) {
|
|
//货返删除
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
String billno = dataEntity.getString("billno");
|
|
BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal("tqq9_hshfsyje").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额
|
|
BigDecimal tqq9_hsxfsyje = dataEntity.getBigDecimal("tqq9_hsxfsyje").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额
|
|
String tqq9_hfid = dataEntity.getString("tqq9_hfid");//货返id
|
|
String tqq9_xfid = dataEntity.getString("tqq9_xfid");//现返id
|
|
Integer hfid = null;
|
|
Integer xfid = null;
|
|
if (StringUtils.isNotBlank(tqq9_hfid)) {
|
|
hfid = Integer.valueOf(tqq9_hfid);
|
|
|
|
}
|
|
if (StringUtils.isNotBlank(tqq9_xfid)) {
|
|
xfid = Integer.valueOf(tqq9_xfid);
|
|
|
|
}
|
|
if (tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0) {
|
|
DynamicObject tqq9_hshfsysl = dataEntity.getDynamicObject("tqq9_hshfsysl");//含税货返使用税率
|
|
BigDecimal taxrate = tqq9_hshfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hshfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hshfsyje.subtract(notaxamount);//税额
|
|
// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
HashMap<String, Object> queryMap = new HashMap<>();
|
|
queryMap.put("id", hfid);
|
|
queryMap.put("money", tqq9_hshfsyje);
|
|
queryMap.put("taxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.doGet(Cancel_URL, queryMap, tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Boolean data = map.getBoolean("data");
|
|
if (data == null || !data) {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",删除时撤销占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
|
|
}
|
|
//现返删除
|
|
if (tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0) {
|
|
DynamicObject tqq9_hsxfsysl = dataEntity.getDynamicObject("tqq9_hsxfsysl");//含税现返使用税率
|
|
BigDecimal taxrate = tqq9_hsxfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hsxfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hsxfsyje.subtract(notaxamount);//税额
|
|
// HashMap<String, Object> bodyMap = new HashMap<>();
|
|
HashMap<String, Object> queryMap = new HashMap<>();
|
|
queryMap.put("id", xfid);
|
|
queryMap.put("money", tqq9_hsxfsyje);
|
|
queryMap.put("taxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.doGet(Cancel_URL, queryMap, tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Boolean data = map.getBoolean("data");
|
|
if (data == null || !data) {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",删除时撤销占用金额失败");
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
}
|
|
}
|
|
} else if (StringUtils.equals("audit", operationKey)) {
|
|
//货返审核
|
|
for (DynamicObject dataEntity : e.getDataEntities()) {
|
|
String billno = dataEntity.getString("billno");
|
|
BigDecimal tqq9_hshfsyje = dataEntity.getBigDecimal("tqq9_hshfsyje").setScale(2, RoundingMode.HALF_UP);//含税货返使用金额
|
|
BigDecimal tqq9_hsxfsyje = dataEntity.getBigDecimal("tqq9_hsxfsyje").setScale(2, RoundingMode.HALF_UP);//含税现返使用金额
|
|
BigDecimal tqq9_payamount = dataEntity.getBigDecimal("tqq9_payamount").setScale(2, RoundingMode.HALF_UP);//折扣后返利后价税合计
|
|
String tqq9_hfid = dataEntity.getString("tqq9_hfid");//货返id
|
|
String tqq9_xfid = dataEntity.getString("tqq9_xfid");//现返id
|
|
Integer hfid = null;
|
|
Integer xfid = null;
|
|
if (StringUtils.isNotBlank(tqq9_hfid)) {
|
|
hfid = Integer.valueOf(tqq9_hfid);
|
|
|
|
}
|
|
if (StringUtils.isNotBlank(tqq9_xfid)) {
|
|
xfid = Integer.valueOf(tqq9_xfid);
|
|
|
|
}
|
|
if (tqq9_hshfsyje.compareTo(BigDecimal.ZERO) > 0 && tqq9_payamount.compareTo(BigDecimal.ZERO) == 0) {
|
|
DynamicObject tqq9_hshfsysl = dataEntity.getDynamicObject("tqq9_hshfsysl");//含税货返使用税率
|
|
BigDecimal taxrate = tqq9_hshfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hshfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hshfsyje.subtract(notaxamount);//税额
|
|
HashMap<String, Object> bodyMap = new HashMap<>();
|
|
// JSONObject bodyMap = new JSONObject();
|
|
bodyMap.put("id", hfid);
|
|
bodyMap.put("lockMoney", tqq9_hshfsyje);
|
|
bodyMap.put("lockTaxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.doGet(Use_URL, bodyMap, tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Boolean data = map.getBoolean("data");
|
|
if (data == null || !data) {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",审核时扣除订单金额失败");
|
|
} else {
|
|
dataEntity.set("tqq9_isrebatecalculate", true);
|
|
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
}
|
|
//现返审核
|
|
if (tqq9_hsxfsyje.compareTo(BigDecimal.ZERO) > 0 && tqq9_payamount.compareTo(BigDecimal.ZERO) == 0) {
|
|
DynamicObject tqq9_hsxfsysl = dataEntity.getDynamicObject("tqq9_hsxfsysl");//含税现返使用税率
|
|
BigDecimal taxrate = tqq9_hsxfsysl.getBigDecimal("taxrate").setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal notaxamount = tqq9_hsxfsyje.multiply(oneHundred.divide(oneHundred.add(taxrate), 10, RoundingMode.HALF_UP)).setScale(2, RoundingMode.HALF_UP);
|
|
BigDecimal taxamount = tqq9_hsxfsyje.subtract(notaxamount);//税额
|
|
HashMap<String, Object> bodyMap = new HashMap<>();
|
|
// JSONObject bodyMap = new JSONObject();
|
|
bodyMap.put("id", xfid);
|
|
bodyMap.put("lockMoney", tqq9_hsxfsyje);
|
|
bodyMap.put("lockTaxAmount", taxamount);
|
|
Gson gson = new Gson();
|
|
try {
|
|
String bodyString = HttpRequestUtils.doGet(Use_URL, bodyMap, tokenMap);
|
|
JSONObject map = gson.fromJson(bodyString, JSONObject.class);
|
|
Boolean data = map.getBoolean("data");
|
|
if (data == null || !data) {
|
|
this.getOperationResult().setMessage("采购订单:" + billno + ",审核时扣除订单金额失败");
|
|
} else {
|
|
dataEntity.set("tqq9_isrebatecalculate", true);
|
|
SaveServiceHelper.save(new DynamicObject[]{dataEntity});
|
|
}
|
|
} catch (IOException ex) {
|
|
throw new RuntimeException(ex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |