From bcefc79e1736f26479d7a9c76a73cd30960f1b3b Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 29 Jan 2026 16:28:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=A4=A9=E5=8C=BB=E5=B8=81?= =?UTF-8?q?=E6=B6=88=E8=80=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StatisticsController.java | 88 ++++++++++++------- .../finance/common/entity/FinanceOrder.java | 2 +- .../java/com/zmzm/finance/util/DataUtil.java | 63 +++++++++++++ 3 files changed, 118 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/zmzm/finance/common/controller/StatisticsController.java b/src/main/java/com/zmzm/finance/common/controller/StatisticsController.java index 6a6df67..6ee298f 100644 --- a/src/main/java/com/zmzm/finance/common/controller/StatisticsController.java +++ b/src/main/java/com/zmzm/finance/common/controller/StatisticsController.java @@ -151,7 +151,7 @@ public class StatisticsController { .disableSubLogicDel() .in(BuyOrder::getOrderId,wumenOrderIds) .select("t.order_id oid,if(t2.type=4,'中医学vip',if(t2.type=5,'针灸学vip',if(t2.type=6,'肿瘤学vip',if(t2.type=7,'国学vip',if(t2.type=8,'心理学vip',if(t2.type=9,'中西汇通vip','其他')))))) vipType," + - "t1.fee,DATE_FORMAT(t1.start_time, '%Y-%m-%d') startTime,DATE_FORMAT(t1.end_time, '%Y-%m-%d') endTime")); + "t1.price fee,DATE_FORMAT(t1.start_time, '%Y-%m-%d') startTime,DATE_FORMAT(t1.end_time, '%Y-%m-%d') endTime")); Map buyOrdersMap = new HashMap<>(); for (Map m : buyOrders) { List> l = new ArrayList<>(); @@ -204,13 +204,15 @@ public class StatisticsController { if (startTime.equals(endTime)){ if (map.get("orderTime").toString().contains(month)){ map.put("now",fee); + } else if (sdfmonth.parse(startTime).getTime()sdfmonth.parse(endTime).getTime()){ map.put("already",fee); //未开始摊销 }else if (sdfday.parse(day).getTime() wumenOrderIds = vipOrders.stream().filter(o -> o.getSource() == 1).map(Orders::getOrderOldId).collect(Collectors.toList()); List> buyOrders = buyOrderService.listMaps(new MPJLambdaWrapper() .leftJoin(UserVipLog.class,UserVipLog::getOrderSn,BuyOrder::getOrderSn) .disableSubLogicDel() .in(BuyOrder::getOrderId,wumenOrderIds) - .select("t.order_id oid,fee,DATE_FORMAT(start_time, '%Y-%m-%d %H:%i:%s') startTime,DATE_FORMAT(end_time, '%Y-%m-%d %H:%i:%s') endTime")); + .select("t.order_id oid,t1.price fee,DATE_FORMAT(start_time, '%Y-%m-%d %H:%i:%s') startTime,DATE_FORMAT(end_time, '%Y-%m-%d %H:%i:%s') endTime")); Map buyOrdersMap = new HashMap<>(); for (Map m : buyOrders) { List> l = new ArrayList<>(); @@ -336,8 +338,8 @@ public class StatisticsController { }else { Map map = new HashMap<>(); map.put("fee",orders.getFee()); - map.put("startTime",null); - map.put("endTime",null); + map.put("startTime",sdfday.format(orders.getOrderTime())); + map.put("endTime",sdfday.format(orders.getOrderTime())); list.add(map); } } @@ -353,16 +355,18 @@ public class StatisticsController { BigDecimal fee = (BigDecimal) map.get("fee"); String startTime = (String) map.get("startTime")==null?"":map.get("startTime").toString(); String endTime = (String) map.get("endTime")==null?"":map.get("endTime").toString(); - if (StringUtils.isEmpty(startTime)){ - if (sdfmonth.format(orders.getOrderTime()).equals(month)){ + if (startTime.equals(endTime)){ + if (sdfmonth.format(orders.getOrderTime()).contains(month)){ nowTotal = nowTotal.add(fee); + } else if (sdfmonth.parse(startTime).getTime()sdfmonth.parse(endTime).getTime()){ already = already.add(fee); //未开始摊销 }else if (sdfday.parse(day).getTime() buyOrdersMap = new HashMap<>(); for (Map m : buyOrdersList) { List> l = new ArrayList<>(); @@ -471,11 +475,21 @@ public class StatisticsController { result.add(res); }else if(courseOrder.get("source").equals("吴门医述")){ List> l = (List>) buyOrdersMap.get(courseOrder.get("orderOldId")); - Map res = new HashMap<>(); if (l!=null){ - for (Map m : l) { + for (int i=0;i res = new HashMap<>(); + Map m = l.get(i); if (m.get("ucblid")!=null){ - res.put("fee",m.get("fee")); + if (new BigDecimal(m.get("fee").toString()).compareTo(BigDecimal.ZERO)>0){ + res.put("fee",m.get("fee")); + }else { + BigDecimal one = new BigDecimal(courseOrder.get("realMoney").toString()).divide(new BigDecimal(l.size()),2,BigDecimal.ROUND_HALF_UP); + if (i==l.size()-1){ + res.put("fee",new BigDecimal(courseOrder.get("realMoney").toString()).subtract(one.multiply(new BigDecimal(l.size()-1)))); + }else { + res.put("fee",one); + } + } if (m.get("startTime")==null){ res.put("startTime",null); res.put("endTime",null); @@ -500,6 +514,7 @@ public class StatisticsController { result.add(res); } }else { + Map res = new HashMap<>(); res.put("fee",courseOrder.get("realMoney")); res.put("startTime",orderTime); res.put("endTime",orderTime); @@ -525,6 +540,13 @@ public class StatisticsController { if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){ map.put("notyet",fee); } + }else if (startTime.equals(endTime)){ + if (startTime.contains(month)){ + map.put("now",fee); + } else if (sdfmonth.parse(startTime).getTime()sdfmonth.parse(endTime).getTime()){ map.put("already",fee); //未开始摊销 @@ -532,15 +554,6 @@ public class StatisticsController { if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){ map.put("notyet",fee); } - }else if (startTime.equals(endTime)){ - if (startTime.contains(month)){ - map.put("now",fee); - } else if (sdfmonth.parse(startTime).getTime()> l = (List>) buyOrdersMap.get(courseOrder.get("orderOldId")); - Map res = new HashMap<>(); if (l!=null){ - for (Map m : l) { + for (int i=0;i res = new HashMap<>(); + Map m = l.get(i); if (m.get("ucblid")!=null){ - res.put("fee",m.get("fee")); + if (new BigDecimal(m.get("fee").toString()).compareTo(BigDecimal.ZERO)>0){ + res.put("fee",m.get("fee")); + }else { + BigDecimal one = new BigDecimal(courseOrder.get("realMoney").toString()).divide(new BigDecimal(l.size()),2,BigDecimal.ROUND_HALF_UP); + if (i==l.size()-1){ + res.put("fee",new BigDecimal(courseOrder.get("realMoney").toString()).subtract(one.multiply(new BigDecimal(l.size()-1)))); + }else { + res.put("fee",one); + } + } if (m.get("startTime")==null){ res.put("startTime",null); res.put("endTime",null); @@ -718,6 +741,7 @@ public class StatisticsController { result.add(res); } }else { + Map res = new HashMap<>(); res.put("fee",courseOrder.get("realMoney")); res.put("startTime",orderTime); res.put("endTime",orderTime); @@ -740,22 +764,18 @@ public class StatisticsController { if (sdfmonth.parse(map.get("orderTime").toString()).getTime()<=sdfmonth.parse(month).getTime()){ notyet = notyet.add(fee); } - }else if (sdfmonth.parse(day).getTime()>sdfmonth.parse(endTime).getTime()){ - already = already.add(fee); - //未开始摊销 - }else if (sdfday.parse(day).getTime()sdfmonth.parse(endTime).getTime()){ + already = already.add(fee); + }else if (sdfday.parse(day).getTime() 0 "); + ResultSet resultSet = statement.executeQuery(); + int i=0; + while(resultSet.next()){ + i++; + System.out.println("" + i); + String orderSn = UUID.randomUUID().toString().replace("-",""); + transactionDetailStatement.setInt(1,2); + transactionDetailStatement.setInt(2,1); + transactionDetailStatement.setString(3,orderSn); + transactionDetailStatement.setString(4,resultSet.getString("tel")); + transactionDetailStatement.setString(5,resultSet.getString("vipType")); + transactionDetailStatement.setBigDecimal(6,resultSet.getBigDecimal("price")); + transactionDetailStatement.setBigDecimal(7,resultSet.getBigDecimal("price")); + transactionDetailStatement.setTimestamp(8,resultSet.getTimestamp("startTime")); + transactionDetailStatement.setTimestamp(9,resultSet.getTimestamp("end_time")); + transactionDetailStatement.setTimestamp(10,resultSet.getTimestamp("startTime")); + transactionDetailStatement.execute(); + ResultSet rs = transactionDetailStatement.getGeneratedKeys(); + String id = ""; + while(rs.next()) { + Object rsid = rs.getObject(1); + id = rsid.toString(); + } + ordersStatement.setInt(1,2); + ordersStatement.setString(2,orderSn); + ordersStatement.setString(3,id); + ordersStatement.setString(4,resultSet.getString("tel")); + ordersStatement.setBigDecimal(5,resultSet.getBigDecimal("price")); + ordersStatement.setInt(6,1); + ordersStatement.setTimestamp(7,resultSet.getTimestamp("startTime")); + ordersStatement.setInt(8,1); + ordersStatement.execute(); + } + fzdsConn.close(); + financeConn.close(); + } catch (SQLException e) { + System.out.println("Error: " + e.getMessage()); + } } public static void mtRegister(){