home 2 лет назад
Родитель
Сommit
c8dc13cefc

+ 1 - 1
src/main/java/com/example/storageex/mapper/IndexMapper.java

@@ -13,7 +13,7 @@ public interface IndexMapper extends BaseMapper<Object> {
 
     List<Map<String, Object>> selectDetails(Map<String, Object> condition);
 
-    List<Map<String, Object>> selectAllMaterialList(@Param("ew") QueryWrapper<Object> queryWrapper);
+    List<Map<String, Object>> selectAllMaterialList(@Param("ew") QueryWrapper<Object> queryWrapper, @Param("jobNo") String jobNo);
 
     List<Map<String, Object>> selectInk();
 

+ 16 - 10
src/main/java/com/example/storageex/mapper/xml/Index.xml

@@ -37,16 +37,22 @@
         GROUP BY FromBillNo
     </select>
     <select id="selectAllMaterialList" resultType="java.util.Map">
-        SELECT m.`Name`       AS materialName,
-               m.`Code`       AS materialCode,
-               s.Quantity     as stockQty,
-               m.Width        AS width,
-               m.CategoryCode AS categoryCode,
-               su.Quantity    AS userStockQty
-        FROM material m
-                 LEFT JOIN stock s ON m.`Code` = s.MaterialCode
-                 LEFT JOIN stockuser su ON m.`Code` = su.MaterialCode
-                 LEFT JOIN u_user uu ON uu.`ID` = su.`UserId`
+        SELECT s.MaterialCode         as materialCode,
+               s.Quantity             AS stockQty,
+               m.`Name`               as materialName,
+               m.Width                as width,
+               ifnull(ss.Quantity, 0) as userStockQty,
+               m.CategoryCode         as categoryCode
+        FROM stock s
+                 LEFT JOIN material m ON s.MaterialCode = m.`Code`
+                 LEFT JOIN (
+            SELECT su.MaterialCode,
+                   su.Quantity,
+                   su.UserId
+            FROM stockuser su
+                     LEFT JOIN u_user uu ON su.UserId = uu.ID
+            WHERE uu.JobNo = #{jobNo}
+        ) ss ON ss.MaterialCode = s.MaterialCode
             ${ew.customSqlSegment}
     </select>
 

+ 2 - 5
src/main/java/com/example/storageex/service/impl/IndexServiceImpl.java

@@ -115,12 +115,9 @@ public class IndexServiceImpl extends ServiceImpl<IndexMapper, Object> implement
 
         if (v3DataList.size() > 0) {
             query.gt("s.Quantity", 0);
-            query.and(q -> v3DataList.stream().map(item -> item.get("name").toString()).collect(Collectors.toList()).forEach(item ->
-                    q.or().likeRight("m.`Name`", item + "-")
-            ));
-            query.and(q -> q.eq("uu.JobNo", jobNo).or().isNull("uu.JobNo"));
+            query.and(q -> v3DataList.forEach(item -> q.or().likeRight("m.`Name`", item.get("name").toString() + "-")));
 
-            allMaterialList = baseMapper.selectAllMaterialList(query);
+            allMaterialList = baseMapper.selectAllMaterialList(query, jobNo);
             for (Map<String, Object> material : allMaterialList) {
                 for (Map<String, Object> stringObjectMap : v3DataList) {
                     if (material.get("materialName").toString().startsWith(stringObjectMap.get("name").toString())) {