chenw 6 лет назад
Родитель
Сommit
61554e5e48

+ 21 - 17
src/main/java/com/uas/erp/schedular/mall/task/OrderTask.java

@@ -129,21 +129,25 @@ public class OrderTask extends AbstractTask {
      */
     private void generateOrder(List<Order> orderList) {
         for (Order order : orderList) {
-            //取已发货状态的订单生成
-            if (order.getStatus() == 141040 || order.getStatus() == 141050 || order.getStatus() == 141091) {
-                String purchaseCode = jdbcTemplate.generateCode("Purchase", 2);
-                String saleCode = jdbcTemplate.generateCode("Sale", 2);
-                //1.生成采购订单
-                boolean success = generatePurchase(order, purchaseCode, saleCode);
-                if (success) {
-                    //2.生成销售订单
-                    generateSale(order, saleCode);
-                    //3.生成采购验收单
-                    Map<String, String> purchaseInMap = purcahseIn(purchaseCode);
-                    //4.生成销售出货单
-                    String saleOutCode = saleOut(saleCode, purchaseInMap.get("batchCode"));
-                    //5.过账
-                    postPurchaseAndSale(purchaseInMap.get("inoutno"), saleOutCode);
+            //此单是否已下载过
+            int count = jdbcTemplate.getInt("SELECT COUNT(*) FROM SALE WHERE SA_POCODE = ?", order.getCode());
+            if (count == 0) {
+                //取已发货状态的订单生成
+                if (order.getStatus() == 141040 || order.getStatus() == 141050 || order.getStatus() == 141091) {
+                    String purchaseCode = jdbcTemplate.generateCode("Purchase", 2);
+                    String saleCode = jdbcTemplate.generateCode("Sale", 2);
+                    //1.生成采购订单
+                    boolean success = generatePurchase(order, purchaseCode, saleCode);
+                    if (success) {
+                        //2.生成销售订单
+                        generateSale(order, saleCode);
+                        //3.生成采购验收单
+                        Map<String, String> purchaseInMap = purcahseIn(purchaseCode);
+                        //4.生成销售出货单
+                        String saleOutCode = saleOut(saleCode, purchaseInMap.get("batchCode"));
+                        //5.过账
+                        postPurchaseAndSale(purchaseInMap.get("inoutno"), saleOutCode);
+                    }
                 }
             }
         }
@@ -172,7 +176,7 @@ public class OrderTask extends AbstractTask {
         String mainSql = "INSERT INTO PRODINOUT(pi_id,pi_inoutno,pi_class,pi_date,pi_currency,pi_rate,pi_cardid,pi_cardcode,pi_title,pi_arcode,pi_arname,pi_paymentcode,pi_payment,pi_emcode,pi_emname,"
                         + "pi_departmentcode,pi_departmentname,pi_address,pi_invostatus,pi_invostatuscode,pi_status,pi_statuscode,pi_purposename,pi_expresscode,pi_tocode,pi_recordman,pi_recorddate,"
                         + "pi_auditman,pi_auditdate,pi_printstatus,pi_printstatuscode,pi_sellercode,pi_sellername,pi_sendstatus) SELECT " + saleOutId + ",'"+ saleOutCode +"','出货单',SYSDATE,'RMB','1',sa_custid,sa_custcode,sa_custname,"
-                        + "sa_apcustcode,sa_apcustname,sa_paymentscode,sa_payments,'ADMIN','管理员',sa_departmentcode,sa_departmentname,sa_toplace,'已审核','AUDITED','未过账','UNPOST',sa_need1,sa_need2,'普通','ADMIN',SYSDATE,'ADMIN',SYSDATE,'未打印','UNPRINT','ADMIN','管理员','已上传' "
+                        + "sa_apcustcode,sa_apcustname,sa_paymentscode,sa_payments,'ADMIN','管理员',sa_departmentcode,sa_departmentname,sa_toplace,'已审核','AUDITED','未过账','UNPOST',sa_need3,sa_need2,'普通','ADMIN',SYSDATE,'ADMIN',SYSDATE,'未打印','UNPRINT','ADMIN','管理员','已上传' "
                         + " FROM SALE WHERE SA_CODE = ?";
         //明细表
         String detailSql = "INSERT INTO PRODIODETAIL(pd_id,pd_piid,pd_pdno,pd_inoutno,pd_piclass,pd_auditstatus,pd_outqty,pd_ordercode,pd_orderdetno,pd_prodcode,pd_prodid,pd_whcode,pd_whname,pd_sendprice,pd_taxrate,pd_batchCode,pd_pocode) "
@@ -223,7 +227,7 @@ public class OrderTask extends AbstractTask {
         //销售订单主表
         String insertSaleSql = "INSERT INTO SALE(SA_ID,SA_CODE,SA_DATE,SA_KIND,SA_CURRENCY,SA_RATE,SA_CUSTID,SA_CUSTCODE,SA_CUSTNAME,SA_APCUSTCODE,"
                 + "SA_APCUSTNAME,SA_PAYMENTSCODE,SA_PAYMENTS,SA_SELLERCODE,SA_SELLER,SA_DEPARTMENTCODE,SA_DEPARTMENTNAME,"
-                + "SA_TOPLACE,SA_POCODE,SA_STATUS,SA_STATUSCODE,SA_RECORDER,SA_RECORDDATE,SA_AUDITMAN,SA_AUDITDATE,SA_NEED1,SA_NEED2) "
+                + "SA_TOPLACE,SA_POCODE,SA_STATUS,SA_STATUSCODE,SA_RECORDER,SA_RECORDDATE,SA_AUDITMAN,SA_AUDITDATE,sa_need3,SA_NEED2) "
                 + "VALUES(?,?,SYSDATE,'代运营订单','RMB','1',?,?,?,?,?,'PC31','CBD(款到发货)','ADMIN','管理员','B15','优软云运营组',?,?,'已审核','AUDITED','ADMIN',SYSDATE,'ADMIN',SYSDATE,?,?)";
         //销售订单明细表
         String insertDetailSql = "INSERT INTO SALEDETAIL(SD_ID, SD_SAID, SD_CODE, SD_DETNO, SD_PRODID, SD_PRODCODE, SD_QTY, SD_PRICE, SD_TAXRATE, SD_DELIVERY) "

+ 5 - 0
src/main/java/com/uas/erp/schedular/mall/task/ProductTask.java

@@ -413,6 +413,11 @@ public class ProductTask extends AbstractTask {
 
                 Order order = orders.get(j);
                 order.getEnuu();
+                //如果下载过,不再次下载
+                int saleCount = jdbcTemplate.getInt("SELECT COUNT(*) FROM SALE WHERE SA_POCODE = ?", order.getCode());
+                if (saleCount > 0) {
+                    continue;
+                }
 
                 String mallStatus = "";
                 if (order.getStatus() == 141010 || order.getStatus() == 141020){