yusm vor 5 Monaten
Ursprung
Commit
a77cbb7871

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

@@ -597,6 +597,7 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
                     }
 
                 }
+                product.setIsDelete(0);
                 importProductList.add(product);
             }
             if(importProductList.size()>0){

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

@@ -381,7 +381,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                             }
                         }
                     } else if(modelName.equals("unit")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             Optional<SysDict> first = sysDictOfProductUnit.stream().filter(s -> s.getName().equals(cell.getStringCellValue())).findFirst();
                             if(first.isPresent()){
                                 product.setUnit(first.get().getId());

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

@@ -17,6 +17,10 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.xssf.usermodel.XSSFCell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -318,13 +322,13 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
             inputStream.close();
             outputStream.close();
             //解析表格
-            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
+            XSSFWorkbook workbook = new XSSFWorkbook(file);
             //我们只需要第一个sheet
-            HSSFSheet sheet = workbook.getSheetAt(0);
+            XSSFSheet sheet = workbook.getSheetAt(0);
             //由于第一行需要指明列对应的标题
             int rowNum = sheet.getLastRowNum();
             //获取当前表单模板 校验规则
-            SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCode, "Product").eq(SysForm::getCompanyId, companyId).eq(SysForm::getIsCurrent, 1));
+            SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCode, "Order").eq(SysForm::getCompanyId, companyId).eq(SysForm::getIsCurrent, 1));
             if(sysForm==null){
                 msg.setError("当前模块未配置自定义模板,需先完成配置");
                 return msg;
@@ -354,7 +358,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
             List<String> userNameList=new ArrayList<>();
             HttpRespMsg respMsg=new HttpRespMsg();
             for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
-                HSSFRow row = sheet.getRow(rowIndex);
+                XSSFRow row = sheet.getRow(rowIndex);
                 if (row == null) {
                     continue;
                 }
@@ -366,19 +370,19 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                 int cellNum = row.getLastCellNum();
                 for (int i = 0; i < cellNum; i++) {
                     String modelName = modelNameList.get(i);
-                    HSSFCell cell = row.getCell(i);
+                    XSSFCell cell = row.getCell(i);
                     if(modelName.equals("inchargerId")){
                         if(!StringUtils.isEmpty(cell.getStringCellValue())){
                             userNameList.add(cell.getStringCellValue());
                         }
                     }
                     if(modelName.equals("customSigner")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             userNameList.add(cell.getStringCellValue());
                         }
                     }
                     if(modelName.equals("companySigner")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             userNameList.add(cell.getStringCellValue());
                         }
                     }
@@ -395,7 +399,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
             }
             List<User> targetUserList= (List<User>) respMsg.data;
             for (int rowIndex = 1; rowIndex <= rowNum; rowIndex++) {
-                HSSFRow row = sheet.getRow(rowIndex);
+                XSSFRow row = sheet.getRow(rowIndex);
                 if (row == null) {
                     continue;
                 }
@@ -427,7 +431,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                     String className = modelName.substring(0, 1).toUpperCase() + modelName.substring(1);
                     String getter="get"+className;
                     String setter="set"+className;
-                    HSSFCell cell = row.getCell(i);
+                    XSSFCell cell = row.getCell(i);
                     if(cell!=null){
                         switch (item.getString("type")){
 //                            case "time":cell.setCellType(CellType.NUMERIC);
@@ -446,7 +450,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                         }
                     }
                     if(modelName.equals("orderCode")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             //系统中同公司已存在的订单编码 更新
                             Optional<SalesOrder> first = orderList.stream().filter(p ->p.getOrderCode()!=null&& p.getOrderCode().equals(cell.getStringCellValue())).findFirst();
                             if(first.isPresent()){
@@ -466,7 +470,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             }
                         }
                     } else if(modelName.equals("businessOpportunityId")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             //系统中同公司已存在的订单编码 更新
                             BusinessOpportunity one = businessOpportunityService.getOne(new LambdaQueryWrapper<BusinessOpportunity>().eq(BusinessOpportunity::getCompanyId, companyId).eq(BusinessOpportunity::getName, cell.getStringCellValue()));
                             if(one!=null){
@@ -477,19 +481,19 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             }
                         }
                     } else if(modelName.equals("price")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             order.setPrice(new BigDecimal(cell.getStringCellValue()));
                         }
                     } else if(modelName.equals("receivedPayment")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             order.setReceivedPayment(new BigDecimal(cell.getStringCellValue()));
                         }
                     } else if(modelName.equals("unReceivedPayment")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             order.setUnReceivedPayment(new BigDecimal(cell.getStringCellValue()));
                         }
                     }else if(modelName.equals("type")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!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());
@@ -499,19 +503,32 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             }
                         }
                     }else if(modelName.equals("placeTime")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
-                            order.setPlaceTime(LocalDate.parse(cell.getStringCellValue(),df));
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
+                            try {
+                                int count = Integer.parseInt(cell.getStringCellValue());
+                                // Excel中的日期序列号的基准日期是1900年1月1日
+                                LocalDate baseDate = LocalDate.of(1900, 1, 1);
+                                LocalDate date = baseDate.plusDays(count - 2);
+
+                                // 将 ZonedDateTime 转换为 Date
+                                order.setPlaceTime(date);
+
+                            } catch (Exception e) {
+                                System.out.println("日期时间格式不正确,应该是yyyy/MM/dd" );
+                                msg.setError("日期时间格式不正确,应该是yyyy/MM/dd");
+                                return msg;
+                            }
                         }
                     }else if(modelName.equals("orderStartDate")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             order.setOrderStartDate(LocalDate.parse(cell.getStringCellValue(),df));
                         }
                     }else if(modelName.equals("orderEndDate")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             order.setOrderEndDate(LocalDate.parse(cell.getStringCellValue(),df));
                         }
                     }else if(modelName.equals("inchargerId")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             String userName = cell.getStringCellValue();
                             Optional<User> first;
                             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
@@ -528,7 +545,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             }
                         }
                     }else if(modelName.equals("customSigner")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             String userName = cell.getStringCellValue();
                             Optional<User> first;
                             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
@@ -545,7 +562,7 @@ public class SalesOrderServiceImpl extends ServiceImpl<SalesOrderMapper, SalesOr
                             }
                         }
                     }else if(modelName.equals("companySigner")){
-                        if(!StringUtils.isEmpty(cell.getStringCellValue())){
+                        if(cell!=null&&!StringUtils.isEmpty(cell.getStringCellValue())){
                             String userName = cell.getStringCellValue();
                             Optional<User> first;
                             if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){

+ 5 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -853,7 +853,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                     ArrayList<Information> informationArrayList = new ArrayList<>();
                     for (Task task : importTaskList) {
                         String executorId = task.getExecutorId();
-                        Information information = new Information();
+
 
                         if (StringUtils.isNotEmpty(executorId)){
                             String[] split = executorId.split(",");
@@ -865,7 +865,10 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                                 taskExecutor.setCompanyId(user.getCompanyId());
                                 taskExecutors.add(taskExecutor);
 
+                                Information information = new Information();
                                 information.setUserId(userList.stream().filter(u -> u.getId().equals(userId)).collect(Collectors.toList()).get(0).getId());
+                                information.setMsg("你有新的任务").setTime(new Date()).setChecked(0);
+                                informationArrayList.add(information);
                             }
                         }
                         TaskLog taskLog = new TaskLog();
@@ -877,8 +880,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                         taskLogs.add(taskLog);
 
 
-                        information.setMsg("你有新的任务").setTime(new Date()).setChecked(0);
-                        informationArrayList.add(information);
+
                     }
 
                     boolean b1 = true;