Преглед изворни кода

新增 批量删除仓库和关联绑定功能

zhaiyifei пре 11 месеци
родитељ
комит
703f76ee45

+ 16 - 11
src/main/java/com/yunfeiyun/agmp/fms/controller/WmsWarehouseController.java

@@ -16,6 +16,7 @@ import com.yunfeiyun.agmp.fms.service.IWmsWarehouseService;
 import com.yunfeiyun.agmp.fms.util.DataAuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -71,6 +72,7 @@ public class WmsWarehouseController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('wms:warehouse:add')")
     @Log(title = "仓库", businessType = BusinessType.INSERT)
+    @Transactional(rollbackFor = Exception.class)
     @PostMapping("/add")
     public AjaxResult add(@Valid @RequestBody WmsWarehouse wmsWarehouse) {
         return toAjax(wmsWarehouseService.insertWmsWarehouse(wmsWarehouse));
@@ -81,11 +83,25 @@ public class WmsWarehouseController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('wms:warehouse:edit')")
     @Log(title = "仓库", businessType = BusinessType.UPDATE)
+    @Transactional(rollbackFor = Exception.class)
     @PutMapping("/edit")
     public AjaxResult edit(@Valid @RequestBody WmsWarehouse wmsWarehouse) {
         return toAjax(wmsWarehouseService.updateWmsWarehouse(wmsWarehouse));
     }
 
+
+    /**
+     * 删除仓库
+     */
+    @PreAuthorize("@ss.hasPermi('wms:warehouse:delete')")
+    @Log(title = "仓库", businessType = BusinessType.DELETE)
+    @Transactional(rollbackFor = Exception.class)
+    @DeleteMapping("/delete")
+    public AjaxResult delete(@RequestParam("warehouseIds") String[] warehouseIds) {
+        return toAjax(wmsWarehouseService.deleteWmsWarehouseByWarehouseIds(warehouseIds, SecurityUtils.getTid()));
+    }
+
+
     @PreAuthorize("@ss.hasPermi('wms:warehouse:select:list')")
     @GetMapping("/select/list")
     public TableDataInfo selectList(WmsWarehouse wmsWarehouse) {
@@ -142,15 +158,4 @@ public class WmsWarehouseController extends BaseController
         return success(wmsWarehouse);
     }
 
-
-
-    /**
-     * 删除仓库
-     */
-    @PreAuthorize("@ss.hasPermi('wms:warehouse:delete')")
-    @Log(title = "仓库", businessType = BusinessType.DELETE)
-    @DeleteMapping("/delete")
-    public AjaxResult delete(@RequestParam("warehouseIds") String[] warehouseIds) {
-        return toAjax(wmsWarehouseService.deleteWmsWarehouseByWarehouseIds(warehouseIds, SecurityUtils.getTid()));
-    }
 }

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/fms/mapper/FmsLandHouseMapper.java

@@ -72,4 +72,8 @@ public interface FmsLandHouseMapper
      */
     public int insertBatchFmsLandHouse(List<FmsLandHouse> landHouseList);
 
+    public List<FmsLandHouse> selectFmsLandHouseByWarehouseId(@Param("array") String[] warehouseIds, @Param("tid") String tid);
+
+    public int deleteBatchFmsLandHouseByWarehouseIds(String[] warehouseIds, String tid);
+
 }

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/fms/service/IFmsLandHouseService.java

@@ -70,4 +70,8 @@ public interface IFmsLandHouseService
      * @return 结果
      */
     public int insertBatchFmsLandHouse(List<FmsLandHouse> landHouseList);
+
+    public List<FmsLandHouse> selectFmsLandHouseByWarehouseId(String[] warehouseIds, String tid);
+
+    public int deleteBatchFmsLandHouseByWarehouseIds(String[] warehouseIds, String tid);
 }

+ 10 - 0
src/main/java/com/yunfeiyun/agmp/fms/service/impl/FmsLandHouseServiceImpl.java

@@ -101,4 +101,14 @@ public class FmsLandHouseServiceImpl implements IFmsLandHouseService
     public int insertBatchFmsLandHouse(List<FmsLandHouse> landHouseList) {
         return fmsLandHouseMapper.insertBatchFmsLandHouse(landHouseList);
     }
+
+    @Override
+    public List<FmsLandHouse> selectFmsLandHouseByWarehouseId(String[] warehouseIds, String tid) {
+        return fmsLandHouseMapper.selectFmsLandHouseByWarehouseId(warehouseIds,tid);
+    }
+
+    @Override
+    public int deleteBatchFmsLandHouseByWarehouseIds(String[] warehouseIds, String tid) {
+        return fmsLandHouseMapper.deleteBatchFmsLandHouseByWarehouseIds(warehouseIds,tid);
+    }
 }

+ 10 - 1
src/main/java/com/yunfeiyun/agmp/fms/service/impl/WmsWarehouseServiceImpl.java

@@ -139,7 +139,16 @@ public class WmsWarehouseServiceImpl implements IWmsWarehouseService
      */
     @Override
     public int deleteWmsWarehouseByWarehouseIds(String[] warehouseIds, String tid) {
-        return wmsWarehouseMapper.deleteWmsWarehouseByWarehouseIds(warehouseIds,tid);
+        //更新关联关系
+        List<FmsLandHouse> fmsLandHouseList = fmsLandHouseService.selectFmsLandHouseByWarehouseId(warehouseIds, tid);
+        if(fmsLandHouseList == null || fmsLandHouseList.isEmpty()){
+            throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "仓库已绑定基地,请先解绑后再删除");
+        }
+        int status = wmsWarehouseMapper.deleteWmsWarehouseByWarehouseIds(warehouseIds,tid);
+        if(status != 0){
+            fmsLandHouseService.deleteBatchFmsLandHouseByWarehouseIds(warehouseIds, tid);
+        }
+        return status;
     }
 
     /**

+ 16 - 1
src/main/resources/mapper/FmsLandHouseMapper.xml

@@ -24,7 +24,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             and tid = #{tid}
         </if>
     </select>
-        
+
+    <select id="selectFmsLandHouseByWarehouseId" parameterType="String" resultType="FmsLandHouse">
+        <include refid="selectFmsLandHouseVo"/>
+        where tid = #{tid} and warehouseId in
+        <foreach item="warehouseId" collection="array" open="(" separator="," close=")">
+            #{warehouseId}
+        </foreach>
+    </select>
+
     <insert id="insertFmsLandHouse" parameterType="FmsLandHouse">
         insert into FmsLandHouse
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -78,4 +86,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <delete id="deleteFmsLandHouseByWarehouseId" parameterType="String">
         delete from FmsLandHouse where warehouseId = #{warehouseId} and tid = #{tid}
     </delete>
+
+    <delete id="deleteBatchFmsLandHouseByWarehouseIds">
+        delete from FmsLandHouse where tid = #{tid} and warehouseId in
+        <foreach item="warehouseId" collection="array" open="(" separator="," close=")">
+            #{warehouseId}
+        </foreach>
+    </delete>
 </mapper>

+ 1 - 2
src/main/resources/mapper/WmsWarehouseMapper.xml

@@ -127,10 +127,9 @@
     </delete>
 
     <delete id="deleteWmsWarehouseByWarehouseIds" parameterType="String">
-        delete from WmsWarehouse where warehouseId in
+        delete from WmsWarehouse where tid = #{tid} and warehouseId in
         <foreach item="warehouseId" collection="array" open="(" separator="," close=")">
             #{warehouseId}
         </foreach>
-        <if test="tid != null and tid != '-1'">and tid = #{tid}</if>
     </delete>
 </mapper>