|
|
|
@ -1,7 +1,6 @@
|
|
|
|
|
package jnpf.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import jnpf.entity.*;
|
|
|
|
|
import jnpf.mapper.YysMaterialProcurementOrderMapper;
|
|
|
|
|
import jnpf.service.*;
|
|
|
|
@ -11,11 +10,7 @@ import jnpf.model.yysmaterialprocurementorder.*;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import jnpf.permission.model.authorize.AuthorizeConditionModel;
|
|
|
|
|
import jnpf.util.GeneraterSwapUtil;
|
|
|
|
|
import jnpf.database.model.superQuery.SuperQueryJsonModel;
|
|
|
|
|
import jnpf.database.model.superQuery.ConditionJsonModel;
|
|
|
|
|
import jnpf.database.model.superQuery.SuperQueryConditionModel;
|
|
|
|
|
|
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
|
|
|
|
|
@ -24,7 +19,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
|
|
|
|
import jnpf.model.QueryModel;
|
|
|
|
|
|
|
|
|
@ -41,15 +36,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
|
|
|
|
import jnpf.util.*;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
import jnpf.base.UserInfo;
|
|
|
|
|
import jnpf.permission.entity.UserEntity;
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
|
@ -373,11 +365,13 @@ public class YysMaterialProcurementOrderServiceImpl extends ServiceImpl<YysMater
|
|
|
|
|
if (CollectionUtils.isEmpty(form.getOrderData())) {
|
|
|
|
|
return "采购单信息为空";
|
|
|
|
|
}
|
|
|
|
|
//获取当日最新编号
|
|
|
|
|
int num = this.getNewNum();
|
|
|
|
|
AtomicInteger index = new AtomicInteger(num);
|
|
|
|
|
String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
|
|
|
|
List<YysMaterialProcurementOrderEntity> collect = form.getOrderData().stream().map(form1 -> {
|
|
|
|
|
String mainId = RandomUtil.uuId();
|
|
|
|
|
int index = 1;
|
|
|
|
|
String number = String.format("%03d", index);
|
|
|
|
|
String number = String.format("%03d", index.getAndIncrement());
|
|
|
|
|
YysMaterialProcurementOrderEntity entity = new YysMaterialProcurementOrderEntity();
|
|
|
|
|
entity.setOrderDate(DateUtil.getNowDate());
|
|
|
|
|
entity.setRequestDeliveryDate(new Date(Long.parseLong(form1.getRequestDeliveryDate())));
|
|
|
|
@ -394,7 +388,6 @@ public class YysMaterialProcurementOrderServiceImpl extends ServiceImpl<YysMater
|
|
|
|
|
entity.setOrderNumber("PO" + currentDate + number);
|
|
|
|
|
entity.setCreatorTime(DateUtil.getNowDate());
|
|
|
|
|
entity.setCreatorUserId(userProvider.get().getUserId());
|
|
|
|
|
index++;
|
|
|
|
|
return entity;
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
boolean result = this.saveBatch(collect);
|
|
|
|
@ -410,4 +403,26 @@ public class YysMaterialProcurementOrderServiceImpl extends ServiceImpl<YysMater
|
|
|
|
|
}
|
|
|
|
|
return "生成失败";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int getNewNum() {
|
|
|
|
|
String currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
|
|
|
|
LambdaQueryWrapper<YysMaterialProcurementOrderEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
|
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
calendar.set(Calendar.MINUTE, 0);
|
|
|
|
|
calendar.set(Calendar.SECOND, 0);
|
|
|
|
|
calendar.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
Date todayStart = calendar.getTime();
|
|
|
|
|
calendar.add(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
|
calendar.add(Calendar.MILLISECOND, -1);
|
|
|
|
|
Date todayEnd = calendar.getTime();
|
|
|
|
|
wrapper.between(YysMaterialProcurementOrderEntity::getOrderDate, todayStart, todayEnd);
|
|
|
|
|
wrapper.orderByDesc(YysMaterialProcurementOrderEntity::getOrderNumber).last("limit 0,1");
|
|
|
|
|
YysMaterialProcurementOrderEntity max = this.getOne(wrapper);
|
|
|
|
|
if (ObjectUtil.isEmpty(max)) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
String number = max.getOrderNumber().replace("PO", "").replace(currentDate, "");
|
|
|
|
|
return Integer.parseInt(number) + 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|