jiazx0107
2026-01-17 cf3b3fe3f9d46e28ac84f1aa61a3d9754aabf421
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -2,19 +2,26 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.igds.constant.Constant;
import com.fzzy.igds.constant.InoutConstant;
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.OrderStatus;
import com.fzzy.work.data.WorkNode;
import com.fzzy.work.data.WorkStatus;
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;
@@ -28,19 +35,68 @@
public class WorkOrderService {
    @Resource
    private WorkOrderMapper workOrderMapper;
    @Resource
    private InoutNoticeInMapper noticeInMapper;
    @Resource
    private InoutNoticeOutMapper noticeOutMapper;
    public void pageQuery(Page<WorkOrder> page, WorkOrderParam param) {
    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 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());
@@ -58,13 +114,21 @@
    public List<SysDictData> triggerStatus() {
        List<SysDictData> list = new ArrayList<SysDictData>();
        for (OrderStatus w : OrderStatus.values()) {
        for (WorkStatus w : WorkStatus.values()) {
            list.add(new SysDictData(w.getMsg(), w.getCode()));
        }
        return list;
    }
    public List<SysDictData> triggerType() {
        List<SysDictData> list = new ArrayList<SysDictData>();
        for (WorkBizType w : WorkBizType.values()) {
            list.add(new SysDictData(w.getMsg(), w.getCode()));
        }
        return list;
    }
    public List<SysDictData> triggerBizType() {
        List<SysDictData> list = new ArrayList<SysDictData>();
        for (WorkBizType w : WorkBizType.values()) {
            list.add(new SysDictData(w.getMsg(), w.getCode()));
@@ -92,4 +156,25 @@
    }
    public WorkOrder selectById(String orderId) {
        if (null == orderId) return null;
        return workOrderMapper.selectById(orderId);
    }
    public void complete(WorkOrder work) {
        //更新工单
        workOrderMapper.updateById(work);
        //更新入库通知单状态
        if (work.getBizType().equals(WorkBizType.TYPE_10.getCode())) {
            noticeInMapper.auditComplete(work.getBusinessId(), work.getStatus());
        }
        //更新入库通知单状态
        if (work.getBizType().equals(WorkBizType.TYPE_20.getCode())) {
            noticeOutMapper.auditComplete(work.getBusinessId(), work.getStatus());
        }
    }
}