add:新增分拣取满托接口,任务不下发
fix:修改申请贴标接口,返回内容修改
This commit is contained in:
@@ -56,4 +56,7 @@ public interface AcsToWmsService {
|
|||||||
GetPalletizeResponse getVehicleInfo(JSONObject param);
|
GetPalletizeResponse getVehicleInfo(JSONObject param);
|
||||||
/** 实时修改点位状态 */
|
/** 实时修改点位状态 */
|
||||||
BaseResponse realTimeSetPoint(JSONObject param);
|
BaseResponse realTimeSetPoint(JSONObject param);
|
||||||
|
|
||||||
|
/** 分拣 申请取走满料盅托盘 任务不下发*/
|
||||||
|
BaseResponse woodenPalletBinding(JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.GeneralDefinition;
|
||||||
import org.nl.wms.sch.task_manage.constant.ExceptionConstant;
|
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.constant.RequestConstant;
|
||||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
import org.nl.wms.sch.task_manage.enums.*;
|
||||||
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.task.TaskFactory;
|
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.core.TaskStatus;
|
||||||
import org.nl.wms.sch.task_manage.task.tasks.fj.FJQLTask;
|
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.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -489,29 +484,27 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
if (baseRequest.getVehicle_code() == null) {
|
if (baseRequest.getVehicle_code() == null) {
|
||||||
return ApplyTaskResponse.responseError(requestNo, "载具编码不能为空!");
|
return ApplyTaskResponse.responseError(requestNo, "载具编码不能为空!");
|
||||||
}
|
}
|
||||||
|
String vehicleCode = TaskUtils.defaultVehicleCode(baseRequest.getVehicle_code());
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
|
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(vehicleCode,
|
||||||
GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
String materialId = groupInfo.getMaterial_id();
|
// String materialId = groupInfo.getMaterial_id();
|
||||||
MdBaseMaterial baseMaterial = materialService.getById(materialId);
|
// MdBaseMaterial baseMaterial = materialService.getById(materialId);
|
||||||
BigDecimal materialWeight = ObjectUtil.isNotEmpty(groupInfo.getMaterial_weight())
|
// BigDecimal materialWeight = ObjectUtil.isNotEmpty(groupInfo.getMaterial_weight())
|
||||||
? groupInfo.getMaterial_weight() : BigDecimal.valueOf(0);
|
// ? groupInfo.getMaterial_weight() : BigDecimal.valueOf(0);
|
||||||
String singleWeightStr = baseMaterial.getSingle_weight();
|
// String singleWeightStr = baseMaterial.getSingle_weight();
|
||||||
BigDecimal singleWeight = BigDecimal.valueOf(Double.parseDouble(singleWeightStr));
|
// BigDecimal singleWeight = BigDecimal.valueOf(Double.parseDouble(singleWeightStr));
|
||||||
BigDecimal multiply = materialWeight.multiply(singleWeight);
|
// BigDecimal multiply = materialWeight.multiply(singleWeight);
|
||||||
// 获取工单
|
// 获取工单
|
||||||
PdmBdWorkorder workorder = workorderService.getByCode(groupInfo.getWorkorder_code());
|
PdmBdWorkorder workorder = workorderService.selectApplyLabelInfo(groupInfo.getWorkorder_code());
|
||||||
String extData = workorder.getExt_data();
|
|
||||||
JSONObject object = JSONObject.parseObject(extData);
|
|
||||||
CusterVo custer = wmsToMesService.getCusterByNo(object.getString("custer_no"));
|
|
||||||
// 组合
|
// 组合
|
||||||
sb.append(baseRequest.getVehicle_code()).append("##")
|
sb.append(workorder.getOrder_number()).append("##")
|
||||||
.append(baseMaterial.getMaterial_code()).append("##")
|
.append(workorder.getProduct_code()).append("##")
|
||||||
.append(groupInfo.getMaterial_qty()).append("##")
|
.append(workorder.getMaterial_name()).append("##")
|
||||||
.append(multiply).append("##")
|
.append(workorder.getMaterial_code()).append("##")
|
||||||
.append(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyy年MM月dd日")).append("##")
|
.append(workorder.getMaterial_spec()).append("##")
|
||||||
.append(custer.getCUSTER_NAME()).append("##")
|
.append(workorder.getMaterial_model()).append("##")
|
||||||
.append(workorder.getProduction_order());
|
.append(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyy年MM月dd日"));
|
||||||
return ApplyTaskResponse.responseOk(requestNo, sb.toString());
|
return ApplyTaskResponse.responseOk(requestNo, sb.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -954,4 +947,70 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
return BaseResponse.responseOk(actionRequest.getRequestNo());
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,4 +109,6 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
|
|||||||
List<AcsWorkOrderVo> getAcsWorkOrderVos(String s);
|
List<AcsWorkOrderVo> getAcsWorkOrderVos(String s);
|
||||||
|
|
||||||
List<InspectorVo> getUserList();
|
List<InspectorVo> getUserList();
|
||||||
|
|
||||||
|
PdmBdWorkorder selectApplyLabelInfo(String workorderCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,4 +47,6 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<AcsWorkOrderVo> getAcsWorkOrderVos(String device);
|
List<AcsWorkOrderVo> getAcsWorkOrderVos(String device);
|
||||||
|
|
||||||
|
PdmBdWorkorder selectApplyLabelInfo(String workorderCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,4 +123,19 @@
|
|||||||
AND w.point_code = #{device}
|
AND w.point_code = #{device}
|
||||||
ORDER BY w.planproducestart_date
|
ORDER BY w.planproducestart_date
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|||||||
@@ -286,4 +286,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
|||||||
public List<InspectorVo> getUserList() {
|
public List<InspectorVo> getUserList() {
|
||||||
return userService.getAllUserIdAndName();
|
return userService.getAllUserIdAndName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PdmBdWorkorder selectApplyLabelInfo(String workorderCode) {
|
||||||
|
return pdmBdWorkorderMapper.selectApplyLabelInfo(workorderCode);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,7 +127,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
|||||||
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
|
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
|
||||||
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
||||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
|
.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);
|
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
|
||||||
return selectOne;
|
return selectOne;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user