add:新增分拣取满托接口,任务不下发

fix:修改申请贴标接口,返回内容修改
This commit is contained in:
Niky
2024-01-15 17:00:16 +08:00
parent e4dbaee083
commit 642ac7bdcd
7 changed files with 116 additions and 29 deletions

View File

@@ -56,4 +56,7 @@ public interface AcsToWmsService {
GetPalletizeResponse getVehicleInfo(JSONObject param);
/** 实时修改点位状态 */
BaseResponse realTimeSetPoint(JSONObject param);
/** 分拣 申请取走满料盅托盘 任务不下发*/
BaseResponse woodenPalletBinding(JSONObject param);
}

View File

@@ -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.getVehicle_code(),
GroupBindMaterialStatusEnum.UNBOUND.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(vehicleCode,
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(custer.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(workorder.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);
}
}

View File

@@ -109,4 +109,6 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
List<AcsWorkOrderVo> getAcsWorkOrderVos(String s);
List<InspectorVo> getUserList();
PdmBdWorkorder selectApplyLabelInfo(String workorderCode);
}

View File

@@ -47,4 +47,6 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
* @return
*/
List<AcsWorkOrderVo> getAcsWorkOrderVos(String device);
PdmBdWorkorder selectApplyLabelInfo(String workorderCode);
}

View File

@@ -123,4 +123,19 @@
AND w.point_code = #{device}
ORDER BY w.planproducestart_date
</select>
<select id="selectApplyLabelInfo" resultType="org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder">
SELECT
m.order_number,
m.product_code ,
m.material_spec ,
m.material_name ,
m.material_model ,
m.material_code,
w.create_time
FROM
`pdm_bd_workorder` w
LEFT JOIN md_base_material m ON m.material_id = w.material_id
WHERE w.workorder_code = #{workorderCode}
</select>
</mapper>

View File

@@ -286,4 +286,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
public List<InspectorVo> getUserList() {
return userService.getAllUserIdAndName();
}
@Override
public PdmBdWorkorder selectApplyLabelInfo(String workorderCode) {
return pdmBdWorkorderMapper.selectApplyLabelInfo(workorderCode);
}
}

View File

@@ -127,7 +127,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
.orderByDesc(SchBaseVehiclematerialgroup::getCreate_time);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
}