update:
currTask列表修改
This commit is contained in:
부모
d49759efdf
커밋
d107699d2c
@ -266,7 +266,7 @@ public class CurrTaskController extends BaseController {
|
||||
}
|
||||
|
||||
@PostMapping(value = "currentTaskNow")
|
||||
@ApiOperation(value = "获取当前执行的任务 (车辆名称传id)")
|
||||
@ApiOperation(value = "获取当前执行的任务")
|
||||
public R<PageVo<CurrTaskQueryVo>> currentTask(@Validated @RequestBody CurrTaskQueryParam param) {
|
||||
return currTaskService.currentTaskPage(param);
|
||||
}
|
||||
@ -276,7 +276,11 @@ public class CurrTaskController extends BaseController {
|
||||
public R<List<CurrTaskInfoVo>> currentTaskInfo(@Validated @RequestBody CurrTaskQueryParam param) {
|
||||
return currTaskService.currentTaskInfoPage(param);
|
||||
}
|
||||
|
||||
@PostMapping(value = "updateCurrTaskStatus")
|
||||
@ApiOperation(value = "更新任务状态")
|
||||
public R<String> updateCurrTaskStatus(@Validated @RequestBody CurrTaskParam param){
|
||||
return currTaskService.updateCurrTaskStatus(param);
|
||||
}
|
||||
@PostMapping(value = "completeTask")
|
||||
@ApiOperation(value = "执行任务完成(仅wms,不通知apms)")
|
||||
public R<String> completeTask(@Validated @RequestBody IdParam param) {
|
||||
|
@ -7,6 +7,7 @@ import com.mt.wms.core.vo.IdVo;
|
||||
import com.mt.wms.core.vo.PageVo;
|
||||
import com.mt.wms.core.vo.R;
|
||||
import com.mt.wms.empty.params.AutoCurrTaskParam;
|
||||
import com.mt.wms.empty.params.CurrTaskParam;
|
||||
import com.mt.wms.empty.params.CurrTaskQueryParam;
|
||||
import com.mt.wms.empty.params.TaskCreateParam;
|
||||
import com.mt.wms.empty.vo.CurrTaskInfoVo;
|
||||
@ -73,6 +74,14 @@ public interface CurrTaskService {
|
||||
*/
|
||||
R<List<CurrTaskInfoVo>> currentTaskInfoPage(CurrTaskQueryParam param);
|
||||
|
||||
/**
|
||||
* 更新任务状态
|
||||
*
|
||||
* @param param 查询参数
|
||||
* @return 结果
|
||||
*/
|
||||
R<String> updateCurrTaskStatus(CurrTaskParam param);
|
||||
|
||||
/**
|
||||
* 完成执行任务 不会物理删除,会将删除值置为0,同时在历史表复制一份记录 方便在订单未完成时查询任务详情
|
||||
*
|
||||
|
@ -14,13 +14,12 @@ import com.mt.wms.core.vo.PageVo;
|
||||
import com.mt.wms.core.vo.R;
|
||||
import com.mt.wms.empty.controller.ApmsController;
|
||||
import com.mt.wms.empty.enums.TaskTypeEnum;
|
||||
import com.mt.wms.empty.params.AutoCurrTaskParam;
|
||||
import com.mt.wms.empty.params.CurrTaskQueryParam;
|
||||
import com.mt.wms.empty.params.TaskCreateParam;
|
||||
import com.mt.wms.empty.params.*;
|
||||
import com.mt.wms.empty.service.*;
|
||||
import com.mt.wms.empty.task.RunTaskUtils;
|
||||
import com.mt.wms.empty.task.TaskDistanceUtils;
|
||||
import com.mt.wms.empty.vo.*;
|
||||
import com.mt.wms.empty.websocket.WebSocketServer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@ -28,8 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -59,6 +60,8 @@ public class CurrTaskServiceImpl extends BaseService implements CurrTaskService
|
||||
|
||||
@Autowired
|
||||
ApmsController apmsControl;
|
||||
@Autowired
|
||||
WebSocketServer webSocketServer;
|
||||
|
||||
@Autowired
|
||||
OrderInfoServiceBiz orderInfoServiceBiz;
|
||||
@ -165,7 +168,7 @@ public class CurrTaskServiceImpl extends BaseService implements CurrTaskService
|
||||
List<CurrTaskVo> currTaskVos = com.mt.wms.core.utils.BeanUtils.copyList(currTasks, CurrTaskVo.class);
|
||||
currTaskInfoVo.setCurrTaskVoList(currTaskVos);
|
||||
String allStep="液压台";
|
||||
String nowStep="";
|
||||
String nowStep="未开始";
|
||||
for (CurrTask currTask1:currTasks
|
||||
) {
|
||||
if (currTask1.getStatus()==1){
|
||||
@ -198,7 +201,80 @@ public class CurrTaskServiceImpl extends BaseService implements CurrTaskService
|
||||
return successful(list);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public R<String> updateCurrTaskStatus(CurrTaskParam param) {
|
||||
CurrTask currTask = currTaskServiceBiz.getById(param.getId());
|
||||
Integer status = param.getStatus();
|
||||
//修改为加工中,多步骤任务修改为加工中,查询缓存区,查询前置任务状态,并修改
|
||||
if (status==1){
|
||||
InStockInfo inStockInfo = inStockInfoServiceBiz.getOne(new QueryWrapper<InStockInfo>().eq(InStockInfo.TASK_ID, currTask.getId()));
|
||||
if (inStockInfo!=null){
|
||||
//更新库位状态为未占用
|
||||
Location location = locationServiceBiz.getById(inStockInfo.getLocationId());
|
||||
location.setStatus(0);
|
||||
locationServiceBiz.updateById(location);
|
||||
//删除库位缓存
|
||||
inStockInfoServiceBiz.removeById(inStockInfo);
|
||||
}
|
||||
if (currTask.getIsAuto()==1){
|
||||
AutoExeTask autoExeTask = autoExeTaskServiceBiz.getById(currTask.getAutoExeTaskId());
|
||||
if (currTask.getId().equals(autoExeTask.getFTaskId())){
|
||||
//该任务为自动任务第一条,是否有sheetNo,若无上报apms
|
||||
if (currTask.getSheetNo()==null){
|
||||
try {
|
||||
apmsCreateProcess(currTask);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (currTask.getId().equals(autoExeTask.getTTaskId())){
|
||||
//该任务为自动任务第二条,修改自动任务第一条的状态
|
||||
CurrTask currTask1 = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
|
||||
currTask1.setStatus(2);
|
||||
currTask1.setIsIn(2);
|
||||
//99代表该条记录手动修改过
|
||||
currTask1.setCreatorId(99);
|
||||
currTaskServiceBiz.updateById(currTask1);
|
||||
}else if (currTask.getId().equals(autoExeTask.getThTaskId())){
|
||||
//该任务为自动任务第三条,修改自动任务第二条的状态
|
||||
CurrTask currTask2 = currTaskServiceBiz.getById(autoExeTask.getFTaskId());
|
||||
currTask2.setStatus(2);
|
||||
currTask2.setIsIn(2);
|
||||
//99代表该条记录手动修改过
|
||||
currTask2.setCreatorId(99);
|
||||
currTaskServiceBiz.updateById(currTask2);
|
||||
}
|
||||
}
|
||||
currTask.setStatus(1);
|
||||
currTask.setCreatorId(99);
|
||||
currTask.setBeginTime(LocalDateTime.now());
|
||||
currTaskServiceBiz.updateById(currTask);
|
||||
return successful("修改任务状态为加工中成功");
|
||||
}
|
||||
//修改为加工完成,查询缓存,并修改
|
||||
if (status==2){
|
||||
InStockInfo inStockInfo = inStockInfoServiceBiz.getOne(new QueryWrapper<InStockInfo>().eq(InStockInfo.TASK_ID, currTask.getId()));
|
||||
if (inStockInfo!=null){
|
||||
//更新库位状态为未占用
|
||||
Location location = locationServiceBiz.getById(inStockInfo.getLocationId());
|
||||
location.setStatus(0);
|
||||
locationServiceBiz.updateById(location);
|
||||
//删除库位缓存
|
||||
inStockInfoServiceBiz.removeById(inStockInfo);
|
||||
}
|
||||
currTask.setStatus(1);
|
||||
currTask.setCreatorId(99);
|
||||
currTask.setBeginTime(LocalDateTime.now());
|
||||
currTaskServiceBiz.updateById(currTask);
|
||||
return successful("修改任务状态为加工完成成功");
|
||||
}
|
||||
currTask.setStatus(status);
|
||||
currTask.setCreatorId(99);
|
||||
currTask.setBeginTime(LocalDateTime.now());
|
||||
currTaskServiceBiz.updateById(currTask);
|
||||
return successful("修改任务状态为未加工成功");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@ -408,4 +484,57 @@ public class CurrTaskServiceImpl extends BaseService implements CurrTaskService
|
||||
inStockInfoServiceBiz.updateById(inStockInfo);
|
||||
return R.ok("当前任务置顶成功","");
|
||||
}
|
||||
/**
|
||||
* 上报apms创建生产单并开始处理
|
||||
*
|
||||
* @param currTask 任务
|
||||
* @return 成功与否
|
||||
* @throws IOException
|
||||
*/
|
||||
private Boolean apmsCreateProcess(CurrTask currTask) throws IOException {
|
||||
List<CurrTaskDet> currTaskDetList = currTaskDetServiceBiz.list(new QueryWrapper<CurrTaskDet>().eq(CurrTaskDet.CURR_TASK_ID, currTask.getId()));
|
||||
String code = kilnInfoServiceBiz.getById(currTask.getKilnId()).getCode();
|
||||
//通知apms创建一个生产单
|
||||
ApmsCreateProcessSheet apmsCreateSheet = new ApmsCreateProcessSheet();
|
||||
apmsCreateSheet.setWorkShopCode("BM");
|
||||
apmsCreateSheet.setStartTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||
apmsCreateSheet.setTechCode(currTask.getCraftCodeId().toString());
|
||||
//fixme 暂时没有正式user,使用测试账户
|
||||
apmsCreateSheet.setStartUser("QJJP03");
|
||||
ArrayList<CreateItem> createItems = new ArrayList<>();
|
||||
currTaskDetList.forEach(e -> {
|
||||
CreateItem createItem = new CreateItem();
|
||||
createItem.setItemCode(e.getIdenCardNum());
|
||||
createItem.setQuantity(e.getQuantity().intValue());
|
||||
createItem.setWeight(e.getWeight().doubleValue());
|
||||
createItems.add(createItem);
|
||||
});
|
||||
apmsCreateSheet.setStoveCode(code);
|
||||
apmsCreateSheet.setItems(createItems);
|
||||
logger.info(currTask.getId() + "开始创建apms生产单号");
|
||||
R<ApmsCreateProcessSheetVo> processSheet = apmsControl.createProcessSheet(apmsCreateSheet);
|
||||
if (!processSheet.getData().getSuccess()) {
|
||||
logger.info(currTask.getId() + "创建失败,APMS报错:" + processSheet.getData().getMsg());
|
||||
webSocketServer.sendtoUser("创建失败,APMS报错:" + processSheet.getData().getMsg(), "1");
|
||||
return false;
|
||||
} else {
|
||||
logger.info(currTask.getId() + "创建apms生产单号成功");
|
||||
currTask.setSheetNo(processSheet.getData().getSheetNo());
|
||||
currTaskServiceBiz.updateById(currTask);
|
||||
//多步骤任务除了第一步写入sheetNo
|
||||
if (currTask.getIsAuto()==1){
|
||||
AutoExeTask autoExeTask = autoExeTaskServiceBiz.getById(currTask.getAutoExeTaskId());
|
||||
CurrTask secondCurrTask = currTaskServiceBiz.getById(autoExeTask.getTTaskId());
|
||||
secondCurrTask.setSheetNo(currTask.getSheetNo());
|
||||
currTaskServiceBiz.updateById(secondCurrTask);
|
||||
//三步任务
|
||||
if (autoExeTask.getProcessFlowType()==2){
|
||||
CurrTask threeCurrTask = currTaskServiceBiz.getById(autoExeTask.getThTaskId());
|
||||
threeCurrTask.setSheetNo(currTask.getSheetNo());
|
||||
currTaskServiceBiz.updateById(threeCurrTask);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
불러오는 중...
Reference in New Issue
Block a user