Преглед на файлове

2022-09-1 审批回显库存修改

zhuchangxue преди 3 години
родител
ревизия
ec05ab0959

+ 3 - 0
zd-modules/zd-chemical/src/main/java/com/zd/chemical/domain/vo/ActRestStockVo.java

@@ -26,4 +26,7 @@ public class ActRestStockVo {
 
     @ApiModelProperty(value = "返回统计的数据")
     private String restStock;
+
+    @ApiModelProperty(value = "申请人id")
+    private Long applyUserId;
 }

+ 5 - 11
zd-modules/zd-chemical/src/main/java/com/zd/chemical/service/impl/ActHxpapplyServiceImpl.java

@@ -170,13 +170,6 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
             actRestStockVo.setCabinetIds(cabinetCollect);
             List <ActRestStockManyVo> restStockByManyCabinetAndChemical = this.getRestStockByManyCabinetAndChemical(actRestStockVo);
 
-//            for(ActHxpapplyDetailVo detailVo:actHxpapplyDetailVos){
-//                for(ActRestStockManyVo manyVo:restStockByManyCabinetAndChemical){
-//                    if(detailVo.getCabinetId()==manyVo.getCabinetId() && detailVo.getChemicalId()==manyVo.getChemicalId()){
-//                        detailVo.setRemainingStorage(manyVo.getRestStock());
-//                    }
-//                }
-//            }
 
             Optional.ofNullable(actHxpapplyDetailVos)
                     .orElseGet(Collections::emptyList)
