zhangherong
2025-07-08 664c33a8a82fc7ba9189078037469e2efd7023f6
Merge remote-tracking branch 'origin/master'
已修改4个文件
187 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/util/DateUtils.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekInspectionDetailController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 105 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/util/DateUtils.java
@@ -1092,27 +1092,62 @@
     * 获取本周的第一天日期, 格式为:yyyy-MM-dd
     * @return
     */
    public static Date getFirstDayOfWeek() {
        // 获取本周第一天(周一)的 LocalDate
        LocalDate today = LocalDate.now();
        LocalDate firstDayOfWeek = today.with(DayOfWeek.MONDAY);
    public static Date getFirstDayOfWeek(String date) {
        // 将 java.util.Date 转换为 LocalDate
        LocalDate localDate = LocalDate.parse(date);
        // 如果需要转换为传统的 Date 类型(可选)
        java.sql.Date sqlDate = java.sql.Date.valueOf(firstDayOfWeek);
        return new Date(sqlDate.getTime());
        // 获取本周第一天(周一)
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.MONDAY);
        // 转换回 java.sql.Date 类型
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
    /**
     * 获取本周的第一天日期, 格式为:yyyy-MM-dd
     * @return
     */
    public static Date getFirstDayOfWeek(Date date) {
        // 将 java.util.Date 转换为 LocalDate
        LocalDate localDate = date.toInstant()
                .atZone(ZoneId.systemDefault())
                .toLocalDate();
        // 获取本周第一天(周一)
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.MONDAY);
        // 转换回 java.sql.Date 类型
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
    /**
     * 获取本周的最后一天日期, 格式为:yyyy-MM-dd
     * @return
     */
    public static Date getLastDayOfWeek() {
        // 获取本周第一天(周一)的 LocalDate
        LocalDate today = LocalDate.now();
        LocalDate firstDayOfWeek = today.with(DayOfWeek.SUNDAY);
    public static Date getLastDayOfWeek(String date) {
        // 将 java.util.Date 转换为 LocalDate
        LocalDate localDate = LocalDate.parse(date);
        // 如果需要转换为传统的 Date 类型(可选)
        java.sql.Date sqlDate = java.sql.Date.valueOf(firstDayOfWeek);
        return new Date(sqlDate.getTime());
        // 获取本周第一天(周一)
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.SUNDAY);
        // 转换回 java.sql.Date 类型
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
    /**
     * 获取本周的最后一天日期, 格式为:yyyy-MM-dd
     * @return
     */
    public static Date getLastDayOfWeek(Date date) {
        // 将 java.util.Date 转换为 LocalDate
        LocalDate localDate = date.toInstant()
                .atZone(ZoneId.systemDefault())
                .toLocalDate();
        // 获取本周第一天(周一)
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.SUNDAY);
        // 转换回 java.sql.Date 类型
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekInspectionDetailController.java
@@ -6,14 +6,14 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.constant.InspectionItemCategroyEnum;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.entity.EamWeekInspectionDetail;
import org.jeecg.modules.eam.service.IEamWeekInspectionDetailService;
import org.jeecg.modules.eam.util.DateUtils;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
@@ -39,10 +39,10 @@
     */
    @ApiOperation(value = "周点检工单明细-日点检规范列表查询", notes = "周点检工单明细-日点检规范列表查询")
    @GetMapping(value = "/queryStandardList")
    public Result<?> queryStandardList(@RequestParam("standardId") String standardId) {
    public Result<?> queryStandardList(@RequestParam("standardId") String standardId, @RequestParam("inspectionDate") String inspectionDate) {
        LambdaQueryWrapper<EamWeekInspectionDetail> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamWeekInspectionDetail::getStandardId, standardId);
        queryWrapper.between(EamWeekInspectionDetail::getPlanInspectionDate, DateUtils.getFirstDayOfWeek(), DateUtils.getLastDayOfWeek());
        queryWrapper.between(EamWeekInspectionDetail::getPlanInspectionDate, DateUtils.getFirstDayOfWeek(inspectionDate), DateUtils.getLastDayOfWeek(inspectionDate));
        queryWrapper.orderByAsc(EamWeekInspectionDetail::getItemCode);
        List<EamWeekInspectionDetail> list = eamWeekInspectionDetailService.list(queryWrapper);
        return Result.OK(list);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java
@@ -1,19 +1,15 @@
package org.jeecg.modules.eam.request;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
import org.jeecg.modules.eam.entity.EamWeekInspectionDetail;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -98,13 +94,6 @@
    /**备注*/
    @ApiModelProperty(value = "备注-点检工单创建备注")
    private String remark;
    /**照片文件ids;id以逗号分隔*/
    @ApiModelProperty(value = "照片文件ids;id以逗号分隔")
    private String imageFiles;
    /**上传文件对系*/
    @ApiModelProperty(value = "上传文件对象")
    private List<FileUploadResult> fileList;
    /**列表 保养项明细*/
    @ApiModelProperty(value = "列表 保养项明细")
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -99,11 +99,11 @@
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (!CollectionUtils.isEmpty(baseFactoryUserList)) {
                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                List<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
            }
        }
@@ -167,21 +167,42 @@
        }
        eamInspectionOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        save(eamInspectionOrder);
        //处理明细数据
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
            eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setOrderId(eamInspectionOrder.getId());
                tableDetail.setId(null);
            });
            eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
        //处理日点检明细数据
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getStandardId())) {
            List<EamMaintenanceStandardDetail> maintenanceStandardDetailList = eamMaintenanceStandardDetailService.list(new LambdaQueryWrapper<EamMaintenanceStandardDetail>().eq(EamMaintenanceStandardDetail::getStandardId, eamInspectionOrderRequest.getStandardId()).eq(EamMaintenanceStandardDetail::getItemCategory, InspectionItemCategroyEnum.DAY_INSPECTION.name()));
            if (CollectionUtils.isNotEmpty(maintenanceStandardDetailList)) {
                List<EamInspectionOrderDetail> inspectionOrderList = maintenanceStandardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList());
                inspectionOrderList.forEach(tableDetail -> {
                    tableDetail.setOrderId(eamInspectionOrder.getId());
                    tableDetail.setId(null);
                });
                eamInspectionOrderDetailService.saveBatch(inspectionOrderList);
            }
        }
        //处理周点检明细数据
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableWeekDetailList())) {
            eamWeekInspectionDetailService.saveOrUpdateBatch(eamInspectionOrderRequest.getTableWeekDetailList());
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getStandardId()) && eamInspectionOrderRequest.getInspectionDate() != null) {
            LambdaQueryWrapper<EamWeekInspectionDetail> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(EamWeekInspectionDetail::getStandardId, eamInspectionOrderRequest.getStandardId());
            queryWrapper.between(EamWeekInspectionDetail::getPlanInspectionDate, DateUtils.getFirstDayOfWeek(eamInspectionOrderRequest.getInspectionDate()), DateUtils.getLastDayOfWeek(eamInspectionOrderRequest.getInspectionDate()));
            queryWrapper.orderByAsc(EamWeekInspectionDetail::getItemCode);
            List<EamWeekInspectionDetail> eamWeekInspectionDetailList = eamWeekInspectionDetailService.list(queryWrapper);
            if (CollectionUtil.isEmpty(eamWeekInspectionDetailList)) {
                List<EamMaintenanceStandardDetail> maintenanceStandardDetailList = eamMaintenanceStandardDetailService.list(new LambdaQueryWrapper<EamMaintenanceStandardDetail>().eq(EamMaintenanceStandardDetail::getStandardId, eamInspectionOrderRequest.getStandardId()).eq(EamMaintenanceStandardDetail::getItemCategory, InspectionItemCategroyEnum.WEEK_INSPECTION.name()));
                if (CollectionUtils.isNotEmpty(maintenanceStandardDetailList)) {
                    List<EamWeekInspectionDetail> weekInspectionDetailList = maintenanceStandardDetailList.stream().map(EamWeekInspectionDetail::new).collect(Collectors.toList());
                    weekInspectionDetailList.forEach(weekInspectionDetail -> {
                        weekInspectionDetail.setStandardId(eamInspectionOrderRequest.getStandardId());
                        // TODO 周点检日期
                        weekInspectionDetail.setPlanInspectionDate(eamInspectionOrderRequest.getInspectionDate());
                    });
                    eamWeekInspectionDetailService.saveBatch(weekInspectionDetailList);
                }
            }
        }
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
            triggerProcess(eamInspectionOrder);
        }
