Browse Source

no message

ly 1 năm trước cách đây
mục cha
commit
4aa4335723

+ 227 - 26
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderCurrentController.java

@@ -14,6 +14,8 @@ import cn.ezhizao.project.business.entrust.domain.BizEntrust;
 import cn.ezhizao.project.business.entrust.service.IBizEntrustService;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderExport;
+import cn.ezhizao.project.business.workOrder.domain.vo.Condition;
+import cn.ezhizao.project.business.workOrder.domain.vo.EntrustRes;
 import cn.ezhizao.project.business.workOrder.domain.vo.EntrustVo;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
 import cn.ezhizao.project.system.domain.SysCurrentMonth;
@@ -32,6 +34,8 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.sql.Date;
+import java.time.LocalDate;
+import java.time.Month;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
@@ -56,18 +60,24 @@ public class WorkOrderCurrentController extends BaseController {
     @Resource
     IBizCompanyService bizCompanyService;
 
+
     /**
      * 查询工单信息列表
      */
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:list')")
     @GetMapping("/list")
     public TableDataInfo list(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
+
+        List<SysCurrentMonth> months = sysCurrentMonthService.list(new LambdaQueryWrapper<SysCurrentMonth>()
+                .eq(SysCurrentMonth::getTenantId, getTenantId())
+                .eq(SysCurrentMonth::getType, 0));
+        Date date = DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate();
+        bizWorkOrder.setWorkDate(date);
         setTenantId(bizWorkOrder);
         startPage();
         startOrderBy();
-        bizWorkOrder.setIsStop(0);
+//        bizWorkOrder.setIsStop(0);
         List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
-        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 0).list();
         if (months.isEmpty()) {
             return getDataTable(new ArrayList<>());
         } else {
@@ -83,6 +93,25 @@ public class WorkOrderCurrentController extends BaseController {
         }
     }
 
+    @GetMapping("/history/list")
+    public TableDataInfo historyList(Condition condition) throws NoSuchFieldException, IllegalAccessException {
+        Long tenantId = getTenantId();
+        Tenant tenant = tenantService.getById(tenantId);
+        //获取当前月 查询当前月之前所有数据
+        if (tenant.getVersionId() == 1 || tenant.getVersionId() == 2) {
+            condition.setFromTenantId(tenantId);
+        } else if (tenant.getVersionId() == 4) {
+            condition.setToTenantId(tenantId);
+        }
+        startPage();
+
+        List<EntrustRes> list = bizWorkOrderService.getHistoryList(condition);
+
+
+        return getDataTable(list);
+    }
+
+
     /**
      * 查询工单信息列表
      */
@@ -91,22 +120,23 @@ public class WorkOrderCurrentController extends BaseController {
     public TableDataInfo listForFactory(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
         bizWorkOrder.setToTenantId(getTenantId());
         startPage();
+        bizWorkOrder.setWorkDate(bizWorkOrder.getCurrentMonth());
 //        bizWorkOrder.setIsStop(0);
         List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
-        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 0).list();
-        if (months.isEmpty()) {
-            return getDataTable(new ArrayList<>());
-        } else {
-            BizEntrust bizEntrust = new BizEntrust();
-            bizEntrust.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
-            bizEntrust.setWorkMonth(DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate());
-            List<BizEntrust> entrusts = bizEntrustService.getList(bizEntrust);
+//        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 0).list();
+//        if (months.isEmpty()) {
+//            return getDataTable(new ArrayList<>());
+//        } else {
+        BizEntrust bizEntrust = new BizEntrust();
+        bizEntrust.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
+        bizEntrust.setWorkMonth(DateTime.of(bizWorkOrder.getCurrentMonth()).toSqlDate());
+        List<BizEntrust> entrusts = bizEntrustService.getList(bizEntrust);
 //            bizEntrustService.query().in("work_order_id", list.stream().map(BizWorkOrder::getId).collect(Collectors.toList())).eq("work_month", months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01").list();
-            list.forEach(l -> {
-                l.setEntrust(entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null));
-            });
-            return getDataTable(list);
-        }
+        list.forEach(l -> {
+            l.setEntrust(entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null));
+        });
+        return getDataTable(list);
+//        }
     }
 
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:list')")
@@ -169,7 +199,7 @@ public class WorkOrderCurrentController extends BaseController {
         AtomicInteger failureNum = new AtomicInteger();
         StringBuilder successMsg = new StringBuilder();
         StringBuilder failureMsg = new StringBuilder();
-        try{
+        try {
 
             Long tenantId = getTenantId();
             //获取当前月
@@ -217,7 +247,7 @@ public class WorkOrderCurrentController extends BaseController {
                             .eq(BizCompany::getName, f.getCompanyName().trim()));
                     if (company == null) {
                         failureNum.getAndIncrement();
-                        failureMsg.append("<br/>" +"序号为"+f.getNo() +"," + "客户 " +f.getCompanyName() + "不存在");
+                        failureMsg.append("<br/>" + "序号为" + f.getNo() + "," + "客户 " + f.getCompanyName() + "不存在");
                     } else {
                         f.setCompanyId(company.getId());
                     }
@@ -236,18 +266,18 @@ public class WorkOrderCurrentController extends BaseController {
                         .eq(BizWorkOrder::getType, 1)
                         .eq(BizWorkOrder::getTaskTypeId, e.getTaskId())
                         .eq(BizWorkOrder::getCompanyId, e.getCompanyId()));
-                if (bizWorkOrders== null ||bizWorkOrders.size() == 0) {
+                if (bizWorkOrders == null || bizWorkOrders.size() == 0) {
                     failureNum.getAndIncrement();
                     String s = "";
-                    if(e.getTaskId() == 1){
+                    if (e.getTaskId() == 1) {
                         s = "代理记账服务";
-                    } else if (e.getTaskId()==2){
+                    } else if (e.getTaskId() == 2) {
                         s = "社保代缴服务";
-                    }else {
+                    } else {
                         s = "公积金代缴服务";
                     }
-                    failureMsg.append("<br/>" +"序号为"+e.getNo() +"," + "客户 " + e.getCompanyName() + " 没有"+s);
-                }else {
+                    failureMsg.append("<br/>" + "序号为" + e.getNo() + "," + "客户 " + e.getCompanyName() + " 没有" + s);
+                } else {
                     e.setWorkOrderIds(bizWorkOrders.stream().map(m -> m.getId()).collect(Collectors.toList()));
                 }
             }
@@ -265,7 +295,123 @@ public class WorkOrderCurrentController extends BaseController {
                 bizEntrust.setWorkOrderIds(workOrderIds);
                 this.addEntrust(bizEntrust);
             }
-        }catch (Exception e){
+        } catch (Exception e) {
+
+        }
+
+
+        if (Integer.valueOf(failureNum.toString()) > 0) {
+            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+            throw new ServiceException(failureMsg.toString());
+        } else {
+            successMsg.insert(0, "恭喜您,数据已全部导入成功");
+        }
+        return success(successMsg);
+    }
+
+    @PostMapping("/importEntrustNext")
+    @Transactional
+    public AjaxResult importEntrustNext(MultipartFile file) throws Exception {
+        AtomicInteger failureNum = new AtomicInteger();
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        try {
+
+            Long tenantId = getTenantId();
+            //获取当前月
+            SysCurrentMonth sysCurrentMonth = sysCurrentMonthService.getOne(new QueryWrapper<SysCurrentMonth>().eq("tenant_id", tenantId).eq("type", 1));
+            String day = "-01";
+            String workMonth = sysCurrentMonth.getYear() + "-" + sysCurrentMonth.getMonth() + day;
+            ExcelUtil<EntrustVo> util = new ExcelUtil<>(EntrustVo.class);
+            List<EntrustVo> entrustVos = util.importExcel(file.getInputStream());
+            List<EntrustVo> newEntrustList = new ArrayList<>();
+            entrustVos.forEach(f -> {
+                ArrayList<Integer> objects = new ArrayList<>();
+                if (f.getTaskName1().equals("是")) {
+                    objects.add(1);
+                }
+                if (f.getTaskName2().equals("是")) {
+                    objects.add(2);
+                }
+                if (f.getTaskName3().equals("是")) {
+                    objects.add(3);
+                }
+                f.setCount(objects);
+            });
+
+            for (EntrustVo entrustVo : entrustVos) {
+                for (Integer integer : entrustVo.getCount()) {
+                    EntrustVo entrustVo1 = new EntrustVo();
+                    if (integer == 1) {
+                        entrustVo1.setTaskId(1);
+                    } else if (integer == 2) {
+                        entrustVo1.setTaskId(2);
+                    } else {
+                        entrustVo1.setTaskId(3);
+                    }
+                    entrustVo1.setNo(entrustVo.getNo());
+                    entrustVo1.setToEntrustName(entrustVo.getToEntrustName());
+                    entrustVo1.setCompanyName(entrustVo.getCompanyName());
+                    newEntrustList.add(entrustVo1);
+                }
+            }
+
+            newEntrustList.forEach(f -> {
+                try {
+                    BizCompany company = bizCompanyService.getOne(new LambdaQueryWrapper<BizCompany>()
+                            .eq(BizCompany::getTenantId, tenantId)
+                            .eq(BizCompany::getName, f.getCompanyName().trim()));
+                    if (company == null) {
+                        failureNum.getAndIncrement();
+                        failureMsg.append("<br/>" + "序号为" + f.getNo() + "," + "客户 " + f.getCompanyName() + "不存在");
+                    } else {
+                        f.setCompanyId(company.getId());
+                    }
+
+                } catch (Exception e) {
+                    System.out.println(e);
+                }
+
+            });
+            //获取工单
+            for (EntrustVo e : newEntrustList) {
+                List<BizWorkOrder> bizWorkOrders = bizWorkOrderService.list(new LambdaQueryWrapper<BizWorkOrder>()
+                        .eq(BizWorkOrder::getTenantId, tenantId)
+                        .eq(BizWorkOrder::getIsStop, 0)
+                        .eq(BizWorkOrder::getDeleted, 0)
+                        .eq(BizWorkOrder::getType, 1)
+                        .eq(BizWorkOrder::getTaskTypeId, e.getTaskId())
+                        .eq(BizWorkOrder::getCompanyId, e.getCompanyId()));
+                if (bizWorkOrders == null || bizWorkOrders.size() == 0) {
+                    failureNum.getAndIncrement();
+                    String s = "";
+                    if (e.getTaskId() == 1) {
+                        s = "代理记账服务";
+                    } else if (e.getTaskId() == 2) {
+                        s = "社保代缴服务";
+                    } else {
+                        s = "公积金代缴服务";
+                    }
+                    failureMsg.append("<br/>" + "序号为" + e.getNo() + "," + "客户 " + e.getCompanyName() + " 没有" + s);
+                } else {
+                    e.setWorkOrderIds(bizWorkOrders.stream().map(m -> m.getId()).collect(Collectors.toList()));
+                }
+            }
+
+            //根据受委托方分组
+            Map<String, List<EntrustVo>> map = newEntrustList.stream().collect(Collectors.groupingBy(e -> e.getToEntrustName()));
+            for (String s : map.keySet()) {
+                BizEntrust bizEntrust = new BizEntrust();
+                Tenant one = tenantService.getOne(new LambdaQueryWrapper<Tenant>().eq(Tenant::getAccountName, s));
+                bizEntrust.setToTenantId(one.getId());
+                bizEntrust.setWorkMonth(Date.valueOf(workMonth));
+                List<Long> workOrderIds = map.get(s).stream()
+                        .flatMap(e -> e.getWorkOrderIds().stream())
+                        .collect(Collectors.toList());
+                bizEntrust.setWorkOrderIds(workOrderIds);
+                this.addEntrust(bizEntrust);
+            }
+        } catch (Exception e) {
 
         }
 
@@ -355,7 +501,7 @@ public class WorkOrderCurrentController extends BaseController {
 
         // 获取上月的委托
         List<BizEntrust> entrusts = bizEntrustService.query().eq("tenant_id", tenantId).eq("work_month", nextMonthDate.toSqlDate()).list();
-        List<BizEntrust> entr = new ArrayList<>(entrusts) ;
+        List<BizEntrust> entr = new ArrayList<>(entrusts);
         //将到截至月的委托去掉
         for (BizEntrust b : entr) {
             List<BizWorkOrder> workOrder = bizWorkOrderService.query().eq("id", b.getWorkOrderId()).list();
@@ -369,7 +515,7 @@ public class WorkOrderCurrentController extends BaseController {
             calendar.set(Calendar.DAY_OF_MONTH, 1);
             Date currentMonthDate = new java.sql.Date(calendar.getTime().getTime());
             if (!workOrder.isEmpty()) {
-                if(workOrder.get(0).getIsStop() == 1 || (currentMonthDate == workOrder.get(0).getEndMonth())){
+                if (workOrder.get(0).getIsStop() == 1 || (currentMonthDate == workOrder.get(0).getEndMonth())) {
                     entrusts.removeIf(s -> s.getWorkOrderId().equals(b.getWorkOrderId()));
                 }
             }
@@ -416,6 +562,7 @@ public class WorkOrderCurrentController extends BaseController {
                         (nextMonth.getId() == null || sysCurrentMonthService.updateById(nextMonth)) &&
                         sysCurrentMonthService.save(newNextMonth));
     }
+
     /**
      * 导出本月工单
      */
@@ -477,6 +624,60 @@ public class WorkOrderCurrentController extends BaseController {
         }
     }
 
+    @Log(title = "本月工单门店导出", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportStore")
+    public void exportStore(HttpServletResponse response, BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
+        List<SysCurrentMonth> months = sysCurrentMonthService.list(new LambdaQueryWrapper<SysCurrentMonth>()
+                .eq(SysCurrentMonth::getTenantId, getTenantId())
+                .eq(SysCurrentMonth::getType, 0));
+        Date date = DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate();
+        bizWorkOrder.setWorkDate(date);
+        setTenantId(bizWorkOrder);
+        startOrderBy();
+//        bizWorkOrder.setIsStop(0);
+        List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
+        ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
+        util.exportExcel(response, list, "本月工单");
+    }
+
+    @Log(title = "下月工单门店导出", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportNextStore")
+    public void exportNextStore(HttpServletResponse response, BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
+        setTenantId(bizWorkOrder);
+        startOrderBy();
+//        bizWorkOrder.setIsStop(0);
+        List<SysCurrentMonth> months = sysCurrentMonthService.list(new LambdaQueryWrapper<SysCurrentMonth>()
+                .eq(SysCurrentMonth::getTenantId, getTenantId())
+                .eq(SysCurrentMonth::getType, 1));
+        Date date = DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate();
+        bizWorkOrder.setWorkDate(date);
+        List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
+        ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
+        util.exportExcel(response, list, "下月工单");
+    }
+
+    @Log(title = "本月工单工厂导出", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportFactory")
+    public void exportFactory(HttpServletResponse response, BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
+        bizWorkOrder.setToTenantId(getTenantId());
+        bizWorkOrder.setWorkDate(bizWorkOrder.getCurrentMonth());
+//        bizWorkOrder.setIsStop(0);
+        List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
+        ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
+        util.exportExcel(response, list, "下月工单");
+    }
+
+    @Log(title = "下月工单工厂导出", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportNextFactory")
+    public void exportNextFactory(HttpServletResponse response, BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
+        bizWorkOrder.setToTenantId(getTenantId());
+//        bizWorkOrder.setIsStop(0);
+        bizWorkOrder.setWorkDate(bizWorkOrder.getCurrentMonth());
+        List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
+        ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
+        util.exportExcel(response, list, "下月工单");
+    }
+
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:edit')")
     @GetMapping("/getFactories")
     public AjaxResult getFactories() {

+ 74 - 64
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderNextController.java

@@ -5,6 +5,7 @@ import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
 import cn.ezhizao.framework.web.controller.BaseController;
 import cn.ezhizao.framework.web.domain.AjaxResult;
+import cn.ezhizao.framework.web.domain.server.Sys;
 import cn.ezhizao.framework.web.page.TableDataInfo;
 import cn.ezhizao.project.business.entrust.domain.BizEntrust;
 import cn.ezhizao.project.business.entrust.service.IBizEntrustService;
@@ -17,11 +18,13 @@ import cn.ezhizao.project.tenant.domain.Tenant;
 import cn.ezhizao.project.tenant.service.ITenantService;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Date;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -51,14 +54,20 @@ public class WorkOrderNextController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:next:list')")
     @GetMapping("/list")
-    public TableDataInfo list(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException
-    {
+    public TableDataInfo list(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
         setTenantId(bizWorkOrder);
         startPage();
         startOrderBy();
         bizWorkOrder.setIsStop(0);
+        List<SysCurrentMonth> months = sysCurrentMonthService.list(new LambdaQueryWrapper<SysCurrentMonth>()
+                .eq(SysCurrentMonth::getTenantId, getTenantId())
+                .eq(SysCurrentMonth::getType, 1));
+//        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
+        Date date = DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate();
+        bizWorkOrder.setWorkDate(date);
         List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
-        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
+
+
         if (months.isEmpty()) {
             return getDataTable(new ArrayList<>());
         } else {
@@ -78,26 +87,27 @@ public class WorkOrderNextController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:next:list')")
     @GetMapping("/listForFactory")
-    public TableDataInfo listForFactory(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException
-    {
+    public TableDataInfo listForFactory(BizWorkOrder bizWorkOrder) throws NoSuchFieldException, IllegalAccessException {
         bizWorkOrder.setToTenantId(getTenantId());
         startPage();
-        bizWorkOrder.setIsStop(0);
+//        bizWorkOrder.setIsStop(0);
+        bizWorkOrder.setWorkDate(bizWorkOrder.getCurrentMonth());
         List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
-        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
-        if (months.isEmpty()) {
-            return getDataTable(new ArrayList<>());
-        } else {
-            BizEntrust bizEntrust = new BizEntrust();
-            bizEntrust.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
-            bizEntrust.setWorkMonth(DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate());
-            List<BizEntrust> entrusts = bizEntrustService.getList(bizEntrust);
-            list.forEach(l -> {
-                l.setEntrust(entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null));
-            });
-            return getDataTable(list);
-        }
+//        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
+//        if (months.isEmpty()) {
+//            return getDataTable(new ArrayList<>());
+//        } else {
+        BizEntrust bizEntrust = new BizEntrust();
+        bizEntrust.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
+        bizEntrust.setWorkMonth(DateTime.of(bizWorkOrder.getCurrentMonth()).toSqlDate());
+        List<BizEntrust> entrusts = bizEntrustService.getList(bizEntrust);
+        list.forEach(l -> {
+            l.setEntrust(entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null));
+        });
+        return getDataTable(list);
+//        }
     }
+
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:edit')")
     @PostMapping("/addEntrust")
     public AjaxResult addEntrust(@RequestBody BizEntrust entrust) {
@@ -116,7 +126,7 @@ public class WorkOrderNextController extends BaseController {
             bizEntrust.setFromTenantId(l.getTenantId());
             if (l.getTaskTypeId() == 1L) {
                 DateTime workMonth = DateTime.of(entrust.getWorkMonth());
-                bizEntrust.setCurrentMonth(workMonth.offsetNew(DateField.MONTH, - 1).toSqlDate());
+                bizEntrust.setCurrentMonth(workMonth.offsetNew(DateField.MONTH, -1).toSqlDate());
             } else {
                 bizEntrust.setCurrentMonth(entrust.getWorkMonth());
             }
@@ -145,57 +155,57 @@ public class WorkOrderNextController extends BaseController {
         bizWorkOrder.setIsStop(0);
         List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
         List<BizWorkOrderExport> listExport = new ArrayList<>();
-
-        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
-        if (months.isEmpty()) {
-            list = new ArrayList<>();
-            if (bizWorkOrder.getTenantId() == null) {
-                ExcelUtil<BizWorkOrderExport> util = new ExcelUtil<BizWorkOrderExport>(BizWorkOrderExport.class);
-                util.exportExcel(response, listExport, "下月工单");
-            } else {
-                ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
-                util.exportExcel(response, list, "下月工单");
-            }
-
-        } else {
-            BizEntrust bizEntrust = new BizEntrust();
-            bizEntrust.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
-            bizEntrust.setWorkMonth(DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate());
-            List<BizEntrust> entrusts = bizEntrustService.getList(bizEntrust);
-            list.forEach(l -> {
-                l.setEntrust(entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null));
-                l.setTypeName(l.getType() == 1 ? "循环工单" : "代办工单");
-                l.setExecutor(l.getEntrust() == null ? l.getServiceName() : l.getEntrust().getToAccountName());
-                if (bizWorkOrder.getTenantId() == null) {
-                    BizWorkOrderExport export = new BizWorkOrderExport();
-                    export.setCompanyName(l.getCompanyName());
-                    export.setFromCompanyName(l.getFromCompanyName());
-                    export.setSocialCreditCode(l.getSocialCreditCode());
-                    export.setTypeName(l.getTypeName());
-                    export.setTaskTypeName(l.getTaskTypeName());
-                    export.setStartMonth(l.getStartMonth());
-                    export.setEndMonth(l.getEndMonth());
-                    export.setMonthNum(l.getMonthNum());
-                    export.setExecutor(l.getExecutor());
-                    listExport.add(export);
-                }
-            });
-
-            if (bizWorkOrder.getTenantId() == null) {
-                ExcelUtil<BizWorkOrderExport> util = new ExcelUtil<BizWorkOrderExport>(BizWorkOrderExport.class);
-                util.exportExcel(response, listExport, "下月工单");
-            } else {
+//
+//        List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
+//        if (months.isEmpty()) {
+//            list = new ArrayList<>();
+//            if (bizWorkOrder.getTenantId() == null) {
+//        ExcelUtil<BizWorkOrderExport> util = new ExcelUtil<BizWorkOrderExport>(BizWorkOrderExport.class);
+//        util.exportExcel(response, listExport, "下月工单");
+//            } else {
                 ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
                 util.exportExcel(response, list, "下月工单");
-            }
-        }
+//            }
+//
+//        } else {
+//            BizEntrust bizEntrust = new BizEntrust();
+//            bizEntrust.setWorkOrderIds(list.stream().map(BizWorkOrder::getId).collect(Collectors.toList()));
+//            bizEntrust.setWorkMonth(DateTime.of(months.get(0).getYear() + "-" + months.get(0).getMonth() + "-01", "yyyy-MM-dd").toSqlDate());
+//            List<BizEntrust> entrusts = bizEntrustService.getList(bizEntrust);
+//            list.forEach(l -> {
+//                l.setEntrust(entrusts.stream().filter(v -> v.getWorkOrderId().equals(l.getId())).findFirst().orElse(null));
+//                l.setTypeName(l.getType() == 1 ? "循环工单" : "代办工单");
+//                l.setExecutor(l.getEntrust() == null ? l.getServiceName() : l.getEntrust().getToAccountName());
+//                if (bizWorkOrder.getTenantId() == null) {
+//                    BizWorkOrderExport export = new BizWorkOrderExport();
+//                    export.setCompanyName(l.getCompanyName());
+//                    export.setFromCompanyName(l.getFromCompanyName());
+//                    export.setSocialCreditCode(l.getSocialCreditCode());
+//                    export.setTypeName(l.getTypeName());
+//                    export.setTaskTypeName(l.getTaskTypeName());
+//                    export.setStartMonth(l.getStartMonth());
+//                    export.setEndMonth(l.getEndMonth());
+//                    export.setMonthNum(l.getMonthNum());
+//                    export.setExecutor(l.getExecutor());
+//                    listExport.add(export);
+//                }
+//            });
+//
+//            if (bizWorkOrder.getTenantId() == null) {
+//                ExcelUtil<BizWorkOrderExport> util = new ExcelUtil<BizWorkOrderExport>(BizWorkOrderExport.class);
+//                util.exportExcel(response, listExport, "下月工单");
+//            } else {
+//                ExcelUtil<BizWorkOrder> util = new ExcelUtil<BizWorkOrder>(BizWorkOrder.class);
+//                util.exportExcel(response, list, "下月工单");
+//            }
+//        }
 
     }
 
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:next:edit')")
     @PostMapping("/delEntrust")
     public AjaxResult delEntrust(@RequestBody BizEntrust bizEntrust) {
-        List<BizEntrust> entrustList  = bizEntrustService.getList(bizEntrust);
+        List<BizEntrust> entrustList = bizEntrustService.getList(bizEntrust);
         // 取消委托
         return toAjax(bizEntrustService.removeByIds(entrustList.stream().map(BizEntrust::getId).collect(Collectors.toList())));
     }
@@ -213,7 +223,7 @@ public class WorkOrderNextController extends BaseController {
     public AjaxResult checkCurrent() {
         List<SysCurrentMonth> months = sysCurrentMonthService.query().eq("tenant_id", getTenantId()).eq("type", 1).list();
         Map<String, Object> result = new HashMap<>();
-        if (months.isEmpty())  {
+        if (months.isEmpty()) {
             result.put("checkResult", false);
             return success(result);
         } else {

+ 71 - 28
src/main/java/cn/ezhizao/project/business/workOrder/domain/BizWorkOrder.java

@@ -21,23 +21,26 @@ import java.util.List;
  */
 @Data
 @TableName(value = "biz_work_order")
-public class BizWorkOrder extends BaseEntity
-{
+public class BizWorkOrder extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 合同外键 */
+    /**
+     * 合同外键
+     */
     @ApiModelProperty(value = "${comment}")
     private Long contractId;
 
-    /** 客户外键 */
+    /**
+     * 客户外键
+     */
     @ApiModelProperty(value = "${comment}")
     private Long companyId;
 
-    @Excel(name="客户名称", width = 35)
+    @Excel(name = "客户名称", width = 35)
     @TableField(exist = false)
     private String companyName;
 
-    @Excel(name="税号", width = 30)
+    @Excel(name = "税号", width = 30)
     @TableField(exist = false)
     private String socialCreditCode;
 
@@ -47,7 +50,9 @@ public class BizWorkOrder extends BaseEntity
     @ApiModelProperty("合同流程外键")
     private Long contractDetailProcessId;
 
-    /** 工单类型 1循环 2代办 */
+    /**
+     * 工单类型 1循环 2代办
+     */
 //    @Excel(name = "工单类型 1循环 2代办")
     @ApiModelProperty(value = "工单类型 1循环 2代办")
     private Integer type;
@@ -58,17 +63,23 @@ public class BizWorkOrder extends BaseEntity
     @ApiModelProperty(value = "工单类型 1循环 2代办")
     private String typeName;
 
-    /** 无合同 */
+    /**
+     * 无合同
+     */
 //    @Excel(name = "无合同")
     @ApiModelProperty(value = "无合同")
     private Integer noContract;
 
-    /** 编号 */
+    /**
+     * 编号
+     */
 //    @Excel(name = "编号")
     @ApiModelProperty(value = "编号")
     private String workOrderNo;
 
-    /** 任务类型 任务表外键 任务明细表 */
+    /**
+     * 任务类型 任务表外键 任务明细表
+     */
     @ApiModelProperty(value = "任务外键")
     private Long taskTypeId;
 
@@ -76,11 +87,13 @@ public class BizWorkOrder extends BaseEntity
     @TableField(exist = false)
     private String taskTypeName;
 
-//    @Excel(name = "是否延续")
+    //    @Excel(name = "是否延续")
     @ApiModelProperty(value = "是否延续")
     private Integer isContinue;
 
-    /** 任务类型 任务表外键 任务明细表 */
+    /**
+     * 任务类型 任务表外键 任务明细表
+     */
     @ApiModelProperty(value = "任务明细外键")
     private Long taskTypeDetailId;
 
@@ -90,19 +103,25 @@ public class BizWorkOrder extends BaseEntity
     @TableField(exist = false)
     private Integer isZero;
 
-    /** 开始月 */
+    /**
+     * 开始月
+     */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "开始月", dateFormat = "yyyy-MM")
     @ApiModelProperty(value = "开始月")
     private Date startMonth;
 
-    /** 结束月 */
+    /**
+     * 结束月
+     */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "结束月", dateFormat = "yyyy-MM")
     @ApiModelProperty(value = "结束月")
     private Date endMonth;
 
-    /** 月数 */
+    /**
+     * 月数
+     */
     @Excel(name = "工单月数")
     @ApiModelProperty(value = "月数")
     private Integer monthNum;
@@ -111,47 +130,63 @@ public class BizWorkOrder extends BaseEntity
     @ApiModelProperty(value = "月数")
     private Long managerId;
 
-    /** 主程序账套外键 */
+    /**
+     * 主程序账套外键
+     */
     @ApiModelProperty(value = "月数")
     private Long tenantId;
 
-    /** 停止任务 */
+    /**
+     * 停止任务
+     */
 //    @Excel(name = "停止任务")
     @ApiModelProperty(value = "停止任务")
     private Integer isStop;
 
 
-//    @Excel(name = "注册省份编码")
+    //    @Excel(name = "注册省份编码")
     @ApiModelProperty(value = "注册省份编码")
     private String provinceCode;
 
-    /** 省 */
+    /**
+     * 省
+     */
 //    @Excel(name = "省")
     @ApiModelProperty(value = "省")
     private String province;
 
-    /** 注册城市编码 */
+    /**
+     * 注册城市编码
+     */
 //    @Excel(name = "注册城市编码")
     @ApiModelProperty(value = "注册城市编码")
     private String cityCode;
 
-    /** 市 */
+    /**
+     * 市
+     */
 //    @Excel(name = "市")
     @ApiModelProperty(value = "市")
     private String city;
 
-    /** 注册行政区编码 */
+    /**
+     * 注册行政区编码
+     */
 //    @Excel(name = "注册行政区编码")
     @ApiModelProperty(value = "注册行政区编码")
     private String districtCode;
 
-    /** 工单执行人 */
-    @Excel(name = "工单执行人")
+    /**
+     * 工单执行人
+     */
+//    @Excel(name = "工单执行人")
     @TableField(exist = false)
     private String executor;
 
 
-    /** 区 */
+    /**
+     * 区
+     */
 //    @Excel(name = "区")
     @ApiModelProperty(value = "区")
     private String district;
@@ -161,7 +196,9 @@ public class BizWorkOrder extends BaseEntity
     @TableField(exist = false)
     private List<BizWorkOrderDetail> details;
 
-    /** 服务管理查询条件 */
+    /**
+     * 服务管理查询条件
+     */
     @TableField(exist = false)
     private Integer status;
     @TableField(exist = false)
@@ -193,7 +230,9 @@ public class BizWorkOrder extends BaseEntity
     @TableField(exist = false)
     private List<BizStandardCompany> companies;
 
-    /** 委托项目 */
+    /**
+     * 委托项目
+     */
     @TableField(exist = false)
     private List<Long> taskTypeIds;
 
@@ -211,6 +250,10 @@ public class BizWorkOrder extends BaseEntity
     private String inputDistrict;
     @TableField(exist = false)
     private String explain;
-
+    @TableField(exist = false)
+    @Excel(name = "工单执行人")
+    private String toAccountName;
+    @TableField(exist = false)
+    private Date workDate;
 
 }

+ 19 - 0
src/main/java/cn/ezhizao/project/business/workOrder/domain/vo/Condition.java

@@ -0,0 +1,19 @@
+package cn.ezhizao.project.business.workOrder.domain.vo;
+
+
+import cn.ezhizao.framework.web.domain.BaseEntity;
+import lombok.Data;
+
+
+@Data
+public class Condition extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    private String companyName;
+    private String date;
+    private Long fromTenantId;
+    private Long toTenantId;
+    private String toAccountName;
+    private String fromCompanyName;
+}

+ 21 - 0
src/main/java/cn/ezhizao/project/business/workOrder/domain/vo/EntrustRes.java

@@ -0,0 +1,21 @@
+package cn.ezhizao.project.business.workOrder.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class EntrustRes {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+    private Long workOrderId;
+    private String toAccountName;
+    private String companyName;
+    private String socialCreditCode;
+    private String taskTypeName;
+    private Integer type;
+    private String startMonth;
+    private String endMonth;
+    private Integer monthNum;
+    private String fromCompanyName;
+}

+ 4 - 0
src/main/java/cn/ezhizao/project/business/workOrder/mapper/BizWorkOrderMapper.java

@@ -1,6 +1,8 @@
 package cn.ezhizao.project.business.workOrder.mapper;
 
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
+import cn.ezhizao.project.business.workOrder.domain.vo.Condition;
+import cn.ezhizao.project.business.workOrder.domain.vo.EntrustRes;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 import java.util.List;
@@ -40,4 +42,6 @@ public interface BizWorkOrderMapper extends BaseMapper<BizWorkOrder>
     public int stopTasks(List<Map<String, Object>> tableValues);
 
     List<BizWorkOrder> selectStarMonthList(BizWorkOrder workOrder);
+
+    List<EntrustRes> getHistoryList(Condition condition);
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/business/workOrder/service/IBizWorkOrderService.java

@@ -1,6 +1,8 @@
 package cn.ezhizao.project.business.workOrder.service;
 
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
+import cn.ezhizao.project.business.workOrder.domain.vo.Condition;
+import cn.ezhizao.project.business.workOrder.domain.vo.EntrustRes;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
@@ -46,4 +48,6 @@ public interface IBizWorkOrderService extends IService<BizWorkOrder>
      * @return
      */
     List<BizWorkOrder> selectStarMonthList(BizWorkOrder workOrder);
+
+    List<EntrustRes> getHistoryList(Condition condition);
 }

+ 7 - 0
src/main/java/cn/ezhizao/project/business/workOrder/service/impl/BizWorkOrderServiceImpl.java

@@ -1,6 +1,8 @@
 package cn.ezhizao.project.business.workOrder.service.impl;
 
 import cn.ezhizao.project.business.workOrder.domain.BizWorkOrder;
+import cn.ezhizao.project.business.workOrder.domain.vo.Condition;
+import cn.ezhizao.project.business.workOrder.domain.vo.EntrustRes;
 import cn.ezhizao.project.business.workOrder.mapper.BizWorkOrderMapper;
 import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -57,4 +59,9 @@ public class BizWorkOrderServiceImpl  extends ServiceImpl<BizWorkOrderMapper, Bi
         return bizWorkOrderMapper.selectStarMonthList(workOrder);
     }
 
+    @Override
+    public List<EntrustRes> getHistoryList(Condition condition) {
+        return bizWorkOrderMapper.getHistoryList(condition);
+    }
+
 }

+ 4 - 0
src/main/java/cn/ezhizao/project/system/domain/SysCurrentMonth.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.Version;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class SysCurrentMonth {
     private static final long serialVersionUID = 1L;
@@ -30,4 +32,6 @@ public class SysCurrentMonth {
     @Version
     private Long version;
 
+    private Date createTime;
+
 }

+ 69 - 7
src/main/resources/mybatis/business/BizWorkOrderMapper.xml

@@ -41,8 +41,10 @@
             <if test="startMonth != null ">AND t1.end_month &gt;= #{startMonth}</if>
             <if test="monthNum != null ">AND t1.month_num = #{monthNum}</if>
             <if test="isStop != null ">AND t1.is_stop = #{isStop}</if>
-            <if test="currentMonth != null">AND t1.start_month != 0 AND DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &gt;= (case when t1.task_type_id
-                = 1 then DATE_ADD(t1.start_month,interval 1 month) else t1.start_month end) and DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &lt;=
+            <if test="currentMonth != null">AND t1.start_month != 0 AND DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &gt;=
+                (case when t1.task_type_id
+                = 1 then DATE_ADD(t1.start_month,interval 1 month) else t1.start_month end) and
+                DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &lt;=
                 (case when t1.end_month = 0 then DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') when t1.task_type_id = 1 then
                 DATE_ADD(t1.end_month,interval 1 month) else t1.end_month end)
             </if>
@@ -59,14 +61,21 @@
 
     <select id="getList" parameterType="BizWorkOrder" resultMap="BizWorkOrderResult">
         SELECT t1.*, t2.name as company_name, t2.social_credit_code, t3.name as task_type_name, t4.name as
-        task_type_detail_name, t5.nick_name as service_name, t7.account_name as from_company_name,t6.alter_type,t6.address_style,t6.fiction_address_id,t6.province as inputProvince,t6.city as inputCity,t6.district as  inputDistrict
+        task_type_detail_name, t5.nick_name as service_name, t7.account_name as
+        from_company_name,t6.alter_type,t6.address_style,
+        t6.fiction_address_id,t6.province as inputProvince,t6.city as inputCity,t6.district as inputDistrict,
+        COALESCE(t8.account_name, t5.nick_name) as toAccountName
+
         FROM biz_work_order t1
         left join biz_company t2 on t2.id = t1.company_id
         left join biz_task_type t3 on t3.id = t1.task_type_id
         left join biz_task_type_detail t4 on t4.id = t1.task_type_detail_id
         left join biz_tenant t7 on t7.id = t1.tenant_id
         left join sys_user t5 on t5.user_id = t1.service_id
-        LEFT JOIN biz_archive_input_detail t6 ON t6.id = t1.contract_detail_id
+        left join biz_archive_input_detail t6 ON t6.id = t1.contract_detail_id
+        left join (select tt1.*,tt2.account_name from biz_entrust tt1 LEFT JOIN biz_tenant tt2
+        on tt1.to_tenant_id =tt2.id and tt1.deleted = 0) t8 on t8.work_order_id = t1.id and t8.deleted = 0 and
+        t8.task_type_id = t1.task_type_id and t8.work_month = #{workDate}
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
             t1.deleted = 0
             <if test="id != null ">AND t1.id = #{id}</if>
@@ -76,6 +85,13 @@
                     #{item,jdbcType=BIGINT}
                 </foreach>
             </if>
+            <if test="toAccountName != null and toAccountName!=''">AND (COALESCE ( t8.account_name, t5.nick_name ) LIKE
+                concat( '%', #{toAccountName}, '%' ))
+            </if>
+
+            <if test="fromCompanyName != null and fromCompanyName!=''">AND  t7.account_name LIKE
+                concat( '%', #{fromCompanyName}, '%' )
+            </if>
             <if test="companyName != null and companyName!=''">AND t2.name like concat('%', #{companyName}, '%')</if>
             <if test="tenantId != null ">
                 <!--                AND exists (select 1 from biz_entrust t1.tenant_id = tenant_id where )-->
@@ -91,9 +107,12 @@
             <if test="endMonth != null ">AND t1.end_month = #{endMonth}</if>
             <if test="monthNum != null ">AND t1.month_num = #{monthNum}</if>
             <if test="isStop != null ">AND t1.is_stop = #{isStop}</if>
-            <if test="currentMonth != null">AND t1.start_month != 0 AND DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &gt;= (case when t1.task_type_id
-                = 1 then DATE_ADD(t1.start_month,interval 1 month) else t1.start_month end) and DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &lt;=
-                (case when t1.is_continue=1 then #{currentMonth} when  t1.end_month = 0 then DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') when t1.task_type_id = 1 then
+            <if test="currentMonth != null">AND t1.start_month != 0 AND DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &gt;=
+                (case when t1.task_type_id
+                = 1 then DATE_ADD(t1.start_month,interval 1 month) else t1.start_month end) and
+                DATE_FORMAT(#{currentMonth}, '%Y-%m-%d') &lt;=
+                (case when t1.is_continue=1 then #{currentMonth} when t1.end_month = 0 then DATE_FORMAT(#{currentMonth},
+                '%Y-%m-%d') when t1.task_type_id = 1 then
                 DATE_ADD(t1.end_month,interval 1 month) else t1.end_month end)
             </if>
             <if test="toTenantId != null and currentMonth != null">
@@ -107,6 +126,49 @@
         </trim>
         ORDER BY t1.create_time DESC
     </select>
+    <select id="getHistoryList" resultType="cn.ezhizao.project.business.workOrder.domain.vo.EntrustRes">
+        SELECT
+        t1.id,t1.work_order_id,t2.account_name as toAccountName,
+        t3.name as companyName,t3.social_credit_code,
+        t4.name as task_type_name,t5.type,t5.start_month,
+        t5.end_month,t5.month_num,t7.account_name as
+        fromCompanyName
+        FROM
+        biz_entrust t1
+        LEFT JOIN biz_tenant t2 on t1.to_tenant_id =t2.id
+        LEFT Join biz_company t3 on t3.id = t1.company_id
+        left join biz_task_type t4 on t4.id = t1.task_type_id
+        LEFT JOIN biz_work_order t5 on t5.id = t1.work_order_id
+        LEFT JOIN biz_tenant t7 on t1.from_tenant_id =t7.id
+        <where>
+            t1.deleted = 0
+            <if test="fromTenantId != null and fromTenantId != ''">
+                AND t1.from_tenant_id = #{fromTenantId}
+            </if>
+            <if test="toTenantId != null and toTenantId != ''">
+                AND t1.to_tenant_id = #{toTenantId}
+            </if>
+            <if test="fromCompanyName != null and fromCompanyName != ''">
+                AND t7.account_name like concat('%', #{fromCompanyName}, '%')
+            </if>
+
+            <if test="date == null">
+                AND MONTH ( t1.current_month ) &lt;MONTH(CURRENT_DATE ())
+            </if>
+            <if test="date != null">
+                AND t1.current_month = #{date}
+            </if>
+            <if test="companyName != null and companyName != ''">
+                AND t3.name like concat('%', #{companyName}, '%')
+            </if>
+            <if test="toAccountName != null and toAccountName!=''">
+                AND t2.account_name like concat( '%', #{toAccountName}, '%' )
+            </if>
+        </where>
+        ORDER BY
+        t1.work_month DESC
+
+    </select>
 
     <delete id="physicalDelete">
         DELETE FROM biz_work_order