fix org and machine

plp
chenshuichuan 2 years ago
parent e2ae5e8f49
commit 46464ae58a

@ -14,6 +14,8 @@ public class MachineComponentListReqVO {
@Schema(description = "装备名称", example = "芋艿")
private String name;
@Schema(description = "编码", example = "1")
private String code;
@Schema(description = "父id", example = "24628")
private Long parentId;

@ -17,6 +17,9 @@ public class MachineComponentRespVO {
@Schema(description = "装备id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12527")
@ExcelProperty("装备id")
private Long id;
@Schema(description = "编码", example = "1")
@ExcelProperty("编码")
private String code;
@Schema(description = "装备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@ExcelProperty("装备名称")

@ -13,7 +13,8 @@ public class MachineComponentSaveReqVO {
@Schema(description = "装备id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12527")
private Long id;
@Schema(description = "编码", example = "1")
private String code;
@Schema(description = "装备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@NotEmpty(message = "装备名称不能为空")
private String name;
@ -27,7 +28,6 @@ public class MachineComponentSaveReqVO {
private Integer sort;
@Schema(description = "组织机台ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13753")
@NotNull(message = "组织机台ID不能为空")
private Long orgId;
@Schema(description = "装备SN号")

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.mes.controller.admin.machine.vo;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.ArrayList;
import java.util.List;
@Getter
@AllArgsConstructor
public enum MachineStatusEnum {
(1),
(2),
(3),
(4),
(5);
private final Integer value;
// 一个可选的方法,用于根据整数值获取对应的枚举实例
public static MachineStatusEnum fromValue(int value) {
for (MachineStatusEnum status : MachineStatusEnum.values()) {
if (status.getValue() == value) {
return status;
}
}
throw new IllegalArgumentException("Unknown value: " + value);
}
//返回能状态
public static List<Integer> getEnableStatus(){
List<Integer> statusList = new ArrayList<>();
return statusList;
}
}

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.mes.controller.admin.machine.vo;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum MachineTypeEnum {
线(1),
(2),
(3);
private final Integer value;
// 一个可选的方法,用于根据整数值获取对应的枚举实例
public static MachineTypeEnum fromValue(int value) {
for (MachineTypeEnum status : MachineTypeEnum.values()) {
if (status.getValue() == value) {
return status;
}
}
throw new IllegalArgumentException("Unknown value: " + value);
}
}

@ -0,0 +1,29 @@
package cn.iocoder.yudao.module.mes.controller.admin.organization.vo;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum OrgClassEnum {
("factory"),
("workshop"),
线("pipeline"),
("process"),
("workplace"),;
private final String value;
// 一个可选的方法,用于根据整数值获取对应的枚举实例
public static OrgClassEnum fromValue(String value) {
for (OrgClassEnum status : OrgClassEnum.values()) {
if (status.getValue() .equals(value)) {
return status;
}
}
throw new IllegalArgumentException("Unknown value: " + value);
}
}

@ -14,7 +14,8 @@ public class OrganizationListReqVO {
@Schema(description = "组织名称", example = "赵六")
private String name;
@Schema(description = "编码", example = "1")
private String code;
@Schema(description = "父组织id", example = "9482")
private Long parentId;

@ -17,7 +17,8 @@ public class OrganizationRespVO {
@Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9560")
@ExcelProperty("组织id")
private Long id;
@Schema(description = "编码", example = "1")
private String code;
@Schema(description = "组织名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@ExcelProperty("组织名称")
private String name;

@ -12,7 +12,8 @@ public class OrganizationSaveReqVO {
@Schema(description = "组织id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9560")
private Long id;
@Schema(description = "编码", example = "1")
private String code;
@Schema(description = "组织名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotEmpty(message = "组织名称不能为空")
private String name;

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.mes.controller.admin.organization.vo;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum ProcessTypeEnum {
("zhijiang"),
("chengxing"),
("honggan"),
("zhuanyi"),
湿("jiashi"),
("reya"),
("qiebian"),
("pinjian"),
("dabao"),
("tiebiao"),
("sufeng");
private final String value;
// 一个可选的方法,用于根据整数值获取对应的枚举实例
public static OrgClassEnum fromValue(String value) {
for (OrgClassEnum status : OrgClassEnum.values()) {
if (status.getValue() .equals(value)) {
return status;
}
}
throw new IllegalArgumentException("Unknown value: " + value);
}
}

@ -89,4 +89,10 @@ public class PlanRespVO {
@Schema(description = "制浆线")
@ExcelProperty("制浆线")
private String feedingPipeline;
/**
* ID
*/
@Schema(description = "派工单ID")
private Long requisitionId;
}

@ -30,6 +30,9 @@ public class MachineComponentDO extends BaseDO {
*/
@TableId
private Long id;
//@ExcelProperty("编码")
private String code;
/**
*
*/

@ -28,6 +28,8 @@ public class OrganizationDO extends BaseDO {
*/
@TableId
private Long id;
//@Schema(description = "编码", example = "1")
private String code;
/**
*
*/

@ -90,5 +90,8 @@ public class PlanDO extends BaseDO {
private Boolean isEnable;
//@Schema(description = "制浆线")
private String feedingPipeline;
/**
* ID
*/
private Long requisitionId;
}

@ -42,5 +42,7 @@ public interface MachineComponentMapper extends BaseMapperX<MachineComponentDO>
default Long selectCountByParentId(Long parentId) {
return selectCount(MachineComponentDO::getParentId, parentId);
}
default MachineComponentDO selectByNo(String no) {
return selectOne(MachineComponentDO::getCode, no);
}
}

@ -40,5 +40,7 @@ public interface OrganizationMapper extends BaseMapperX<OrganizationDO> {
default Long selectCountByParentId(Long parentId) {
return selectCount(OrganizationDO::getParentId, parentId);
}
default OrganizationDO selectByNo(String no) {
return selectOne(OrganizationDO::getCode, no);
}
}

@ -46,7 +46,18 @@ public class MesNoRedisDAO {
*
*/
public static final String FEEDING_RECORD_CODE_PREFIX = "TL-";
/**
* 线
*/
public static final String ORG_WORKPLACE = "GW-";
/**
*
*/
public static final String ORG_MACHINE = "MA-";
/**
*
*/
public static final String ORG_COMPONENT = "COM-";
@Resource
private StringRedisTemplate stringRedisTemplate;

@ -3,8 +3,11 @@ package cn.iocoder.yudao.module.mes.service.machine;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.controller.admin.machine.vo.MachineComponentListReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.machine.vo.MachineComponentSaveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.machine.vo.MachineTypeEnum;
import cn.iocoder.yudao.module.mes.dal.dataobject.machine.MachineComponentDO;
import cn.iocoder.yudao.module.mes.dal.mysql.machine.MachineComponentMapper;
import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -13,6 +16,7 @@ import java.util.List;
import java.util.Objects;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.PURCHASE_ORDER_NO_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
@ -26,7 +30,8 @@ public class MachineComponentServiceImpl implements MachineComponentService {
@Resource
private MachineComponentMapper machineComponentMapper;
@Resource
private MesNoRedisDAO noRedisDAO;
@Override
public Long createMachineComponent(MachineComponentSaveReqVO createReqVO) {
// 校验父id的有效性
@ -36,6 +41,20 @@ public class MachineComponentServiceImpl implements MachineComponentService {
// 插入
MachineComponentDO machineComponent = BeanUtils.toBean(createReqVO, MachineComponentDO.class);
if (StringUtils.isEmpty(machineComponent.getCode())) {
// 1.4 编码,并校验唯一性
String no = null;
if(machineComponent.getComponentType().equals(MachineTypeEnum..getValue()))
no = noRedisDAO.generate2(MesNoRedisDAO.ORG_MACHINE);
if(machineComponent.getComponentType().equals(MachineTypeEnum..getValue()))
no = noRedisDAO.generate2(MesNoRedisDAO.ORG_COMPONENT);
if(StringUtils.isNotEmpty(no)){
if (machineComponentMapper.selectByNo(no) != null) {
throw exception(PURCHASE_ORDER_NO_EXISTS);
}
machineComponent.setCode(no);
}
}
machineComponentMapper.insert(machineComponent);
// 返回
return machineComponent.getId();

@ -1,10 +1,13 @@
package cn.iocoder.yudao.module.mes.service.organization;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
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.OrganizationSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
import cn.iocoder.yudao.module.mes.dal.mysql.organization.OrganizationMapper;
import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -13,6 +16,7 @@ import java.util.List;
import java.util.Objects;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.PURCHASE_ORDER_NO_EXISTS;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
@ -26,16 +30,27 @@ public class OrganizationServiceImpl implements OrganizationService {
@Resource
private OrganizationMapper organizationMapper;
@Resource
private MesNoRedisDAO noRedisDAO;
@Override
public Long createOrganization(OrganizationSaveReqVO createReqVO) {
// 校验父组织id的有效性
validateParentOrganization(null, createReqVO.getParentId());
// 校验组织名称的唯一性
validateOrganizationNameUnique(null, createReqVO.getParentId(), createReqVO.getName());
// 插入
OrganizationDO organization = BeanUtils.toBean(createReqVO, OrganizationDO.class);
if (StringUtils.isEmpty(organization.getCode())) {
// 1.4 编码,并校验唯一性
String no = null;
if(organization.getOrgClass().equals(OrgClassEnum..getValue())){
no = noRedisDAO.generate2(MesNoRedisDAO.ORG_WORKPLACE);
if (organizationMapper.selectByNo(no) != null) {
throw exception(PURCHASE_ORDER_NO_EXISTS);
}
organization.setCode(no);
}
}
organizationMapper.insert(organization);
// 返回
return organization.getId();

@ -178,13 +178,14 @@ public class PlanServiceImpl implements PlanService {
saveReqVO.setStatus(ItemRequisitionStatusEnum..getValue());
if (saveReqVO.getRequisitionDate() == null)
saveReqVO.setRequisitionDate(LocalDateTime.now());
itemRequisitionService.createItemRequisition(saveReqVO);
Long id = itemRequisitionService.createItemRequisition(saveReqVO);
//更新计划状态
planDO.setStatus(PlanStatusEnum..getValue());
planDO.setIsEnable(true);
planDO.setProductionManagerId(saveReqVO.getWorkerId());
planDO.setFeedingPipeline(saveReqVO.getFeedingPipeline());
planDO.setStartTime(LocalDateTime.now());
planDO.setRequisitionId(id);
planMapper.updateById(planDO);
return true;
}

@ -245,6 +245,11 @@ public class TaskServiceImpl implements TaskService {
List<ViewTaskProductSummary> summaryList = summaryMapper.selectListByTaskId(taskId);
Map<Long, List<PlanDO>> planMap = new HashMap<>();
for (ViewTaskProductSummary summary : summaryList) {
if(summary.getPlanNumber()==null)
summary.setPlanNumber(0L);
if(summary.getTotalNumber()==null)
summary.setTotalNumber(0L);
Long unplanNumber = summary.getTotalNumber() - summary.getPlanNumber();
unplanNumber = unplanNumber > 0 ? unplanNumber : 0;
List<PlanDO> planDOList = generatePlan2(taskId, summary.getProductId(), unplanNumber, productsOfPlan);

Loading…
Cancel
Save