From a4e30eb43219ccc05b0826f49ecd5a3b639cf0c0 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期四, 28 八月 2025 09:27:20 +0800
Subject: [PATCH] 修改计算百分比位置
---
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java | 885 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 700 insertions(+), 185 deletions(-)
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
index 219caca..97133c1 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -3,48 +3,60 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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;
import org.flowable.task.api.Task;
-import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.StrUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus;
-import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum;
-import org.jeecg.modules.eam.constant.ThirdMaintenanceStatusEnum;
-import org.jeecg.modules.eam.entity.EamEquipment;
-import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
-import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail;
+import org.jeecg.modules.eam.constant.*;
+import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
+import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExport;
+import org.jeecg.modules.eam.dto.EamThirdMaintenanceOrderExportYj;
+import org.jeecg.modules.eam.dto.EchartsDto;
+import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper;
+import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse;
import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery;
import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest;
import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.eam.vo.EamThirdMaintenanceBaseVo;
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;
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.ISysDictService;
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;
import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -76,11 +88,21 @@
@Autowired
private IEamEquipmentService eamEquipmentService;
@Autowired
- private IEamReportRepairService eamReportRepairService;
- @Autowired
private IEamEquipmentExtendService eamEquipmentExtendService;
- @Autowired
- private IEamPrecisionCheckDetailService precisionCheckDetailService;
+
+ @Resource
+ private IBaseFactoryUserService baseFactoryUserService;
+ @Resource
+ private IBaseFactoryService baseFactoryService;
+
+ @Resource
+ private IEamBaseHFCodeService eamBaseHFCodeService;
+ @Resource
+ private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService;
+ @Resource
+ private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService;
+ @Resource
+ private ISysDictService sysDictService;
@Override
public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) {
@@ -90,13 +112,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) {
@@ -135,23 +165,40 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean addMaintenance(EamThirdMaintenanceRequest request) {
+ public Result<String> addMaintenance(EamThirdMaintenanceRequest request) {
+ if (request == null) {
+ return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒");
+ }
+ if (CollectionUtil.isEmpty(request.getTableDetailList())) {
+ return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒");
+ }
EamEquipment equipment = eamEquipmentService.getById(request.getEquipmentId());
if (equipment == null) {
- throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
+ return Result.error("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
}
EamThirdMaintenanceOrder order = new EamThirdMaintenanceOrder();
order.setOrderNum(request.getOrderNum());
order.setEquipmentId(request.getEquipmentId());
order.setStandardId(request.getStandardId());
order.setMaintenanceDate(request.getMaintenanceDate());
- order.setOperator(request.getOperator());
order.setRemark(request.getRemark());
//鐘舵�佸垵濮嬪寲
order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
order.setCreationMethod(request.getCreationMethod());
//鍒犻櫎鏍囪
order.setDelFlag(CommonConstant.DEL_FLAG_0);
+ //HF鐮佸鐞� 涓変繚绉讳氦鍗旽F缂栫爜
+ EamBaseHFCode hFCodeA = eamBaseHFCodeService.selectByCategory(HfTemplateCategoryEnum.THIRD_MAINTENANCE_HANDOVER.name());
+ if (hFCodeA == null) {
+ return Result.error("娣诲姞澶辫触,鏈厤缃笁淇濈Щ浜ゅ崟HF缂栫爜锛�");
+ }
+ order.setHfCodeA(hFCodeA.getHfCode());
+ // 涓変繚楠屾敹鍗旽F缂栫爜
+ EamBaseHFCode hFCodeB = eamBaseHFCodeService.selectByCategory(HfTemplateCategoryEnum.THIRD_MAINTENANCE_ACCEPTANCE.name());
+ if (hFCodeB == null) {
+ return Result.error("娣诲姞澶辫触,鏈厤缃笁淇濋獙鏀跺崟HF缂栫爜锛�");
+ }
+ order.setHfCodeB(hFCodeB.getHfCode());
eamThirdMaintenanceOrderMapper.insert(order);
//澶勭悊鏄庣粏鏁版嵁
if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
@@ -161,41 +208,8 @@
});
thirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
}
- //澶勭悊绮惧害鍙傛暟
- if (CollectionUtil.isNotEmpty(request.getPrecisionDetailList())) {
- request.getPrecisionDetailList().forEach(tableDetail -> {
- tableDetail.setId(null);
- tableDetail.setOrderId(order.getId());
- });
- precisionCheckDetailService.saveBatch(request.getPrecisionDetailList());
- }
- //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
- if (StringUtils.isNotBlank(order.getOperator())) {
- //鍚姩娴佺▼
- flowCommonService.initActBusiness("宸ュ崟鍙�:" + order.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
- order.getId(), "IEamThirdMaintenanceOrderService", "third_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);
- //骞惰浠诲姟浼氱
- variables.put("maintenance_execution", Collections.singletonList(request.getOperator()));
-// variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
- Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
- if (result != null) {
- //鏇存柊璁惧淇濆吇鐘舵��
- eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name());
- return result.isSuccess();
- }
- }
- return true;
+ return Result.OK("娣诲姞鎴愬姛锛�");
}
@Override
@@ -213,7 +227,6 @@
throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�");
}
entity.setMaintenanceDate(request.getMaintenanceDate());
- entity.setOperator(request.getOperator());
entity.setRemark(request.getRemark());
eamThirdMaintenanceOrderMapper.updateById(entity);
@@ -240,32 +253,6 @@
List<String> ids = request.getRemoveDetailList().stream().map(EamThirdMaintenanceOrderDetail::getId).collect(Collectors.toList());
thirdMaintenanceOrderDetailService.removeBatchByIds(ids);
}
- //鍒ゆ柇鏄惁瀛樺湪淇濆吇浜� 濡傛灉瀛樺湪鍒欏惎鍔ㄦ祦绋�
- if (StringUtils.isNotBlank(entity.getOperator())) {
- //鍚姩娴佺▼
- flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
- entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
- Map<String, Object> variables = new HashMap<>();
- variables.put("dataId", entity.getId());
- if (StrUtil.isEmpty(entity.getRemark())) {
- variables.put("organization", "鏂板涓変繚宸ュ崟榛樿鍚姩娴佺▼");
- variables.put("comment", "鏂板涓変繚宸ュ崟榛樿鍚姩娴佺▼");
- } else {
- variables.put("organization", entity.getRemark());
- variables.put("comment", entity.getRemark());
- }
- variables.put("proofreading", true);
- //骞惰浠诲姟浼氱
- variables.put("maintenance_execution", Collections.singletonList(request.getOperator()));
-// variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
- Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
- if (result != null) {
- //鏇存柊璁惧淇濆吇鐘舵��
- eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name());
- return result.isSuccess();
- }
-
- }
return true;
}
@@ -283,24 +270,19 @@
if (equipment == null) {
throw new JeecgBootException("璁惧涓嶅瓨鍦紝娣诲姞澶辫触锛�");
}
-// if (StringUtils.isBlank(equipment.getEquipmentManager())) {
-// throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
-// }
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
- if (sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
- throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒");
+ if (sysUser == null || !BusinessCodeConst.PCR0002.equals(sysUser.getPost())) {
+ throw new JeecgBootException("涓嶆槸缁翠慨宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒");
}
- entity.setOperator(sysUser.getUsername());
- entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
+ entity.setRepairman(sysUser.getUsername());
+ entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CHECK.name());
entity.setActualStartTime(new Date());
eamThirdMaintenanceOrderMapper.updateById(entity);
//鍚姩娴佺▼
- flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode() + ";瀹夎浣嶇疆" + equipment.getInstallationPosition(),
+ flowCommonService.initActBusiness("宸ュ崟鍙�:" + entity.getOrderNum() + ";璁惧缂栧彿: " + equipment.getEquipmentCode(),
entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
Map<String, Object> variables = new HashMap<>();
- boolean equipmentPrecisionFlag = precisionCheckDetailService.hasPrecisionCheckDetail(entity.getId());
- variables.put("equipmentPrecisionFlag", equipmentPrecisionFlag);
variables.put("dataId", entity.getId());
if (StrUtil.isEmpty(entity.getRemark())) {
variables.put("organization", "鏂板涓変繚宸ュ崟榛樿鍚姩娴佺▼");
@@ -310,9 +292,10 @@
variables.put("comment", entity.getRemark());
}
variables.put("proofreading", true);
- //骞惰浠诲姟浼氱
- variables.put("maintenance_execution", Collections.singletonList(sysUser.getUsername()));
-// variables.put("precision_check", Collections.singletonList(equipment.getEquipmentManager()));
+ // 璁剧疆涓嬩竴姝ュ鐞嗕汉
+ List<String> usernames = new ArrayList<>();
+ usernames.add(entity.getRepairman());
+ variables.put("NextAssignee", usernames);
Result result = flowDefinitionService.startProcessInstanceByKey("third_maintenance_process", variables);
if (result != null) {
//鏇存柊璁惧淇濆吇鐘舵��
@@ -325,25 +308,24 @@
@Override
@Transactional(rollbackFor = Exception.class)
@EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.THIRD_MAINTENANCE, businessTable = "eam_third_maintenance_order")
- public EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest request) {
- EamThirdMaintenanceOrder entity = eamThirdMaintenanceOrderMapper.selectById(request.getId());
- if (entity == null) {
- throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
+ public EamThirdMaintenanceOrder approval(EamThirdMaintenanceRequest eamThirdMaintenanceRequest) {
+ EamThirdMaintenanceOrder eamThirdMaintenanceOrder = eamThirdMaintenanceOrderMapper.selectById(eamThirdMaintenanceRequest.getId());
+ if (eamThirdMaintenanceOrder == null) {
+ throw new JeecgBootException("寰呭鐞嗙殑鏁版嵁宸插垹闄わ紝璇峰埛鏂伴噸璇曪紒");
}
// 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (user == null || StrUtil.isBlank(user.getId())) {
throw new JeecgBootException("鏈幏鍙栧埌鐧诲綍鐢ㄦ埛锛岃閲嶆柊鐧诲綍鍚庡啀璇曪紒");
}
- request.setAssignee(user.getUsername());
+ eamThirdMaintenanceRequest.setAssignee(user.getUsername());
// 鑾峰彇娴佺▼涓氬姟璁板綍
- FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId(), request.getTaskId());
+ FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(eamThirdMaintenanceRequest.getInstanceId(), eamThirdMaintenanceRequest.getTaskId());
if (flowMyBusiness == null) {
throw new JeecgBootException("娴佺▼瀹炰緥涓嶅瓨鍦紝璇峰埛鏂板悗閲嶈瘯锛�");
}
- boolean userAuthorized = isUserAuthorized(flowMyBusiness, user);
- if (!userAuthorized) {
+ if (!isUserAuthorized(flowMyBusiness, user)) {
throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔★紝璇峰埛鏂板悗閲嶈瘯锛�");
}
// 璁ら浠诲姟
@@ -351,118 +333,651 @@
throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰嗭紒");
}
- EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
+ EamEquipment equipment = eamEquipmentService.getById(eamThirdMaintenanceOrder.getEquipmentId());
if (equipment == null) {
throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
}
- ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(entity.getMaintenanceStatus());
- if (status == null) {
- return null;
+ // 璁剧疆娴佺▼鍙橀噺
+ setupProcessVariables(eamThirdMaintenanceRequest, eamThirdMaintenanceOrder, user, equipment);
+
+ // 瀹屾垚娴佺▼浠诲姟
+ Result result = flowTaskService.complete(eamThirdMaintenanceRequest);
+
+ // 鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊宸ュ崟鐘舵��
+ updateOrderStatus(result, eamThirdMaintenanceRequest, eamThirdMaintenanceOrder, user);
+
+ //鏇存柊宸ュ崟淇℃伅
+ eamThirdMaintenanceOrderMapper.updateById(eamThirdMaintenanceOrder);
+ return eamThirdMaintenanceOrder;
+ }
+
+ /**
+ * 鏌ヨ涓変繚宸ュ崟鍩烘湰淇℃伅
+ *
+ * @param id
+ * @return
+ */
+ @Override
+ public Result<?> selectVoById(String id) {
+ List<EamThirdMaintenanceOrder> eamThirdMaintenanceOrders = this.list(new QueryWrapper<EamThirdMaintenanceOrder>().eq("id", id));
+ List<EamThirdMaintenanceRequest> eamThirdMaintenanceRequestList = new ArrayList<>();
+ eamThirdMaintenanceOrders.forEach(eamThirdMaintenanceOrder -> {
+ EamThirdMaintenanceRequest eamThirdMaintenanceRequest = new EamThirdMaintenanceRequest();
+ BeanUtils.copyProperties(eamThirdMaintenanceOrder, eamThirdMaintenanceRequest);
+ List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceOrderDetails = eamThirdMaintenanceOrderDetailService
+ .list(new QueryWrapper<EamThirdMaintenanceOrderDetail>().eq("order_id", eamThirdMaintenanceOrder.getId()));
+ eamThirdMaintenanceRequest.setTableDetailList(eamThirdMaintenanceOrderDetails);
+ eamThirdMaintenanceRequestList.add(eamThirdMaintenanceRequest);
+ });
+ return Result.ok(eamThirdMaintenanceRequestList);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean updateMaintenanceStatus(String orderId, String maintenanceStatus) {
+ LambdaUpdateWrapper<EamThirdMaintenanceOrder> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(EamThirdMaintenanceOrder::getId, orderId);
+ updateWrapper.set(EamThirdMaintenanceOrder::getMaintenanceStatus, maintenanceStatus);
+ updateWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
+ updateWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(), ThirdMaintenanceStatusEnum.FREEZE.name()));
+ int update = this.getBaseMapper().update(null, updateWrapper);
+ return update > 0;
+ }
+
+ @Override
+ public List<EamThirdMaintenanceOrder> selectWaitMaintenanceOrderList() {
+ LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(EamThirdMaintenanceOrder::getMaintenanceStatus, ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
+ queryWrapper.isNotNull(EamThirdMaintenanceOrder::getFreezeOrderDate);
+ queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
+ LocalDate localDate = LocalDate.now();
+ queryWrapper.lt(EamThirdMaintenanceOrder::getFreezeOrderDate, localDate.toString());
+ return this.getBaseMapper().selectList(queryWrapper);
+ }
+
+ @Override
+ public List<EamThirdMaintenanceOrder> selectUnCompletedThirdMaintenanceOrderList() {
+ LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
+ List<String> statusList = Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(),
+ ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name(),
+ ThirdMaintenanceStatusEnum.WAIT_CHECK.name(),
+ ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name(),
+ ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name(),
+ ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name(),
+ ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name(),
+ ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name(),
+ ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name(),
+ ThirdMaintenanceStatusEnum.FREEZE.name()
+ );
+ queryWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, statusList);
+ queryWrapper.isNotNull(EamThirdMaintenanceOrder::getOrderExpirationDate);
+ queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
+ LocalDate localDate = LocalDate.now();
+ queryWrapper.lt(EamThirdMaintenanceOrder::getOrderExpirationDate, localDate.toString());
+ return this.getBaseMapper().selectList(queryWrapper);
+ }
+
+ /**
+ * 鑾峰彇宸ュ崟鍩烘湰淇℃伅
+ *
+ * @param id 宸ュ崟id
+ * @return
+ */
+ @Override
+ public JSONObject exportThirdMaintenanceOrderBaseInfo(String id) {
+ // 鍒涘缓缁撴灉瀵硅薄
+ JSONObject result = new JSONObject();
+ EamThirdMaintenanceBaseResponse eamThirdMaintenanceBaseResponse = eamThirdMaintenanceOrderMapper.findThirdMaintenanceBaseInfo(id);
+ if (eamThirdMaintenanceBaseResponse == null) {
+ return result;
}
+ eamThirdMaintenanceBaseResponse.setOperatorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getOperatorSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantOperator());
+ eamThirdMaintenanceBaseResponse.setRepairmanSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairmanSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantRepairman());
+ eamThirdMaintenanceBaseResponse.setRepairManagerSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairManagerSignature()));
+ eamThirdMaintenanceBaseResponse.setInspectorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getInspectorSignature()));
+ eamThirdMaintenanceBaseResponse.setEquipmentCategory(sysDictService.queryDictTextByKey("equipment_category", eamThirdMaintenanceBaseResponse.getEquipmentCategory()));
+ //妫�鏌ヤ汉鍜屾鏌ユ椂闂�
+ EamThirdMaintenanceBaseVo vo = eamThirdMaintenanceOrderDetailService.selectCreatByAndTimeByOrderId(id);
+ if (vo != null) {
+ eamThirdMaintenanceBaseResponse.setCreateBy(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", vo.getOperateBy()));
+ eamThirdMaintenanceBaseResponse.setCreateTime(vo.getOperateTime());
+ }
+ result.put("data",Collections.singletonList(eamThirdMaintenanceBaseResponse));
+ return result;
+ }
+
+ /**
+ * 璁剧疆娴佺▼鍙橀噺
+ */
+ private void setupProcessVariables(EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user, EamEquipment equipment) {
//娴佺▼鍙橀噺
Map<String, Object> values = new HashMap<>();
List<String> userApprovalList;
List<UserSelector> userSelectors;
+ ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(order.getMaintenanceStatus());
switch (status) {
+ case WAIT_CHECK:
+ // 鎶�鏈姸鎬侀壌瀹氱粨鏉�
+ values.put("dataId", order.getId());
+ values.put("organization", "鎶�鏈姸鎬侀壌瀹氱粨鏉�");
+ values.put("comment", "鎶�鏈姸鎬侀壌瀹氱粨鏉�");
+ if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) {
+ values.put("confirmation", "1");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
+ if (CollectionUtil.isEmpty(userSelectors)) {
+ throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+ }
+ userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+ values.put("NextAssignee", userApprovalList);
+ //鏇存柊璁惧淇濆吇鐘舵��
+ eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name());
+ } else {
+ values.put("confirmation", "2");
+ }
+ request.setComment("妫�鏌ヤ汉妫�鏌ョ粨鏉�");
+ break;
case UNDER_MAINTENANCE:
- boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
- //鎵ц瀹屾垚
- userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006);
+ // 淇濆吇缁撴潫
+ values.put("dataId", order.getId());
+ values.put("organization", "淇濆吇浜轰繚鍏荤粨鏉�");
+ values.put("comment", "淇濆吇浜轰繚鍏荤粨鏉�");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
if (CollectionUtil.isEmpty(userSelectors)) {
- throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+ throw new JeecgBootException("璁惧鏈垎閰嶇粰璁惧妫�楠屽憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
}
userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
- values.put("dataId", entity.getId());
- values.put("organization", "涓変繚鎵ц缁撴潫");
- values.put("comment", "涓変繚鎵ц缁撴潫");
- if (parallelCompletion) {
- values.put("NextAssignee", userApprovalList);
- }
- request.setComment("涓変繚鎵ц缁撴潫");
- //璁剧疆entity
- if (parallelCompletion) {
- entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.WAIT_CONFIRM.name());
- entity.setActualEndTime(new Date());
- }
- if ("maintenance_execution".equals(flowMyBusiness.getTaskNameId())) {
- //鎵ц淇濆吇
- //澶勭悊闄勪欢
- 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);
+ values.put("NextAssignee", userApprovalList);
+ request.setComment("淇濆吇浜轰繚鍏荤粨鏉�");
+ //鏇存柊璁惧淇濆吇鐘舵��
+ eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name());
+ break;
+ case UNDER_FIRST_ACCEPTANCE:
+ // 绗竴娆¢獙鏀剁粨鏉�
+ values.put("dataId", order.getId());
+ values.put("organization", "绗竴娆¢獙鏀剁粨鏉�");
+ values.put("comment", "绗竴娆¢獙鏀剁粨鏉�");
+ boolean flag = false;
+ if (!CollectionUtil.isEmpty(request.getTableDetailList())) {
+ for (EamThirdMaintenanceOrderDetail eamThirdMaintenanceOrderDetail : request.getTableDetailList()) {
+ if ("2".equals(eamThirdMaintenanceOrderDetail.getFirstInspectResult())) {
+ flag = true;
+ break;
}
}
- //澶勭悊璇︽儏
- if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
- thirdMaintenanceOrderDetailService.updateBatchById(request.getTableDetailList());
- }
- } else if ("precision_check".equals(flowMyBusiness.getTaskNameId())) {
- entity.setPrecisionChecker(user.getUsername());
- entity.setPrecisionCheckTime(new Date());
- //澶勭悊绮惧害妫�楠�
- if (CollectionUtil.isNotEmpty(request.getPrecisionDetailList())) {
- precisionCheckDetailService.updateBatchById(request.getPrecisionDetailList());
- }
}
- if (parallelCompletion) {
- //鏇存柊璁惧淇濆吇鐘舵��
- eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.THIRD_MAINTENANCE_WAIT_CONFIRM.name());
+ if (flag) {
+ // 寮�鍚浜屾楠屾敹
+ values.put("confirmation", "2");
+ List<String> usernames = new ArrayList<>();
+ usernames.add(user.getUsername());
+ values.put("NextAssignee", usernames);
+ } else {
+ // 娴佺▼娴佽浆鍒版搷浣滀汉绛惧瓧
+ values.put("confirmation", "1");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
+ if (CollectionUtil.isEmpty(userSelectors)) {
+ throw new JeecgBootException("璁惧鏈垎閰嶇粰鎿嶄綔宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+ }
+ userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+ values.put("NextAssignee", userApprovalList);
}
+ request.setComment("绗竴娆¢獙鏀剁粨鏉�");
break;
- case WAIT_CONFIRM:
- userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),null, BusinessCodeConst.PCR0003);
+ case UNDER_SECOND_ACCEPTANCE:
+ // 绗簩娆¢獙鏀剁粨鏉�
+ values.put("dataId", order.getId());
+ values.put("organization", "绗簩娆¢獙鏀剁粨鏉�");
+ values.put("comment", "绗簩娆¢獙鏀剁粨鏉�");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001);
if (CollectionUtil.isEmpty(userSelectors)) {
- throw new JeecgBootException("璁惧鏈垎閰嶇粰杞﹂棿鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+ 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(ThirdMaintenanceStatusEnum.WAIT_LEADER_CONFIRM.name());
- entity.setConfirmUser(user.getUsername());
- entity.setConfirmComment(request.getConfirmComment());
- entity.setConfirmTime(new Date());
- //澶勭悊鎶ヤ慨
- List<EamThirdMaintenanceOrderDetail> collect = request.getTableDetailList().stream().filter((detail) -> CommonConstant.DEFAULT_1.equals(detail.getReportFlag())).collect(Collectors.toList());
- if (CollectionUtil.isNotEmpty(collect)) {
- eamReportRepairService.reportRepairFromThirdMaintenance(equipment.getId(), entity.getOperator(), collect);
- }
+ request.setComment("绗簩娆¢獙鏀剁粨鏉�");
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(ThirdMaintenanceStatusEnum.COMPLETE.name());
- entity.setConfirmLeader(user.getUsername());
- entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
- entity.setLeaderConfirmTime(new Date());
+ case OPERATOR_SIGNATURE:
+ // 鎿嶄綔浜虹瀛楃粨鏉�
+ values.put("dataId", order.getId());
+ values.put("organization", "鎿嶄綔浜虹瀛楃粨鏉�");
+ values.put("comment", "鎿嶄綔浜虹瀛楃粨鏉�");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
+ if (CollectionUtil.isEmpty(userSelectors)) {
+ throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨宸ワ紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+ }
+ userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+ values.put("NextAssignee", userApprovalList);
+ request.setComment("鎿嶄綔浜虹瀛楃粨鏉�");
+ break;
+ case REPAIRMAN_SIGNATURE:
+ // 缁翠慨浜虹瀛楃粨鏉�
+ values.put("dataId", order.getId());
+ values.put("organization", "缁翠慨浜虹瀛楃粨鏉�");
+ values.put("comment", "缁翠慨浜虹瀛楃粨鏉�");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
+ if (CollectionUtil.isEmpty(userSelectors)) {
+ throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨瀹や富浠伙紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+ }
+ userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+ values.put("NextAssignee", userApprovalList);
+ request.setComment("缁翠慨浜虹瀛楃粨鏉�");
+ break;
+ case REPAIR_MANAGER_SIGNATURE:
+ // 缁翠慨瀹や富浠荤瀛楃粨鏉�
+ values.put("dataId", order.getId());
+ values.put("organization", "缁翠慨瀹や富浠荤瀛楃粨鏉�");
+ values.put("comment", "缁翠慨瀹や富浠荤瀛楃粨鏉�");
+ // 鑾峰彇涓嬩竴姝ユ墽琛屼汉
+ userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
+ if (CollectionUtil.isEmpty(userSelectors)) {
+ throw new JeecgBootException("璁惧鏈垎閰嶇粰璁惧妫�楠屽憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+ }
+ userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+ values.put("NextAssignee", userApprovalList);
+ request.setComment("缁翠慨瀹や富浠荤瀛楃粨鏉�");
+ break;
+ case INSPECTOR_SIGNATURE:
+ // 璁惧妫�鏌ヤ汉绛惧瓧缁撴潫
+ values.put("dataId", order.getId());
+ values.put("organization", "缁翠慨瀹や富浠荤瀛楃粨鏉�");
+ values.put("comment", "缁翠慨瀹や富浠荤瀛楃粨鏉�");
+ request.setComment("缁翠慨瀹や富浠荤瀛楃粨鏉�");
//鏇存柊璁惧淇濆吇鐘舵��
- eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
+ eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
break;
}
request.setValues(values);
+ }
- // 瀹屾垚娴佺▼浠诲姟
- Result result = flowTaskService.complete(request);
- if (!result.isSuccess()) {
- throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
+ /**
+ * 鎵归噺鎵撳嵃鍔犲伐璁惧涓夌骇淇濆吇瀹屽伐绉讳氦鍗�
+ * @param ids
+ * @return
+ */
+ @Override
+ public List<EamThirdMaintenanceOrderExportYj> export(String ids){
+ QueryWrapper<EamThirdMaintenanceOrderExport> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString());
+ queryWrapper.eq("wmo.maintenance_status",SecondMaintenanceStatusEnum.COMPLETE.name());
+ //鐢ㄦ埛鏁版嵁鏉冮檺
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if (sysUser == null) {
+ return new ArrayList<>();
}
- //淇濆瓨宸ュ崟
- eamThirdMaintenanceOrderMapper.updateById(entity);
- return entity;
+ 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<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper);
+ List<EamThirdMaintenanceOrderExportYj> eamThirdMaintenanceOrderExportYjs=new ArrayList<>();
+ if (!eamThirdMaintenanceOrderExports.isEmpty()){
+ for (EamThirdMaintenanceOrderExport eamThirdMaintenanceOrderExport:eamThirdMaintenanceOrderExports) {
+ EamThirdMaintenanceOrderExportYj eamThirdMaintenanceOrderExportYj = new EamThirdMaintenanceOrderExportYj();
+ BeanUtils.copyProperties(eamThirdMaintenanceOrderExport, eamThirdMaintenanceOrderExportYj);
+ eamThirdMaintenanceOrderExportYjs.add(eamThirdMaintenanceOrderExportYj);
+ }
+ }
+ //濉厖瀵瑰簲淇悊鏇存崲澶囦欢鏄庣粏
+ eamThirdMaintenanceOrderExportYjs.forEach(eamThirdMaintenanceOrderExportYj->{
+ List<EamThirdMaintenanceSpare> eamThirdMaintenanceSpares=eamThirdMaintenanceSpareService.list(
+ new QueryWrapper<EamThirdMaintenanceSpare>().eq("order_Id",eamThirdMaintenanceOrderExportYj.getId()));
+ if (!eamThirdMaintenanceSpares.isEmpty()){
+ eamThirdMaintenanceOrderExportYj.setEamThirdMaintenanceSpareList(eamThirdMaintenanceSpares);
+ }
+ });
+ return eamThirdMaintenanceOrderExportYjs;
+ }
+
+ /**
+ * 鎵归噺鎵撳嵃鍔犲伐璁惧涓夌骇淇濆吇楠屾敹鍗�
+ */
+ @Override
+ public List<EamThirdMaintenanceOrderExport> exportAcceptance(String ids){
+ QueryWrapper<EamThirdMaintenanceOrderExport> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("wmo.del_flag",CommonConstant.DEL_FLAG_0.toString());
+ queryWrapper.eq("wmo.maintenance_status",SecondMaintenanceStatusEnum.COMPLETE.name());
+ //鐢ㄦ埛鏁版嵁鏉冮檺
+ 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<EamThirdMaintenanceOrderExport> eamThirdMaintenanceOrderExports=this.baseMapper.queryList(queryWrapper);
+ //濉厖瀵瑰簲淇濆吇椤规槑缁�
+ eamThirdMaintenanceOrderExports.forEach(eamThirdMaintenanceOrderExport->{
+ List<EamThirdMaintenanceOrderDetail> eamThirdMaintenanceSpares=eamThirdMaintenanceOrderDetailService.list(
+ new QueryWrapper<EamThirdMaintenanceOrderDetail>().eq("order_Id",eamThirdMaintenanceOrderExport.getId()));
+ if (!eamThirdMaintenanceSpares.isEmpty()){
+ eamThirdMaintenanceOrderExport.setEamThirdMaintenanceOrderDetailList(eamThirdMaintenanceSpares);
+ }
+ });
+ return eamThirdMaintenanceOrderExports;
+ }
+
+ /**
+ * 璁惧绠$悊棣栭〉-涓変繚璁″垝
+ * @return
+ * */
+ @Override
+ public List<EchartsDto> selectList() {
+ List<EchartsDto> echartsDtos = new ArrayList<>();
+
+ // 鐢ㄦ埛鏁版嵁鏉冮檺妫�鏌�
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if (sysUser == null) {
+ return echartsDtos; // 杩斿洖绌哄垪琛ㄨ�岄潪null
+ }
+
+ QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>();
+
+ // 璁惧杩囨护閫昏緫
+ if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
+ 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)) {
+ return echartsDtos; // 杩斿洖绌哄垪琛ㄨ�岄潪null
+ }
+
+ Set<String> factoryIds = baseFactoryUserList.stream()
+ .map(BaseFactoryUser::getFactoryId)
+ .collect(Collectors.toSet());
+
+ Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds)
+ .stream()
+ .map(BaseFactory::getOrgCode)
+ .collect(Collectors.toSet());
+
+ queryWrapper.in("e.factory_org_code", factoryCodes);
+ }
+
+ // 鑾峰彇褰撳墠骞存湀鍜屼笅涓や釜鏈堢殑骞存湀瀛楃涓�
+ String currentYearMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ String nextMonth = LocalDate.now().plusMonths(1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ String nextNextMonth = LocalDate.now().plusMonths(2).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+
+ // 浠庡瓧鍏歌〃鑾峰彇閰嶇疆鍊�
+ String bysbjh = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_bysbzs").get(0).getValue();
+ String bywc = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_bwc").get(0).getValue();
+ String xysb = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_xysb").get(0).getValue();
+ String xxysb = sysDictService.queryEnableDictItemsByCode("eam_home_third_number_xxysb").get(0).getValue();
+
+ // 鏈湀涓変繚璁″垝鎬绘暟
+ if ("0".equals(bysbjh)) {
+ List<EamThirdMaintenanceOrder> currentMonthOrders = this.baseMapper.queryAsList(
+ queryWrapper.clone().like("maintenance_date", currentYearMonth)
+ );
+ echartsDtos.add(new EchartsDto("bysbzs", "鏈湀涓変繚璁″垝鎬绘暟",
+ String.valueOf(currentMonthOrders.size()), null, null));
+ } else {
+ echartsDtos.add(new EchartsDto("bysbzs", "鏈湀涓変繚璁″垝鎬绘暟",
+ bysbjh, null, null));
+ }
+
+ // 鏈湀瀹屾垚
+ if ("0".equals(bywc)) {
+ List<EamThirdMaintenanceOrder> currentMonthCompleted = this.baseMapper.queryAsList(
+ queryWrapper.clone().like("maintenance_date", currentYearMonth)
+ .eq("maintenance_status", ThirdMaintenanceStatusEnum.COMPLETE.name())
+ );
+ echartsDtos.add(new EchartsDto("bwc", "鏈湀瀹屾垚",
+ String.valueOf(currentMonthCompleted.size()), null, null));
+ } else {
+ echartsDtos.add(new EchartsDto("bwc", "鏈湀瀹屾垚",
+ bywc, null, null));
+ }
+
+ // 涓嬫湀涓変繚璁″垝
+ if ("0".equals(xysb)) {
+ List<EamThirdMaintenanceOrder> nextMonthOrders = this.baseMapper.queryAsList(
+ queryWrapper.clone().like("maintenance_date", nextMonth)
+ );
+ echartsDtos.add(new EchartsDto("xysb", "涓嬫湀涓変繚璁″垝",
+ String.valueOf(nextMonthOrders.size()), null, null));
+ } else {
+ echartsDtos.add(new EchartsDto("xysb", "涓嬫湀涓変繚璁″垝",
+ xysb, null, null));
+ }
+
+ // 涓嬩笅鏈堜笁淇濊鍒�
+ if ("0".equals(xxysb)) {
+ List<EamThirdMaintenanceOrder> nextNextMonthOrders = this.baseMapper.queryAsList(
+ queryWrapper.clone().like("maintenance_date", nextNextMonth)
+ );
+ echartsDtos.add(new EchartsDto("xxysb", "涓嬩笅鏈堜笁淇濊鍒�",
+ String.valueOf(nextNextMonthOrders.size()), null, null));
+ } else {
+ echartsDtos.add(new EchartsDto("xxysb", "涓嬩笅鏈堜笁淇濊鍒�",
+ xxysb, null, null));
+ }
+
+ return echartsDtos;
+ }
+
+ /**
+ * 璁惧绠$悊棣栭〉-涓変繚璁″垝鍒楄〃
+ * @param code
+ * @param page
+ * @return
+ */
+ @Override
+ public IPage<EamThirdMaintenanceOrder> maintenanceList(String code, Page<EamThirdMaintenanceOrder> page){
+ IPage<EamThirdMaintenanceOrder> eamThirdMaintenanceOrderIPage=new Page<>();
+ // 鐢ㄦ埛鏁版嵁鏉冮檺妫�鏌�
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if (sysUser == null) {
+ return null;
+ }
+
+ QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>();
+
+ // 璁惧杩囨护閫昏緫
+ if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
+ 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)) {
+ return null;
+ }
+
+ Set<String> factoryIds = baseFactoryUserList.stream()
+ .map(BaseFactoryUser::getFactoryId)
+ .collect(Collectors.toSet());
+
+ Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds)
+ .stream()
+ .map(BaseFactory::getOrgCode)
+ .collect(Collectors.toSet());
+
+ queryWrapper.in("e.factory_org_code", factoryCodes);
+ }
+ queryWrapper.orderByDesc("wmo.create_time");
+ // 鑾峰彇褰撳墠骞存湀鍜屼笅涓や釜鏈堢殑骞存湀瀛楃涓�
+ String currentYearMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ switch (code){
+ case "bysbzs":
+ // 鏈湀涓変繚璁″垝鎬绘暟
+ eamThirdMaintenanceOrderIPage=this.baseMapper.queryPageList(page,queryWrapper.clone().like("maintenance_date", currentYearMonth));
+ break;
+ case "bwc":
+ // 鏈湀瀹屾垚
+ eamThirdMaintenanceOrderIPage=this.baseMapper.queryPageList(page,queryWrapper.clone().like("maintenance_date", currentYearMonth)
+ .eq("maintenance_status", ThirdMaintenanceStatusEnum.COMPLETE.name()));
+ break;
+ case "xysb":
+ // 涓嬫湀涓変繚璁″垝
+ String nextMonth = LocalDate.now().plusMonths(1).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ eamThirdMaintenanceOrderIPage=this.baseMapper.queryPageList(page,queryWrapper.clone().like("maintenance_date", nextMonth));
+ break;
+ case "xxysb":
+ // 涓嬩笅鏈堜笁淇濊鍒�
+ String nextNextMonth = LocalDate.now().plusMonths(2).format(DateTimeFormatter.ofPattern("yyyy-MM"));
+ eamThirdMaintenanceOrderIPage=this.baseMapper.queryPageList(page,queryWrapper.clone().like("maintenance_date", nextNextMonth));
+ break;
+ default:
+ break;
+ }
+ eamThirdMaintenanceOrderIPage.getRecords().forEach(eamThirdMaintenanceOrder -> {
+ eamThirdMaintenanceOrder.setTechnologyStatus(eamEquipmentExtendService.getById(eamThirdMaintenanceOrder.getEquipmentId()).getTechnologyStatus());
+ });
+ return eamThirdMaintenanceOrderIPage;
+ }
+
+ /**
+ * 鏇存柊宸ュ崟鐘舵��
+ */
+ private void updateOrderStatus(Result result, EamThirdMaintenanceRequest request, EamThirdMaintenanceOrder order, LoginUser user) {
+ if (result.isSuccess()) {
+ ThirdMaintenanceStatusEnum status = ThirdMaintenanceStatusEnum.getInstance(order.getMaintenanceStatus());
+ switch (status) {
+ case WAIT_CHECK:
+ // 鎶�鏈姸鎬侀壌瀹氱粨鏉�
+ order.setInspector(user.getUsername());
+ order.setFullyFunctional(request.getFullyFunctional());
+ order.setRunningNormally(request.getRunningNormally());
+ order.setInspectTime(new Date());
+ if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) {
+ // 閴村畾閫氳繃
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
+ } else {
+ // 閴村畾鏈�氳繃
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.CANCEL.name());
+ order.setProblemDescription(request.getProblemDescription());
+ order.setActualEndTime(new Date());
+ }
+ break;
+ case UNDER_MAINTENANCE:
+ // 淇濆吇缁撴潫
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name());
+ order.setRepairman(user.getUsername());
+ order.setActualEndTime(new Date());
+ // 涓変繚鏄庣粏澶勭悊
+ eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
+ eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
+ // 涓変繚澶囦欢鏄庣粏澶勭悊
+ if (request.getTableSpareList() != null && !request.getTableSpareList().isEmpty()) {
+ List<EamThirdMaintenanceSpare> tableSpareList = request.getTableSpareList();
+ tableSpareList.forEach(eamThirdMaintenanceSpare -> {
+ eamThirdMaintenanceSpare.setOrderId(request.getId());
+ });
+ eamThirdMaintenanceSpareService.saveBatch(tableSpareList);
+ }
+ break;
+ case UNDER_FIRST_ACCEPTANCE:
+ // 绗竴娆¢獙鏀剁粨鏉�
+ boolean flag = false;
+ if (!CollectionUtil.isEmpty(request.getTableDetailList())) {
+ for (EamThirdMaintenanceOrderDetail eamThirdMaintenanceOrderDetail : request.getTableDetailList()) {
+ if ("2".equals(eamThirdMaintenanceOrderDetail.getFirstInspectResult())) {
+ flag = true;
+ break;
+ }
+ }
+ }
+ if (flag) {
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name());
+ } else {
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name());
+ }
+ // 涓変繚鏄庣粏澶勭悊
+ eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
+ eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
+ break;
+ case UNDER_SECOND_ACCEPTANCE:
+ // 绗簩娆¢獙鏀剁粨鏉�
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name());
+ // 涓変繚鏄庣粏澶勭悊
+ eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
+ eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
+ break;
+ case OPERATOR_SIGNATURE:
+ // 鎿嶄綔浜虹瀛楃粨鏉�
+ if (!StrUtils.isEmpty(request.getAssistantOperator())) {
+ order.setAssistantOperator(request.getAssistantOperator());
+ }
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name());
+ order.setOperatorSignature(user.getUsername());
+ order.setOperatorSignatureTime(new Date());
+ break;
+ case REPAIRMAN_SIGNATURE:
+ // 缁翠慨浜虹瀛楃粨鏉�
+ if (!StrUtils.isEmpty(request.getAssistantRepairman())) {
+ order.setAssistantRepairman(request.getAssistantRepairman());
+ }
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name());
+ order.setRepairmanSignature(user.getUsername());
+ order.setRepairmanSignatureTime(new Date());
+ break;
+ case REPAIR_MANAGER_SIGNATURE:
+ // 缁翠慨瀹や富浠荤瀛楃粨鏉�
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name());
+ order.setRepairManagerSignature(user.getUsername());
+ order.setRepairManagerSignatureTime(new Date());
+ break;
+ case INSPECTOR_SIGNATURE:
+ // 璁惧妫�鏌ヤ汉绛惧瓧缁撴潫
+ order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
+ order.setInspectorSignature(user.getUsername());
+ order.setInspectorSignatureTime(new Date());
+ break;
+ }
+ }
}
private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
--
Gitblit v1.9.3