|
@@ -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;
|
|
@@ -97,6 +98,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
List<SysDict> sysDictOfOrderType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, user.getCompanyId()).eq(SysDict::getCode, "OrderType"));
|
|
List<SysDict> sysDictOfOrderType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, user.getCompanyId()).eq(SysDict::getCode, "OrderType"));
|
|
LambdaQueryWrapper<SalesOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<SalesOrder> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
List<Custom> customList = customService.list(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, user.getCompanyId()));
|
|
List<Custom> customList = customService.list(new LambdaQueryWrapper<Custom>().eq(Custom::getCompanyId, user.getCompanyId()));
|
|
|
|
+ List<BusinessOpportunity> businessOpportunityList = businessOpportunityService.list(new LambdaQueryWrapper<BusinessOpportunity>().eq(BusinessOpportunity::getCompanyId, user.getCompanyId()));
|
|
orderLambdaQueryWrapper.eq(SalesOrder::getCompanyId,user.getCompanyId());
|
|
orderLambdaQueryWrapper.eq(SalesOrder::getCompanyId,user.getCompanyId());
|
|
if(isDelete!=null){
|
|
if(isDelete!=null){
|
|
orderLambdaQueryWrapper.eq(SalesOrder::getIsDelete,isDelete);
|
|
orderLambdaQueryWrapper.eq(SalesOrder::getIsDelete,isDelete);
|
|
@@ -193,6 +195,10 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
if(custom.isPresent()){
|
|
if(custom.isPresent()){
|
|
r.setCustomName(custom.get().getCustomName());
|
|
r.setCustomName(custom.get().getCustomName());
|
|
}
|
|
}
|
|
|
|
+ Optional<BusinessOpportunity> businessOpportunity = businessOpportunityList.stream().filter(b -> r.getBusinessOpportunityId() != null && b.getId().equals(r.getBusinessOpportunityId())).findFirst();
|
|
|
|
+ if(businessOpportunity.isPresent()){
|
|
|
|
+ r.setBusinessOpportunityName(businessOpportunity.get().getName());
|
|
|
|
+ }
|
|
});
|
|
});
|
|
Map map=new HashMap();
|
|
Map map=new HashMap();
|
|
map.put("record",records);
|
|
map.put("record",records);
|
|
@@ -208,11 +214,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 {
|
|
@@ -240,10 +247,28 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
String config = sysForm.getConfig();
|
|
String config = sysForm.getConfig();
|
|
JSONObject configOb = JSON.parseObject(config);
|
|
JSONObject configOb = JSON.parseObject(config);
|
|
JSONArray configObJSONArray = configOb.getJSONArray("list");
|
|
JSONArray configObJSONArray = configOb.getJSONArray("list");
|
|
|
|
+ //可能存在栅格布局的情况需要特殊处理
|
|
|
|
+ List<String> modelNameList=new ArrayList<>();
|
|
|
|
+ for (int i = 0; i < configObJSONArray.size(); i++) {
|
|
|
|
+ JSONObject jsonObject = configObJSONArray.getJSONObject(i);
|
|
|
|
+ if(jsonObject.getString("type").equals("grid")){
|
|
|
|
+ JSONArray columns = jsonObject.getJSONArray("columns");
|
|
|
|
+ for (int i1 = 0; i1 < columns.size(); i1++) {
|
|
|
|
+ JSONObject columnsJSONObject = columns.getJSONObject(i1);
|
|
|
|
+ JSONArray list = columnsJSONObject.getJSONArray("list");
|
|
|
|
+ for (int i2 = 0; i2 < list.size(); i2++) {
|
|
|
|
+ JSONObject object = list.getJSONObject(i2);
|
|
|
|
+ modelNameList.add(object.getString("model"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ modelNameList.add(jsonObject.getString("model"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
List<SalesOrder> importOrderList=new ArrayList<>();
|
|
List<SalesOrder> importOrderList=new ArrayList<>();
|
|
List<String> userNameList=new ArrayList<>();
|
|
List<String> userNameList=new ArrayList<>();
|
|
HttpRespMsg respMsg=new HttpRespMsg();
|
|
HttpRespMsg respMsg=new HttpRespMsg();
|
|
- for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
|
|
|
|
|
|
+ for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
|
|
HSSFRow row = sheet.getRow(rowIndex);
|
|
HSSFRow row = sheet.getRow(rowIndex);
|
|
if (row == null) {
|
|
if (row == null) {
|
|
continue;
|
|
continue;
|
|
@@ -255,17 +280,26 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
//获取到当前行的列数据
|
|
//获取到当前行的列数据
|
|
int cellNum = row.getLastCellNum();
|
|
int cellNum = row.getLastCellNum();
|
|
for (int i = 0; i < cellNum; i++) {
|
|
for (int i = 0; i < cellNum; i++) {
|
|
- JSONObject item = configObJSONArray.getJSONObject(i);
|
|
|
|
- String modelName = item.getString("model");
|
|
|
|
|
|
+ String modelName = modelNameList.get(i);
|
|
HSSFCell cell = row.getCell(i);
|
|
HSSFCell cell = row.getCell(i);
|
|
- if(cell!=null){
|
|
|
|
- switch (item.getString("type")){
|
|
|
|
- case "time":cell.setCellType(CellType.NUMERIC);
|
|
|
|
- break;
|
|
|
|
- default:cell.setCellType(CellType.STRING);
|
|
|
|
|
|
+// if(cell!=null){
|
|
|
|
+// switch (item.getString("type")){
|
|
|
|
+// case "time":cell.setCellType(CellType.NUMERIC);
|
|
|
|
+// break;
|
|
|
|
+// default:cell.setCellType(CellType.STRING);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+ if(modelName.equals("inchargerId")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ userNameList.add(cell.getStringCellValue());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(modelName.equals("inchargerId")){
|
|
|
|
|
|
+ if(modelName.equals("customSigner")){
|
|
|
|
+ if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
|
|
+ userNameList.add(cell.getStringCellValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(modelName.equals("companySigner")){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
if(!StringUtils.isEmpty(cell.getStringCellValue())){
|
|
userNameList.add(cell.getStringCellValue());
|
|
userNameList.add(cell.getStringCellValue());
|
|
}
|
|
}
|
|
@@ -282,7 +316,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
}
|
|
}
|
|
}
|
|
}
|
|
List<User> targetUserList= (List<User>) respMsg.data;
|
|
List<User> targetUserList= (List<User>) respMsg.data;
|
|
- for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
|
|
|
|
|
|
+ for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
|
|
HSSFRow row = sheet.getRow(rowIndex);
|
|
HSSFRow row = sheet.getRow(rowIndex);
|
|
if (row == null) {
|
|
if (row == null) {
|
|
continue;
|
|
continue;
|
|
@@ -310,9 +344,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 +356,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 +432,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);
|
|
@@ -385,7 +510,19 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
List<String> titleList=new ArrayList<>();
|
|
List<String> titleList=new ArrayList<>();
|
|
for (int i = 0; i < configObJSONArray.size(); i++) {
|
|
for (int i = 0; i < configObJSONArray.size(); i++) {
|
|
JSONObject item = configObJSONArray.getJSONObject(i);
|
|
JSONObject item = configObJSONArray.getJSONObject(i);
|
|
- titleList.add(item.getString("label"));
|
|
|
|
|
|
+ if(item.getString("type").equals("grid")){
|
|
|
|
+ JSONArray columns = item.getJSONArray("columns");
|
|
|
|
+ for (int i1 = 0; i1 < columns.size(); i1++) {
|
|
|
|
+ JSONObject columnsJSONObject = columns.getJSONObject(i1);
|
|
|
|
+ JSONArray list = columnsJSONObject.getJSONArray("list");
|
|
|
|
+ for (int i2 = 0; i2 < list.size(); i2++) {
|
|
|
|
+ JSONObject object = list.getJSONObject(i2);
|
|
|
|
+ titleList.add(object.getString("label"));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ titleList.add(item.getString("label"));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
dataList.add(titleList);
|
|
dataList.add(titleList);
|
|
HttpRespMsg respMsg = getList( userId,null, orderName,orderCode,null,null,null,null,null,productCode, null,null,0);
|
|
HttpRespMsg respMsg = getList( userId,null, orderName,orderCode,null,null,null,null,null,productCode, null,null,0);
|
|
@@ -395,18 +532,41 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
List<String> item=new ArrayList<>();
|
|
List<String> item=new ArrayList<>();
|
|
for (int i = 0; i < configObJSONArray.size(); i++) {
|
|
for (int i = 0; i < configObJSONArray.size(); i++) {
|
|
JSONObject target = configObJSONArray.getJSONObject(i);
|
|
JSONObject target = configObJSONArray.getJSONObject(i);
|
|
- String model = target.getString("model");
|
|
|
|
- String targetName = model.substring(0, 1).toUpperCase() + model.substring(1);
|
|
|
|
- Class<? extends Product> aClass = product.getClass();
|
|
|
|
- String value = String.valueOf(aClass.getMethod("get" + targetName).invoke(product)==null?"":aClass.getMethod("get" + targetName).invoke(product));
|
|
|
|
- if(model.equals("inchargerId")){
|
|
|
|
- if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
- value = "$userName"+String.valueOf(aClass.getMethod("getInchargerName").invoke(product))+"$";
|
|
|
|
- }else {
|
|
|
|
- value = String.valueOf(aClass.getMethod("getInchargerName").invoke(product));
|
|
|
|
|
|
+ if(target.getString("type").equals("grid")){
|
|
|
|
+ JSONArray columns = target.getJSONArray("columns");
|
|
|
|
+ for (int i1 = 0; i1 < columns.size(); i1++) {
|
|
|
|
+ JSONObject columnsJSONObject = columns.getJSONObject(i1);
|
|
|
|
+ JSONArray list = columnsJSONObject.getJSONArray("list");
|
|
|
|
+ for (int i2 = 0; i2 < list.size(); i2++) {
|
|
|
|
+ JSONObject object = list.getJSONObject(i2);
|
|
|
|
+ String model = object.getString("model");
|
|
|
|
+ String targetName = model.substring(0, 1).toUpperCase() + model.substring(1);
|
|
|
|
+ Class<? extends Product> aClass = product.getClass();
|
|
|
|
+ String value = String.valueOf(aClass.getMethod("get" + targetName).invoke(product)==null?"":aClass.getMethod("get" + targetName).invoke(product));
|
|
|
|
+ if(model.equals("inchargerId")){
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ value = "$userName"+String.valueOf(aClass.getMethod("getInchargerName").invoke(product))+"$";
|
|
|
|
+ }else {
|
|
|
|
+ value = String.valueOf(aClass.getMethod("getInchargerName").invoke(product));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ item.add(value);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ String model = target.getString("model");
|
|
|
|
+ String targetName = model.substring(0, 1).toUpperCase() + model.substring(1);
|
|
|
|
+ Class<? extends Product> aClass = product.getClass();
|
|
|
|
+ String value = String.valueOf(aClass.getMethod("get" + targetName).invoke(product)==null?"":aClass.getMethod("get" + targetName).invoke(product));
|
|
|
|
+ if(model.equals("inchargerId")){
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ value = "$userName"+String.valueOf(aClass.getMethod("getInchargerName").invoke(product))+"$";
|
|
|
|
+ }else {
|
|
|
|
+ value = String.valueOf(aClass.getMethod("getInchargerName").invoke(product));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ item.add(value);
|
|
}
|
|
}
|
|
- item.add(value);
|
|
|
|
}
|
|
}
|
|
dataList.add(item);
|
|
dataList.add(item);
|
|
}
|
|
}
|
|
@@ -512,6 +672,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
deptIds.add(-1);
|
|
deptIds.add(-1);
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getDepartmentId, deptIds));
|
|
List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getDepartmentId, deptIds));
|
|
List<String> userIds = userList.stream().map(User::getId).distinct().collect(Collectors.toList());
|
|
List<String> userIds = userList.stream().map(User::getId).distinct().collect(Collectors.toList());
|
|
|
|
+ userIds.add("-1");
|
|
customLambdaQueryWrapper.in(Custom::getCreatorId,userIds);
|
|
customLambdaQueryWrapper.in(Custom::getCreatorId,userIds);
|
|
contactsLambdaQueryWrapper.in(Contacts::getCreatorId,userIds);
|
|
contactsLambdaQueryWrapper.in(Contacts::getCreatorId,userIds);
|
|
businessOpportunityLambdaQueryWrapper.in(BusinessOpportunity::getCreatorId,userIds);
|
|
businessOpportunityLambdaQueryWrapper.in(BusinessOpportunity::getCreatorId,userIds);
|
|
@@ -529,6 +690,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
Integer targetDeptId = user.getDepartmentId();
|
|
Integer targetDeptId = user.getDepartmentId();
|
|
List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getDepartmentId, targetDeptId));
|
|
List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getDepartmentId, targetDeptId));
|
|
List<String> targetUserIds = users.stream().map(User::getId).distinct().collect(Collectors.toList());
|
|
List<String> targetUserIds = users.stream().map(User::getId).distinct().collect(Collectors.toList());
|
|
|
|
+ targetUserIds.add("-1");
|
|
customLambdaQueryWrapper.in(Custom::getCreatorId,targetUserIds);
|
|
customLambdaQueryWrapper.in(Custom::getCreatorId,targetUserIds);
|
|
contactsLambdaQueryWrapper.in(Contacts::getCreatorId,targetUserIds);
|
|
contactsLambdaQueryWrapper.in(Contacts::getCreatorId,targetUserIds);
|
|
businessOpportunityLambdaQueryWrapper.in(BusinessOpportunity::getCreatorId,targetUserIds);
|
|
businessOpportunityLambdaQueryWrapper.in(BusinessOpportunity::getCreatorId,targetUserIds);
|
|
@@ -547,6 +709,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
List<Integer> branchDepartment = getBranchDepartment(targetDeptId1, allDeptList);
|
|
List<Integer> branchDepartment = getBranchDepartment(targetDeptId1, allDeptList);
|
|
List<User> users1 = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getDepartmentId, branchDepartment));
|
|
List<User> users1 = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getDepartmentId, branchDepartment));
|
|
List<String> targetUserIds1 = users1.stream().map(User::getId).distinct().collect(Collectors.toList());
|
|
List<String> targetUserIds1 = users1.stream().map(User::getId).distinct().collect(Collectors.toList());
|
|
|
|
+ targetUserIds1.add("-1");
|
|
customLambdaQueryWrapper.in(Custom::getCreatorId,targetUserIds1);
|
|
customLambdaQueryWrapper.in(Custom::getCreatorId,targetUserIds1);
|
|
contactsLambdaQueryWrapper.in(Contacts::getCreatorId,targetUserIds1);
|
|
contactsLambdaQueryWrapper.in(Contacts::getCreatorId,targetUserIds1);
|
|
businessOpportunityLambdaQueryWrapper.in(BusinessOpportunity::getCreatorId,targetUserIds1);
|
|
businessOpportunityLambdaQueryWrapper.in(BusinessOpportunity::getCreatorId,targetUserIds1);
|
|
@@ -566,13 +729,21 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
int customCount = customService.count(customLambdaQueryWrapper);
|
|
int customCount = customService.count(customLambdaQueryWrapper);
|
|
int contactsCount = contactsService.count(contactsLambdaQueryWrapper);
|
|
int contactsCount = contactsService.count(contactsLambdaQueryWrapper);
|
|
int businessOpportunityCount = businessOpportunityService.count(businessOpportunityLambdaQueryWrapper);
|
|
int businessOpportunityCount = businessOpportunityService.count(businessOpportunityLambdaQueryWrapper);
|
|
|
|
+ List<BusinessOpportunity> businessOpportunityList = businessOpportunityService.list(businessOpportunityLambdaQueryWrapper);
|
|
|
|
+ double businessOpportunityPrice = businessOpportunityList.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b ->Double.valueOf(b.getAmountOfMoney())).sum();
|
|
Integer salesOrderCount = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper);
|
|
Integer salesOrderCount = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper);
|
|
|
|
+ List<SalesOrder> salesOrders = salesOrderMapper.selectList(salesOrderLambdaQueryWrapper);
|
|
|
|
+ double salesOrdersPrice = salesOrders.stream().mapToDouble(s -> s.getPrice().doubleValue()).sum();
|
|
Integer clueCount = clueMapper.selectCount(clueLambdaQueryWrapper);
|
|
Integer clueCount = clueMapper.selectCount(clueLambdaQueryWrapper);
|
|
|
|
|
|
int customCount1 = customService.count(customLambdaQueryWrapper1);
|
|
int customCount1 = customService.count(customLambdaQueryWrapper1);
|
|
int contactsCount1 = contactsService.count(contactsLambdaQueryWrapper1);
|
|
int contactsCount1 = contactsService.count(contactsLambdaQueryWrapper1);
|
|
int businessOpportunityCount1 = businessOpportunityService.count(businessOpportunityLambdaQueryWrapper1);
|
|
int businessOpportunityCount1 = businessOpportunityService.count(businessOpportunityLambdaQueryWrapper1);
|
|
|
|
+ List<BusinessOpportunity> businessOpportunityList1 = businessOpportunityService.list(businessOpportunityLambdaQueryWrapper1);
|
|
|
|
+ double businessOpportunityPrice1 = businessOpportunityList1.stream().filter(b->!StringUtils.isEmpty(b.getAmountOfMoney())).mapToDouble(b -> Double.valueOf(b.getAmountOfMoney())).sum();
|
|
Integer salesOrderCount1 = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper1);
|
|
Integer salesOrderCount1 = salesOrderMapper.selectCount(salesOrderLambdaQueryWrapper1);
|
|
|
|
+ List<SalesOrder> salesOrders1 = salesOrderMapper.selectList(salesOrderLambdaQueryWrapper1);
|
|
|
|
+ double salesOrdersPrice1 = salesOrders1.stream().mapToDouble(s -> s.getPrice().doubleValue()).sum();
|
|
Integer clueCount1 = clueMapper.selectCount(clueLambdaQueryWrapper1);
|
|
Integer clueCount1 = clueMapper.selectCount(clueLambdaQueryWrapper1);
|
|
Map<String,Object> customMap=new HashMap<>();
|
|
Map<String,Object> customMap=new HashMap<>();
|
|
customMap.put("customCount",customCount);
|
|
customMap.put("customCount",customCount);
|
|
@@ -586,10 +757,18 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
businessOpportunityMap.put("businessOpportunityCount",businessOpportunityCount);
|
|
businessOpportunityMap.put("businessOpportunityCount",businessOpportunityCount);
|
|
businessOpportunityMap.put("businessOpportunityPromote",getPromote(businessOpportunityCount,businessOpportunityCount1));
|
|
businessOpportunityMap.put("businessOpportunityPromote",getPromote(businessOpportunityCount,businessOpportunityCount1));
|
|
resultMap.put("businessOpportunity",businessOpportunityMap);
|
|
resultMap.put("businessOpportunity",businessOpportunityMap);
|
|
|
|
+ Map<String,Object> businessOpportunityPriceMap=new HashMap<>();
|
|
|
|
+ businessOpportunityPriceMap.put("businessOpportunityPrice",businessOpportunityPrice);
|
|
|
|
+ businessOpportunityPriceMap.put("businessOpportunityPromote",getPromote((int)businessOpportunityPrice,(int)businessOpportunityPrice1));
|
|
|
|
+ resultMap.put("businessOpportunityPrice",businessOpportunityPriceMap);
|
|
Map<String,Object> salesOrderMap=new HashMap<>();
|
|
Map<String,Object> salesOrderMap=new HashMap<>();
|
|
salesOrderMap.put("salesOrderCount",salesOrderCount);
|
|
salesOrderMap.put("salesOrderCount",salesOrderCount);
|
|
salesOrderMap.put("salesOrderPromote",getPromote(salesOrderCount,salesOrderCount1));
|
|
salesOrderMap.put("salesOrderPromote",getPromote(salesOrderCount,salesOrderCount1));
|
|
resultMap.put("salesOrder",salesOrderMap);
|
|
resultMap.put("salesOrder",salesOrderMap);
|
|
|
|
+ Map<String,Object> salesOrderPriceMap=new HashMap<>();
|
|
|
|
+ salesOrderPriceMap.put("salesOrdersPrice",salesOrdersPrice);
|
|
|
|
+ salesOrderPriceMap.put("salesOrderPricePromote",getPromote((int)salesOrdersPrice,(int)salesOrdersPrice1));
|
|
|
|
+ resultMap.put("salesOrdersPrice",salesOrderPriceMap);
|
|
Map<String,Object> clueMap=new HashMap<>();
|
|
Map<String,Object> clueMap=new HashMap<>();
|
|
clueMap.put("clueCount",clueCount);
|
|
clueMap.put("clueCount",clueCount);
|
|
clueMap.put("cluePromote",getPromote(clueCount,clueCount1));
|
|
clueMap.put("cluePromote",getPromote(clueCount,clueCount1));
|
|
@@ -747,7 +926,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
|
|
targetUserIds=targetUserIds2;
|
|
targetUserIds=targetUserIds2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- Map<String,Object> dataMap=businessOpportunityService.getDataStage(companyId,startDate,endDate,userId,targetUserIds);
|
|
|
|
|
|
+ List<Map<String,Object>> dataMap=businessOpportunityService.getDataStage(companyId,startDate,endDate,userId,targetUserIds);
|
|
Map<String,Object> resultMap=new HashMap<>();
|
|
Map<String,Object> resultMap=new HashMap<>();
|
|
resultMap.put("dataMap",dataMap);
|
|
resultMap.put("dataMap",dataMap);
|
|
msg.setData(resultMap);
|
|
msg.setData(resultMap);
|