From 57df7097f99ffe16a4b81876f23aebf38b637ec5 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 22 七月 2025 11:24:15 +0800 Subject: [PATCH] art: 技术状态变更申请-验收接口 --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java | 4 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java | 24 +++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java | 89 ++++++++++++++++++++++++++--- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java | 19 ++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java | 3 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java | 8 ++ 6 files changed, 133 insertions(+), 14 deletions(-) diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java index 8ce714f..5dbd7b1 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java @@ -261,7 +261,7 @@ 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()); + Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); } else { return Collections.emptyList(); @@ -273,7 +273,7 @@ queryWrapper.or().like("e.equipment_name", keyword); } if(StringUtils.isNotBlank(factoryOrgCode)){ - queryWrapper.eq("e.factory_org_code", factoryOrgCode); + queryWrapper.likeRight("e.factory_org_code", factoryOrgCode); } queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0); IPage<EamEquipment> pageResult = eamEquipmentMapper.queryPageList(page, queryWrapper); diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java index 23634fb..28d78bb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeController.java @@ -12,6 +12,7 @@ import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum; import org.jeecg.modules.eam.entity.EamTechnicalStatusChange; +import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail; import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery; import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest; import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService; @@ -152,4 +153,22 @@ return Result.OK(eamTechnicalStatusChange); } + /** + * 楠屾敹 + * @param request + * @return + */ + @ApiOperation(value = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-楠屾敹", notes = "鎶�鏈姸鎬佸彉鏇寸敵璇锋槑缁�-楠屾敹") + @PostMapping(value = "/acceptance") + public Result<?> acceptance(@RequestBody EamTechnicalStatusChangeDetail request) { + if (request == null) { + return Result.error("楠屾敹缁撴灉瀵硅薄涓嶈兘涓虹┖锛�"); + } + boolean b = eamTechnicalStatusChangeService.acceptance(request); + if (!b) { + return Result.error("鎿嶄綔澶辫触锛�"); + } + return Result.OK("鎿嶄綔鎴愬姛锛�"); + } + } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java index 8c6f98b..60c51f6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusChangeDetailController.java @@ -1,10 +1,14 @@ package org.jeecg.modules.eam.controller; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; +import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail; import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.List; /** @@ -28,6 +33,10 @@ public class EamTechnicalStatusChangeDetailController extends JeecgController<EamTechnicalStatusChangeDetail, IEamTechnicalStatusChangeDetailService> { @Autowired private IEamTechnicalStatusChangeDetailService orderDetailService; + @Autowired + private ObjectMapper objectMapper; + @Autowired + private TranslateDictTextUtils translateDictTextUtils; /** * 涓�娆″姞杞� @@ -39,6 +48,19 @@ @GetMapping(value = "/queryList") public Result<?> queryList(@RequestParam("orderId") String orderId) { List<EamTechnicalStatusChangeDetail> list = orderDetailService.queryList(orderId); - return Result.OK(list); + List<JSONObject> items = new ArrayList<>(); + try { + for(EamTechnicalStatusChangeDetail vo : list) { + String json = objectMapper.writeValueAsString(vo); + JSONObject item = JSONObject.parseObject(json, Feature.OrderedField); + translateDictTextUtils.translateField("changeCategory", vo.getChangeCategory(), item, "technical_status_change_reason"); + translateDictTextUtils.translateField("changeTechnicalStatus", vo.getChangeTechnicalStatus(), item, "equipment_technology_status"); + translateDictTextUtils.translateField("acceptanceCheckResult", vo.getAcceptanceCheckResult(), item, "equipment_technology_status"); + items.add(item); + } + return Result.OK(items); + }catch (Exception e) { + return Result.error("鏁版嵁杞瘧澶辫触锛�"); + } } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java index 15d9139..57973e2 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusChangeDetail.java @@ -69,6 +69,9 @@ /**楠屾敹妫�鏌ョ粨鏋�;澶т慨銆佹敼閫� 闇�瑕佸~鍐欓獙鏀剁粨鏋滐紝鎼縼鎸夌収鎶�鏈姸鎬侀壌瀹氬伐鍗曠淮鎶わ紝鍏朵粬鏆傛湭浣跨敤鍒帮紝鍙鐣欐绫诲瀷*/ @ApiModelProperty(value = "楠屾敹妫�鏌ョ粨鏋�;澶т慨銆佹敼閫� 闇�瑕佸~鍐欓獙鏀剁粨鏋滐紝鎼縼鎸夌収鎶�鏈姸鎬侀壌瀹氬伐鍗曠淮鎶わ紝鍏朵粬鏆傛湭浣跨敤鍒帮紝鍙鐣欐绫诲瀷") private String acceptanceCheckResult; + /**楠屾敹鎰忚*/ + @ApiModelProperty(value = "楠屾敹鎰忚") + private String acceptanceCheckComment; //鍒楄〃灞曠ず @TableField(exist = false) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java index dd90936..15f33ba 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusChangeService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.eam.entity.EamTechnicalStatusChange; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamTechnicalStatusChangeDetail; import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery; import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest; @@ -48,4 +49,11 @@ * @return */ EamTechnicalStatusChange approval(EamTechnicalStatusChangeRequest request); + + /** + * 楠屾敹 + * @param request + * @return + */ + boolean acceptance(EamTechnicalStatusChangeDetail request); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java index 2b5aac5..59a3a62 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusChangeServiceImpl.java @@ -15,22 +15,16 @@ import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.eam.constant.BusinessCodeConst; -import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum; -import org.jeecg.modules.eam.constant.TechnicalStatusChangeOrderStatusEnum; -import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderChangeStatusEnum; -import org.jeecg.modules.eam.entity.EamBaseHFCode; -import org.jeecg.modules.eam.entity.EamEquipment; -import org.jeecg.modules.eam.entity.EamTechnicalStatusChange; +import org.jeecg.modules.eam.constant.*; +import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.mapper.EamTechnicalStatusChangeMapper; import org.jeecg.modules.eam.request.EamTechnicalStatusChangeQuery; import org.jeecg.modules.eam.request.EamTechnicalStatusChangeRequest; -import org.jeecg.modules.eam.service.IEamBaseHFCodeService; -import org.jeecg.modules.eam.service.IEamEquipmentService; -import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeDetailService; -import org.jeecg.modules.eam.service.IEamTechnicalStatusChangeService; +import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderRequest; +import org.jeecg.modules.eam.service.*; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; @@ -48,6 +42,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -83,6 +78,12 @@ private IFlowTaskService flowTaskService; @Autowired private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamEquipmentExtendService equipmentExtendService; + @Autowired + private IEamTechnicalStatusEvaluationStandardService evaluationStandardService; + @Autowired + private IEamTechnicalStatusEvaluationOrderService evaluationOrderService; @Override public IPage<EamTechnicalStatusChange> queryPageList(Page<EamTechnicalStatusChange> page, EamTechnicalStatusChangeQuery query) { @@ -175,6 +176,7 @@ detail.setCreateTime(null); detail.setUpdateBy(null); detail.setUpdateTime(null); + detail.setChangeOrderId(order.getId()); }); changeDetailService.saveBatch(request.getTableDetailList()); return true; @@ -211,6 +213,7 @@ detail.setCreateTime(null); detail.setUpdateBy(null); detail.setUpdateTime(null); + detail.setChangeOrderId(entity.getId()); }); changeDetailService.saveBatch(request.getTableDetailList()); return true; @@ -370,6 +373,70 @@ } @Override + @Transactional(rollbackFor = Exception.class) + public boolean acceptance(EamTechnicalStatusChangeDetail request) { + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒"); + } + EamTechnicalStatusChange order = this.getBaseMapper().selectById(request.getChangeOrderId()); + if(order == null) { + throw new JeecgBootException("鍙樻洿宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒"); + } + if(!TechnicalStatusChangeOrderStatusEnum.COMPLETED.name().equals(order.getChangeStatus())) { + throw new JeecgBootException("鍙樻洿宸ュ崟鏈畬鎴愶紝鏃犳硶鎻愪氦楠屾敹锛�"); + } + TechnicalStatusChangeReasonEnum instance = TechnicalStatusChangeReasonEnum.getInstance(request.getChangeCategory()); + if(instance == null) { + throw new JeecgBootException("鍙樻洿鍘熷洜鏃犳晥锛屾搷浣滃け璐ワ紒"); + } + EamEquipment equipment = equipmentService.getById(request.getEquipmentId()); + if(equipment == null) { + throw new JeecgBootException("璁惧淇℃伅涓嶅瓨鍦紝鎿嶄綔澶辫触锛�"); + } + EamEquipmentExtend extend = equipmentExtendService.getById(request.getEquipmentId()); + if(extend == null) { + throw new JeecgBootException("璁惧淇℃伅涓嶅瓨鍦紝鎿嶄綔澶辫触锛�"); + } + switch (instance) { + case EQUIPMENT_MAJOR: + case EQUIPMENT_RETROFITTING: + case OTHER: + //璁惧澶т慨銆佹敼閫犮�佸叾浠栫殑閫昏緫 + request.setAcceptanceChecker(user.getUsername()); + request.setAcceptanceCheckTime(new Date()); + changeDetailService.updateById(request); + //鏇存柊璁惧鎶�鏈壌瀹氱姸鎬� + equipmentExtendService.updateTechnologyParam(request.getEquipmentId(), request.getAcceptanceCheckResult(), DateUtils.localDateToDate(LocalDate.now()), null); + break; + case EQUIPMENT_RELOCATION: + //璁惧鎼縼閫昏緫 + request.setAcceptanceChecker(user.getUsername()); + request.setAcceptanceCheckTime(new Date()); + request.setAcceptanceCheckResult(null); + changeDetailService.updateById(request); + //鐢熸垚鎶�鏈姸鎬侀壌瀹氬伐鍗� + EamTechnicalStatusEvaluationStandard standard = evaluationStandardService.queryEnableStandard(request.getId()); + if (standard == null) { + throw new JeecgBootException("璁惧锛歿"+equipment.getEquipmentCode()+"}锛屾湭閰嶇疆鎶�鏈姸鎬侀壌瀹氳鑼冿紝鏃犳硶鐢熸垚鎶�鏈壌瀹氬伐鍗曪紒"); + } + EamTechnicalStatusEvaluationOrderRequest orderRequest = new EamTechnicalStatusEvaluationOrderRequest(); + orderRequest.setEquipmentId(extend.getId()); + orderRequest.setStandardId(standard.getId()); + orderRequest.setEvaluationDate(DateUtils.localDateToDate(LocalDate.now())); + orderRequest.setFreezeOrderDate(null); + orderRequest.setOrderExpirationDate(null); + orderRequest.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); + evaluationOrderService.addTechnicalStatusEvaluationOrder(orderRequest); + //鏇存柊鎵╁睍琛ㄤ腑鐨勭敓鎴愭爣璇� + equipmentExtendService.updateTechnologyParam(equipment.getId(), null, null, CommonConstant.STATUS_1); + break; + } + return false; + } + + @Override public void afterFlowHandle(FlowMyBusiness business) { business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 -- Gitblit v1.9.3