Browse Source

销售订单导入修改

Min 11 months ago
parent
commit
5657caf197

+ 1 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -287,7 +287,6 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                             default:cell.setCellType(CellType.STRING);
                         }
                     }
-//                    Class<?> productClass = Class.forName("com.management.platform.entity.Product");
                     //校验当前列是否为必填
                     JSONObject options = item.getJSONObject("options");
                     JSONObject rules = options.getJSONObject("rules");
@@ -320,7 +319,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                             if (first.isPresent()) {
                                 product.setInchargerId(first.get().getId());
                             } else {
-                                msg.setError("["+userName+"]在系统中不存在");
+                                msg.setError("负责人["+userName+"]在系统中不存在");
                                 return msg;
                             }
                         }

+ 115 - 12
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/SalesOrderServiceImpl.java

@@ -34,6 +34,7 @@ import java.math.RoundingMode;
 import java.text.NumberFormat;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.Year;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
@@ -208,11 +209,12 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
         File file = new File(fileName == null ? "file" : fileName);
         User user = userMapper.selectById(request.getHeader("token"));
         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));
         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<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;
         OutputStream outputStream = null;
         try {
@@ -270,6 +272,16 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             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);
                         }
                     }
-//                    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 rules = options.getJSONObject("rules");
@@ -325,14 +334,70 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                     }
                     if(modelName.equals("orderCode")){
                         if(!StringUtils.isEmpty(cell.getStringCellValue())){
-                            //系统中同公司已存在的产品编码 更新
+                            //系统中同公司已存在的订单编码 更新
                             Optional<SalesOrder> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
                             if(first.isPresent()){
                                 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())){
                             String userName = cell.getStringCellValue();
                             Optional<User> first;
@@ -345,12 +410,50 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             if (first.isPresent()) {
                                 order.setInchargerId(first.get().getId());
                             } 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);