fix:修改压制工单、申请补满料盅托盘

This commit is contained in:
Niky
2024-01-15 10:35:55 +08:00
parent 4cba97d28b
commit e4dbaee083
5 changed files with 70 additions and 44 deletions

View File

@@ -25,8 +25,8 @@
<if test="query.material_spec != null">
AND mm.material_spec LIKE '%${query.material_spec}%'
</if>
<if test="query.blurry != null">
AND mm.material_model LIKE '%${query.material_model}%'
<if test="query.material_code != null">
AND mm.material_code LIKE '%${query.material_code}%'
</if>
) SELECT
CTE.material_id,

View File

@@ -21,6 +21,8 @@ public class ApplyTaskResponse extends BaseResponse {
private String label_message;
// 特殊业务-无具体含义:目前是是否满足码满规定托盘数
private int is_satisfy;
//分拣任务是否有需要物料
private String is_needmaterial;
public static ApplyTaskResponse responseOk(String requestNo) {
ApplyTaskResponse response = new ApplyTaskResponse();

View File

@@ -1,6 +1,7 @@
package org.nl.wms.ext.acs.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -43,6 +44,7 @@ import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
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;
@@ -53,6 +55,7 @@ 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.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.util.CommonUtils;
import org.nl.wms.util.PointUtils;
@@ -67,6 +70,8 @@ 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.concurrent.ConcurrentHashMap;
@@ -184,6 +189,28 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
PdmBdWorkorder workorder = workorderService.getDeviceDockingProductionTask(deviceCode);
String workorderCode = workorder.getWorkorder_code();
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
.eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
: null;
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;
}
String configCode = basePoint.getRegion_code() + "QLTask";
// 组织参数
param.put("config_code", configCode);

View File

@@ -3,19 +3,17 @@
<mapper namespace="org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper">
<select id="findPointForFJQL" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT
p.*,
vg.group_id
p.*,
vg.group_id
FROM
`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'
LEFT JOIN md_base_material ma ON ma.material_id = vg.material_id
`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'
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL)
AND p.is_used = 1
AND p.point_status = '3'
AND vg.material_id = #{materialId}
AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) >= ma.cooling_time
AND vg.customer = #{customer}
AND p.region_code IN
AND p.is_used = 1
AND p.point_status = '3'
AND vg.material_id = #{materialId}
AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code}
</foreach>
@@ -23,43 +21,41 @@
</select>
<select id="findPointForFJSK" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT
p.*
p.*
FROM
`sch_base_point` p
`sch_base_point` p
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL)
AND p.point_type = '3'
AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code}
</foreach>
AND p.point_type = '3'
AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code}
</foreach>
</select>
<select id="findPointForFJQK" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
SELECT
p.*
p.*
FROM
`sch_base_point` p
`sch_base_point` p
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL)
AND p.point_type = #{fluentPut.pointType}
AND p.vehicle_type = #{fluentPut.vehicleType}
AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code}
</foreach>
AND p.point_type = #{fluentPut.pointType}
AND p.vehicle_type = #{fluentPut.vehicleType}
AND p.region_code IN
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
#{code}
</foreach>
</select>
<select id="getNeedFullNumber" resultType="java.lang.String">
SELECT
pack_method
FROM
`md_base_material`
SELECT pack_method
FROM `md_base_material`
WHERE material_id = #{materialId}
</select>
<select id="getInventoryQuantity" resultType="java.lang.Integer">
SELECT
IF(LENGTH(SUM(vg.material_qty)) > 0, SUM(vg.material_qty), 0) AS sum
FROM
`sch_base_point` p
LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.vehicle_code = p.vehicle_code AND vg.vehicle_type = p.vehicle_type AND vg.group_bind_material_status = '2'
WHERE
region_code = 'GTPHC' AND material_id = #{materialId}
SELECT IF(LENGTH(SUM(vg.material_qty)) > 0, SUM(vg.material_qty), 0) AS sum
FROM `sch_base_point` p
LEFT JOIN sch_base_vehiclematerialgroup vg
ON vg.vehicle_code = p.vehicle_code AND vg.vehicle_type = p.vehicle_type AND
vg.group_bind_material_status = '2'
WHERE region_code = 'GTPHC'
AND material_id = #{materialId}
</select>
</mapper>

View File

@@ -23,18 +23,19 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="产品部位">
<el-form-item label="产品牌号">
<el-input
v-model="query.material_spec"
v-model="query.material_code"
clearable
size="mini"
placeholder="物料名称"
placeholder="产品牌号"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="物料型号">
<el-form-item label="产品部位">
<el-input
v-model="query.material_model"
v-model="query.material_spec"
clearable
size="mini"
placeholder="物料名称"