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

View File

@@ -180,8 +180,7 @@ public class YZQLTask extends AbstractTask {
: null;
Assert.notNull(workOrder, "工单不能为空!");
// hint: redundance_material_code暂时存在着
List<SchBasePoint> points = yzMapper.findPointByYZQL(startRegionStr, workOrder.getRaw_material_code(),
extGroupData.getBoolean("is_new"));
List<SchBasePoint> points = yzMapper.findPointByYZQL(startRegionStr, workOrder.getMaterial_id());
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);
/**
* 根据泥料编码获取
* 根据泥料id获取
* @param regionCode
* @param rawMaterialCode
* @param isNew
* @param materialId
* @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 id="findPointByYZQL" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT
p.*,
vg.group_id
p.*,
vg.group_id
FROM
`sch_base_point` p
`sch_base_point` p
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
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 w.is_new = #{isNew} AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) >= vg.standing_time
AND vg.group_id IS NOT NULL AND vg.material_id = #{materialId}
AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code}