瀏覽代碼

问题处理

yzc 1 年之前
父節點
當前提交
5aaeb53d91

+ 1 - 6
hx-common/src/main/resources/mapper/contract/ContractTemplateMapper.xml

@@ -4,13 +4,8 @@
     <select id="getPage" resultType="com.fjhx.common.entity.contract.vo.ContractTemplateVo">
         select ct.id,
                ct.template_name,
-               ct.corporation_id,
-               ct.contact_name,
-               ct.contact_number,
-               c.corporation_number ,
-               c.name corporation_name
+               ct.template_type
         from contract_template ct
-                 left join corporation c on c.id = ct.corporation_id
             ${ew.customSqlSegment}
     </select>
 

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/entity/sale/po/SaleQuotation.java

@@ -106,6 +106,11 @@ public class SaleQuotation extends BasePo {
      */
     private Long oldQuotationId;
 
+    /**
+     * 对外报价单id
+     */
+    private Long extQuotationId;
+
 
 //
 //

+ 7 - 22
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductServiceImpl.java

@@ -8,7 +8,6 @@ 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.FlowStatusEnum1;
 import com.fjhx.common.service.contract.ContractTemplateService;
 import com.fjhx.common.service.corporation.CorporationService;
@@ -111,15 +110,6 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
         if (StringUtils.isNotEmpty(dto.getKeyword())) {
             wrapper.keyword(dto.getKeyword(), new SqlField("t2.`code`"), new SqlField("t2.`user_name`"));
         }
-        //所属公司id过滤
-        if (ObjectUtil.isNotEmpty(dto.getCorporationId())) {
-            List<Long> ctIds = contractTemplateService.listObject(ContractTemplate::getId,
-                    q -> q.eq(ContractTemplate::getCorporationId, dto.getCorporationId()));
-            if (ObjectUtil.isEmpty(ctIds)) {
-                return new Page<>();
-            }
-            wrapper.in("t2.contract_template_id", ctIds);
-        }
         //是否到账过滤
         if (ObjectUtil.isNotEmpty(dto.getIsReceived())) {
             if (1 == dto.getIsReceived()) {
@@ -154,11 +144,6 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
             item.setProductCategory(productClassify.getName());
         });
 
-        // 赋值公司id
-        contractTemplateService.attributeAssign(list, ContractProductVo::getContractTemplateId, (item, contractTemplate) -> {
-            item.setCorporationId(contractTemplate.getCorporationId());
-        });
-
         // 赋值公司名称
         corporationService.attributeAssign(list, ContractProductVo::getCorporationId, (item, corporation) -> {
             item.setCorporationName(corporation.getName());
@@ -236,7 +221,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
             List<EhsdPurchaseProduct> purchaseProducts = ehsdPurchaseProductService.getPurchaseProductByContractProductIds(contractProductIds);
             if (ObjectUtil.isNotEmpty(purchaseProducts)) {
                 Map<Long, List<EhsdPurchaseProduct>> collect = purchaseProducts.stream()
-                        .filter(item->ObjectUtil.isNotEmpty(item.getDataResourceId()))
+                        .filter(item -> ObjectUtil.isNotEmpty(item.getDataResourceId()))
                         .collect(Collectors.groupingBy(EhsdPurchaseProduct::getDataResourceId));
                 for (ContractProduct contractProduct : list) {
                     List<EhsdPurchaseProduct> ehsdPurchaseProductList = collect.get(contractProduct.getId());
@@ -318,16 +303,16 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
     public Page<ContractProductVo> contractHandoverPage(ContractProductSelectDto dto) {
         IWrapper<ContractProduct> wrapper = getWrapper();
         wrapper.orderByDesc("t1.create_time");
-        wrapper.eq("t2.is_delivery_file",1);
+        wrapper.eq("t2.is_delivery_file", 1);
         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.and(q -> q
+                    .like("t2.`code`", dto.getKeyword())
+                    .or().like("t2.`user_name`", dto.getKeyword())
+                    .or().in("t2.create_user", userIds)
             );
         }
         wrapper.eq("t2.`status`", 30);
@@ -358,7 +343,7 @@ public class ContractProductServiceImpl extends ServiceImpl<ContractProductMappe
             List<EhsdPurchaseProduct> purchaseProducts = ehsdPurchaseProductService.getPurchaseProductByContractProductIds(contractProductIds);
             if (ObjectUtil.isNotEmpty(purchaseProducts)) {
                 Map<Long, List<EhsdPurchaseProduct>> collect = purchaseProducts.stream()
-                        .filter(item->ObjectUtil.isNotEmpty(item.getDataResourceId()))
+                        .filter(item -> ObjectUtil.isNotEmpty(item.getDataResourceId()))
                         .collect(Collectors.groupingBy(EhsdPurchaseProduct::getDataResourceId));
                 for (ContractProduct contractProduct : list) {
                     List<EhsdPurchaseProduct> ehsdPurchaseProductList = collect.get(contractProduct.getId());

+ 20 - 0
hx-sale/src/main/java/com/fjhx/sale/service/ext/impl/ExtQuotationServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.area.utils.CustomizeAreaUtil;
 import com.fjhx.common.enums.FlowStatusEnum1;
+import com.fjhx.common.utils.Assert;
 import com.fjhx.common.utils.Utils;
 import com.fjhx.customer.entity.customer.po.Customer;
 import com.fjhx.customer.service.customer.CustomerService;
@@ -30,6 +31,7 @@ import com.fjhx.sale.service.ext.ExtQuotationFollowService;
 import com.fjhx.sale.service.ext.ExtQuotationProductBomService;
 import com.fjhx.sale.service.ext.ExtQuotationProductService;
 import com.fjhx.sale.service.ext.ExtQuotationService;
+import com.fjhx.sale.service.sale.SaleQuotationService;
 import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.exception.ServiceException;
@@ -66,6 +68,8 @@ public class ExtQuotationServiceImpl extends ServiceImpl<ExtQuotationMapper, Ext
     private ExtQuotationProductBomService extQuotationProductBomService;
     @Autowired
     private ExtQuotationFollowService extQuotationFollowService;
+    @Autowired
+    private SaleQuotationService saleQuotationService;
 
     @Override
     public Page<ExtQuotationVo> getPage(ExtQuotationSelectDto dto) {
@@ -204,11 +208,21 @@ public class ExtQuotationServiceImpl extends ServiceImpl<ExtQuotationMapper, Ext
     @Override
     @DSTransactional
     public void add(ExtQuotationDto saleQuotationDto) {
+        Long saleQuotationId = saleQuotationDto.getSaleQuotationId();
+        SaleQuotation saleQuotation = saleQuotationService.getById(saleQuotationId);
+        Assert.notEmpty(saleQuotation, "查询不到对内报价单信息请检查");
+
         long id = IdWorker.getId();
         saleQuotationDto.setId(id);
         saleQuotationDto.setGroupId(id);//赋值数据分组id
         saleQuotationDto.setStatus(30);
         saveOrEdit(saleQuotationDto);
+
+        //将对内报价单标记为转对外
+        saleQuotationService.update(q -> q
+                .eq(SaleQuotation::getId, saleQuotationId)
+                .set(SaleQuotation::getExtQuotationId, saleQuotationDto.getId())
+        );
     }
 
     @Override
@@ -267,6 +281,12 @@ public class ExtQuotationServiceImpl extends ServiceImpl<ExtQuotationMapper, Ext
         ExtQuotation saleQuotation = this.getById(id);
         saleQuotation.setStatus(FlowStatusEnum1.CANCELLATION.getKey());
         this.updateById(saleQuotation);
+
+        //标记对内报价单为可转对外
+        saleQuotationService.update(q -> q
+                .eq(SaleQuotation::getId, saleQuotation.getSaleQuotationId())
+                .set(SaleQuotation::getExtQuotationId, null)
+        );
     }
 
     /**

+ 18 - 15
hx-sale/src/main/java/com/fjhx/sale/service/sale/impl/SaleQuotationServiceImpl.java

@@ -113,6 +113,7 @@ public class SaleQuotationServiceImpl extends ServiceImpl<SaleQuotationMapper, S
         //权限过滤:报价评估自己看自己
         if (Objects.equals(dto.getIsEstimate(), 1)) {
             wrapper.eq("sq", SaleQuotation::getCompanyId, SecurityUtils.getCompanyId());
+            wrapper.ne("sq", SaleQuotation::getStatus, FlowStatusEnum1.CANCELLATION.getKey());
         }
 
         //报价状态
@@ -265,24 +266,26 @@ public class SaleQuotationServiceImpl extends ServiceImpl<SaleQuotationMapper, S
         this.saveOrUpdate(saleQuotationDto);
 
         List<QuotationProductDto> quotationProductList = saleQuotationDto.getQuotationProductList();
-        for (QuotationProductDto quotationProductDto : quotationProductList) {
-            //手动创建id
-            if (ObjectUtil.isEmpty(quotationProductDto.getId())) {
-                quotationProductDto.setId(IdWorker.getId());
+        if (ObjectUtil.isNotEmpty(quotationProductList)) {
+            for (QuotationProductDto quotationProductDto : quotationProductList) {
+                //手动创建id
+                if (ObjectUtil.isEmpty(quotationProductDto.getId())) {
+                    quotationProductDto.setId(IdWorker.getId());
+                }
+                quotationProductDto.setSaleQuotationId(saleQuotationDto.getId());
+
+                //保存配件
+                List<QuotationProductBom> quotationProductBomList = BeanUtil.copyToList(quotationProductDto.getQuotationProductBomList(), QuotationProductBom.class);
+                for (QuotationProductBom quotationProductBom : quotationProductBomList) {
+                    quotationProductBom.setProductId(quotationProductDto.getProductId());
+                    quotationProductBom.setQuotationProductId(quotationProductDto.getId());
+                }
+                quotationProductBomService.editLinked(quotationProductBomList, QuotationProductBom::getQuotationProductId, quotationProductDto.getId());
             }
-            quotationProductDto.setSaleQuotationId(saleQuotationDto.getId());
 
-            //保存配件
-            List<QuotationProductBom> quotationProductBomList = BeanUtil.copyToList(quotationProductDto.getQuotationProductBomList(), QuotationProductBom.class);
-            for (QuotationProductBom quotationProductBom : quotationProductBomList) {
-                quotationProductBom.setProductId(quotationProductDto.getProductId());
-                quotationProductBom.setQuotationProductId(quotationProductDto.getId());
-            }
-            quotationProductBomService.editLinked(quotationProductBomList, QuotationProductBom::getQuotationProductId, quotationProductDto.getId());
+            List<QuotationProduct> quotationProducts = BeanUtil.copyToList(quotationProductList, QuotationProduct.class);
+            quotationProductService.editLinked(quotationProducts, QuotationProduct::getSaleQuotationId, saleQuotationDto.getId());
         }
-
-        List<QuotationProduct> quotationProducts = BeanUtil.copyToList(quotationProductList, QuotationProduct.class);
-        quotationProductService.editLinked(quotationProducts, QuotationProduct::getSaleQuotationId, saleQuotationDto.getId());
     }
 
     /**