qushaowei
2023-12-29 b2580407f2d0d1428bcb77963fcdd897ed552827
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentReportRepairController.java
@@ -2,11 +2,13 @@
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.shiro.SecurityUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
@@ -14,12 +16,9 @@
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.modules.eam.entity.*;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +27,8 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -46,15 +47,22 @@
    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;
    /**
     * 分页列表查询
     *
@@ -95,14 +103,43 @@
    @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(StringUtils.isNotBlank(teamId)){
        if(ObjectUtils.isNotNull(teamId)){
            List<SysUser> sysUsers = userService.list(new QueryWrapper<SysUser>()
                    .eq("team_id",teamId)
                    .eq("del_flag",0));
@@ -218,4 +255,44 @@
        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("验收成功");
    }
}