Browse Source

Merge remote-tracking branch 'origin/master'

ysm 10 months ago
parent
commit
c64b1594d0
29 changed files with 23910 additions and 63 deletions
  1. 2 2
      fhKeeper/formulahousekeeper/customerBuler-crm/src/components/TaskModal/api.ts
  2. 8 5
      fhKeeper/formulahousekeeper/customerBuler-crm/src/components/TaskModal/index.vue
  3. 17 30
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/index.vue
  4. 2 2
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/information.vue
  5. 9 4
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/index.vue
  6. 2 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/customer/component/relatedOrders.vue
  7. 12 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/order/component/products.vue
  8. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-06-28.log.gz
  9. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-06-29.log.gz
  10. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-06-30.log.gz
  11. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-07-01.log.gz
  12. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-07-02.log.gz
  13. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-07-03.log.gz
  14. BIN
      fhKeeper/formulahousekeeper/management-crm/crm.2024-07-04.log.gz
  15. 333 0
      fhKeeper/formulahousekeeper/management-crm/hs_err_pid23908.log
  16. 334 0
      fhKeeper/formulahousekeeper/management-crm/hs_err_pid30916.log
  17. 333 0
      fhKeeper/formulahousekeeper/management-crm/hs_err_pid35380.log
  18. 333 0
      fhKeeper/formulahousekeeper/management-crm/hs_err_pid36892.log
  19. 334 0
      fhKeeper/formulahousekeeper/management-crm/hs_err_pid6892.log
  20. 4076 0
      fhKeeper/formulahousekeeper/management-crm/replay_pid23908.log
  21. 4604 0
      fhKeeper/formulahousekeeper/management-crm/replay_pid30916.log
  22. 4441 0
      fhKeeper/formulahousekeeper/management-crm/replay_pid35380.log
  23. 4330 0
      fhKeeper/formulahousekeeper/management-crm/replay_pid36892.log
  24. 4711 0
      fhKeeper/formulahousekeeper/management-crm/replay_pid6892.log
  25. 16 11
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/CustomController.java
  26. 2 2
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/BusinessOpportunityServiceImpl.java
  27. 2 2
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ClueServiceImpl.java
  28. 8 2
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/CustomMapper.xml
  29. 1 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

+ 2 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/components/TaskModal/api.ts

