fix:叫料接口修改,扫码申请接口修改

This commit is contained in:
Niky
2024-01-16 16:25:01 +08:00
parent 642ac7bdcd
commit 4ec19ad5f4
5 changed files with 54 additions and 37 deletions

View File

@@ -47,7 +47,7 @@ public interface AcsToWmsService {
/** 扫码成功申请 - 判断是否静置完成 */ /** 扫码成功申请 - 判断是否静置完成 */
ApplyTaskResponse isStandingFinish(ApplyTaskRequest baseRequest); ApplyTaskResponse isStandingFinish(ApplyTaskRequest baseRequest);
/** 扫码成功申请 - 入窑记录时间 */ /** 扫码成功申请 - 入窑记录时间 */
ApplyTaskResponse recordKilnTime(ApplyTaskRequest baseRequest); ApplyTaskResponse recordKilnTime(ApplyTaskRequest baseRequest,String type);
/** 压机叫料 */ /** 压机叫料 */
BaseResponse pressRequestMaterial(JSONObject param); BaseResponse pressRequestMaterial(JSONObject param);
/** 任务反馈 */ /** 任务反馈 */

View File

@@ -54,6 +54,7 @@ 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;
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper; import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper;
import org.nl.wms.util.CommonUtils; import org.nl.wms.util.CommonUtils;
import org.nl.wms.util.PointUtils; import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils; import org.nl.wms.util.TaskUtils;
@@ -123,6 +124,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Autowired @Autowired
private FJMapper fjMapper; private FJMapper fjMapper;
@Autowired
private YZMapper yzMapper;
// 初始化反射方法 // 初始化反射方法
@PostConstruct @PostConstruct
public void initCacheMethod() { public void initCacheMethod() {
@@ -193,18 +197,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (ObjectUtil.isEmpty(workOrder)) { if (ObjectUtil.isEmpty(workOrder)) {
throw new BadRequestException("工单不能为空!"); throw new BadRequestException("工单不能为空!");
} }
// 从所选区域中,选择满料位、无锁、可用的点位 if ("FJ".equals(basePoint.getRegion_code())){
List<String> regin = new ArrayList<>(); // 从所选区域中,选择满料位、无锁、可用的点位
regin.add("HCHJ"); List<String> regin = new ArrayList<>();
List<SchBasePoint> points = fjMapper.findPointForFJQL(regin, workOrder.getMaterial_id(), workOrder.getCustomer()); regin.add("HCHJ");
if (ObjectUtil.isEmpty(points)) { List<SchBasePoint> points = fjMapper.findPointForFJQL(regin, workOrder.getMaterial_id(), workOrder.getCustomer());
ApplyTaskResponse response = new ApplyTaskResponse(); if (ObjectUtil.isEmpty(points)) {
response.setRequestNo(requestNo); ApplyTaskResponse response = new ApplyTaskResponse();
response.setMessage("任务申请成功"); response.setRequestNo(requestNo);
response.setResponseDate(DateUtil.now()); response.setMessage("缓存货架没有所需物料");
response.setCode(HttpStatus.HTTP_OK); response.setResponseDate(DateUtil.now());
response.setIs_needmaterial("0"); response.setCode(HttpStatus.HTTP_BAD_REQUEST);
return response; response.setIs_needmaterial("0");
return response;
}
}
if ("YZ".equals(basePoint.getRegion_code())){
List<String> regin = new ArrayList<>();
regin.add("KL");
List<SchBasePoint> points = yzMapper.findPointByYZQL(regin, workOrder.getMaterial_id());
if (ObjectUtil.isEmpty(points)) {
ApplyTaskResponse response = new ApplyTaskResponse();
response.setRequestNo(requestNo);
response.setMessage("困料货架没有所需物料");
response.setResponseDate(DateUtil.now());
response.setCode(HttpStatus.HTTP_BAD_REQUEST);
return response;
}
} }
String configCode = basePoint.getRegion_code() + "QLTask"; String configCode = basePoint.getRegion_code() + "QLTask";
// 组织参数 // 组织参数
@@ -585,13 +604,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return this.isStandingFinish(baseRequest); return this.isStandingFinish(baseRequest);
// 如果是入窑口就是记录数据 // 如果是入窑口就是记录数据
case GeneralDefinition.GZY: case GeneralDefinition.GZY:
return this.recordKilnTime(baseRequest); return this.recordKilnTime(baseRequest,GeneralDefinition.GZY);
// 入窑缓存线 // 入窑缓存线
case GeneralDefinition.RYHCX: case GeneralDefinition.RYHCX:
return this.recordKilnTime(baseRequest); return this.recordKilnTime(baseRequest,GeneralDefinition.RYHCX);
// 出窑缓存线 // 出窑缓存线
case GeneralDefinition.CYHCX: case GeneralDefinition.CYHCX:
return this.recordKilnTime(baseRequest); return this.recordKilnTime(baseRequest,GeneralDefinition.CYHCX);
default: default:
taskResponse.setMessage("参数错误!"); taskResponse.setMessage("参数错误!");
taskResponse.setCode(HttpStatus.HTTP_BAD_REQUEST); taskResponse.setCode(HttpStatus.HTTP_BAD_REQUEST);
@@ -691,7 +710,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* 扫码成功申请 - 入窑记录时间 * 扫码成功申请 - 入窑记录时间
*/ */
@Override @Override
public ApplyTaskResponse recordKilnTime(ApplyTaskRequest baseRequest) { public ApplyTaskResponse recordKilnTime(ApplyTaskRequest baseRequest,String type) {
log.info("扫码成功申请 - 出入窑记录时间的参数: {}", baseRequest); log.info("扫码成功申请 - 出入窑记录时间的参数: {}", baseRequest);
if (ObjectUtil.isEmpty(baseRequest.getVehicle_code())) { if (ObjectUtil.isEmpty(baseRequest.getVehicle_code())) {
throw new BadRequestException("载具编码不能为空"); throw new BadRequestException("载具编码不能为空");
@@ -704,17 +723,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 入窑记录时间 // 入窑记录时间
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(), SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
baseRequest.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue()); baseRequest.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue());
if (basePoint.getPoint_type().equals(GeneralDefinition.ENTRANCE) if (GeneralDefinition.RYHCX.equals(type) && ObjectUtil.isNotEmpty(groupInfo.getInto_kiln_time())) {
&& ObjectUtil.isNotEmpty(groupInfo.getInto_kiln_time())) {
// 如果已经记录就跳过 // 如果已经记录就跳过
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo()); return ApplyTaskResponse.responseOk(baseRequest.getRequestNo());
} }
if (basePoint.getPoint_type().equals(GeneralDefinition.EXIT) if (GeneralDefinition.CYHCX.equals(type) && ObjectUtil.isNotEmpty(groupInfo.getOut_kiln_time())) {
&& ObjectUtil.isNotEmpty(groupInfo.getOut_kiln_time())) {
// 如果已经记录就跳过 // 如果已经记录就跳过
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo()); return ApplyTaskResponse.responseOk(baseRequest.getRequestNo());
} }
recordInOrOutKilnTime(groupInfo, basePoint); recordInOrOutKilnTime(groupInfo, basePoint,type);
if (ObjectUtil.isNotEmpty(basePoint)) { if (ObjectUtil.isNotEmpty(basePoint)) {
// 记录当前位置 // 记录当前位置
groupInfo.setPoint_code(basePoint.getPoint_code()); // 当前位置 groupInfo.setPoint_code(basePoint.getPoint_code()); // 当前位置
@@ -733,10 +750,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo(), "扫码成功申请"); return ApplyTaskResponse.responseOk(baseRequest.getRequestNo(), "扫码成功申请");
} }
private void recordInOrOutKilnTime(SchBaseVehiclematerialgroup groupInfo, SchBasePoint basePoint) {
if (GeneralDefinition.ENTRANCE.equals(basePoint.getPoint_type())) {
private void recordInOrOutKilnTime(SchBaseVehiclematerialgroup groupInfo, SchBasePoint basePoint,String type) {
if (GeneralDefinition.RYHCX.equals(type)) {
groupInfo.setInto_kiln_time(DateUtil.now()); groupInfo.setInto_kiln_time(DateUtil.now());
} else { }
if (GeneralDefinition.CYHCX.equals(type)) {
groupInfo.setOut_kiln_time(DateUtil.now()); groupInfo.setOut_kiln_time(DateUtil.now());
groupInfo.setIs_firing(true); groupInfo.setIs_firing(true);
} }

View File

@@ -180,8 +180,7 @@ public class YZQLTask extends AbstractTask {
: null; : null;
Assert.notNull(workOrder, "工单不能为空!"); Assert.notNull(workOrder, "工单不能为空!");
// hint: redundance_material_code暂时存在着 // hint: redundance_material_code暂时存在着
List<SchBasePoint> points = yzMapper.findPointByYZQL(startRegionStr, workOrder.getRaw_material_code(), List<SchBasePoint> points = yzMapper.findPointByYZQL(startRegionStr, workOrder.getMaterial_id());
extGroupData.getBoolean("is_new"));
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
} }

View File

@@ -19,13 +19,12 @@ public interface YZMapper {
*/ */
int countConveyorLine(String regionCode, String pointType, String pointStatus); int countConveyorLine(String regionCode, String pointType, String pointStatus);
/** /**
* 根据泥料编码获取 * 根据泥料id获取
* @param regionCode * @param regionCode
* @param rawMaterialCode * @param materialId
* @param isNew
* @return * @return
*/ */
List<SchBasePoint> findPointByYZQL(List<String> regionCode, String rawMaterialCode, Boolean isNew); List<SchBasePoint> findPointByYZQL(List<String> regionCode, String materialId);
} }

View File

@@ -13,16 +13,15 @@
</select> </select>
<select id="findPointByYZQL" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint"> <select id="findPointByYZQL" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT SELECT
p.*, p.*,
vg.group_id vg.group_id
FROM FROM
`sch_base_point` p `sch_base_point` p
LEFT JOIN sch_base_vehiclematerialgroup vg ON p.vehicle_code = vg.vehicle_code LEFT JOIN sch_base_vehiclematerialgroup vg ON p.vehicle_code = vg.vehicle_code
AND p.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2' AND p.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2'
LEFT JOIN pdm_bd_workorder w ON w.workorder_code = vg.workorder_code LEFT JOIN pdm_bd_workorder w ON w.workorder_code = vg.workorder_code
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.point_status = '3' WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.point_status = '3'
AND vg.group_id IS NOT NULL AND vg.redundance_material_code = #{rawMaterialCode} AND vg.group_id IS NOT NULL AND vg.material_id = #{materialId}
AND w.is_new = #{isNew} AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) >= vg.standing_time
AND p.region_code IN AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")"> <foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code} #{code}