From adb9b920e16a868a9af7d0a889225732c87e7423 Mon Sep 17 00:00:00 2001 From: chenshuichuan <1154693969@qq.com> Date: Fri, 5 Jul 2024 20:44:44 +0800 Subject: [PATCH] fix mes bug --- .../framework/common/util/date/DateUtils.java | 6 +++ .../admin/changerecord/vo/ChangeTypeEnum.java | 30 ++++++++++++ .../FeedingRecordController.java | 8 +-- .../admin/orgworker/OrgWorkerController.java | 27 +++------- .../ProduceReportDetailController.java | 3 ++ .../vo/ProduceReportDetailSaveReqVO.java | 2 +- .../ReportPlanViewController.java | 20 +++++++- .../vo/ReportPlanSummaryRespVO.java | 49 +++++++++++++++++++ .../ReportPlanSummaryMapper.java | 10 ++-- .../ProduceReportChangeRecordService.java | 12 ++--- .../ProduceReportChangeRecordServiceImpl.java | 29 ++++++----- .../FeedingRecordServiceImpl.java | 2 +- .../ItemRequisitionServiceImpl.java | 4 +- .../ProduceReportDetailServiceImpl.java | 37 +++++++++++++- .../workreportplan/WorkReportPlanService.java | 4 ++ .../WorkReportPlanServiceImpl.java | 29 +++++++++++ 16 files changed, 219 insertions(+), 53 deletions(-) create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/changerecord/vo/ChangeTypeEnum.java create mode 100644 yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/vo/ReportPlanSummaryRespVO.java diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java index b51a838c69..8d89d0eee7 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/date/DateUtils.java @@ -146,4 +146,10 @@ public class DateUtils { return LocalDateTimeUtil.isSameDay(date, LocalDateTime.now().minusDays(1)); } + public static LocalDateTime[] getDateRange(LocalDateTime base){ + if(base==null)base = LocalDateTime.now(); + LocalDateTime start = LocalDateTime.of(base.getYear(),base.getMonth(),base.getDayOfMonth(),0,0,0); + LocalDateTime end = LocalDateTime.of(base.getYear(),base.getMonth(),base.getDayOfMonth(),23,59,59); + return new LocalDateTime[]{start,end}; + } } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/changerecord/vo/ChangeTypeEnum.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/changerecord/vo/ChangeTypeEnum.java new file mode 100644 index 0000000000..09bff88359 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/changerecord/vo/ChangeTypeEnum.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 变更类型枚举**/ +@Getter +@AllArgsConstructor +public enum ChangeTypeEnum { + + 创建("创建"), + 编辑("编辑"), + 删除("删除"), + 提交("提交"), + 审核("审核"); + + private final String value; + + // 一个可选的方法,用于根据整数值获取对应的枚举实例 + public static ChangeTypeEnum fromValue(String value) { + for (ChangeTypeEnum status : ChangeTypeEnum.values()) { + if (status.value.equals(value)) { + return status; + } + } + throw new IllegalArgumentException("Unknown value: " + value); + } + +} \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java index 59ccd071e8..789fddd56b 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/feedingrecord/FeedingRecordController.java @@ -177,10 +177,12 @@ public class FeedingRecordController { } } } - } else { - recordDO.setRecordStatus(FeedingStatusEnum.提交.getValue()); - feedingRecordMapper.updateById(recordDO); } + else { + + } + recordDO.setRecordStatus(FeedingStatusEnum.提交.getValue()); + feedingRecordMapper.updateById(recordDO); return success(true); } else return CommonResult.error(500, "无法获取操作用户!请检查!"); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java index fd4530721a..caad0befb6 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO; @@ -31,7 +32,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -121,8 +121,7 @@ public class OrgWorkerController { @Operation(summary = "获得工位安排") public CommonResult> getPersonal(@Valid ProduceReportDetailSaveReqVO reqVO) { OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()).setGroupType(reqVO.getGroupType()); - LocalDateTime[] localDateTimes = {reqVO.getReportDate(),reqVO.getReportDate()}; - pageReqVO.setWorkDate(localDateTimes); + pageReqVO.setWorkDate(DateUtils.getDateRange(reqVO.getReportDate())); Long userId = getLoginUserId(); pageReqVO.setWorkerId(userId); @@ -136,8 +135,7 @@ public class OrgWorkerController { @Operation(summary = "获得工位安排") public CommonResult> getOtherPersonal(@Valid ProduceReportDetailSaveReqVO reqVO) { OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()).setGroupType(reqVO.getGroupType()); - LocalDateTime[] localDateTimes = {reqVO.getReportDate(),reqVO.getReportDate()}; - pageReqVO.setWorkDate(localDateTimes); + pageReqVO.setWorkDate(DateUtils.getDateRange(reqVO.getReportDate())); List orgWorkers = orgWorkerService.getOrgWorkerByReportResVo(pageReqVO); List ids = orgWorkers.stream().map(OrgWorkerDO::getOrgId).collect(Collectors.toList()); @@ -164,23 +162,13 @@ public class OrgWorkerController { @Operation(summary = "获得用户列表") public CommonResult> getOtherPersonalUser(@Valid ProduceReportDetailSaveReqVO reqVO) { OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()).setGroupType(reqVO.getGroupType()); - LocalDateTime[] localDateTimes = {reqVO.getReportDate(),reqVO.getReportDate()}; - pageReqVO.setWorkDate(localDateTimes); + pageReqVO.setWorkDate(DateUtils.getDateRange(reqVO.getReportDate())); pageReqVO.setWorkerId(reqVO.getUserId()); OrganizationListReqVO listReqVO = new OrganizationListReqVO().setOrgType(reqVO.getOrgType()); List orgList = organizationService.getOrganizationList(listReqVO); List orgIds = orgList.stream().map(OrganizationDO::getId).collect(Collectors.toList()); pageReqVO.setOrgIds(orgIds); -// Long userId = getLoginUserId(); -// List detailDOList = workTeamService.getUserWorkTeamDetail(userId, WorkTeamUserRoleEnum.组长.getValue()); -// //组长的话把这些组的工人列表都查上,其他人所有人都查 -// List workTeamIds =null; -// if(detailDOList!=null && detailDOList.size()>0){ -// workTeamIds = detailDOList.stream().map(WorkTeamDetailDO::getWorkTeamId).collect(Collectors.toList()); -// } -// List workTeamDetailDOS = workTeamService.getDetailByWorkTeamIds(workTeamIds); -// Set idsSet = convertSet(workTeamDetailDOS, WorkTeamDetailDO::getUserId); List list = orgWorkerService.getOrgWorkerByReportResVo(pageReqVO); List ids = list.stream().map(OrgWorkerDO::getWorkerId).collect(Collectors.toList()); @@ -193,9 +181,7 @@ public class OrgWorkerController { @Operation(summary = "获得工位安排") public CommonResult> getOrgWorkerRespVO(@Valid ProduceReportDetailSaveReqVO reqVO) { OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()).setGroupType(reqVO.getGroupType()); - LocalDateTime[] localDateTimes = {reqVO.getReportDate(),reqVO.getReportDate()}; - pageReqVO.setWorkDate(localDateTimes); - + pageReqVO.setWorkDate(DateUtils.getDateRange(reqVO.getReportDate())); Long userId = getLoginUserId(); pageReqVO.setWorkerId(userId); List orgWorkers = orgWorkerService.getOrgWorkerByReportResVo(pageReqVO); @@ -206,8 +192,7 @@ public class OrgWorkerController { @Operation(summary = "获得工位安排") public CommonResult> getOtherOrgWorkerRespVO(@Valid ProduceReportDetailSaveReqVO reqVO) { OrgWorkerPageReqVO pageReqVO = new OrgWorkerPageReqVO().setOrgType(reqVO.getOrgType()).setGroupType(reqVO.getGroupType()); - LocalDateTime[] localDateTimes = {reqVO.getReportDate(),reqVO.getReportDate()}; - pageReqVO.setWorkDate(localDateTimes); + pageReqVO.setWorkDate(DateUtils.getDateRange(reqVO.getReportDate())); pageReqVO.setWorkerId(reqVO.getUserId()); Long userId = getLoginUserId(); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportDetailController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportDetailController.java index 460cf4b02a..f9e6bb03c7 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportDetailController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportDetailController.java @@ -51,6 +51,9 @@ public class ProduceReportDetailController { @Operation(summary = "更新生产报工明细") //@PreAuthorize("@ss.hasPermission('mes:produce-report-detail:update')") public CommonResult updateProduceReportDetail(@Valid @RequestBody ProduceReportDetailSaveReqVO updateReqVO) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime localDateTime = LocalDateTime.parse(updateReqVO.getReportDateString(), formatter); + updateReqVO.setReportDate(localDateTime); produceReportDetailService.updateProduceReportDetail(updateReqVO); return success(true); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/vo/ProduceReportDetailSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/vo/ProduceReportDetailSaveReqVO.java index c3cc0c0936..25fc509f50 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/vo/ProduceReportDetailSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/vo/ProduceReportDetailSaveReqVO.java @@ -63,7 +63,7 @@ public class ProduceReportDetailSaveReqVO { private LocalDateTime reportDate; @Schema(description = "计件时间") - private String reportTime; + private BigDecimal reportTime; @Schema(description = "报工状态", example = "1") private Integer reportStatus; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java index 7d865d7abb..a82f6ab9ce 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/ReportPlanViewController.java @@ -1,12 +1,21 @@ package cn.iocoder.yudao.module.mes.controller.admin.producereportplan; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.mes.controller.admin.producereportplan.vo.ReportPlanSummaryRespVO; import cn.iocoder.yudao.module.mes.service.workreportplan.WorkReportPlanService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 报工分配计划") @RestController @@ -17,6 +26,13 @@ public class ReportPlanViewController { @Resource private WorkReportPlanService workReportPlanService; - - + @GetMapping("/getPlanProgress") + @Operation(summary = "获得计划进度") + @Parameter(name = "id", description = "计划id", required = true, example = "1024") + public CommonResult> getPlanProgress(@RequestParam("id") Long id) { + ReportPlanSummaryRespVO respVO = new ReportPlanSummaryRespVO(); + respVO.setPlanId(id); + List planSummaryDOS = workReportPlanService.getPlanSummary( respVO); + return success(planSummaryDOS); + } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/vo/ReportPlanSummaryRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/vo/ReportPlanSummaryRespVO.java new file mode 100644 index 0000000000..c56152d001 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereportplan/vo/ReportPlanSummaryRespVO.java @@ -0,0 +1,49 @@ +package cn.iocoder.yudao.module.mes.controller.admin.producereportplan.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 报工分配计划 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ReportPlanSummaryRespVO { + + @Schema(description = "计划id", example = "30035") + private Long planId; + @Schema(description = "计划id", example = "30035") + @ExcelProperty("计划") + private String planCode; + + @Schema(description = "产品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14517") + private Long productId; + @Schema(description = "产品", requiredMode = Schema.RequiredMode.REQUIRED, example = "14517") + @ExcelProperty("产品") + private String productName; + + @Schema(description = "成品数量") + @ExcelProperty("成品数量") + private BigDecimal totalQualityNumber; + + @Schema(description = "废品数量") + @ExcelProperty("废品数量") + private BigDecimal totalWasteNumber; + + @Schema(description = "计件时间") + @ExcelProperty("计件时间") + private BigDecimal reportTimeSummary; + + @Schema(description = "总时长") + @ExcelProperty("总时长") + private BigDecimal totalTimeSummary; + + @Schema(description = "工序类型") + @ExcelProperty("工序类型") + private String orgType; + +} + + diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/workreportplan/ReportPlanSummaryMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/workreportplan/ReportPlanSummaryMapper.java index 2619c27c5f..3f61a875fc 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/workreportplan/ReportPlanSummaryMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/workreportplan/ReportPlanSummaryMapper.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.mes.controller.admin.producereportplan.vo.ReportPlanSummaryRespVO; import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.ReportPlanSummaryDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; @@ -27,12 +28,11 @@ public interface ReportPlanSummaryMapper extends BaseMapperX selectList(ReportPlanSummaryDO reqVO) { + default List selectList(ReportPlanSummaryRespVO respVO) { LambdaQueryWrapper wrapper = new LambdaQueryWrapperX() - .eqIfPresent(ReportPlanSummaryDO::getPlanId, reqVO.getPlanId()) - .eqIfPresent(ReportPlanSummaryDO::getProductId, reqVO.getProductId()) - .eqIfPresent(ReportPlanSummaryDO::getOrgType, reqVO.getOrgType()) + .eqIfPresent(ReportPlanSummaryDO::getPlanId, respVO.getPlanId()) + .eqIfPresent(ReportPlanSummaryDO::getProductId, respVO.getProductId()) + .eqIfPresent(ReportPlanSummaryDO::getOrgType, respVO.getOrgType()) .orderByDesc(ReportPlanSummaryDO::getOrgType); List list = selectList(wrapper); return list; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordService.java index a6bec8a8bb..3c39fd993f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordService.java @@ -1,11 +1,11 @@ package cn.iocoder.yudao.module.mes.service.changerecord; -import java.util.*; -import javax.validation.*; -import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.*; -import cn.iocoder.yudao.module.mes.dal.dataobject.changerecord.ProduceReportChangeRecordDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ProduceReportChangeRecordPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ProduceReportChangeRecordSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.changerecord.ProduceReportChangeRecordDO; + +import javax.validation.Valid; /** * 报工变更记录 Service 接口 @@ -51,5 +51,5 @@ public interface ProduceReportChangeRecordService { * @return 报工变更记录分页 */ PageResult getProduceReportChangeRecordPage(ProduceReportChangeRecordPageReqVO pageReqVO); - + int saveChange(Long reportId,String beforeString, String afterString, String changeType); } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordServiceImpl.java index 0b3661b27d..5cc14a6a26 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/changerecord/ProduceReportChangeRecordServiceImpl.java @@ -1,21 +1,18 @@ package cn.iocoder.yudao.module.mes.service.changerecord; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; -import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.*; -import cn.iocoder.yudao.module.mes.dal.dataobject.changerecord.ProduceReportChangeRecordDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - +import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ProduceReportChangeRecordPageReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ProduceReportChangeRecordSaveReqVO; +import cn.iocoder.yudao.module.mes.dal.dataobject.changerecord.ProduceReportChangeRecordDO; import cn.iocoder.yudao.module.mes.dal.mysql.changerecord.ProduceReportChangeRecordMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.PRODUCE_REPORT_CHANGE_RECORD_NOT_EXISTS; /** * 报工变更记录 Service 实现类 @@ -71,4 +68,14 @@ public class ProduceReportChangeRecordServiceImpl implements ProduceReportChange return produceReportChangeRecordMapper.selectPage(pageReqVO); } + @Override + public int saveChange(Long reportId,String beforeString, String afterString, String changeType) { + ProduceReportChangeRecordDO recordDO = new ProduceReportChangeRecordDO(); + recordDO.setReportId(reportId); + recordDO.setBeforeChange(beforeString); + recordDO.setAfterChange(afterString); + recordDO.setChangeType(changeType); + return produceReportChangeRecordMapper.insert(recordDO); + } + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java index 628f0b1d30..e2a294e965 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/feedingrecord/FeedingRecordServiceImpl.java @@ -414,7 +414,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { //分配给计划 FeedingRecordPlanDO recordPlanDO = new FeedingRecordPlanDO() .setPlanId(plan.getId()) - .setItemId(plan.getProductId()) + .setItemId(detail.getItemId()) .setRecordId(detail.getRecordId()).setUserId(user.getId()).setUnitId(detail.getUnitId()) .setRecordDetailId(detail.getId()).setFeedingTime(detail.getFeedingTime()) .setWeight(detail.getWeight()); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java index 55eaece0b2..772a385205 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/itemrequisition/ItemRequisitionServiceImpl.java @@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -149,7 +150,8 @@ public class ItemRequisitionServiceImpl implements ItemRequisitionService { product -> item.setProductName(product.getName())); MapUtils.findAndThen(unitMap, item.getUnitId(), unit -> item.setUnitName(unit.getName())); - item.setFinishNumber(recordPlanService.selectSumBy(planId, item.getProductId())); + BigDecimal finish = recordPlanService.selectSumBy(planId, item.getProductId()); + item.setFinishNumber(finish); }); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java index 57dc3402bd..056560e6de 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ChangeTypeEnum; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanStatusEnum; import cn.iocoder.yudao.module.mes.controller.admin.producereport.vo.ProduceReportDetailPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.producereport.vo.ProduceReportDetailRespVO; @@ -16,6 +17,7 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.producereport.ProduceReportDetailDO; import cn.iocoder.yudao.module.mes.dal.mysql.producereport.ProduceReportDetailMapper; +import cn.iocoder.yudao.module.mes.service.changerecord.ProduceReportChangeRecordService; import cn.iocoder.yudao.module.mes.service.organization.OrganizationService; import cn.iocoder.yudao.module.mes.service.plan.PlanService; import cn.iocoder.yudao.module.mes.service.workreportplan.WorkReportPlanService; @@ -47,13 +49,18 @@ public class ProduceReportDetailServiceImpl implements ProduceReportDetailServic @Resource private ProduceReportDetailMapper produceReportDetailMapper; + @Resource + private ProduceReportChangeRecordService recordService; @Override + @Transactional public Long createProduceReportDetail(ProduceReportDetailSaveReqVO createReqVO) { createReqVO.setReportStatus(ReportStatusEnum.草稿.getValue()); // 插入 ProduceReportDetailDO produceReportDetail = BeanUtils.toBean(createReqVO, ProduceReportDetailDO.class); produceReportDetailMapper.insert(produceReportDetail); + recordService.saveChange(produceReportDetail.getId(),"", produceReportDetail.toString() + , ChangeTypeEnum.创建.getValue()); // 返回 return produceReportDetail.getId(); } @@ -63,14 +70,33 @@ public class ProduceReportDetailServiceImpl implements ProduceReportDetailServic // 校验存在 validateProduceReportDetailExists(updateReqVO.getId()); // 更新 - ProduceReportDetailDO updateObj = BeanUtils.toBean(updateReqVO, ProduceReportDetailDO.class); + //ProduceReportDetailDO updateObj = BeanUtils.toBean(updateReqVO, ProduceReportDetailDO.class); + ProduceReportDetailDO updateObj = produceReportDetailMapper.selectById(updateReqVO.getId()); + String before = updateObj.toString(); + updateObj.setProductId(updateReqVO.getProductId()); + updateObj.setQualityNumber(updateReqVO.getQualityNumber()); + updateObj.setQualityRate(updateReqVO.getQualityRate()); + updateObj.setWasteNumber(updateReqVO.getWasteNumber()); + updateObj.setWasteReason(updateReqVO.getWasteReason()); + updateObj.setTotalNumber(updateReqVO.getTotalNumber()); + updateObj.setRemark(updateReqVO.getRemark()); + updateObj.setReportTime(updateReqVO.getReportTime()); + updateObj.setTotalTime(updateReqVO.getTotalTime()); + recordService.saveChange(updateObj.getId(),before, updateObj.toString() + , ChangeTypeEnum.编辑.getValue()); produceReportDetailMapper.updateById(updateObj); } @Override public void deleteProduceReportDetail(Long id) { // 校验存在 - validateProduceReportDetailExists(id); + //validateProduceReportDetailExists(id); + ProduceReportDetailDO detailDO = produceReportDetailMapper.selectById(id); + if ( detailDO== null) { + throw exception(PRODUCE_REPORT_DETAIL_NOT_EXISTS); + } + recordService.saveChange(id,detailDO.toString(), "" + , ChangeTypeEnum.删除.getValue()); // 删除 produceReportDetailMapper.deleteById(id); } @@ -136,9 +162,16 @@ public class ProduceReportDetailServiceImpl implements ProduceReportDetailServic public void updateStatus(Long id, Integer status) { ProduceReportDetailDO reportDetailDO = produceReportDetailMapper.selectById(id); reportDetailDO.setReportStatus(status); + String before = reportDetailDO.toString(); produceReportDetailMapper.updateById(reportDetailDO); + if(status.equals(ReportStatusEnum.送审.getValue())){ + recordService.saveChange(reportDetailDO.getId(),before, reportDetailDO.toString() + , ChangeTypeEnum.提交.getValue()); + } if(status.equals(ReportStatusEnum.通过.getValue())){ + recordService.saveChange(reportDetailDO.getId(),before, reportDetailDO.toString() + , ChangeTypeEnum.审核.getValue()); //分配给开工中的计划 List statusList = new ArrayList<>(); statusList.add(PlanStatusEnum.开工.getValue()); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanService.java index 3eefe2f79c..756fc64700 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.mes.service.workreportplan; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.mes.controller.admin.producereportplan.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.ReportPlanSummaryDO; import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.ReportPlanViewDO; import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.WorkReportPlanDO; @@ -60,4 +61,7 @@ public interface WorkReportPlanService { public List getReportPlanViewList(); public PageResult getReportPlanViewPage(ReportPlanViewReqVO reqVO); List buildViewList(List list); + + List getPlanSummary(ReportPlanSummaryRespVO respVO); + List buildSummaryList(List list); } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanServiceImpl.java index 41978bd6fc..83c581db8f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workreportplan/WorkReportPlanServiceImpl.java @@ -8,8 +8,10 @@ import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.service.product.ErpProductService; import cn.iocoder.yudao.module.mes.controller.admin.producereportplan.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.ReportPlanSummaryDO; import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.ReportPlanViewDO; import cn.iocoder.yudao.module.mes.dal.dataobject.workreportplan.WorkReportPlanDO; +import cn.iocoder.yudao.module.mes.dal.mysql.workreportplan.ReportPlanSummaryMapper; import cn.iocoder.yudao.module.mes.dal.mysql.workreportplan.ReportPlanViewMapper; import cn.iocoder.yudao.module.mes.dal.mysql.workreportplan.WorkReportPlanMapper; import cn.iocoder.yudao.module.mes.service.plan.PlanService; @@ -43,6 +45,8 @@ public class WorkReportPlanServiceImpl implements WorkReportPlanService { private ErpProductService productService; @Resource private PlanService planService; + @Resource + private ReportPlanSummaryMapper planSummaryMapper; @Override public Long createWorkReportPlan(WorkReportPlanSaveReqVO createReqVO) { // 插入 @@ -135,4 +139,29 @@ public class WorkReportPlanServiceImpl implements WorkReportPlanService { }); } + + @Override + public List getPlanSummary(ReportPlanSummaryRespVO respVO){ + List list = planSummaryMapper.selectList(respVO); + + return buildSummaryList(list); + } + + @Override + public List buildSummaryList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + Map map = productService.getProductMap( + convertSet(list, ReportPlanSummaryDO::getProductId)); + Map planMap = planService.getPlanMap( + convertSet(list, ReportPlanSummaryDO::getPlanId)); + return BeanUtils.toBean(list, ReportPlanSummaryRespVO.class, item -> { + MapUtils.findAndThen(map, item.getProductId(), + product -> item.setProductName(product.getName())); + MapUtils.findAndThen(planMap, item.getPlanId(), + plan -> item.setPlanCode(plan.getCode())); + + }); + } } \ No newline at end of file