Browse Source

问题处理

yzc 1 year ago
parent
commit
df97a0b226

+ 5 - 3
hx-item/src/main/java/com/fjhx/item/controller/product/ProductBomInfoController.java

@@ -12,6 +12,7 @@ import com.fjhx.item.service.product.ProductBomDetailService;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -50,9 +51,10 @@ public class ProductBomInfoController {
         Assert.notEmpty(productInfo, "查询不到产品信息");
 
         //赋值物料信息
-        List<ProductBomDetail> list = productBomDetailService.list(q -> q
-                .eq(ProductBomDetail::getProductId, dto.getId())
-                .orderByAsc(ProductBomDetail::getType)
+        List<ProductBomDetailVo> list = productBomDetailService.getList(IWrapper.getWrapper()
+                .eq("pbd", ProductBomDetail::getProductId, dto.getId())
+                .orderByAsc("FIELD( pbd.type, 1, 3, 2 )")
+                .orderByAsc("pbd.id")
         );
         List<ProductBomDetailVo> productBomDetailVos = BeanUtil.copyToList(list, ProductBomDetailVo.class);
         productInfoService.attributeAssign(productBomDetailVos, ProductBomDetail::getMaterialId, (item, material) -> {

+ 2 - 0
hx-sale/src/main/java/com/fjhx/sale/mapper/contract/ContractProductBomMapper.java

@@ -23,4 +23,6 @@ public interface ContractProductBomMapper extends BaseMapper<ContractProductBom>
 
     List<ContractProductBomVo> getContractProductBomQuantitySum(@Param("ew") IWrapper<Object> wrapper);
 
+    List<ContractProductBomVo> getList(@Param("ew") IWrapper<Object> wrapper);
+
 }

+ 2 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/ContractProductBomService.java

@@ -21,5 +21,7 @@ public interface ContractProductBomService extends BaseService<ContractProductBo
 
     List<ContractProductBomVo> getList(ContractProductBomDto dto);
 
+    List<ContractProductBomVo> getList(IWrapper wrapper);
+
     List<ContractProductBomVo> getContractProductBomQuantitySum(IWrapper<Object> wrapper);
 }

+ 5 - 0
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractProductBomServiceImpl.java

@@ -44,6 +44,11 @@ public class ContractProductBomServiceImpl extends ServiceImpl<ContractProductBo
     }
 
     @Override
+    public List<ContractProductBomVo> getList(IWrapper wrapper) {
+       return baseMapper.getList(wrapper);
+    }
+
+        @Override
     public List<ContractProductBomVo> getContractProductBomQuantitySum(IWrapper<Object> wrapper) {
         List<ContractProductBomVo> contractProductBomQuantitySum = baseMapper.getContractProductBomQuantitySum(wrapper);
         return contractProductBomQuantitySum;

+ 6 - 2
hx-sale/src/main/java/com/fjhx/sale/service/contract/impl/ContractServiceImpl.java

@@ -1271,8 +1271,12 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract>
         //赋值产品BOM
         Map<Long, List<ContractProductBomVo>> cpbMap = new HashMap<>();
         if (ObjectUtil.isNotEmpty(contractProductIds)) {
-            List<ContractProductBom> bomList = contractProductBomService.list(q -> q.in(ContractProductBom::getContractProductId, contractProductIds));
-            List<ContractProductBomVo> contractProductBomVos = BeanUtil.copyToList(bomList, ContractProductBomVo.class);
+            List<ContractProductBomVo> contractProductBomVos = contractProductBomService.getList(IWrapper.getWrapper()
+                    .in("cpb", ContractProductBom::getContractProductId, contractProductIds)
+                    .orderByAsc("cpb", ContractProductBom::getContractProductId)
+                    .orderByAsc("FIELD( cpb.type, 1, 3, 2 )")
+                    .orderByAsc("cpb.id")
+            );
             //赋值物料信息
             productInfoService.attributeAssign(contractProductBomVos, ContractProductBom::getMaterialId, (item, productInfo) -> {
                 item.setProductCode(productInfo.getCustomCode());

+ 10 - 0
hx-sale/src/main/resources/mapper/contract/ContractProductBomMapper.xml

@@ -15,4 +15,14 @@
         GROUP BY cpb.contract_id,
         cpb.material_id
     </select>
+    <select id="getList" resultType="com.fjhx.sale.entity.contract.vo.ContractProductBomVo">
+        SELECT
+            cpb.*,
+            pp.`name` AS productName,
+            pp.`code` AS productCode
+        FROM
+            contract_product_bom cpb
+                LEFT JOIN production_processes pp ON cpb.material_id = pp.id
+            ${ew.customSqlSegment}
+    </select>
 </mapper>