@@ -6,14 +6,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mt.wms.core.base.BaseService ;
import com.mt.wms.core.dal.entity.* ;
import com.mt.wms.core.dal.service.* ;
import com.mt.wms.core.utils.CodeGeneratorHelper ;
import com.mt.wms.core.utils.HttpClient ;
import com.mt.wms.core.utils.IDGenerator ;
import com.mt.wms.core.vo.R ;
import com.mt.wms.empty.controller.ApmsController ;
import com.mt.wms.empty.params.ApmsEndProcess ;
import com.mt.wms.empty.params.ApmsFinish ProcessSheet ;
import com.mt.wms.empty.params.ApmsStartProcess ;
import com.mt.wms.empty.params.FinishItem ;
import com.mt.wms.empty.params.* ;
import com.mt.wms.empty.vo.ApmsCreate ProcessSheetVo ;
import com.mt.wms.empty.vo.ApmsEndProcessVo ;
import com.mt.wms.empty.vo.ApmsFinishProcessSheetVo ;
import com.mt.wms.empty.websocket.WebSocketServer ;
@@ -32,6 +31,7 @@ import java.io.IOException;
import java.math.BigDecimal ;
import java.time.LocalDate ;
import java.time.LocalDateTime ;
import java.time.format.DateTimeFormatter ;
import java.util.* ;
import java.util.concurrent.TimeUnit ;
@@ -86,6 +86,7 @@ public class AsynRunTaskService extends BaseService {
public void asynRunTask ( Long currTaskId , Long vehicleId ) throws IOException {
CurrTask currTask = currTaskServiceBiz . getById ( currTaskId ) ;
VehicleInfo vehicle = vehicleInfoServiceBiz . getById ( vehicleId ) ;
List < CurrTaskDet > currTaskDetList = currTaskDetServiceBiz . list ( new QueryWrapper < CurrTaskDet > ( ) . eq ( CurrTaskDet . CURR_TASK_ID , currTask ) ) ;
//检查车辆是否冲突,冲突则避让
rgvStatus ( vehicleId , currTask ) ;
//新建一条执行任务的关系表存放任务执行信息
@@ -97,6 +98,28 @@ public class AsynRunTaskService extends BaseService {
runTask . setEndPosition ( currTask . getTargetPosition ( ) ) ;
runTask . setBeginTime ( LocalDateTime . now ( ) ) ;
runTaskServiceBiz . save ( runTask ) ;
//通知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 ( CodeGeneratorHelper . getStoveCode ( currTask . getKilnName ( ) + String . format ( " %02d " , currTask . getCraftCodeId ( ) ) ) ) ;
apmsCreateSheet . setItems ( createItems ) ;
R < ApmsCreateProcessSheetVo > processSheet = apmsController . createProcessSheet ( apmsCreateSheet ) ;
if ( ! processSheet . getData ( ) . getSuccess ( ) ) {
logger . info ( currTaskId + " 创建失败, APMS报错: " + processSheet . getData ( ) . getMsg ( ) ) ;
webSocketServer . sendtoUser ( " 创建失败, APMS报错: " + processSheet . getData ( ) . getMsg ( ) , " 1 " ) ;
}
//调用车辆填入起终点,得到车辆执行结果
Long startPoint = pointInfoServiceBiz . getOne ( new QueryWrapper < PointInfo > ( ) . eq ( PointInfo . NOTE , runTask . getStartPosition ( ) ) ) . getCode ( ) ;
Long endPoint = pointInfoServiceBiz . getOne ( new QueryWrapper < PointInfo > ( ) . eq ( PointInfo . NOTE , runTask . getEndPosition ( ) ) ) . getCode ( ) ;