hu 5 ماه پیش
والد
کامیت
913feeacbe

+ 2 - 1
src/custom/beans/accountbalance/Accountbalance.java

@@ -1,5 +1,6 @@
 package beans.accountbalance;
 
+import beans.datacontrllog.DataContrlLog;
 import beans.remind.Remind;
 import com.alibaba.fastjson2.JSONObject;
 import common.BaseClass;
@@ -236,7 +237,6 @@ public class Accountbalance extends BaseClass {
             sqlFactory.addParameter("status", "审核");
             sqlFactory.addParameter("checkby", userInfo.getUserName());
             sqlFactory.addParameter_SQL("checkdate", "CURRENT_TIME");
-
             // 审核逻辑判断
             Rows rowsaccountbalance = dbConnect.runSqlQuery("select sa_accountbalanceid,balance,creditquota,discountamount from sa_accountbalance where sys_enterpriseid ='" + sys_enterpriseid + "' and  sa_accountclassid='" + sa_accountclassid + "' and siteid='" + userInfo.getSiteId() + "'");
             if (rowsaccountbalance.isEmpty()) {
@@ -266,6 +266,7 @@ public class Accountbalance extends BaseClass {
                 String content = "您的" + accountclassrows.get(0).getString("accountname") + "已支出【" + cashbillEntity.getAmount() + "】元";
                 new Accountbalance().sendMsg(dbConnect, userInfo, content, cashbillEntity.getOwnerid(), sys_enterpriseid);
             }
+            sqlList.add(DataContrlLog.createLog(new Controller(new JSONObject()), "sa_cashbill", sa_cashbillid, "审核", cashbillEntity.getRemarks()).getSQL());
         } else {
             sqlFactory.addParameter("status", "新建");
             sqlFactory.addParameter("checkby", "");

+ 112 - 7
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -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)

+ 1 - 0
src/custom/restcontroller/webmanage/sale/tpartreimbursement/tpartreimbursement.java

@@ -167,6 +167,7 @@ public class tpartreimbursement extends Controller {
         querySQL.addJoinTable(JOINTYPE.left, "sa_salearea", "t5", "t5.sa_saleareaid = t4.sa_saleareaid AND t5.siteid = t4.siteid","areanum","areaname","areafullname");
         querySQL.setWhere("t1.siteid", siteid);
         querySQL.setWhere(where);
+        querySQL.setWhere("((t1.createflag=1 and t1.status!='新建') or t1.createflag=0)");
         querySQL.setPage(pageSize, pageNumber);
         querySQL.setOrderBy("t1.sa_tpartreimbursementid desc");
         Rows rows = querySQL.query();

+ 1 - 1
src/custom/restcontroller/webmanage/sale/workorder/workorder.java

@@ -1103,7 +1103,7 @@ public class workorder extends Controller {
                 insertSQL.setUniqueid(createTableID("sa_warrantycard"));
                 insertSQL.setSiteid(siteid);
                 insertSQL.setValue("sa_agentsid", customeragentsid);
-                insertSQL.setValue("toagentnum", itemrows.get(0).getLong("toagentnum"));
+                insertSQL.setValue("toagentnum", itemrows.get(0).getString("toagentnum"));
                 insertSQL.setValue("sku", itemrows.get(0).getString("sku"));
                 insertSQL.setValue("cardno", createBillCode("warrantycard"));
                 insertSQL.setValue("sa_customersid", sa_customersid);