|
@@ -22,26 +22,26 @@ public class sendplandetail extends Controller {
|
|
|
@API(title = "订单信息刷新", apiversion = R.ID2025032709331803.v1.class)
|
|
|
@CACHEING_CLEAN(apiClass = {sendplandetail.class})
|
|
|
public String orderRefresh() throws YosException {
|
|
|
- long sa_sendplanid =content.getLongValue("sa_sendplanid");
|
|
|
- Rows sendplanRows = dbConnect.runSqlQuery("select * from sa_sendplan where sa_sendplanid='"+sa_sendplanid+"' and siteid='"+siteid+"'");
|
|
|
- if(sendplanRows.isEmpty()){
|
|
|
+ long sa_sendplanid = content.getLongValue("sa_sendplanid");
|
|
|
+ Rows sendplanRows = dbConnect.runSqlQuery("select * from sa_sendplan where sa_sendplanid='" + sa_sendplanid + "' and siteid='" + siteid + "'");
|
|
|
+ if (sendplanRows.isEmpty()) {
|
|
|
return getErrReturnObject().setErrMsg("发货计划不存在,无法进行订单信息刷新").toString();
|
|
|
}
|
|
|
- dbConnect.runSqlUpdate("delete from sa_sendplandetail where sa_sendplanid='"+sa_sendplanid+"' and siteid='"+siteid+"'");
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_sendplandetail where sa_sendplanid='" + sa_sendplanid + "' and siteid='" + siteid + "'");
|
|
|
/*
|
|
|
过滤条件设置
|
|
|
*/
|
|
|
- StringBuffer where = new StringBuffer(" 1=1 and t1.undeliqty>0 and t3.type='"+sendplanRows.get(0).getString("type")
|
|
|
- +"' and DATE_FORMAT(t3.checkdate, '%Y-%m-%d') >='"+sendplanRows.get(0).getString("begindate")
|
|
|
- +"' and DATE_FORMAT(t3.checkdate, '%Y-%m-%d') <='"+sendplanRows.get(0).getString("enddate")
|
|
|
- +"' and ( \n" +
|
|
|
+ StringBuffer where = new StringBuffer(" 1=1 and t1.undeliqty>0 and t3.type='" + sendplanRows.get(0).getString("type")
|
|
|
+ + "' and DATE_FORMAT(t3.checkdate, '%Y-%m-%d') >='" + sendplanRows.get(0).getString("begindate")
|
|
|
+ + "' and DATE_FORMAT(t3.checkdate, '%Y-%m-%d') <='" + sendplanRows.get(0).getString("enddate")
|
|
|
+ + "' and ( \n" +
|
|
|
"\t\t(t3.type in('标准订单','网销订单')) or\n" +
|
|
|
"\t\t(\n" +
|
|
|
"\t\t\tt3.type='配件订单'\n" +
|
|
|
"\t\t\tand t3.sys_enterpriseid in (\n" +
|
|
|
"\t\t\tselect distinct sys_enterpriseid from st_stockbill \n" +
|
|
|
"\t\t\twhere type='销售出库' and status='审核' and \n" +
|
|
|
- "\t\t\tDATE_FORMAT(billdate, '%Y-%m-%d') = '"+sendplanRows.get(0).getString("senddate")+"'\n" +
|
|
|
+ "\t\t\tDATE_FORMAT(billdate, '%Y-%m-%d') = '" + sendplanRows.get(0).getString("senddate") + "'\n" +
|
|
|
"\t\t\t)\n" +
|
|
|
"\t\t))");
|
|
|
|
|
@@ -51,9 +51,11 @@ public class sendplandetail extends Controller {
|
|
|
Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
|
|
|
ArrayList<String> list = new ArrayList<>();
|
|
|
//计划发货插入明细
|
|
|
- for(Row row :rows){
|
|
|
- InsertSQL insertSQL = SQLFactory.createInsertSQL(this,"sa_sendplandetail");
|
|
|
- insertSQL.setUniqueid(createTableID("sa_sendplandetail"));
|
|
|
+ int i = 0;
|
|
|
+ long[] sendplandetailids = createTableID("sa_sendplandetail", rows.size());
|
|
|
+ for (Row row : rows) {
|
|
|
+ InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_sendplandetail");
|
|
|
+ insertSQL.setUniqueid(sendplandetailids[i++]);
|
|
|
insertSQL.setSiteid(siteid);
|
|
|
insertSQL.setValue("sa_sendplanid", sa_sendplanid);
|
|
|
insertSQL.setValue("sendqty", row.getBigDecimal("sendqty"));
|
|
@@ -68,49 +70,49 @@ public class sendplandetail extends Controller {
|
|
|
dbConnect.runSqlUpdate(list);
|
|
|
|
|
|
//计划发货明细计算
|
|
|
- list=new ArrayList<>();
|
|
|
- Rows stockbillrows =dbConnect.runSqlQuery("\t\tselect itemid,sum(t2.qty) qty from st_stockbill t1\n" +
|
|
|
+ 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 DATE_FORMAT(billdate, '%Y-%m-%d')<='"+sendplanRows.get(0).getString("senddate")+"'\n" +
|
|
|
+ "\t\t\twhere t1.type='销售出库'and t1.status='新建' and t1.siteid='" + siteid + "'\n" +
|
|
|
+ "\t\t\tand DATE_FORMAT(billdate, '%Y-%m-%d')<='" + sendplanRows.get(0).getString("senddate") + "'\n" +
|
|
|
"\t\t\tgroup by itemid");
|
|
|
- Rows invbalrows =dbConnect.runSqlQuery("select itemid,sum(qty) qty from st_invbal t1 group by itemid");
|
|
|
- Rows sendplandetails = dbConnect.runSqlQuery("select * from sa_sendplandetail where sa_sendplanid="+sa_sendplanid+" and siteid='"+siteid+"'");
|
|
|
- RowsMap stockbillrowsMap =stockbillrows.toRowsMap("itemid");
|
|
|
- RowsMap invbalrowsMap =invbalrows.toRowsMap("itemid");
|
|
|
- for(Row row:sendplandetails){
|
|
|
- BigDecimal canuseqty=BigDecimal.ZERO;
|
|
|
- BigDecimal willoutqty=BigDecimal.ZERO;
|
|
|
- BigDecimal invbalqty=BigDecimal.ZERO;
|
|
|
+ Rows invbalrows = dbConnect.runSqlQuery("select itemid,sum(qty) qty from st_invbal t1 group by itemid");
|
|
|
+ Rows sendplandetails = dbConnect.runSqlQuery("select * from sa_sendplandetail where sa_sendplanid=" + sa_sendplanid + " and siteid='" + siteid + "'");
|
|
|
+ RowsMap stockbillrowsMap = stockbillrows.toRowsMap("itemid");
|
|
|
+ RowsMap invbalrowsMap = invbalrows.toRowsMap("itemid");
|
|
|
+ for (Row row : sendplandetails) {
|
|
|
+ BigDecimal canuseqty = BigDecimal.ZERO;
|
|
|
+ BigDecimal willoutqty = BigDecimal.ZERO;
|
|
|
+ BigDecimal invbalqty = BigDecimal.ZERO;
|
|
|
UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_sendplandetail");
|
|
|
updateSQL.setUniqueid(row.getLong("sa_sendplandetailid")).setSiteid(siteid);
|
|
|
- if(stockbillrowsMap.containsKey(row.getString("itemid"))){
|
|
|
- willoutqty=stockbillrowsMap.get(row.getString("itemid")).get(0).getBigDecimal("qty");
|
|
|
+ if (stockbillrowsMap.containsKey(row.getString("itemid"))) {
|
|
|
+ willoutqty = stockbillrowsMap.get(row.getString("itemid")).get(0).getBigDecimal("qty");
|
|
|
}
|
|
|
- if(invbalrowsMap.containsKey(row.getString("itemid"))){
|
|
|
- invbalqty=stockbillrowsMap.get(row.getString("itemid")).get(0).getBigDecimal("qty");
|
|
|
+ if (invbalrowsMap.containsKey(row.getString("itemid"))) {
|
|
|
+ invbalqty = stockbillrowsMap.get(row.getString("itemid")).get(0).getBigDecimal("qty");
|
|
|
}
|
|
|
- canuseqty=invbalqty.subtract(willoutqty);
|
|
|
- updateSQL.setValue("willoutqty",willoutqty);
|
|
|
- updateSQL.setValue("willinqty",0);
|
|
|
- updateSQL.setValue("canuseqty",canuseqty);
|
|
|
- if(canuseqty.compareTo(BigDecimal.ZERO)<=0){
|
|
|
- updateSQL.setValue("sendqty",0);
|
|
|
- updateSQL.setValue("colorflag",0);
|
|
|
- }else {
|
|
|
- if(canuseqty.compareTo(row.getBigDecimal("sendqty"))>=0){
|
|
|
- updateSQL.setValue("colorflag",2);
|
|
|
- }else{
|
|
|
- updateSQL.setValue("colorflag",3);
|
|
|
+ canuseqty = invbalqty.subtract(willoutqty);
|
|
|
+ updateSQL.setValue("willoutqty", willoutqty);
|
|
|
+ updateSQL.setValue("willinqty", 0);
|
|
|
+ updateSQL.setValue("canuseqty", canuseqty);
|
|
|
+ if (canuseqty.compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
+ updateSQL.setValue("sendqty", 0);
|
|
|
+ updateSQL.setValue("colorflag", 0);
|
|
|
+ } else {
|
|
|
+ if (canuseqty.compareTo(row.getBigDecimal("sendqty")) >= 0) {
|
|
|
+ updateSQL.setValue("colorflag", 2);
|
|
|
+ } else {
|
|
|
+ updateSQL.setValue("colorflag", 3);
|
|
|
}
|
|
|
}
|
|
|
list.add(updateSQL.getSQL());
|
|
|
}
|
|
|
dbConnect.runSqlUpdate(list);
|
|
|
- list= new ArrayList<>();
|
|
|
- Rows rows1 =dbConnect.runSqlQuery("select t1.sa_orderid from (select sa_orderid,count(0)count from sa_sendplandetail where sa_sendplanid="+sa_sendplanid+" group by sa_orderid) t1 inner join (select sa_orderid,count(0)count from sa_sendplandetail where colorflag='2' and sa_sendplanid="+sa_sendplanid+" group by sa_orderid) t2 on t1.sa_orderid=t2.sa_orderid and t1.count=t2.count");
|
|
|
- for(Row row :rows1){
|
|
|
- list.add("update sa_sendplandetail set colorflag=1 where sa_sendplanid="+sa_sendplanid+" and sa_orderid ="+row.getLong("sa_orderid"));
|
|
|
+ list = new ArrayList<>();
|
|
|
+ Rows rows1 = dbConnect.runSqlQuery("select t1.sa_orderid from (select sa_orderid,count(0)count from sa_sendplandetail where sa_sendplanid=" + sa_sendplanid + " group by sa_orderid) t1 inner join (select sa_orderid,count(0)count from sa_sendplandetail where colorflag='2' and sa_sendplanid=" + sa_sendplanid + " group by sa_orderid) t2 on t1.sa_orderid=t2.sa_orderid and t1.count=t2.count");
|
|
|
+ for (Row row : rows1) {
|
|
|
+ list.add("update sa_sendplandetail set colorflag=1 where sa_sendplanid=" + sa_sendplanid + " and sa_orderid =" + row.getLong("sa_orderid"));
|
|
|
}
|
|
|
dbConnect.runSqlUpdate(list);
|
|
|
return getSucReturnObject().toString();
|
|
@@ -120,7 +122,7 @@ public class sendplandetail extends Controller {
|
|
|
@CACHEING_CLEAN(apiClass = {sendplandetail.class})
|
|
|
public String clearPlan() throws YosException {
|
|
|
Long sa_sendplanid = content.getLongValue("sa_sendplanid");
|
|
|
- dbConnect.runSqlUpdate("delete from sa_sendplandetail where sa_sendplanid='"+sa_sendplanid+"' and siteid='"+siteid+"'");
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_sendplandetail where sa_sendplanid='" + sa_sendplanid + "' and siteid='" + siteid + "'");
|
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
|
|
|
@@ -130,15 +132,15 @@ public class sendplandetail extends Controller {
|
|
|
JSONArray detailarray = content.getJSONArray("details");
|
|
|
ArrayList<String> sqlList = new ArrayList<>();
|
|
|
HashMap<String, HashMap<String, List<JSONObject>>> agentmap = new HashMap<String, HashMap<String, List<JSONObject>>>();
|
|
|
- for(Object object :detailarray){
|
|
|
- JSONObject jsonObject =(JSONObject) object;
|
|
|
+ for (Object object : detailarray) {
|
|
|
+ JSONObject jsonObject = (JSONObject) object;
|
|
|
if (jsonObject.getDouble("sendqty") <= 0) {
|
|
|
continue;
|
|
|
}
|
|
|
- String key="";
|
|
|
+ String key = "";
|
|
|
String sys_enterpriseid = jsonObject.getString("sys_enterpriseid");
|
|
|
String outplace = jsonObject.getString("outplace");
|
|
|
- key=sys_enterpriseid+outplace;
|
|
|
+ key = sys_enterpriseid + outplace;
|
|
|
HashMap<String, List<JSONObject>> agent = null;
|
|
|
List<JSONObject> paolist = null;
|
|
|
if (agentmap.containsKey(sys_enterpriseid)) {
|
|
@@ -189,11 +191,11 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactory.addParameter("changedate", getDateTime_Str());
|
|
|
sqlFactory.addParameter("checkby", username);
|
|
|
sqlFactory.addParameter("checkdate", getDateTime_Str());
|
|
|
- sqlFactory.addParameter("remarks", "由发货计划自动生成"+key);
|
|
|
+ sqlFactory.addParameter("remarks", "由发货计划自动生成" + key);
|
|
|
sqlList.add(sqlFactory.getSQL());
|
|
|
|
|
|
Iterator<JSONObject> senddetailpaoit = paolist.iterator();
|
|
|
- int rowno=1;
|
|
|
+ int rowno = 1;
|
|
|
while (senddetailpaoit.hasNext()) {
|
|
|
JSONObject jsonObject = senddetailpaoit.next();
|
|
|
BigDecimal qty = new BigDecimal(jsonObject.getString("sendqty"));
|
|
@@ -205,12 +207,12 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactorydetail.addParameter("st_stockbill_itemsid", createTableID("st_stockbill_items"));
|
|
|
sqlFactorydetail.addParameter("st_stockbillid", st_stockbillid);
|
|
|
|
|
|
- Rows orderdetails = dbConnect.runSqlQuery("select * from sa_orderitems where sa_orderitemsid="+jsonObject.getLongValue("sa_orderitemsid"));
|
|
|
- if(orderdetails.isNotEmpty()){
|
|
|
+ Rows orderdetails = dbConnect.runSqlQuery("select * from sa_orderitems where sa_orderitemsid=" + jsonObject.getLongValue("sa_orderitemsid"));
|
|
|
+ if (orderdetails.isNotEmpty()) {
|
|
|
sqlFactorydetail.addParameter("remarks", orderdetails.get(0).getString("remarks"));
|
|
|
sqlFactorydetail.addParameter("price", orderdetails.get(0).getBigDecimal("price"));
|
|
|
sqlFactorydetail.addParameter("amount", orderdetails.get(0).getBigDecimal("price").multiply(qty));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
sqlFactorydetail.addParameter("remarks", "");
|
|
|
sqlFactorydetail.addParameter("price", 0);
|
|
|
sqlFactorydetail.addParameter("amount", 0);
|
|
@@ -255,17 +257,17 @@ public class sendplandetail extends Controller {
|
|
|
sqlFactory.addParameter_SQL("where", "1=1");
|
|
|
sqlFactory.addParameter("siteid", siteid);
|
|
|
|
|
|
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail","sa_sendplandetailid","colorflag","topclassnum","outplace","sendqty","willoutqty","willinqty","canuseqty");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_sendplandetail", "sa_sendplandetailid", "colorflag", "topclassnum", "outplace", "sendqty", "willoutqty", "willinqty", "canuseqty");
|
|
|
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_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, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid","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, 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, "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_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, "sys_enterprise", "t5", "t5.siteid = t4.siteid and t5.sys_enterpriseid = t4.sys_enterpriseid", "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, 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.setSiteid(siteid);
|
|
|
querySQL.setWhere(where.toString());
|
|
|
querySQL.addQueryFields("willoutqty_jh", "t7.willoutqty");
|