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_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_PRODUCT_IS_EMPTY = new ErrorCode(1_006_007_014, "产品信息不存在!");
ErrorCode COMPLETE_HANDLE__IS_FAILED = 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_016, "产品信息不存在!");
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 ==========
ErrorCode HOLIDAY_CALENDAR_NOT_EXISTS=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;
import com.win.module.mes.controller.mesworkschedulingdetail.vo.*;
import com.win.module.mes.enums.WorkStatusEnum;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -122,4 +123,10 @@ public class MesWorkSchedulingDetailController {
public CommonResult<GetPeopleReportByOrderResVO> getPeopleReportList(@Valid GetPeopleReportByOrderReqVO 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 = "报工质检状态")
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;
//工单工作状态 、待开工、生产中、已完成、暂停
//工单的工序状态 工序流转
public enum WorkStatusEnum {
//工单模式
READY("0", "待开工"),
DOING("1", "生产中"),
PAUSE("2", "已暂停"),
//
WAITING("0", "待执行"),
FINISHED("1", "已完工"),
REPORTED("3", "已报工"),
//QUALITY("3", "质检中"),
ERROR("3", "异常"),
WARING("4", "告警"),
FINISHED("9", "已完成");
FORQUALITY("4", "待质检"),
COMPELLED("9", "已结束");
private final String code;
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", "已暂停"),
WAITREPORT("4", "待报工"),
WAITFCHECK("5", "待质检"),
FINISHED("9", "已完成");
FINISHED("6", "已完工"),
COMPLETED("9", "已完成");
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) {
MesWorkSchedulingDO item = new MesWorkSchedulingDO();
item.setFlagDo(WorkStatusEnum.READY.getCode());
item.setFlagDo(WorkingScheduleEnum.READYTODO.getCode());
//是否需要齐套检查 如果需要
item.setStatus(WAITBEGIN);
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);
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
*/
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.JSONObject;
import com.win.framework.common.exception.ErrorCode;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
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.mesworkscheduling.MesWorkSchedulingMapper;
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.util.StringUtils;
import com.win.module.wms.api.team.TeamServiceAPI;
import com.win.module.wms.api.team.dto.TeamDTO;
import org.apache.calcite.util.Util;
@ -34,6 +40,7 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@ -62,6 +69,7 @@ public class MesWorkSchedulingDetailServiceImpl implements MesWorkSchedulingDeta
private MesReportpStoreMapper reportpStoreMapper;
@Resource
private MesOrderDayBomMapper orderDayBomMapper;
@Override
public Long createWorkSchedulingDetail(MesWorkSchedulingDetailCreateReqVO createReqVO) {
// 插入
@ -247,4 +255,38 @@ public class MesWorkSchedulingDetailServiceImpl implements MesWorkSchedulingDeta
}));
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