Przeglądaj źródła

1.新增根据业务类型,产品id及checkLoop获取质检信息接口
2.新增资产业务产品出入库(开发中)

GouGengquan 1 rok temu
rodzic
commit
e326a3ce92

+ 14 - 3
biz-base/src/main/java/com/dayou/controller/AssetsProductionController.java

@@ -1,9 +1,7 @@
 package com.dayou.controller;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.dayou.dto.AProListSelectDTO;
-import com.dayou.dto.AssetsProductionDetailDTO;
-import com.dayou.dto.TaskRecordDTO;
+import com.dayou.dto.*;
 import com.dayou.workflow.annotation.FinishTask;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +23,9 @@ import java.util.List;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.http.MediaType;
 import org.springframework.web.multipart.MultipartFile;
+
+import javax.validation.Valid;
+
 /**
  * 资产产品表
  *
@@ -159,5 +160,15 @@ public class AssetsProductionController extends BaseController {
         return RestResponse.data(assetsProductionService.getInatanceCount(aProListSelectDTO));
     }
 
+    /**
+     * 资产产品出入库
+     * @param taskRecordDTO 节点完成DTO
+     * @return RestResponse<Boolean>
+     */
+    @PostMapping("/assetsProRepertory")
+    public RestResponse<Boolean> assetsProRepertoryIn(@RequestBody @Valid TaskRecordDTO<AssetsProWareHouseDTO> taskRecordDTO) {
+        return RestResponse.data(assetsProductionService.assetsProRepertory(taskRecordDTO.getTaskData()));
+    }
+
 }
 

+ 10 - 0
biz-base/src/main/java/com/dayou/controller/BusinessProductionPerformanceController.java

@@ -75,6 +75,16 @@ public class BusinessProductionPerformanceController extends BaseController {
         return RestResponse.data(ret);
     }
 
+    /**
+     * 根据业务类型,产品id及checkLoop获取质检信息
+     * @param dto 查询条件
+     * @return RestResponse<BusinessProductionPerformance>
+     */
+    @GetMapping("/getProductionPerformance")
+    public RestResponse<BusinessProductionPerformance> getProductionPerformance(BusinessProductionPerformance dto) {
+        return RestResponse.data(businessProductionPerformanceService.getProductionPerformance(dto));
+    }
+
 
 }
 

+ 7 - 0
dao/src/main/java/com/dayou/mapper/BusinessProductionPerformanceMapper.java

@@ -18,4 +18,11 @@ import java.util.List;
 public interface BusinessProductionPerformanceMapper extends CustomBaseMapper<BusinessProductionPerformance> {
 
     List<BusinessProductionPerformance> getMajorDetail(@Param("performance") BusinessProductionPerformanceVO performance);
+
+    /**
+     * 根据业务类型,产品id及checkLoop获取质检信息
+     * @param dto 查询条件
+     * @return BusinessProductionPerformance
+     */
+    BusinessProductionPerformance getProductionPerformance(BusinessProductionPerformance dto);
 }

+ 8 - 0
dao/src/main/resources/mapper/AssetsProductionMapper.xml

@@ -122,5 +122,13 @@
         AND business_sub_id = #{productionNo}
     </select>
 
+    <!--根据id获取产品出入库装填-->
+    <select id="getRepertoryState" resultType="java.lang.Boolean">
+        SELECT repertory_state
+        FROM assets_production
+        WHERE deleted = 0
+        AND id = #{id}
+    </select>
+
 
 </mapper>

+ 9 - 0
dao/src/main/resources/mapper/BusinessProductionPerformanceMapper.xml

@@ -19,4 +19,13 @@
         where mp.deleted = 0 and m.deleted = 0 and m.id = #{performance.majorId} and mp.report_no = #{performance.productionNo}
 
    </select>
+
+    <!--根据业务类型,产品id及checkLoop获取质检信息-->
+    <select id="getProductionPerformance" resultType="com.dayou.entity.BusinessProductionPerformance">
+        SELECT id, fatal_mistake, hard_mistake, normal_mistake, reason
+        FROM business_production_performance
+        WHERE production_id = #{productionId}
+        AND check_loop = #{CheckLoop}
+        AND business_type = #{BusinessType}
+    </select>
 </mapper>

