From 6e006cb835fce4720139de0cc2ec3be734295ed9 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期六, 12 七月 2025 14:18:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java |  164 ++++++++++++++++--------------------------------------
 1 files changed, 49 insertions(+), 115 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
index a9242cb..b26bfbe 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSecondMaintenanceOrderServiceImpl.java
@@ -3,12 +3,12 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.flowable.engine.TaskService;
@@ -33,8 +33,13 @@
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
 import org.jeecg.modules.flowable.service.IFlowDefinitionService;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
+import org.jeecg.modules.system.entity.BaseFactory;
+import org.jeecg.modules.system.entity.BaseFactoryUser;
+import org.jeecg.modules.system.service.IBaseFactoryService;
+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;
@@ -66,7 +71,10 @@
     private TaskService taskService;
     @Autowired
     private IFlowTaskService flowTaskService;
-
+    @Autowired
+    private IBaseFactoryUserService baseFactoryUserService;
+    @Autowired
+    private IBaseFactoryService baseFactoryService;
     @Autowired
     private ISysUserService sysUserService;
     @Autowired
@@ -75,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) {
@@ -84,13 +96,21 @@
         if (sysUser == null) {
             return page;
         }
-        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
+        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
             queryWrapper.in("e.equipment_code", equipArr);
         } else {
-            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
-            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶�
+            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 page;
+            }
         }
         //鏌ヨ鏉′欢杩囨护
         if (query != null) {
@@ -140,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("鏈厤缃妧鏈姸鎬侀壌瀹氳〃鐨凥F缂栫爜锛屾坊鍔犲け璐ワ紒");
+        }
+        order.setHfCode(eamBaseHFCode.getHfCode());
         order.setRemark(request.getRemark());
         //鐘舵�佸垵濮嬪寲
         order.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
@@ -148,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;
     }
 
@@ -203,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())) {
             //鍚姩娴佺▼
@@ -357,79 +333,37 @@
             case UNDER_MAINTENANCE:
                 //鎵ц瀹屾垚
                 //璁惧绠$悊鍛樼‘璁�
-                String equipmentManager = equipment.getEquipmentManager();
-                if(StringUtils.isBlank(equipmentManager)) {
-                    throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
-                }
-                userApprovalList = Collections.singletonList(equipmentManager);
+//                String equipmentManager = equipment.getEquipmentManager();
+//                if(StringUtils.isBlank(equipmentManager)) {
+//                    throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+//                }
+//                userApprovalList = Collections.singletonList(equipmentManager);
                 values.put("dataId", entity.getId());
                 values.put("organization", "浜屼繚鎵ц缁撴潫");
                 values.put("comment", "浜屼繚鎵ц缁撴潫");
-                values.put("NextAssignee", userApprovalList);
+//                values.put("NextAssignee", userApprovalList);
                 request.setComment("浜屼繚鎵ц缁撴潫");
                 //璁剧疆entity
                 entity.setMaintenanceStatus(SecondMaintenanceStatusEnum.WAIT_CONFIRM.name());
                 entity.setActualEndTime(new Date());
-                //澶勭悊闄勪欢
-                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
-                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
-                    ObjectMapper mapper = new ObjectMapper();
-                    try {
-                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
-                        entity.setImageFiles(referenceFile);
-                    } catch (JsonProcessingException e) {
-                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-                    }
-                }
-                //澶勭悊璇︽儏
-                if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
-                    secondMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
-                }
                 //鏇存柊璁惧淇濆吇鐘舵��
                 eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.SECOND_MAINTENANCE_WAIT_CONFIRM.name());
                 break;
             case WAIT_CONFIRM:
-                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
+                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
                 if (CollectionUtil.isEmpty(userSelectors)) {
                     throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
                 }
                 //鐝粍闀跨‘璁�
                 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.setConfirmUser(user.getUsername());
-                entity.setConfirmComment(request.getConfirmComment());
                 entity.setConfirmTime(new Date());
-                entity.setConfirmDealType(request.getConfirmDealType());
-                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());
-                entity.setConfirmLeader(user.getUsername());
-                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
-                entity.setLeaderConfirmTime(new Date());
                 //鏇存柊璁惧淇濆吇鐘舵��
                 eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                 break;

--
Gitblit v1.9.3