//        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
//            triggerProcess(eamInspectionOrder);
//        }
        return true;
    }
@@ -196,9 +217,9 @@
        if (equipment == null) {
            return false;
        } else {
            eamInspectionOrder.setEquipmentId(equipment.getEquipmentCode());
            eamInspectionOrder.setEquipmentId(equipment.getId());
        }
        flowCommonService.initActBusiness("工单号: " + eamInspectionOrder.getOrderNum() + ";设备编号: " + eamInspectionOrder.getEquipmentId() + ";安装位置: " + equipment.getInstallationPosition(),
        flowCommonService.initActBusiness("工单号: " + eamInspectionOrder.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + (equipment.getInstallationPosition() == null ? "" : ";安装位置: " + equipment.getInstallationPosition()),
                eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", eamInspectionOrder.getId());
@@ -226,16 +247,6 @@
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        }
        super.updateById(eamInspectionOrder);
//        //处理明细数据
//        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
//            eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
//                tableDetail.setOrderId(eamInspectionOrder.getId());
//                tableDetail.setCreateTime(new Date());
//            });
//            //删除明细
//            eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId()));
//            eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
//        }
        return true;
    }
@@ -249,7 +260,7 @@
    @Transactional(rollbackFor = Exception.class)
    public boolean takeInspectionOrder(String id) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if(user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) {
        if (user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) {
            throw new JeecgBootException("不是操作工,无法领取此工单!");
        }
        EamInspectionOrder eamInspectionOrder = this.getById(id);
@@ -394,27 +405,19 @@
        Map<String, Object> values = new HashMap<>();
        if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
            // 点检人点检结束
//            String manager = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId()))
//                    .map(EamEquipment::getEquipmentManager)
//                    .orElse(null);
//            if (manager == null) {
//                throw new IllegalArgumentException("设备管理员未配置");
//            }
//            List<String> usernameList = Collections.singletonList(manager);
            values.put("dataId", order.getId());
            values.put("organization", "点检人点检结束");
            values.put("comment", "点检人点检结束");
//            values.put("NextAssignee", usernameList);
            request.setComment("点检人点检结束");
        } else {
            // 班组长确认
            // 维修工确认
            values.put("dataId", order.getId());
            values.put("organization", request.getConfirmComment());
            values.put("comment", request.getConfirmComment());
            values.put("confirmation", request.getConfirmDealType());
            request.setComment(request.getConfirmComment());
            if ("2".equals(request.getConfirmDealType())) {
                // 班组长驳回
                // 维修工驳回
                List<String> usernames = new ArrayList<>();
                usernames.add(order.getOperator());
                order.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
@@ -430,18 +433,14 @@
                // 点检完成
                order.setInspectionStatus(InspectionStatus.WAIT_CONFIRM.name());
                order.setOperateTime(new Date());
//                if (CollectionUtil.isNotEmpty(request.getFileList())) {
//                    List<FileUploadResult> fileUploadResultList = request.getFileList();
//                    ObjectMapper mapper = new ObjectMapper();
//                    try {
//                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
//                        order.setImageFiles(referenceFile);
//                    } catch (JsonProcessingException e) {
//                        log.error("JSON转换失败:" + e.getMessage(), e);
//                    }
//                }
                eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", order.getId()));
                eamInspectionOrderDetailService.saveBatch(request.getTableDetailList());
                if (request.getTableWeekDetailList() != null && !request.getTableWeekDetailList().isEmpty()) {
                    // 设置周点检
//                eamWeekInspectionDetailService.remove(new QueryWrapper<EamWeekInspectionDetail>().eq("order_id", order.getId()));
                    eamWeekInspectionDetailService.saveOrUpdateBatch(request.getTableWeekDetailList());
                }
            } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) {
                // 班组长确认任务
                order.setInspectionStatus(InspectionStatus.COMPLETE.name());
@@ -545,13 +544,13 @@
    }
    @Override
    public List<InspectionVo> findInspectionResult(String equipmentId,String itemDemand,String yearMonth) {
        return this.baseMapper.findInspectionResult(equipmentId,itemDemand,yearMonth);
    public List<InspectionVo> findInspectionResult(String equipmentId, String itemDemand, String yearMonth) {
        return this.baseMapper.findInspectionResult(equipmentId, itemDemand, yearMonth);
    }
    @Override
    public List<InspectionVo> findInspectionUser(String equipmentId,String yearMonth) {
        return this.baseMapper.findInspectionUser(equipmentId,yearMonth);
    public List<InspectionVo> findInspectionUser(String equipmentId, String yearMonth) {
        return this.baseMapper.findInspectionUser(equipmentId, yearMonth);
    }
    @Override