QuYueTing пре 1 месец
родитељ
комит
14c52f3404

+ 13 - 4
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/components/AIChat.vue

@@ -110,6 +110,7 @@
           start-placeholder="开始日期"
           end-placeholder="结束日期"
           format="YYYY-MM-DD"
+          value-format="YYYY-MM-DD"
         />
       </div>
     </div>
@@ -310,6 +311,13 @@ const dataSource = ref<DataSourceType>('system');
 const systemTable = ref<SystemTableType>('clue');
 const customReports = ref<CustomReport[]>([]);
 const selectedReportId = ref<string>('');
+const formatDate = (date: Date) => {
+  const year = date.getFullYear();
+  const month = String(date.getMonth() + 1).padStart(2, '0');
+  const day = String(date.getDate()).padStart(2, '0');
+  return `${year}-${month}-${day}`;
+};
+
 const getFirstDayOfMonth = () => {
   const date = new Date();
   return new Date(date.getFullYear(), date.getMonth(), 1);
@@ -339,7 +347,7 @@ const handleUpload = async (options: any) => {
   }
 };
 
-const dateRange = ref([getFirstDayOfMonth(), new Date()]);
+const dateRange = ref([formatDate(getFirstDayOfMonth()), formatDate(new Date())]);
 
 // Chat functionality
 const inputMessage = ref('请进行数据分析,给一个总结报告,不超过300字');
@@ -459,14 +467,15 @@ const sendMessage = async () => {
   messages.push({ role: 'assistant', content: 'AI正在思考', loading: true });
   
   try {
-    
+    console.log('发送日期=='+dateRange);
+    console.log(dateRange.value[0]);
     const params: AIQuestionParams & { questionId?: number } = {
       questionDataSource: dataSourceMap[dataSource.value],
       sourceContent: dataSource.value === 'system' ? systemTable.value : 
                    dataSource.value === 'custom' ? selectedReportId.value : '',
       content: finalContent,
-      startDate: dateRange.value[0]?.toISOString().split('T')[0],
-      endDate: dateRange.value[1]?.toISOString().split('T')[0],
+      startDate: dateRange.value[0],
+      endDate: dateRange.value[1],
       url: dataSource.value === 'upload' ? uploadedFilePath.value : ''
     };
 

+ 6 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/BusinessOpportunityController.java

@@ -102,6 +102,7 @@ public class BusinessOpportunityController {
 
     @RequestMapping("/exportData")
     public HttpRespMsg exportData(BusinessOpportunity bo ,HttpServletRequest request) throws Exception {
+        bo.setPageIndex(null).setPageFrom(null);
         User user = userMapper.selectById(request.getHeader("token"));
         SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCompanyId, user.getCompanyId()).eq(SysForm::getCode, "business").eq(SysForm::getIsCurrent, 1));
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, user.getCompanyId()));
@@ -146,6 +147,7 @@ public class BusinessOpportunityController {
         HttpRespMsg respMsg = list(bo,request);
         Map<String, Object> msgData = (Map<String, Object>) respMsg.getData();
         List<BusinessOpportunity> list = (List<BusinessOpportunity>) msgData.get("data");
+        System.out.println("商机数据量==="+list.size());
 
         for (BusinessOpportunity data : list) {
             List<String> item=new ArrayList<>();
@@ -207,6 +209,7 @@ public class BusinessOpportunityController {
             dataList.add(item);
         }
         String fileName=str+"表导出_"+ System.currentTimeMillis();
+        System.out.println("fileName===="+fileName);
         return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName,dataList,path);
     }
 
@@ -454,7 +457,9 @@ public class BusinessOpportunityController {
         bo.setCompanyId(user.getCompanyId());
         bo.setUserId(user.getId());
         bo.setEndTime(bo.getEndTime() + " 23:59:59");
-        bo.setPageIndex((bo.getPageIndex()-1) * bo.getPageFrom());
+        if (bo.getPageIndex() != null) {
+            bo.setPageIndex((bo.getPageIndex()-1) * bo.getPageFrom());
+        }
         List<BusinessOpportunity> list = new ArrayList<>();
         boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部商机");
         boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门商机");

+ 0 - 7
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/CustomController.java

@@ -37,18 +37,11 @@ import java.util.Map;
 @RestController
 @RequestMapping("/custom")
 public class CustomController {
-    @Value(value = "${upload.file}")
-    private String file;
     @Autowired
     private CustomService customService;
     @Autowired
-    private CustomMapper customMapper;
-    @Autowired
     private UserMapper userMapper;
 
-    @Autowired
-    private SysDictMapper sysDictMapper;
-
     @Resource
     private ExcelExportServiceImpl excelExportService;
     @Resource

+ 25 - 23
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/AIQuestionServiceImpl.java

@@ -330,19 +330,21 @@ public class AIQuestionServiceImpl extends ServiceImpl<AIQuestionMapper, AIQuest
                     }
                     break;
             }
