rev:修改
This commit is contained in:
@@ -138,4 +138,9 @@ public class MdCsSupplierbase implements Serializable {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 质量代码
|
||||
*/
|
||||
private String quality_code;
|
||||
|
||||
}
|
||||
|
||||
@@ -187,5 +187,10 @@ public class MdMeMaterialbase implements Serializable {
|
||||
*/
|
||||
private String execution_stand;
|
||||
|
||||
/**
|
||||
* 供应商编码
|
||||
*/
|
||||
private String supp_code;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -5,10 +5,13 @@
|
||||
<select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT
|
||||
mater.*,
|
||||
class.class_name
|
||||
class.class_name,
|
||||
supp.supp_name,
|
||||
supp.quality_code
|
||||
FROM
|
||||
md_me_materialbase mater
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id
|
||||
LEFT JOIN md_cs_supplierbase supp ON supp.supp_code = mater.supp_code
|
||||
<where>
|
||||
1 = 1
|
||||
<if test="param.search != null and param.search != ''">
|
||||
@@ -26,24 +29,24 @@
|
||||
class.class_name,
|
||||
class.class_code,
|
||||
unit.unit_code,
|
||||
unit.unit_name
|
||||
unit.unit_name,
|
||||
supp.supp_name,
|
||||
supp.quality_code
|
||||
FROM
|
||||
md_me_materialbase mater
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id
|
||||
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = mater.base_unit_id
|
||||
LEFT JOIN md_cs_supplierbase supp ON supp.supp_code = mater.supp_code
|
||||
<where>
|
||||
mater.is_used = '1'
|
||||
AND mater.is_delete = '0'
|
||||
<if test="param.material_code != null and param.material_code != ''">
|
||||
AND
|
||||
(mater.material_code LIKE #{param.material_code} or
|
||||
mater.material_name LIKE #{param.material_code})
|
||||
</if>
|
||||
|
||||
<if test="param.class_code != null and param.class_code != ''">
|
||||
AND
|
||||
class.class_code = #{param.class_code}
|
||||
(mater.material_code LIKE '%${param.class_code}%' or
|
||||
mater.material_name LIKE '%${param.class_code}%'or
|
||||
class.class_code LIKE '%${param.class_code}%')
|
||||
</if>
|
||||
|
||||
</where>
|
||||
ORDER BY mater.update_time Desc
|
||||
</select>
|
||||
|
||||
@@ -42,4 +42,11 @@ public class AcsToWmsController {
|
||||
return new ResponseEntity<>(acsToWmsService.resultCar(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/applyTask")
|
||||
@Log(value = "ACS向WMS申请任务")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> applyTask(@RequestBody JSONObject whereJson) {
|
||||
return new ResponseEntity<>(acsToWmsService.applyTask(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -34,4 +34,14 @@ public interface AcsToWmsService {
|
||||
* @return BaseResponse
|
||||
*/
|
||||
BaseResponse resultCar(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* ACS向WMS申请任务
|
||||
* @param whereJson {
|
||||
* type:1-缠绕机 2- 机械手
|
||||
* type_dtl:1-申请取货 2-申请放货
|
||||
* }
|
||||
* @return BaseResponse
|
||||
*/
|
||||
BaseResponse applyTask(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -1,28 +1,21 @@
|
||||
package org.nl.wms.ext.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.io.unit.DataUnit;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.Data;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.hikvision.HikvisionSnapshotUtil;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
||||
import org.nl.wms.ext.enums.ResultAcsStatus;
|
||||
import org.nl.wms.ext.service.AcsToWmsService;
|
||||
import org.nl.wms.ext.util.BaseResponse;
|
||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch_manage.service.SecondaryPackagingService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.EmpVehicleInTask;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
@@ -74,6 +67,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService;
|
||||
|
||||
/**
|
||||
* 申请任务
|
||||
*/
|
||||
@Autowired
|
||||
private SecondaryPackagingService secondaryPackagingService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SneakyThrows
|
||||
@@ -150,4 +149,55 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
log.info("ACS向WMS反馈任务车号,返回参数:--------------------------------------" + BaseResponse.responseOk().toString());
|
||||
return BaseResponse.responseOk();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@SneakyThrows
|
||||
public BaseResponse applyTask(JSONObject whereJson) {
|
||||
log.info("ACS向WMS申请任务,请求参数:--------------------------------------" + whereJson.toString());
|
||||
String device_code = whereJson.getString("device_code");
|
||||
String type = whereJson.getString("type");
|
||||
String type_dtl = whereJson.getString("type_dtl");
|
||||
|
||||
RLock lock = redissonClient.getLock(device_code);
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLock) {
|
||||
// 缠绕机
|
||||
if (type.equals(IOSConstant.ONE)) {
|
||||
if (type_dtl.equals(IOSConstant.ONE)) {
|
||||
// 下料
|
||||
secondaryPackagingService.wrappingDown(whereJson);
|
||||
}
|
||||
if (type_dtl.equals(IOSConstant.TWO)) {
|
||||
// 上料
|
||||
secondaryPackagingService.wrappingCall(whereJson);
|
||||
}
|
||||
}
|
||||
// 机械手
|
||||
if (type.equals(IOSConstant.TWO)) {
|
||||
if (type_dtl.equals(IOSConstant.ONE)) {
|
||||
// 下料
|
||||
secondaryPackagingService.palletizingDown(whereJson);
|
||||
}
|
||||
if (type_dtl.equals(IOSConstant.TWO)) {
|
||||
// 上料
|
||||
secondaryPackagingService.palletizingCallEmpty(whereJson);
|
||||
}
|
||||
}
|
||||
/* // 拆盘机
|
||||
if (type.equals(IOSConstant.THREE)) {
|
||||
// 找一垛空托盘
|
||||
}*/
|
||||
} else {
|
||||
throw new BadRequestException("设备编码为:" + device_code + "的设备正在操作中!");
|
||||
}
|
||||
} finally {
|
||||
if (tryLock) {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
log.info("ACS向WMS申请任务,返回参数:--------------------------------------" + BaseResponse.responseOk().toString());
|
||||
return BaseResponse.responseOk();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.pda.general_management.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
@@ -703,7 +704,7 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
}
|
||||
// todo:获取ACS的重量!
|
||||
res.put("total", bucketInfo.getBigDecimal("qty"));
|
||||
res.put("rows", infoByBucket);
|
||||
res.put("row", infoByBucket);
|
||||
return PdaResponse.requestParamOk(res);
|
||||
}
|
||||
|
||||
@@ -769,8 +770,8 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
JSONObject row = param.getJSONObject("row");
|
||||
String currentPoint = param.getString("current_point");
|
||||
String vehicleCode = param.getString("vehicle_code");
|
||||
// ACS 获取的重量
|
||||
BigDecimal currentTotal = param.getBigDecimal("weight");
|
||||
// ACS 获取的重量(毛重)
|
||||
BigDecimal currentTotal = NumberUtil.sub(param.getBigDecimal("weight"), row.getBigDecimal("bucket_weight"));
|
||||
BigDecimal originalQty = row.getBigDecimal("qty");
|
||||
Param threshold = paramService.findByCode("weighing_threshold");
|
||||
// 对比与组盘的重量是否大于阈值
|
||||
|
||||
@@ -273,7 +273,7 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
// 校验托盘数据与入库是否匹配
|
||||
// 入库前检测
|
||||
AssemblyPalletParam checkParam = new AssemblyPalletParam();
|
||||
checkParam.setVehicle_code(param.getString("vehicel_code"));
|
||||
checkParam.setVehicle_code(param.getString("vehicle_code"));
|
||||
// res中包含g.*(md_pb_groupplate字段),但也会额外带一些展示字段;这里只取校验必需字段即可
|
||||
List<JSONObject> rows = param.getJSONArray("rows").toJavaList(JSONObject.class);
|
||||
List<GroupPlate> groupPlates = rows.stream().map(row -> {
|
||||
|
||||
@@ -71,7 +71,7 @@ public class SecondaryPackagingServiceImpl implements SecondaryPackagingService
|
||||
// 组盘
|
||||
GroupPlate groupPlate = new GroupPlate();
|
||||
groupPlate.setGroup_id(IdUtil.getStringId());
|
||||
groupPlate.setVehicle_code( DateUtil.format(new Date(), "yyyyMMddss") + "-" + param.getString("vehicle_seq"));
|
||||
groupPlate.setVehicle_code(IdUtil.getStringId());
|
||||
groupPlate.setRemark(param.toJSONString());
|
||||
groupPlate.setStatus("1");
|
||||
groupPlate.setQty(param.getBigDecimal("qty"));
|
||||
|
||||
@@ -55,7 +55,7 @@ public class MaterialBackTask extends AbstractTask {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getStringId());
|
||||
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
|
||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||
task.setConfig_code(MaterialBackTask.class.getSimpleName());
|
||||
task.setPoint_code1(json.getString("point_code1"));
|
||||
task.setPoint_code2(json.getString("point_code2"));
|
||||
|
||||
@@ -29,7 +29,7 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* 缠膜叫料任务类
|
||||
* @author: lyd
|
||||
* @date: 2026/1/12
|
||||
*/
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
FROM
|
||||
md_pb_groupplate late
|
||||
INNER JOIN md_me_materialbase mater ON mater.material_id = late.material_id
|
||||
INNER JOIN md_cs_supplierbase supp ON supp.supp_code = late.supp_code
|
||||
LEFT JOIN md_cs_supplierbase supp ON supp.supp_code = late.supp_code
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = mater.material_type_id
|
||||
<where>
|
||||
1 = 1
|
||||
|
||||
@@ -145,7 +145,6 @@
|
||||
<el-table-column prop="bucket_code" label="桶码" :min-width="flexWidth('bucket_code',crud.data,'桶码')" />
|
||||
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
|
||||
<el-table-column prop="qty" label="重量" :formatter="crud.formatNum3" :min-width="100" />
|
||||
<el-table-column prop="bucket_weight" label="桶自重" :formatter="crud.formatNum3" :min-width="100" />
|
||||
|
||||
@@ -84,7 +84,6 @@
|
||||
<el-table-column prop="bag_code" label="袋码" :min-width="flexWidth('bag_code',crud.data,'袋码')" />
|
||||
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
|
||||
<el-table-column prop="status" label="状态" :formatter="formattStatus" :min-width="flexWidth('status',crud.data,'状态')" />
|
||||
<el-table-column prop="qty" label="组盘重量" :formatter="crud.formatNum3" :min-width="100" />
|
||||
|
||||
@@ -191,7 +191,6 @@
|
||||
<el-table-column prop="bag_code" label="袋码" :min-width="flexWidth('bag_code',crud.data,'袋码')" />
|
||||
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
|
||||
<el-table-column prop="status" label="状态" :formatter="formattStatus" :min-width="flexWidth('status',crud.data,'状态')" />
|
||||
<el-table-column prop="qty" label="组袋重量" :formatter="crud.formatNum3" :min-width="100" />
|
||||
|
||||
@@ -103,12 +103,10 @@
|
||||
>
|
||||
<el-table-column prop="material_code" label="物料编码" width="160" />
|
||||
<el-table-column prop="material_name" label="物料名称" width="180" show-overflow-tooltip />
|
||||
<el-table-column prop="material_spec" label="物料规格" width="140" />
|
||||
<el-table-column prop="material_model" label="物料型号" />
|
||||
<el-table-column prop="quality_code" label="供应商质量代码" width="140" />
|
||||
<el-table-column prop="supp_name" label="供应商名称" width="200" />
|
||||
<el-table-column prop="class_name" label="物料分类" width="140" />
|
||||
<el-table-column prop="unit_name" label="计量单位" />
|
||||
<el-table-column prop="standing_time" label="静置时间(分钟)" width="130px" />
|
||||
<el-table-column prop="product_series_name" label="系列" />
|
||||
<el-table-column label="启用" align="center" prop="is_used">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
|
||||
@@ -124,8 +124,6 @@
|
||||
<el-table-column v-if="false" prop="storagevehicle_id" label="载具标识" />
|
||||
<el-table-column prop="storagevehicle_type_name" label="载具类型" :formatter="formattType" />
|
||||
<el-table-column prop="storagevehicle_code" label="载具编码" />
|
||||
<el-table-column prop="storagevehicle_name" label="载具名称" />
|
||||
<el-table-column prop="pcsn" label="绑定物料" />
|
||||
<el-table-column prop="sect_code" label="所属库区" :min-width="flexWidth('sect_code',crud.data,'载具类型', 30)">
|
||||
<template slot-scope="scope">
|
||||
<span :class="{ 'text-danger': isSectMissing(scope.row.sect_code), 'blink': isSectMissing(scope.row.sect_code) }">
|
||||
@@ -133,7 +131,7 @@
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="weigth" label="托盘重量" />
|
||||
<el-table-column prop="weigth" label="载具重量" />
|
||||
<el-table-column label="是否启用" align="center" prop="is_used">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
|
||||
Reference in New Issue
Block a user