|
|
@@ -16,6 +16,7 @@ import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
|
|
|
import com.xunmei.common.core.utils.DateHelper;
|
|
|
import com.xunmei.common.core.utils.ResumptionType;
|
|
|
import com.xunmei.common.core.utils.Ymd;
|
|
|
+import com.xunmei.core.TaskCreatingServiceImplBase;
|
|
|
import com.xunmei.core.resumption.domain.AppPlan;
|
|
|
import com.xunmei.core.resumption.domain.AppPlanToRole;
|
|
|
import com.xunmei.core.resumption.domain.Resumption;
|
|
|
@@ -31,7 +32,7 @@ import com.xunmei.core.resumption.vo.ResumptionTaskNewDto;
|
|
|
import com.xunmei.core.resumption.vo.WorkChangeResumptionVo;
|
|
|
import com.xunmei.system.api.RemoteRoleService;
|
|
|
import com.xunmei.system.api.domain.SysRole;
|
|
|
-import com.xunmei.system.api.domain.SysWorkTime;
|
|
|
+import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
@@ -191,117 +192,117 @@ public class ResumptionServiceImpl extends ServiceImpl<ResumptionMapper, Resumpt
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void dayTaskByWorkTime(Map<String, Object> params) {
|
|
|
- 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, 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);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private List<Resumption> buildResumptions(AppPlan appPlan, List<AppPlanToRole> planToRoles, SysWorkTime workTime) {
|
|
|
- List<Resumption> resumptionList = new ArrayList<>();
|
|
|
- DateTime dateTime = new DateTime(workTime.getYmdDate());
|
|
|
- String opentime = workTime.getOpenTime();//营业时间
|
|
|
- String closetime = workTime.getCloseTime();//营业终了
|
|
|
- DateTime planstartTime = null;
|
|
|
- DateTime planendTime = null;
|
|
|
-
|
|
|
- DateTime time1 = new DateTime(dateTime);
|
|
|
- time1.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
|
|
- DateTime time2 = new DateTime(dateTime);
|
|
|
- time2.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
|
|
+// @Override
|
|
|
+// public void dayTaskByWorkTime(Map<String, Object> params) {
|
|
|
+// 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, 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);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// }
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
- if (appPlan.getPlanExec() == 1) {//全天 上班时间-下班时间 00:00:00-23:59:59
|
|
|
- planstartTime = time1.setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
- planendTime = DateUtil.endOfDay(time2).setField(DateField.MILLISECOND, 0);
|
|
|
- } else if (appPlan.getPlanExec() == 2) {//营业前 上班时间-营业时间
|
|
|
- planstartTime = time1.setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
- planendTime = time2.setField(DateField.HOUR_OF_DAY, Integer.parseInt(opentime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(opentime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
- } else if (appPlan.getPlanExec() == 3) {//营业期间 营业时间-营业终了
|
|
|
- planstartTime = time1.setField(DateField.HOUR_OF_DAY, Integer.parseInt(opentime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(opentime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
- planendTime = time2.setField(DateField.HOUR_OF_DAY, Integer.parseInt(closetime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(closetime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
- } else if (appPlan.getPlanExec() == 4) {//营业终 营业终了-23.59.59
|
|
|
- planstartTime = time1.setField(DateField.HOUR_OF_DAY, Integer.parseInt(closetime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(closetime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
- planendTime = DateUtil.endOfDay(time2).setField(DateField.MILLISECOND, 0);
|
|
|
- }
|
|
|
- for (AppPlanToRole role : planToRoles) {
|
|
|
- Resumption resumption = new Resumption();
|
|
|
- Ymd ymd = Ymd.of(dateTime);
|
|
|
- resumption.setStatus(1);
|
|
|
- resumption.setYmd(ymd);
|
|
|
- resumption.setName(appPlan.getPlanName());
|
|
|
- resumption.setYmdDate(ymd.getDate());
|
|
|
- resumption.setYmdDay(Long.valueOf(ymd.getDay()));
|
|
|
- resumption.setYmdMonth(Long.valueOf(ymd.getMonth()));
|
|
|
- resumption.setYmdWeek(Long.valueOf(ymd.getWeek()));
|
|
|
- resumption.setYmdYear(Long.valueOf(ymd.getYear()));
|
|
|
- resumption.setYmdHour(Long.valueOf(ymd.getHour()));
|
|
|
- resumption.setYmdQuarter(Long.valueOf(ymd.getQuarter()));
|
|
|
- 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.getPlanCycle());
|
|
|
- resumption.setRoleId(role.getRoleId());
|
|
|
- resumption.setPlanStartTime(planstartTime);
|
|
|
- resumption.setPlanEndTime(planendTime);
|
|
|
- resumption.setCreateTime(new Date());
|
|
|
- resumptionList.add(resumption);
|
|
|
- }
|
|
|
- return resumptionList;
|
|
|
- }
|
|
|
+// private List<Resumption> buildResumptions(AppPlan appPlan, List<AppPlanToRole> planToRoles, SysWorkTime workTime) {
|
|
|
+// List<Resumption> resumptionList = new ArrayList<>();
|
|
|
+// DateTime dateTime = new DateTime(workTime.getYmdDate());
|
|
|
+// String opentime = workTime.getOpenTime();//营业时间
|
|
|
+// String closetime = workTime.getCloseTime();//营业终了
|
|
|
+// DateTime planstartTime = null;
|
|
|
+// DateTime planendTime = null;
|
|
|
+//
|
|
|
+// DateTime time1 = new DateTime(dateTime);
|
|
|
+// time1.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
|
|
+// DateTime time2 = new DateTime(dateTime);
|
|
|
+// time2.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
|
|
+//
|
|
|
+// if (appPlan.getPlanExec() == 1) {//全天 上班时间-下班时间 00:00:00-23:59:59
|
|
|
+// planstartTime = time1.setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
+// planendTime = DateUtil.endOfDay(time2).setField(DateField.MILLISECOND, 0);
|
|
|
+// } else if (appPlan.getPlanExec() == 2) {//营业前 上班时间-营业时间
|
|
|
+// planstartTime = time1.setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
+// planendTime = time2.setField(DateField.HOUR_OF_DAY, Integer.parseInt(opentime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(opentime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
+// } else if (appPlan.getPlanExec() == 3) {//营业期间 营业时间-营业终了
|
|
|
+// planstartTime = time1.setField(DateField.HOUR_OF_DAY, Integer.parseInt(opentime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(opentime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
+// planendTime = time2.setField(DateField.HOUR_OF_DAY, Integer.parseInt(closetime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(closetime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
+// } else if (appPlan.getPlanExec() == 4) {//营业终 营业终了-23.59.59
|
|
|
+// planstartTime = time1.setField(DateField.HOUR_OF_DAY, Integer.parseInt(closetime.split(":")[0])).setField(DateField.MINUTE, Integer.parseInt(closetime.split(":")[1])).setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
|
|
|
+// planendTime = DateUtil.endOfDay(time2).setField(DateField.MILLISECOND, 0);
|
|
|
+// }
|
|
|
+// for (AppPlanToRole role : planToRoles) {
|
|
|
+// Resumption resumption = new Resumption();
|
|
|
+// Ymd ymd = Ymd.of(dateTime);
|
|
|
+// resumption.setStatus(1);
|
|
|
+// resumption.setYmd(ymd);
|
|
|
+// resumption.setName(appPlan.getPlanName());
|
|
|
+// resumption.setYmdDate(ymd.getDate());
|
|
|
+// resumption.setYmdDay(Long.valueOf(ymd.getDay()));
|
|
|
+// resumption.setYmdMonth(Long.valueOf(ymd.getMonth()));
|
|
|
+// resumption.setYmdWeek(Long.valueOf(ymd.getWeek()));
|
|
|
+// resumption.setYmdYear(Long.valueOf(ymd.getYear()));
|
|
|
+// resumption.setYmdHour(Long.valueOf(ymd.getHour()));
|
|
|
+// resumption.setYmdQuarter(Long.valueOf(ymd.getQuarter()));
|
|
|
+// 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.getPlanCycle());
|
|
|
+// resumption.setRoleId(role.getRoleId());
|
|
|
+// resumption.setPlanStartTime(planstartTime);
|
|
|
+// resumption.setPlanEndTime(planendTime);
|
|
|
+// resumption.setCreateTime(new Date());
|
|
|
+// resumptionList.add(resumption);
|
|
|
+// }
|
|
|
+// return resumptionList;
|
|
|
+// }
|
|
|
|
|
|
@Override
|
|
|
public List<CoreSafetyExceptionData> findResumptionList(DateTime time) {
|