-
+            System.out.println("dataMsg=="+dataMsg.toJSONStr());
             if(dataMsg.getCode().equals("error")){
                 return dataMsg;
             }
 
-            String filePath = dataMsg.getMsg();
-
+            String filePath = (String)dataMsg.getData();
+            //处理地址,获取最后一个斜杠后面的文件名
+            String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
+            System.out.println("文件名称:" + fileName);
             RestTemplate restTemplate = new RestTemplate();
             //转换为MultipartFile 准备表单数据
             MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
             body.add("question", questionBO.getContent());
             ByteArrayResource byteArrayResource = null;
-            File f = new File(path,filePath);
+            File f = new File(path,fileName);
             try {
                 MultipartFile multipartFileFromPath = getMultipartFileFromPath(f.getAbsolutePath());
                 byteArrayResource = new ByteArrayResource(multipartFileFromPath.getBytes()) {
@@ -351,28 +353,28 @@ public class AIQuestionServiceImpl extends ServiceImpl<AIQuestionMapper, AIQuest
                         return multipartFileFromPath.getOriginalFilename();
                     }
                 };
+                body.add("file",byteArrayResource);
+                HttpHeaders headers = new HttpHeaders();
+                headers.setContentType(MediaType.MULTIPART_FORM_DATA);
+
+                HttpEntity<MultiValueMap<String, Object>> requestEntity =
+                        new HttpEntity<>(body, headers);
+                ResponseEntity<String> response = restTemplate.exchange(
+                        aiFileAskUrl,
+                        HttpMethod.POST,
+                        requestEntity,
+                        String.class);
+                if(response.getStatusCode().is2xxSuccessful()){
+                    JSONObject jsonObject = JSONObject.parseObject(response.getBody());
+                    System.out.println("jsonObject=== "+jsonObject);
+                    queryRes = jsonObject.getString("data");
+                }else{
+                    queryRes = "AI分析有误,稍后再试";
+                }
             }catch (IOException e){
                 e.printStackTrace();
+                queryRes = "数据处理有误,稍后再试";
             }
-            body.add("file",byteArrayResource);
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.MULTIPART_FORM_DATA);
-
-            HttpEntity<MultiValueMap<String, Object>> requestEntity =
-                    new HttpEntity<>(body, headers);
-            ResponseEntity<String> response = restTemplate.exchange(
-                    aiFileAskUrl,
-                    HttpMethod.POST,
-                    requestEntity,
-                    String.class);
-            if(response.getStatusCode().is2xxSuccessful()){
-                JSONObject jsonObject = JSONObject.parseObject(response.getBody());
-                System.out.println("jsonObject=== "+jsonObject);
-                queryRes = jsonObject.getString("data");
-            }else{
-                queryRes = "AI分析有误,稍后再试";
-            }
-
 
             //排除relation表中的关联字段
 //            List<BusObjRelation> busObjRelations = busObjRelationMapper.selectList(new LambdaQueryWrapper<BusObjRelation>()

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

@@ -281,10 +281,6 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
         bOMapper.update(null, updateWrapper);
     }
 
-    @Value(value = "${upload.file}")
-    private String path;
-
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public HttpRespMsg saveProduct(BusinessOpportunity bo, User user) {
@@ -408,7 +404,7 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
             UploadFile uploadFile = uploadFileMapper.selectById(file.getId());
             uploadFileMapper.deleteById(uploadFile.getId());
             String realName = uploadFile.getRealName();
-            File file1 = new File(path + realName);
+            File file1 = new File(filePath + realName);
             file1.delete();
             msg.setMsg("删除成功");
         } catch (Exception e) {
@@ -929,7 +925,7 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
             dataList.add(item);
         }
         String fileName=str+"表AI_"+ System.currentTimeMillis();
