cuilei
2025-06-24 0976769f6ecc75e26c9de48f23e7fcd46d858560
设备管理-大修项修
已添加2个文件
已修改11个文件
706 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MajorPartialRepairStatusEnum.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMajorPartialRepairController.java 201 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMajorPartialRepairDetailController.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMajorPartialRepair.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMajorPartialRepairDetail.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMajorPartialRepairDetailMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMajorPartialRepairMapper.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMajorPartialRepairMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMajorPartialRepairQuery.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMajorPartialRepairDetailService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMajorPartialRepairService.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairDetailServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MajorPartialRepairStatusEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package org.jeecg.modules.eam.constant;
import lombok.Data;
public enum MajorPartialRepairStatusEnum {
    PENDING_SUBMISSION,// å¾…提交
    PENDING_CONFIRMATION,// å¾…确认
    CONFIRMED,// å·²ç¡®è®¤
    COMPLETED,// å·²å®Œæˆ
    INVALIDATED// ä½œåºŸ
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMajorPartialRepairController.java
@@ -1,31 +1,35 @@
package org.jeecg.modules.eam.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.collection.CollectionUtil;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.MajorPartialRepairStatusEnum;
import org.jeecg.modules.eam.entity.EamMajorPartialRepair;
import org.jeecg.modules.eam.entity.EamMajorPartialRepairDetail;
import org.jeecg.modules.eam.request.EamMajorPartialRepairQuery;
import org.jeecg.modules.eam.service.IEamMajorPartialRepairService;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -34,17 +38,18 @@
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: å¤§ä¿®é¡¹ä¿®
 * @Description: eam_major_partial_repair
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
@Slf4j
@Api(tags="大修项修")
@Api(tags="eam_major_partial_repair")
@RestController
@RequestMapping("/eam/eamMajorPartialRepair")
@Slf4j
public class EamMajorPartialRepairController extends JeecgController<EamMajorPartialRepair, IEamMajorPartialRepairService> {
    @Autowired
    private IEamMajorPartialRepairService eamMajorPartialRepairService;
@@ -52,22 +57,21 @@
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param eamMajorPartialRepair
     * @param query
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    @AutoLog(value = "大修项修-分页列表查询")
    @ApiOperation(value="大修项修-分页列表查询", notes="大修项修-分页列表查询")
    //@AutoLog(value = "eam_major_partial_repair-分页列表查询")
    @ApiOperation(value="eam_major_partial_repair-分页列表查询", notes="eam_major_partial_repair-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamMajorPartialRepair eamMajorPartialRepair,
    public Result<IPage<EamMajorPartialRepair>> queryPageList(EamMajorPartialRepairQuery query,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamMajorPartialRepair> queryWrapper = QueryGenerator.initQueryWrapper(eamMajorPartialRepair, req.getParameterMap());
        Page<EamMajorPartialRepair> page = new Page<EamMajorPartialRepair>(pageNo, pageSize);
        IPage<EamMajorPartialRepair> pageList = eamMajorPartialRepairService.page(page, queryWrapper);
        IPage<EamMajorPartialRepair> pageList = eamMajorPartialRepairService.queryPageList(page, query);
        return Result.OK(pageList);
    }
    
@@ -77,11 +81,12 @@
     * @param eamMajorPartialRepair
     * @return
     */
    @AutoLog(value = "大修项修-添加")
    @ApiOperation(value="大修项修-添加", notes="大修项修-添加")
    @AutoLog(value = "eam_major_partial_repair-添加")
    @ApiOperation(value="eam_major_partial_repair-添加", notes="eam_major_partial_repair-添加")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:add")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamMajorPartialRepair eamMajorPartialRepair) {
        eamMajorPartialRepairService.save(eamMajorPartialRepair);
    public Result<String> add(@RequestBody EamMajorPartialRepair eamMajorPartialRepair) {
        eamMajorPartialRepairService.saveMajorPartialRepair(eamMajorPartialRepair);
        return Result.OK("添加成功!");
    }
    
@@ -91,12 +96,129 @@
     * @param eamMajorPartialRepair
     * @return
     */
    @AutoLog(value = "大修项修-编辑")
    @ApiOperation(value="大修项修-编辑", notes="大修项修-编辑")
    @AutoLog(value = "eam_major_partial_repair-编辑")
    @ApiOperation(value="eam_major_partial_repair-编辑", notes="eam_major_partial_repair-编辑")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamMajorPartialRepair eamMajorPartialRepair) {
        eamMajorPartialRepairService.updateById(eamMajorPartialRepair);
    public Result<String> edit(@RequestBody EamMajorPartialRepair eamMajorPartialRepair) {
        eamMajorPartialRepairService.updateMajorPartialRepair(eamMajorPartialRepair);
        return Result.OK("编辑成功!");
    }
    @AutoLog(value = "eam_major_partial_repair-提交")
    @ApiOperation(value="eam_major_partial_repair-提交", notes="eam_major_partial_repair-提交")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:submit")
    @GetMapping(value = "/submit")
    public Result<String> submit(@RequestParam("id") String id) {
        EamMajorPartialRepair majorPartialRepair = eamMajorPartialRepairService.getById(id);
        if (Objects.isNull(majorPartialRepair)) {
            return Result.error("要提交的维修单不存在,请刷新重试!");
        }
        if (!MajorPartialRepairStatusEnum.PENDING_SUBMISSION.name().equals(majorPartialRepair.getRepairStatus())) {
            return Result.error("该状态的维修单不能提交!");
        }
        majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.PENDING_CONFIRMATION.name());
        eamMajorPartialRepairService.updateById(majorPartialRepair);
        return Result.OK("提交成功!");
    }
    @AutoLog(value = "eam_major_partial_repair-批量提交")
    @ApiOperation(value="eam_major_partial_repair-批量提交", notes="eam_major_partial_repair-批量提交")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:submit")
    @GetMapping(value = "/submitBatch")
    public Result<String> submitBatch(@RequestParam(name="ids") String ids) {
        List<String> idList = Arrays.asList(ids.split(","));
        List<EamMajorPartialRepair> submitList = CollectionUtil.newArrayList();
        idList.forEach(id -> {
            EamMajorPartialRepair majorPartialRepair = eamMajorPartialRepairService.getById(id);
            if (Objects.nonNull(majorPartialRepair) && MajorPartialRepairStatusEnum.PENDING_SUBMISSION.name().equals(majorPartialRepair.getRepairStatus())) {
                majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.PENDING_CONFIRMATION.name());
                submitList.add(majorPartialRepair);
            }
        });
        eamMajorPartialRepairService.updateBatchById(submitList);
        return Result.OK("批量提交 " + submitList.size() + " æ¡ç»´ä¿®å•!");
    }
    @AutoLog(value = "eam_major_partial_repair-确认")
    @ApiOperation(value="eam_major_partial_repair-确认", notes="eam_major_partial_repair-确认")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:confirm")
    @GetMapping(value = "/confirm")
    public Result<String> confirm(@RequestParam("id") String id) {
        EamMajorPartialRepair majorPartialRepair = eamMajorPartialRepairService.getById(id);
        if (Objects.isNull(majorPartialRepair)) {
            return Result.error("要确认的维修单不存在,请刷新重试!");
        }
        if (!MajorPartialRepairStatusEnum.PENDING_CONFIRMATION.name().equals(majorPartialRepair.getRepairStatus())) {
            return Result.error("该状态的维修单不能确认!");
        }
        majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.CONFIRMED.name());
        majorPartialRepair.setActualStartTime(new Date());
        eamMajorPartialRepairService.updateById(majorPartialRepair);
        return Result.OK("确认成功!");
    }
    @AutoLog(value = "eam_major_partial_repair-批量确认")
    @ApiOperation(value="eam_major_partial_repair-批量确认", notes="eam_major_partial_repair-批量确认")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:confirm")
    @GetMapping(value = "/confirmBatch")
    public Result<String> confirmBatch(@RequestParam(name="ids") String ids) {
        List<String> idList = Arrays.asList(ids.split(","));
        List<EamMajorPartialRepair> confirmList = CollectionUtil.newArrayList();
        idList.forEach(id -> {
            EamMajorPartialRepair majorPartialRepair = eamMajorPartialRepairService.getById(id);
            if (Objects.nonNull(majorPartialRepair) && MajorPartialRepairStatusEnum.PENDING_CONFIRMATION.name().equals(majorPartialRepair.getRepairStatus())) {
                majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.CONFIRMED.name());
                majorPartialRepair.setActualStartTime(new Date());
                confirmList.add(majorPartialRepair);
            }
        });
        eamMajorPartialRepairService.updateBatchById(confirmList);
        return Result.OK("批量确认 " + confirmList.size() + " æ¡ç»´ä¿®å•!");
    }
    @AutoLog(value = "eam_major_partial_repair-作废")
    @ApiOperation(value="eam_major_partial_repair-作废", notes="eam_major_partial_repair-作废")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:repeal")
    @GetMapping(value = "/repeal")
    public Result<String> repeal(@RequestParam("id") String id) {
        EamMajorPartialRepair majorPartialRepair = eamMajorPartialRepairService.getById(id);
        if (Objects.isNull(majorPartialRepair)) {
            return Result.error("要作废的维修单不存在,请刷新重试!");
        }
        if (!MajorPartialRepairStatusEnum.CONFIRMED.name().equals(majorPartialRepair.getRepairStatus())) {
            return Result.error("该状态的维修单不能作废!");
        }
        majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.INVALIDATED.name());
        eamMajorPartialRepairService.updateById(majorPartialRepair);
        return Result.OK("作废成功!");
    }
    @AutoLog(value = "eam_major_partial_repair-批量作废")
    @ApiOperation(value="eam_major_partial_repair-批量作废", notes="eam_major_partial_repair-批量作废")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:repeal")
    @GetMapping(value = "/repealBatch")
    public Result<String> repealBatch(@RequestParam(name="ids") String ids) {
        List<String> idList = Arrays.asList(ids.split(","));
        List<EamMajorPartialRepair> repealList = CollectionUtil.newArrayList();
        idList.forEach(id -> {
            EamMajorPartialRepair majorPartialRepair = eamMajorPartialRepairService.getById(id);
            if (Objects.nonNull(majorPartialRepair) && MajorPartialRepairStatusEnum.PENDING_SUBMISSION.name().equals(majorPartialRepair.getRepairStatus())) {
                majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.INVALIDATED.name());
                repealList.add(majorPartialRepair);
            }
        });
        eamMajorPartialRepairService.updateBatchById(repealList);
        return Result.OK("批量作废 " + repealList.size() + " æ¡ç»´ä¿®å•!");
    }
    @AutoLog(value = "eam_major_partial_repair-结果填报")
    @ApiOperation(value="eam_major_partial_repair-结果填报", notes="eam_major_partial_repair-结果填报")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:fillResult")
    @RequestMapping(value = "/fillResult", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> fillResult(@RequestBody List<EamMajorPartialRepairDetail> detailList) {
        eamMajorPartialRepairService.fillResult(detailList);
        return Result.OK("结果填报成功!");
    }
    
    /**
@@ -105,10 +227,11 @@
     * @param id
     * @return
     */
    @AutoLog(value = "大修项修-通过id删除")
    @ApiOperation(value="大修项修-通过id删除", notes="大修项修-通过id删除")
    @AutoLog(value = "eam_major_partial_repair-通过id删除")
    @ApiOperation(value="eam_major_partial_repair-通过id删除", notes="eam_major_partial_repair-通过id删除")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:delete")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        eamMajorPartialRepairService.removeById(id);
        return Result.OK("删除成功!");
    }
