派工修改

plp
kkk-ops 1 month ago
parent 4269a4496d
commit 4a61b21753

@ -160,6 +160,10 @@ public class ErpStockOutController {
// 1.4 管理员信息
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
convertSet(pageResult.getList(), stockOut -> Long.parseLong(stockOut.getCreator())));
// 1.4 领料员信息
Map<Long, AdminUserRespDTO> responserMap = adminUserApi.getUserMap(
convertSet(pageResult.getList(), ErpStockOutDO::getResponserId));
// 2. 开始拼接
return BeanUtils.toBean(pageResult, ErpStockOutRespVO.class, stockOut -> {
stockOut.setItems(BeanUtils.toBean(stockOutItemMap.get(stockOut.getId()), ErpStockOutRespVO.Item.class,
@ -168,7 +172,7 @@ public class ErpStockOutController {
stockOut.setProductNames(CollUtil.join(stockOut.getItems(), "", ErpStockOutRespVO.Item::getProductName));
MapUtils.findAndThen(customerMap, stockOut.getCustomerId(), supplier -> stockOut.setCustomerName(supplier.getName()));
MapUtils.findAndThen(userMap, Long.parseLong(stockOut.getCreator()), user -> stockOut.setCreatorName(user.getNickname()));
MapUtils.findAndThen(userMap, stockOut.getResponserId(), user -> stockOut.setResponserName(user.getNickname()));
MapUtils.findAndThen(responserMap, stockOut.getResponserId(), user -> stockOut.setResponserName(user.getNickname()));
});
}

@ -41,6 +41,10 @@ public class ErpStockOutDO extends BaseDO {
*/
private Long customerId;
//@Schema(description = "负责人id", example = "3113")
/**
*
*
*/
private Long responserId;
//@Schema(description = "出库类型", example = "随便")
private String outType;

@ -23,6 +23,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@ -30,6 +31,7 @@ import java.util.Map;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
// TODO 芋艿:记录操作日志
@ -60,6 +62,7 @@ public class ErpStockOutServiceImpl implements ErpStockOutService {
@Resource
private ErpStockRecordService stockRecordService;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createStockOut(ErpStockOutSaveReqVO createReqVO) {

@ -35,6 +35,8 @@ public interface ErrorCodeConstants {
ErrorCode RECORD_GANZAO_NOT_EXISTS = new ErrorCode(5_0067, "干燥记录不存在");
ErrorCode RECORD_JIASHI_NOT_EXISTS = new ErrorCode(5_0068, "加湿记录不存在");
ErrorCode RECORD_PINJIAN_NOT_EXISTS = new ErrorCode(5_0069, "品检记录不存在");
ErrorCode PAIGONG_RECORD_NOT_EXISTS = new ErrorCode(5_0069, "派工记录不存在");
ErrorCode WORK_TEAM_NOT_EXISTS = new ErrorCode(5_007, "生产班组不存在");

@ -4,10 +4,15 @@ 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.collection.MapUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpCustomerDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.*;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionDetailRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanStatusEnum;
@ -15,11 +20,14 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.feedingplan.FeedingRecordPlanD
import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO;
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.mysql.feedingrecord.FeedingRecordDetailMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.feedingrecord.FeedingRecordMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.itemrequisition.ItemRequisitionMapper;
import cn.iocoder.yudao.module.mes.service.feedingrecord.FeedingRecordService;
import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemRequisitionService;
import cn.iocoder.yudao.module.mes.service.organization.OrganizationService;
import cn.iocoder.yudao.module.mes.service.plan.PlanService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -42,6 +50,8 @@ 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.common.util.collection.CollectionUtils.convertMultiMap;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLoginUserId;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.FEEDING_RECORD_NOT_EXISTS;
@ -54,6 +64,12 @@ public class FeedingRecordController {
@Resource
private FeedingRecordService feedingRecordService;
@Resource
private OrganizationService organizationService;
@Resource
private FeedingRecordDetailMapper feedingRecordDetailMapper;
@PostMapping("/create")
@Operation(summary = "创建投料记录")
@PreAuthorize("@ss.hasPermission('mes:feeding-record:create')")
@ -100,7 +116,13 @@ public class FeedingRecordController {
@PreAuthorize("@ss.hasPermission('mes:feeding-record:query')")
public CommonResult<PageResult<FeedingRecordRespVO>> getFeedingRecordPage(@Valid FeedingRecordPageReqVO pageReqVO) {
PageResult<FeedingRecordRespVO> pageResult = feedingRecordService.getFeedingRecordPage(pageReqVO);
return success(pageResult);
// List<OrganizationDO> organizationList = organizationService.getOrganizationListByOutIds(convertSet(pageResult.getList(), FeedingRecordRespVO::getFeedingPipeline));
// Map<Long, List<OrganizationDO>> organizationMap = convertMultiMap(organizationList, OrganizationDO::getId);
Map<Long, OrganizationDO> organizationMap = organizationService.getOrganizationVOMap(
convertSet(pageResult.getList(), FeedingRecordRespVO::getFeedingPipeline));
return success(BeanUtils.toBean(pageResult, FeedingRecordRespVO.class, feedingRecord -> {
MapUtils.findAndThen(organizationMap, feedingRecord.getFeedingPipeline(), feedingPipeline -> feedingRecord.setFeedingPipelineName(feedingPipeline.getName()));
}));
}
@GetMapping("/export-excel")
@ -160,7 +182,8 @@ public class FeedingRecordController {
List<Integer> statusList = new ArrayList<>();
statusList.add(PlanStatusEnum..getValue());
//获取正在开工的计划,按照计划完工时间从小到大排序,优先分配给最近计划完工的计划。
List<PlanDO> planDOList = planService.getPlanByStatusAndPipeline(statusList, recordDO.getFeedingPipeline());
List<PlanDO> planDOList = planService.getPlanByStatusAndPipeline(statusList, String.valueOf(recordDO.getFeedingPipeline()));/** todo 这里改了 以前固定2 5立方制浆线*/
if (recordDO.getFeedingType().equals(FeedingTypeEnum..getValue())) {
List<FeedingRecordDetailDO> detailDOList = feedingRecordService.getFeedingRecordDetailListByRecordId(id);
@ -198,11 +221,20 @@ public class FeedingRecordController {
}
}
}
}
else {
} else {
}
recordDO.setRecordStatus(FeedingStatusEnum..getValue());
// if (recordDO.getWeight().compareTo(recordDO.getFeedingWeight()) == 0) {
// recordDO.setRecordStatus(FeedingStatusEnum.已完成.getValue());
// } else {
// recordDO.setRecordStatus(FeedingStatusEnum.投料中.getValue());
//
// list.forEach(o -> o.setId(null).setRecordId(recordDO.getId())
// .setUserId(recordDO.getUserId())
// .setFeedingTime(recordDO.getFeedingTime())
// );
// feedingRecordDetailMapper.insertBatch(list);
// }
feedingRecordMapper.updateById(recordDO);
return success(true);
} else return CommonResult.error(500, "无法获取操作用户!请检查!");

@ -31,7 +31,7 @@ public class FeedingRecordPageReqVO extends PageParam {
private Long itemId;
@Schema(description = "制浆线")
private String feedingPipeline;
private Long feedingPipeline;
@Schema(description = "投料类型", example = "2")
private String feedingType;

@ -38,9 +38,13 @@ public class FeedingRecordRespVO {
private Long itemId;
@Schema(description = "制浆线")
@ExcelProperty(value = "制浆线", converter = DictConvert.class)
@DictFormat("mes_feeding_pipeline") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String feedingPipeline;
// @ExcelProperty(value = "制浆线", converter = DictConvert.class)
// @DictFormat("mes_feeding_pipeline") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private Long feedingPipeline;
@Schema(description = "制浆线名称")
@ExcelProperty(value = "制浆线名称", converter = DictConvert.class)
private String feedingPipelineName;
@Schema(description = "投料类型", example = "2")
@ExcelProperty(value = "投料类型", converter = DictConvert.class)

@ -28,7 +28,7 @@ public class FeedingRecordSaveReqVO {
private Long itemId;
@Schema(description = "制浆线")
private String feedingPipeline;
private Long feedingPipeline;
@Schema(description = "投料类型", example = "2")
private String feedingType;

@ -7,9 +7,9 @@ import lombok.Getter;
@AllArgsConstructor
public enum FeedingStatusEnum {
("3"),
("2"),
稿("1");
("3"),
("2"),
("1");
private final String value;

@ -8,14 +8,17 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
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.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionDetailRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO;
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.service.itemrequisition.ItemRequisitionService;
import cn.iocoder.yudao.module.mes.service.organization.OrganizationService;
import cn.iocoder.yudao.module.mes.service.plan.PlanService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -46,6 +49,8 @@ public class ItemRequisitionController {
private ItemRequisitionService itemRequisitionService;
@Resource
private PlanService planService;
@Resource
private OrganizationService organizationService;
@PostMapping("/create")
@Operation(summary = "创建生产领料")
@ -84,7 +89,6 @@ public class ItemRequisitionController {
@Operation(summary = "获得生产领料分页")
@PreAuthorize("@ss.hasPermission('mes:item-requisition:query')")
public CommonResult<PageResult<ItemRequisitionRespVO>> getItemRequisitionPage(@Valid ItemRequisitionPageReqVO pageReqVO) {
PageResult<ItemRequisitionDO> pageResult = itemRequisitionService.getItemRequisitionPage(pageReqVO);
return success(new PageResult<>(buildVOList(pageResult.getList()), pageResult.getTotal()));
}
@ -93,11 +97,13 @@ public class ItemRequisitionController {
if (CollUtil.isEmpty(list)) {
return Collections.emptyList();
}
Map<Long, OrganizationDO> organizationMap = organizationService.getOrganizationVOMap(
convertSet(list, ItemRequisitionDO::getFeedingPipeline));
Map<Long, PlanDO> map = planService.getPlanMap(
convertSet(list, ItemRequisitionDO::getPlanId));
return BeanUtils.toBean(list, ItemRequisitionRespVO.class, item -> {
MapUtils.findAndThen(map, item.getPlanId(),
plan -> item.setPlanCode(plan.getCode()));
MapUtils.findAndThen(map, item.getPlanId(), plan -> item.setPlanCode(plan.getCode()));
MapUtils.findAndThen(organizationMap, item.getFeedingPipeline(), organization -> item.setFeedingPipelineName(organization.getName()));
});
}

@ -58,6 +58,9 @@ public class ItemRequisitionRespVO {
private Long workerId;
@Schema(description = "制浆线")
private Long feedingPipeline;
@Schema(description = "制浆线名称")
@ExcelProperty("制浆线")
private String feedingPipeline;
private String feedingPipelineName;
}

@ -47,7 +47,7 @@ public class ItemRequisitionSaveReqVO {
private String feedingPipeline;
@Schema(description = "生产线")
private String pipeline;
private Long pipeline;
@Schema(description = "是否试生产")
private Boolean isPreProduction;

@ -48,6 +48,9 @@ public class MoldGetRespVO {
@ExcelProperty("领取时间")
private LocalDateTime getTime;
@Schema(description = "关联仓库id")
private Long warehouseId;
@Schema(description = "库管员")
@ExcelProperty("库管员")
private String principal;

@ -0,0 +1,124 @@
package cn.iocoder.yudao.module.mes.controller.admin.paigongrecord;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionDetailRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
import cn.iocoder.yudao.module.mes.service.organization.OrganizationService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO;
import cn.iocoder.yudao.module.mes.service.paigongrecord.PaigongRecordService;
@Tag(name = "管理后台 - 计划派工记录")
@RestController
@RequestMapping("/mes/paigong-record")
@Validated
public class PaigongRecordController {
@Resource
private PaigongRecordService paigongRecordService;
@Resource
private OrganizationService organizationService;
@PostMapping("/create")
@Operation(summary = "创建计划派工记录")
@PreAuthorize("@ss.hasPermission('mes:paigong-record:create')")
public CommonResult<Long> createPaigongRecord(@Valid @RequestBody PaigongRecordSaveReqVO createReqVO) {
return success(paigongRecordService.createPaigongRecord(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新计划派工记录")
@PreAuthorize("@ss.hasPermission('mes:paigong-record:update')")
public CommonResult<Boolean> updatePaigongRecord(@Valid @RequestBody PaigongRecordSaveReqVO updateReqVO) {
paigongRecordService.updatePaigongRecord(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除计划派工记录")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:paigong-record:delete')")
public CommonResult<Boolean> deletePaigongRecord(@RequestParam("id") Long id) {
paigongRecordService.deletePaigongRecord(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得计划派工记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:paigong-record:query')")
public CommonResult<PaigongRecordRespVO> getPaigongRecord(@RequestParam("id") Long id) {
PaigongRecordDO paigongRecord = paigongRecordService.getPaigongRecord(id);
return success(BeanUtils.toBean(paigongRecord, PaigongRecordRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得计划派工记录分页")
@PreAuthorize("@ss.hasPermission('mes:paigong-record:query')")
public CommonResult<PageResult<PaigongRecordRespVO>> getPaigongRecordPage(@Valid PaigongRecordPageReqVO pageReqVO) {
PageResult<PaigongRecordDO> pageResult = paigongRecordService.getPaigongRecordPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PaigongRecordRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出计划派工记录 Excel")
@PreAuthorize("@ss.hasPermission('mes:paigong-record:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportPaigongRecordExcel(@Valid PaigongRecordPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PaigongRecordDO> list = paigongRecordService.getPaigongRecordPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "计划派工记录.xls", "数据", PaigongRecordRespVO.class,
BeanUtils.toBean(list, PaigongRecordRespVO.class));
}
// ==================== 子表(派工记录) ====================
@GetMapping("/list-by-item-plan-id")
@Operation(summary = "获得派工记录明细列表")
@Parameter(name = "planId", description = "计划ID")
@PreAuthorize("@ss.hasPermission('mes:paigong-record:query')")
public CommonResult<List<PaigongRecordRespVO>> getPaigongRecordListByPlanId(@RequestParam("planId") Long planId) {
List<PaigongRecordDO> pageResult = paigongRecordService.getPaigongRecordListByPlanId(planId);
//return success(BeanUtils.toBean(pageResult, PaigongRecordRespVO.class));
Map<Long, OrganizationDO> organizationMap = organizationService.getOrganizationVOMap(
convertSet(pageResult, PaigongRecordDO::getPipeline));
return success(BeanUtils.toBean(pageResult, PaigongRecordRespVO.class, paigongRecord -> {
MapUtils.findAndThen(organizationMap, paigongRecord.getPipeline(), organization -> paigongRecord.setPipelineName(organization.getName()));
}));
}
}

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 计划派工记录分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PaigongRecordPageReqVO extends PageParam {
@Schema(description = "关联计划id", example = "1097")
private Long planId;
@Schema(description = "生产线")
private Long pipeline;
@Schema(description = "派工数量")
private Long paigongNum;
@Schema(description = "是否试生产")
private BigDecimal isPreProduction;
@Schema(description = "派工时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] paigongTime;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 计划派工记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PaigongRecordRespVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6021")
@ExcelProperty("id")
private Long id;
@Schema(description = "关联计划id", example = "1097")
@ExcelProperty("关联计划id")
private Long planId;
@Schema(description = "生产线")
private Long pipeline;
@Schema(description = "生产线名称")
@ExcelProperty("生产线名称")
private String pipelineName;
@Schema(description = "派工数量")
@ExcelProperty("派工数量")
private Long paigongNum;
@Schema(description = "是否试生产")
@ExcelProperty("是否试生产")
private BigDecimal isPreProduction;
@Schema(description = "派工时间")
@ExcelProperty("派工时间")
private LocalDateTime paigongTime;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 计划派工记录新增/修改 Request VO")
@Data
public class PaigongRecordSaveReqVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6021")
private Long id;
@Schema(description = "关联计划id", example = "1097")
private Long planId;
@Schema(description = "生产线")
private Long pipeline;
@Schema(description = "派工数量")
private Long paigongNum;
@Schema(description = "是否试生产")
private BigDecimal isPreProduction;
@Schema(description = "派工时间")
private LocalDateTime paigongTime;
}

@ -111,7 +111,7 @@ public class PlanController {
private ItemAnalysisService analysisService;
@PutMapping("/paigong")
@Operation(summary = "计划派工")
@Operation(summary = "下料派工")
//@PreAuthorize("@ss.hasPermission('mes:plan:update')")
public CommonResult<Boolean> updatePlan(@Valid @RequestBody ItemRequisitionSaveReqVO saveReqVO) {
PlanDO planDO = planMapper.selectById(saveReqVO.getPlanId());
@ -119,6 +119,15 @@ public class PlanController {
planService.arrangePlan(saveReqVO, planDO, list);
return success(true);
}
@PutMapping("/typePaigong")
@Operation(summary = "工序派工")
//@PreAuthorize("@ss.hasPermission('mes:plan:update')")
public CommonResult<Boolean> updatePlanNum(@Valid @RequestBody ItemRequisitionSaveReqVO saveReqVO) {
PlanDO planDO = planMapper.selectById(saveReqVO.getPlanId());
//List<ItemRequisitionAndStock> list = analysisService.getItemAnalysis(planDO);
planService.arrangePlanNum(saveReqVO, planDO);
return success(true);
}
@PutMapping("/updateStatus")
@Operation(summary = "更新生产计划状态")

@ -50,7 +50,7 @@ public class FeedingRecordDO extends BaseDO {
* <p>
* {@link TODO mes_feeding_pipeline }
*/
private String feedingPipeline;
private Long feedingPipeline;
/**
*
* <p>
@ -61,6 +61,10 @@ public class FeedingRecordDO extends BaseDO {
*
*/
private BigDecimal weight;
/**
*
*/
private BigDecimal feedingWeight;
/**
*
*/

@ -65,6 +65,6 @@ public class ItemRequisitionDO extends BaseDO {
// @Schema(description = "制浆线")
// @ExcelProperty("制浆线")
private String feedingPipeline;
private Long feedingPipeline;
}

@ -60,6 +60,10 @@ public class MoldGetDO extends BaseDO {
*
*/
private LocalDateTime getTime;
/**
* id
*/
private Long warehouseId;
/**
*
*/

@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author
*/
@TableName("mes_paigong_record")
@KeySequence("mes_paigong_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PaigongRecordDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* id
*/
private Long planId;
/**
* 线
*/
private Long pipeline;
/**
*
*/
private Long paigongNum;
/**
*
*/
private Boolean isPreProduction;
/**
*
*/
private LocalDateTime paigongTime;
}

@ -48,6 +48,10 @@ public class PlanDO extends BaseDO {
*
*/
private Long planNumber;
/**
*
*/
private Long noPaigongNumber;
/**
*
*/

@ -2,11 +2,14 @@ package cn.iocoder.yudao.module.mes.dal.mysql.organization;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Mapper;
import java.util.Collection;
import java.util.List;
/**
@ -63,4 +66,9 @@ public interface OrganizationMapper extends BaseMapperX<OrganizationDO> {
default OrganizationDO selectByNo(String no) {
return selectOne(OrganizationDO::getCode, no);
}
default List<OrganizationDO> selectListByOutIds(Collection<Long> outIds) {
return selectList(OrganizationDO::getId, outIds);
}
}

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.mes.dal.mysql.paigongrecord;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface PaigongRecordMapper extends BaseMapperX<PaigongRecordDO> {
default PageResult<PaigongRecordDO> selectPage(PaigongRecordPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<PaigongRecordDO>()
.eqIfPresent(PaigongRecordDO::getPlanId, reqVO.getPlanId())
.eqIfPresent(PaigongRecordDO::getPipeline, reqVO.getPipeline())
.eqIfPresent(PaigongRecordDO::getPaigongNum, reqVO.getPaigongNum())
.eqIfPresent(PaigongRecordDO::getIsPreProduction, reqVO.getIsPreProduction())
.betweenIfPresent(PaigongRecordDO::getPaigongTime, reqVO.getPaigongTime())
.betweenIfPresent(PaigongRecordDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(PaigongRecordDO::getId));
}
default List<PaigongRecordDO> selectListByPlanId(Long planId) {
return selectList(PaigongRecordDO::getPlanId, planId);
}
}

@ -94,4 +94,6 @@ public interface FeedingRecordService {
void dealWithOnPlan(PlanDO plan, List<FeedingRecordDetailDO> detailDOList, Map<String, ItemRequisitionDetailRespVO> planItemMap,
LoginUser user,FeedingRecordDO recordDO);
}

@ -80,7 +80,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
createReqVO.setFeedingRecordCode(noRedisDAO.generate3(MesNoRedisDAO.FEEDING_RECORD_CODE_PREFIX));
// 插入
FeedingRecordDO feedingRecord = BeanUtils.toBean(createReqVO, FeedingRecordDO.class);
feedingRecord.setRecordStatus(FeedingStatusEnum.稿.getValue());
feedingRecord.setRecordStatus(FeedingStatusEnum..getValue());
feedingRecordMapper.insert(feedingRecord);
//检查投料原料项如果不是kg则转为kg
if (createReqVO.getFeedingType().equals(FeedingTypeEnum..getValue())) {
@ -93,6 +93,19 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
return feedingRecord.getId();
}
// @Override
// @Transactional(rollbackFor = Exception.class)
// public void createFeedingRecordDetail(FeedingRecordDO recordDO) {
//
// transfer(createReqVO.getFeedingRecordDetails());
// // 插入子表
// list.forEach(o -> o.setId(null).setRecordId(recordDO.getId())
// .setUserId(recordDO.getUserId())
// .setFeedingTime(recordDO.getFeedingTime())
// );
// feedingRecordDetailMapper.insertBatch(list);
// }
@Override
@Transactional(rollbackFor = Exception.class)
public void updateFeedingRecord(FeedingRecordSaveReqVO updateReqVO) {
@ -240,7 +253,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
, List<PlanDO> planDOList, Map<Long, List<ItemRequisitionDetailRespVO>> planItemListMap,
Map<String, ItemRequisitionDetailRespVO> planItemMap) {
if (status.equals(FeedingStatusEnum..getValue())) {
if (status.equals(FeedingStatusEnum..getValue())) {
//detailDOMap 汇总投料原料
Map<Long, FeedingRecordDetailDO> detailDOMap = new HashMap<>();
for (FeedingRecordDetailDO recordDetailDO : detailDOList) {
@ -261,12 +274,12 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
Map<String, FeedingRecordPlanDO> recordPlanDOMap =
dealPlan(detailDOMap, recordDO, userId, planDOList, planItemListMap, planItemMap);
recordDO.setRecordStatus(FeedingStatusEnum..getValue());
recordDO.setRecordStatus(FeedingStatusEnum..getValue());
feedingRecordMapper.updateById(recordDO);
return recordPlanDOMap;
}
//todo 需要回退吗?
else if (status.equals(FeedingStatusEnum.稿.getValue())) {
else if (status.equals(FeedingStatusEnum..getValue())) {
}
return null;
@ -379,7 +392,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
public void dealOtherRecord(FeedingRecordDO recordDO, String status, Long userId, List<PlanDO> planDOList) {
FeedingTypeEnum typeEnum = FeedingTypeEnum.fromValue(recordDO.getFeedingType());
MathContext mc = new MathContext(3, RoundingMode.HALF_UP);
if (status.equals(FeedingStatusEnum..getValue())) {
if (status.equals(FeedingStatusEnum..getValue())) {
Long totalPlanNumber = 0L;
for (PlanDO plan : planDOList) {
totalPlanNumber += plan.getPlanNumber();
@ -401,7 +414,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
}
//todo 需要回退吗?
else if (status.equals(FeedingStatusEnum.稿.getValue())) {
else if (status.equals(FeedingStatusEnum..getValue())) {
}

@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.mes.service.organization;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationSaveReqVO;
@ -13,6 +16,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
/**
* 线 Service
*
@ -57,6 +62,8 @@ public interface OrganizationService {
* @return 线
*/
List<OrganizationDO> getOrganizationList(OrganizationListReqVO listReqVO);
List<OrganizationDO> getOrganizationListByOutIds(Collection<Long> outIds);
List<OrganizationDO> getOrganizationListNoParent(OrganizationListReqVO listReqVO);
List<OrganizationRespVO> buildVOList(List<OrganizationDO> list);
//派工页面渲染今天已经派工的工人
@ -68,4 +75,10 @@ public interface OrganizationService {
}
return CollectionUtils.convertMap(getList(ids), OrganizationDO::getId);
}
List<OrganizationDO> getOrganizationVOList(Collection<Long> ids);
default Map<Long, OrganizationDO> getOrganizationVOMap(Collection<Long> ids) {
if(ids.isEmpty())return new HashMap<>();
return convertMap(getOrganizationVOList(ids), OrganizationDO::getId);
}
}

@ -4,8 +4,12 @@ import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.service.device.DeviceService;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrgClassEnum;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationRespVO;
@ -234,4 +238,21 @@ public class OrganizationServiceImpl implements OrganizationService {
}
return organizationMapper.selectBatchIds(ids);
}
@Override
public List<OrganizationDO> getOrganizationListByOutIds(Collection<Long> outIds) {
if (CollUtil.isEmpty(outIds)) {
return Collections.emptyList();
}
return organizationMapper.selectListByOutIds(outIds);
}
@Override
public List<OrganizationDO> getOrganizationVOList(Collection<Long> ids) {
if (CollUtil.isEmpty(ids)) {
return Collections.emptyList();
}
List<OrganizationDO> list = organizationMapper.selectBatchIds(ids);
return list;
}
}

@ -0,0 +1,69 @@
package cn.iocoder.yudao.module.mes.service.paigongrecord;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.paigongrecord.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface PaigongRecordService {
/**
*
*
* @param createReqVO
* @return
*/
Long createPaigongRecord(@Valid PaigongRecordSaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updatePaigongRecord(@Valid PaigongRecordSaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deletePaigongRecord(Long id);
/**
*
*
* @param id
* @return
*/
PaigongRecordDO getPaigongRecord(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<PaigongRecordDO> getPaigongRecordPage(PaigongRecordPageReqVO pageReqVO);
/**
*
*
* @param planId ID
* @return
*/
List<PaigongRecordDO> getPaigongRecordListByPlanId(Long planId);
PageResult<PaigongRecordRespVO> getPage(PaigongRecordPageReqVO pageReqVO);
}

@ -0,0 +1,96 @@
package cn.iocoder.yudao.module.mes.service.paigongrecord;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.mes.controller.admin.feedingrecord.vo.FeedingRecordRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.feedingrecord.FeedingRecordDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDetailDO;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
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.paigongrecord.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.paigongrecord.PaigongRecordDO;
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.dal.mysql.paigongrecord.PaigongRecordMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class PaigongRecordServiceImpl implements PaigongRecordService {
@Resource
private PaigongRecordMapper paigongRecordMapper;
@Override
public Long createPaigongRecord(PaigongRecordSaveReqVO createReqVO) {
// 插入
PaigongRecordDO paigongRecord = BeanUtils.toBean(createReqVO, PaigongRecordDO.class);
paigongRecordMapper.insert(paigongRecord);
// 返回
return paigongRecord.getId();
}
@Override
public void updatePaigongRecord(PaigongRecordSaveReqVO updateReqVO) {
// 校验存在
validatePaigongRecordExists(updateReqVO.getId());
// 更新
PaigongRecordDO updateObj = BeanUtils.toBean(updateReqVO, PaigongRecordDO.class);
paigongRecordMapper.updateById(updateObj);
}
@Override
public void deletePaigongRecord(Long id) {
// 校验存在
validatePaigongRecordExists(id);
// 删除
paigongRecordMapper.deleteById(id);
}
private void validatePaigongRecordExists(Long id) {
if (paigongRecordMapper.selectById(id) == null) {
throw exception(PAIGONG_RECORD_NOT_EXISTS);
}
}
@Override
public PaigongRecordDO getPaigongRecord(Long id) {
return paigongRecordMapper.selectById(id);
}
@Override
public PageResult<PaigongRecordDO> getPaigongRecordPage(PaigongRecordPageReqVO pageReqVO) {
return paigongRecordMapper.selectPage(pageReqVO);
}
@Override
public PageResult<PaigongRecordRespVO> getPage(PaigongRecordPageReqVO pageReqVO) {
PageResult<PaigongRecordDO> pageResult = paigongRecordMapper.selectPage(pageReqVO);
return new PageResult<>(BeanUtils.toBean(pageResult.getList(), PaigongRecordRespVO.class),pageResult.getTotal());
}
// ==================== 子表(派工记录明细) ====================
@Override
public List<PaigongRecordDO> getPaigongRecordListByPlanId(Long planId) {
return paigongRecordMapper.selectListByPlanId(planId);
}
}

@ -74,6 +74,8 @@ public interface PlanService {
Boolean arrangePlan(ItemRequisitionSaveReqVO saveReqVO, PlanDO planDO, List<ItemRequisitionAndStock> list);
Boolean arrangePlanNum(ItemRequisitionSaveReqVO saveReqVO, PlanDO planDO);
List<PlanDO> getPlanList(Collection<Long> ids);
default Map<Long, PlanDO> getPlanMap(Collection<Long> ids) {

@ -15,17 +15,21 @@ import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanSaveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanStatusEnum;
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.paigongrecord.PaigongRecordDO;
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.paigongrecord.PaigongRecordMapper;
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;
import cn.iocoder.yudao.module.mes.service.itemrequisition.ItemRequisitionService;
import cn.iocoder.yudao.module.mes.service.itemrequisition.entity.ItemRequisitionAndStock;
import cn.iocoder.yudao.module.mes.service.paigongrecord.PaigongRecordService;
import cn.iocoder.yudao.module.mes.service.task.TaskService;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -56,6 +60,8 @@ public class PlanServiceImpl implements PlanService {
private MesNoRedisDAO noRedisDAO;
@Resource
private TaskService taskService;
@Resource
private PaigongRecordMapper paigongRecordMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@ -220,6 +226,23 @@ public class PlanServiceImpl implements PlanService {
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean arrangePlanNum(ItemRequisitionSaveReqVO saveReqVO, PlanDO planDO) {
// 创建派工记录
PaigongRecordDO paigongRecordDO = new PaigongRecordDO()
.setPaigongNum(saveReqVO.getPaigongNum())
.setPipeline(saveReqVO.getPipeline())
.setIsPreProduction(saveReqVO.getIsPreProduction())
.setPlanId(planDO.getId())
.setPaigongTime(LocalDateTime.now());
paigongRecordMapper.insert(paigongRecordDO);
// 更新未派工数量
planDO.setNoPaigongNumber(planDO.getPlanNumber()-saveReqVO.getPaigongNum());
planMapper.updateById(planDO);
return true;
}
@Override
public List<PlanDO> getPlanList(Collection<Long> ids) {
return planMapper.selectBatchIds(ids);

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.mes.dal.mysql.paigongrecord.PaigongRecordMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>
Loading…
Cancel
Save