+ 31 - 0
domain/src/main/java/com/dayou/dto/AssetsProWareHouseDTO.java

@@ -0,0 +1,31 @@
+package com.dayou.dto;
+
+import lombok.Data;
+
+@Data
+public class AssetsProWareHouseDTO {
+    /**
+     * 产品号
+     */
+    private String productionNo;
+
+    /**
+     * 出入库状态
+     */
+    private Boolean repertoryState;
+
+    /**
+     * 产品类型
+     */
+    private String productionType;
+
+    /**
+     * 产品id
+     */
+    private Long productionId;
+
+    /**
+     * 业务订单id
+     */
+    private Long businessId;
+}

+ 8 - 3
service/src/main/java/com/dayou/service/IAssetsProductionService.java

@@ -1,7 +1,5 @@
 package com.dayou.service;
-import com.dayou.dto.AProListSelectDTO;
-import com.dayou.dto.AssetsProductionDetailDTO;
-import com.dayou.dto.TaskRecordDTO;
+import com.dayou.dto.*;
 import com.dayou.entity.AssetsProduction;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -80,4 +78,11 @@ public interface IAssetsProductionService extends IService<AssetsProduction> {
          */
         Integer getInatanceCount(AProListSelectDTO aProListSelectDTO);
 
+        /**
+         * 产品出入库
+         * @param wareHouseDTO 出入库dto
+         * @return Boolean
+         */
+        Boolean assetsProRepertory(AssetsProWareHouseDTO wareHouseDTO);
+
 }

+ 13 - 5
service/src/main/java/com/dayou/service/IBusinessProductionPerformanceService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.entity.BusinessProductionPerformance;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -20,15 +21,22 @@ import java.util.List;
  */
 public interface IBusinessProductionPerformanceService extends IService<BusinessProductionPerformance> {
 
-        Page<BusinessProductionPerformance> selectPage(Page page,BusinessProductionPerformance businessProductionPerformance);
+    Page<BusinessProductionPerformance> selectPage(Page page, BusinessProductionPerformance businessProductionPerformance);
 
-        BusinessProductionPerformance detail(Long id);
+    BusinessProductionPerformance detail(Long id);
 
-        Boolean add(TaskRecordDTO<BusinessProductionPerformance> taskRecordDTO);
+    Boolean add(TaskRecordDTO<BusinessProductionPerformance> taskRecordDTO);
 
-        Boolean update(TaskRecordDTO<BusinessProductionPerformance> businessProductionPerformance);
+    Boolean update(TaskRecordDTO<BusinessProductionPerformance> businessProductionPerformance);
 
-        Boolean delete(Long id);
+    Boolean delete(Long id);
 
     BusinessProductionPerformanceVO getDetail(BusinessProductionPerformanceVO performance);
+
+    /**
+     * 根据业务类型,产品id及checkLoop获取质检信息
+     * @param businessProductionPerformance 查询条件
+     * @return BusinessProductionPerformance
+     */
+    BusinessProductionPerformance getProductionPerformance(BusinessProductionPerformance businessProductionPerformance);
 }

+ 59 - 6
service/src/main/java/com/dayou/service/impl/AssetsProductionServiceImpl.java

@@ -1,16 +1,15 @@
 package com.dayou.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.dayou.common.BaseEntity;
-import com.dayou.dto.AProListSelectDTO;
-import com.dayou.dto.AssetsProductionDetailDTO;
-import com.dayou.dto.TaskRecordDTO;
-import com.dayou.entity.AssetsProduction;
-import com.dayou.entity.BusinessProductionPerformance;
-import com.dayou.entity.WorkFlowNodeInstance;
+import com.dayou.dto.*;
+import com.dayou.entity.*;
+import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.AssetsProductionMapper;
 import com.dayou.service.IAssetsProductionService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.service.IBusinessProductionService;
+import com.dayou.service.IOrderFundService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -34,6 +33,9 @@ import java.util.ArrayList;
 import org.springframework.transaction.annotation.Transactional;
 import com.dayou.enums.BatchTaskTypeEnum;
 
