Просмотр исходного кода

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc into V0.0.2

jiawuxian 2 лет назад
Родитель
Сommit
327682572a

+ 2 - 2
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteResumptionTaskService.java

@@ -46,6 +46,6 @@ public interface RemoteResumptionTaskService {
 
     @GetMapping(value = "resumption/task/updatetaskstatus")
     R<Boolean> updateTaskStatus();
-    @PostMapping("/resumption/dayTaskByWorkTime")
-    void dayTaskByWorkTime(@RequestBody Map<String, Object> param);
+    @PostMapping("resumption/task/dayTaskByWorkTime")
+    AjaxResult dayTaskByWorkTime(@RequestBody Map<String, Object> param,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 4 - 1
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteResumptionTaskFallbackFactory.java

@@ -61,8 +61,11 @@ public class RemoteResumptionTaskFallbackFactory implements FallbackFactory<Remo
             }
 
             @Override
-            public void dayTaskByWorkTime(Map<String, Object> param) {
+            public AjaxResult dayTaskByWorkTime(Map<String, Object> param,String source) {
+                return null;
             }
+
+
         };
     }
 

+ 7 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/controller/TaskController.java

@@ -138,8 +138,13 @@ public class TaskController {
     }
     @InnerAuth
     @PostMapping ("/dayTaskByWorkTime")
