|
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import lombok.val;
|
|
|
import me.zhengjie.domain.Log;
|
|
|
import me.zhengjie.modules.dm.food.domain.DmFood;
|
|
|
import me.zhengjie.modules.dm.order.domain.DmOrderItem;
|
|
@@ -13,12 +14,17 @@ import me.zhengjie.modules.dm.order.repository.DmOrderRecordRepository;
|
|
|
import me.zhengjie.modules.dm.order.service.DmOrderItemService;
|
|
|
import me.zhengjie.modules.dm.order.service.DmOrderPaymentService;
|
|
|
import me.zhengjie.modules.dm.order.service.DmOrderRecordService;
|
|
|
+import me.zhengjie.modules.dm.user.domain.DmUser;
|
|
|
+import me.zhengjie.modules.dm.user.service.DmUserService;
|
|
|
+import me.zhengjie.modules.dm.user.service.dto.DmUserQueryCriteria;
|
|
|
+import me.zhengjie.modules.system.domain.Dept;
|
|
|
import me.zhengjie.repository.LogRepository;
|
|
|
import me.zhengjie.utils.BeanMapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
@@ -35,6 +41,7 @@ public class CardRecordTask {
|
|
|
private final DmOrderPaymentService dmOrderPaymentService;
|
|
|
private final LogRepository logRepository;
|
|
|
private final DmOrderRecordRepository dmOrderRecordRepository;
|
|
|
+ private final DmUserService dmUserService;
|
|
|
// private final DmExpenseCalendarService dmExpenseCalendarService;
|
|
|
|
|
|
// public void run() throws ParseException, IOException {
|
|
@@ -190,25 +197,26 @@ public class CardRecordTask {
|
|
|
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
SimpleDateFormat formater2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
+// calendar.add(Calendar.DATE,-1);
|
|
|
Date start = formater2.parse(formater.format(calendar.getTime())+ " 00:00:00");
|
|
|
Date end = formater2.parse(formater.format(calendar.getTime())+ " 23:59:59");
|
|
|
data.put("startTime",formater2.format(start));
|
|
|
data.put("endTime",formater2.format(end));
|
|
|
+// data.put("startTime","2022-02-28 00:00:00");
|
|
|
+// 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 = 1;i<=pageTotal;i++){//循环总页数
|
|
|
+ for(int i = 0;i<pageTotal;i++){//循环总页数
|
|
|
//获取当前页数
|
|
|
- data.put("current",i);//当前页数
|
|
|
+ data.put("current",i+1);//当前页数
|
|
|
JSONObject newGenerateProcDataJson = getData(url,data);
|
|
|
JSONObject dataJSON = newGenerateProcDataJson.getJSONObject("data");//第二层
|
|
|
JSONArray arr2 = dataJSON.getJSONArray("records");//第三层集合数据
|
|
@@ -239,26 +247,41 @@ public class CardRecordTask {
|
|
|
dmExpenseCalendar.setUserCode(attendance.getString("mob"));
|
|
|
dmExpenseCalendar.setTel(attendance.getString("userPhone"));
|
|
|
dmExpenseCalendar.setCardProfile(attendance.getInteger("card_profile"));
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 对方未有dept字段 需要手动去数据库中查询 根据卡号查对应的 用户
|
|
|
+ */
|
|
|
+ DmUser dmUser = dmUserService.queryUserByCardId(attendance.getString("card"));
|
|
|
+ dmExpenseCalendar.setDept(dmUser.getDept());
|
|
|
String bh = UUID.randomUUID().toString();
|
|
|
- dmExpenseCalendar.setBh(bh);//关联编号
|
|
|
+ dmExpenseCalendar.setBh(bh);//UUID 生成 与dm_order_item关联编号
|
|
|
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"));
|
|
|
- dmOrderItem.setBh(bh);
|
|
|
- dmOrderItem.setName(userData.getString("name"));
|
|
|
- dmOrderItem.setPrice(userData.getString("price"));
|
|
|
- dmOrderItem.setAmt(userData.getDouble("amt"));
|
|
|
- dmOrderItem.setMoney(String.valueOf(userData.getDouble("amt")));
|
|
|
+ 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()));
|
|
|
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();
|
|
@@ -271,7 +294,7 @@ public class CardRecordTask {
|
|
|
}
|
|
|
dmOrderRecordService.create(dmExpenseCalendar);
|
|
|
}else {
|
|
|
- System.out.println("dmOrderRecord is null. seq:"+seq);
|
|
|
+ log.info("dmOrderRecord is not null. seq:"+seq);
|
|
|
}
|
|
|
}
|
|
|
}
|