Преглед изворни кода

样品交接单,合同交接单 搜索报错问题处理

yzc пре 1 година
родитељ
комит
534e7d8107

+ 25 - 9
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -2,9 +2,12 @@ package com.fjhx.sale.service.contract.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.common.entity.contract.po.ContractTemplate;
 import com.fjhx.common.enums.FlowStatusEnum;
 import com.fjhx.common.service.contract.ContractTemplateService;
@@ -23,10 +26,12 @@ import com.fjhx.sale.entity.contract.vo.ContractProductVo;
 import com.fjhx.sale.mapper.contract.ContractProductMapper;
 import com.fjhx.sale.service.claim.ClaimContractService;
 import com.fjhx.sale.service.contract.ContractProductService;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.utils.UserUtil;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -72,6 +77,8 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     private FlowExampleService flowExampleService;
     @Autowired
     private ClaimContractService claimContractService;
+    @Autowired
+    private ISysUserService userService;
 
     /**
      * 分页
@@ -83,20 +90,20 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     public Page<ContractProductVo> getPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1", ContractProduct::getCreateTime);
-        wrapper.ne("t1",ContractProduct::getExpendQuantity,0);
+        wrapper.ne("t1", ContractProduct::getExpendQuantity, 0);
         wrapper.between("t2", Contract::getStatus, FlowStatusEnum.PASS.getKey(), FlowStatusEnum.CANCELLATION.getKey() - 1);
-        if(ObjectUtil.isNotEmpty(dto.getDataType())&&dto.getDataType()==0){//合同交接单
+        if (ObjectUtil.isNotEmpty(dto.getDataType()) && dto.getDataType() == 0) {//合同交接单
             wrapper.ne("t1", ContractProduct::getExpendQuantity, BigDecimal.ZERO);
         }
-        if(ObjectUtil.isNotEmpty(dto.getPurchaseStatus())&&dto.getPurchaseStatus()==2){//已采购
+        if (ObjectUtil.isNotEmpty(dto.getPurchaseStatus()) && dto.getPurchaseStatus() == 2) {//已采购
             wrapper.eq("t1", ContractProduct::getExpendQuantity, BigDecimal.ZERO);
-        }else if(ObjectUtil.isNotEmpty(dto.getPurchaseStatus())&&dto.getPurchaseStatus()==1){//部分采购
+        } else if (ObjectUtil.isNotEmpty(dto.getPurchaseStatus()) && dto.getPurchaseStatus() == 1) {//部分采购
             wrapper.gt("t1", ContractProduct::getExpendQuantity, BigDecimal.ZERO);
             wrapper.apply("t1.expend_quantity <t1.quantity");
-        }else if(ObjectUtil.isNotEmpty(dto.getPurchaseStatus())&&dto.getPurchaseStatus()==0){//未采购
+        } else if (ObjectUtil.isNotEmpty(dto.getPurchaseStatus()) && dto.getPurchaseStatus() == 0) {//未采购
             wrapper.apply("t1.expend_quantity = t1.quantity");
         }
-        wrapper.eq("t2",Contract::getIssue,1);
+        wrapper.eq("t2", Contract::getIssue, 1);
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             wrapper.keyword(dto.getKeyword(), new SqlField("t2.`code`"), new SqlField("t2.`user_name`"));
         }
@@ -289,10 +296,17 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1.create_time");
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
-            wrapper.keyword(dto.getKeyword(), new SqlField("t1.`contractCode`"), new SqlField("t1.`userName`"));
+            DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+            List<SysUser> list = userService.list(Wrappers.<SysUser>lambdaQuery().like(SysUser::getUserName, dto.getKeyword()));
+            DynamicDataSourceContextHolder.poll();
+            List<Long> userIds = list.stream().map(SysUser::getUserId).collect(Collectors.toList());
+            wrapper.and(q->q
+                    .like("t2.`code`",dto.getKeyword())
+                    .or().like("t2.`user_name`",dto.getKeyword())
+                    .or().in("t2.create_user",userIds)
+            );
         }
-        wrapper.ge("t2.`status`", 30);
-        wrapper.lt("t2.`status`", 88);
+        wrapper.eq("t2.`status`", 30);
         wrapper.gt("t1.expend_quantity", 0);
         //查询合同交接单的数据(只查询有添加交接单的数据)
         Page<ContractProductVo> page = this.baseMapper.contractHandoverPage(dto.getPage(), wrapper);
@@ -312,6 +326,8 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
             customerService.attributeAssign(list, ContractProductVo::getBuyCorporationId, (item, corporation) -> {
                 item.setBuyCorporationName(corporation.getName());
             });
+            //赋值业务员名称
+            UserUtil.assignmentNickName(list, ContractProductVo::getCreateUser, ContractProductVo::setUserName);
         }
         return page;
     }

+ 32 - 24
hx-sale/src/main/java/com/fjhx/sale/service/sample/impl/SampleServiceImpl.java

@@ -1,36 +1,33 @@
 package com.fjhx.sale.service.sample.impl;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.common.constant.SourceConstant;
-import com.fjhx.common.controller.corporation.CorporationController;
 import com.fjhx.common.enums.FlowStatusEnum;
-import com.fjhx.common.service.corporation.CorporationService;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
 import com.fjhx.file.entity.FileInfoVo;
 import com.fjhx.file.utils.ObsFileUtil;
 import com.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.sale.entity.contract.po.Contract;
-import com.fjhx.sale.entity.contract.po.ContractProduct;
 import com.fjhx.sale.entity.contract.vo.ContractProductVo;
+import com.fjhx.sale.entity.sample.dto.SampleDto;
+import com.fjhx.sale.entity.sample.dto.SampleSelectDto;
 import com.fjhx.sale.entity.sample.po.Sample;
+import com.fjhx.sale.entity.sample.vo.SampleVo;
 import com.fjhx.sale.mapper.sample.SampleMapper;
 import com.fjhx.sale.service.sample.SampleService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.wrapper.SqlField;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.utils.UserUtil;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.sale.entity.sample.vo.SampleVo;
-import com.fjhx.sale.entity.sample.dto.SampleSelectDto;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.sale.entity.sample.dto.SampleDto;
-import cn.hutool.core.bean.BeanUtil;
 
 import java.util.List;
 import java.util.Map;
@@ -54,6 +51,8 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
 
     @Autowired
     private ProductInfoService productInfoService;
+    @Autowired
+    private ISysUserService userService;
 
 
     /**
@@ -100,14 +99,14 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
                 }
 
                 //赋值交接单附件
-                if (MapUtils.isNotEmpty(fileMap)){
+                if (MapUtils.isNotEmpty(fileMap)) {
                     List<FileInfoVo> fileInfoVos = fileMap.get(p.getId());
                     p.setFileInfoVos(fileInfoVos);
                 }
 
                 //赋值包装附件信息
-                if (MapUtils.isNotEmpty(packageFileMap)){
-                    List<FileInfoVo>  packageFileInfoVOList= packageFileMap.get(p.getId());
+                if (MapUtils.isNotEmpty(packageFileMap)) {
+                    List<FileInfoVo> packageFileInfoVOList = packageFileMap.get(p.getId());
                     p.setPackageFileInfoVOList(packageFileInfoVOList);
                 }
 
@@ -147,8 +146,8 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
      */
     @Override
     public void sampleHandover(SampleDto dto) {
-        ObsFileUtil.editFile(dto.getFileList(),dto.getId(),1);
-        ObsFileUtil.editFile(dto.getPackageFileList(),dto.getId(),2);
+        ObsFileUtil.editFile(dto.getFileList(), dto.getId(), 1);
+        ObsFileUtil.editFile(dto.getPackageFileList(), dto.getId(), 2);
     }
 
     /**
@@ -158,17 +157,24 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
     public Page<ContractProductVo> sampleHandoverList(SampleSelectDto dto) {
         IWrapper<Sample> wrapper = getWrapper();
         wrapper.orderByDesc("t1.create_time");
-        if(StringUtils.isNotEmpty(dto.getKeyword())){
-            wrapper.keyword(dto.getKeyword(),new SqlField("t1.`contractCode`"),new SqlField("t1.`userName`"));
+        if (StringUtils.isNotEmpty(dto.getKeyword())) {
+            DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+            List<SysUser> list = userService.list(Wrappers.<SysUser>lambdaQuery().like(SysUser::getUserName, dto.getKeyword()));
+            DynamicDataSourceContextHolder.poll();
+            List<Long> userIds = list.stream().map(SysUser::getUserId).collect(Collectors.toList());
+            wrapper.and(q -> q
+                    .like("t2.`code`", dto.getKeyword())
+                    .or().like("t2.`user_name`", dto.getKeyword())
+                    .or().in("t2.create_user", userIds)
+            );
         }
-        wrapper.ge("t2.`status`",30);
-        wrapper.lt("t2.`status`",88);
-        wrapper.gt("t1.expend_quantity",0);
+        wrapper.eq("t2.`status`", 30);
+        wrapper.gt("t1.expend_quantity", 0);
         //查询样品交接单列表(只查询有交接单的数据)
         Page<ContractProductVo> page = this.baseMapper.sampleHandoverList(dto.getPage(), wrapper);
 
         List<ContractProductVo> list = page.getRecords();
-        if(CollectionUtils.isNotEmpty(list)){
+        if (CollectionUtils.isNotEmpty(list)) {
             // 赋值产品属性
             productInfoService.attributeAssign(list, ContractProductVo::getProductId, (item, product) -> {
                 item.setProductCode(product.getCode());
@@ -182,6 +188,8 @@ public class SampleServiceImpl extends ServiceImpl<SampleMapper, Sample> impleme
             customerService.attributeAssign(list, ContractProductVo::getBuyCorporationId, (item, corporation) -> {
                 item.setBuyCorporationName(corporation.getName());
             });
+            //赋值业务员名称
+            UserUtil.assignmentNickName(list, ContractProductVo::getCreateUser, ContractProductVo::setUserName);
         }
         return page;
     }

+ 2 - 1
hx-sale/src/main/resources/mapper/contract/ContractProductMapper.xml

@@ -203,7 +203,8 @@
             t2.update_time updateTime,
 
             <!-- 合同到账时间-->
-            ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
+            ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime,
+            t2.create_user
         FROM
             contract_product t1
             LEFT JOIN contract t2 ON t1.contract_id = t2.id

+ 2 - 1
hx-sale/src/main/resources/mapper/sample/SampleMapper.xml

@@ -39,7 +39,8 @@
             t3.sampleTime,
             <!-- 合同审批通过后的时间(每次合同审批后都会修改时间 所以取update_time) -->
             t2.update_time updateTime,
-            ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime
+            ( SELECT create_time FROM claim_contract WHERE contract_id = t2.id ORDER BY create_time DESC LIMIT 1 ) AS claimTime,
+            t2.create_user
         FROM
             sample_product t1
             LEFT JOIN sample t2 ON t1.sample_id = t2.id