From 4b27dd367eae2f24958c6bb857fb6959dcdb7a4a Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期五, 13 六月 2025 18:04:46 +0800
Subject: [PATCH] 报表提交

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java |  198 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 188 insertions(+), 10 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
index 5b19064..ce24b9d 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
@@ -1,28 +1,47 @@
 package org.jeecg.modules.eam.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sun.org.apache.regexp.internal.RE;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.formula.functions.T;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.dto.message.MessageDTO;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.modules.eam.entity.Equipment;
-import org.jeecg.modules.eam.entity.EquipmentReportRepair;
-import org.jeecg.modules.eam.entity.FaultDescription;
-import org.jeecg.modules.eam.service.IEamEquipmentService;
-import org.jeecg.modules.eam.service.IEquipmentReportRepairService;
-import org.jeecg.modules.eam.service.IFaultDescriptionService;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.mapper.RepairOrderMapper;
+import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.eam.vo.RepairReportExportVo;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -40,15 +59,28 @@
     private IEquipmentReportRepairService equipmentReportRepairService;
     @Autowired
     private IEamEquipmentService equipmentService;
-
     @Autowired
     private ISysBaseAPI sysBaseApi;
-
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private IQuanlityConfirmService quanlityConfirmService;
     @Autowired
     @Lazy
     private IFaultDescriptionService faultDescriptionService;
-//    @Autowired
-//    private IUploadRelaService uploadRelaService;
+    @Autowired
+    @Lazy
+    private IdentityService sysIdentityService;
+    @Autowired
+    private IFaultInfoService faultInfoService;
+    @Value("${jeecg.path.upload}")
+    private String upLoadPath;
+    @Autowired
+    private IRepairOrderService repairOrderService;
+
+    @Autowired
+    private RepairOrderMapper repairOrderMapper;
+
 
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
@@ -88,17 +120,78 @@
     @AutoLog(value = "mom_eam_equipment_report_repair-娣诲姞")
     @ApiOperation(value = "mom_eam_equipment_report_repair-娣诲姞", notes = "mom_eam_equipment_report_repair-娣诲姞")
     @PostMapping(value = "/add")
