diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java index 6621fdceaf..c4f62ca72f 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppOrgWorkerController.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.app.vo.AppOrgWorkerVO; import cn.iocoder.yudao.module.mes.controller.admin.app.vo.AppProductVo; import cn.iocoder.yudao.module.mes.controller.admin.app.vo.AppReportReqVO; import cn.iocoder.yudao.module.mes.controller.admin.app.vo.AppReportSaveReqVO; +import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.ProcessTypeEnum; import cn.iocoder.yudao.module.mes.controller.admin.orgworker.vo.OrgWorkerPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanStatusEnum; import cn.iocoder.yudao.module.mes.controller.admin.producereport.vo.ProduceReportSaveReqVO; @@ -23,6 +24,7 @@ import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.lang3.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -106,6 +108,7 @@ public class AppOrgWorkerController { @GetMapping("/getPlanProductList") @Operation(summary = "获得正在开工生产的产品以及工序的需求") public CommonResult> getPlanProductList(String orgType) { + if(StringUtils.isEmpty(orgType))orgType= ProcessTypeEnum.成型.getValue(); return success(appService.getPlanProductList(orgType)); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java index 9abec80d1a..a5ffa4ff9c 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/service/AppServiceImpl.java @@ -101,8 +101,7 @@ public class AppServiceImpl implements AppService { Long finish = produceReportDetailService.sumByPlanAndOrgType(plan.getId(), orgType); AppProductVo appProductVo = new AppProductVo().setValue(plan.getId()) .setProductId(plan.getProductId()).setProductName(map.get(plan.getProductId()).getName()); - StringBuilder builder = new StringBuilder().append("[").append(plan.getCode()).append("]"); - builder.append(map.get(plan.getProductId()).getName()).append("-"); + StringBuilder builder = new StringBuilder().append(map.get(plan.getProductId()).getName()).append("-"); if(orgType.equals(ProcessTypeEnum.热压.getValue())){ if(plan.getReyaNumber() - finish > 0) builder.append("需:").append(plan.getReyaNumber() - finish); @@ -113,6 +112,7 @@ public class AppServiceImpl implements AppService { builder.append("需:").append(plan.getPlanNumber() - finish); else builder.append("超:").append(finish - plan.getPlanNumber()); } + builder.append(" [").append(plan.getCode()).append("]"); appProductVo.setText(builder.toString()); appProductVoList.add(appProductVo); } 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 8e0e3b51b3..02377b7775 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 @@ -41,6 +41,7 @@ import java.util.Map; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.FEEDING_RECORD_NOT_EXISTS; @Tag(name = "管理后台 - 投料记录") @@ -56,6 +57,8 @@ public class FeedingRecordController { @Operation(summary = "创建投料记录") @PreAuthorize("@ss.hasPermission('mes:feeding-record:create')") public CommonResult createFeedingRecord(@Valid @RequestBody FeedingRecordSaveReqVO createReqVO) { + Long userId = getLoginUserId(); + createReqVO.setUserId(userId); return success(feedingRecordService.createFeedingRecord(createReqVO)); } 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 c9d0682eef..d076d44989 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 @@ -168,7 +168,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { return BeanUtils.toBean(list, FeedingRecordRespVO.class, item -> { MapUtils.findAndThen(map, item.getProductId(), product -> item.setProductName(product.getName())); - MapUtils.findAndThen(userMap, Long.valueOf(item.getCreator()), + MapUtils.findAndThen(userMap, item.getUserId(), user -> item.setUserName(user.getNickname())); }); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailService.java index cae4d055d7..51bf7a0129 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailService.java @@ -66,4 +66,7 @@ public interface ProduceReportDetailService { void updateStatus2( ProduceReportDetailDO reportDetailDO, Integer status); Long sumByPlanAndOrgType(Long planId,String orgType); + + //报工明细分配固定单个计划 + void updateStatus3( ProduceReportDetailDO reportDetailDO, Integer status); } \ 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/producereport/ProduceReportDetailServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportDetailServiceImpl.java index 64c32b93de..4497ea7ba6 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 @@ -272,4 +272,20 @@ public class ProduceReportDetailServiceImpl implements ProduceReportDetailServic public Long sumByPlanAndOrgType(Long planId,String orgType){ return produceReportDetailMapper.sumByPlanAndOrgType(planId, orgType); } + + + //报工明细固定对应分配计划 + @Override + @Transactional + public void updateStatus3( ProduceReportDetailDO reportDetailDO, Integer status) { + reportDetailDO.setReportStatus(status); + produceReportDetailMapper.updateById(reportDetailDO); + //分配给开工中的计划 + WorkReportPlanSaveReqVO saveReqVO = new WorkReportPlanSaveReqVO() + .setReportId(reportDetailDO.getId()).setPlanId(reportDetailDO.getPlanId()) + .setProductId(reportDetailDO.getProductId()) + .setQualityNumberPlan(reportDetailDO.getQualityNumber()) + .setWasteNumberPlan(reportDetailDO.getWasteNumber()); + workReportPlanService.createWorkReportPlan(saveReqVO); + } } \ 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/producereport/ProduceReportServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java index ca1f12bba0..0fc7bb31e4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/producereport/ProduceReportServiceImpl.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.changerecord.vo.ChangeTypeEnum; import cn.iocoder.yudao.module.mes.controller.admin.producereport.vo.*; 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.ProduceReportDO; import cn.iocoder.yudao.module.mes.dal.dataobject.producereport.ProduceReportDetailDO; import cn.iocoder.yudao.module.mes.dal.dataobject.producereport.ViewReportUserDateSummary; @@ -16,6 +17,7 @@ import cn.iocoder.yudao.module.mes.dal.mysql.producereport.ViewReportUserDateMap import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; 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.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.apache.commons.lang3.StringUtils; @@ -55,6 +57,8 @@ public class ProduceReportServiceImpl implements ProduceReportService { @Resource private ProduceReportDetailService produceReportDetailService; @Resource + private PlanService planService; + @Resource private MesNoRedisDAO noRedisDAO; @Override @@ -71,8 +75,9 @@ public class ProduceReportServiceImpl implements ProduceReportService { produceReportMapper.insert(produceReport); // 插入子表 - if( createReqVO.getProduceReportDetails()!=null&& createReqVO.getProduceReportDetails().size()>0) + if( createReqVO.getProduceReportDetails()!=null&& createReqVO.getProduceReportDetails().size()>0){ createProduceReportDetailList( produceReport, createReqVO.getProduceReportDetails()); + } // 返回 return produceReport.getId(); } @@ -154,10 +159,16 @@ public class ProduceReportServiceImpl implements ProduceReportService { return produceReportDetailService.buildVOList(list); } private void createProduceReportDetailList(ProduceReportDO reportDO, List list) { + Map map = planService.getPlanMap(convertSet(list, ProduceReportDetailDO::getPlanId)); + list.forEach(o -> o.setId(null).setReportId(reportDO.getId()).setReportStatus(reportDO.getReportStatus()) .setReportDate(reportDO.getReportDate()).setGroupType(reportDO.getGroupType()) .setOrgId(reportDO.getOrgId()).setOrgType(reportDO.getOrgType()) - .setUserId(reportDO.getUserId()) + .setUserId(reportDO.getUserId()).setReportType(reportDO.getReportType()) + .setProductId(map.get(o.getPlanId()).getProductId()) + .setQualityNumber(o.getQualityNumber()==null?BigDecimal.ZERO: o.getQualityNumber()) + .setWasteNumber(o.getWasteNumber()==null?BigDecimal.ZERO: o.getWasteNumber()) + .setTotalNumber(o.getQualityNumber().add(o.getWasteNumber())) ); produceReportDetailMapper.insertBatch(list); } @@ -165,13 +176,9 @@ public class ProduceReportServiceImpl implements ProduceReportService { private void updateProduceReportDetailList(ProduceReportDO reportDO, List list) { deleteProduceReportDetailByReportId(reportDO.getId()); if(list==null ||list.size()==0)return; - list.forEach(o -> o.setId(null).setReportStatus(reportDO.getReportStatus()) - .setReportDate(reportDO.getReportDate()).setGroupType(reportDO.getGroupType()) - .setOrgId(reportDO.getOrgId()).setOrgType(reportDO.getOrgType()) - .setUserId(reportDO.getUserId()) - .setReportId(reportDO.getId()) - .setUpdater(null).setUpdateTime(null) - ); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 +// list.forEach(o -> o.setId(null) +// .setUpdater(null).setUpdateTime(null) +// ); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 createProduceReportDetailList(reportDO, list); } @@ -192,7 +199,8 @@ public class ProduceReportServiceImpl implements ProduceReportService { produceReportChangeRecordService.saveChange(id, "", "", ChangeTypeEnum.审核.getValue()); List list = getProduceReportDetailListByReportId(id); for (ProduceReportDetailDO detail: list) { - produceReportDetailService.updateStatus2(detail,status); + //明细固定分配单个计划 + produceReportDetailService.updateStatus3(detail,status); } } }