Просмотр исходного кода

拉取当天消费记录增加try{}catch(){}捕获异常

王先生 2 лет назад
Родитель
Сommit
4f8cfae9b9

+ 103 - 98
eladmin-system/src/main/java/me/zhengjie/modules/quartz/task/CardRecordTask.java

@@ -210,118 +210,123 @@ public class CardRecordTask {
 //        data.put("endTime","2022-02-28 23:59:59");
         data.put("current",1);//当前页数
         data.put("size",limit);
-        JSONObject generateProcDataJson = getData(url,data);
-        System.out.println(generateProcDataJson);
-        Integer total = generateProcDataJson.getJSONObject("data").getInteger("total");//总条数
-        int pageTotal = (total / limit);
-        if (total % limit != 0) {
-            pageTotal++;
-        }
-
-        for(int i = 0;i<pageTotal;i++){//循环总页数
-            //获取当前页数
-            data.put("current",i+1);//当前页数
-            JSONObject newGenerateProcDataJson = getData(url,data);
-            JSONObject dataJSON = newGenerateProcDataJson.getJSONObject("data");//第二层
-            JSONArray arr2 = dataJSON.getJSONArray("records");//第三层集合数据
-            for (int j = 0;j<arr2.size();j++){//
-                JSONObject attendance = arr2.getJSONObject(j);
-                Long seq = attendance.getLong("seq");
-                List<Map<String, Object>> list = dmOrderRecordRepository.selectOrderRecordBySeq(seq);
+        try {
+            JSONObject generateProcDataJson = getData(url,data);
+            System.out.println(generateProcDataJson);
+            Integer total = generateProcDataJson.getJSONObject("data").getInteger("total");//总条数
+            int pageTotal = (total / limit);
+            if (total % limit != 0) {
+                pageTotal++;
+            }
+            for(int i = 0;i<pageTotal;i++){//循环总页数
+                //获取当前页数
+                data.put("current",i+1);//当前页数
+                JSONObject newGenerateProcDataJson = getData(url,data);
+                JSONObject dataJSON = newGenerateProcDataJson.getJSONObject("data");//第二层
+                JSONArray arr2 = dataJSON.getJSONArray("records");//第三层集合数据
+                for (int j = 0;j<arr2.size();j++){//
+                    JSONObject attendance = arr2.getJSONObject(j);
+                    Long seq = attendance.getLong("seq");
+                    List<Map<String, Object>> list = dmOrderRecordRepository.selectOrderRecordBySeq(seq);
 
-                if(ObjectUtils.isEmpty(list)) {
-                    DmSettlement dmSettlement = new DmSettlement();
-                    dmSettlement.setCardCode(attendance.getString("card"));
-                    dmSettlement.setOrderTime(attendance.getTimestamp("createTime"));
+                    if(ObjectUtils.isEmpty(list)) {
+                        DmSettlement dmSettlement = new DmSettlement();
+                        dmSettlement.setCardCode(attendance.getString("card"));
+                        dmSettlement.setOrderTime(attendance.getTimestamp("createTime"));
 
-                    DmOrderRecord dmExpenseCalendar = new DmOrderRecord();
+                        DmOrderRecord dmExpenseCalendar = new DmOrderRecord();
 
-                    dmExpenseCalendar.setSeq(attendance.getLong("seq"));
-                    dmExpenseCalendar.setCreateDate(attendance.getTimestamp("createTime"));
-                    dmExpenseCalendar.setCard(attendance.getString("card"));
-                    dmExpenseCalendar.setCardNo(attendance.getString("cardNo"));
-                    dmExpenseCalendar.setType(attendance.getInteger("type"));
-                    dmExpenseCalendar.setPart(attendance.getInteger("part"));
-                    dmExpenseCalendar.setTerm(attendance.getInteger("term"));
-                    dmExpenseCalendar.setShop(attendance.getInteger("shop"));
-                    dmExpenseCalendar.setTermName(attendance.getString("termName"));
-                    dmExpenseCalendar.setShopName(attendance.getString("shopName"));
-                    dmExpenseCalendar.setAmt(attendance.getDouble("amt"));
-                    dmExpenseCalendar.setMoney(String.valueOf(attendance.getDouble("amt")));
-                    dmExpenseCalendar.setBalance(attendance.getDouble("balance"));
-                    dmExpenseCalendar.setAccount(attendance.getInteger("account"));
-                    dmExpenseCalendar.setUserName(attendance.getString("userName"));
-                    dmExpenseCalendar.setMob(attendance.getString("mob"));
-                    dmExpenseCalendar.setUserCode(attendance.getString("mob"));
-                    dmExpenseCalendar.setTel(attendance.getString("userPhone"));
-                    dmExpenseCalendar.setCardProfile(attendance.getInteger("card_profile"));
-                    /**
-                     * 对方未有dept字段 需要手动去数据库中查询  根据卡号查对应的 用户
-                     */
-                    DmUser dmUser = dmUserService.queryUserByCardId(attendance.getString("card"));
-                    if (!ObjectUtils.isEmpty(dmUser)){
-                        dmSettlement.setDmUser(dmUser);
-                        dmExpenseCalendar.setDept(dmUser.getDept());
-                        String bh = UUID.randomUUID().toString();
-                        dmExpenseCalendar.setBh(bh);//UUID 生成 与dm_order_item关联编号
-                        dmSettlement.setBh(bh);
-                        JSONArray item = attendance.getJSONArray("details");
+                        dmExpenseCalendar.setSeq(attendance.getLong("seq"));
+                        dmExpenseCalendar.setCreateDate(attendance.getTimestamp("createTime"));
+                        dmExpenseCalendar.setCard(attendance.getString("card"));
+                        dmExpenseCalendar.setCardNo(attendance.getString("cardNo"));
+                        dmExpenseCalendar.setType(attendance.getInteger("type"));
+                        dmExpenseCalendar.setPart(attendance.getInteger("part"));
+                        dmExpenseCalendar.setTerm(attendance.getInteger("term"));
+                        dmExpenseCalendar.setShop(attendance.getInteger("shop"));
+                        dmExpenseCalendar.setTermName(attendance.getString("termName"));
+                        dmExpenseCalendar.setShopName(attendance.getString("shopName"));
+                        dmExpenseCalendar.setAmt(attendance.getDouble("amt"));
+                        dmExpenseCalendar.setMoney(String.valueOf(attendance.getDouble("amt")));
+                        dmExpenseCalendar.setBalance(attendance.getDouble("balance"));
+                        dmExpenseCalendar.setAccount(attendance.getInteger("account"));
+                        dmExpenseCalendar.setUserName(attendance.getString("userName"));
+                        dmExpenseCalendar.setMob(attendance.getString("mob"));
+                        dmExpenseCalendar.setUserCode(attendance.getString("mob"));
+                        dmExpenseCalendar.setTel(attendance.getString("userPhone"));
+                        dmExpenseCalendar.setCardProfile(attendance.getInteger("card_profile"));
                         /**
-                         * 生成个map来统计数量
+                         * 对方未有dept字段 需要手动去数据库中查询  根据卡号查对应的 用户
                          */
-                        Map<String,Integer> map = new HashMap<>();
-                        for (int q = 0; q < item.size(); q++) {
-                            JSONObject userData = item.getJSONObject(q);
-                            String name = userData.getString("name");
-                            Integer num = map.get(name) == null ?map.put(name,1):map.put(name, map.get(name)+1);
-                        }
-                        for (int m = 0; m < item.size(); m++) {
-                            JSONObject userData = item.getJSONObject(m);
-                            DmOrderItem dmOrderItem = new DmOrderItem();
+                        DmUser dmUser = dmUserService.queryUserByCardId(attendance.getString("card"));
+                        if (!ObjectUtils.isEmpty(dmUser)){
+                            dmSettlement.setDmUser(dmUser);
+                            dmExpenseCalendar.setDept(dmUser.getDept());
+                            String bh = UUID.randomUUID().toString();
+                            dmExpenseCalendar.setBh(bh);//UUID 生成 与dm_order_item关联编号
+                            dmSettlement.setBh(bh);
+                            JSONArray item = attendance.getJSONArray("details");
+                            /**
+                             * 生成个map来统计数量
+                             */
+                            Map<String,Integer> map = new HashMap<>();
+                            for (int q = 0; q < item.size(); q++) {
+                                JSONObject userData = item.getJSONObject(q);
+                                String name = userData.getString("name");
+                                Integer num = map.get(name) == null ?map.put(name,1):map.put(name, map.get(name)+1);
+                            }
+                            for (int m = 0; m < item.size(); m++) {
+                                JSONObject userData = item.getJSONObject(m);
+                                DmOrderItem dmOrderItem = new DmOrderItem();
 //                        DmFood dmFood = new DmFood();
 //                        dmFood.setId(userData.getLong("pid"));
-                            dmOrderItem.setSeq(attendance.getLong("seq")); //序列号  流水号
-                            dmOrderItem.setFood(userData.getLong("pid"));//商品id
-                            dmOrderItem.setBh(bh);//uuid生成 与 dm_order_record关联编号
-                            dmOrderItem.setName(userData.getString("name"));//商品名称
-                            dmOrderItem.setPrice(userData.getString("price")); //单价
-                            dmOrderItem.setAmt(userData.getDouble("amt"));//商品售价
-                            dmOrderItem.setMoney(String.valueOf(userData.getDouble("amt")));//小计
-                            dmOrderItem.setPjType("0");
-                            dmOrderItem.setNum(map.get(dmOrderItem.getName()));
-                            String foodName = dmSettlement.getFoodName() == null?"":","; //结算管理的
-                            Integer foodNum = dmSettlement.getFoodNum() == null?0:dmSettlement.getFoodNum();
-                            String foodPrice = dmSettlement.getFoodPrice() == null?"":",";
-                            BigDecimal totalPrice = dmSettlement.getTotalPrice() == null?BigDecimal.ZERO:dmSettlement.getTotalPrice();
-                            dmSettlement.setFoodName(foodName+dmOrderItem.getName());//结算管理 商品名称
-                            dmSettlement.setFoodNum(foodNum+dmOrderItem.getNum());//结算管理 商品数量
-                            dmSettlement.setTotalPrice(totalPrice.add(BigDecimal.valueOf(Double.valueOf(dmOrderItem.getPrice()))));//结算管理总价格
-                            dmSettlement.setFoodPrice(foodPrice+dmOrderItem.getPrice());//结算管理 单价
-                            dmOrderItemService.create(dmOrderItem);
-                        }
-                        JSONArray payment = attendance.getJSONArray("payments");
+                                dmOrderItem.setSeq(attendance.getLong("seq")); //序列号  流水号
+                                dmOrderItem.setFood(userData.getLong("pid"));//商品id
+                                dmOrderItem.setBh(bh);//uuid生成 与 dm_order_record关联编号
+                                dmOrderItem.setName(userData.getString("name"));//商品名称
+                                dmOrderItem.setPrice(userData.getString("price")); //单价
+                                dmOrderItem.setAmt(userData.getDouble("amt"));//商品售价
+                                dmOrderItem.setMoney(String.valueOf(userData.getDouble("amt")));//小计
+                                dmOrderItem.setPjType("0");
+                                dmOrderItem.setNum(map.get(dmOrderItem.getName()));
+                                String foodName = dmSettlement.getFoodName() == null?"":","; //结算管理的
+                                Integer foodNum = dmSettlement.getFoodNum() == null?0:dmSettlement.getFoodNum();
+                                String foodPrice = dmSettlement.getFoodPrice() == null?"":",";
+                                BigDecimal totalPrice = dmSettlement.getTotalPrice() == null?BigDecimal.ZERO:dmSettlement.getTotalPrice();
+                                dmSettlement.setFoodName(foodName+dmOrderItem.getName());//结算管理 商品名称
+                                dmSettlement.setFoodNum(foodNum+dmOrderItem.getNum());//结算管理 商品数量
+                                dmSettlement.setTotalPrice(totalPrice.add(BigDecimal.valueOf(Double.valueOf(dmOrderItem.getPrice()))));//结算管理总价格
+                                dmSettlement.setFoodPrice(foodPrice+dmOrderItem.getPrice());//结算管理 单价
+                                dmOrderItemService.create(dmOrderItem);
+                            }
+                            JSONArray payment = attendance.getJSONArray("payments");
 
-                        for (int n = 0; n < payment.size(); n++) {
-                            JSONObject userData = payment.getJSONObject(n);
-                            DmOrderPayment dmOrderPayment = new DmOrderPayment();
-                            dmOrderPayment.setBh(bh);
-                            dmOrderPayment.setType(userData.getString("type"));
-                            dmOrderPayment.setAmt(userData.getDouble("amt"));
-                            dmOrderPayment.setBalance(userData.getDouble("balance"));
-                            dmOrderPayment.setUid(userData.getString("uid"));
-                            dmOrderPaymentService.create(dmOrderPayment);
+                            for (int n = 0; n < payment.size(); n++) {
+                                JSONObject userData = payment.getJSONObject(n);
+                                DmOrderPayment dmOrderPayment = new DmOrderPayment();
+                                dmOrderPayment.setBh(bh);
+                                dmOrderPayment.setType(userData.getString("type"));
+                                dmOrderPayment.setAmt(userData.getDouble("amt"));
+                                dmOrderPayment.setBalance(userData.getDouble("balance"));
+                                dmOrderPayment.setUid(userData.getString("uid"));
+                                dmOrderPaymentService.create(dmOrderPayment);
+                            }
+                            dmOrderRecordService.create(dmExpenseCalendar);
+                            dmSettlementService.create(dmSettlement);
+                        }else {
+                            log.info("dmUser IS NULL card",attendance.getString("card"));
                         }
-                        dmOrderRecordService.create(dmExpenseCalendar);
-                        dmSettlementService.create(dmSettlement);
+
                     }else {
-                        log.info("dmUser IS NULL card",attendance.getString("card"));
+                        log.info("dmOrderRecord is not null. seq:"+seq);
                     }
-
-                }else {
-                    log.info("dmOrderRecord is not null. seq:"+seq);
                 }
             }
+        }catch (Exception e){
+            log.info("拉取当天消费记录出现异常,异常信息为 {}",e.getMessage());
         }
+
+
     }
 
     public void asyncExpenseAll() throws IOException, ParseException {