Bläddra i källkod

质检详情修改

yzc 2 år sedan
förälder
incheckning
e02a18959a

+ 6 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/quality/QualityRecords.java

@@ -23,6 +23,9 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class QualityRecords extends BaseEntity {
 
+    /**质检记录信息id*/
+    private Long qualityRecordsInfoId;
+
 
     /**
      * 质检明细id
@@ -44,6 +47,9 @@ public class QualityRecords extends BaseEntity {
      */
     private BigDecimal disqualificationQuantity;
 
+    /**备注*/
+    private String remarks;
+
     /**
      * 逻辑删除 0未删除 1已删除
      */

+ 3 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityDetailsVo.java

@@ -31,4 +31,7 @@ public class QualityDetailsVo extends QualityDetails {
     /**已采购数量*/
     private BigDecimal purchaseQuantity;
 
+    /**备注*/
+    private String remarks;
+
 }

+ 2 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityInfoEx.java

@@ -20,6 +20,8 @@ public class QualityInfoEx extends QualityInfo {
 
     /**质检明细列表*/
     List<QualityDetailsVo> qualityDetailsList;
+    /**质检明细列表*/
+    List<QualityRecordsVo> qualityRecordsVoList;
 
     /**物流信息*/
     LogisticsInfo logisticsInfo;

+ 6 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/quality/QualityRecordsVo.java

@@ -14,4 +14,10 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class QualityRecordsVo extends QualityRecords {
 
+    /**产品编号*/
+    private String productCode;
+
+    /**产品名称*/
+    private String productName;
+
 }

+ 2 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityDetailsController.java

@@ -1,6 +1,7 @@
 package com.fjhx.controller.quality;
 
 import com.fjhx.entity.quality.QualityDetails;
+import com.fjhx.params.quality.QualityDetailsVo;
 import com.fjhx.service.quality.QualityDetailsService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +31,7 @@ public class QualityDetailsController {
      * 质检
      */
     @PostMapping("/edit")
-    public R edit(@RequestBody List<QualityDetails> qualityDetailsList) {
+    public R edit(@RequestBody List<QualityDetailsVo> qualityDetailsList) {
         qualityDetailsService.edit(qualityDetailsList);
         return R.success();
     }

+ 2 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/controller/quality/QualityInfoController.java

@@ -1,6 +1,7 @@
 package com.fjhx.controller.quality;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.BaseSelectDto;
 import com.fjhx.params.quality.*;
 import com.fjhx.service.quality.QualityInfoService;
 import org.springblade.core.tool.api.R;
@@ -45,7 +46,7 @@ public class QualityInfoController {
 
     /**质检记录明细*/
     @PostMapping("/detailsInfo")
-    public R detailsInfo(@Validated @RequestBody GetDetailsListDto dto) {
+    public R detailsInfo(@Validated @RequestBody BaseSelectDto dto) {
         QualityInfoEx result = qualityInfoService.getDetailsInfo(dto);
         return R.success(result);
     }

+ 1 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityDetailsService.java

@@ -16,7 +16,7 @@ import java.util.List;
  */
 public interface QualityDetailsService extends BaseService<QualityDetails> {
 
-    void edit(List<QualityDetails> qualityDetailsList);
+    void edit(List<QualityDetailsVo> qualityDetailsList);
 
     List<QualityDetailsVo> getQualityDetailsByApplyId(List<Long> ids);
 

+ 2 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/QualityInfoService.java

@@ -1,6 +1,7 @@
 package com.fjhx.service.quality;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.BaseSelectDto;
 import com.fjhx.base.BaseService;
 import com.fjhx.entity.quality.QualityInfo;
 import com.fjhx.params.quality.*;
@@ -21,7 +22,7 @@ public interface QualityInfoService extends BaseService<QualityInfo> {
 
     List<QualityDetailsVo> getDetailsList(GetDetailsListDto dto);
 
-    QualityInfoEx getDetailsInfo(GetDetailsListDto dto);
+    QualityInfoEx getDetailsInfo(BaseSelectDto dto);
     QualityInfoEx getDetailsInfo1(GetDetailsListDto dto);
 
 

+ 33 - 24
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityDetailsServiceImpl.java

@@ -23,7 +23,9 @@ import com.fjhx.service.quality.QualityInfoService;
 import com.fjhx.service.quality.QualityRecordsService;
 import com.fjhx.service.stock.StockService;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -58,7 +60,7 @@ public class QualityDetailsServiceImpl extends ServiceImpl<QualityDetailsMapper,
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public synchronized void edit(List<QualityDetails> qualityDetailsList) {
+    public synchronized void edit(List<QualityDetailsVo> qualityDetailsList) {
         List<Long> idList = qualityDetailsList.stream().map(BaseIdEntity::getId).collect(Collectors.toList());
         List<QualityDetails> oldQualityDetailsList = listByIds(idList);
         Map<Long, QualityDetails> oldMap = oldQualityDetailsList.stream().collect(Collectors.toMap(BaseIdEntity::getId, item -> item));
@@ -81,26 +83,31 @@ public class QualityDetailsServiceImpl extends ServiceImpl<QualityDetailsMapper,
         boolean resultTypeFlag = true;
 
         List<QualityRecords> qualityRecordsList = new ArrayList<>();
-        List<AbnormalInfo> abnormalInfoList = new ArrayList<>();
+//        List<AbnormalInfo> abnormalInfoList = new ArrayList<>();
+        //每次质检产生一个质检记录id
+        Long qualityRecordsInfoId = IdWorker.getId();
 
-        for (QualityDetails qualityDetails : qualityDetailsList) {
-            //如果存在不合格产品就创建质检记录和异常记录
+        for (QualityDetailsVo qualityDetails : qualityDetailsList) {
+            //创建质检记录明细
             QualityRecords qualityRecords = new QualityRecords();
             qualityRecords.setId(IdWorker.getId());
+            //赋值质检记录信息id
+            qualityRecords.setQualityRecordsInfoId(qualityRecordsInfoId);
             qualityRecords.setQualityDetailsId(qualityDetails.getId());
             qualityRecords.setTotalQuantity(qualityDetails.getTotalQuantity());
             qualityRecords.setQualifiedQuantity(qualityDetails.getQualifiedQuantity());
             qualityRecords.setDisqualificationQuantity(qualityDetails.getDisqualificationQuantity());
+            qualityRecords.setRemarks(qualityDetails.getRemarks());
             qualityRecordsList.add(qualityRecords);
-            if(qualityDetails.getDisqualificationQuantity().compareTo(BigDecimal.ZERO)>0) {
-                AbnormalInfo abnormalInfo = new AbnormalInfo();
-                abnormalInfo.setId(IdWorker.getId());
-                abnormalInfo.setType(10);
-                abnormalInfo.setLinkId(qualityRecords.getId());
-                abnormalInfo.setTitle("质检存在不合格");
-                abnormalInfo.setStatus(0);
-                abnormalInfoList.add(abnormalInfo);
-            }
+//            if(qualityDetails.getDisqualificationQuantity().compareTo(BigDecimal.ZERO)>0) {
+//                AbnormalInfo abnormalInfo = new AbnormalInfo();
+//                abnormalInfo.setId(IdWorker.getId());
+//                abnormalInfo.setType(10);
+//                abnormalInfo.setLinkId(qualityRecords.getId());
+//                abnormalInfo.setTitle("质检存在不合格");
+//                abnormalInfo.setStatus(0);
+//                abnormalInfoList.add(abnormalInfo);
+//            }
 
             QualityDetails oldQualityDetails = oldMap.get(qualityDetails.getId());
             Long productInfoId = oldQualityDetails.getProductInfoId();
@@ -152,15 +159,16 @@ public class QualityDetailsServiceImpl extends ServiceImpl<QualityDetailsMapper,
             }
         }
 
-        //质检存在不合格 记录异常数据
-//        if (disqualificationQuantityMap.size() > 0) {
-//            AbnormalInfo abnormalInfo = new AbnormalInfo();
-//            abnormalInfo.setId(IdWorker.getId());
-//            abnormalInfo.setType(10);
-//            abnormalInfo.setLinkId(qualityInfoId);
-//            abnormalInfo.setTitle("质检存在不合格");
-//            abnormalInfoService.save(abnormalInfo);
-//        }
+        //质检存在不合格 产生一条异常记录
+        if (disqualificationQuantityMap.size() > 0) {
+            AbnormalInfo abnormalInfo = new AbnormalInfo();
+            abnormalInfo.setId(IdWorker.getId());
+            abnormalInfo.setType(10);
+            //异常记录关联质检记录id
+            abnormalInfo.setLinkId(qualityRecordsInfoId);
+            abnormalInfo.setTitle("质检存在不合格");
+            abnormalInfoService.save(abnormalInfo);
+        }
 
         // 修改质检未完成状态
         QualityInfo qualityInfo = new QualityInfo();
@@ -207,9 +215,10 @@ public class QualityDetailsServiceImpl extends ServiceImpl<QualityDetailsMapper,
         }
         stockService.updateBatchById(stockList);
 
-        updateBatchById(qualityDetailsList);
+        List<QualityDetails> copy = BeanUtil.copy(qualityDetailsList, QualityDetails.class);
+        updateBatchById(copy);
 
-        abnormalInfoService.saveBatch(abnormalInfoList);
+//        abnormalInfoService.saveBatch(abnormalInfoList);
         qualityRecordsService.saveBatch(qualityRecordsList);
     }
 

+ 35 - 33
hx-service/victoriatourist/src/main/java/com/fjhx/service/quality/impl/QualityInfoServiceImpl.java

@@ -3,6 +3,7 @@ package com.fjhx.service.quality.impl;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.BaseSelectDto;
 import com.fjhx.entity.logistics.LogisticsCompany;
 import com.fjhx.entity.logistics.LogisticsInfo;
 import com.fjhx.entity.product.ProductInfo;
@@ -113,43 +114,44 @@ public class QualityInfoServiceImpl extends ServiceImpl<QualityInfoMapper, Quali
         return result;
     }
 
-    //根据质检记录id获取质检信息
+    //根据质检记录信息id获取质检信息
     @Override
-    public QualityInfoEx getDetailsInfo(GetDetailsListDto dto) {
-        QualityRecords qualityRecords = qualityRecordsService.getById(dto.getQualityInfoId());
-        QualityDetails qualityDetails = qualityDetailsService.getById(qualityRecords.getQualityDetailsId());
-        QualityInfo qualityInfo = qualityInfoService.getById(qualityDetails.getQualityInfoId());
-
-//        QualityInfo qualityInfo = qualityInfoService.getById(dto.getQualityInfoId());
-        QualityInfoEx qualityInfoEx = BeanUtil.copyProperties(qualityInfo, QualityInfoEx.class);
-
-//        List<QualityDetails> list = qualityDetailsService.list(q -> q.eq(QualityDetails::getQualityInfoId, dto.getQualityInfoId()));
-
-//        List<QualityDetailsVo> result = BeanUtil.copyToList(list, QualityDetailsVo.class);
-
-//        productInfoService.attributeAssign(result, QualityDetails::getProductInfoId, (item, product) -> {
-//            item.setProductCode(product.getCode());
-//            item.setProductName(product.getName());
-//        });
-
-        ProductInfo productInfo = productInfoService.getById(qualityDetails.getProductInfoId());
-
-        List<QualityDetailsVo> qualityDetailsVoList = new ArrayList<>();
-        QualityDetailsVo qualityDetailsVo = new QualityDetailsVo();
-        qualityDetailsVo.setProductCode(productInfo.getCode());
-        qualityDetailsVo.setProductName(productInfo.getName());
-        qualityDetailsVo.setTotalQuantity(qualityRecords.getTotalQuantity());
-        qualityDetailsVo.setQualifiedQuantity(qualityRecords.getQualifiedQuantity());
-        qualityDetailsVo.setDisqualificationQuantity(qualityRecords.getDisqualificationQuantity());
-        qualityDetailsVoList.add(qualityDetailsVo);
-
-        qualityInfoEx.setQualityDetailsList(qualityDetailsVoList);
-        LogisticsInfo logisticsInfo = logisticsInfoService.getById(qualityInfoEx.getLogisticsInfoId());
+    public QualityInfoEx getDetailsInfo(BaseSelectDto dto) {
+        //获取质检记录明细
+        List<QualityRecords> list = qualityRecordsService.list(q -> q.eq(QualityRecords::getQualityRecordsInfoId, dto.getId()));
+        //根据质检明细id获取产品信息并分组
+        List<Long> qualityDetailsIds = list.stream().map(QualityRecords::getQualityDetailsId).collect(Collectors.toList());
+        List<QualityDetails> qualityDetailsList = qualityDetailsService.listByIds(qualityDetailsIds);
+        List<QualityDetailsVo> qualityDetailsVoList = BeanUtil.copyToList(qualityDetailsList, QualityDetailsVo.class);
+        productInfoService.attributeAssign(qualityDetailsVoList, QualityDetailsVo::getProductInfoId, (item, product) -> {
+            item.setProductCode(product.getCode());
+            item.setProductName(product.getName());
+        });
+        Map<Long, QualityDetailsVo> qualityDetailsVoMap = qualityDetailsVoList.stream().collect(Collectors.groupingBy(QualityDetailsVo::getId,
+                Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+        //给记录赋值产品信息
+        List<QualityRecordsVo> qualityRecordsVos = BeanUtil.copyToList(list, QualityRecordsVo.class);
+        for (QualityRecordsVo qualityRecords :qualityRecordsVos){
+            QualityDetailsVo qualityDetailsVo = qualityDetailsVoMap.get(qualityRecords.getQualityDetailsId());
+            if(ObjectUtil.isNotEmpty(qualityDetailsVo)){
+                qualityRecords.setProductCode(qualityDetailsVo.getProductCode());
+                qualityRecords.setProductName(qualityDetailsVo.getProductName());
+            }
+        }
+        //输出
+        QualityInfoEx qualityInfoEx = new QualityInfoEx();
+        //赋值质检记录信息
+        qualityInfoEx.setQualityRecordsVoList(qualityRecordsVos);
+        //获取物流信息
+        Long qualityInfoId = qualityDetailsList.get(0).getQualityInfoId();
+        QualityInfo byId = qualityInfoService.getById(qualityInfoId);
+        LogisticsInfo logisticsInfo = logisticsInfoService.getById(byId.getLogisticsInfoId());
         LogisticsCompany logisticsCompany = logisticsCompanyService.getOne(q -> q.eq(LogisticsCompany::getCode, logisticsInfo.getLogisticsCompanyCode()));
         logisticsInfo.setLogisticsCompanyName(logisticsCompany.getName());
         qualityInfoEx.setLogisticsInfo(logisticsInfo);
+        //获取采购信息
         Purchase purchase = purchaseService.getById(logisticsInfo.getBusinessId());
-        if(ObjectUtil.isNotEmpty(purchase)){
+        if (ObjectUtil.isNotEmpty(purchase)) {
             Supplier supplier = supplierService.getById(purchase.getSupplierId());
             purchase.setSupplierName(supplier.getName());
             qualityInfoEx.setPurchase(purchase);
@@ -178,7 +180,7 @@ public class QualityInfoServiceImpl extends ServiceImpl<QualityInfoMapper, Quali
         logisticsInfo.setLogisticsCompanyName(logisticsCompany.getName());
         qualityInfoEx.setLogisticsInfo(logisticsInfo);
         Purchase purchase = purchaseService.getById(logisticsInfo.getBusinessId());
-        if(ObjectUtil.isNotEmpty(purchase)){
+        if (ObjectUtil.isNotEmpty(purchase)) {
             Supplier supplier = supplierService.getById(purchase.getSupplierId());
             purchase.setSupplierName(supplier.getName());
             qualityInfoEx.setPurchase(purchase);