@@ -23,9 +23,9 @@ export const defalutModalForm = {
 };
 export const PRIORITY = [
   //优先级
-  { label: "高", value: 0 },
+  { label: "高", value: 2 },
   { label: "中", value: 1 },
-  { label: "低", value: 2 },
+  { label: "低", value: 0 },
 ];
 
 export const TASK_TYPE = [

+ 8 - 5
fhKeeper/formulahousekeeper/customerBuler-crm/src/components/TaskModal/index.vue

@@ -62,12 +62,12 @@
           </el-form-item>
           <template v-if="[0, 1, 2, 3].includes(form.repeatType)">
             <el-form-item label="每:" v-if="form.repeatType == 3">
-              <el-input-number v-model="form.repeatDesignSameday" controls-position="right" :min="1" />天
+              <el-input-number v-model="form.repeatDesignSameday" :step="1" :precision="0" controls-position="right" :min="1" />天
             </el-form-item>
             <el-form-item label="结束:">
               <el-radio-group v-model="form.endType" @change="changeEndType">
                 <el-radio :label="1" class="w-full">永不</el-radio>
-                <el-radio :label="2" class="w-full mb-3"><el-input-number v-model="form.repeatEndCount" :min="1"
+                <el-radio :label="2" class="w-full mb-3"><el-input-number v-model="form.repeatEndCount" :precision="0" :step="1" :min="1"
                     controls-position="right" :disabled="form.endType != 2" />
                   次以后
                 </el-radio>
@@ -84,7 +84,7 @@
             <el-form-item v-for="(v, i) in customeDate" class="flex justify-between items-center customeDate">
               <div>
                 第{{ i + 1 }}次重复在
-                <el-input-number :model-value="Number(v)" controls-position="right" @change="changeDate(i, $event)"
+                <el-input-number :model-value="Number(v)" :step="1" :precision="0" controls-position="right" @change="changeDate(i, $event)"
                   :min="1" />
                 天后
               </div>
@@ -244,7 +244,11 @@ function submitForm(formEl: FormInstance | undefined, isClose: boolean) {
     if (!valid) {
       return false as any
     }
-    const repeatDesignDay = customeDate.value.join(",")
+    let numList = []
+    if(customeDate.value) {
+      numList = customeDate.value.filter((item: any) => item)
+    }
+    const repeatDesignDay = numList.join(",")
     generateFormRef.value?.getData().then((res: any) => {
       console.log(`{
         ...form.value,
@@ -364,7 +368,6 @@ function addCustomeDateItem() {
   customeDate.value.push(undefined)
 }
 
-
 </script>
 
 <style lang="scss">

+ 17 - 30
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/index.vue

@@ -4,7 +4,7 @@ import TrendCard from './components/TrendCard.vue';
 import SimpleCard from './components/SimpleCard.vue';
 import Divider from './components/Divider.vue';
 import Echarts from '@/components/ReEcharts/index.vue';
-import { EChartsOption } from 'echarts';
+import { EChartsOption, use } from 'echarts';
 import { dayjs } from 'element-plus';
 import {
   getSummaryData,
@@ -55,6 +55,10 @@ type PromptType = {
   sliceDate: [Date, Date];
 };
 
+const select1 = ref<HTMLDivElement>();
+const select2 = ref<HTMLDivElement>();
+const select3 = ref<HTMLDivElement>();
+
 const bulletinPrompt = reactive<PromptType>({
   permission: 0,
   date: 0,
@@ -123,7 +127,7 @@ watchEffect(() => {
     ...(bulletinPrompt.date === ('ignore' as any)
       ? {
           startDate: dayjs(bulletinPrompt.sliceDate[0]).format('YYYY-MM-DD'),
-          endData: dayjs(bulletinPrompt.sliceDate[1]).format('YYYY-MM-DD')
+          endDate: dayjs(bulletinPrompt.sliceDate[1]).format('YYYY-MM-DD')
         }
       : { dateType: bulletinPrompt.date }),
     queryType: bulletinPrompt.permission
@@ -135,7 +139,7 @@ watchEffect(() => {
     ...(stagePrompt.date === ('ignore' as any)
       ? {
           startDate: dayjs(stagePrompt.sliceDate[0]).format('YYYY-MM-DD'),
-          endData: dayjs(stagePrompt.sliceDate[1]).format('YYYY-MM-DD')
+          endDate: dayjs(stagePrompt.sliceDate[1]).format('YYYY-MM-DD')
         }
       : { dateType: stagePrompt.date }),
     queryType: stagePrompt.permission
@@ -147,7 +151,7 @@ watchEffect(() => {
     ...(summaryPrompt.date === ('ignore' as any)
       ? {
           startDate: dayjs(summaryPrompt.sliceDate[0]).format('YYYY-MM-DD'),
-          endData: dayjs(summaryPrompt.sliceDate[1]).format('YYYY-MM-DD')
+          endDate: dayjs(summaryPrompt.sliceDate[1]).format('YYYY-MM-DD')
         }
       : { dateType: summaryPrompt.date }),
     queryType: summaryPrompt.permission
@@ -178,12 +182,13 @@ watchEffect(() => {
         </div>
         <div class="w-40">
           <el-select
+            ref="select1"
             size="small"
             :model-value="bulletinPrompt.date"
             @change="(value) => (bulletinPrompt.date = value)"
           >
             <el-option v-for="date in dateOptions" :label="date.label" :value="date.value" />
-            <el-option label="自定义" value="ignore">
+            <el-option label="自定义" value="ignore" disabled>
               <div class="flex gap-2 w-80">
                 <el-date-picker
                   size="small"
@@ -194,7 +199,7 @@ watchEffect(() => {
                   start-placeholder="开始日期"
                   end-placeholder="结束日期"
                 />
-                <el-button size="small" type="primary">确认</el-button>
+                <el-button size="small" type="primary" @click="select1?.blur">确认</el-button>
               </div>
             </el-option>
           </el-select>
@@ -271,13 +276,14 @@ watchEffect(() => {
             </div>
             <div class="w-40">
               <el-select
+                ref="select2"
                 clearable
                 size="small"
                 :model-value="summaryPrompt.date"
                 @change="(value) => (summaryPrompt.date = value)"
               >
                 <el-option v-for="date in dateOptions" :label="date.label" :value="date.value" />
-                <el-option label="自定义" value="ignore">
+                <el-option label="自定义" value="ignore" disabled>
                   <div class="flex gap-2 w-80">
                     <el-date-picker
                       size="small"
@@ -288,7 +294,7 @@ watchEffect(() => {
                       start-placeholder="开始日期"
                       end-placeholder="结束日期"
                     />
-                    <el-button size="small" type="primary">确认</el-button>
+                    <el-button size="small" type="primary" @click="select2?.blur">确认</el-button>
                   </div>
                 </el-option>
               </el-select>
@@ -363,13 +369,14 @@ watchEffect(() => {
             </div>
             <div class="w-40">
               <el-select
+                ref="select3"
                 clearable
                 size="small"
                 :model-value="stagePrompt.date"
                 @change="(value) => (stagePrompt.date = value)"
               >
                 <el-option v-for="date in dateOptions" :label="date.label" :value="date.value" />
-                <el-option label="自定义" value="ignore">
+                <el-option label="自定义" value="ignore" disabled>
                   <div class="flex gap-2 w-80">
                     <el-date-picker
                       size="small"
@@ -380,7 +387,7 @@ watchEffect(() => {
                       start-placeholder="开始日期"
                       end-placeholder="结束日期"
                     />
-                    <el-button size="small" type="primary">确认</el-button>
+                    <el-button size="small" type="primary" @click="select3?.blur">确认</el-button>
                   </div>
                 </el-option>
               </el-select>
@@ -392,25 +399,5 @@ watchEffect(() => {
         </div>
       </div>
     </section>
-    <!-- <nav class="flex-1 min-w-60 sticky right-0 top-9 max-lg:hidden">
-      <div class="border border-gray-200 rounded w-3/4 text-sm text-gray-500">
-        <div class="p-2" v-for="primission in permissionOptions">
-          {{ primission.label }}
-        </div>
-      </div>
-      <div class="border border-gray-200 rounded text-sm text-gray-500 mt-4">
-        <div class="p-2" v-for="date in dateOptions">{{ date.label }}</div>
-        <div class="p-2">
-          <div>自定义</div>
-          <el-date-picker
-            type="daterange"
-            class="max-w-full mt-2"
-            v-model="defineDate"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
-          />
-        </div>
-      </div>
-    </nav> -->
   </div>
 </template>

+ 2 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/information.vue

@@ -4,9 +4,9 @@
             <div class="title">基本信息</div>
             <div>
                 <el-button type="primary" @click="associateContact()" v-if="!information.contactsId">关联联系人</el-button>
-                <el-button type="primary" @click="claimBusiness()" v-if="!information.customerId">认领</el-button>
+                <el-button type="primary" @click="claimBusiness()" v-if="!information.inchargerId">认领</el-button>
                 <el-button type="primary" @click="showVisible('transferBusinessVisible')"
-                    v-if="information.customerId">转移</el-button>
+                    v-if="information.inchargerId">转移</el-button>
                 <el-button type="primary" v-permission="['businessAddAnEdit']" @click="showVisible('editBusinessVisible')">编辑</el-button>
             </div>
         </div>

+ 9 - 4
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/index.vue

@@ -297,7 +297,7 @@ function editNewBusiness(item: any) {
   allLoading.generateFormLading = true
   if (item) {
     editProduct(item)
-    businessTemplateValue.value = item
+    businessTemplateValue.value = editBusinessData(item)
     allText.newBusinessisibleText = '编辑商机'
   }
   if (!item) {
@@ -405,16 +405,21 @@ function changeBatch(flag: boolean = true) {
 function editProduct(row: any) {
   post(BUSIESS_INFO, { id: row.id }).then(({ data }) => {
     const list = (data.businessItemProducts || []).map((item: any) => {
-      const { id, productName, productId, productCode, unit, unitName, typeName, type, price, inventory, orderProductDetail, num, discount, sealPrice, totalPrice, quantity } = item
+      const { id, productName, productId, productCode, unit, unitName, typeName, productType, type, price, inventory, orderProductDetail, num, discount, sellingPrice, sealPrice, totalPrice, quantity } = item
       return {
-        id, productId: productId, productName, productCode, unit, unitName, typeName, type, price, inventory,
-        num, discount, sealPrice, totalPrice, quantity
+        id, productId: productId, productName, productCode, unitName: unit, typeName: productType, type, price, inventory,
+        num, discount, sealPrice, totalPrice, quantity, sellingPrice
       }
     })
     productTableListValue.value = list
   })
 }
 
+function editBusinessData(item: any) {
+  const { name, expectedTransactionDate, amountOfMoney = 0, customerId, contactsId, creatorId, stageId, id, inchargerId, remark } = item
+  return { name, expectedTransactionDate, amountOfMoney, customerId, contactsId, creatorId, stageId, id, inchargerId, remark }
+}
+
 function handleSizeChange(val: number) {
   businessOpportunityForm.pageIndex = 1
   businessOpportunityForm.pageFrom = val

+ 2 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/customer/component/relatedOrders.vue

@@ -57,8 +57,9 @@ import { GenerateForm } from '@zmjs/form-design';
 import { get, post } from '@/utils/request';
 import router from '@/router';
 import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
-import { GETGENERATEFOEM, GETTABLELIST, URL_OEDERUPDATE } from '@/pages/order/api';
+import { GETGENERATEFOEM, URL_OEDERUPDATE } from '@/pages/order/api';
 import { formatDate } from '@/utils/times';
+import { GETTABLELIST } from '@/pages/product/api';
 
 const emits = defineEmits(['refreshData']);
 const globalPopup = inject<GlobalPopup>('globalPopup')

+ 12 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/order/component/products.vue

@@ -15,7 +15,7 @@
                 </el-table-column>
                 <el-table-column prop="productName" label="产品名称" width="200">
                     <template #default="scope">
-                        <el-button link type="primary" size="large">{{
+                        <el-button link type="primary" size="large" @click="toPath(scope.row)">{{
                             scope.row.productName
                         }}</el-button>
                     </template>
@@ -54,11 +54,13 @@
 import { ref, reactive, onMounted, onUnmounted, defineExpose, inject, watchEffect } from 'vue'
 import { GETGENERATEFOEM, GETTABLELISTPRODUCT, URL_OEDERUPDATE } from '../api';
 import { get, post } from '@/utils/request';
+import { useRouter } from "vue-router";
 import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
 import { all } from 'axios';
 import { formatDate } from '@/utils/times';
 import { getTemplateKey } from '@/utils/tools';
 
+const router = useRouter()
 const globalPopup = inject<GlobalPopup>('globalPopup')
 const emits = defineEmits(['refreshData']);
 const props = defineProps<{
@@ -83,6 +85,15 @@ const orderTemplate = ref({
     config: {}
 })
 
+function toPath(item: any) {
+    router.push({
+        path: `/product/detail`,
+        query: {
+            id: item.id
+        }
+    })
+}
+
 function saveOrder() {
     let productTableListData = relatedProductsRef?.value?.returnData()
     const items: any = infoValue.value

BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-06-28.log.gz


BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-06-29.log.gz


BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-06-30.log.gz


BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-07-01.log.gz


BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-07-02.log.gz


BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-07-03.log.gz


BIN
fhKeeper/formulahousekeeper/management-crm/crm.2024-07-04.log.gz


File diff suppressed because it is too large
+ 333 - 0
fhKeeper/formulahousekeeper/management-crm/hs_err_pid23908.log


File diff suppressed because it is too large
+ 334 - 0
fhKeeper/formulahousekeeper/management-crm/hs_err_pid30916.log


File diff suppressed because it is too large
+ 333 - 0
fhKeeper/formulahousekeeper/management-crm/hs_err_pid35380.log


File diff suppressed because it is too large
+ 333 - 0
fhKeeper/formulahousekeeper/management-crm/hs_err_pid36892.log


File diff suppressed because it is too large
+ 334 - 0
fhKeeper/formulahousekeeper/management-crm/hs_err_pid6892.log


File diff suppressed because it is too large
+ 4076 - 0
fhKeeper/formulahousekeeper/management-crm/replay_pid23908.log


File diff suppressed because it is too large
+ 4604 - 0
fhKeeper/formulahousekeeper/management-crm/replay_pid30916.log


File diff suppressed because it is too large
+ 4441 - 0
fhKeeper/formulahousekeeper/management-crm/replay_pid35380.log


File diff suppressed because it is too large
+ 4330 - 0
fhKeeper/formulahousekeeper/management-crm/replay_pid36892.log


File diff suppressed because it is too large
+ 4711 - 0
fhKeeper/formulahousekeeper/management-crm/replay_pid6892.log


+ 16 - 11
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/CustomController.java

@@ -7,10 +7,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.*;
-import com.management.platform.mapper.ClueMapper;
-import com.management.platform.mapper.CustomMapper;
-import com.management.platform.mapper.SysFormMapper;
-import com.management.platform.mapper.UserMapper;
+import com.management.platform.mapper.*;
 import com.management.platform.service.ContactsService;
 import com.management.platform.service.CustomService;
 import com.management.platform.service.WxCorpInfoService;
@@ -48,10 +45,11 @@ public class CustomController {
     @Autowired
     private CustomMapper customMapper;
     @Autowired
-    private ClueMapper clueMapper;
-    @Autowired
     private UserMapper userMapper;
 
+    @Autowired
+    private SysDictMapper sysDictMapper;
+
     @Resource
     private ExcelExportServiceImpl excelExportService;
     @Resource
@@ -109,7 +107,7 @@ public class CustomController {
     @RequestMapping("/exportData")
     public HttpRespMsg exportData(Custom custom , HttpServletRequest request) throws Exception {
         User user = userMapper.selectById(request.getHeader("token"));
-        SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCompanyId, user.getCompanyId()).eq(SysForm::getCode, "Thread").eq(SysForm::getIsCurrent, 1));
+        SysForm sysForm = sysFormMapper.selectOne(new LambdaQueryWrapper<SysForm>().eq(SysForm::getCompanyId, user.getCompanyId()).eq(SysForm::getCode, "Customer").eq(SysForm::getIsCurrent, 1));
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, user.getCompanyId()));
         String config = sysForm.getConfig();
         JSONObject configOb = JSON.parseObject(config);
@@ -123,8 +121,8 @@ public class CustomController {
         dataList.add(titleList);
         HttpRespMsg msg = list(custom, request);
         Map<String, Object> msgData = (Map<String, Object>) msg.getData();
-        List<BusinessOpportunity> bos = (List<BusinessOpportunity>) msgData.get("record");
-        for (BusinessOpportunity bo1 : bos) {
+        List<Custom> bos = (List<Custom>) msgData.get("data");
+        for (Custom bo1 : bos) {
             List<String> item=new ArrayList<>();
             for (int i = 0; i < configObJSONArray.size(); i++) {
                 JSONObject target = configObJSONArray.getJSONObject(i);
@@ -137,7 +135,7 @@ public class CustomController {
                             JSONObject object = list.getJSONObject(i2);
                             String model = object.getString("model");
                             String targetName = model.substring(0, 1).toUpperCase() + model.substring(1);
-                            Class<? extends BusinessOpportunity> aClass = bo1.getClass();
+                            Class<? extends Custom> aClass = bo1.getClass();
                             String value = String.valueOf(aClass.getMethod("get" + targetName).invoke(bo1)==null?"":aClass.getMethod("get" + targetName).invoke(bo1));
                             if(model.equals("inchargerId")){
                                 if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
@@ -146,13 +144,20 @@ public class CustomController {
                                     value = String.valueOf(aClass.getMethod("getInchargerName").invoke(bo1));
                                 }
                             }
+                            if(model.equals("customSourceValue")){
+                                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                    value = "$userName"+String.valueOf(aClass.getMethod("getCustomSourceValue").invoke(bo1))+"$";
+                                }else {
+                                    value = String.valueOf(aClass.getMethod("getCustomSourceValue").invoke(bo1)).equals("null") ?"" :String.valueOf(aClass.getMethod("getCustomSourceValue").invoke(bo1));
+                                }
+                            }
                             item.add(value);
                         }
                     }
                 }else {
                     String model = target.getString("model");
                     String targetName = model.substring(0, 1).toUpperCase() + model.substring(1);
-                    Class<? extends BusinessOpportunity> aClass = bo1.getClass();
+                    Class<? extends Custom> aClass = bo1.getClass();
                     String value = String.valueOf(aClass.getMethod("get" + targetName).invoke(bo1)==null?"":aClass.getMethod("get" + targetName).invoke(bo1));
                     if(model.equals("inchargerId")){
                         if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){

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

@@ -276,7 +276,7 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
         return msg;
     }
 
-    @Value(value = "${upload.file}")
+    @Value(value = "${upload.path}")
     private String filePath;
 
     @Override
@@ -337,7 +337,7 @@ public class BusinessOpportunityServiceImpl extends ServiceImpl<BusinessOpportun
                 e.printStackTrace();
                 // 文件上传失败的响应消息
                 HttpRespMsg msg = new HttpRespMsg();
-                msg.setError("上传成功失败");
+                msg.setError("上传失败");
                 return msg;
             }
         } else {

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

@@ -161,7 +161,7 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
         clueMapper.update(clue, updateWrapper);
     }
 
-    @Value(value = "${upload.file}")
+    @Value(value = "${upload.path}")
     private String path;
 
     @Override
@@ -295,7 +295,7 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
 
 
 
-    @Value(value = "${upload.file}")
+    @Value(value = "${upload.path}")
     private String filePath;
 
     @Override

+ 8 - 2
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/CustomMapper.xml

@@ -108,7 +108,9 @@
                 c.id DESC
             </otherwise>
         </choose>
+        <if test="pageFrom != null ">
         Limit #{pageIndex},#{pageFrom}
+        </if>
     </select>
     <select id="getTotal" resultType="java.lang.Integer">
         select count(id)
@@ -208,7 +210,9 @@
                 c.id DESC
             </otherwise>
         </choose>
-        Limit #{pageIndex},#{pageFrom}
+        <if test="pageFrom != null ">
+            Limit #{pageIndex},#{pageFrom}
+        </if>
     </select>
     <select id="getTotal1" resultType="java.lang.Integer">
         select count(id)
@@ -295,7 +299,9 @@
             and customer_industry_id = #{customerIndustryId}
         </if>
         ORDER BY id desc
-        Limit #{pageIndex},#{pageFrom}
+        <if test="pageFrom != null ">
+            Limit #{pageIndex},#{pageFrom}
+        </if>
     </select>
     <select id="getTotal2" resultType="java.lang.Integer">
         select count(id)

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -219,7 +219,7 @@
         FROM prod_procedure_team ppt2
         LEFT JOIN plan_procedure_total ppt ON ppt.id=ppt2.plan_procedure_id
         LEFT JOIN plan ON plan.id=ppt.plan_id
-        LEFT JOIN report r ON r.user_procedure_team_id=ppt2.id
+        LEFT JOIN report r ON r.user_procedure_team_id=ppt2.id AND r.finish_num>0
         LEFT JOIN prod_procedure pp ON ppt.prod_procedure_id=pp.id
         LEFT JOIN product p ON p.id=plan.product_id
         LEFT JOIN user u ON r.checker_id=u.id