|
@@ -9,8 +9,11 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import vip.xiaonuo.money.entity.MoneyOverdue;
|
|
import vip.xiaonuo.money.entity.MoneyOverdue;
|
|
|
|
+import vip.xiaonuo.money.entity.MoneyWriteOverdue;
|
|
import vip.xiaonuo.money.entity.vo.MoneyBorrowUserVo;
|
|
import vip.xiaonuo.money.entity.vo.MoneyBorrowUserVo;
|
|
import vip.xiaonuo.money.mapper.MoneyOverdueMapper;
|
|
import vip.xiaonuo.money.mapper.MoneyOverdueMapper;
|
|
|
|
+import vip.xiaonuo.money.mapper.MoneyWriteOverdueMapper;
|
|
|
|
+import vip.xiaonuo.money.param.MoneyOverdueDetailPageParam;
|
|
import vip.xiaonuo.money.param.MoneyOverduePageParam;
|
|
import vip.xiaonuo.money.param.MoneyOverduePageParam;
|
|
import vip.xiaonuo.money.param.MoneyOverdueParam;
|
|
import vip.xiaonuo.money.param.MoneyOverdueParam;
|
|
import vip.xiaonuo.money.service.IMoneyOverdueService;
|
|
import vip.xiaonuo.money.service.IMoneyOverdueService;
|
|
@@ -20,6 +23,7 @@ import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -35,53 +39,45 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private MoneyOverdueMapper overdueMapper;
|
|
private MoneyOverdueMapper overdueMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private MoneyWriteOverdueMapper writeOverdueMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public JSONObject getOverdueCount(MoneyOverdueParam overdueParam) {
|
|
public JSONObject getOverdueCount(MoneyOverdueParam overdueParam) {
|
|
String orgId = overdueParam.getOrgId();
|
|
String orgId = overdueParam.getOrgId();
|
|
- String userName = overdueParam.getUserName();
|
|
|
|
- QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
+ QueryWrapper<MoneyWriteOverdue> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
|
|
queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
|
|
- queryWrapper.eq(StringUtils.isNotBlank(userName), "user_name", userName);
|
|
|
|
- queryWrapper.eq("is_overdue", 1);
|
|
|
|
- List<MoneyOverdue> list = overdueMapper.selectList(queryWrapper);
|
|
|
|
- Double money = 0.00;
|
|
|
|
- if (list.size() != 0) {
|
|
|
|
- for (MoneyOverdue moneyOverdue : list) {
|
|
|
|
- Date overdueTime = moneyOverdue.getOverdueTime();
|
|
|
|
- Date endTime = moneyOverdue.getEndTime();
|
|
|
|
- long l = (overdueTime.getTime() - endTime.getTime()) / (24 * 60 * 60 * 1000);
|
|
|
|
- if (l > 30) {
|
|
|
|
- money = money + Double.valueOf(moneyOverdue.getOverduePrice());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- DecimalFormat def = new DecimalFormat("0.00");
|
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(date);
|
|
|
|
+ calendar.add(Calendar.MONTH, -1);
|
|
|
|
+ queryWrapper.ge("end_time", calendar.getTime());
|
|
|
|
+ queryWrapper.select("convert(IFNULL(sum(money),'0'),decimal(10,2)) money");
|
|
|
|
+ MoneyWriteOverdue writeOverdue = writeOverdueMapper.selectOne(queryWrapper);
|
|
JSONObject jsonObject = new JSONObject();
|
|
JSONObject jsonObject = new JSONObject();
|
|
- jsonObject.put("money", def.format(money));
|
|
|
|
|
|
+ jsonObject.put("money", writeOverdue.getMoney());
|
|
return jsonObject;
|
|
return jsonObject;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public JSONObject overdueRank(MoneyOverdueParam overdueParam) {
|
|
public JSONObject overdueRank(MoneyOverdueParam overdueParam) {
|
|
String orgId = overdueParam.getOrgId();
|
|
String orgId = overdueParam.getOrgId();
|
|
- String userName = overdueParam.getUserName();
|
|
|
|
- QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
|
|
|
|
|
|
+ QueryWrapper<MoneyWriteOverdue> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
|
|
queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
|
|
- queryWrapper.eq(StringUtils.isNotBlank(userName), "user_name", userName);
|
|
|
|
- queryWrapper.groupBy("is_overdue");
|
|
|
|
- List<MoneyOverdue> overdues = overdueMapper.selectList(queryWrapper);
|
|
|
|
|
|
+ queryWrapper.select("convert(IFNULL(sum(money),'0'),decimal(10,2)) money,end_time endTime");
|
|
|
|
+ List<MoneyWriteOverdue> writeOverdues = writeOverdueMapper.selectList(queryWrapper);
|
|
double count = 0.00;
|
|
double count = 0.00;
|
|
double isOverdue = 0.00;
|
|
double isOverdue = 0.00;
|
|
double disOverdue = 0.00;
|
|
double disOverdue = 0.00;
|
|
JSONObject jsonObject = new JSONObject();
|
|
JSONObject jsonObject = new JSONObject();
|
|
DecimalFormat def = new DecimalFormat("0.00");
|
|
DecimalFormat def = new DecimalFormat("0.00");
|
|
- if (overdues.size() != 0) {
|
|
|
|
- for (MoneyOverdue overdue : overdues) {
|
|
|
|
- if (overdue.getIsOverdue() == 0) {
|
|
|
|
- disOverdue = disOverdue + Double.valueOf(overdue.getCollectPrice());
|
|
|
|
- } else {
|
|
|
|
- isOverdue = isOverdue + Double.valueOf(overdue.getOverduePrice());
|
|
|
|
|
|
+
|
|
|
|
+ if (writeOverdues.size() != 0) {
|
|
|
|
+ for (MoneyWriteOverdue overdue : writeOverdues) {
|
|
|
|
+ if (overdue.getEndTime().before(new Date())) {
|
|
|
|
+ isOverdue = isOverdue + Double.valueOf(overdue.getMoney());
|
|
|
|
+ }else {
|
|
|
|
+ disOverdue = disOverdue + Double.valueOf(overdue.getMoney());
|
|
}
|
|
}
|
|
count = isOverdue + disOverdue;
|
|
count = isOverdue + disOverdue;
|
|
}
|
|
}
|
|
@@ -100,54 +96,75 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public JSONArray userRank(MoneyOverdueParam overdueParam) {
|
|
|
|
|
|
+ public List<MoneyBorrowUserVo> userRank(MoneyOverdueParam overdueParam) {
|
|
String orgId = overdueParam.getOrgId();
|
|
String orgId = overdueParam.getOrgId();
|
|
- QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
|
|
|
|
String time = overdueParam.getTime();
|
|
String time = overdueParam.getTime();
|
|
- if ("".equals(time) || null == time) {
|
|
|
|
- queryWrapper.ge("date_time", DateUtil.beginOfMonth(new Date()));
|
|
|
|
- } else {
|
|
|
|
- queryWrapper.between("date_time", time + "-01 00:00:00", time + "-31 23:59:59");
|
|
|
|
- }
|
|
|
|
- queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
|
|
|
|
- queryWrapper.eq(StringUtils.isNotBlank(overdueParam.getUserName()), "user_name", overdueParam.getUserName());
|
|
|
|
- JSONArray jsonArray = new JSONArray();
|
|
|
|
- List<MoneyBorrowUserVo> userRank = overdueMapper.getUserRank(queryWrapper);
|
|
|
|
|
|
+ List<MoneyBorrowUserVo> userRank = overdueMapper.getUserRank(time + "-01 00:00:00", time + "-31 23:59:59",orgId);
|
|
BigDecimal math = new BigDecimal("10000");
|
|
BigDecimal math = new BigDecimal("10000");
|
|
|
|
+ List<MoneyBorrowUserVo> list = new ArrayList<>();
|
|
if (userRank.size() != 0) {
|
|
if (userRank.size() != 0) {
|
|
- for (MoneyBorrowUserVo moneyBorrowUserVo : userRank) {
|
|
|
|
- JSONObject jsonObject = new JSONObject();
|
|
|
|
- BigDecimal bg = new BigDecimal(moneyBorrowUserVo.getCollectPrice());
|
|
|
|
- bg = bg.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
- BigDecimal bg1 = new BigDecimal( moneyBorrowUserVo.getOverduePrice());
|
|
|
|
- bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
- jsonObject.put("collectPrice",bg.toString());
|
|
|
|
- jsonObject.put("overduePrice", bg1.toString());
|
|
|
|
- jsonObject.put("userName", moneyBorrowUserVo.getUserName());
|
|
|
|
- jsonArray.add(jsonObject);
|
|
|
|
|
|
+ Double collect = 0.00;
|
|
|
|
+ Double overdue = 0.00;
|
|
|
|
+ for (int i = 0; i < userRank.size(); i++) {
|
|
|
|
+ if (i < 15) {
|
|
|
|
+ BigDecimal bg = new BigDecimal(userRank.get(i).getCollectPrice());
|
|
|
|
+ bg = bg.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
+ BigDecimal bg1 = new BigDecimal(userRank.get(i).getOverduePrice());
|
|
|
|
+ bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
+ userRank.get(i).setCollectPrice(bg.toString());
|
|
|
|
+ userRank.get(i).setOverduePrice(bg1.toString());
|
|
|
|
+ list.add(userRank.get(i));
|
|
|
|
+ } else {
|
|
|
|
+ collect = collect + Double.valueOf(userRank.get(i).getCollectPrice());
|
|
|
|
+ overdue = overdue + Double.valueOf(userRank.get(i).getOverduePrice());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ MoneyBorrowUserVo vo = new MoneyBorrowUserVo();
|
|
|
|
+ vo.setUserName("others");
|
|
|
|
+ BigDecimal c1 = new BigDecimal(collect);
|
|
|
|
+ c1 = c1.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
+ BigDecimal c2 = new BigDecimal(overdue);
|
|
|
|
+ c2 = c2.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
+ vo.setCollectPrice(c1.toString());
|
|
|
|
+ vo.setOverduePrice(c2.toString());
|
|
|
|
+ list.add(vo);
|
|
}
|
|
}
|
|
- JSONArray jsonArray1 = jsonArraySort(jsonArray, "collectPrice", true);
|
|
|
|
- return jsonArray1;
|
|
|
|
|
|
+ return list;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public Page<MoneyOverdue> overdueDetail(MoneyOverduePageParam overduePageParam) {
|
|
|
|
|
|
+ public Page<MoneyWriteOverdue> overdueDetail(MoneyOverdueDetailPageParam overduePageParam) {
|
|
String orgId = overduePageParam.getOrgId();
|
|
String orgId = overduePageParam.getOrgId();
|
|
Integer pageNum = overduePageParam.getPageNum();
|
|
Integer pageNum = overduePageParam.getPageNum();
|
|
Integer pageSize = overduePageParam.getPageSize();
|
|
Integer pageSize = overduePageParam.getPageSize();
|
|
- QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
|
|
|
|
- queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByDesc("date_time");
|
|
|
|
- Page page = new Page<MoneyOverdue>(pageNum, pageSize);
|
|
|
|
- Page selectPage = overdueMapper.selectPage(page, queryWrapper);
|
|
|
|
- List<MoneyOverdue> records = selectPage.getRecords();
|
|
|
|
- BigDecimal math = new BigDecimal("10000");
|
|
|
|
- for (MoneyOverdue record : records) {
|
|
|
|
- BigDecimal bg = new BigDecimal(record.getCollectPrice());
|
|
|
|
- bg = bg.divide(math, 2, RoundingMode.HALF_UP);
|
|
|
|
- record.setCollectPrice(bg.toString());
|
|
|
|
|
|
+ Integer type = overduePageParam.getType();
|
|
|
|
+ String userName = overduePageParam.getUserName();
|
|
|
|
+
|
|
|
|
+ QueryWrapper<MoneyWriteOverdue> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByDesc("create_time");
|
|
|
|
+ queryWrapper.eq(StringUtils.isNotBlank(userName), "user_name", userName);
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, 15);
|
|
|
|
+ if (0 == type) {
|
|
|
|
+ queryWrapper.ge("end_time", calendar.getTime());
|
|
|
|
+ } else if (1 == type) {
|
|
|
|
+ queryWrapper.le("end_time",DateUtil.beginOfDay(new Date()));
|
|
|
|
+ } else if (2 == type) {
|
|
|
|
+ queryWrapper.between("end_time", DateUtil.beginOfDay(new Date()), calendar.getTime());
|
|
}
|
|
}
|
|
- return overdueMapper.selectPage(page, queryWrapper);
|
|
|
|
|
|
+
|
|
|
|
+ Page<MoneyWriteOverdue> page = new Page<>(pageNum, pageSize);
|
|
|
|
+ Page<MoneyWriteOverdue> selectPage = writeOverdueMapper.selectPage(page, queryWrapper);
|
|
|
|
+ return selectPage;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<MoneyOverdue> listUserName(Map<String, String> paramsMap) {
|
|
|
|
+ String orgId = paramsMap.get("orgId");
|
|
|
|
+ QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
|
|
|
|
+ queryWrapper.groupBy("user_name");
|
|
|
|
+ return overdueMapper.selectList(queryWrapper);
|
|
}
|
|
}
|
|
|
|
|
|
/*数组排序*/
|
|
/*数组排序*/
|