|
@@ -71,11 +71,15 @@ public class sendplandetail extends Controller {
|
|
|
|
|
|
|
|
//计划发货明细计算
|
|
//计划发货明细计算
|
|
|
list = new ArrayList<>();
|
|
list = new ArrayList<>();
|
|
|
- Rows stockbillrows = dbConnect.runSqlQuery("\t\tselect itemid,sum(t2.qty) qty from st_stockbill t1\n" +
|
|
|
|
|
- "\t\t\tinner join st_stockbill_items t2 on t1.st_stockbillid=t2.st_stockbillid\n" +
|
|
|
|
|
- "\t\t\twhere t1.type='销售出库'and t1.status='新建' and t1.siteid='" + siteid + "'\n" +
|
|
|
|
|
- "\t\t\tand billdate <='" + sendplanRows.get(0).getString("senddate") + "'\n" +
|
|
|
|
|
- "\t\t\tgroup by itemid");
|
|
|
|
|
|
|
+// Rows stockbillrows = dbConnect.runSqlQuery("\t\tselect itemid,sum(t2.qty) qty from st_stockbill t1\n" +
|
|
|
|
|
+// "\t\t\tinner join st_stockbill_items t2 on t1.st_stockbillid=t2.st_stockbillid\n" +
|
|
|
|
|
+// "\t\t\twhere t1.type='销售出库'and t1.status='新建' and t1.siteid='" + siteid + "'\n" +
|
|
|
|
|
+// "\t\t\tand billdate <='" + sendplanRows.get(0).getString("senddate") + "'\n" +
|
|
|
|
|
+// "\t\t\tgroup by itemid");
|
|
|
|
|
+ Rows stockbillrows = dbConnect.runSqlQuery("select t2.itemid,sum(t2.undeliqty) qty from sa_order t1 " +
|
|
|
|
|
+ " inner join sa_orderitems t2 on t1.sa_orderid=t2.sa_orderid " +
|
|
|
|
|
+ " where t1.status='审核' and t2.isclose=0 and t2.undeliqty>0 and t1.siteid='" + siteid + "' " +
|
|
|
|
|
+ " group by t2.itemid ");
|
|
|
Rows invbalrows = dbConnect.runSqlQuery("select itemid,sum(qty) qty from st_invbal t1 group by itemid");
|
|
Rows invbalrows = dbConnect.runSqlQuery("select itemid,sum(qty) qty from st_invbal t1 group by itemid");
|
|
|
Rows sendplandetails = dbConnect.runSqlQuery("select t1.sa_sendplandetailid,t1.sa_orderid,t2.itemid,t1.sendqty from sa_sendplandetail t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid where t1.sa_sendplanid=" + sa_sendplanid + " and t1.siteid='" + siteid + "'");
|
|
Rows sendplandetails = dbConnect.runSqlQuery("select t1.sa_sendplandetailid,t1.sa_orderid,t2.itemid,t1.sendqty from sa_sendplandetail t1 inner join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid where t1.sa_sendplanid=" + sa_sendplanid + " and t1.siteid='" + siteid + "'");
|
|
|
RowsMap stockbillrowsMap = stockbillrows.toRowsMap("itemid");
|
|
RowsMap stockbillrowsMap = stockbillrows.toRowsMap("itemid");
|
|
@@ -139,6 +143,11 @@ public class sendplandetail extends Controller {
|
|
|
@API(title = "生成销售出库单", apiversion = R.ID2025032709355603.v1.class)
|
|
@API(title = "生成销售出库单", apiversion = R.ID2025032709355603.v1.class)
|
|
|
@CACHEING_CLEAN(apiClass = {sendplandetail.class})
|
|
@CACHEING_CLEAN(apiClass = {sendplandetail.class})
|
|
|
public String createIcstockBill() throws YosException {
|
|
public String createIcstockBill() throws YosException {
|
|
|
|
|
+ long sa_sendplanid=content.getLong("sa_sendplanid");
|
|
|
|
|
+ Rows rows = dbConnect.runSqlQuery("welect * from sa_sendplan where sa_sendplanid="+sa_sendplanid);
|
|
|
|
|
+ if(rows.isNotEmpty()){
|
|
|
|
|
+ departmentid=rows.get(0).getLong("departmentid");
|
|
|
|
|
+ }
|
|
|
JSONArray detailarray = content.getJSONArray("details");
|
|
JSONArray detailarray = content.getJSONArray("details");
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
HashMap<String, HashMap<String, List<JSONObject>>> agentmap = new HashMap<String, HashMap<String, List<JSONObject>>>();
|
|
HashMap<String, HashMap<String, List<JSONObject>>> agentmap = new HashMap<String, HashMap<String, List<JSONObject>>>();
|
|
@@ -149,8 +158,8 @@ public class sendplandetail extends Controller {
|
|
|
}
|
|
}
|
|
|
String key = "";
|
|
String key = "";
|
|
|
String sys_enterpriseid = jsonObject.getString("sys_enterpriseid");
|
|
String sys_enterpriseid = jsonObject.getString("sys_enterpriseid");
|
|
|
- String outplace = jsonObject.getString("outplace");
|
|
|
|
|
- key = sys_enterpriseid + outplace;
|
|
|
|
|
|
|
+ String topclassnum = jsonObject.getString("topclassnum");
|
|
|
|
|
+ key = topclassnum;
|
|
|
HashMap<String, List<JSONObject>> agent = null;
|
|
HashMap<String, List<JSONObject>> agent = null;
|
|
|
List<JSONObject> paolist = null;
|
|
List<JSONObject> paolist = null;
|
|
|
if (agentmap.containsKey(sys_enterpriseid)) {
|
|
if (agentmap.containsKey(sys_enterpriseid)) {
|
|
@@ -185,7 +194,7 @@ public class sendplandetail extends Controller {
|
|
|
String key = (String) entry2.getKey();
|
|
String key = (String) entry2.getKey();
|
|
|
List<JSONObject> paolist = (List<JSONObject>) entry2
|
|
List<JSONObject> paolist = (List<JSONObject>) entry2
|
|
|
.getValue();
|
|
.getValue();
|
|
|
-
|
|
|
|
|
|
|
+ Iterator<JSONObject> senddetailpaoit = paolist.iterator();
|
|
|
SQLFactory sqlFactory = new SQLFactory(this, "销售出库单新增");
|
|
SQLFactory sqlFactory = new SQLFactory(this, "销售出库单新增");
|
|
|
long st_stockbillid = createTableID("st_stockbill");
|
|
long st_stockbillid = createTableID("st_stockbill");
|
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
@@ -194,6 +203,19 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactory.addParameter("billno", createBillCode("stockbill"));
|
|
sqlFactory.addParameter("billno", createBillCode("stockbill"));
|
|
|
sqlFactory.addParameter("type", "销售出库");
|
|
sqlFactory.addParameter("type", "销售出库");
|
|
|
sqlFactory.addParameter("rb", 1);
|
|
sqlFactory.addParameter("rb", 1);
|
|
|
|
|
+ sqlFactory.addParameter("departmentid", departmentid);
|
|
|
|
|
+ JSONObject firstItem = senddetailpaoit.hasNext() ? senddetailpaoit.next() : null;
|
|
|
|
|
+ if (firstItem != null) {
|
|
|
|
|
+ sqlFactory.addParameter("outplace", firstItem.getStringValue("outplace"));
|
|
|
|
|
+ sqlFactory.addParameter("rec_contactsid", firstItem.getStringValue("rec_contactsid"));
|
|
|
|
|
+ sqlFactory.addParameter("delivery", firstItem.getStringValue("delivery"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ sqlFactory.addParameter("outplace", "");
|
|
|
|
|
+ sqlFactory.addParameter("rec_contactsid",0);
|
|
|
|
|
+ sqlFactory.addParameter("delivery","");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
sqlFactory.addParameter("billdate", getDateTime_Str());
|
|
sqlFactory.addParameter("billdate", getDateTime_Str());
|
|
|
sqlFactory.addParameter("createby", username);
|
|
sqlFactory.addParameter("createby", username);
|
|
|
sqlFactory.addParameter("createdate", getDateTime_Str());
|
|
sqlFactory.addParameter("createdate", getDateTime_Str());
|
|
@@ -204,7 +226,6 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactory.addParameter("remarks", "由发货计划自动生成" + key);
|
|
sqlFactory.addParameter("remarks", "由发货计划自动生成" + key);
|
|
|
sqlList.add(sqlFactory.getSQL());
|
|
sqlList.add(sqlFactory.getSQL());
|
|
|
|
|
|
|
|
- Iterator<JSONObject> senddetailpaoit = paolist.iterator();
|
|
|
|
|
int rowno = 1;
|
|
int rowno = 1;
|
|
|
while (senddetailpaoit.hasNext()) {
|
|
while (senddetailpaoit.hasNext()) {
|
|
|
JSONObject jsonObject = senddetailpaoit.next();
|
|
JSONObject jsonObject = senddetailpaoit.next();
|
|
@@ -222,15 +243,20 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactorydetail.addParameter("remarks", orderdetails.get(0).getString("remarks"));
|
|
sqlFactorydetail.addParameter("remarks", orderdetails.get(0).getString("remarks"));
|
|
|
sqlFactorydetail.addParameter("price", orderdetails.get(0).getBigDecimal("price"));
|
|
sqlFactorydetail.addParameter("price", orderdetails.get(0).getBigDecimal("price"));
|
|
|
sqlFactorydetail.addParameter("amount", orderdetails.get(0).getBigDecimal("price").multiply(qty));
|
|
sqlFactorydetail.addParameter("amount", orderdetails.get(0).getBigDecimal("price").multiply(qty));
|
|
|
|
|
+ sqlFactorydetail.addParameter("defaultprice", orderdetails.get(0).getBigDecimal("defaultprice"));
|
|
|
|
|
+ sqlFactorydetail.addParameter("custamount", orderdetails.get(0).getString("custamount"));
|
|
|
} else {
|
|
} else {
|
|
|
sqlFactorydetail.addParameter("remarks", "");
|
|
sqlFactorydetail.addParameter("remarks", "");
|
|
|
sqlFactorydetail.addParameter("price", 0);
|
|
sqlFactorydetail.addParameter("price", 0);
|
|
|
sqlFactorydetail.addParameter("amount", 0);
|
|
sqlFactorydetail.addParameter("amount", 0);
|
|
|
|
|
+ sqlFactorydetail.addParameter("defaultprice", 0);
|
|
|
|
|
+ sqlFactorydetail.addParameter("custamount", 0);
|
|
|
}
|
|
}
|
|
|
sqlFactorydetail.addParameter("itemid", jsonObject.getLongValue("itemid"));
|
|
sqlFactorydetail.addParameter("itemid", jsonObject.getLongValue("itemid"));
|
|
|
sqlFactorydetail.addParameter("qty", qty);
|
|
sqlFactorydetail.addParameter("qty", qty);
|
|
|
sqlFactorydetail.addParameter("sa_dispatch_itemsid", 0);
|
|
sqlFactorydetail.addParameter("sa_dispatch_itemsid", 0);
|
|
|
sqlFactorydetail.addParameter("rowno", rowno);
|
|
sqlFactorydetail.addParameter("rowno", rowno);
|
|
|
|
|
+ sqlFactorydetail.addParameter("stockid", 1603);
|
|
|
|
|
|
|
|
sqlFactorydetail.addParameter("sa_orderitemsid", jsonObject.getLongValue("sa_orderitemsid"));
|
|
sqlFactorydetail.addParameter("sa_orderitemsid", jsonObject.getLongValue("sa_orderitemsid"));
|
|
|
sqlFactorydetail.addParameter("sa_orderid", jsonObject.getLongValue("sa_orderid"));
|
|
sqlFactorydetail.addParameter("sa_orderid", jsonObject.getLongValue("sa_orderid"));
|
|
@@ -253,17 +279,17 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactory.addParameter_SQL("where", "1=1");
|
|
sqlFactory.addParameter_SQL("where", "1=1");
|
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
|
pageSorting = "t2.checkdate desc";
|
|
pageSorting = "t2.checkdate desc";
|
|
|
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail", "sa_sendplandetailid", "colorflag", "topclassnum", "outplace", "sendqty", "willoutqty", "willinqty", "canuseqty");
|
|
|
|
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail", "sa_sendplanid","sa_sendplandetailid", "colorflag", "outplace", "sendqty", "willoutqty", "willinqty", "canuseqty");
|
|
|
querySQL.setTableAlias("t1");
|
|
querySQL.setTableAlias("t1");
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.siteid = t2.siteid and t1.sa_orderid = t2.sa_orderid", "sonum", "checkdate", "sys_enterpriseid", "sa_orderid");
|
|
|
|
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sa_order", "t2", "t1.siteid = t2.siteid and t1.sa_orderid = t2.sa_orderid", "sonum", "checkdate", "sys_enterpriseid", "sa_orderid","rec_contactsid","delivery");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t3", "t3.siteid = t1.siteid and t3.sa_orderitemsid = t1.sa_orderitemsid", "rowno", "remarks", "sa_orderitemsid");
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t3", "t3.siteid = t1.siteid and t3.sa_orderitemsid = t1.sa_orderitemsid", "rowno", "remarks", "sa_orderitemsid");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.siteid = t1.siteid and t4.sa_agentsid = t1.sa_agentsid", "agentnum");
|
|
querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.siteid = t1.siteid and t4.sa_agentsid = t1.sa_agentsid", "agentnum");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid", "enterprisename", "abbreviation");
|
|
querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid", "enterprisename", "abbreviation");
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t6", "t6.siteid = t3.siteid and t6.itemid = t3.itemid", "itemno", "itemname", "model", "itemid");
|
|
|
|
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t6", "t6.siteid = t3.siteid and t6.itemid = t3.itemid", "itemno", "itemname", "model", "itemid","topclassnum");
|
|
|
querySQL.addJoinTable(JOINTYPE.left, sqlFactory, "t7", "t7.sa_orderitemsid = t3.sa_orderitemsid", "undeliqty");
|
|
querySQL.addJoinTable(JOINTYPE.left, sqlFactory, "t7", "t7.sa_orderitemsid = t3.sa_orderitemsid", "undeliqty");
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "st_invbal", "t8", "t8.itemid = t3.itemid and stockid='101'");
|
|
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "st_invbal", "t9", "t9.itemid = t3.itemid and stockid='103'");
|
|
|
|
|
- querySQL.addJoinTable(JOINTYPE.left, "st_invbal", "t10", "t10.itemid = t3.itemid and stockid='109'");
|
|
|
|
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "st_invbal", "t8", "t8.itemid = t3.itemid and t8.stockno='101'");
|
|
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "st_invbal", "t9", "t9.itemid = t3.itemid and t8.stockno='103'");
|
|
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "st_invbal", "t10", "t10.itemid = t3.itemid and t8.stockno='109'");
|
|
|
querySQL.addQueryFields("willoutqty_jh", "t7.willoutqty");
|
|
querySQL.addQueryFields("willoutqty_jh", "t7.willoutqty");
|
|
|
querySQL.addQueryFields("qty_xs", "t8.qty");
|
|
querySQL.addQueryFields("qty_xs", "t8.qty");
|
|
|
querySQL.addQueryFields("qty_tq", "t9.qty");
|
|
querySQL.addQueryFields("qty_tq", "t9.qty");
|