Browse Source

2024-05-09 工单工序状态,工单

master_hella_20240701
zhousq 1 year ago
parent
commit
623f1ec48c
  1. 8
      win-module-mes/win-module-mes-api/src/main/java/com/win/module/mes/enums/ErrorCodeConstants.java
  2. 7
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/mesworkschedulingdetail/MesWorkSchedulingDetailController.java
  3. 2
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/mesworkschedulingdetail/vo/MesWorkSchedulingDetailBaseVO.java
  4. 15
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/enums/WorkStatusEnum.java
  5. 3
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/enums/WorkingScheduleEnum.java
  6. 2
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesorderday/MesOrderDayServiceImpl.java
  7. 1
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesworkscheduling/MesWorkSchedulingService.java
  8. 1
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesworkschedulingdetail/MesWorkSchedulingDetailService.java
  9. 42
      win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesworkschedulingdetail/MesWorkSchedulingDetailServiceImpl.java

8
win-module-mes/win-module-mes-api/src/main/java/com/win/module/mes/enums/ErrorCodeConstants.java

@ -159,10 +159,10 @@ public interface ErrorCodeConstants {
ErrorCode REPORTFINISH_STORE_NOT_EXISTS = new ErrorCode(1_006_007_013, "完工库存中间不存在!"); ErrorCode REPORTFINISH_STORE_NOT_EXISTS = new ErrorCode(1_006_007_013, "完工库存中间不存在!");
ErrorCode REPORTFINISH_STORE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_006_007_014, "完工库存中间表导入的数据不能为空!"); ErrorCode REPORTFINISH_STORE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_006_007_014, "完工库存中间表导入的数据不能为空!");
ErrorCode COMPLETE_HANDLE_PROCESS_NOT_END = new ErrorCode(1_006_007_014, "当前工序不是最后工序!"); ErrorCode COMPLETE_HANDLE_PROCESS_NOT_END = new ErrorCode(1_006_007_015, "当前工序不是最后工序!");
ErrorCode COMPLETE_HANDLE_PRODUCT_IS_EMPTY = new ErrorCode(1_006_007_014, "产品信息不存在!"); ErrorCode COMPLETE_HANDLE_PRODUCT_IS_EMPTY = new ErrorCode(1_006_007_016, "产品信息不存在!");
ErrorCode COMPLETE_HANDLE__IS_FAILED = new ErrorCode(1_006_007_014, "产品信息不存在!"); ErrorCode COMPLETE_HANDLE__IS_FAILED = new ErrorCode(1_006_007_017, "产品信息不存在!");
ErrorCode HAVING_UNFINISHED_PRE_TASK = new ErrorCode(1_006_007_018, "有未完成的前置工序任务!");
//========== 工作日历2-001-000-000 ========== //========== 工作日历2-001-000-000 ==========
ErrorCode HOLIDAY_CALENDAR_NOT_EXISTS=new ErrorCode(1_006_006_001, "节假日信息不存在!"); ErrorCode HOLIDAY_CALENDAR_NOT_EXISTS=new ErrorCode(1_006_006_001, "节假日信息不存在!");
ErrorCode HOLIDAY_CALENDAR_IMPORT_LIST_IS_EMPTY=new ErrorCode(1_006_006_001, "节假日导入的数据不存在!"); ErrorCode HOLIDAY_CALENDAR_IMPORT_LIST_IS_EMPTY=new ErrorCode(1_006_006_001, "节假日导入的数据不存在!");

7
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/mesworkschedulingdetail/MesWorkSchedulingDetailController.java

@ -1,6 +1,7 @@
package com.win.module.mes.controller.mesworkschedulingdetail; package com.win.module.mes.controller.mesworkschedulingdetail;
import com.win.module.mes.controller.mesworkschedulingdetail.vo.*; import com.win.module.mes.controller.mesworkschedulingdetail.vo.*;
import com.win.module.mes.enums.WorkStatusEnum;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -122,4 +123,10 @@ public class MesWorkSchedulingDetailController {
public CommonResult<GetPeopleReportByOrderResVO> getPeopleReportList(@Valid GetPeopleReportByOrderReqVO req) { public CommonResult<GetPeopleReportByOrderResVO> getPeopleReportList(@Valid GetPeopleReportByOrderReqVO req) {
return success(workSchedulingDetailService.getPeopleReportList(req)); return success(workSchedulingDetailService.getPeopleReportList(req));
} }
@GetMapping("/processFinished")
@Operation(summary = "工序完工")
//@PreAuthorize("@ss.hasPermission('mes:workSchedulingDetail:update')")
public CommonResult<Integer> processFinished(@Valid @RequestParam("id") Long id) {
return success( workSchedulingDetailService.processFinished(id));
}
} }

