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<JSONObject> 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<WorkOrder> 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<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
|
SysDept dept = deptService.getCacheDept(param.getCompanyId(), param.getDeptId().toString());
|
List<PWorkOrderDto> 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<WorkOrder> 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());
|
}
|
}
|
}
|
}
|