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