2
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/controller/mesworkschedulingdetail/vo/MesWorkSchedulingDetailBaseVO.java

@ -68,5 +68,7 @@ public class MesWorkSchedulingDetailBaseVO {
@Schema(description = "报工质检状态") @Schema(description = "报工质检状态")
private String qaStatus; private String qaStatus;
@Schema(description = "工序状态")
private String status;
} }

15
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/enums/WorkStatusEnum.java

@ -1,14 +1,13 @@
package com.win.module.mes.enums; package com.win.module.mes.enums;
//工单工作状态 、待开工、生产中、已完成、暂停 //工单的工序状态 工序流转
public enum WorkStatusEnum { public enum WorkStatusEnum {
//工单模式 //
READY("0", "待开工"), WAITING("0", "待执行"),
DOING("1", "生产中"), FINISHED("1", "已完工"),
PAUSE("2", "已暂停"), REPORTED("3", "已报工"),
//QUALITY("3", "质检中"), //QUALITY("3", "质检中"),
ERROR("3", "异常"), FORQUALITY("4", "待质检"),
WARING("4", "告警"), COMPELLED("9", "已结束");
FINISHED("9", "已完成");
private final String code; private final String code;
private final String value; private final String value;

3
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/enums/WorkingScheduleEnum.java

@ -12,7 +12,8 @@ public enum WorkingScheduleEnum {
PAUSE("3", "已暂停"), PAUSE("3", "已暂停"),
WAITREPORT("4", "待报工"), WAITREPORT("4", "待报工"),
WAITFCHECK("5", "待质检"), WAITFCHECK("5", "待质检"),
FINISHED("9", "已完成"); FINISHED("6", "已完工"),
COMPLETED("9", "已完成");
private final String code; private final String code;

2
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesorderday/MesOrderDayServiceImpl.java

@ -430,7 +430,7 @@ public class MesOrderDayServiceImpl implements MesOrderDayService {
/**获取基本的工单信息对象*/ /**获取基本的工单信息对象*/
private MesWorkSchedulingDO getBaseMesWorkSchedulingDO(MesOrderDayCreateReqVO createReqVO) { private MesWorkSchedulingDO getBaseMesWorkSchedulingDO(MesOrderDayCreateReqVO createReqVO) {
MesWorkSchedulingDO item = new MesWorkSchedulingDO(); MesWorkSchedulingDO item = new MesWorkSchedulingDO();
item.setFlagDo(WorkStatusEnum.READY.getCode()); item.setFlagDo(WorkingScheduleEnum.READYTODO.getCode());
//是否需要齐套检查 如果需要 //是否需要齐套检查 如果需要
item.setStatus(WAITBEGIN); item.setStatus(WAITBEGIN);
item.setFinishCount(0); item.setFinishCount(0);

1
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesworkscheduling/MesWorkSchedulingService.java

@ -97,4 +97,5 @@ public interface MesWorkSchedulingService {
Boolean exisitWorkScheduling(MesOrderDayCreateReqVO reqVO); Boolean exisitWorkScheduling(MesOrderDayCreateReqVO reqVO);
Integer completeHandle(MesWorkSchedulingUpdateReqVO VO); Integer completeHandle(MesWorkSchedulingUpdateReqVO VO);
} }

1
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesworkschedulingdetail/MesWorkSchedulingDetailService.java

@ -87,4 +87,5 @@ public interface MesWorkSchedulingDetailService {
* @return * @return
*/ */
GetPeopleReportByOrderResVO getPeopleReportList(GetPeopleReportByOrderReqVO req); GetPeopleReportByOrderResVO getPeopleReportList(GetPeopleReportByOrderReqVO req);
Integer processFinished(Long id);
} }

42
win-module-mes/win-module-mes-biz/src/main/java/com/win/module/mes/service/mesworkschedulingdetail/MesWorkSchedulingDetailServiceImpl.java

@ -2,6 +2,7 @@ package com.win.module.mes.service.mesworkschedulingdetail;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.win.framework.common.exception.ErrorCode;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
@ -17,7 +18,12 @@ import com.win.module.mes.dal.mysql.mesorderdaybom.MesOrderDayBomMapper;
import com.win.module.mes.dal.mysql.mesreportpstore.MesReportpStoreMapper; import com.win.module.mes.dal.mysql.mesreportpstore.MesReportpStoreMapper;
import com.win.module.mes.dal.mysql.mesworkscheduling.MesWorkSchedulingMapper; import com.win.module.mes.dal.mysql.mesworkscheduling.MesWorkSchedulingMapper;
import com.win.module.mes.dal.mysql.mesworkschedulingdetail.MesWorkSchedulingDetailMapper; import com.win.module.mes.dal.mysql.mesworkschedulingdetail.MesWorkSchedulingDetailMapper;
import com.win.module.mes.enums.ErrorCodeConstants;
import com.win.module.mes.enums.WorkStatusEnum;
import com.win.module.mes.enums.WorkingScheduleEnum;
import com.win.module.mes.service.mesorderdayworker.MesOrderDayWorkerService;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.util.StringUtils;
import com.win.module.wms.api.team.TeamServiceAPI; import com.win.module.wms.api.team.TeamServiceAPI;
import com.win.module.wms.api.team.dto.TeamDTO; import com.win.module.wms.api.team.dto.TeamDTO;
import org.apache.calcite.util.Util; import org.apache.calcite.util.Util;
@ -34,6 +40,7 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@ -62,6 +69,7 @@ public class MesWorkSchedulingDetailServiceImpl implements MesWorkSchedulingDeta
private MesReportpStoreMapper reportpStoreMapper; private MesReportpStoreMapper reportpStoreMapper;
@Resource @Resource
private MesOrderDayBomMapper orderDayBomMapper; private MesOrderDayBomMapper orderDayBomMapper;
@Override @Override
public Long createWorkSchedulingDetail(MesWorkSchedulingDetailCreateReqVO createReqVO) { public Long createWorkSchedulingDetail(MesWorkSchedulingDetailCreateReqVO createReqVO) {
// 插入 // 插入
@ -247,4 +255,38 @@ public class MesWorkSchedulingDetailServiceImpl implements MesWorkSchedulingDeta
})); }));
return result; return result;
} }
@Override
@Transactional
public Integer processFinished(Long id){
//更新工序状态
//updateReqVO.setStatus(WorkStatusEnum.FINISHED.getCode());
MesWorkSchedulingDetailDO detailDO = workSchedulingDetailMapper.selectById(id);
String nextNodeCode = detailDO.getNextNodeCode();
MesWorkSchedulingDO mesWorkSchedulingDO = workSchedulingMapper.selectOne("scheduling_code", detailDO.getSchedulingCode(), "plan_master_code", detailDO.getPlanNoDay());
if("endNode".equalsIgnoreCase(nextNodeCode)){
//检验其他工单是否也完成
List<MesWorkSchedulingDetailDO> scheduling_code = workSchedulingDetailMapper.selectList("scheduling_code", detailDO.getSchedulingCode());
String code=detailDO.getNodeCode();
Optional<MesWorkSchedulingDetailDO> any = scheduling_code.stream().filter(item -> item.getStatus().equals(WorkStatusEnum.WAITING.getCode())&& !item.getNodeCode().equals(code)).findAny();
if(!any.isEmpty() ){
throw exception(ErrorCodeConstants.HAVING_UNFINISHED_PRE_TASK);
}
mesWorkSchedulingDO.setStatus(WorkingScheduleEnum.FINISHED.getCode());
}else{
MesWorkSchedulingDetailDO detailDOpre = workSchedulingDetailMapper.selectOne("scheduling_code", detailDO.getSchedulingCode(), "node_code", detailDO.getPreNodeCode());
if(StringUtils.isNotNull(detailDOpre) && detailDOpre.getStatus().equals(WorkStatusEnum.WAITING.getCode())){
throw exception(ErrorCodeConstants.HAVING_UNFINISHED_PRE_TASK);
}
}
mesWorkSchedulingDO.setWorkingNode(nextNodeCode);
mesWorkSchedulingDO.setWorkSort(detailDO.getTaskSort());
detailDO.setStatus(WorkStatusEnum.FINISHED.getCode());
//更新工单的工序
int ret = workSchedulingDetailMapper.updateById(detailDO);
ret=ret+workSchedulingMapper.updateById(mesWorkSchedulingDO);
return ret;
}
} }

Loading…
Cancel
Save