From befc2c71a29f225aaa707c90effc03c67c8ac964 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期三, 09 四月 2025 11:38:41 +0800 Subject: [PATCH] 维修工单 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 94 insertions(+), 5 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java index 5612c98..314cd31 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java @@ -4,25 +4,54 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.ReportRepairEnum; +import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamRepairOrder; +import org.jeecg.modules.eam.entity.EamReportRepair; import org.jeecg.modules.eam.mapper.EamRepairOrderMapper; +import org.jeecg.modules.eam.service.IEamEquipmentService; import org.jeecg.modules.eam.service.IEamRepairOrderService; +import org.jeecg.modules.eam.service.IEamReportRepairService; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import javax.annotation.Resource; +import java.util.*; /** * @Description: 缁翠慨宸ュ崟 * @Author: Lius * @Date: 2025-04-03 */ -@Service -public class EamRepairOrderServiceImpl extends ServiceImpl<EamRepairOrderMapper, EamRepairOrder> implements IEamRepairOrderService { +@Service("IEamRepairOrderService") +public class EamRepairOrderServiceImpl extends ServiceImpl<EamRepairOrderMapper, EamRepairOrder> implements IEamRepairOrderService, FlowCallBackServiceI { + + @Resource + private FlowCommonService flowCommonService; + + @Resource + private ISysBusinessCodeRuleService businessCodeRuleService; + + @Resource + private IEamReportRepairService eamReportRepairService; + + @Resource + private IFlowDefinitionService flowDefinitionService; + + @Resource + private IEamEquipmentService eamEquipmentService; /** * 鍒嗛〉鍒楄〃 @@ -45,4 +74,64 @@ } return this.baseMapper.pageList(page, eamRepairOrder, sysUser.getId(), equipmentIds); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveRepairOrder(EamRepairOrder eamRepairOrder) { + String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE); + eamRepairOrder.setRepairCode(codeSeq); + EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); + eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); + eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); + eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_REPAIR.name()); + eamRepairOrder.setActualStartTime(DateUtils.getNow()); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + eamRepairOrder.setRepairer(user.getRealname()); + super.save(eamRepairOrder); + EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); + // 鍚姩缁翠慨娴佺▼ + flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�", + eamRepairOrder.getId(), + "IEamRepairOrderService", + "eam_repair", + null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", eamRepairOrder.getId()); + variables.put("organization", "缁翠慨宸ュ崟鍚姩娴佺▼"); + variables.put("comment", "缁翠慨宸ュ崟鍚姩娴佺▼"); + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(user.getUsername()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables); + if (!result.isSuccess()) { + super.removeById(eamRepairOrder); + } else { + eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_REPAIR.name()); + eamReportRepairService.updateById(eamReportRepair); + } + } + + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + + } + + @Override + public Object getBusinessDataById(String dataId) { + return null; + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return Collections.emptyMap(); + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //鑾峰彇涓嬩竴姝ュ鐞嗕汉 + Object object=values.get("NextAssignee"); + return (List<String>) object; + } } -- Gitblit v1.9.3