jiazx0107
2026-01-17 4befacb63512c0db7d17771c94d9506a2c673a84
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.igds.constant.InoutConstant;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.mapper.InoutNoticeInMapper;
import com.fzzy.igds.mapper.InoutNoticeOutMapper;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.fzzy.work.data.WorkNode;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.data.WorkOrderParam;
@@ -54,18 +55,47 @@
        workOrderMapper.insert(data);
    }
    public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
    public void pageQueryByUserType(Page<WorkOrder> page, WorkOrderParam param) {
        //获取当前登录人
        SysUser user = ContextUtil.getLoginUser();
        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("company_id", user.getCompanyId());
        if (null == param) {
            param = new WorkOrderParam();
        String scope = param.getScope();
        if (StringUtils.isEmpty(scope)) scope = WorkOrderParam.SCOPE_SELF;
        //监管用户-查看所有库区和待办
        if (Constant.USER_TYPE_10.equals(user.getUserType())) {
            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
                queryWrapper.eq("node", WorkNode.NODE2.getCode());
            }
        }
        //库区用户,如果是公司用户可以查看公司下属所有库区,如果为当前库区只查询当前库区
        if (Constant.USER_TYPE_30.equals(user.getUserType())) {
            if (ContextUtil.isDepotUser(user.getDeptId() + "")) {
                queryWrapper.eq("dept_id", user.getDeptId() + "");
            } else {
                queryWrapper.likeRight("dept_id", user.getDeptId() + "");
            }
            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
                queryWrapper.eq("node", WorkNode.NODE1.getCode());
            }
        }
        if (null == param.getCompanyId()) param.setCompanyId(ContextUtil.getCompanyId());
        queryWrapper.eq("company_id", param.getCompanyId());
        //银行用户,根据合同查询银行下所有库区
        if (Constant.USER_TYPE_20.equals(user.getUserType())) {
            //如果没有配置银行,设置一个不存在的银行号
            if (StringUtils.isBlank(user.getUserData())) user.setUserData("9");
            queryWrapper.eq("bank_id", user.getUserData());
            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
                queryWrapper.eq("node", WorkNode.NODE3.getCode());
            }
        }
        queryWrapper.eq(null != param.getDeptId(), "dept_id", param.getDeptId());
        queryWrapper.like(null != param.getName(), "title", param.getName());
@@ -105,6 +135,26 @@
        return list;
    }
    public List<SysDictData> triggerNode() {
        List<SysDictData> list = new ArrayList<SysDictData>();
        for (WorkNode w : WorkNode.values()) {
            list.add(new SysDictData(w.getMsg(), w.getCode()));
        }
        return list;
    }
    public WorkOrder selectByBusinessId(String businessId) {
        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("business_id", businessId);
        List<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
        if (null == list || list.isEmpty()) return null;
        return list.get(0);
    }
    /**
     * 获取用户待处理工单数
     * @param status
@@ -131,8 +181,8 @@
    }
    public void complete(WorkOrder work) {
        //更新工单状态
        workOrderMapper.updateStatus(work.getId(), work.getStatus());
        //更新工单
        workOrderMapper.updateById(work);
        //更新入库通知单状态
        if (work.getBizType().equals(WorkBizType.TYPE_10.getCode())) {
@@ -144,4 +194,6 @@
            noticeOutMapper.auditComplete(work.getBusinessId(), work.getStatus());
        }
    }
}