报工修改

plp
kkk-ops 4 weeks ago
parent fc267eaefa
commit d091c84aa0

@ -3,9 +3,12 @@ package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils; import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO; import cn.iocoder.yudao.module.mes.controller.admin.itemrequisition.vo.ItemRequisitionRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.plan.vo.PlanSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.itemrequisition.ItemRequisitionDO; 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.organization.OrganizationDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO; import cn.iocoder.yudao.module.mes.dal.dataobject.plan.PlanDO;
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.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -19,6 +22,8 @@ import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import javax.validation.*; import javax.validation.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.io.IOException; import java.io.IOException;
@ -47,6 +52,9 @@ public class BaogongRecordController {
@Resource @Resource
private BaogongRecordService baogongRecordService; private BaogongRecordService baogongRecordService;
@Resource
private PlanService planService;
@Resource @Resource
private AdminUserApi adminUserApi; private AdminUserApi adminUserApi;
@ -54,6 +62,27 @@ public class BaogongRecordController {
@Operation(summary = "创建报工") @Operation(summary = "创建报工")
@PreAuthorize("@ss.hasPermission('mes:baogong-record:create')") @PreAuthorize("@ss.hasPermission('mes:baogong-record:create')")
public CommonResult<Long> createBaogongRecord(@Valid @RequestBody BaogongRecordSaveReqVO createReqVO) { public CommonResult<Long> createBaogongRecord(@Valid @RequestBody BaogongRecordSaveReqVO createReqVO) {
PlanDO plan = planService.getPlan(createReqVO.getPlanId());
if (plan.getWangongNumber() == null) {
plan.setWangongNumber(0L);
}
if (plan.getPassNumber() == null) {
plan.setPassNumber(0L);
}
if (plan.getNoPassNumber() == null) {
plan.setNoPassNumber(0L);
}
plan.setWangongNumber(plan.getWangongNumber() + createReqVO.getNum() + createReqVO.getNoPassNum());
plan.setPassNumber(plan.getPassNumber() + createReqVO.getNum());
plan.setNoPassNumber(plan.getNoPassNumber() + createReqVO.getNoPassNum());
if (plan.getWangongNumber() <= 0) {
plan.setPassRate(BigDecimal.ZERO);
} else {
BigDecimal rate = new BigDecimal(plan.getPassNumber())
.divide(new BigDecimal(plan.getWangongNumber()), 4, RoundingMode.HALF_UP);
plan.setPassRate(rate.multiply(new BigDecimal("100")));
}
planService.updatePlan(BeanUtils.toBean(plan, PlanSaveReqVO.class));
return success(baogongRecordService.createBaogongRecord(createReqVO)); return success(baogongRecordService.createBaogongRecord(createReqVO));
} }

@ -32,4 +32,10 @@ public class BaogongRecordPageReqVO extends PageParam {
@Schema(description = "报工人", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "报工人", requiredMode = Schema.RequiredMode.REQUIRED)
private String creator; private String creator;
@Schema(description = "不合格数量")
private Long noPassNum;
@Schema(description = "原因")
private String remark;
} }

@ -20,8 +20,8 @@ public class BaogongRecordRespVO {
@ExcelProperty("关联计划id") @ExcelProperty("关联计划id")
private Long planId; private Long planId;
@Schema(description = "工数量") @Schema(description = "工数量")
@ExcelProperty("工数量") @ExcelProperty("工数量")
private Long num; private Long num;
@Schema(description = "派工时间") @Schema(description = "派工时间")
@ -35,4 +35,12 @@ public class BaogongRecordRespVO {
@Schema(description = "报工人", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "报工人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("报工人") @ExcelProperty("报工人")
private String creator; private String creator;
@Schema(description = "不合格数量")
@ExcelProperty("不合格数量")
private Long noPassNum;
@Schema(description = "原因")
@ExcelProperty("原因")
private String remark;
} }

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo; package cn.iocoder.yudao.module.mes.controller.admin.baogongrecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -24,4 +25,10 @@ public class BaogongRecordSaveReqVO {
@Schema(description = "派工时间") @Schema(description = "派工时间")
private LocalDateTime baogongTime; private LocalDateTime baogongTime;
@Schema(description = "不合格数量")
private Long noPassNum;
@Schema(description = "原因")
private String remark;
} }

@ -24,11 +24,17 @@ public class FeedingRecordDetailRespVO {
@ExcelProperty("记录") @ExcelProperty("记录")
private String recordCode; private String recordCode;
@Schema(description = "原料id", example = "19133") // @Schema(description = "原料id", example = "19133")
private Long itemId; // private Long itemId;
@Schema(description = "原料", example = "19133") // @Schema(description = "原料", example = "19133")
// @ExcelProperty("原料")
// private String itemName;
@Schema(description = "物料id", example = "19133")
private Long productId;
@Schema(description = "物料", example = "19133")
@ExcelProperty("原料") @ExcelProperty("原料")
private String itemName; private String productName;
@Schema(description = "重量") @Schema(description = "重量")
@ExcelProperty("重量") @ExcelProperty("重量")

@ -83,4 +83,16 @@ public class PlanPageReqVO extends PageParam {
@Schema(description = "是否完成质检") @Schema(description = "是否完成质检")
private BigDecimal isZj; private BigDecimal isZj;
@Schema(description = "完工数量")
private Long wangongNumber;
@Schema(description = "合格数量")
private Long passNumber;
@Schema(description = "不合格数量")
private Long noPassNumber;
@Schema(description = "合格率")
private BigDecimal passRate;
} }

@ -129,4 +129,20 @@ public class PlanRespVO {
@Schema(description = "是否完成质检") @Schema(description = "是否完成质检")
@ExcelProperty("是否完成质检") @ExcelProperty("是否完成质检")
private BigDecimal isZj; private BigDecimal isZj;
@Schema(description = "完工数量")
@ExcelProperty("完工数量")
private Long wangongNumber;
@Schema(description = "合格数量")
@ExcelProperty("合格数量")
private Long passNumber;
@Schema(description = "不合格数量")
@ExcelProperty("不合格数量")
private Long noPassNumber;
@Schema(description = "合格率")
@ExcelProperty("合格率")
private BigDecimal passRate;
} }