@@ -119,12 +242,13 @@
     * @param ids
     * @return
     */
    @AutoLog(value = "大修项修-批量删除")
    @ApiOperation(value="大修项修-批量删除", notes="大修项修-批量删除")
    @AutoLog(value = "eam_major_partial_repair-批量删除")
    @ApiOperation(value="eam_major_partial_repair-批量删除", notes="eam_major_partial_repair-批量删除")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamMajorPartialRepairService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
        return Result.OK("批量删除成功!");
    }
    
    /**
@@ -133,11 +257,14 @@
     * @param id
     * @return
     */
    @AutoLog(value = "大修项修-通过id查询")
    @ApiOperation(value="大修项修-通过id查询", notes="大修项修-通过id查询")
    //@AutoLog(value = "eam_major_partial_repair-通过id查询")
    @ApiOperation(value="eam_major_partial_repair-通过id查询", notes="eam_major_partial_repair-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
    public Result<EamMajorPartialRepair> queryById(@RequestParam(name="id",required=true) String id) {
        EamMajorPartialRepair eamMajorPartialRepair = eamMajorPartialRepairService.getById(id);
        if(eamMajorPartialRepair==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(eamMajorPartialRepair);
    }
@@ -147,9 +274,10 @@
   * @param request
   * @param eamMajorPartialRepair
   */
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair:exportXls")
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamMajorPartialRepair eamMajorPartialRepair) {
      return super.exportXls(request, eamMajorPartialRepair, EamMajorPartialRepair.class, "大修项修");
        return super.exportXls(request, eamMajorPartialRepair, EamMajorPartialRepair.class, "eam_major_partial_repair");
  }
  /**
@@ -159,6 +287,7 @@
   * @param response
   * @return
   */
    //@RequiresPermissions("eam_major_partial_repair:importExcel")
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamMajorPartialRepair.class);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMajorPartialRepairDetailController.java
@@ -3,6 +3,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
@@ -10,22 +11,21 @@
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EamMajorPartialRepairDetail;
import org.jeecg.modules.eam.service.IEamMajorPartialRepairDetailService;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -34,17 +34,18 @@
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: å¤§ä¿®é¡¹ä¿®æ˜Žç»†è¡¨
 * @Description: eam_major_partial_repair_detail
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
@Slf4j
@Api(tags="大修项修明细表")
@Api(tags="eam_major_partial_repair_detail")
@RestController
@RequestMapping("/eam/eamMajorPartialRepairDetail")
@Slf4j
public class EamMajorPartialRepairDetailController extends JeecgController<EamMajorPartialRepairDetail, IEamMajorPartialRepairDetailService> {
    @Autowired
    private IEamMajorPartialRepairDetailService eamMajorPartialRepairDetailService;
@@ -58,10 +59,10 @@
     * @param req
     * @return
     */
    @AutoLog(value = "大修项修明细表-分页列表查询")
    @ApiOperation(value="大修项修明细表-分页列表查询", notes="大修项修明细表-分页列表查询")
    //@AutoLog(value = "eam_major_partial_repair_detail-分页列表查询")
    @ApiOperation(value="eam_major_partial_repair_detail-分页列表查询", notes="eam_major_partial_repair_detail-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamMajorPartialRepairDetail eamMajorPartialRepairDetail,
    public Result<IPage<EamMajorPartialRepairDetail>> queryPageList(EamMajorPartialRepairDetail eamMajorPartialRepairDetail,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
@@ -77,10 +78,11 @@
     * @param eamMajorPartialRepairDetail
     * @return
     */
    @AutoLog(value = "大修项修明细表-添加")
    @ApiOperation(value="大修项修明细表-添加", notes="大修项修明细表-添加")
    @AutoLog(value = "eam_major_partial_repair_detail-添加")
    @ApiOperation(value="eam_major_partial_repair_detail-添加", notes="eam_major_partial_repair_detail-添加")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair_detail:add")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamMajorPartialRepairDetail eamMajorPartialRepairDetail) {
    public Result<String> add(@RequestBody EamMajorPartialRepairDetail eamMajorPartialRepairDetail) {
        eamMajorPartialRepairDetailService.save(eamMajorPartialRepairDetail);
        return Result.OK("添加成功!");
    }
@@ -91,10 +93,11 @@
     * @param eamMajorPartialRepairDetail
     * @return
     */
    @AutoLog(value = "大修项修明细表-编辑")
    @ApiOperation(value="大修项修明细表-编辑", notes="大修项修明细表-编辑")
    @AutoLog(value = "eam_major_partial_repair_detail-编辑")
    @ApiOperation(value="eam_major_partial_repair_detail-编辑", notes="eam_major_partial_repair_detail-编辑")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair_detail:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<?> edit(@RequestBody EamMajorPartialRepairDetail eamMajorPartialRepairDetail) {
    public Result<String> edit(@RequestBody EamMajorPartialRepairDetail eamMajorPartialRepairDetail) {
        eamMajorPartialRepairDetailService.updateById(eamMajorPartialRepairDetail);
        return Result.OK("编辑成功!");
    }
@@ -105,10 +108,11 @@
     * @param id
     * @return
     */
    @AutoLog(value = "大修项修明细表-通过id删除")
    @ApiOperation(value="大修项修明细表-通过id删除", notes="大修项修明细表-通过id删除")
    @AutoLog(value = "eam_major_partial_repair_detail-通过id删除")
    @ApiOperation(value="eam_major_partial_repair_detail-通过id删除", notes="eam_major_partial_repair_detail-通过id删除")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair_detail:delete")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        eamMajorPartialRepairDetailService.removeById(id);
        return Result.OK("删除成功!");
    }
@@ -119,12 +123,13 @@
     * @param ids
     * @return
     */
    @AutoLog(value = "大修项修明细表-批量删除")
    @ApiOperation(value="大修项修明细表-批量删除", notes="大修项修明细表-批量删除")
    @AutoLog(value = "eam_major_partial_repair_detail-批量删除")
    @ApiOperation(value="eam_major_partial_repair_detail-批量删除", notes="eam_major_partial_repair_detail-批量删除")
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair_detail:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.eamMajorPartialRepairDetailService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
        return Result.OK("批量删除成功!");
    }
    
    /**
@@ -133,11 +138,14 @@
     * @param id
     * @return
     */
    @AutoLog(value = "大修项修明细表-通过id查询")
    @ApiOperation(value="大修项修明细表-通过id查询", notes="大修项修明细表-通过id查询")
    //@AutoLog(value = "eam_major_partial_repair_detail-通过id查询")
    @ApiOperation(value="eam_major_partial_repair_detail-通过id查询", notes="eam_major_partial_repair_detail-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
    public Result<EamMajorPartialRepairDetail> queryById(@RequestParam(name="id",required=true) String id) {
        EamMajorPartialRepairDetail eamMajorPartialRepairDetail = eamMajorPartialRepairDetailService.getById(id);
        if(eamMajorPartialRepairDetail==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(eamMajorPartialRepairDetail);
    }
@@ -147,9 +155,10 @@
   * @param request
   * @param eamMajorPartialRepairDetail
   */
    //@RequiresPermissions("org.jeecg.modules:eam_major_partial_repair_detail:exportXls")
  @RequestMapping(value = "/exportXls")
  public ModelAndView exportXls(HttpServletRequest request, EamMajorPartialRepairDetail eamMajorPartialRepairDetail) {
      return super.exportXls(request, eamMajorPartialRepairDetail, EamMajorPartialRepairDetail.class, "大修项修明细表");
        return super.exportXls(request, eamMajorPartialRepairDetail, EamMajorPartialRepairDetail.class, "eam_major_partial_repair_detail");
  }
  /**
@@ -159,6 +168,7 @@
   * @param response
   * @return
   */
    //@RequiresPermissions("eam_major_partial_repair_detail:importExcel")
  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
      return super.importExcel(request, response, EamMajorPartialRepairDetail.class);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMajorPartialRepair.java
@@ -1,106 +1,135 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®
 * @Description: eam_major_partial_repair
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
@Data
@TableName("eam_major_partial_repair")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="eam_major_partial_repair对象", description="大修项修")
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_major_partial_repair对象", description="eam_major_partial_repair")
public class EamMajorPartialRepair implements Serializable {
    private static final long serialVersionUID = 1L;
    
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**维修类型*/
    @Excel(name = "维修类型", width = 15)
    @ApiModelProperty(value = "维修类型")
    private String repairType;
    /**计划开始时间*/
    @ApiModelProperty(value = "计划开始时间")
    private Date planStartTime;
    /**计划结束时间*/
    @ApiModelProperty(value = "计划结束时间")
    private Date planEndTime;
    /**维修编码*/
    @Excel(name = "维修编码", width = 15)
    @Excel(name = "维修编码", width = 20)
    @ApiModelProperty(value = "维修编码")
    private String repairCode;
    /**维修名称*/
    @Excel(name = "维修名称", width = 15)
    @ApiModelProperty(value = "维修名称")
    /**项目名称*/
    @Excel(name = "项目名称", width = 20)
    @ApiModelProperty(value = "项目名称")
    private String repairName;
    /**维修状态*/
    @Excel(name = "维修状态", width = 15)
    @ApiModelProperty(value = "维修状态")
    @Dict(dicCode = "major_partial_repair_status")
    private String repairStatus;
    /**维修类型*/
    @Excel(name = "维修类型", width = 15)
    @ApiModelProperty(value = "维修类型")
    private String repairType;
    /**申请人*/
    @Excel(name = "申请人", width = 15)
    @ApiModelProperty(value = "申请人")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String applicant;
    /**申请车间*/
    @Excel(name = "申请车间", width = 15)
    @ApiModelProperty(value = "申请车间")
    @Dict(dictTable = "mdc_production", dicText = "production_name", dicCode = "id")
    private String applicantProduction;
    /**计划开始日期*/
    @Excel(name = "计划开始日期", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "计划开始日期")
    private Date planStartDate;
    /**计划结束日期*/
    @Excel(name = "计划结束日期", width = 20, format = "yyyy/MM/dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "计划结束日期")
    private Date planEndDate;
    /**实际开始时间*/
    @Excel(name = "实际开始时间", width = 20, format = "yyyy/MM/dd HH")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH")
    @DateTimeFormat(pattern="yyyy-MM-dd HH")
    @ApiModelProperty(value = "实际开始时间")
    private Date actualStartTime;
    /**实际结束时间*/
    @Excel(name = "实际结束时间", width = 20, format = "yyyy/MM/dd HH")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH")
    @DateTimeFormat(pattern="yyyy-MM-dd HH")
    @ApiModelProperty(value = "实际结束时间")
    private Date actualEndTime;
    /**总金额*/
    @Excel(name = "总金额", width = 15)
    @ApiModelProperty(value = "总金额")
    private java.math.BigDecimal totalAmount;
    /**附件*/
    @Excel(name = "附件", width = 15)
    @ApiModelProperty(value = "附件")
    private String attachment;
    /**维修描述*/
    @Excel(name = "维修描述", width = 15)
    @ApiModelProperty(value = "维修描述")
    private String repairDescription;
    /**维修方式*/
    @Excel(name = "维修方式", width = 15)
    @ApiModelProperty(value = "维修方式")
    private String repairMethod;
    /**委外公司*/
    @Excel(name = "委外公司", width = 15)
    @ApiModelProperty(value = "委外公司")
    private String outsourcedCompany;
    private BigDecimal totalAmount;
    /**故障描述*/
    @Excel(name = "故障描述", width = 50)
    @ApiModelProperty(value = "故障描述")
    private String faultDescription;
    /**申请原因*/
    @Excel(name = "申请原因", width = 15)
    @ApiModelProperty(value = "申请原因")
    private String applicantReason;
    /**责任人*/
    @Excel(name = "责任人", width = 15)
    @ApiModelProperty(value = "责任人")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "username")
    private String responsiblePerson;
    /**备注*/
    @Excel(name = "备注", width = 50)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag;
    @TableField(exist = false)
    @ApiModelProperty(value = "维修明细信息")
    private List<EamMajorPartialRepairDetail> eamMajorPartialRepairDetailList;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMajorPartialRepairDetail.java
@@ -1,56 +1,54 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®æ˜Žç»†è¡¨
 * @Description: eam_major_partial_repair_detail
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
@Data
@TableName("eam_major_partial_repair_detail")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="eam_major_partial_repair_detail对象", description="大修项修明细表")
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="eam_major_partial_repair_detail对象", description="eam_major_partial_repair_detail")
public class EamMajorPartialRepairDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**紧急程度*/
    @Excel(name = "紧急程度", width = 15)
    @ApiModelProperty(value = "紧急程度")
    private String emergencyDegree;
    /**ç»´ä¿®ID*/
    @Excel(name = "ç»´ä¿®ID", width = 15)
    @ApiModelProperty(value = "ç»´ä¿®ID")
    private String repairId;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    @Dict(dictTable = "eam_equipment", dicText = "equipment_name", dicCode = "id")
    private String equipmentId;
    /**单价*/
    @Excel(name = "单价", width = 15)
    @ApiModelProperty(value = "单价")
    private BigDecimal unitPrice;
    /**维修结果*/
    @Excel(name = "维修结果", width = 15)
    @ApiModelProperty(value = "维修结果")
@@ -59,4 +57,20 @@
    @Excel(name = "维修描述", width = 15)
    @ApiModelProperty(value = "维修描述")
    private String repairDescription;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMajorPartialRepairDetailMapper.java
@@ -7,9 +7,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®æ˜Žç»†è¡¨
 * @Description: eam_major_partial_repair_detail
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
public interface EamMajorPartialRepairDetailMapper extends BaseMapper<EamMajorPartialRepairDetail> {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamMajorPartialRepairMapper.java
@@ -2,16 +2,23 @@
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamMajorPartialRepair;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®
 * @Description: eam_major_partial_repair
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
public interface EamMajorPartialRepairMapper extends BaseMapper<EamMajorPartialRepair> {
    IPage<EamMajorPartialRepair> queryPageList(Page<EamMajorPartialRepair> page,
                                               @Param(Constants.WRAPPER) Wrapper<EamMajorPartialRepair> queryWrapper);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMajorPartialRepairMapper.xml
@@ -2,4 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamMajorPartialRepairMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMajorPartialRepair">
        select
            t.*
        from eam_major_partial_repair t
        ${ew.customSqlSegment}
    </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMajorPartialRepairQuery.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package org.jeecg.modules.eam.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
public class EamMajorPartialRepairQuery {
    /**维修编码*/
    private String repairCode;
    /**项目名称*/
    private String repairName;
    /**维修状态*/
    private String repairStatus;
    /**维修类型*/
    private String repairType;
    /**计划开始日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date planStartDate;
    /**计划结束日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date planEndDate;
    private String column;
    private String order;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMajorPartialRepairDetailService.java
@@ -4,9 +4,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®æ˜Žç»†è¡¨
 * @Description: eam_major_partial_repair_detail
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
public interface IEamMajorPartialRepairDetailService extends IService<EamMajorPartialRepairDetail> {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMajorPartialRepairService.java
@@ -1,14 +1,27 @@
package org.jeecg.modules.eam.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.entity.EamMajorPartialRepair;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.EamMajorPartialRepairDetail;
import org.jeecg.modules.eam.request.EamMajorPartialRepairQuery;
import java.util.List;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®
 * @Description: eam_major_partial_repair
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
public interface IEamMajorPartialRepairService extends IService<EamMajorPartialRepair> {
    void saveMajorPartialRepair(EamMajorPartialRepair eamMajorPartialRepair);
    void fillResult(List<EamMajorPartialRepairDetail> detailList);
    void updateMajorPartialRepair(EamMajorPartialRepair eamMajorPartialRepair);
    IPage<EamMajorPartialRepair> queryPageList(Page<EamMajorPartialRepair> page, EamMajorPartialRepairQuery query);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairDetailServiceImpl.java
@@ -8,9 +8,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®æ˜Žç»†è¡¨
 * @Description: eam_major_partial_repair_detail
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
@Service
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMajorPartialRepairServiceImpl.java
@@ -1,19 +1,135 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.constant.MajorPartialRepairStatusEnum;
import org.jeecg.modules.eam.entity.EamMajorPartialRepair;
import org.jeecg.modules.eam.entity.EamMajorPartialRepairDetail;
import org.jeecg.modules.eam.mapper.EamMajorPartialRepairMapper;
import org.jeecg.modules.eam.request.EamMajorPartialRepairQuery;
import org.jeecg.modules.eam.service.IEamMajorPartialRepairDetailService;
import org.jeecg.modules.eam.service.IEamMajorPartialRepairService;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
 * @Description: å¤§ä¿®é¡¹ä¿®
 * @Description: eam_major_partial_repair
 * @Author: jeecg-boot
 * @Date:   2025-05-13
 * @Date:   2025-06-20
 * @Version: V1.0
 */
@Service
public class EamMajorPartialRepairServiceImpl extends ServiceImpl<EamMajorPartialRepairMapper, EamMajorPartialRepair> implements IEamMajorPartialRepairService {
    @Autowired
    private ISysBusinessCodeRuleService sysBusinessCodeRuleService;
    @Autowired
    private IEamMajorPartialRepairDetailService eamMajorPartialRepairDetailService;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void saveMajorPartialRepair(EamMajorPartialRepair eamMajorPartialRepair) {
        BigDecimal totalPrice = eamMajorPartialRepair.getEamMajorPartialRepairDetailList().stream()
                .map(EamMajorPartialRepairDetail::getUnitPrice).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
        eamMajorPartialRepair.setRepairCode(sysBusinessCodeRuleService.generateBusinessCodeSeq("MajorPartialRepairRule"));
        eamMajorPartialRepair.setTotalAmount(totalPrice);
        eamMajorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.PENDING_SUBMISSION.name());
        eamMajorPartialRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
        save(eamMajorPartialRepair);
        eamMajorPartialRepair.getEamMajorPartialRepairDetailList().forEach(eamMajorPartialRepairDetail -> {
            eamMajorPartialRepairDetail.setRepairId(eamMajorPartialRepair.getId());
        });
        eamMajorPartialRepairDetailService.saveBatch(eamMajorPartialRepair.getEamMajorPartialRepairDetailList());
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateMajorPartialRepair(EamMajorPartialRepair eamMajorPartialRepair) {
        eamMajorPartialRepairDetailService.remove(new LambdaQueryWrapper<EamMajorPartialRepairDetail>()
                .eq(EamMajorPartialRepairDetail::getRepairId, eamMajorPartialRepair.getId()));
        BigDecimal totalPrice = eamMajorPartialRepair.getEamMajorPartialRepairDetailList().stream()
                .map(EamMajorPartialRepairDetail::getUnitPrice).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
        eamMajorPartialRepair.setTotalAmount(totalPrice);
        updateById(eamMajorPartialRepair);
        eamMajorPartialRepair.getEamMajorPartialRepairDetailList().forEach(eamMajorPartialRepairDetail -> {
            eamMajorPartialRepairDetail.setRepairId(eamMajorPartialRepair.getId());
        });
        eamMajorPartialRepairDetailService.saveBatch(eamMajorPartialRepair.getEamMajorPartialRepairDetailList());
    }
    @Override
    public IPage<EamMajorPartialRepair> queryPageList(Page<EamMajorPartialRepair> page, EamMajorPartialRepairQuery query) {
        QueryWrapper<EamMajorPartialRepair> queryWrapper = Wrappers.query();
        if (Objects.nonNull(query)) {
            if (StringUtils.isNotBlank(query.getRepairCode())) {
                queryWrapper.like("t.repair_code", query.getRepairCode());
            }
            if (StringUtils.isNotBlank(query.getRepairName())) {
                queryWrapper.like("t.repair_name", query.getRepairName());
            }
            if (StringUtils.isNotBlank(query.getRepairStatus())) {
                queryWrapper.eq("t.repair_status", query.getRepairStatus());
            }
            if (StringUtils.isNotBlank(query.getRepairType())) {
                queryWrapper.like("t.repair_type", query.getRepairType());
            }
            if (query.getPlanStartDate() != null && query.getPlanEndDate() != null) {
                queryWrapper.between("t.plan_start_date", query.getPlanStartDate(), query.getPlanEndDate());
            }
            //排序
            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
                String column = query.getColumn();
                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
                }
                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) {
                    queryWrapper.orderByAsc("t." + oConvertUtils.camelToUnderline(column));
                } else {
                    queryWrapper.orderByDesc("t." + oConvertUtils.camelToUnderline(column));
                }
            } else {
                queryWrapper.orderByDesc("t.create_time");
            }
        }
        return this.baseMapper.queryPageList(page, queryWrapper);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void fillResult(List<EamMajorPartialRepairDetail> detailList) {
        List<EamMajorPartialRepairDetail> result = CollectionUtil.newArrayList();
        detailList.forEach(eamMajorPartialRepairDetail -> {
            EamMajorPartialRepairDetail detail = new EamMajorPartialRepairDetail();
            detail.setId(eamMajorPartialRepairDetail.getId());
            detail.setRepairResult(eamMajorPartialRepairDetail.getRepairResult());
            detail.setRepairDescription(eamMajorPartialRepairDetail.getRepairDescription());
            result.add(detail);
        });
        eamMajorPartialRepairDetailService.updateBatchById(result);
        String repairId = detailList.get(0).getRepairId();
        EamMajorPartialRepair majorPartialRepair = getById(repairId);
        majorPartialRepair.setRepairStatus(MajorPartialRepairStatusEnum.COMPLETED.name());
        majorPartialRepair.setActualEndTime(new Date());
        updateById(majorPartialRepair);
    }
}