|
|
@@ -28,6 +28,7 @@ import restcontroller.sale.promotion.promotion;
|
|
|
import restcontroller.webmanage.executorService.Executor;
|
|
|
import restcontroller.webmanage.sale.accessoryorder.accessoryorder;
|
|
|
|
|
|
+import javax.swing.*;
|
|
|
import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
@@ -1807,12 +1808,74 @@ public class Order extends Controller {
|
|
|
orderQuerySQL.addJoinTable(JOINTYPE.inner, "plm_item", "t3", "t2.itemid=t3.itemid and t3.siteid=t2.siteid","skucontrol","outplace");
|
|
|
orderQuerySQL.setWhere("t1.siteid",siteid);
|
|
|
orderQuerySQL.setWhere("t1.sa_orderid",sa_orderids);
|
|
|
- orderQuerySQL.setWhere("t1.status='审核' and t2.undeliqty>0 and ifnull(t2.delivery,'')!='' and t2.delivery!='随货'");
|
|
|
+ orderQuerySQL.setWhere("t1.status='审核' and t1.type='配件订单' and t2.undeliqty>0 and ifnull(t2.delivery,'')!='' and t2.delivery!='随货'");
|
|
|
Rows orderRows =orderQuerySQL.query();
|
|
|
|
|
|
+ QuerySQL orderQuerySQL_jundge = SQLFactory.createQuerySQL(this, "sa_order","sa_orderid","status","sonum","type","delivery");
|
|
|
+ orderQuerySQL_jundge.setTableAlias("t1");
|
|
|
+ orderQuerySQL_jundge.addJoinTable(JOINTYPE.inner, "sa_orderitems", "t2", "t2.sa_orderid=t1.sa_orderid and t1.siteid=t2.siteid",
|
|
|
+ "sa_orderitemsid","itemid","undeliqty","defaultprice","remarks","itemno","itemname","model","price","rowno");
|
|
|
+ orderQuerySQL_jundge.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sys_enterpriseid=t1.sys_enterpriseid and t4.siteid=t1.siteid", "agentnum");
|
|
|
+ orderQuerySQL_jundge.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid", "enterprisename", "abbreviation");
|
|
|
+ orderQuerySQL_jundge.setWhere("t1.siteid",siteid);
|
|
|
+ orderQuerySQL_jundge.setWhere("t1.sa_orderid",sa_orderids);
|
|
|
+ Rows orderRows_jundge =orderQuerySQL_jundge.query();
|
|
|
+ Rows errRows =new Rows();
|
|
|
+ for(Row row :orderRows_jundge){
|
|
|
+ Row errRow =new Row();
|
|
|
+ if(!row.getString("status").equals("审核")){
|
|
|
+ errRow.put("sa_orderid",row.getLong("sa_orderid"));
|
|
|
+ errRow.put("sonum",row.getString("sonum"));
|
|
|
+ errRow.put("agentnum",row.getString("agentnum"));
|
|
|
+ errRow.put("status",row.getString("status"));
|
|
|
+ errRow.put("abbreviation",row.getString("abbreviation"));
|
|
|
+ errRow.put("delivery",row.getString("delivery"));
|
|
|
+ errRow.put("errreason","非审核状态不可发货");
|
|
|
+ errRows.add(errRow);
|
|
|
+ }else if(!row.getString("type").equals("配件订单")){
|
|
|
+ errRow.put("sa_orderid",row.getLong("sa_orderid"));
|
|
|
+ errRow.put("sonum",row.getString("sonum"));
|
|
|
+ errRow.put("agentnum",row.getString("agentnum"));
|
|
|
+ errRow.put("status",row.getString("status"));
|
|
|
+ errRow.put("abbreviation",row.getString("abbreviation"));
|
|
|
+ errRow.put("delivery",row.getString("delivery"));
|
|
|
+ errRow.put("errreason","非配件申请单不可发货");
|
|
|
+ errRows.add(errRow);
|
|
|
+ }else if(row.getDouble("undeliqty")<=0){
|
|
|
+ errRow.put("sa_orderid",row.getLong("sa_orderid"));
|
|
|
+ errRow.put("sonum",row.getString("sonum"));
|
|
|
+ errRow.put("agentnum",row.getString("agentnum"));
|
|
|
+ errRow.put("status",row.getString("status"));
|
|
|
+ errRow.put("abbreviation",row.getString("abbreviation"));
|
|
|
+ errRow.put("delivery",row.getString("delivery"));
|
|
|
+ errRow.put("errreason","行号"+row.getString("rowno")+"的商品已发货,不可发货");
|
|
|
+ errRows.add(errRow);
|
|
|
+ }else if(StringUtils.isBlank(row.getString("delivery"))){
|
|
|
+ errRow.put("sa_orderid",row.getLong("sa_orderid"));
|
|
|
+ errRow.put("sonum",row.getString("sonum"));
|
|
|
+ errRow.put("agentnum",row.getString("agentnum"));
|
|
|
+ errRow.put("status",row.getString("status"));
|
|
|
+ errRow.put("abbreviation",row.getString("abbreviation"));
|
|
|
+ errRow.put("delivery",row.getString("delivery"));
|
|
|
+ errRow.put("errreason","行号"+row.getString("rowno")+"的商品发货方式为空,不可发货");
|
|
|
+ errRows.add(errRow);
|
|
|
+ }else if(row.getString("delivery").equals("随货")){
|
|
|
+ errRow.put("sa_orderid",row.getLong("sa_orderid"));
|
|
|
+ errRow.put("sonum",row.getString("sonum"));
|
|
|
+ errRow.put("agentnum",row.getString("agentnum"));
|
|
|
+ errRow.put("status",row.getString("status"));
|
|
|
+ errRow.put("abbreviation",row.getString("abbreviation"));
|
|
|
+ errRow.put("delivery",row.getString("delivery"));
|
|
|
+ errRow.put("errreason","行号"+row.getString("rowno")+"的商品发货方式为随货,不可发货");
|
|
|
+ errRows.add(errRow);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
QuerySQL stockbillQuerySQL = SQLFactory.createQuerySQL(this, "st_stockbill_items");
|
|
|
stockbillQuerySQL.setTableAlias("t1");
|
|
|
stockbillQuerySQL.addJoinTable(JOINTYPE.inner, "st_stockbill", "t2", "t2.st_stockbillid=t1.st_stockbillid and t1.siteid=t2.siteid");
|
|
|
+ stockbillQuerySQL.addJoinTable(JOINTYPE.left, "sa_orderitems", "t4", "t4.sa_orderitemsid=t1.sa_orderitemsid and t4.siteid=t1.siteid", "sa_orderid");
|
|
|
stockbillQuerySQL.setWhere("t1.siteid",siteid);
|
|
|
if(orderRows.toArrayList("sa_orderitemsid").isEmpty()){
|
|
|
stockbillQuerySQL.setWhere("1=2");
|
|
|
@@ -1820,21 +1883,59 @@ public class Order extends Controller {
|
|
|
stockbillQuerySQL.setWhere("t1.sa_orderitemsid",orderRows.toArrayList("sa_orderitemsid"));
|
|
|
}
|
|
|
Rows stockbillRows =stockbillQuerySQL.query();
|
|
|
- if(stockbillRows.isNotEmpty()){
|
|
|
- return getErrReturnObject().setErrMsg("存在配件申请单明细已生成销售出库单,无法一键出库").toString();
|
|
|
+ RowsMap stockbillRowsMap =stockbillRows.toRowsMap("sa_orderitemsid");
|
|
|
+ RowsMap orderRows_jundgeMap =orderRows_jundge.toRowsMap("sa_orderid");
|
|
|
+ for(Row row :stockbillRows){
|
|
|
+ Row errRow =new Row();
|
|
|
+ if(orderRows_jundgeMap.containsKey(row.getString("sa_orderid"))){
|
|
|
+ errRow.put("sa_orderid",orderRows_jundgeMap.get(row.getString("sa_orderid")).get(0).getLong("sa_orderid"));
|
|
|
+ errRow.put("sonum",orderRows_jundgeMap.get(row.getString("sa_orderid")).get(0).getString("sonum"));
|
|
|
+ errRow.put("agentnum",orderRows_jundgeMap.get(row.getString("sa_orderid")).get(0).getString("agentnum"));
|
|
|
+ errRow.put("status",orderRows_jundgeMap.get(row.getString("sa_orderid")).get(0).getString("status"));
|
|
|
+ errRow.put("abbreviation",orderRows_jundgeMap.get(row.getString("sa_orderid")).get(0).getString("abbreviation"));
|
|
|
+ errRow.put("delivery",orderRows_jundgeMap.get(row.getString("sa_orderid")).get(0).getString("delivery"));
|
|
|
+ errRow.put("errreason","已存在出库单");
|
|
|
+ errRows.add(errRow);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ RowsMap errRowsMap=errRows.toRowsMap("sa_orderid");
|
|
|
+ Set<String> errSet=errRowsMap.keySet();
|
|
|
+ for(String sa_orderid :errSet){
|
|
|
+ if(errRowsMap.get(sa_orderid).size()>1){
|
|
|
+ String errreason = String.join(", ", errRowsMap.get(sa_orderid).toArrayList("errreason"));
|
|
|
+ for(Row row : errRowsMap.get(sa_orderid)){
|
|
|
+ row.put("errreason",errreason);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LinkedHashSet<Row> linkedSet = new LinkedHashSet<>(errRows);
|
|
|
+ Rows errRows_result = new Rows();
|
|
|
+ for(Row row :linkedSet){
|
|
|
+ errRows_result.add(row);
|
|
|
+ }
|
|
|
+
|
|
|
+ Rows orderRows_result = new Rows();
|
|
|
+ for(Row row :orderRows){
|
|
|
+ if(!stockbillRowsMap.containsKey(row.getString("sa_orderitemsid"))){
|
|
|
+ orderRows_result.add(row);
|
|
|
+ }
|
|
|
}
|
|
|
+// if(stockbillRows.isNotEmpty()){
|
|
|
+// return getErrReturnObject().setErrMsg("存在配件申请单明细已生成销售出库单,无法一键出库").toString();
|
|
|
+// }
|
|
|
|
|
|
QuerySQL enterprisefinanceQuerySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_finance","*");
|
|
|
enterprisefinanceQuerySQL.setTableAlias("t1");
|
|
|
enterprisefinanceQuerySQL.addJoinTable(JOINTYPE.inner, "sa_order", "t2", "t1.sys_enterprise_financeid=t2.sys_enterprise_financeid");
|
|
|
enterprisefinanceQuerySQL.setWhere("t1.siteid",siteid);
|
|
|
- enterprisefinanceQuerySQL.setWhere("t2.sa_orderid",sa_orderids);
|
|
|
+ enterprisefinanceQuerySQL.setWhere("t2.sa_orderid",orderRows_result.toArrayList("sa_orderid"));
|
|
|
Rows enterprisefinancerows =enterprisefinanceQuerySQL.query();
|
|
|
|
|
|
|
|
|
RowsMap enterprisefinancerowsMap =enterprisefinancerows.toRowsMap("sys_enterpriseid");
|
|
|
- RowsMap enterpriserowsMap = orderRows.toRowsMap("sys_enterpriseid");
|
|
|
- RowsMap deliveryrowsMap = orderRows.toRowsMap("delivery");
|
|
|
+ RowsMap enterpriserowsMap = orderRows_result.toRowsMap("sys_enterpriseid");
|
|
|
+ RowsMap deliveryrowsMap = orderRows_result.toRowsMap("delivery");
|
|
|
Set<String> enterpriseSet = enterpriserowsMap.keySet();
|
|
|
Set<String> deliverySet = deliveryrowsMap.keySet();
|
|
|
int stockbillcount=0;
|
|
|
@@ -1913,7 +2014,11 @@ public class Order extends Controller {
|
|
|
}
|
|
|
}
|
|
|
dbConnect.runSqlUpdate(sqlList);
|
|
|
- return getSucReturnObject().setData("已生成"+enterpriseSet.size()+"家经销商,共"+stockbillcount+"张出库单").toString();
|
|
|
+ HashMap<String,String> result=new HashMap<>();
|
|
|
+ String success= "已生成"+enterpriseSet.size()+" 家经销商,共"+stockbillcount+"张出库单;失败"+errRows_result.toRowsMap("agentnum").size()+"家经销商,共"+errRows_result.toRowsMap("sonum").size()+"张订单!";
|
|
|
+ result.put("success",success);
|
|
|
+ result.put("errinfo",errRows_result.toString());
|
|
|
+ return getSucReturnObject().setData(result).toString();
|
|
|
}
|
|
|
|
|
|
@API(title = "提交", apiversion = R.ID20221108153402.v1.class, intervaltime = 5000)
|