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

## 单次工单新增取消委托的方法

slliver@163.com преди 8 месеца
родител
ревизия
6baabe69fe
променени са 1 файла, в които са добавени 47 реда и са изтрити 0 реда
  1. 47 0
      src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderOnceController.java

+ 47 - 0
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderOnceController.java

@@ -184,6 +184,53 @@ public class WorkOrderOnceController extends BaseController {
         return toAjax(status);
     }
 
+    /**
+     * 新版本的取消委托信息,暂时未启用 TODO
+     * @param bizEntrust
+     * @return
+     */
+    @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:edit')")
+    @PostMapping("/delEntrustNew")
+    public AjaxResult delEntrustNew(@RequestBody BizEntrust bizEntrust) {
+        // 当前月的委托信息
+        List<BizEntrust> currEntrustList = bizEntrustService.getList(bizEntrust);
+        // 当前月的委托日期
+        DateTime currentMonth = DateTime.of(bizEntrust.getWorkMonth());
+        // 下个月的委托日期
+        bizEntrust.setWorkMonth(currentMonth.offset(DateField.MONTH, 1).toSqlDate());
+        // 下个月的委托日期
+        List<BizEntrust> nextEntrustList = bizEntrustService.getList(bizEntrust);
+
+        List<Long> workOrderIds = bizEntrust.getWorkOrderIds();
+
+        // 查询选择的不同门店的当月委托工单信息
+        LambdaQueryWrapper<BizWorkOrderRecord> currWrapper = new LambdaQueryWrapper<>();
+        currWrapper.in(BizWorkOrderRecord::getWorkOrderId, workOrderIds);
+
+        // 根据查询的当月委托信息获取委托信息ID集合
+        List<Long> currEntrustIdList =  currEntrustList.stream().map(BizEntrust::getId).collect(Collectors.toList());
+        // 根据推算的下月的委托信息获取委托信息ID集合
+        List<Long> nextEntrustIdList = nextEntrustList.stream().map(BizEntrust::getId).collect(Collectors.toList());
+
+        // 删除选中的当月委托工单信息
+        bizWorkOrderRecordService.remove(currWrapper);
+
+        // 删除下个月的委托工单信息,要看业务是否生成,或者说有更多的委托工单信息 TOOD
+        /**
+        LambdaQueryWrapper<BizWorkOrderRecord> nextWrapper = new LambdaQueryWrapper<>();
+        nextWrapper.eq(BizWorkOrderRecord::getMonth, currentMonth.offset(DateField.MONTH, 1).toSqlDate());
+        nextWrapper.in(BizWorkOrderRecord::getWorkOrderId, workOrderIds);
+        bizWorkOrderRecordService.remove(nextWrapper);
+        **/
+
+        // 删除当前月份的委托信息和下个月的委托信息
+        boolean status = (currEntrustList.isEmpty()
+                || bizEntrustService.removeByIds(currEntrustIdList)) && (nextEntrustList.isEmpty() ||
+                bizEntrustService.removeByIds(nextEntrustIdList));
+        // 取消委托
+        return toAjax(status);
+    }
+
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:trans')")
     @GetMapping("/transNext")
     @Transactional(rollbackFor = Exception.class)