lyh
7 天以前 37ad4f4417c940b2b376cbcdcc22a097f2cd12a9
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -22,6 +22,7 @@
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.dto.EamSecondMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamEquipmentMapper;
import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
@@ -95,6 +96,8 @@
    private EamMaintenanceStandardMapper eamMaintenanceStandardMapper;
    @Resource
    private BaseFactoryMapper baseFactoryMapper;
    @Autowired
    private IEamSecondMaintenanceOrderDetailService eamSecondMaintenanceOrderDetailService;
    @Override
    public IPage<EamSecondMaintenanceOrder> queryPageList(Page<EamSecondMaintenanceOrder> page, EamSecondMaintenanceQuery query) {
@@ -666,6 +669,68 @@
        return entity;
    }
    /**
     * 批量打印二保工单
     * @param ids
     * @return
     */
    @Override
    public List<EamSecondMaintenanceOrderExport> export(String ids){
        QueryWrapper<EamSecondMaintenanceOrderExport> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString());
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return new ArrayList<>();
        }
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            } else {
                return new ArrayList<>();
            }
        }
        //查询条件过滤
        if (StrUtil.isNotEmpty(ids)) {
            List<String> idList = Arrays.asList(ids.split(","));
            queryWrapper.in("wmo.id", idList);
        } else {
            queryWrapper.orderByDesc("wmo.create_time");
        }
        List<EamSecondMaintenanceOrderExport> eamSecondMaintenanceOrderExports=eamSecondMaintenanceOrderMapper.queryList(queryWrapper);
        //填充对应二保明细
        if (!eamSecondMaintenanceOrderExports.isEmpty()){
            eamSecondMaintenanceOrderExports.forEach(item->{
               //维修人员保养内容
               List<EamSecondMaintenanceOrderDetail> maintenanceOrderDetails=eamSecondMaintenanceOrderDetailService.
                       list(new QueryWrapper<EamSecondMaintenanceOrderDetail>().eq("order_id",item.getId()).
                               eq("item_category",EamMaintenanceStandardDetailCategory.REPAIRER_MAINTENANCE.name())
                               .orderByAsc("item_code"));
               if (!maintenanceOrderDetails.isEmpty()){
                   item.setMaintenanceOrderDetails(maintenanceOrderDetails);
               }
               //操作人员保养内容
                List<EamSecondMaintenanceOrderDetail> operationOrderDetails=eamSecondMaintenanceOrderDetailService.
                        list(new QueryWrapper<EamSecondMaintenanceOrderDetail>().eq("order_id",item.getId()).
                                eq("item_category",EamMaintenanceStandardDetailCategory.OPERATOR_MAINTENANCE.name())
                                .orderByAsc("item_code"));
                if (!operationOrderDetails.isEmpty()) {
                    item.setOperationOrderDetails(operationOrderDetails);
                }
            });
        }
        return eamSecondMaintenanceOrderExports;
    }
    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
        return todoUsers != null && todoUsers.contains(user.getUsername());