package com.fzzy.igds.app.v1.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fzzy.common.constant.RespCodeEnum; import com.fzzy.igds.app.v1.constant.PhoneConstant; import com.fzzy.igds.app.v1.data.AuthUser; import com.fzzy.igds.app.v1.data.ParamOrder; import com.fzzy.igds.app.v1.data.PhoneRequest; import com.fzzy.igds.app.v1.data.PhoneResponse; import com.fzzy.igds.app.v1.dto.PWorkOrderDto; import com.fzzy.igds.app.v1.service.PhoneService; import com.fzzy.igds.app.v1.util.PhoneRespUtil; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.service.SysDeptService; import com.fzzy.igds.service.SysUserService; import com.fzzy.igds.utils.ContextUtil; import com.fzzy.work.data.WorkBizType; import com.fzzy.work.data.WorkNode; import com.fzzy.work.data.WorkOrderParam; import com.fzzy.work.data.WorkStatus; import com.fzzy.work.domain.WorkOrder; import com.fzzy.work.mapper.WorkOrderMapper; import com.fzzy.work.service.WorkOrderService; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; /** * @Author: YYC * @Description: 工单管理-查询工单列表 * @DateTime: 2026-1-12 14:43 **/ @Service public class ServiceImpl5101 implements PhoneService { @Resource private WorkOrderMapper workOrderMapper; @Autowired private SysDeptService deptService; @Autowired private SysUserService userService; @Override public String getInterfaceId() { return PhoneConstant.API_PHONE_5101; } @Override public PhoneResponse execute(PhoneRequest req, AuthUser authUser) throws Exception { //转化对象 ParamOrder param = JSONObject.parseObject(req.getData().toString(), ParamOrder.class); if (null == param) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } //参数验证 if (StringUtils.isEmpty(param.getDeptId())) { return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "参数有误,请重试!!"); } param.setCompanyId(authUser.getCompanyId()); QueryWrapper queryWrapper = new QueryWrapper<>(); // queryWrapper.eq(null != param.getStatus(), "status", WorkStatus.STATUS_30.getCode()); String scope = WorkOrderParam.SCOPE_SELF; SysUser user = userService.getUserByLoginName(authUser.getUsername()); this.updateQueryWrapper(queryWrapper, user, scope); List list = workOrderMapper.selectList(queryWrapper); SysDept dept = deptService.getCacheDept(param.getCompanyId(), param.getDeptId().toString()); List reqList = new ArrayList<>(); PWorkOrderDto orderDto; if (null != dept) { for (WorkOrder workOrder : list) { orderDto = new PWorkOrderDto(); BeanUtils.copyProperties(workOrder, orderDto); orderDto.setDeptName(dept.getDeptName()); orderDto.setBizTypeName(WorkBizType.getMsg(workOrder.getBizType())); reqList.add(orderDto); } } return PhoneRespUtil.success(reqList, req); } private void updateQueryWrapper(QueryWrapper queryWrapper, SysUser user, String scope) { queryWrapper.eq("company_id", user.getCompanyId()); //如果是个人工单,处理人为空或者为当前人 if (WorkOrderParam.SCOPE_SELF.equals(scope)) { queryWrapper.and((wrapper)->{ wrapper.isNull("assignee_id").or().eq("assignee_id", user.getLoginName()); }); } //监管用户-查看所有库区和待办 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 (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()); } } } }