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.CollectionUtils; 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.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.modules.eam.entity.*; import org.jeecg.modules.eam.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; /** * @Description: mom_eam_inspection_project * @Author: jeecg-boot * @Date: 2023-03-10 * @Version: V1.0 */ @Api(tags = "mom_eam_equipment_transfer") @RestController @RequestMapping("/eam/equipmentTransfer") @Slf4j public class EquipmentTransferController extends JeecgController { @Autowired private IEquipmentTransferService equipmentTransferService; @Autowired private IEquipmentTransferInDetailService equipmentTransferInDetailService; @Autowired private IEquipmentTransferOutDetailService equipmentTransferOutDetailService; // // @Autowired // private IEnterpriseService enterpriseService; // // @Autowired // private IDataVersionService dataVersionService; @Autowired private IEamEquipmentService equipmentService; @Autowired private ISysBaseAPI sysBaseApi; /** * 分页列表查询 * * @param dailyInspectionStandard * @param pageNo * @param pageSize * @param req * @return */ @ApiOperation(value = "设备调动-分页列表查询", notes = "设备调动-分页列表查询") @GetMapping(value = "/list") public Result> queryPageList(EquipmentTransfer dailyInspectionStandard, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(dailyInspectionStandard, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList; String type = dailyInspectionStandard.getTransferType(); if (type == "in") { pageList = equipmentTransferService.page(page, queryWrapper); } else { pageList = equipmentTransferService.page(page, queryWrapper); } return Result.OK(pageList); } /** * qsw 2023-4-26 */ @GetMapping("getEquipmentTransferList") public Result getInspectionStandardList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam("transferType") String transferType, @RequestParam Map params) { String transfertype = String.valueOf(params.get("transferType")); if (transfertype.equals("reduce")) { IPage> equipmentTransferOutList = equipmentTransferService.getEquipmentTransferList(pageNo, pageSize, transferType, params); List> records = equipmentTransferOutList.getRecords(); for (Map record : records) { String equipmentTransferId = (String) record.get("id"); String type = "reduce"; List> equipmentTransferOutDetailList = equipmentTransferOutDetailService.getEquipmentTransferOutDetailList(equipmentTransferId, type); record.put("equipmentTransferOutDetailList", equipmentTransferOutDetailList); } return Result.ok(equipmentTransferOutList); } else { IPage> equipmentTransferInList = equipmentTransferService.getEquipmentTransferAddList(pageNo, pageSize, transferType, params); List> records = equipmentTransferInList.getRecords(); for (Map record : records) { String equipmentTransferId = (String) record.get("id"); String type = "add"; List> equipmentTransferInDetailList = equipmentTransferInDetailService.getEquipmentTransferInDetailList(equipmentTransferId, type); record.put("equipmentTransferInDetailList", equipmentTransferInDetailList); } return Result.ok(equipmentTransferInList); } } /** * 撤回 * * @param equipmentTransfer * @return */ @AutoLog(value = "设备调动-提交") @ApiOperation(value = "设备调动-提交", notes = "设备调动-提交") @PostMapping(value = "/submit") public Result submit(@RequestBody EquipmentTransfer equipmentTransfer) { String id = equipmentTransfer.getId(); equipmentTransferService.submit(id); return Result.OK("提交成功!"); } /** * 审批通过 * * @param equipmentTransfer * @return */ @AutoLog(value = "设备调动-审批通过") @ApiOperation(value = "设备调动-审批通过", notes = "设备调动-审批通过") @PostMapping(value = "/approval") public Result approval(@RequestBody EquipmentTransfer equipmentTransfer) { equipmentTransferService.approval(equipmentTransfer); return Result.OK("审批通过!"); } /** * 驳回 * * @param equipmentTransfer * @return */ @AutoLog(value = "设备调动-驳回") @ApiOperation(value = "设备调动-驳回", notes = "设备调动-驳回") @PostMapping(value = "/reject") public Result reject(@RequestBody EquipmentTransfer equipmentTransfer) { equipmentTransferService.reject(equipmentTransfer); return Result.OK("驳回成功!"); } /** * 撤回 * * @param equipmentTransfer * @return */ @AutoLog(value = "设备调动-撤回") @ApiOperation(value = "设备调动-撤回", notes = "设备调动-撤回") @PostMapping(value = "/revocation") public Result revocation(@RequestBody EquipmentTransfer equipmentTransfer) { String id = equipmentTransfer.getId(); equipmentTransferService.revocation(id); return Result.OK("撤回成功!"); } @AutoLog(value = "设备调动-添加") @ApiOperation(value = "设备调动-添加", notes = "设备调动-添加") @PostMapping(value = "/add") @Transactional(rollbackFor = {Exception.class}) public Result add(@RequestBody EquipmentTransfer equipmentTransfer) throws ParseException { equipmentTransfer.setAuditStatus("notSubmitted"); equipmentTransferService.save(equipmentTransfer); String type = equipmentTransfer.getTransferType(); String transferType = "reduce"; if (transferType.equals(type)) { List equipmentTransferOutDetailList = equipmentTransfer.getEquipmentTransferOutDetailList(); for (EquipmentTransferOutDetail equipmentTransferOutDetail : equipmentTransferOutDetailList) { equipmentTransferOutDetail.setEquipmentTransferId(equipmentTransfer.getId()); equipmentTransferOutDetail.setId(null); equipmentTransferOutDetail.setTransferMethodId(equipmentTransfer.getEquipmentTransferCatrgoryId()); String demandDate = equipmentTransferOutDetail.getDemandDate(); String outDate=equipmentTransferOutDetail.getOutDate(); String actualOutDate = equipmentTransferOutDetail.getActualOutDate(); Instant instant = Instant.parse(demandDate); Instant instantoutDate=Instant.parse(outDate); Instant instant1 = Instant.parse(actualOutDate); ZoneId zooid = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zooid); LocalDateTime localDateTime1 = LocalDateTime.ofInstant(instant1, zooid); LocalDateTime outLocalDate = LocalDateTime.ofInstant(instantoutDate, zooid); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format = localDateTime1.format(formatter); String formatoutDate = outLocalDate.format(formatter); String locaLTime = localDateTime.format(formatter); equipmentTransferOutDetail.setDemandDate(locaLTime); equipmentTransferOutDetail.setActualOutDate(format); equipmentTransferOutDetail.setOutDate(formatoutDate); equipmentTransferOutDetailService.save(equipmentTransferOutDetail); } } else { List equipmentTransferInDetailList = equipmentTransfer.getEquipmentTransferInDetailList(); for (EquipmentTransferInDetail equipmentTransferInDetail : equipmentTransferInDetailList) { equipmentTransferInDetail.setEquipmentTransferId(equipmentTransfer.getId()); equipmentTransferInDetail.setId(null); equipmentTransferInDetail.setTransferMethodId(equipmentTransfer.getEquipmentTransferCatrgoryId()); String demandDate = equipmentTransferInDetail.getDemandDate(); String actualOutDate = equipmentTransferInDetail.getActualInDate(); Instant instant = Instant.parse(demandDate); Instant instant1 = Instant.parse(actualOutDate); ZoneId zooid = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zooid); LocalDateTime localDateTime1 = LocalDateTime.ofInstant(instant1, zooid); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String format = localDateTime1.format(formatter); String locaLTime = localDateTime.format(formatter); equipmentTransferInDetail.setDemandDate(locaLTime); equipmentTransferInDetail.setActualInDate(format); Equipment equipment = equipmentService.getById(equipmentTransferInDetail.getEquipmentId()); equipment.setLocation(equipmentTransferInDetail.getPosition()); equipmentService.updateById(equipment); equipmentTransferInDetailService.save(equipmentTransferInDetail); } } return Result.OK("添加成功!"); } /** * @param equipmentTransfer * @return */ @AutoLog(value = "设备调动-编辑") @ApiOperation(value = "设备调动-编辑", notes = "设备调动-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) @Transactional(rollbackFor = {Exception.class}) public Result edit(@RequestBody EquipmentTransfer equipmentTransfer) { equipmentTransferService.updateById(equipmentTransfer); //1.删除原点设备调动 if (equipmentTransfer.getTransferType().equals("reduce")) { List equipmentTransferOutDetails = equipmentTransferOutDetailService.lambdaQuery() .eq(EquipmentTransferOutDetail::getEquipmentTransferId, equipmentTransfer.getId()) .eq(EquipmentTransferOutDetail::getDelFlag, 0) .eq(EquipmentTransferOutDetail::getStatus, "1").list(); for (EquipmentTransferOutDetail equipmentTransferOutDetail : equipmentTransferOutDetails) { equipmentTransferOutDetail.setDelFlag(1); equipmentTransferOutDetailService.updateById(equipmentTransferOutDetail); } //2.重新持久设备调动 List equipmentTransferOutDetailList = equipmentTransfer.getEquipmentTransferOutDetailList(); for (EquipmentTransferOutDetail equipmentTransferOutDetail : equipmentTransferOutDetailList) { equipmentTransferOutDetail.setId(null); equipmentTransferOutDetail.setEquipmentTransferId(equipmentTransfer.getId()); equipmentTransferOutDetailService.save(equipmentTransferOutDetail); } } else { List equipmentTransferInDetails = equipmentTransferInDetailService.lambdaQuery() .eq(EquipmentTransferInDetail::getEquipmentTransferId, equipmentTransfer.getId()) .eq(EquipmentTransferInDetail::getDelFlag, 0) .eq(EquipmentTransferInDetail::getStatus, "1").list(); for (EquipmentTransferInDetail equipmentTransferInDetail : equipmentTransferInDetails) { equipmentTransferInDetail.setDelFlag(1); equipmentTransferInDetailService.updateById(equipmentTransferInDetail); } //2.重新持久设备调动 List equipmentTransferInDetailList = equipmentTransfer.getEquipmentTransferInDetailList(); for (EquipmentTransferInDetail equipmentTransferInDetail : equipmentTransferInDetailList) { equipmentTransferInDetail.setId(null); equipmentTransferInDetail.setEquipmentTransferId(equipmentTransfer.getId()); equipmentTransferInDetailService.save(equipmentTransferInDetail); } } return Result.OK("编辑成功!"); } /** * 通过id删除 * * @param id * @return */ @AutoLog(value = "设备调动-通过id删除") @ApiOperation(value = "设备调动-通过id删除", notes = "设备调动-通过id删除") @DeleteMapping(value = "/delete") public Result delete(@RequestParam(name = "id", required = true) String id) { EquipmentTransfer equipmentTransfer = equipmentTransferService.getById(id); equipmentTransfer.setDelFlag(1); equipmentTransferService.updateById(equipmentTransfer); if (equipmentTransfer.getTransferType().equals("reduce")) { List equipmentTransferInDetailList = equipmentTransferInDetailService.lambdaQuery() .eq(EquipmentTransferInDetail::getEquipmentTransferId, id) .eq(EquipmentTransferInDetail::getDelFlag, 0) .eq(EquipmentTransferInDetail::getStatus, "1").list(); for (EquipmentTransferInDetail equipmentTransferInDetail : equipmentTransferInDetailList) { equipmentTransferInDetail.setDelFlag(1); equipmentTransferInDetailService.updateById(equipmentTransferInDetail); } } else { List equipmentTransferOutDetailList = equipmentTransferOutDetailService.lambdaQuery() .eq(EquipmentTransferOutDetail::getEquipmentTransferId, id) .eq(EquipmentTransferOutDetail::getDelFlag, 0) .eq(EquipmentTransferOutDetail::getStatus, "1").list(); for (EquipmentTransferOutDetail equipmentTransferOutDetail : equipmentTransferOutDetailList) { equipmentTransferOutDetail.setDelFlag(1); equipmentTransferOutDetailService.updateById(equipmentTransferOutDetail); } } return Result.OK("删除成功!"); } /** * 批量删除 * * @param ids * @return */ @AutoLog(value = "设备调动-批量删除") @ApiOperation(value = "设备调动-批量删除", notes = "设备调动-批量删除") @DeleteMapping(value = "/deleteBatch") public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { List idList = Arrays.asList(ids.split(",")); for (String id : idList) { EquipmentTransfer dailyInspectionStandard = equipmentTransferService.getById(id); dailyInspectionStandard.setDelFlag(1); equipmentTransferService.updateById(dailyInspectionStandard); } return Result.OK("批量删除成功!"); } /** * 通过id查询 * * @param id * @return */ @ApiOperation(value = "设备调动-通过id查询", notes = "设备调动-通过id查询") @GetMapping(value = "/queryById") public Result queryById(@RequestParam(name = "id", required = true) String id) { EquipmentTransfer dailyInspectionStandard = equipmentTransferService.getById(id); if (dailyInspectionStandard == null) { return Result.error("未找到对应数据"); } return Result.OK(dailyInspectionStandard); } /** * 导出excel * * @param request * @param dailyInspectionStandard */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, EquipmentTransfer dailyInspectionStandard) { return super.exportXls(request, dailyInspectionStandard, EquipmentTransfer.class, "mom_eam_equipment_transfer"); } /** * 通过excel导入数据 * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, EquipmentTransfer.class); } /** * 获取初始信息 */ @GetMapping("/getMaintenanceCycleInfo") public Result getMaintenanceCycleInfo() { Map infoMap = new HashMap<>(3); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // String enterpriseName = enterpriseService.lambdaQuery().eq(Enterprise::getId, loginUser.getEnterpriseId()).eq(Enterprise::getDelFlag, CommonConstant.DEL_FLAG_0).one().getName(); String enterpriseName = sysBaseApi.getEnterpriseNameById(loginUser.getEnterpriseId()); infoMap.put("enterpriseId", loginUser.getEnterpriseId()); infoMap.put("enterpriseName", enterpriseName); if (CollectionUtils.isNotEmpty(equipmentTransferService.getUsableVersion())) { infoMap.put("version", equipmentTransferService.getUsableVersion().get(0)); // String versionStatus = dataVersionService.lambdaQuery().eq(DataVersion::getVersion, equipmentTransferService.getUsableVersion().get(0)).eq(DataVersion::getBusinessType, "保养周期") // .eq(DataVersion::getDelFlag, CommonConstant.DEL_FLAG_0).list().get(0).getVersionStatus(); String versionStatus = sysBaseApi.getVersionStatusByVersionAndBusinessType(equipmentTransferService.getUsableVersion().get(0), "保养周期"); infoMap.put("versionStatus", versionStatus); } else { // infoMap.put("version", 1); // infoMap.put("versionStatus", "0"); infoMap.put("version", 1); infoMap.put("versionStatus", CommonConstant.STATUS_0); } return Result.OK(infoMap); } }