lyh
10 天以前 37ad4f4417c940b2b376cbcdcc22a097f2cd12a9
二保批量打印接口
已添加1个文件
已修改6个文件
270 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamSecondMaintenanceOrderExport.java 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrderDetail.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSecondMaintenanceOrderController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamSecondMaintenanceOrderMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSecondMaintenanceOrderService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamSecondMaintenanceOrderExport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,164 @@
package org.jeecg.modules.eam.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.aspect.annotation.DictList;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrderDetail;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
@Data
@TableName("eam_second_maintenance_order")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "eam_second_maintenance_order对象", description = "设备二级保养")
public class EamSecondMaintenanceOrderExport {
    /**
     * ä¸»é”®
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * å·¥å•号
     */
    @Excel(name = "工单号", width = 15)
    @ApiModelProperty(value = "工单号")
    private String orderNum;
    /**
     * è®¾å¤‡ID
     */
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**
     * æ ‡å‡†ID
     */
    @Excel(name = "标准ID", width = 15)
    @ApiModelProperty(value = "标准ID")
    @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name")
    private String standardId;
    /**
     * è®¡åˆ’保养日期
     */
    @ApiModelProperty(value = "计划保养日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date maintenanceDate;
    /**
     * å®žé™…开始时间
     */
    @ApiModelProperty(value = "实际开始时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actualStartTime;
    /**
     * å®žé™…结束时间
     */
    @ApiModelProperty(value = "实际结束时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date actualEndTime;
    /** æ“ä½œå·¥ */
    @ApiModelProperty(value = "操作工")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String operator ;
    /** ç»´ä¿®å·¥ */
    @ApiModelProperty(value = "维修工")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String repairman ;
    /**
     * ä¿å…»çŠ¶æ€  å¾…保养、保养中、管理员确认、检查人确认、已完成
     */
    @Excel(name = "保养状态", width = 15)
    @ApiModelProperty(value = "保养状态")
    @Dict(dicCode = "second_maintenance_status")
    private String maintenanceStatus;
    /**
     * åˆ›å»ºæ–¹å¼
     */
    @Excel(name = "创建方式", width = 15)
    @ApiModelProperty(value = "创建方式")
    @Dict(dicCode = "order_creation_method")
    private String creationMethod;
    /**
     * ç®¡ç†å‘˜ç¡®è®¤
     */
    @Excel(name = "管理员确认", width = 15)
    @ApiModelProperty(value = "管理员确认")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String manageUser;
    /**
     * ç®¡ç†å‘˜ç¡®è®¤ç»“æžœ
     */
    @ApiModelProperty(value = "管理员确认结果")
    @Dict(dicCode = "approve_reject")
    private String manageUserResult;
    /** é—®é¢˜æè¿°;默认 æ—  */
    @ApiModelProperty(name = "问题描述",notes = "默认 æ— ")
    private String problemDescription ;
    /** å¤„理描述;默认 æ—  */
    @ApiModelProperty(name = "处理描述",notes = "默认 æ— ")
    private String dealDescription ;
    /** ç®¡ç†å‘˜ç¡®è®¤æ—¶é—´ */
    @ApiModelProperty(name = "管理员确认时间",notes = "")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    /** æ£€æŸ¥äººç¡®è®¤ */
    @ApiModelProperty(name = "检查人确认",notes = "")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String inspector;
    /**
     * æ£€æŸ¥äººç¡®è®¤ç»“æžœ
     */
    @ApiModelProperty(name = "检查人确认结果",notes = "")
    @Dict(dicCode = "approve_reject")
    private String inspectorResult;
    /** æ£€æŸ¥äººæ„è§ */
    @ApiModelProperty(name = "检查人意见",notes = "")
    private String inspectConfirmComment;
    /** æ£€æŸ¥äººç¡®è®¤æ—¶é—´ */
    @ApiModelProperty(name = "检查人确认时间",notes = "")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date inspectConfirmTime;
    /** HF编码 */
    @ApiModelProperty(name = "HF编码",notes = "")
    private String hfCode;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    //型号
    @TableField(exist = false)
    private String equipmentModel;
    //维修人员保养内容
    @DictList
    private List<EamSecondMaintenanceOrderDetail> maintenanceOrderDetails;
    //操作人员保养内容
    @DictList
    private List<EamSecondMaintenanceOrderDetail> operationOrderDetails;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrderDetail.java
@@ -8,6 +8,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@@ -59,6 +60,7 @@
    private String itemName;
    /** ä¿å…»ç»“æžœ */
    @ApiModelProperty(name = "保养结果",notes = "")
    @Dict(dicCode = "maintenance_result")
    private String maintenanceResult;
    /** æŠ¥ä¿®æ ‡è®° */
    @ApiModelProperty(name = "报修标记",notes = "")
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSecondMaintenanceOrderController.java
@@ -251,6 +251,18 @@
    }
    /**
     * æ‰¹é‡æ‰“印二保工单
     * @param ids
     * @return
     */
    @AutoLog(value = "设备二级保养-批量打印二保工单")
    @ApiOperation(value = "设备二级保养-批量打印二保工单", notes = "设备二级保养-批量打印二保工单")
    @GetMapping(value = "/batchExport")
    public Result<?> export(String ids){
        return Result.ok(eamSecondMaintenanceOrderService.export(ids));
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamSecondMaintenanceOrderMapper.java
@@ -6,8 +6,7 @@
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.dto.EamSecondMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder;
import java.util.List;
@@ -22,9 +21,18 @@
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param page
     * @param queryWrapper
     * @return
     */
    IPage<EamSecondMaintenanceOrder> queryPageList(Page<EamSecondMaintenanceOrder> page, @Param(Constants.WRAPPER) QueryWrapper<EamSecondMaintenanceOrder> queryWrapper);
    /**
     * åˆ—表查询
     * @param queryWrapper
     * @return
     */
    List<EamSecondMaintenanceOrderExport> queryList(@Param(Constants.WRAPPER) QueryWrapper<EamSecondMaintenanceOrderExport> queryWrapper);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml
@@ -10,4 +10,11 @@
        left join flow_my_business f on f.data_id=wmo.id
        ${ew.customSqlSegment}
    </select>
    <select id="queryList" resultType="org.jeecg.modules.eam.dto.EamSecondMaintenanceOrderExport">
        select wmo.*, e.equipment_code, e.equipment_name,e.equipment_model
        from eam_second_maintenance_order wmo
        inner join eam_equipment e
        on wmo.equipment_id = e.id
        ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSecondMaintenanceOrderService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.dto.EamSecondMaintenanceOrderExport;
import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamSecondMaintenanceQuery;
@@ -57,4 +58,11 @@
     * @return
     */
    EamSecondMaintenanceOrder approval(EamSecondMaintenanceRequest request);
    /**
     * æ‰¹é‡æ‰“印二保工单
     * @param ids
     * @return
     */
    List<EamSecondMaintenanceOrderExport> export(String ids);
}
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());