|
@@ -34,6 +34,7 @@ import java.math.RoundingMode;
|
|
import java.text.NumberFormat;
|
|
import java.text.NumberFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
|
|
+import java.time.LocalDateTime;
|
|
import java.time.Year;
|
|
import java.time.Year;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
@@ -208,11 +209,12 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
File file = new File(fileName == null ? "file" : fileName);
|
|
File file = new File(fileName == null ? "file" : fileName);
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
User user = userMapper.selectById(request.getHeader("token"));
|
|
Integer companyId = user.getCompanyId();
|
|
Integer companyId = user.getCompanyId();
|
|
|
|
+ DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
+ DateTimeFormatter df1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
|
|
List<SalesOrder> orderList = salesOrderMapper.selectList(new LambdaQueryWrapper<SalesOrder>().eq(SalesOrder::getCompanyId, companyId));
|
|
List<SalesOrder> orderList = salesOrderMapper.selectList(new LambdaQueryWrapper<SalesOrder>().eq(SalesOrder::getCompanyId, companyId));
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
|
|
- List<SysDict> sysDictOfProductType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductType"));
|
|
|
|
- List<SysDict> sysDictOfProductUnit = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductUnit"));
|
|
|
|
|
|
+ List<SysDict> sysDictOfOrderType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "OrderType"));
|
|
InputStream inputStream = null;
|
|
InputStream inputStream = null;
|
|
OutputStream outputStream = null;
|
|
OutputStream outputStream = null;
|
|
try {
|
|
try {
|
|
@@ -270,6 +272,16 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
userNameList.add(cell.getStringCellValue());
|
|
userNameList.add(cell.getStringCellValue());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if(modelName.equals("customSigner")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ userNameList.add(cell.getStringCellValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(modelName.equals("companySigner")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ userNameList.add(cell.getStringCellValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -310,9 +322,6 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
default:cell.setCellType(CellType.STRING);
|
|
default:cell.setCellType(CellType.STRING);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-// Class<?> productClass = Class.forName("com.management.platform.entity.Product");
|
|
|
|
- Class<Product> productClass = Product.class;
|
|
|
|
- Method method = productClass.getMethod(setter, String.class);
|
|
|
|
//校验当前列是否为必填
|
|
//校验当前列是否为必填
|
|
JSONObject options = item.getJSONObject("options");
|
|
JSONObject options = item.getJSONObject("options");
|
|
JSONObject rules = options.getJSONObject("rules");
|
|
JSONObject rules = options.getJSONObject("rules");
|
|
@@ -325,14 +334,70 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
}
|
|
}
|
|
if(modelName.equals("orderCode")){
|
|
if(modelName.equals("orderCode")){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
- //系统中同公司已存在的产品编码 更新
|
|
|
|
|
|
+ //系统中同公司已存在的订单编码 更新
|
|
Optional<SalesOrder> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
|
|
Optional<SalesOrder> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
|
|
if(first.isPresent()){
|
|
if(first.isPresent()){
|
|
order.setId(first.get().getId());
|
|
order.setId(first.get().getId());
|
|
}
|
|
}
|
|
|
|
+ order.setOrderCode(cell.getStringCellValue());
|
|
}
|
|
}
|
|
- }
|
|
|
|
- if(modelName.equals("inchargerId")){
|
|
|
|
|
|
+ }else if(modelName.equals("customId")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ //系统中同公司已存在的订单编码 更新
|
|
|
|
+ Custom one = customService.getOne(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, companyId).eq(Custom::getCustomName, cell.getStringCellValue()));
|
|
|
|
+ if(one!=null){
|
|
|
|
+ order.setCustomId(one.getId());
|
|
|
|
+ }else {
|
|
|
|
+ msg.setError("客户["+cell.getStringCellValue()+"]在系统中不存在");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else if(modelName.equals("businessOpportunityId")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ //系统中同公司已存在的订单编码 更新
|
|
|
|
+ BusinessOpportunity one = businessOpportunityService.getOne(new LambdaQueryWrapper<BusinessOpportunity>().eq(BusinessOpportunity::getCompanyId, companyId).eq(BusinessOpportunity::getName, cell.getStringCellValue()));
|
|
|
|
+ if(one!=null){
|
|
|
|
+ order.setBusinessOpportunityId(one.getId());
|
|
|
|
+ }else {
|
|
|
|
+ msg.setError("商机["+cell.getStringCellValue()+"]在系统中不存在");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else if(modelName.equals("price")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ order.setPrice(new BigDecimal(cell.getStringCellValue()));
|
|
|
|
+ }
|
|
|
|
+ } else if(modelName.equals("receivedPayment")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ order.setReceivedPayment(new BigDecimal(cell.getStringCellValue()));
|
|
|
|
+ }
|
|
|
|
+ } else if(modelName.equals("unReceivedPayment")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ order.setUnReceivedPayment(new BigDecimal(cell.getStringCellValue()));
|
|
|
|
+ }
|
|
|
|
+ }else if(modelName.equals("type")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ Optional<SysDict> first = sysDictOfOrderType.stream().filter(s -> s.getName().equals(cell.getStringCellValue())).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ order.setType(first.get().getId());
|
|
|
|
+ }else {
|
|
|
|
+ msg.setError("订单类型["+cell.getStringCellValue()+"]不存在,请在系统字典中增加");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else if(modelName.equals("placeTime")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ order.setPlaceTime(LocalDateTime.parse(cell.getStringCellValue(),df1));
|
|
|
|
+ }
|
|
|
|
+ }else if(modelName.equals("orderStartDate")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ order.setOrderStartDate(LocalDate.parse(cell.getStringCellValue(),df));
|
|
|
|
+ }
|
|
|
|
+ }else if(modelName.equals("orderEndDate")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ order.setOrderEndDate(LocalDate.parse(cell.getStringCellValue(),df));
|
|
|
|
+ }
|
|
|
|
+ }else if(modelName.equals("inchargerId")){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
String userName = cell.getStringCellValue();
|
|
String userName = cell.getStringCellValue();
|
|
Optional<User> first;
|
|
Optional<User> first;
|
|
@@ -345,12 +410,50 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
if (first.isPresent()) {
|
|
if (first.isPresent()) {
|
|
order.setInchargerId(first.get().getId());
|
|
order.setInchargerId(first.get().getId());
|
|
} else {
|
|
} else {
|
|
- throw new Exception("["+userName+"]在系统中不存在");
|
|
|
|
|
|
+ msg.setError("负责人["+userName+"]在系统中不存在");
|
|
|
|
+ return msg;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }
|
|
|
|
- if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
- method.invoke(order,cell.getStringCellValue());
|
|
|
|
|
|
+ }else if(modelName.equals("customSigner")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ String userName = cell.getStringCellValue();
|
|
|
|
+ Optional<User> first;
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(userName)).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(userName))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(userName)||(u.getJobNumber()!=null&&u.getJobNumber().equals(userName))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ order.setCustomSigner(first.get().getId());
|
|
|
|
+ } else {
|
|
|
|
+ msg.setError("客户签约人["+userName+"]在系统中不存在");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else if(modelName.equals("companySigner")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ String userName = cell.getStringCellValue();
|
|
|
|
+ Optional<User> first;
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(userName)).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(userName))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(userName)||(u.getJobNumber()!=null&&u.getJobNumber().equals(userName))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ order.setCompanySigner(first.get().getId());
|
|
|
|
+ } else {
|
|
|
|
+ msg.setError("公司签约人["+userName+"]在系统中不存在");
|
|
|
|
+ return msg;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ Class<SalesOrder> orderClass = SalesOrder.class;
|
|
|
|
+ Method method = orderClass.getMethod(setter, String.class);
|
|
|
|
+ method.invoke(order,cell.getStringCellValue());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
importOrderList.add(order);
|
|
importOrderList.add(order);
|