+    @Transactional(rollbackFor = {Exception.class})
     public Result<String> add(@RequestBody EquipmentReportRepair equipmentReportRepair) {
+        LoginUser curUser= (LoginUser) SecurityUtils.getSubject().getPrincipal();
         equipmentReportRepair.setStatus("1");
         equipmentReportRepair.setSource("1");
         equipmentReportRepair.setIsCreateOrder(0);
         equipmentReportRepairService.save(equipmentReportRepair);
+        Equipment equipment = equipmentService.getById(equipmentReportRepair.getEquipmentId());
+        String IS_PRODUCT_YES = "yes";
+        if(IS_PRODUCT_YES.equals(equipmentReportRepair.getErrUda1())){
+            String num = sysIdentityService.getNumByTypeAndLength("QuanlityConfirm",4);
+            QuanlityConfirm quanlityConfirm = new QuanlityConfirm();
+            quanlityConfirm.setNum(num);
+            quanlityConfirm.setReportId(equipmentReportRepair.getId());
+            String IS_PRODUCT_NO = "no";
+            quanlityConfirm.setIsConfirm(IS_PRODUCT_NO);
+            quanlityConfirm.setBatchNo(equipmentReportRepair.getBatchNo());
+            quanlityConfirm.setPartNumber(equipmentReportRepair.getPartNumber());
+            quanlityConfirm.setQuantity(equipmentReportRepair.getQuantity());
+            quanlityConfirm.setOperator(curUser.getId());
+            quanlityConfirmService.save(quanlityConfirm);
+            MessageDTO qMessageDTO = new MessageDTO();
+            qMessageDTO.setTitle("璐ㄩ噺闅愭偅纭鎻愰啋");
+            qMessageDTO.setContent("缁熶竴缂栧彿涓恒��"+equipment.getNum()+"銆戠殑璁惧闇�瑕佽繘琛岃川閲忛殣鎮g‘璁わ紝璇风Щ姝ヨ嚦璐ㄩ噺闅愭偅纭杩涜纭锛佸崟鎹彿銆�"+num+"銆�");
+            qMessageDTO.setCategory("璐ㄩ噺闅愭偅纭");
+            qMessageDTO.setFromUser("璐ㄩ噺闅愭偅纭鎻愰啋灏忓姪鎵�");
+            qMessageDTO.setToUser(curUser.getUsername());
+            sysBaseApi.sendSysAnnouncement(qMessageDTO);
+            String fNum = sysIdentityService.getNumByTypeAndLength("FaultInfo",4);
+            FaultInfo faultInfo = new FaultInfo();
+            faultInfo.setNum(fNum);
+            faultInfo.setQuanlityId(quanlityConfirm.getId());
+            faultInfo.setOperater(quanlityConfirm.getOperator());
+            faultInfo.setIsConfirm(IS_PRODUCT_NO);
+            faultInfo.setEquipModel(equipment.getModel());
+            faultInfo.setEquipName(equipment.getName());
+            faultInfo.setEquipNum(equipment.getNum());
+            faultInfoService.save(faultInfo);
+            MessageDTO fMessageDTO = new MessageDTO();
+            fMessageDTO.setTitle("璁惧浜嬫晠鐧昏鎻愰啋");
+            fMessageDTO.setContent("缁熶竴缂栧彿涓恒��"+equipment.getNum()+"銆戠殑璁惧闇�瑕佽繘琛屼簨鏁呯櫥璁帮紝璇风Щ姝ヨ嚦璁惧浜嬫晠鐧昏琛ㄥ畬鎴愮‘璁わ紒鍗曟嵁鍙枫��"+fNum+"銆�");
+            fMessageDTO.setCategory("璁惧浜嬫晠鐧昏纭");
+            fMessageDTO.setFromUser("璁惧浜嬫晠鐧昏鎻愰啋灏忓姪鎵�");
+            fMessageDTO.setToUser(curUser.getUsername());
+            sysBaseApi.sendSysAnnouncement(fMessageDTO);
+        }
+        equipment.setEquipmentStatus("2");
+        String teamId = equipment.getTeamId();
+        if(ObjectUtils.isNotNull(teamId)){
+            List<SysUser> sysUsers = userService.list(new QueryWrapper<SysUser>()
+                    .eq("team_id",teamId)
+                    .eq("del_flag",0));
+            for(SysUser user:sysUsers){
+                String msg = "缁熶竴缂栧彿涓恒��"+equipment.getNum()+"銆戠殑璁惧闇�瑕佺淮淇紝璇风Щ姝ヨ嚦鏁呴殰鎶ヤ慨鏌ョ湅";
+                MessageDTO messageDTO = new MessageDTO();
+                messageDTO.setTitle("鏁呴殰鎶ヤ慨鎻愰啋");
+                messageDTO.setContent(msg);
+                messageDTO.setCategory("鏁呴殰鎶ヤ慨鎻愰啋");
+                messageDTO.setFromUser("鏁呴殰鎶ヤ慨鎻愰啋灏忓姪鎵�");
+                messageDTO.setToUser(user.getUsername());
+                sysBaseApi.sendSysAnnouncement(messageDTO);
+            }
+        }else {
+            return Result.error("璇ヨ澶囧皻鏈淮鎶ょ淮淇彮缁�,璇风淮鎶ゅ悗鍐嶆姤淇�");
+        }
         //娣诲姞鏁呴殰鎻忚堪淇℃伅
         FaultDescription faultDescription = new FaultDescription();
         faultDescription.setFaultDetails(equipmentReportRepair.getFaultDescription());
         faultDescription.setFaultId(equipmentReportRepair.getId());
         faultDescription.setPhoto(equipmentReportRepair.getPhoto());
         faultDescriptionService.save(faultDescription);
+        equipmentService.updateById(equipment);
         return Result.OK("娣诲姞鎴愬姛锛�");
     }
 
@@ -191,4 +284,89 @@
         IPage<Map<String, Object>> equipmentReportRepairList = equipmentReportRepairService.getReportRepairList(pageNo, pageSize, params);
         return Result.ok(equipmentReportRepairList);
     }
