Browse Source

no message

ly 1 year ago
parent
commit
3d4ac8c785

+ 5 - 1
pom.xml

@@ -50,7 +50,11 @@
             <artifactId>spring-cloud-starter-openfeign</artifactId>
             <version>3.1.3</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+            <version>3.1.3</version>
+        </dependency>
         <!-- Spring-Cloud-Nacos -->
         <dependency>
             <groupId>com.alibaba.cloud</groupId>

+ 15 - 0
src/main/java/cn/ezhizao/fegin/FeignConfig.java

@@ -0,0 +1,15 @@
+package cn.ezhizao.fegin;
+
+import feign.Retryer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FeignConfig {
+
+    @Bean
+    public Retryer feignRetryer() {
+        return new Retryer.Default(100, 1000, 4); // 最大重试间隔1000ms,最多重试4次
+    }
+
+}

+ 23 - 0
src/main/java/cn/ezhizao/fegin/IFeignClient.java

@@ -0,0 +1,23 @@
+package cn.ezhizao.fegin;
+
+import cn.ezhizao.framework.web.domain.AjaxResult;
+import cn.ezhizao.project.tenant.domain.Tenant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+@FeignClient(name = "ezhizao-yzbh-production")
+public interface IFeignClient {
+
+    @PostMapping("/business/salary/rpc/abc")
+   String filterCompletedOrders(@RequestBody List<Long> workOrderIds);
+
+
+
+
+}

+ 2 - 0
src/main/java/cn/ezhizao/framework/config/SecurityConfig.java

@@ -116,6 +116,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
+                //远程调用时不需要带token访问 接口前加rpc
+                .antMatchers("/rpc/**").permitAll()
                 .antMatchers("/upload/**").permitAll()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()

+ 1 - 1
src/main/java/cn/ezhizao/project/business/entrustExamine/domain/BizEntrustExamine.java

@@ -42,7 +42,7 @@ public class BizEntrustExamine extends BaseEntity
     /** 委托来源 */
     @Excel(name = "委托来源")
     @ApiModelProperty(value = "委托来源")
-    private String entrustCome;
+    private Long entrustCome;
 
     /** 取消理由 */
     @Excel(name = "取消理由")

+ 67 - 13
src/main/java/cn/ezhizao/project/business/workOrder/controller/WorkOrderCurrentController.java

@@ -2,6 +2,7 @@ package cn.ezhizao.project.business.workOrder.controller;
 
 import cn.ezhizao.common.exception.ServiceException;
 import cn.ezhizao.common.utils.poi.ExcelUtil;
+import cn.ezhizao.fegin.IFeignClient;
 import cn.ezhizao.framework.aspectj.lang.annotation.Anonymous;
 import cn.ezhizao.framework.aspectj.lang.annotation.Log;
 import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
@@ -12,6 +13,7 @@ import cn.ezhizao.project.business.company.domain.BizCompany;
 import cn.ezhizao.project.business.company.service.IBizCompanyService;
 import cn.ezhizao.project.business.entrust.domain.BizEntrust;
 import cn.ezhizao.project.business.entrust.service.IBizEntrustService;
+import cn.ezhizao.project.business.entrustExamine.domain.BizEntrustExamine;
 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;
@@ -26,6 +28,7 @@ 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.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -66,36 +69,30 @@ public class WorkOrderCurrentController extends BaseController {
     @Resource
     private ISysUserService userService;
 
+    @Resource
+    private IFeignClient entrustFeignClient;
+
+
     /**
      * 查询工单信息列表
      */
     @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(bizWorkOrder.getCurrentMonth());
         setTenantId(bizWorkOrder);
         startPage();
         startOrderBy();
-//        bizWorkOrder.setIsStop(0);
         List<BizWorkOrder> list = bizWorkOrderService.getList(bizWorkOrder);
-//        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);
-//        }
     }
 
     @GetMapping("/history/list")
