|
@@ -145,7 +145,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private PublicReleaseMapper publicReleaseMapper;
|
|
private PublicReleaseMapper publicReleaseMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private TOrderPublicReleaseCountMapper tOrderPublicReleaseCountMapper;
|
|
|
|
|
|
|
+ private OrderYearMaxDurationMapper orderYearMaxDurationMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private TOrderApprovalMapper tOrderApprovalMapper;
|
|
private TOrderApprovalMapper tOrderApprovalMapper;
|
|
|
|
|
|
|
@@ -647,7 +647,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
|
|
|
}
|
|
}
|
|
|
tOrderNewMapper.updateByPrimaryKeySelective(t);
|
|
tOrderNewMapper.updateByPrimaryKeySelective(t);
|
|
|
//计算公出统计
|
|
//计算公出统计
|
|
|
- pushOrderPublicReleaseCount(t.getOrderNo());
|
|
|
|
|
|
|
+ pushOrderPublicReleaseCount(t2);
|
|
|
updateAdminUserCountOrder(t2.getSalesmanId(),t2.getCreateTime());
|
|
updateAdminUserCountOrder(t2.getSalesmanId(),t2.getCreateTime());
|
|
|
if (newOrderFlag){
|
|
if (newOrderFlag){
|
|
|
updateAdminUserCountOrder(t2.getSalesmanId(),date);
|
|
updateAdminUserCountOrder(t2.getSalesmanId(),date);
|
|
@@ -707,12 +707,10 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 处理订单公出&报销之间数据统计
|
|
* 处理订单公出&报销之间数据统计
|
|
|
- * @param orderNo
|
|
|
|
|
*/
|
|
*/
|
|
|
- public TOrderPublicReleaseCount pushOrderPublicReleaseCount(String orderNo) {
|
|
|
|
|
|
|
+ public void pushOrderPublicReleaseCount(TOrderNew orderNew) {
|
|
|
//获取公出信息
|
|
//获取公出信息
|
|
|
- List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNo);
|
|
|
|
|
- TOrderNew orderNew = tOrderNewMapper.selectByPrimaryKey(orderNo);
|
|
|
|
|
|
|
+ List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNew.getOrderNo());
|
|
|
//公出时间统计
|
|
//公出时间统计
|
|
|
BigDecimal durationCount = BigDecimal.ZERO;
|
|
BigDecimal durationCount = BigDecimal.ZERO;
|
|
|
//公出次数
|
|
//公出次数
|
|
@@ -727,58 +725,66 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
|
|
|
}
|
|
}
|
|
|
TOrderPublicReleaseCount out = null;
|
|
TOrderPublicReleaseCount out = null;
|
|
|
out=new TOrderPublicReleaseCount();
|
|
out=new TOrderPublicReleaseCount();
|
|
|
- out.setOrderNo(orderNo);
|
|
|
|
|
|
|
+ out.setOrderNo(orderNew.getOrderNo());
|
|
|
out.setMaxDuration(0d);
|
|
out.setMaxDuration(0d);
|
|
|
out.setActualDuration(durationCount.doubleValue());
|
|
out.setActualDuration(durationCount.doubleValue());
|
|
|
out.setPeopleCount(peopleList.size());
|
|
out.setPeopleCount(peopleList.size());
|
|
|
out.setFrequency(count);
|
|
out.setFrequency(count);
|
|
|
-
|
|
|
|
|
//获取会员信息
|
|
//获取会员信息
|
|
|
- List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(orderNo);
|
|
|
|
|
|
|
+ List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(orderNew.getOrderNo());
|
|
|
int yearSum=0;
|
|
int yearSum=0;
|
|
|
String serviceLife = null;
|
|
String serviceLife = null;
|
|
|
- for (TTaskMember e : tTaskMembers) {
|
|
|
|
|
- if (e.getYearSum()!=null&&e.getYearSum()>yearSum){
|
|
|
|
|
- yearSum=e.getYearSum();
|
|
|
|
|
- serviceLife=e.getServiceLife();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- List<String> strings = JSON.parseArray(serviceLife, String.class);
|
|
|
|
|
- List<Integer> collect = null;
|
|
|
|
|
- if (strings != null) {
|
|
|
|
|
- collect = strings.stream().map(this::extractYear).collect(Collectors.toList());
|
|
|
|
|
- int size = collect.size();
|
|
|
|
|
- BigDecimal divide = orderNew.getTotalAmount().divide(new BigDecimal(size), RoundingMode.HALF_EVEN);
|
|
|
|
|
- BigDecimal maxDuration = pushMaxDuration(divide);
|
|
|
|
|
- int i = 1;
|
|
|
|
|
- for (Integer year : collect) {
|
|
|
|
|
- OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
|
|
|
|
|
- orderYearMaxDuration.setYear(year);
|
|
|
|
|
- if (maxDuration.compareTo(new BigDecimal(-1))==0){
|
|
|
|
|
- orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
|
|
|
|
|
- orderYearMaxDuration.setStatus(1);
|
|
|
|
|
- }else {
|
|
|
|
|
- orderYearMaxDuration.setMaxDuration(maxDuration.multiply(new BigDecimal(i)));
|
|
|
|
|
- orderYearMaxDuration.setStatus(0);
|
|
|
|
|
|
|
+ if (tTaskMembers.isEmpty()){
|
|
|
|
|
+ OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
|
|
|
|
|
+ orderYearMaxDuration.setYear(0);
|
|
|
|
|
+ BigDecimal maxDuration = pushMaxDuration(orderNew.getTotalAmount());
|
|
|
|
|
+ if (maxDuration.compareTo(new BigDecimal(-1))==0){
|
|
|
|
|
+ orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
|
|
|
|
|
+ orderYearMaxDuration.setStatus(1);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ orderYearMaxDuration.setMaxDuration(maxDuration);
|
|
|
|
|
+ orderYearMaxDuration.setStatus(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ orderYearMaxDuration.setOrderNo(orderNew.getOrderNo());
|
|
|
|
|
+ orderYearMaxDurationMapper.insert(orderYearMaxDuration);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ for (TTaskMember e : tTaskMembers) {
|
|
|
|
|
+ if (e.getYearSum()!=null&&e.getYearSum()>yearSum){
|
|
|
|
|
+ yearSum=e.getYearSum();
|
|
|
|
|
+ serviceLife=e.getServiceLife();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ List<String> strings = JSON.parseArray(serviceLife, String.class);
|
|
|
|
|
+ List<Integer> collect = null;
|
|
|
|
|
+ if (strings != null) {
|
|
|
|
|
+ collect = strings.stream().map(this::extractYear).collect(Collectors.toList());
|
|
|
|
|
+ int size = collect.size();
|
|
|
|
|
+ BigDecimal divide = orderNew.getTotalAmount().divide(new BigDecimal(size), RoundingMode.HALF_EVEN);
|
|
|
|
|
+ BigDecimal maxDuration = pushMaxDuration(divide);
|
|
|
|
|
+ List<OrderYearMaxDuration> maxLists = new ArrayList<>();
|
|
|
|
|
+ int i = 1;
|
|
|
|
|
+ for (Integer year : collect) {
|
|
|
|
|
+ OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
|
|
|
|
|
+ orderYearMaxDuration.setYear(year);
|
|
|
|
|
+ if (maxDuration.compareTo(new BigDecimal(-1))==0){
|
|
|
|
|
+ orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
|
|
|
|
|
+ orderYearMaxDuration.setStatus(1);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ orderYearMaxDuration.setMaxDuration(maxDuration.multiply(new BigDecimal(i)));
|
|
|
|
|
+ orderYearMaxDuration.setStatus(0);
|
|
|
|
|
+ }
|
|
|
|
|
+ orderYearMaxDuration.setOrderNo(orderNew.getOrderNo());
|
|
|
|
|
+ i++;
|
|
|
|
|
+ int x = orderYearMaxDurationMapper.queryAllByCount(new OrderYearMaxDuration(orderNew.getOrderNo(), year));
|
|
|
|
|
+ if (x>0){
|
|
|
|
|
+ orderYearMaxDurationMapper.updateByOrderNoAndYear(orderYearMaxDuration);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ orderYearMaxDurationMapper.insert(orderYearMaxDuration);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- orderYearMaxDuration.setOrderNo(orderNo);
|
|
|
|
|
- System.out.println(orderYearMaxDuration);
|
|
|
|
|
- i++;
|
|
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//
|
|
|
|
|
-// List<String> yearsStrList = Arrays.asList("2019年", "2020年", "2021年(增)");
|
|
|
|
|
-// List<Integer> yearsIntList = yearsStrList.stream()
|
|
|
|
|
-// .map(this::extractYear)
|
|
|
|
|
-// .collect(Collectors.toList());
|
|
|
|
|
-//
|
|
|
|
|
-// System.out.println(yearsIntList);
|
|
|
|
|
-
|
|
|
|
|
- return out;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private Integer extractYear(String yearStr) {
|
|
private Integer extractYear(String yearStr) {
|