+
+    @PutMapping("/accept")
+    @Transactional(rollbackFor = Exception.class)
+    public Result<?> accept(@RequestBody EquipmentReportRepair equipmentReportRepair ){
+        if(equipmentReportRepair.getErrUda4().equals("1")){
+            if(equipmentReportRepair.getErrUda1().equals("yes")){
+                QuanlityConfirm quanlityConfirm = quanlityConfirmService.getOne(new QueryWrapper<QuanlityConfirm>().eq("report_id",equipmentReportRepair.getId()),false);
+                if(ObjectUtils.isNotNull(quanlityConfirm)){
+                    String isConfirm1 = quanlityConfirm.getIsConfirm();
+                    FaultInfo faultInfo = faultInfoService.getOne(new QueryWrapper<FaultInfo>().eq("quanlity_id",quanlityConfirm.getId()),false);
+                    if(ObjectUtils.isNotNull(faultInfo)){
+                        String isConfirm2 = faultInfo.getIsConfirm();
+                        if(!isConfirm1.equals("yes")||!isConfirm2.equals("yes")){
+                            return Result.error("楠屾敹澶辫触锛屼骇鍝佽川閲忛殣鎮g‘璁ゅ拰浜嬫晠鐧昏灏氭湭瀹屾垚锛岃瀹屾垚纭鍚庡啀杩涜楠屾敹");
+                        }
+                    }else {
+                        return Result.error("楠屾敹澶辫触锛屾湭鐢熸垚浜嬫晠鐧昏鍗�");
+                    }
+                }else {
+                    return Result.error("楠屾敹澶辫触锛屾湭鐢熸垚浜у搧璐ㄩ噺纭");
+                }
+            }
+            LoginUser user= (LoginUser)SecurityUtils.getSubject().getPrincipal();
+            equipmentReportRepair.setStatus("5");
+            equipmentReportRepair.setAcceptTime(new Date());
+            Date start = equipmentReportRepair.getFaultTime();
+            Date end = equipmentReportRepair.getAcceptTime();
+            if(ObjectUtils.isNotNull(start)){
+                long timeDifference =end.getTime() - start.getTime();
+                BigDecimal hours = new BigDecimal(timeDifference)
+                        .divide(new BigDecimal(60 * 60 * 1000), 3, BigDecimal.ROUND_HALF_EVEN);
+                equipmentReportRepair.setFaultHour(hours);
+            }
+            equipmentReportRepairService.updateById(equipmentReportRepair);
+            String equipmentId = equipmentReportRepair.getEquipmentId();
+            if(StringUtils.isNotBlank(equipmentId)){
+                Equipment equipment = equipmentService.getById(equipmentId);
+                equipment.setEquipmentStatus("1");
+                equipmentService.updateById(equipment);
+            }
+            return Result.OK("楠屾敹鎴愬姛");
+        }else {
+            equipmentReportRepair.setStatus("2");
+            equipmentReportRepairService.updateById(equipmentReportRepair);
+            RepairOrder repairOrder = repairOrderService.getOne(new QueryWrapper<RepairOrder>().eq("report_repair_id",equipmentReportRepair.getId()),false);
+            if(ObjectUtils.isNotNull(repairOrder)){
+
+                repairOrderMapper.updateRepair(repairOrder.getId());
+//                repairOrder.setStatus("3");
+//                repairOrder.setActualEndTime(null);
+//                repairOrderService.updateById(repairOrder);
+            }
+            return Result.OK("宸查┏鍥�");
+        }
+
+    }
+
+
+    /**
+     * 瀵煎嚭excel
+     *
+     * @param request
+     * @param equipmentReportRepair
+     */
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, RepairReportExportVo equipmentReportRepair) {
+        // Step.1 缁勮鏌ヨ鏉′欢
+        String title = "鏁呴殰鎶ヤ慨瀵煎嚭";
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        // Step.2 鑾峰彇瀵煎嚭鏁版嵁
+        List<RepairReportExportVo> exportList = equipmentReportRepairService.exportList(equipmentReportRepair);
+
+        // Step.3 AutoPoi 瀵煎嚭Excel
+        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+        //姝ゅ璁剧疆鐨刦ilename鏃犳晥 ,鍓嶇浼氶噸鏇存柊璁剧疆涓�涓�
+        mv.addObject(NormalExcelConstants.FILE_NAME, title);
+        mv.addObject(NormalExcelConstants.CLASS, RepairReportExportVo.class);
+        //update-begin--Author:liusq  Date:20210126 for锛氬浘鐗囧鍑烘姤閿欙紝ImageBasePath鏈缃�--------------------
+        ExportParams exportParams=new ExportParams(title + "鎶ヨ〃", "瀵煎嚭浜�:" + sysUser.getRealname(), title);
+        exportParams.setImageBasePath(upLoadPath);
+        //update-end--Author:liusq  Date:20210126 for锛氬浘鐗囧鍑烘姤閿欙紝ImageBasePath鏈缃�----------------------
+        mv.addObject(NormalExcelConstants.PARAMS,exportParams);
+        mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+        return mv;
+    }
 }

--
Gitblit v1.9.3