|
|
@@ -62,8 +62,8 @@ public class OrderItems extends Controller {
|
|
|
Rows orderRows = getOrderRows(this, sa_orderid);
|
|
|
if (orderRows.isEmpty()) {
|
|
|
return getErrReturnObject().setErrMsg("数据不存在,无法添加").toString();
|
|
|
- }else{
|
|
|
- if(!orderRows.get(0).getString("status").equals("新建") && !orderRows.get(0).getString("status").equals("预提交") ){
|
|
|
+ } else {
|
|
|
+ if (!orderRows.get(0).getString("status").equals("新建") && !orderRows.get(0).getString("status").equals("预提交")) {
|
|
|
return getErrReturnObject().setErrMsg("非新建或预提交状态无法操作").toString();
|
|
|
}
|
|
|
}
|
|
|
@@ -358,7 +358,7 @@ public class OrderItems extends Controller {
|
|
|
}
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
BigDecimal orderSumamount = BigDecimal.ZERO;
|
|
|
- Rows classamountrows = dbConnect.runSqlQuery("select t2.marketingcategory topitemclassid,t1.siteid,sum(ifnull(t1.amount,0)) sumamount from sa_orderitems t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_orderid='" + sa_orderid + "' and t1.siteid='"+siteid+"' group by t2.marketingcategory,t1.siteid");
|
|
|
+ Rows classamountrows = dbConnect.runSqlQuery("select t2.marketingcategory topitemclassid,t1.siteid,sum(ifnull(t1.amount,0)) sumamount from sa_orderitems t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_orderid='" + sa_orderid + "' and t1.siteid='" + siteid + "' group by t2.marketingcategory,t1.siteid");
|
|
|
for (Row classamountrow : classamountrows) {
|
|
|
orderSumamount = orderSumamount.add(classamountrow.getBigDecimal("sumamount"));
|
|
|
}
|
|
|
@@ -661,14 +661,37 @@ public class OrderItems extends Controller {
|
|
|
sys_enterpriseid = orderRows.get(0).getLong("sys_enterpriseid");
|
|
|
}
|
|
|
boolean isExport = content.getBooleanValue("isExport");
|
|
|
- SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_列表", pageSize, pageNumber, pageSorting);
|
|
|
- if (isExport) {
|
|
|
- sqlFactory = new SQLFactory(this, "订单商品明细_列表");
|
|
|
+// SQLFactory sqlFactory = new SQLFactory(this, "订单商品明细_列表", pageSize, pageNumber, pageSorting);
|
|
|
+// if (isExport) {
|
|
|
+// sqlFactory = new SQLFactory(this, "订单商品明细_列表");
|
|
|
+// }
|
|
|
+// sqlFactory.addParameter("siteid", siteid);
|
|
|
+// sqlFactory.addParameter("sa_orderid", sa_orderid);
|
|
|
+// sqlFactory.addParameter_SQL("where", where);
|
|
|
+// Rows rows = dbConnect.runSqlQuery(sqlFactory);
|
|
|
+
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "st_invbal_sale", "t2", "t2.siteid = t1.siteid AND t2.itemid = t1.itemid");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid",
|
|
|
+ "orderminqty_auxunit", "orderminqty", "orderaddqty_auxunit", "orderaddqty", "spec", "iscustomsize", "widthschemeid", "lengthschemeid", "standards", "k3outcode");
|
|
|
+// querySQL.addJoinTable(JOINTYPE.left, "plm_itemextend", "t4", "t4.itemid = t1.itemid and t4.siteid = t1.siteid",
|
|
|
+// "erpitemno", "erpitemname", "material", "prodline", "device", "specalnote");
|
|
|
+ querySQL.addQueryFields("candispatchqty", "ifnull(t2.candispatchqty, 0)");
|
|
|
+ querySQL.addQueryFields("cansaleqty", "ifnull(t2.cansaleqty, 0)");
|
|
|
+ querySQL.addQueryFields("totalaty", "ifnull(t2.qty, 0)");
|
|
|
+ querySQL.addQueryFields("stockstatus", "(SELECT (CASE WHEN t2.cansaleqty>=t3.stockstatus1 THEN '充足' WHEN t2.cansaleqty<=t3.stockstatus2 THEN '缺货' ELSE '紧缺' END))");
|
|
|
+ querySQL.addQueryFields("packageqty", "ifnull(t3.packageqty, 0)");
|
|
|
+ querySQL.addQueryFields("delivery", "ifnull(t3.delivery, 0)");
|
|
|
+ querySQL.setWhere(where.toString()).setTableAlias("t1");
|
|
|
+ querySQL.setWhere("t1.siteid", siteid);
|
|
|
+ querySQL.setWhere("t1.sa_orderid", sa_orderid);
|
|
|
+ if (!isExport) {
|
|
|
+ querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
|
|
|
}
|
|
|
- sqlFactory.addParameter("siteid", siteid);
|
|
|
- sqlFactory.addParameter("sa_orderid", sa_orderid);
|
|
|
- sqlFactory.addParameter_SQL("where", where);
|
|
|
- Rows rows = dbConnect.runSqlQuery(sqlFactory);
|
|
|
+
|
|
|
+
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+
|
|
|
ArrayList<Long> ids = rows.toArrayList("itemid", new ArrayList<>());
|
|
|
ArrayList<Long> itemnos = rows.toArrayList("itemno", new ArrayList<>());
|
|
|
RowsMap rowsMap = rows.toRowsMap("itemno");
|
|
|
@@ -726,6 +749,9 @@ public class OrderItems extends Controller {
|
|
|
}
|
|
|
row.put("attinfos", attinfoRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
|
|
|
row.put("contractprice", 0);
|
|
|
+ //处理日期字段空的情况
|
|
|
+ row.putIfAbsent("needdate", "");
|
|
|
+ row.putIfAbsent("deliverydate", "");
|
|
|
}
|
|
|
|
|
|
if (isExport) {
|
|
|
@@ -863,7 +889,7 @@ public class OrderItems extends Controller {
|
|
|
|
|
|
SQLFactory sqlFactory1 = new SQLFactory(this, "订单明细出库数量汇总");
|
|
|
sqlFactory1.addParameter("siteid", siteid);
|
|
|
- sqlFactory1.addParameter_in("sa_orderitemsids", rows.toArrayList("sa_orderitemsid",new ArrayList<>()));
|
|
|
+ sqlFactory1.addParameter_in("sa_orderitemsids", rows.toArrayList("sa_orderitemsid", new ArrayList<>()));
|
|
|
Rows sumQtyRows = dbConnect.runSqlQuery(sqlFactory1);
|
|
|
RowsMap sumQtyRowsMap = sumQtyRows.toRowsMap("sa_orderitemsid");
|
|
|
|
|
|
@@ -891,7 +917,7 @@ public class OrderItems extends Controller {
|
|
|
if (sumQtyRowsMap.get(row.getString("sa_orderitemsid")).isNotEmpty()) {
|
|
|
row.put("unsoldqty", row.getBigDecimal("qty").subtract(sumQtyRowsMap.get(row.getString("sa_orderitemsid")).get(0).getBigDecimal("sumqty")));
|
|
|
} else {
|
|
|
- row.put("unsoldqty", row.getBigDecimal("qty"));
|
|
|
+ row.put("unsoldqty", row.getBigDecimal("qty"));
|
|
|
}
|
|
|
if (!row.containsKey("invbalqty")) {
|
|
|
row.put("invbalqty", BigDecimal.ZERO);
|
|
|
@@ -964,14 +990,14 @@ public class OrderItems extends Controller {
|
|
|
//查询订单列表(管理端)
|
|
|
public QuerySQL queryAllListManage(String where) throws YosException {
|
|
|
QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_orderitems",
|
|
|
- "sa_orderitemsid","itemid","rowno","itemno","itemname","unit","qty","undeliqty","price","amount","remarks","customproperties","batchcontrol","model",
|
|
|
- "conversionrate","marketprice","defaultprice","defaultamount","auxqty","needdate","deliedqty","rebateamount","invoiceamount","writeoffamount","auxunit","sa_orderid",
|
|
|
- "deliverydate","returnqty","stockno","position","batchno","isfreeze");
|
|
|
+ "sa_orderitemsid", "itemid", "rowno", "itemno", "itemname", "unit", "qty", "undeliqty", "price", "amount", "remarks", "customproperties", "batchcontrol", "model",
|
|
|
+ "conversionrate", "marketprice", "defaultprice", "defaultamount", "auxqty", "needdate", "deliedqty", "rebateamount", "invoiceamount", "writeoffamount", "auxunit", "sa_orderid",
|
|
|
+ "deliverydate", "returnqty", "stockno", "position", "batchno", "isfreeze");
|
|
|
querySQL.setTableAlias("t1");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t3", "t3.itemid = t1.itemid and t3.siteid = t1.siteid",
|
|
|
- "orderminqty_auxunit","orderminqty","orderaddqty_auxunit","orderaddqty","spec","standards","packageqty","delivery","k3outcode");
|
|
|
+ "orderminqty_auxunit", "orderminqty", "orderaddqty_auxunit", "orderaddqty", "spec", "standards", "packageqty", "delivery", "k3outcode");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t5", "t5.sa_orderid = t1.sa_orderid and t5.siteid = t1.siteid",
|
|
|
- "sonum","type","typemx","status","billdate","submitdate","checkdate","tradefield");
|
|
|
+ "sonum", "type", "typemx", "status", "billdate", "submitdate", "checkdate", "tradefield");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t6", "t6.sys_enterpriseid = t5.sys_enterpriseid and t6.siteid = t5.siteid",
|
|
|
"agentnum");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t7", "t7.sys_enterpriseid = t5.sys_enterpriseid and t7.siteid = t5.siteid",
|
|
|
@@ -983,8 +1009,6 @@ public class OrderItems extends Controller {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
//返回导出的标题
|
|
|
public HashMap<String, String> getTitleMap() {
|
|
|
HashMap<String, String> titleMap = new HashMap<>();
|