lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/aspect/EquipmentHistoryLogAspect.java
@@ -106,7 +106,7 @@ log.setEquipmentId(order.getEquipmentId()); log.setBusinessId(order.getId()); log.setOperator(order.getOperator()); log.setDescription(order.getConfirmComment()); log.setDescription(order.getInspectConfirmComment()); log.setCreateTime(order.getActualEndTime()); } } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -120,7 +120,7 @@ */ @Excel(name = "中心/工区/工段", width = 15, orderNum = "4") @ApiModelProperty(value = "中心/工区/工段") @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "factory_code") @Dict(dictTable = "eam_base_factory",dicText = "factory_name",dicCode = "org_code") private String factoryOrgCode; /** lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrder.java
@@ -78,7 +78,7 @@ */ @Excel(name = "标准ID", width = 15) @ApiModelProperty(value = "标准ID") @Dict(dicCode = "eam_maintenance_standard, standard_name, id") @Dict(dictTable = "eam_maintenance_standard", dicCode = "id", dicText = "standard_name") private String standardId; /** * 计划保养日期 @@ -101,15 +101,14 @@ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date actualEndTime; /** * 保养人 */ @Excel(name = "保养人", width = 15) @ApiModelProperty(value = "保养人") @Dict(dicCode = "sys_user, realname, username") /** 操作工 */ @ApiModelProperty(value = "操作工") private String operator; /** 维修工 */ @ApiModelProperty(value = "维修工") private String repairman ; /** * 保养状态 * 保养状态 待保养、保养中、管理员确认、检查人确认、已完成 */ @Excel(name = "保养状态", width = 15) @ApiModelProperty(value = "保养状态") @@ -123,55 +122,35 @@ @Dict(dicCode = "order_creation_method") private String creationMethod; /** * 维修组长确认 * 管理员确认 */ @Excel(name = "维修组长确认", width = 15) @ApiModelProperty(value = "维修组长确认") @Excel(name = "管理员确认", width = 15) @ApiModelProperty(value = "管理员确认") @Dict(dicCode = "sys_user, realname, username") private String confirmUser; /** * 确认意见 */ @ApiModelProperty(value = "确认意见") private String confirmComment; /** 确认类型 1 通过 2 驳回 */ @ApiModelProperty(value = "确认类型") @Dict(dicCode = "approved_rejected") private String confirmDealType; /** * 确认时间 */ @ApiModelProperty(value = "确认时间") private String manageUser; /** 问题描述;默认 无 */ @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; /** * 单位领导确认 */ @Excel(name = "单位领导确认", width = 15) @ApiModelProperty(value = "单位领导确认") @Dict(dicCode = "sys_user, realname, username") private String confirmLeader; /** * 领导意见 */ @ApiModelProperty(value = "领导意见") private String leaderConfirmComment; /** * 领导确认时间 */ @ApiModelProperty(value = "领导确认时间") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date leaderConfirmTime; /** * 保养上传图片 */ @Excel(name = "保养上传图片", width = 15) @ApiModelProperty(value = "保养上传图片") private String imageFiles; /** 检查人确认 */ @ApiModelProperty(name = "检查人确认",notes = "") private String inspector; /** 检查人意见 */ @ApiModelProperty(name = "检查人意见",notes = "") private String inspectConfirmComment; /** 检查人确认时间 */ @ApiModelProperty(name = "检查人确认时间",notes = "") private String inspectConfirmTime; /** HF编码 */ @ApiModelProperty(name = "HF编码",notes = "") private String hfCode; /** * 备注 */ @@ -184,4 +163,7 @@ private String equipmentCode; @TableField(exist = false) private String equipmentName; //型号 @TableField(exist = false) private String equipmentModel; } lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamSecondMaintenanceOrderDetail.java
@@ -51,28 +51,19 @@ @Excel(name = "项目序号", width = 15) @ApiModelProperty(value = "项目序号") private Integer itemCode; /**保养项目*/ @Excel(name = "保养项目", width = 15) @ApiModelProperty(value = "保养项目") /** 保养分类;操作工、维修工 */ @ApiModelProperty(name = "保养分类",notes = "操作工、维修工") private String itemCategory; /** 保养内容 */ @ApiModelProperty(name = "保养内容",notes = "") private String itemName; /**部位*/ @Excel(name = "部位", width = 15) @ApiModelProperty(value = "部位") private String itemPart; /**保养要求*/ @Excel(name = "保养要求", width = 15) @ApiModelProperty(value = "保养要求") private String itemDemand; /**保养结果*/ @Excel(name = "保养结果", width = 15) @ApiModelProperty(value = "保养结果") @ApiModelProperty(name = "保养结果",notes = "") private String maintenanceResult; /**报修标记*/ @Excel(name = "报修标记", width = 15) @ApiModelProperty(value = "报修标记") @ApiModelProperty(name = "报修标记",notes = "") private String reportFlag; /**异常描述*/ @Excel(name = "异常描述", width = 15) @ApiModelProperty(value = "异常描述") @ApiModelProperty(name = "异常描述",notes = "") private String exceptionDescription; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSecondMaintenanceOrderController.java
@@ -80,7 +80,7 @@ if (request == null) { return Result.error("添加的对象不能为空!"); } if (CollectionUtil.isEmpty(request.getTableDetailList())) { if (StrUtil.isEmpty(request.getStandardId())) { return Result.error("保养项不能为空!"); } String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.SECOND_MAINTENANCE_CODE_RULE); @@ -106,7 +106,7 @@ if (request == null) { return Result.error("添加的对象不能为空!"); } if (CollectionUtil.isEmpty(request.getTableDetailList())) { if (StrUtil.isEmpty(request.getStandardId())) { return Result.error("保养项不能为空!"); } boolean b = eamSecondMaintenanceOrderService.editMaintenance(request); @@ -228,7 +228,7 @@ if (request == null) { return Result.error("审批的对象不能为空!"); } if (CollectionUtil.isEmpty(request.getTableDetailList())) { if (StrUtil.isEmpty(request.getStandardId())) { return Result.error("保养项不能为空!"); } // 检查请求参数 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamSecondMaintenanceOrderMapper.xml
@@ -3,7 +3,7 @@ <mapper namespace="org.jeecg.modules.eam.mapper.EamSecondMaintenanceOrderMapper"> <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamSecondMaintenanceOrder"> select wmo.*, e.equipment_code, e.equipment_name 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 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamSecondMaintenanceRequest.java
@@ -7,8 +7,10 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.modules.eam.entity.EamSecondMaintenanceOrderDetail; import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; @@ -24,43 +26,100 @@ /**主键*/ @ApiModelProperty(value = "主键") private String id; /**工单号*/ /** * 工单号 */ @Excel(name = "工单号", width = 15) @ApiModelProperty(value = "工单号") private String orderNum; /**设备ID*/ /** * 设备ID */ @Excel(name = "设备ID", width = 15) @ApiModelProperty(value = "设备ID") private String equipmentId; /**标准ID*/ /** * 标准ID */ @Excel(name = "标准ID", width = 15) @ApiModelProperty(value = "标准ID") @Dict(dicCode = "eam_maintenance_standard, standard_name, id") private String standardId; /**保养日期*/ @ApiModelProperty(value = "保养日期") /** * 计划保养日期 */ @ApiModelProperty(value = "计划保养日期") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date maintenanceDate; /**保养人*/ @ApiModelProperty(value = "保养人") /** * 实际开始时间 */ @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 = "操作工") private String operator; /**备注*/ /** 维修工 */ @ApiModelProperty(value = "维修工") 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(dicCode = "sys_user, realname, username") private String manageUser; /** 问题描述;默认 无 */ @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 = "") private String inspector; /** 检查人意见 */ @ApiModelProperty(name = "检查人意见",notes = "") private String inspectConfirmComment; /** 检查人确认时间 */ @ApiModelProperty(name = "检查人确认时间",notes = "") private String inspectConfirmTime; /** HF编码 */ @ApiModelProperty(name = "HF编码",notes = "") private String hfCode; /** * 备注 */ @Excel(name = "备注", width = 15) @ApiModelProperty(value = "备注") private String remark; /**创建方式*/ @ApiModelProperty(value = "创建方式") private String creationMethod; /**列表 保养项明细*/ @ApiModelProperty(value = "列表 保养项明细") private List<EamSecondMaintenanceOrderDetail> tableDetailList; /**删除 保养项明细*/ @ApiModelProperty(value = "删除 保养项明细") private List<EamSecondMaintenanceOrderDetail> removeDetailList; //确认操作 /**确认意见*/ @ApiModelProperty(value = "确认意见") private String confirmComment; @ApiModelProperty(value = "确认类型") private String confirmDealType; /**领导确认意见*/ @ApiModelProperty(value = "领导确认意见") private String leaderConfirmComment; } lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -39,6 +39,7 @@ import org.jeecg.modules.system.service.IBaseFactoryUserService; import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.vo.UserSelector; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -82,6 +83,10 @@ private IEamReportRepairService eamReportRepairService; @Autowired private IEamEquipmentExtendService eamEquipmentExtendService; @Autowired private IEamBaseHFCodeService hfCodeService; @Autowired private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService; @Override public IPage<EamSecondMaintenanceOrder> queryPageList(Page<EamSecondMaintenanceOrder> page, EamSecondMaintenanceQuery query) { @@ -155,6 +160,12 @@ order.setStandardId(request.getStandardId()); order.setMaintenanceDate(request.getMaintenanceDate()); order.setOperator(request.getOperator()); //技术状态鉴定表 EamBaseHFCode eamBaseHFCode = hfCodeService.selectByCategory(HfTemplateCategoryEnum.SECOND_MAINTENANCE.name()); if(eamBaseHFCode == null) { throw new JeecgBootException("未配置技术状态鉴定表的HF编码,添加失败!"); } order.setHfCode(eamBaseHFCode.getHfCode()); order.setRemark(request.getRemark()); //状态初始化 order.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); @@ -163,43 +174,17 @@ order.setDelFlag(CommonConstant.DEL_FLAG_0); eamSecondMaintenanceOrderMapper.insert(order); //处理明细数据 if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { request.getTableDetailList().forEach(tableDetail -> { tableDetail.setId(null); tableDetail.setOrderId(order.getId()); List<EamMaintenanceStandardDetail> eamMaintenanceStandardDetailList= eamMaintenanceStandardDetailService.selectByStandardId(order.getStandardId()); List<EamSecondMaintenanceOrderDetail> requestTableDetailList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(eamMaintenanceStandardDetailList)) { eamMaintenanceStandardDetailList.forEach(item -> { EamSecondMaintenanceOrderDetail detail = new EamSecondMaintenanceOrderDetail(); BeanUtils.copyProperties(item, detail); detail.setOrderId(order.getId()); requestTableDetailList.add(detail); }); secondMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); secondMaintenanceOrderDetailService.saveBatch(requestTableDetailList); } //判断是否存在保养人 如果存在则启动流程 if (StringUtils.isNotBlank(order.getOperator())) { //启动流程 flowCommonService.initActBusiness("工单号: " + order.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + ";安装位置" + equipment.getInstallationPosition(), order.getId(), "IEamSecondMaintenanceOrderService", "second_maintenance_process", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", order.getId()); if (StrUtil.isEmpty(order.getRemark())) { variables.put("organization", "新增二保工单默认启动流程"); variables.put("comment", "新增二保工单默认启动流程"); } else { variables.put("organization", order.getRemark()); variables.put("comment", order.getRemark()); } variables.put("proofreading", true); List<String> usernames = new ArrayList<>(); usernames.add(order.getOperator()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("second_maintenance_process", variables); if (result != null) { //更新周保状态 order.setMaintenanceStatus(SecondMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); order.setActualStartTime(new Date()); eamSecondMaintenanceOrderMapper.updateById(order); //更新设备保养状态 eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_SECOND_MAINTENANCE.name()); return result.isSuccess(); } } return true; } @@ -218,33 +203,9 @@ throw new JeecgBootException("只有待保养状态的数据才可编辑!"); } entity.setMaintenanceDate(request.getMaintenanceDate()); entity.setOperator(request.getOperator()); entity.setRemark(request.getRemark()); eamSecondMaintenanceOrderMapper.updateById(entity); //处理详情 if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { List<EamSecondMaintenanceOrderDetail> addList = new ArrayList<>(); List<EamSecondMaintenanceOrderDetail> updateList = new ArrayList<>(); request.getTableDetailList().forEach(tableDetail -> { tableDetail.setOrderId(entity.getId()); if (tableDetail.getId() == null) { addList.add(tableDetail); } else { updateList.add(tableDetail); } }); if (CollectionUtil.isNotEmpty(addList)) { secondMaintenanceOrderDetailService.saveBatch(addList); } if (CollectionUtil.isNotEmpty(updateList)) { secondMaintenanceOrderDetailService.updateBatchById(updateList); } } if (CollectionUtil.isNotEmpty(request.getRemoveDetailList())) { List<String> ids = request.getRemoveDetailList().stream().map(EamSecondMaintenanceOrderDetail::getId).collect(Collectors.toList()); secondMaintenanceOrderDetailService.removeBatchByIds(ids); } //判断是否存在保养人 如果存在则启动流程 if (StringUtils.isNotBlank(entity.getOperator())) { //启动流程 @@ -385,10 +346,6 @@ //设置entity entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name()); entity.setActualEndTime(new Date()); //处理详情 if (CollectionUtil.isNotEmpty(request.getTableDetailList())) { secondMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList()); } //更新设备保养状态 eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name()); break; @@ -399,33 +356,12 @@ } //班组长确认 userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); values.put("dataId", entity.getId()); values.put("organization", request.getConfirmComment()); values.put("comment", request.getConfirmComment()); values.put("NextAssignee", userApprovalList); values.put("confirmation", request.getConfirmDealType()); request.setComment(request.getConfirmComment()); //设置entity entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name()); entity.setConfirmTime(new Date()); if (CommonConstant.HAS_CANCLE.equals(request.getConfirmDealType())) { //驳回 userApprovalList = new ArrayList<>(); userApprovalList.add(entity.getOperator()); values.put("NextAssignee", userApprovalList); entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); } //处理报修 List<EamSecondMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(collect)) { eamReportRepairService.reportRepairFromSecondMaintenance(equipment.getId(), entity.getOperator(), collect); } break; case WAIT_LEADER_CONFIRM: values.put("dataId", entity.getId()); values.put("organization", request.getLeaderConfirmComment()); values.put("comment", request.getLeaderConfirmComment()); request.setComment(request.getLeaderConfirmComment()); //设置entity entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.COMPLETE.name()); //更新设备保养状态