|
|
@@ -592,6 +592,8 @@ public class Order extends Controller {
|
|
|
|
|
|
DataContrlLog.createLog(this, "sa_order", sa_orderid, "订单审核", "订单审核成功").insert();
|
|
|
|
|
|
+ updateTradingStatus(row.getLong("sa_customersid"));
|
|
|
+
|
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
|
|
|
|
@@ -619,6 +621,8 @@ public class Order extends Controller {
|
|
|
|
|
|
DataContrlLog.createLog(this, "sa_order", sa_orderid, "订单反审核", "订单反审核成功").insert();
|
|
|
|
|
|
+ updateTradingStatus(row.getLong("sa_customersid"));
|
|
|
+
|
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
|
|
|
|
@@ -860,126 +864,11 @@ public class Order extends Controller {
|
|
|
return sqlList;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 邮件发送验证
|
|
|
- *
|
|
|
- * @param sa_orderid
|
|
|
- * @param row
|
|
|
- * @param orderBrand
|
|
|
- */
|
|
|
- public void sendEmail(Long sa_orderid, Row row, Rows orderBrand) {
|
|
|
- try {
|
|
|
- JSONObject emaildata = new JSONObject();
|
|
|
- emaildata.put("excelfilename", "order");
|
|
|
- emaildata.put("sheetname", "订单列表");
|
|
|
- emaildata.put("rows", getEmailRow(sa_orderid));
|
|
|
- emaildata.put("titlemap", orderTitleMap());
|
|
|
-
|
|
|
- JSONObject extradata = new JSONObject();
|
|
|
- extradata.put("emaildata", emaildata);
|
|
|
- switch (row.getString("tradefield")) {
|
|
|
- case "全领域":
|
|
|
- Executor.sendEml_controller(this, "ordertradefield", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- case "燃气":
|
|
|
- Executor.sendEml_controller(this, "ordertradefieldrq", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- case "给水":
|
|
|
- Executor.sendEml_controller(this, "ordertradefieldgs", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- case "暖通":
|
|
|
- Executor.sendEml_controller(this, "ordertradefieldnt", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- case "消防":
|
|
|
- Executor.sendEml_controller(this, "ordertradefieldxf", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- }
|
|
|
- if (orderBrand.isNotEmpty()) {
|
|
|
- switch (orderBrand.get(0).getString("brandname")) {
|
|
|
- case "全品牌":
|
|
|
- Executor.sendEml_controller(this, "orderbrand", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- case "班尼戈":
|
|
|
- Executor.sendEml_controller(this, "orderbrandbng", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- case "中捷":
|
|
|
- Executor.sendEml_controller(this, "orderbrandzj", sa_orderid, extradata);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 订单结案验证
|
|
|
- *
|
|
|
- * @throws
|
|
|
- */
|
|
|
- public String closeordervalidate(long sa_orderid) throws YosException {
|
|
|
- ArrayList<String> sqlList = new ArrayList<>();
|
|
|
- Rows Rowstatus = dbConnect.runSqlQuery(
|
|
|
- "select * from sa_order where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "'");
|
|
|
- Rows RowsDetail = dbConnect.runSqlQuery(
|
|
|
- "select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
|
|
|
- if (Rowstatus.isEmpty()) {
|
|
|
- return getReturnObject().setCode("0221", new String[0]).toString();//订单不存在
|
|
|
- } else {
|
|
|
- if (!Rowstatus.get(0).getString("status").equals("审核")) {
|
|
|
- return getReturnObject().setCode("0393", new String[0]).toString();//非审核状态的订单无法结案
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- if (!siteid.equalsIgnoreCase("TZ")) {
|
|
|
- return getReturnObject().setCode("0394", new String[0]).toString();//当前站点不可执行订单结案操作
|
|
|
- }
|
|
|
- {
|
|
|
- String str = "";
|
|
|
- RowsDetail = dbConnect.runSqlQuery(
|
|
|
- "select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
|
|
|
- for (Row row : RowsDetail) {
|
|
|
- int rowno = row.getInteger("rowno");//订单行号
|
|
|
- BigDecimal deliedqty = row.getBigDecimal("deliedqty");//订单已发货数量
|
|
|
- BigDecimal erpdeliedqty = row.getBigDecimal("erpdeliedqty");//erp已发货数量
|
|
|
- if (deliedqty.compareTo(erpdeliedqty) != 0) {
|
|
|
- str = str + "行" + rowno + "商品发货数量" + deliedqty + "与erp发货数量" + erpdeliedqty + "不一致,请检查;";
|
|
|
- }
|
|
|
- }
|
|
|
- if (!str.equalsIgnoreCase("")) {
|
|
|
- return str;
|
|
|
- }
|
|
|
- }
|
|
|
- return "true";
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
@API(title = "关闭", apiversion = R.ID20221108164502.v1.class)
|
|
|
@CACHEING_CLEAN(apiClass = {Order.class, OrderItems.class, restcontroller.sale.order.Order.class})
|
|
|
public String close() throws YosException {
|
|
|
long sa_orderid = content.getLong("sa_orderid");
|
|
|
-// String str = closeordervalidate(sa_orderid);
|
|
|
-// if (!str.equals("true")) {
|
|
|
-// return getReturnObject().setCode("0706", str).toString();
|
|
|
-// }
|
|
|
-// Rows RowsDetails = dbConnect.runSqlQuery(
|
|
|
-// "select * from sa_orderitems where sa_orderid=" + sa_orderid + " and siteid='" + siteid + "' order by rowno asc");
|
|
|
-// content.put("type", "数量");
|
|
|
-// content.put("remarks", "订单结案变更");
|
|
|
-// JSONArray itemifnos = new JSONArray();
|
|
|
-// for (Row row : RowsDetails) {
|
|
|
-// if (row.getBigDecimal("qty").compareTo(row.getBigDecimal("erpdeliedqty")) > 0) {
|
|
|
-// JSONObject jsonObject = new JSONObject();
|
|
|
-// jsonObject.put("itemid", row.getLong("itemid"));
|
|
|
-// jsonObject.put("sa_orderitemsid", row.getLong("sa_orderitemsid"));
|
|
|
-// jsonObject.put("newvalue", row.getString("erpdeliedqty"));
|
|
|
-// itemifnos.add(jsonObject);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// content.put("itemifnos", itemifnos);
|
|
|
-// content.put("isjiean", true);
|
|
|
-// OrderItems orderItems = new OrderItems(content);
|
|
|
-// orderItems.changeItem();
|
|
|
|
|
|
SQLFactory sqlFactory = new SQLFactory(this, "订单_关闭");
|
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
|
@@ -1356,34 +1245,6 @@ public class Order extends Controller {
|
|
|
sqlFactory.addParameter("sa_rebatesettlementid", sa_rebatesettlementid);
|
|
|
sqlFactory.addParameter_SQL("where", where);
|
|
|
Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
|
|
|
-// Long sa_orderid = content.getLong("sa_orderid");
|
|
|
-// QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_rebatesettlement",
|
|
|
-// "sa_rebatesettlementid", "billno", "billdate", "sys_enterpriseid", "ownerid", "ownertable", "sa_contractid", "remarks");
|
|
|
-// querySQL.setTableAlias("t1");
|
|
|
-// querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t2.sys_enterpriseid = t1.sys_enterpriseid and t2.siteid = t1.siteid", "enterprisename");
|
|
|
-// querySQL.addJoinTable(JOINTYPE.left, "sa_contract", "t3", "t3.sa_contractid = t1.sa_contractid and t3.siteid = t1.siteid", "orderratio", "productdiscount", "calculatemodel");
|
|
|
-// querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t4", "t4.sa_orderid = t1.ownerid and t4.siteid = t1.siteid", "sonum");
|
|
|
-// querySQL.addJoinTable(JOINTYPE.left, "sa_rebatesettlement_items", "t5", "t1.siteid = t5.siteid and t1.sa_rebatesettlementid = t5.sa_rebatesettlementid");
|
|
|
-// querySQL.setSiteid(siteid);
|
|
|
-// querySQL.setWhere("t1.ownertable", "sa_order");
|
|
|
-// querySQL.setWhere("t1.ownerid", sa_orderid);
|
|
|
-// querySQL.addGroupBy("t1.sa_rebatesettlementid", "t1.billno", "t1.billdate", "t1.sys_enterpriseid", "t1.ownerid", "t1.ownertable", "t1.sa_contractid", "t1.remarks", "t2.enterprisename", "t3.orderratio", "t3.productdiscount", "t3.calculatemodel", "t4.sonum", "t3.billno");
|
|
|
-// querySQL.setPage(pageSize, pageNumber);
|
|
|
-// querySQL.setOrderBy(pageSorting);
|
|
|
-// Rows rebateRows = querySQL.query();
|
|
|
-// ArrayList<String> sa_rebatesettlementidList = rebateRows.toArrayList("sa_rebatesettlementid");
|
|
|
-//
|
|
|
-// querySQL = SQLFactory.createQuerySQL(this, "sa_rebatesettlement_items",
|
|
|
-// "sa_rebatesettlement_itemsid", "sa_rebatesettlementid", "qty", "marketprice", "discountrate", "price", "amount", "rebate_discountrate", "rebate_price", "rebate_unit_price", "rebate");
|
|
|
-// querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t1.itemid = t2.itemid and t1.siteid = t2.siteid", "itemno", "itemname");
|
|
|
-// querySQL.setTableAlias("t1");
|
|
|
-// querySQL.setSiteid(siteid);
|
|
|
-// querySQL.setWhere("t1.sa_rebatesettlementid", sa_rebatesettlementidList);
|
|
|
-// RowsMap rebateDetailRowsMap = querySQL.query().toRowsMap("sa_rebatesettlementid");
|
|
|
-// for (Row row : rebateRows) {
|
|
|
-// String sa_rebatesettlementid = row.getString("sa_rebatesettlementid");
|
|
|
-// row.put("rebatesettlement_items", rebateDetailRowsMap.get(sa_rebatesettlementid));
|
|
|
-// }
|
|
|
return getSucReturnObject().setData(rows).toString();
|
|
|
}
|
|
|
|
|
|
@@ -1475,45 +1336,6 @@ public class Order extends Controller {
|
|
|
}
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 获取订单提交SQL
|
|
|
- *
|
|
|
- * @param sa_orderid
|
|
|
- * @return
|
|
|
- * @throws YosException
|
|
|
- */
|
|
|
- public String getOrderSubmitSql(Long sa_orderid, String status, String freightstatus) throws YosException {
|
|
|
- SQLFactory sqlFactory = new SQLFactory(this, "订单_提交");
|
|
|
- sqlFactory.addParameter("siteid", siteid);
|
|
|
- sqlFactory.addParameter("userid", userid);
|
|
|
- sqlFactory.addParameter("username", username);
|
|
|
- sqlFactory.addParameter("sa_orderid", sa_orderid);
|
|
|
- sqlFactory.addParameter("status", status);
|
|
|
- sqlFactory.addParameter("freightstatus", freightstatus);
|
|
|
- System.err.println(sqlFactory.getSQL());
|
|
|
- return sqlFactory.getSQL();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取订单审核SQL
|
|
|
- *
|
|
|
- * @param sa_orderid
|
|
|
- * @return
|
|
|
- * @throws YosException
|
|
|
- */
|
|
|
- public String getOrderCheckSql(Long sa_orderid, String reviewtype, BigDecimal reward_rate, String reward_point) throws YosException {
|
|
|
- SQLFactory sqlFactory = new SQLFactory(this, "订单_审核");
|
|
|
- sqlFactory.addParameter("siteid", siteid);
|
|
|
- sqlFactory.addParameter("userid", userid);
|
|
|
- sqlFactory.addParameter("username", username);
|
|
|
- sqlFactory.addParameter("reviewtype", reviewtype);
|
|
|
- sqlFactory.addParameter("sa_orderid", sa_orderid);
|
|
|
- sqlFactory.addParameter("reward_rate", reward_rate);
|
|
|
- sqlFactory.addParameter("reward_point", reward_point);
|
|
|
- return sqlFactory.getSQL();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 创建凭证实体
|
|
|
*
|
|
|
@@ -1600,19 +1422,6 @@ public class Order extends Controller {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public boolean hasErpAgentNum(Long sys_enterpriseid) throws YosException {
|
|
|
- String sql = "SELECT ifnull(erpagentnum,'')erpagentnum from sys_dataextend WHERE ownertable='sys_enterprise' and siteid='" + siteid + "' and ownerid='" + sys_enterpriseid + "'";
|
|
|
- Rows rows = dbConnect.runSqlQuery(sql);
|
|
|
- if (rows.isEmpty()) {
|
|
|
- return false;
|
|
|
- }
|
|
|
- if (rows.get(0).getString("erpagentnum").isEmpty()) {
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
public Rows getEmailRow(Long sa_orderid) throws YosException {
|
|
|
SQLFactory sqlFactory = new SQLFactory(this, "邮件附件订单列表");
|
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
|
@@ -1648,81 +1457,17 @@ public class Order extends Controller {
|
|
|
return titleMap;
|
|
|
}
|
|
|
|
|
|
- public void updateTradingStatus(Long sys_enterpriseid) throws YosException {
|
|
|
+ public void updateTradingStatus(Long sa_customersid) throws YosException {
|
|
|
//将符合的客户变更为已成交
|
|
|
- String sql = "SELECT COUNT(0) count from sa_order WHERE sys_enterpriseid = " + sys_enterpriseid + " and `status` in ('审核','关闭') and deleted=0";
|
|
|
+ String sql = "SELECT COUNT(0) count from sa_order WHERE sa_customersid = " + sa_customersid + " and `status` in ('审核','关闭') and deleted=0";
|
|
|
Long count = dbConnect.runSqlQuery(sql).get(0).getLong("count");
|
|
|
- Rows rows = dbConnect.runSqlQuery("select * from sa_customers where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid);
|
|
|
- for (Row row : rows) {
|
|
|
- long sa_customersid = row.getLong("sa_customersid");
|
|
|
- if (count == 1) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_customers SET tradingstatus='已成交' WHERE sa_customersid = " + sa_customersid);
|
|
|
- } else if (count > 1) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_customers SET tradingstatus='多次成交' WHERE sa_customersid = " + sa_customersid);
|
|
|
- } else {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_customers SET tradingstatus='未成交' WHERE sa_customersid = " + sa_customersid);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- public void updateProjectStatus(Long sa_projectid) throws YosException {
|
|
|
- Rows rows = dbConnect.runSqlQuery("select count(*)count from sa_order where siteid='" + siteid + "' and sa_projectid=" + sa_projectid + " and status in ('审核','关闭') and deleted=0");
|
|
|
- long count = rows.get(0).getLong("count");
|
|
|
- if (count == 0) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project SET `status`='跟进中' WHERE status='已成交' and deleted=0 and sa_projectid = " + sa_projectid);
|
|
|
- } else if (count == 1) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project SET `status`='已成交' WHERE status='跟进中' and deleted=0 and sa_projectid = " + sa_projectid);
|
|
|
- ArrayList<Long> useridList = new ArrayList<>();
|
|
|
- useridList.addAll(DataTeam.queryTeamRowWithoutHeadpic(this, "sa_project", sa_projectid).toArrayList("userid", new ArrayList<>()));
|
|
|
- useridList.addAll(DataTeam.getProxyUserids(this, "sa_project", sa_projectid));
|
|
|
- JSONObject extradata = new JSONObject();
|
|
|
- extradata.put("extraUserList", useridList);
|
|
|
- Executor.sendEml_controller(this, "project_cj", sa_projectid, extradata);
|
|
|
- ArrayList<String> stageList = dbConnect.runSqlQuery("select stagename from sa_project_stage where siteid='" + siteid + "' and sa_projectid = " + sa_projectid).toArrayList("stagename");
|
|
|
- if (stageList.contains("供货及服务")) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project_stage SET `active`=0 WHERE sa_projectid = " + sa_projectid);
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project_stage SET `active`=1 WHERE sa_projectid = " + sa_projectid + " and stagename='供货及服务'");
|
|
|
- }
|
|
|
+ if (count == 1) {
|
|
|
+ dbConnect.runSqlUpdate("UPDATE sa_customers SET tradingstatus='已成交' WHERE sa_customersid = " + sa_customersid);
|
|
|
+ } else if (count > 1) {
|
|
|
+ dbConnect.runSqlUpdate("UPDATE sa_customers SET tradingstatus='多次成交' WHERE sa_customersid = " + sa_customersid);
|
|
|
} else {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project SET `status`='已成交' WHERE status='跟进中' and deleted=0 and sa_projectid = " + sa_projectid);
|
|
|
- ArrayList<String> stageList = dbConnect.runSqlQuery("select stagename from sa_project_stage where siteid='" + siteid + "' and sa_projectid = " + sa_projectid).toArrayList("stagename");
|
|
|
- if (stageList.contains("供货及服务")) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project_stage SET `active`=0 WHERE sa_projectid = " + sa_projectid);
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_project_stage SET `active`=1 WHERE sa_projectid = " + sa_projectid + " and stagename='供货及服务'");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void updateCustomersStatus(Long sa_projectid, boolean isCheck) throws YosException {
|
|
|
- Rows rows = dbConnect.runSqlQuery("SELECT sys_enterpriseid from sa_project_parties WHERE siteid='" + siteid + "' and sa_projectid=" + sa_projectid);
|
|
|
- for (Row row : rows) {
|
|
|
- long sys_enterpriseid = row.getLong("sys_enterpriseid");
|
|
|
- Rows customersrows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid='" + siteid + "'");
|
|
|
- for (Row customersrow : customersrows) {
|
|
|
- long sa_customersid = customersrow.getLong("sa_customersid");
|
|
|
- DataTag.deleteTag(this, "sa_customers", sa_customersid, "合作中");
|
|
|
- DataTag.deleteTag(this, "sa_customers", sa_customersid, "已终止");
|
|
|
- DataTag.deleteTag(this, "sa_customers", sa_customersid, "暂缓");
|
|
|
- DataTag.deleteTag(this, "sa_customers", sa_customersid, "潜在");
|
|
|
- if (isCheck) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_customers SET status='合作中' WHERE sa_customersid = " + sa_customersid + " and siteid='" + siteid + "'");
|
|
|
- DataTag.createTag(this, "sa_customers", sa_customersid, "合作中");
|
|
|
- } else {
|
|
|
- String sql = "SELECT COUNT(0) count from sa_contract WHERE sys_enterpriseid = " + sys_enterpriseid + " and `status`='审核' and deleted=0";
|
|
|
- Row contractrow = dbConnect.runSqlQuery(sql).get(0);
|
|
|
- Long count = contractrow.getLong("count");
|
|
|
- if (count >= 1) {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_customers SET status='合作中' WHERE sys_enterpriseid =" + sys_enterpriseid + " and siteid='" + siteid + "'");
|
|
|
- DataTag.createTag(this, "sa_customers", sa_customersid, "合作中");
|
|
|
- } else {
|
|
|
- dbConnect.runSqlUpdate("UPDATE sa_customers SET status='潜在' WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid='" + siteid + "'");
|
|
|
- DataTag.createTag(this, "sa_customers", sa_customersid, "潜在");
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ dbConnect.runSqlUpdate("UPDATE sa_customers SET tradingstatus='未成交' WHERE sa_customersid = " + sa_customersid);
|
|
|
}
|
|
|
|
|
|
}
|