@@ -202,17 +195,18 @@ public class ActHxpapplyServiceImpl implements IActHxpapplyService
      */
     public void getRestStockClassif(ActRestStockVo actRestStockVo,ActHxpapplyDetailVo b)
     {
+        actRestStockVo.setApplyUserId(SecurityUtils.getUserId());
         List<ActRestStockVo> restStock = actHxpapplyMapper.getRestStockClassif(actRestStockVo);
         Optional.ofNullable(restStock).orElseGet(Collections::emptyList)
                 .stream()
                 .forEach(a->{
-                    if(a.getChemicalId().equals("1")){
+                    if(a.getChemicalId()==1){
                         b.setCollegeInventory(a.getRestStock());
-                    }else if(a.getChemicalId().equals("2")){
+                    }else if(a.getChemicalId()==2){
                         b.setSubInventory(a.getRestStock());
-                    }else if(a.getChemicalId().equals("3")){
+                    }else if(a.getChemicalId()==3){
                         b.setCabinetStorage(a.getRestStock());
-                    }else if(a.getChemicalId().equals("4")){
+                    }else if(a.getChemicalId()==4){
                         b.setRemainingStorage(a.getRestStock());
                     }
                 });

+ 91 - 133
zd-modules/zd-chemical/src/main/resources/mapper/chemical/ActHxpapplyMapper.xml

@@ -421,152 +421,110 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="getRestStockClassif" resultType="com.zd.chemical.domain.vo.ActRestStockVo">
-        SELECT 1 chemicalId,CONCAT((IFNULL(x1.applyNum,0)-IFNULL(x2.stockNum,0)),'g') restStock FROM (
-        SELECT hd.`chemical_id`,IFNULL(SUM(hd.`apply_num`),0) applyNum FROM act_hxpapply ah LEFT JOIN act_hxpapply_detail hd ON ah.`id` = hd.`hxpapply_id`
-        LEFT JOIN act_applytask ak ON ah.`id` = ak.`task_id`
-        LEFT JOIN lab_subject st ON ah.sub_id = st.id
-        <where>
-            ak.`approval_status`=1 AND hd.`tick_status`=1
-            <if test="deptId != null ">
-                AND st.dept_id = #{deptId}
-            </if>
-            <if test="chemicalId != null ">
-                AND hd.`chemical_id` = #{chemicalId}
-            </if>
-        </where>
-
-        GROUP BY hd.`chemical_id`
-        )x1 LEFT JOIN
-        (
-        SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
-        LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
-        LEFT JOIN lab_subject st ON s.sub_id = st.id
-        <where>
-            s.status = 1
-            <if test="deptId != null ">
-                AND st.dept_id = #{deptId}
-            </if>
-            <if test="chemicalId != null ">
-                AND cjc.`chemical_id` = #{chemicalId}
-            </if>
-        </where>
-        GROUP BY cjc.`chemical_id`
-        )x2 ON x1.chemical_id = x2.chemical_id
+        SELECT 1 chemicalId,CONCAT(IFNULL(x1.stockNum,0),'g') restStock FROM (
+            SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
+            LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
+            LEFT JOIN lab_subject st ON s.sub_id = st.id
+            <where>
+                s.status = 1
+                <if test="deptId != null ">
+                    AND st.dept_id = #{deptId}
+                </if>
+                <if test="chemicalId != null ">
+                    AND cjc.`chemical_id` = #{chemicalId}
+                </if>
+            </where>
+            GROUP BY cjc.`chemical_id`
+        )x1
 
         UNION ALL
 
-        SELECT 2 chemicalId,CONCAT((IFNULL(x1.applyNum,0)-IFNULL(x2.stockNum,0)),'g') restStock FROM (
-        SELECT hd.`chemical_id`,IFNULL(SUM(hd.`apply_num`),0) applyNum FROM act_hxpapply ah LEFT JOIN act_hxpapply_detail hd ON ah.`id` = hd.`hxpapply_id`
-        LEFT JOIN act_applytask ak ON ah.`id` = ak.`task_id`
-        LEFT JOIN lab_subject st ON ah.sub_id = st.id
-        <where>
-            ak.`approval_status`=1 AND hd.`tick_status`=1
-
-            <if test="subId != null ">
-                AND ah.sub_id = #{subId}
-            </if>
-            <if test="chemicalId != null ">
-                AND hd.`chemical_id` = #{chemicalId}
-            </if>
-        </where>
-
-        GROUP BY hd.`chemical_id`
-        )x1 LEFT JOIN
-        (
-        SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
-        LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
-        LEFT JOIN lab_subject st ON s.sub_id = st.id
-        <where>
-            s.status = 1
-            <if test="subId != null ">
-                AND s.sub_id = #{subId}
-            </if>
-            <if test="chemicalId != null ">
-                AND cjc.`chemical_id` = #{chemicalId}
-            </if>
+        SELECT 2 chemicalId,CONCAT(IFNULL(x1.stockNum,0),'g') restStock FROM (
+            SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
+            LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
+            LEFT JOIN lab_subject st ON s.sub_id = st.id
+            <where>
+                s.status = 1
+                <if test="subId != null ">
+                    AND s.sub_id = #{subId}
+                </if>
+                <if test="chemicalId != null ">
+                    AND cjc.`chemical_id` = #{chemicalId}
+                </if>
 
-        </where>
-        GROUP BY cjc.`chemical_id`
-        )x2 ON x1.chemical_id = x2.chemical_id
+            </where>
+            GROUP BY cjc.`chemical_id`
+        )x1
 
         UNION ALL
 
-        SELECT 3 chemicalId,CONCAT((IFNULL(x1.applyNum,0)-IFNULL(x2.stockNum,0)),'g') restStock FROM (
-        SELECT hd.`chemical_id`,IFNULL(SUM(hd.`apply_num`),0) applyNum FROM act_hxpapply ah LEFT JOIN act_hxpapply_detail hd ON ah.`id` = hd.`hxpapply_id`
-        LEFT JOIN act_applytask ak ON ah.`id` = ak.`task_id`
-        LEFT JOIN lab_subject st ON ah.sub_id = st.id
-        <where>
-            ak.`approval_status`=1 AND hd.`tick_status`=1
-            <if test="chemicalId != null ">
-                AND hd.`chemical_id` = #{chemicalId}
-            </if>
-            <if test="cabinetId != null ">
-                AND hd.`cabinet_id` = #{cabinetId}
-            </if>
-        </where>
-
-        GROUP BY hd.`chemical_id`
-        )x1 LEFT JOIN
-        (
-        SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
-        LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
-        LEFT JOIN lab_subject st ON s.sub_id = st.id
-        <where>
-            s.status = 1
-            <if test="chemicalId != null ">
-                AND cjc.`chemical_id` = #{chemicalId}
-            </if>
-            <if test="cabinetId != null ">
-                AND cjc.`cabinet_id` = #{cabinetId}
-            </if>
-        </where>
-        GROUP BY cjc.`chemical_id`
-        )x2 ON x1.chemical_id = x2.chemical_id
+        SELECT 3 chemicalId,CONCAT(IFNULL(x1.stockNum,0),'g') restStock FROM (
+            SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
+            LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
+            LEFT JOIN lab_subject st ON s.sub_id = st.id
+            <where>
+                s.status = 1
+                <if test="chemicalId != null ">
+                    AND cjc.`chemical_id` = #{chemicalId}
+                </if>
+                <if test="cabinetId != null ">
+                    AND cjc.`cabinet_id` = #{cabinetId}
+                </if>
+            </where>
+            GROUP BY cjc.`chemical_id`
+        )x1
 
         UNION ALL
 
-        SELECT 4 chemicalId,CONCAT((IFNULL(x1.applyNum,0)-IFNULL(x2.stockNum,0)),'g') restStock FROM (
-        SELECT hd.`chemical_id`,IFNULL(SUM(hd.`apply_num`),0) applyNum FROM act_hxpapply ah LEFT JOIN act_hxpapply_detail hd ON ah.`id` = hd.`hxpapply_id`
-        LEFT JOIN act_applytask ak ON ah.`id` = ak.`task_id`
-        LEFT JOIN lab_subject st ON ah.sub_id = st.id
-        <where>
-            ak.`approval_status`=1 AND hd.`tick_status`=1
-            <if test="deptId != null ">
-                AND st.dept_id = #{deptId}
-            </if>
-            <if test="subId != null ">
-                AND ah.sub_id = #{subId}
-            </if>
-            <if test="chemicalId != null ">
-                AND hd.`chemical_id` = #{chemicalId}
-            </if>
-            <if test="cabinetId != null ">
-                AND hd.`cabinet_id` = #{cabinetId}
-            </if>
-        </where>
+        SELECT 4 chemicalId,CONCAT((IFNULL(x1.applyNum,0)-IFNULL(x2.applyNum,0)),'g') restStock FROM (
+            SELECT hd.`chemical_id`,IFNULL(SUM(hd.`apply_num`),0) applyNum FROM act_hxpapply ah LEFT JOIN act_hxpapply_detail hd ON ah.`id` = hd.`hxpapply_id`
+            LEFT JOIN act_applytask ak ON ah.`id` = ak.`task_id`
+            LEFT JOIN lab_subject st ON ah.sub_id = st.id
+            <where>
+                ak.`approval_status`=1 AND hd.`tick_status`=1
+                <if test="deptId != null ">
+                    AND st.dept_id = #{deptId}
+                </if>
+                <if test="subId != null ">
+                    AND ah.sub_id = #{subId}
+                </if>
+                <if test="chemicalId != null ">
+                    AND hd.`chemical_id` = #{chemicalId}
+                </if>
+                <if test="cabinetId != null ">
+                    AND hd.`cabinet_id` = #{cabinetId}
+                </if>
+                <if test="applyUserId != null ">
+                    AND ah.`user_id` = #{applyUserId}
+                </if>
+            </where>
 
-        GROUP BY hd.`chemical_id`
+            GROUP BY hd.`chemical_id`
         )x1 LEFT JOIN
         (
-        SELECT cjc.`chemical_id`,SUM(s.usages-s.tare) stockNum FROM hxp_stock s
-        LEFT JOIN hxp_chemical_join_cabinet cjc ON s.`join_id` = cjc.`id`
-        LEFT JOIN lab_subject st ON s.sub_id = st.id
-        <where>
-            s.status = 1
-            <if test="deptId != null ">
-                AND st.dept_id = #{deptId}
-            </if>
-            <if test="subId != null ">
-                AND s.sub_id = #{subId}
-            </if>
-            <if test="chemicalId != null ">
-                AND cjc.`chemical_id` = #{chemicalId}
-            </if>
-            <if test="cabinetId != null ">
-                AND cjc.`cabinet_id` = #{cabinetId}
-            </if>
-        </where>
-        GROUP BY cjc.`chemical_id`
+            SELECT hd.`chemical_id`,SUM(IFNULL(cjc.`chemical_amount`,0)-IFNULL(cjc.`tare`,0)) applyNum FROM act_hxpapply ah LEFT JOIN act_hxpapply_detail hd ON ah.`id` = hd.`hxpapply_id`
+            LEFT JOIN act_applytask ak ON ah.`id` = ak.`task_id`
+            LEFT JOIN lab_subject st ON ah.sub_id = st.id
+            inner join hxp_chemical_join_cabinet cjc on hd.`cabinet_id` = cjc.`cabinet_id` and hd.`chemical_id` = cjc.`chemical_id`
+            <where>
+                ak.`approval_status`=1 AND hd.`tick_status`=1
+                <if test="deptId != null ">
+                    AND st.dept_id = #{deptId}
+                </if>
+                <if test="subId != null ">
+                    AND ah.sub_id = #{subId}
+                </if>
+                <if test="chemicalId != null ">
+                    AND hd.`chemical_id` = #{chemicalId}
+                </if>
+                <if test="cabinetId != null ">
+                    AND hd.`cabinet_id` = #{cabinetId}
+                </if>
+                <if test="applyUserId != null ">
+                    AND ah.`user_id` = #{applyUserId}
+                </if>
+            </where>
+            GROUP BY hd.`chemical_id`
         )x2 ON x1.chemical_id = x2.chemical_id
     </select>