package org.jeecg.modules.eam.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
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 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.common.system.vo.LoginUser;
|
import org.jeecg.common.util.oConvertUtils;
|
import org.jeecg.modules.eam.entity.*;
|
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;
|
|
/**
|
* @Description: mom_eam_equipment_report_repair
|
* @Author: jeecg-boot
|
* @Date: 2023-04-17
|
* @Version: V1.0
|
*/
|
@Api(tags = "故障报修")
|
@RestController
|
@RequestMapping("/eam/equipmentReportRepair")
|
@Slf4j
|
public class EquipmentReportRepairController extends JeecgController<EquipmentReportRepair, IEquipmentReportRepairService> {
|
@Autowired
|
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
|
@Lazy
|
private IdentityService sysIdentityService;
|
@Autowired
|
private IFaultInfoService faultInfoService;
|
@Value("${jeecg.path.upload}")
|
private String upLoadPath;
|
|
|
/**
|
* 分页列表查询
|
*
|
* @param equipmentReportRepair
|
* @param pageNo
|
* @param pageSize
|
* @param req
|
* @return
|
*/
|
@ApiOperation(value = "mom_eam_equipment_report_repair-分页列表查询", notes = "mom_eam_equipment_report_repair-分页列表查询")
|
@GetMapping(value = "/list")
|
public Result<IPage<EquipmentReportRepair>> queryPageList(EquipmentReportRepair equipmentReportRepair,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
HttpServletRequest req) {
|
QueryWrapper<EquipmentReportRepair> queryWrapper = QueryGenerator.initQueryWrapper(equipmentReportRepair, req.getParameterMap());
|
Page<EquipmentReportRepair> page = new Page<>(pageNo, pageSize);
|
IPage<EquipmentReportRepair> pageList = equipmentReportRepairService.page(page, queryWrapper);
|
for (EquipmentReportRepair record : pageList.getRecords()) {
|
String equipmentId = record.getEquipmentId();
|
Equipment equipment = equipmentService.getById(equipmentId);
|
record.setEquipmentNum(equipment.getNum());
|
record.setEquipmentName(equipment.getName());
|
record.setEquipmentModel(equipment.getModel());
|
record.setEquipmentSpecification(equipment.getSpecification());
|
}
|
return Result.OK(pageList);
|
}
|
|
/**
|
* 添加
|
*
|
* @param equipmentReportRepair
|
* @return
|
*/
|
@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.setType("1");
|
equipmentReportRepair.setIsCreateOrder(0);
|
equipmentReportRepairService.save(equipmentReportRepair);
|
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);
|
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);
|
String eId = equipmentReportRepair.getEquipmentId();
|
Equipment equipment = equipmentService.getById(eId);
|
faultInfo.setEquipModel(equipment.getModel());
|
faultInfo.setEquipName(equipment.getName());
|
faultInfo.setEquipNum(equipment.getNum());
|
faultInfoService.save(faultInfo);
|
|
}
|
Equipment equipment = equipmentService.getById(equipmentReportRepair.getEquipmentId());
|
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("添加成功!");
|
}
|
|
/**
|
* 编辑
|
*
|
* @param equipmentReportRepair
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_equipment_report_repair-编辑")
|
@ApiOperation(value = "mom_eam_equipment_report_repair-编辑", notes = "mom_eam_equipment_report_repair-编辑")
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
|
public Result<String> edit(@RequestBody EquipmentReportRepair equipmentReportRepair) {
|
equipmentReportRepairService.updateById(equipmentReportRepair);
|
//更新故障描述
|
FaultDescription faultDescription = faultDescriptionService.lambdaQuery().eq(FaultDescription::getFaultId,equipmentReportRepair.getId())
|
.eq(FaultDescription::getDelFlag, CommonConstant.DEL_FLAG_0).one();
|
if(faultDescription != null){
|
faultDescription.setFaultDetails(equipmentReportRepair.getFaultDescription());
|
faultDescription.setPhoto(equipmentReportRepair.getPhoto());
|
faultDescriptionService.updateById(faultDescription);
|
}
|
return Result.OK("操作成功!");
|
}
|
|
/**
|
* 通过id删除
|
*
|
* @param id
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_equipment_report_repair-通过id删除")
|
@ApiOperation(value = "mom_eam_equipment_report_repair-通过id删除", notes = "mom_eam_equipment_report_repair-通过id删除")
|
@DeleteMapping(value = "/delete")
|
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
|
equipmentReportRepairService.removeById(id);
|
//删除故障描述信息
|
FaultDescription faultDescription = faultDescriptionService.lambdaQuery().eq(FaultDescription::getFaultId,id)
|
.eq(FaultDescription::getDelFlag, CommonConstant.DEL_FLAG_0).one();
|
if(faultDescription != null){
|
faultDescriptionService.removeById(faultDescription.getId());
|
}
|
return Result.OK("删除成功!");
|
}
|
|
/**
|
* 批量删除
|
*
|
* @param ids
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_equipment_report_repair-批量删除")
|
@ApiOperation(value = "mom_eam_equipment_report_repair-批量删除", notes = "mom_eam_equipment_report_repair-批量删除")
|
@DeleteMapping(value = "/deleteBatch")
|
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
|
String[] stringList = ids.split(",");
|
for (String id : stringList) {
|
// EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(id);
|
// equipmentReportRepair.setDelFlag((byte) 1);
|
equipmentReportRepairService.removeById(id);
|
}
|
return Result.OK("批量删除成功!");
|
}
|
|
/**
|
* 通过id查询
|
*
|
* @param id
|
* @return
|
*/
|
@ApiOperation(value = "mom_eam_equipment_report_repair-通过id查询", notes = "mom_eam_equipment_report_repair-通过id查询")
|
@GetMapping(value = "/queryById")
|
public Result<EquipmentReportRepair> queryById(@RequestParam(name = "id", required = true) String id) {
|
EquipmentReportRepair equipmentReportRepair = equipmentReportRepairService.getById(id);
|
if (equipmentReportRepair == null) {
|
return Result.error("未找到对应数据");
|
}
|
return Result.OK(equipmentReportRepair);
|
}
|
|
/**
|
* 查询故障报修列表
|
*
|
* @return
|
*/
|
@GetMapping(value = "/getReportRepairList")
|
public Result<?> getReportRepairList(@RequestParam("pageNo") Integer pageNo,
|
@RequestParam("pageSize") Integer pageSize,
|
@RequestParam Map<String, Object> params) {
|
IPage<Map<String, Object>> equipmentReportRepairList = equipmentReportRepairService.getReportRepairList(pageNo, pageSize, params);
|
return Result.ok(equipmentReportRepairList);
|
}
|
|
@PutMapping("/accept")
|
public Result<?> accept(@RequestBody EquipmentReportRepair equipmentReportRepair ){
|
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("验收失败,产品质量隐患确认和事故登记尚未完成,请完成确认后再进行验收");
|
}
|
}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("验收成功");
|
}
|
/**
|
* 导出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());
|
//此处设置的filename无效 ,前端会重更新设置一下
|
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;
|
}
|
}
|