@@ -500,7 +497,64 @@ public class WorkOrderCurrentController extends BaseController {
 
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:edit')")
     @PostMapping("/delEntrust")
+
     public AjaxResult delEntrust(@RequestBody BizEntrust bizEntrust) {
+        String s =  entrustFeignClient.filterCompletedOrders(bizEntrust.getWorkOrderIds());
+        Map<String,List<Long>> map = JSON.parseObject(s, Map.class);
+        List<Long> workOrderIds = map.get("workOrderIds");
+        List<Long> oneList = map.get("oneList");
+        List<Long> twoList = map.get("twoList");
+        List<Long> threeList = map.get("threeList");
+        boolean status= false;
+        List<Long> finishWorkIds = mergeLists(oneList, twoList, threeList);
+
+        if (!CollectionUtils.isEmpty(workOrderIds)){
+            bizEntrust.setWorkOrderIds(workOrderIds);
+             status = isStatus(bizEntrust);
+        }
+        //说明当前状态工单任务都处于未完成
+        if( CollectionUtils.isEmpty(finishWorkIds) ){
+            // 取消委托
+            return toAjax(status);
+        }
+        String companyName = finishWorkIds.stream().map(id -> {
+            Long companyId = bizWorkOrderService.getById(id).getCompanyId();
+            return bizCompanyService.getById(companyId).getName();
+
+        }).collect(Collectors.joining(","));
+        HashMap<String, Object> hashMap = new HashMap<>();
+        hashMap.put("companyName", companyName);
+        hashMap.put("workOrderIds", finishWorkIds);
+        return AjaxResult.success("操作成功",hashMap);
+    }
+
+
+    //            oneList.stream().map( one->{
+//                BizEntrustExamine bizEntrustExamine = new BizEntrustExamine();
+//                bizEntrustExamine.setWorkOrderId(one);
+//                BizEntrust bizEntrust1 = new BizEntrust();
+//                bizEntrust1.setWorkOrderId(one);
+//                bizEntrust1.setWorkMonth(bizEntrust.getWorkMonth());
+//                List<BizEntrust> entrustList = bizEntrustService.getList(bizEntrust1);
+//                bizEntrustExamine.setEntrustId(entrustList.get(0).getToTenantId());
+//                bizEntrustExamine.setCompanyId(entrustList.get(0).getCompanyId());
+//                bizEntrustExamine.setTaskTypeId(entrustList.get(0).getTaskTypeId());
+//                bizEntrustExamine.setCurrentPeriod(bizEntrust.getWorkMonth().toString());
+//                bizEntrustExamine.setEntrustCome(entrustList.get(0).getFromTenantId());
+//                bizEntrustExamine.setCancelReason(null);
+//                bizEntrustExamine.setStatus(0);
+//                return bizEntrustExamine;
+//            }).collect(Collectors.toList());
+    public static List<Long> mergeLists(List<Long>... lists) {
+        List<Long> result = new ArrayList<>();
+        for (List<Long> list : lists) {
+            if (list != null) {
+                result.addAll(list);
+            }
+        }
+        return result;
+    }
+    private boolean isStatus(BizEntrust bizEntrust) {
         List<BizEntrust> entrustList = bizEntrustService.getList(bizEntrust);
         DateTime currentMonth = DateTime.of(bizEntrust.getWorkMonth());
         List<BizEntrust> nextEntrustList = new ArrayList<>();
@@ -526,10 +580,10 @@ public class WorkOrderCurrentController extends BaseController {
         boolean status = (entrustList.isEmpty() ||
                 bizEntrustService.removeByIds(entrustList.stream().map(BizEntrust::getId).collect(Collectors.toList()))) && (CollectionUtils.isEmpty(nextEntrustList) ||
                 bizEntrustService.removeByIds(nextEntrustList.stream().map(BizEntrust::getId).collect(Collectors.toList())));
-        // 取消委托
-        return toAjax(status);
+        return status;
     }
 
+
     @PreAuthorize("@ss.hasPermi('business:entrust:workOrder:current:trans')")
     @GetMapping("/transNext")
     @Transactional(rollbackFor = Exception.class)