@@ -49,10 +49,7 @@ import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.constant.GeneralDefinition ;
import org.nl.wms.sch.task_manage.constant.ExceptionConstant ;
import org.nl.wms.sch.task_manage.constant.RequestConstant ;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum ;
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum ;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum ;
import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum ;
import org.nl.wms.sch.task_manage.enums.* ;
import org.nl.wms.sch.task_manage.task.TaskFactory ;
import org.nl.wms.sch.task_manage.task.core.TaskStatus ;
import org.nl.wms.sch.task_manage.task.tasks.fj.FJQLTask ;
@@ -70,12 +67,10 @@ import javax.annotation.PostConstruct;
import java.lang.reflect.InvocationTargetException ;
import java.lang.reflect.Method ;
import java.math.BigDecimal ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.Map ;
import java.util.Objects ;
import java.util.* ;
import java.util.concurrent.ConcurrentHashMap ;
import java.util.concurrent.TimeUnit ;
import java.util.stream.Collectors ;
/**
* @Author: lyd
@@ -489,29 +484,27 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if ( baseRequest . getVehicle_code ( ) = = null ) {
return ApplyTaskResponse . responseError ( requestNo , " 载具编码不能为空! " ) ;
}
String vehicleCode = TaskUtils . defaultVehicleCode ( baseRequest . getVehicle_code ( ) ) ;
StringBuilder sb = new StringBuilder ( ) ;
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService . getGroupInfo ( baseRequest . getV ehicle_c ode( ) ,
GroupBindMaterialStatusEnum . UN BOUND. getValue ( ) ) ;
String materialId = groupInfo. getMaterial_id( ) ;
MdBaseMaterial baseMaterial = materialService. getById( materialId) ;
BigDecimal materialWeight = ObjectUtil. isNotEmpty( groupInfo. getMaterial_weight( ) )
? groupInfo. getMaterial_weight( ) : BigDecimal. valueOf( 0 ) ;
String singleWeightStr = baseMaterial. getSingle_weight( ) ;
BigDecimal singleWeight = BigDecimal. valueOf( Double. parseDouble( singleWeightStr) ) ;
BigDecimal multiply = materialWeight. multiply( singleWeight) ;
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService . getGroupInfo ( v ehicleC ode,
GroupBindMaterialStatusEnum . BOUND . getValue ( ) ) ;
// String materialId = groupInfo. getMaterial_id() ;
// MdBaseMaterial baseMaterial = materialService. getById( materialId) ;
// BigDecimal materialWeight = ObjectUtil. isNotEmpty( groupInfo. getMaterial_weight() )
// ? groupInfo. getMaterial_weight() : BigDecimal. valueOf(0) ;
// String singleWeightStr = baseMaterial. getSingle_weight() ;
// BigDecimal singleWeight = BigDecimal. valueOf( Double. parseDouble( singleWeightStr)) ;
// BigDecimal multiply = materialWeight. multiply( singleWeight) ;
// 获取工单
PdmBdWorkorder workorder = workorderService . getByCode ( groupInfo . getWorkorder_code ( ) ) ;
String extData = workorder . getExt_data ( ) ;
JSONObject object = JSONObject . parseObject ( extData ) ;
CusterVo custer = wmsToMesService . getCusterByNo ( object . getString ( " custer_no " ) ) ;
PdmBdWorkorder workorder = workorderService . selectApplyLabelInfo ( groupInfo . getWorkorder_code ( ) ) ;
// 组合
sb . append ( baseRequest . getVehicle_code ( ) ) . append ( " ## " )
. append ( baseMaterial . getMaterial _code( ) ) . append ( " ## " )
. append ( groupInfo . getMaterial_qty ( ) ) . append ( " ## " )
. append ( multiply ) . append ( " ## " )
. append ( DateUtil . format ( DateUtil . parse ( DateUtil . today ( ) ) , " yyyy年MM月dd日 " ) ) . append ( " ## " )
. append ( cust er. getCUSTER_NAME ( ) ) . append ( " ## " )
. append ( workorder . getProduction_order ( ) ) ;
sb . append ( workorder . getOrder_number ( ) ) . append ( " ## " )
. append ( workorder . getProduct _code( ) ) . append ( " ## " )
. append ( workorder . getMaterial_name ( ) ) . append ( " ## " )
. append ( workorder . getMaterial_code ( ) ) . append ( " ## " )
. append ( workorder . getMaterial_spec ( ) ) . append ( " ## " )
. append ( workord er. getMaterial_model ( ) ) . append ( " ## " )
. append ( DateUtil . format ( DateUtil . parse ( DateUtil . today ( ) ) , " yyyy年MM月dd日 " ) ) ;
return ApplyTaskResponse . responseOk ( requestNo , sb . toString ( ) ) ;
}
@@ -954,4 +947,70 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
return BaseResponse . responseOk ( actionRequest . getRequestNo ( ) ) ;
}
@Override
public BaseResponse woodenPalletBinding ( JSONObject param ) {
String requestNo = param . getString ( " requestNo " ) ;
String deviceCode = param . getString ( " device_code " ) ;
JSONObject stackParameters = param . getJSONObject ( " palletize " ) ;
SchBasePoint basePoint = pointService . getById ( deviceCode ) ;
if ( ObjectUtil . isEmpty ( basePoint ) ) {
return BaseResponse . responseError ( requestNo , " 设备号[ " + deviceCode + " ]不正确! " ) ;
}
String parentPointCode = basePoint . getParent_point_code ( ) ;
// 获取当前正在生产的工单
PdmBdWorkorder workOrder = workorderService . getOne ( new LambdaQueryWrapper < PdmBdWorkorder > ( )
. eq ( PdmBdWorkorder : : getPoint_code , parentPointCode )
. eq ( PdmBdWorkorder : : getWorkorder_status , WorkOrderStatusEnum . PRODUCING . getCode ( ) )
. eq ( PdmBdWorkorder : : getIs_delete , false ) ) ;
if ( ObjectUtil . isEmpty ( workOrder ) ) {
return BaseResponse . responseError ( requestNo , " 工单不存在! " ) ;
}
// 获取原材料物料
// 载具编码从点位中获取
// 组盘,返回组盘标识,设置待绑定,搬运结束就设置已绑定
String vehicleCode = TaskUtils . defaultVehicleCode ( param . getString ( " vehicle_code " ) ) ;
String isFull = param . getString ( " is_full " ) ;
if ( isFull = = null ) {
isFull = GeneralDefinition . YES ;
}
// 砖块数量
Integer qty = param . getInteger ( " qty " ) ;
String vehicleType = workOrder . getVehicle_type ( ) ;
// 找到相同组盘信息就直接返回id, 避免任务取消组盘信息还存在, 重复插入
// 解绑同载具的信息
vehiclematerialgroupService . unBindingSameVehicleMaterial ( vehicleCode , vehicleType ) ;
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup ( ) ;
groupEntity . setGroup_id ( IdUtil . getSnowflake ( 1 , 1 ) . nextIdStr ( ) ) ;
// 要把数据存到组盘表
groupEntity . setMaterial_id ( ObjectUtil . isNotEmpty ( workOrder )
? workOrder . getMaterial_id ( )
: " " ) ;
groupEntity . setStanding_time ( ObjectUtil . isNotEmpty ( workOrder )
? workOrder . getStanding_time ( )
: 0 ) ;
groupEntity . setWorkorder_code ( ObjectUtil . isNotEmpty ( workOrder )
? workOrder . getWorkorder_code ( )
: " " ) ;
groupEntity . setCreate_id ( GeneralDefinition . ACS_ID ) ;
groupEntity . setCreate_name ( GeneralDefinition . ACS_NAME ) ;
groupEntity . setCreate_time ( DateUtil . now ( ) ) ;
groupEntity . setVehicle_code ( vehicleCode ) ;
groupEntity . setVehicle_type ( vehicleType ) ;
groupEntity . setMaterial_qty ( qty ) ;
groupEntity . setCustomer ( workOrder . getCustomer ( ) ) ;
groupEntity . setExt_data ( JSONObject . toJSONString ( stackParameters ) ) ;
groupEntity . setPoint_code ( basePoint . getPoint_code ( ) ) ;
groupEntity . setPoint_name ( basePoint . getPoint_name ( ) ) ;
groupEntity . setSource_vehicle_code ( basePoint . getPoint_code ( ) ) ;
groupEntity . setMove_way ( basePoint . getPoint_code ( ) ) ;
groupEntity . setPcsn ( DateUtil . format ( DateUtil . date ( ) , " yyyyMMdd " ) ) ;
groupEntity . setInstorage_time ( DateUtil . now ( ) ) ;
groupEntity . setGroup_bind_material_status ( GroupBindMaterialStatusEnum . BOUND . getValue ( ) ) ;
groupEntity . setGroup_status ( GroupStatusEnum . IN_STORAGE . getType ( ) ) ;
groupEntity . setIs_delete ( false ) ;
groupEntity . setIs_full ( isFull . equals ( GeneralDefinition . YES ) ) ;
vehiclematerialgroupService . saveOrUpdate ( groupEntity ) ;
return BaseResponse . responseOk ( requestNo ) ;
}
}