-        return excelExportService.exportGeneralExcelByTitleAndListAI(fileName,dataList,path);
+        return excelExportService.exportGeneralExcelByTitleAndListAI(fileName,dataList,filePath);
     }
 
     private HttpRespMsg listAI(BusinessOpportunity bo, HttpServletRequest request) {
@@ -939,7 +935,7 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
         bo.setCompanyId(user.getCompanyId());
         bo.setUserId(user.getId());
         bo.setEndTime(bo.getEndTime() + " 23:59:59");
-        bo.setPageIndex((bo.getPageIndex()-1) * bo.getPageFrom());
+//        bo.setPageIndex((bo.getPageIndex()-1) * bo.getPageFrom());
         List<BusinessOpportunity> list = new ArrayList<>();
         boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部商机");
         boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门商机");

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

@@ -87,7 +87,8 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
         clue.setCompanyId(user.getCompanyId());
         clue.setIsDelete(0);
         clue.setEndTime(clue.getEndTime() + " 23:59:59");
-        clue.setPageIndex((clue.getPageIndex() - 1) * clue.getPageFrom());
+        //导出时不需要页码过滤
+//        clue.setPageIndex((clue.getPageIndex() - 1) * clue.getPageFrom());
         boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部线索");
         boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门线索");
         List<Clue> list = new ArrayList<>();

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

@@ -98,6 +98,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
     @Override
     public HttpRespMsg getList(Integer companyId,String userId, String productName, String productCode,Integer productType,Integer status,String startDate,String endDate, Integer pageIndex, Integer pageSize) {
+        System.out.println("endDate=="+endDate);
         HttpRespMsg msg=new HttpRespMsg();
         User targetUsr = userMapper.selectById(request.getHeader("token"));
         List<Department> departments = departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getCompanyId, companyId));
@@ -161,7 +162,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
             queryWrapper.eq(Product::getStatus,status);
         }
         if(startDate!=null && endDate!=null){
-            DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            DateTimeFormatter df = startDate.length() > 10? DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"):DateTimeFormatter.ofPattern("yyyy-MM-dd");
             LocalDateTime start = LocalDate.parse(startDate, df).atTime(LocalTime.MIN);
             LocalDateTime end = LocalDate.parse(endDate, df).atTime(LocalTime.MAX);
             queryWrapper.between(Product::getCreateTime,start,end);
@@ -915,6 +916,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
     @Override
     public HttpRespMsg exportDataAI(String startDate, String endDate, HttpServletRequest request) throws Exception {
+        System.out.println("exportDataAI, 接收到参数startDate==="+startDate);
         User user = userMapper.selectById(request.getHeader("token"));
         SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCompanyId, user.getCompanyId()).eq(SysForm::getCode, "Product").eq(SysForm::getIsCurrent, 1));
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, user.getCompanyId()));

+ 1 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/util/ExcelUtil.java

@@ -169,6 +169,7 @@ public class ExcelUtil {
             workBook.write(os);
             os.flush();
             os.close();
+            System.out.println("写入文件路径=="+downloadPath+fileName);
         }catch(Exception e) {
             System.out.println(result);
             e.printStackTrace();

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/resources/application.yml

@@ -100,7 +100,7 @@ mybatis:
 #####配置图片上传路径####
 upload:
   path: C:/upload/
-  file: C:/file/
+#  file: C:/file/
 picrecongnize:
   browser: C:/picrecongnize/browser/
   develop: C:/picrecongnize/develop/

+ 9 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/ClueMapper.xml

@@ -99,7 +99,9 @@
                 c.id DESC
             </otherwise>
         </choose>
-        limit #{pageIndex},#{pageFrom}
+        <if test="pageIndex != null and pageFrom !=null">
+            limit #{pageIndex},#{pageFrom}
+        </if>
     </select>
     <select id="list1" resultType="com.management.platform.entity.Clue">
         select c.id,
@@ -173,7 +175,9 @@
                 c.id DESC
             </otherwise>
         </choose>
-        limit #{clue.pageIndex},#{clue.pageFrom}
+        <if test="clue.pageIndex != null and clue.pageFrom !=null">
+            limit #{clue.pageIndex},#{clue.pageFrom}
+        </if>
     </select>
     <select id="list2" resultType="com.management.platform.entity.Clue">
         select c.id,
@@ -245,7 +249,9 @@
                 c.id DESC
             </otherwise>
         </choose>
-        limit #{clue.pageIndex},#{clue.pageFrom}
+        <if test="clue.pageIndex != null and clue.pageFrom !=null">
+            limit #{clue.pageIndex},#{clue.pageFrom}
+        </if>
     </select>
     <select id="getTotal" resultType="java.lang.Integer">
         select count(*)