+import static com.dayou.enums.MainBusinessEnum.ASSET_BUSINESS;
+import static com.dayou.enums.ProductionEnum.STATEMENT;
+
 /**
  * <p>
  * 资产产品表 服务实现类
@@ -51,6 +53,9 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
     @Autowired
     private IBusinessProductionService businessProductionService;
 
+    @Autowired
+    private IOrderFundService orderFundService;
+
     /**
      * 根据资产业务id查询资产业务产品
      *
@@ -158,4 +163,52 @@ public class AssetsProductionServiceImpl extends ServiceImpl<AssetsProductionMap
     public Integer getInatanceCount(AProListSelectDTO aProListSelectDTO) {
         return assetsProductionMapper.getInatanceCount(aProListSelectDTO);
     }
+
+    /**
+     * 产品出入库
+     * @param wareHouseDTO 出入库信息dto
+     * @return Boolean
+     */
+    @Override
+    public Boolean assetsProRepertory(AssetsProWareHouseDTO wareHouseDTO) {
+        AssetsProduction assetsProduction = this.getOne(new LambdaQueryWrapper<AssetsProduction>()
+                .select(BaseEntity::getId,AssetsProduction::getRepertoryState,
+                        AssetsProduction::getProductionNo,
+                        AssetsProduction::getBusinessId,
+                        AssetsProduction::getProductionType)
+                .eq(BaseEntity::getId,wareHouseDTO.getProductionId())
+                .eq(BaseEntity::getDeleted, Boolean.FALSE));
+        if (ObjectUtil.isNull(assetsProduction)){
+            ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR, "产品不存在,操作失败。");
+        } else if (!assetsProduction.getProductionNo().equals(wareHouseDTO.getProductionNo())) {
+            ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR, "出库的产品报告号与当前操作的产品报告号不一致,请检查。");
+        } else if (!assetsProduction.getProductionType().equals(wareHouseDTO.getProductionType())) {
+            ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR, "出库的产品类型与当前操作的产品类型不符,请检查。");
+        }
+
+        // true出库,false入库
+        if (wareHouseDTO.getRepertoryState()){ // 出库
+            if (ObjectUtil.isNull(assetsProduction.getRepertoryState())){
+                ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR, "产品还未入库,无法出库。");
+            } else if (assetsProduction.getRepertoryState()) {
+                ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR, "产品还已出库,无需出库。");
+            }
+            OrderFund orderFund = orderFundService.getOne(new LambdaQueryWrapper<OrderFund>()
+                    .select(BaseEntity::getId,OrderFund::getRealAmount)
+                    .eq(OrderFund::getBusinessId,wareHouseDTO.getBusinessId())
+                    .eq(OrderFund::getBusinessType,ASSET_BUSINESS.getCode()));
+            // 非意见书,且实收款未认领(订单实收款为NULL)
+            if (!assetsProduction.getProductionType().equals(STATEMENT.name()) && ObjectUtil.isNull(orderFund)){
+                // 判断出库审核是否通过
+                if (true){ // 不通过提示
+                    ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR, "不满足出库条件,该产品需客户经理申请产品出库通过后方可出库。");
+                }else { // 通过则出库
+
+                }
+            }else { // 意见书可以直接出库
+
+            }
+        }
+        return null;
+    }
 }

+ 12 - 0
service/src/main/java/com/dayou/service/impl/BusinessProductionPerformanceServiceImpl.java

@@ -1,5 +1,7 @@
 package com.dayou.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.dayou.common.BaseEntity;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.entity.BusinessProductionPerformance;
 import com.dayou.enums.MainBusinessEnum;
@@ -89,4 +91,14 @@ public class BusinessProductionPerformanceServiceImpl extends ServiceImpl<Busine
             }
             return businessProductionPerformance;
     }
+
+    /**
+     * 根据业务类型,产品id及checkLoop获取质检信息
+     * @param dto 查询条件
+     * @return BusinessProductionPerformance
+     */
+    @Override
+    public BusinessProductionPerformance getProductionPerformance(BusinessProductionPerformance dto) {
+        return businessProductionPerformanceMapper.getProductionPerformance(dto);
+    }
 }