diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppProductController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppProductController.java new file mode 100644 index 0000000000..eeeb0f0c19 --- /dev/null +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/app/AppProductController.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.mes.controller.admin.app; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; +import cn.iocoder.yudao.module.erp.framework.bean.ProductTypeEnum; +import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; +import cn.iocoder.yudao.module.mes.controller.admin.app.service.AppService; +import cn.iocoder.yudao.module.mes.controller.admin.app.vo.AppProductVo; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import io.swagger.v3.oas.annotations.Operation; +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.RestController; + +import javax.annotation.Resource; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; + +@Tag(name = "app - 工位安排") +@RestController +@RequestMapping("/mes/app/product") +@Validated +public class AppProductController { + + + @Resource + private AdminUserApi adminUserApi; + @Resource + private AppService appService; + @Resource + private ErpProductService erpProductService; + @Resource + private ErpProductUnitService erpProductUnitService; + + @GetMapping("/getItemList") + @Operation(summary = "获得原料列表") + public CommonResult> getItemList() { + List list = erpProductService.getProductVOListByCategory(ProductTypeEnum.ITEM.getTypeId()); + return success(convertList(list, item -> new AppProductVo().setValue(item.getId()).setText(item.getName()))); + } + @GetMapping("/getUnitList") + @Operation(summary = "获得单位列表") + public CommonResult> getUnitList() { + List list = erpProductUnitService.getProductUnitListByStatus(CommonStatusEnum.ENABLE.getStatus()); + return success(convertList(list, unit -> new AppProductVo().setValue(unit.getId()).setText(unit.getName()))); + } +} \ 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 1351d417f1..9a693a9cc4 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 @@ -69,6 +69,10 @@ public class FeedingRecordController { @Operation(summary = "更新投料记录") @PreAuthorize("@ss.hasPermission('mes:feeding-record:update')") public CommonResult updateFeedingRecord(@Valid @RequestBody FeedingRecordSaveReqVO updateReqVO) { + Long userId = getLoginUserId(); + updateReqVO.setUserId(userId); + if(updateReqVO.getFeedingTime()==null) + updateReqVO.setFeedingTime(LocalDateTime.now()); feedingRecordService.updateFeedingRecord(updateReqVO); return success(true); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java index fd47471be6..d1e7c6be93 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanPageReqVO.java @@ -71,4 +71,6 @@ public class PlanPageReqVO extends PageParam { @Schema(description = "制浆线") private String feedingPipeline; + @Schema(description = "组别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer groupType; } \ 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/plan/vo/PlanRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanRespVO.java index 13bd3c2bc6..3b6660eaf4 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanRespVO.java @@ -107,4 +107,9 @@ public class PlanRespVO { */ @Schema(description = "优先级") private Long priorityNum; + + @Schema(description = "组别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty(value = "组别", converter = DictConvert.class) + @DictFormat("mes_group_type") + private Integer groupType; } \ 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/plan/vo/PlanSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanSaveReqVO.java index 4bb5ffd456..ae54346ccf 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/plan/vo/PlanSaveReqVO.java @@ -71,4 +71,7 @@ public class PlanSaveReqVO { */ @Schema(description = "优先级") private Long priorityNum; + + @Schema(description = "组别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer groupType; } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java index e473212bac..de4b8c50f9 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/plan/PlanDO.java @@ -103,4 +103,7 @@ public class PlanDO extends BaseDO { * 优先级,同种产品的优先级,数字越大,排序越靠前,越早分配完成数量 */ private Long priorityNum; + + //@Schema(description = "组别", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer groupType; } \ 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 d076d44989..3a03b897d9 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 @@ -86,7 +86,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { if (createReqVO.getFeedingType().equals(FeedingTypeEnum.领料.getValue())) { transfer(createReqVO.getFeedingRecordDetails()); // 插入子表 - createFeedingRecordDetailList(feedingRecord.getId(), createReqVO.getFeedingRecordDetails()); + createFeedingRecordDetailList(feedingRecord, createReqVO.getFeedingRecordDetails()); } // 返回 @@ -104,7 +104,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { if (updateReqVO.getFeedingType().equals(FeedingTypeEnum.领料.getValue())) { transfer(updateReqVO.getFeedingRecordDetails()); // 更新子表 - updateFeedingRecordDetailList(updateReqVO.getId(), updateReqVO.getFeedingRecordDetails()); + updateFeedingRecordDetailList(updateObj, updateReqVO.getFeedingRecordDetails()); } } @@ -180,17 +180,20 @@ public class FeedingRecordServiceImpl implements FeedingRecordService { return feedingRecordDetailMapper.selectListByRecordId(recordId); } - private void createFeedingRecordDetailList(Long recordId, List list) { + private void createFeedingRecordDetailList( FeedingRecordDO feedingRecord, List list) { if (list != null && list.size() > 0) { - list.forEach(o -> o.setRecordId(recordId)); + list.forEach(o -> o.setId(null).setRecordId(feedingRecord.getId()) + .setUserId(feedingRecord.getUserId()) + .setFeedingTime(feedingRecord.getFeedingTime()) + ); feedingRecordDetailMapper.insertBatch(list); } } - private void updateFeedingRecordDetailList(Long recordId, List list) { - deleteFeedingRecordDetailByRecordId(recordId); + private void updateFeedingRecordDetailList(FeedingRecordDO updateObj, List list) { + deleteFeedingRecordDetailByRecordId(updateObj.getId()); list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 - createFeedingRecordDetailList(recordId, list); + createFeedingRecordDetailList(updateObj, list); } private void deleteFeedingRecordDetailByRecordId(Long recordId) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java index 59a644e8e8..6b438c8739 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/plan/PlanServiceImpl.java @@ -17,6 +17,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.task.vo.TaskStatusEnum; import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.task.TaskDetailDO; import cn.iocoder.yudao.module.mes.dal.mysql.plan.PlanMapper; import cn.iocoder.yudao.module.mes.dal.mysql.stockindetail.StockInDetailMapper; import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; @@ -69,6 +70,10 @@ public class PlanServiceImpl implements PlanService { } plan.setCode(no); } + if(plan.getProductId()==null && plan.getTaskDetailId()!=null){ + TaskDetailDO taskDetailDO = taskService.getTaskDetail(plan.getTaskDetailId()); + plan.setProductId(taskDetailDO.getProductId()); + } if (plan.getIsEnable() == null) plan.setIsEnable(true); if(plan.getPriorityNum()==null) plan.setPriorityNum(1L); planMapper.insert(plan); @@ -88,6 +93,10 @@ public class PlanServiceImpl implements PlanService { // 更新 PlanDO updateObj = BeanUtils.toBean(updateReqVO, PlanDO.class); if (updateObj.getIsEnable() == null) updateObj.setIsEnable(true); + if(updateObj.getProductId()==null && updateObj.getTaskDetailId()!=null){ + TaskDetailDO taskDetailDO = taskService.getTaskDetail(updateObj.getTaskDetailId()); + updateObj.setProductId(taskDetailDO.getProductId()); + } planMapper.updateById(updateObj); }