-    public void dayTaskByWorkTime(Map<String,Object> params) {
-         resumptionService.dayTaskByWorkTime(params);
+    public AjaxResult dayTaskByWorkTime(@RequestBody  Map<String,Object> params) {
+        try {
+            resumptionService.dayTaskByWorkTime(params);
+            return AjaxResult.success("任务生成成功");
+        }catch (Exception e){
+            return  AjaxResult.error("任务生成失败");
+        }
     }
 
     private void createNewResumptionByOrgAndPlan(List<Long> orgIds, List<Long> planIds, DateTime datetime) {

+ 3 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/domain/Resumption.java

@@ -81,6 +81,7 @@ public class Resumption extends BaseEntity {
      */
     @JsonIgnore
     //@NotFound(action = NotFoundAction.IGNORE)
+    @TableField(exist = false)
     private SysOrg org;
 
     /**
@@ -88,6 +89,7 @@ public class Resumption extends BaseEntity {
      */
     @JsonIgnore
     //@NotFound(action = NotFoundAction.IGNORE)
+    @TableField(exist = false)
     private AppPlan plan;
 
 
@@ -156,6 +158,7 @@ public class Resumption extends BaseEntity {
      * 表单数据
      */
     @JsonIgnore
+    @TableField(exist = false)
     private List<FormData> dataList;
 
 

+ 52 - 41
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ResumptionServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -175,51 +176,61 @@ public class ResumptionServiceImpl extends ServiceImpl<ResumptionMapper, Resumpt
 
     @Override
     public void dayTaskByWorkTime(Map<String, Object> params) {
-        SysWorkTime workTime = (SysWorkTime) params.get("sysWorkTime");
-        List<Long> orgIds = (List<Long>) params.get("orgIds");
-        //按机构删除当天的每日履职
-        QueryWrapper<Resumption> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(Resumption::getYmdDate, workTime.getYmdDate());
-        queryWrapper.lambda().in(Resumption::getOrgId, orgIds);
-        //待履职,进行中
-        //queryWrapper.lambda().in(Resumption::getStatus,  1, 2);
-        //每日任务
-        queryWrapper.lambda().eq(Resumption::getType, 2);
-        List<Resumption> resumptionList = resumptionMapper.selectList(queryWrapper);
-        List<Resumption> resumptionListYlz =resumptionList.stream().filter(item -> item.getStatus()==3).collect(Collectors.toList());
-        if (CollectionUtils.isNotEmpty(resumptionList)) {
-            //取出未履职的数据(待履职,进行中)
-            List<Resumption> resumptionListWlz = resumptionList.stream().filter(item -> item.getStatus() == 1 || item.getStatus() == 2).collect(Collectors.toList());
-            //删除这些数据
-            resumptionMapper.deleteBatchIds(resumptionListWlz.stream().map(Resumption::getId).collect(Collectors.toList()));
-        }
+        try {
+            Gson gson = new Gson();
+            SysWorkTime workTime = gson.fromJson((String) params.get("sysWorkTime"), SysWorkTime.class);
+            //SysWorkTime workTime = params.get("sysWorkTime");
+            List<Long> orgIds = (List<Long>) params.get("orgIds");
+            //按机构删除当天的每日履职
+            QueryWrapper<Resumption> queryWrapper = new QueryWrapper<>();
+            queryWrapper.lambda().eq(Resumption::getYmdDate, workTime.getYmdDate());
+            queryWrapper.lambda().in(Resumption::getOrgId, orgIds);
+            //待履职,进行中
+            //queryWrapper.lambda().in(Resumption::getStatus,  1, 2);
+            //每日任务
+            queryWrapper.lambda().eq(Resumption::getType, 2);
+            List<Resumption> resumptionList = resumptionMapper.selectList(queryWrapper);
+            List<Resumption> resumptionListYlz =resumptionList.stream().filter(item -> item.getStatus()==3).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(resumptionList)) {
+                //取出未履职的数据(待履职,进行中)
+                List<Resumption> resumptionListWlz = resumptionList.stream().filter(item -> item.getStatus() == 1 || item.getStatus() == 2).collect(Collectors.toList());
+                //删除这些数据
+                if(CollectionUtils.isNotEmpty(resumptionListWlz)){
+                    resumptionMapper.deleteBatchIds(resumptionListWlz.stream().map(Resumption::getId).collect(Collectors.toList()));
+                }
+            }
 
-        //营业重新生成任务
-        if (workTime.getIsEnable() == 1) {
-            QueryWrapper<AppPlan> qw = new QueryWrapper<>();
-            qw.lambda().eq(AppPlan::getPlanStatus, 0);
-            qw.lambda().in(AppPlan::getPlanOfOrgId, orgIds);
-            List<AppPlan> listPlans = appPlanMapper.selectList(qw);
-            //通过resumptionListYlz中的planId过滤除已履职的计划
-            List<AppPlan> lists = listPlans.stream().filter(item -> !resumptionListYlz.stream().map(Resumption::getPlanId).collect(
-                    Collectors.toList()).contains(item.getId())).collect(Collectors.toList());
-            //通过计划id获取计划关系的角色
-            if (CollectionUtils.isNotEmpty(lists)) {
-                List<Long> planIds = lists.stream().map(AppPlan::getId).collect(Collectors.toList());
-                List<AppPlanToRole> appPlanToRoles = appPlanToRoleMapper.selectList(new QueryWrapper<AppPlanToRole>().lambda().in(AppPlanToRole::getPlanId, planIds));
-                List<Resumption> newResumptionList = new ArrayList<>();
-                for(AppPlan plan:lists){
-                    //根据计划获取角色
-                    List<AppPlanToRole> planToRoles = appPlanToRoles.stream().filter(item -> item.getPlanId().equals(plan.getId())).collect(Collectors.toList());
-                    List<Resumption> resumptionLista = this.buildResumptions(plan, planToRoles,workTime);
-                    if(CollectionUtils.isNotEmpty(resumptionLista)){
-                        newResumptionList.addAll(resumptionLista);
+            //营业重新生成任务
+            if (workTime.getIsEnable() == 1) {
+                QueryWrapper<AppPlan> qw = new QueryWrapper<>();
+                qw.lambda().eq(AppPlan::getPlanStatus, 1);
+                qw.lambda().in(AppPlan::getPlanOfOrgId, orgIds);
+                List<AppPlan> listPlans = appPlanMapper.selectList(qw);
+                //通过计划id获取计划关系的角色
+                if (CollectionUtils.isNotEmpty(listPlans)) {
+                    List<Long> planIds = listPlans.stream().map(AppPlan::getId).collect(Collectors.toList());
+                    List<AppPlanToRole> appPlanToRoles = appPlanToRoleMapper.selectList(new QueryWrapper<AppPlanToRole>().lambda().in(AppPlanToRole::getPlanId, planIds));
+                    List<Resumption> newResumptionList = new ArrayList<>();
+                    for(AppPlan plan:listPlans){
+                        //根据计划获取角色
+                        List<AppPlanToRole> planToRoles = appPlanToRoles.stream().filter(item -> item.getPlanId().equals(plan.getId())).collect(Collectors.toList());
+                        List<Resumption> resumptionLista = this.buildResumptions(plan, planToRoles,workTime);
+                        if(CollectionUtils.isNotEmpty(resumptionLista)){
+                            //根据planId和roleId是否判断resumptionLista中的数据是否在resumptionListYlz中
+                            List<Resumption> resumptionListb = resumptionLista.stream().filter(item -> !resumptionListYlz.stream().filter(item1 -> item1.getPlanId().equals(item.getPlanId())
+                                    && item1.getRoleId().equals(item.getRoleId())).findFirst().isPresent()).collect(Collectors.toList());
+                            if(CollectionUtils.isNotEmpty(resumptionListb)){
+                                newResumptionList.addAll(resumptionListb);
+                            }
+                        }
                     }
+                    this.saveBatch(newResumptionList);
                 }
-                this.saveBatch(newResumptionList);
-            }
 
 
+            }
+        } catch (Exception e) {
+           e.printStackTrace();
         }
     }
 
@@ -265,7 +276,7 @@ public class ResumptionServiceImpl extends ServiceImpl<ResumptionMapper, Resumpt
             resumption.setYmdHalfyear(Long.valueOf(ymd.getHalfyear()));
             resumption.setPlanId((ObjectUtil.equal(appPlan.getParentId(), -1L) || ObjectUtil.isNull(appPlan.getParentId())) ? appPlan.getId() : appPlan.getParentId());
             resumption.setOrgId(appPlan.getPlanOfOrgId());
-            resumption.setType(appPlan.getPlanType());
+            resumption.setType(appPlan.getPlanCycle());
             resumption.setRoleId(role.getRoleId());
             resumption.setPlanStartTime(planstartTime);
             resumption.setPlanEndTime(planendTime);

+ 4 - 12
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysWorkTimeController.java

@@ -64,21 +64,13 @@ public class SysWorkTimeController extends BaseController {
 //    @RequiresPermissions("system:set:monthedit")
     @PostMapping("/month/edit")
     public AjaxResult monthedit(@RequestBody WorkTimeMonthEditNewDto sysWorkTimeSet) {
-        Date today = DateUtil.beginOfDay(new Date());
+       // Date today = DateUtil.beginOfDay(new Date());
         List<Long> orgIds = sysWorkTimeSet.getOrgIdList();
-        List<SysWorkTime> exists = sysWorkTimeService.findByYmd(orgIds, today);
-        List<SysWorkTime> workTimeLists = new ArrayList<>();
+        //List<SysWorkTime> exists = sysWorkTimeService.findByYmd(orgIds, today);
+       // List<SysWorkTime> workTimeLists = new ArrayList<>();
         for (Long orgId : orgIds) {
-            List<SysWorkTime> batchnew = sysWorkTimeService.batchnew(orgId, sysWorkTimeSet.getWorkTimeList());
+             sysWorkTimeService.batchnew(orgId, sysWorkTimeSet.getWorkTimeList());
         }
-
-        sysWorkTimeService.handleTodayChanged(orgIds, sysWorkTimeSet.getWorkTimeList(), exists, today);
-        //生成任务
-//         TODO: 2023/6/19
-//        if(CollectionUtil.isNotEmpty(orgIds)){
-//            this.workTimeService.handleTodayChanged(orgIds, request.getWorkTimeList(), exists, today);
-//            this.workTimeMonthService.toLogNote("批量操作作息月[ %s ][ %s ]", request.getOrgIdList(), today);
-//        }
         return AjaxResult.success();
     }
 

+ 22 - 4
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeServiceImpl.java

@@ -4,14 +4,18 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.google.common.collect.Lists;
+import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.Ymd;
+import com.xunmei.common.core.web.domain.AjaxResult;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.system.api.RemoteResumptionTaskService;
@@ -23,6 +27,7 @@ import com.xunmei.system.mapper.SysWorkTimeSetMapper;
 import com.xunmei.system.service.ISysOrgService;
 import com.xunmei.system.service.ISysWorkTimeService;
 import com.xunmei.system.util.WorkChangeEvent;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationContext;
@@ -41,6 +46,7 @@ import java.util.stream.Collectors;
  * @author xunmei
  * @date 2023-08-14
  */
+@Slf4j
 @Service
 public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWorkTime> implements ISysWorkTimeService {
     @Autowired
@@ -319,8 +325,7 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
 
         for (SysWorkTime s : workTimeDtoList) {
             if (s.getIsEnable() == null || s.getYmdDate().before(now)) {
-//                WORKTIMEBUSINESSLOG.info("作息时间[ {} ]小于现在时间, 不允许改变", workDate);
-//                return null;
+
             } else {
                 List<SysWorkTime> list = baseMapper.selectList(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).eq(SysWorkTime::getYmdDate, s.getYmdDate()));
                 if (list != null && list.size() > 0) {
@@ -335,6 +340,16 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
                 s.setModifiedName(SecurityUtils.getUsername());
                 baseMapper.insert(s);
             }
+            if(DateUtil.isSameDay(s.getYmdDate(),now)){
+                List<Long> orgIds =new ArrayList<>();
+                orgIds.add(orgId);
+                Map<String,Object> param = new HashMap<>();
+                param.put("orgIds",orgIds);
+                param.put("sysWorkTime", new Gson().toJson(s));
+                log.info("时间{}修改作息远程调用生成履职任务",new Date());
+                AjaxResult result = remoteResumptionTaskService.dayTaskByWorkTime(param, SecurityConstants.INNER);
+                log.info("时间{}修改作息远程调用生成履职任务返回{}",new Date(),result.get("msg"));
+            }
 
         }
         return workTimeDtoList;
@@ -398,8 +413,11 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
             orgIds.add(sysWorkTime.getOrgId());
             Map<String,Object> param = new HashMap<>();
             param.put("orgIds",orgIds);
-            param.put("sysWorkTime",sysWorkTime);
-            remoteResumptionTaskService.dayTaskByWorkTime(param);
+            param.put("sysWorkTime", new Gson().toJson(sysWorkTime));
+            log.info("时间{}修改作息远程调用生成履职任务",new Date());
+            AjaxResult result = remoteResumptionTaskService.dayTaskByWorkTime(param, SecurityConstants.INNER);
+            log.info("时间{}修改作息远程调用生成履职任务返回{}",new Date(),result.get("msg"));
+
         }
     }