package com.fzzy.work.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.igds.utils.DateUtil; import com.fzzy.work.data.OrderStatus; import com.fzzy.work.data.WorkBizType; import com.fzzy.work.data.WorkOrderParam; import com.fzzy.work.domain.WorkOrder; import com.fzzy.work.mapper.WorkOrderMapper; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.StringUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; /** * @Desc: * @Author: Andy.jia * @Date: 2025/12/19 */ @Service public class WorkOrderService { @Resource private WorkOrderMapper workOrderMapper; public void addData(WorkOrder data) { if(null == data.getId()) data.setId(ContextUtil.generateOrderId("GD")); if(null == data.getCompanyId()) data.setCompanyId(ContextUtil.getCompanyId()); if(null == data.getCreateBy()){ SysUser user = ContextUtil.getLoginUser(); data.setCreateBy(user.getUserName()); data.setCreateById(user.getLoginName()); } data.setUpdateTime(new Date()); workOrderMapper.insert(data); } public void pageQuery(Page page, WorkOrderParam param) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (null == param) { param = new WorkOrderParam(); } if (null == param.getCompanyId()) param.setCompanyId(ContextUtil.getCompanyId()); queryWrapper.eq("company_id", param.getCompanyId()); queryWrapper.eq(null != param.getDeptId(), "dept_id", param.getDeptId()); queryWrapper.like(null != param.getName(), "title", param.getName()); queryWrapper.eq(null != param.getStatus(), "status", param.getStatus()); if (null != param.getStart()) { queryWrapper.gt("create_time", DateUtil.getNextZero(param.getStart())); } if (null != param.getEnd()) { queryWrapper.lt("create_time", DateUtil.getCurZero(param.getEnd())); } workOrderMapper.selectPage(page, queryWrapper); } public List triggerStatus() { List list = new ArrayList(); for (OrderStatus w : OrderStatus.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } public List triggerType() { List list = new ArrayList(); for (WorkBizType w : WorkBizType.values()) { list.add(new SysDictData(w.getMsg(), w.getCode())); } return list; } /** * 获取用户待处理工单数 * @param status * @param userId * @return */ public Integer getNumByUser(String status, String userId) { QueryWrapper queryWrapper = new QueryWrapper<>(); if (StringUtils.isBlank(userId) || StringUtils.isBlank(status)) { return 0; } queryWrapper.eq("assignee_id", userId); queryWrapper.eq("status", status); return workOrderMapper.selectCount(queryWrapper); } }