@ -83,4 +83,16 @@ public class PlanSaveReqVO {
@Schema(description = "是否完成质检") @Schema(description = "是否完成质检")
private BigDecimal isZj; private BigDecimal isZj;
@Schema(description = "完工数量")
private Long wangongNumber;
@Schema(description = "合格数量")
private Long passNumber;
@Schema(description = "不合格数量")
private Long noPassNumber;
@Schema(description = "合格率")
private BigDecimal passRate;
} }

@ -40,5 +40,14 @@ public class BaogongRecordDO extends BaseDO {
* *
*/ */
private LocalDateTime baogongTime; private LocalDateTime baogongTime;
/**
*
*/
private Long noPassNum;
/**
*
*/
private String remark;
} }

@ -53,5 +53,8 @@ public class FeedingRecordDetailDO extends BaseDO {
* *
*/ */
private LocalDateTime feedingTime; private LocalDateTime feedingTime;
/**
* id
*/
private Long productId;
} }

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -121,4 +122,23 @@ public class PlanDO extends BaseDO {
* *
*/ */
private Boolean isZj; private Boolean isZj;
/**
*
*/
private Long wangongNumber;
/**
*
*/
private Long passNumber;
/**
*
*/
private Long noPassNumber;
/**
*
*/
private BigDecimal passRate;
} }

@ -219,7 +219,7 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
return Collections.emptyList(); return Collections.emptyList();
} }
Map<Long, ErpProductDO> map = productService.getProductMap( Map<Long, ErpProductDO> map = productService.getProductMap(
convertSet(list, FeedingRecordDetailDO::getItemId)); convertSet(list, FeedingRecordDetailDO::getProductId));
Map<Long, ErpProductUnitDO> unitMap = productUnitService.getProductUnitMap( Map<Long, ErpProductUnitDO> unitMap = productUnitService.getProductUnitMap(
convertSet(list, FeedingRecordDetailDO::getUnitId)); convertSet(list, FeedingRecordDetailDO::getUnitId));
// 1.4 管理员信息 // 1.4 管理员信息
@ -227,8 +227,8 @@ public class FeedingRecordServiceImpl implements FeedingRecordService {
convertSet(list, FeedingRecordDetailDO::getUserId)); convertSet(list, FeedingRecordDetailDO::getUserId));
return BeanUtils.toBean(list, FeedingRecordDetailRespVO.class, item -> { return BeanUtils.toBean(list, FeedingRecordDetailRespVO.class, item -> {
MapUtils.findAndThen(map, item.getItemId(), MapUtils.findAndThen(map, item.getProductId(),
product -> item.setItemName(product.getName())); product -> item.setProductName(product.getName()));
MapUtils.findAndThen(unitMap, item.getUnitId(), MapUtils.findAndThen(unitMap, item.getUnitId(),
unit -> item.setUnitName(unit.getName())); unit -> item.setUnitName(unit.getName()));
MapUtils.findAndThen(userMap, item.getUserId(), MapUtils.findAndThen(userMap, item.getUserId(),

Loading…
Cancel
Save