diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index 2e0b756..34eb662 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -133,7 +133,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { if (StrUtil.equals(acsConfigService.findByCode(AcsConfig.FORKAGV).getValue(), "1")) { String instcode = inst.getInstruction_code(); int type = Integer.parseInt(inst.getInstruction_type()); - int priority = Integer.parseInt(inst.getPriority()) + 128; + int priority = Integer.parseInt(inst.getPriority()+79); DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceServiceImpl.class); int startAddress = deviceService.queryAddressBydeviceCode(inst.getStart_point_code()); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ItemProtocol.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ItemProtocol.java index dc9636a..790b0dd 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ItemProtocol.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/converor_barcode/ItemProtocol.java @@ -105,7 +105,7 @@ public class ItemProtocol { setIsonline(true); return value; } - return 0; + return -1; } public String getOpcStringValue(String protocol) { String value = this.driver.getStringValue(protocol); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java index ef83531..64140b9 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_station/LnshStationDeviceDriver.java @@ -192,24 +192,6 @@ public class LnshStationDeviceDriver extends AbstractOpcDeviceDriver implements logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + " -> " + action); lucene.deviceItemValue(this.device_code, "action", String.valueOf(action)); lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "信号action:" + last_action + " -> " + action)); - if ("true".equals(this.device.getExtraValue().get("sendDeviceStatus"))) { - ApplySignalStatusRequest request = new ApplySignalStatusRequest(); - request.setDevice_code(this.getDevice_code()); - request.setRequest_method_code(RequestMethodEnum.real_time_set_point.getCode()); - request.setRequest_method_name(RequestMethodEnum.real_time_set_point.getName()); - request.setAction(String.valueOf(action)); - ApplySignalStatusResponse resp = JSON.toJavaObject(JSONObject.parseObject(acsToWmsService.applyTask(request)), ApplySignalStatusResponse.class); - message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求LMS..."; - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "参数:" + JSON.toJSONString(request))); - - if (resp.getCode() == 200) { - message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求成功" + resp.getMessage();; - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(request))); - } else { - message = RequestMethodEnum.getName("real_time_set_point") + "real_time_set_point 接口请求失败" + resp.getMessage();; - lucene.deviceExecuteLog(new LuceneLogDto(this.device_code, message + "返回参数:" + JSON.toJSONString(request))); - } - } } if (io_action != last_ioaction) { logServer.deviceItemValue(this.device_code, "io_action", String.valueOf(io_action)); diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java index d787c43..c081f7f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java @@ -597,7 +597,7 @@ public class HFHandServiceImpl implements HFHandService { @Override public Map Taskoperation(Map jsonObject) throws Exception { JSONObject jo = new JSONObject(); - String task_uuid = jsonObject.get("inst_uuid"); + String task_uuid = jsonObject.get("task_uuid"); String type = jsonObject.get("type"); JSONObject taskjo = WQLObject.getWQLObject("acs_task").query("task_id='" + task_uuid + "'").uniqueResult(0); String task_code = taskjo.getString("task_code"); diff --git a/acs/nladmin-ui/src/views/acs/device/config.vue b/acs/nladmin-ui/src/views/acs/device/config.vue index a13cb2b..62b8ad1 100644 --- a/acs/nladmin-ui/src/views/acs/device/config.vue +++ b/acs/nladmin-ui/src/views/acs/device/config.vue @@ -104,6 +104,7 @@ import conveyor_press_station from '@/views/acs/device/driver/lnsh/conveyor_pres import agv_ndc_one from '@/views/acs/device/driver/agv/agv_ndc_one' import agv_ndc_two from '@/views/acs/device/driver/agv/agv_ndc_two' import package_site from './driver/lnsh/package_site.vue' +import lnsh_jcy from '@/views/acs/device/driver/lnsh/lnsh_jcy' export default { name: 'DeviceConfig', @@ -112,7 +113,7 @@ export default { standard_conveyor_control, standard_conveyor_monitor, lnsh_mixing_mill, lnsh_press, lnsh_palletizing_manipulator, lnsh_fold_disc_site, lnsh_kiln_lane, lnsh_kiln_truss, lnsh_package_line, lnsh_out_kiln_truss, lnsh_package_pallet_manipulator, lnsh_pallet_storage, lnsh_labeling_machine, lnsh_split_manipulator, lnsh_rgv, lnsh_station, lnsh_Laminating_machine, lnsh_package_site, lnsh_crusher, lnsh_palletizing_manipulator_site,conveyor_ssx_barcode, conveyor_press_station, - agv_ndc_one, agv_ndc_two,package_site}, + agv_ndc_one, agv_ndc_two,package_site,lnsh_jcy}, dicts: ['device_type'], mixins: [crud], data() { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml index cfad4bc..4dbf585 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml @@ -414,7 +414,7 @@ LEFT JOIN sch_base_point p ON g.point_code = p.point_code WHERE g.group_bind_material_status = '2' and p.region_code = 'CYHCX' - order by g.update_time desc + order by g.update_time diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.java index 365bb67..4c16418 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.java @@ -2,9 +2,12 @@ package org.nl.wms.database.material.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.database.material.service.dto.MdBaseMaterialQuery; +import java.util.Map; + /** * @author lyd * @date 2023-05-05 @@ -18,4 +21,12 @@ public interface MdBaseMaterialMapper extends BaseMapper { * @return */ IPage queryByInventory(IPage pages, MdBaseMaterialQuery query); + + /** + * 根据物料id查询物料名称 + * + * @param vehicle_code + * @return + */ + Map getMaterialCode(@Param("material_id") String material_id); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.xml index b20c0ec..c9519a2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/mapper/MdBaseMaterialMapper.xml @@ -47,4 +47,8 @@ row_num = 1 ORDER BY CTE.total_material_qty DESC + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 2f0081e..0ce10a9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -265,15 +265,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 找到当前的设备 String deviceCode = param.getString("device_code"); String requestNo = param.getString("requestNo"); - RLock lock = redissonClient.getLock(deviceCode); + SchBasePoint basePoint = pointService.getById(deviceCode); + String configCode = basePoint.getRegion_code() + "QKTask"; + RLock lock = redissonClient.getLock(configCode); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { - SchBasePoint basePoint = pointService.getById(deviceCode); + if (ObjectUtil.isEmpty(basePoint)) { - throw new BadRequestException(ExceptionConstant.REQUEST_DEVICE_ERROR); + throw new BadRequestException("点位错误!"); } - String configCode = basePoint.getRegion_code() + RequestConstant.CALL_VEHICLE_SUFFIX; + // 组织参数 param.put("config_code", configCode); taskService.apply(param); @@ -299,15 +301,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 找到当前的设备 String deviceCode = param.getString("device_code"); String requestNo = param.getString("requestNo"); - RLock lock = redissonClient.getLock(deviceCode); + SchBasePoint basePoint = pointService.getById(deviceCode); + String configCode = basePoint.getRegion_code() + "SKTask"; + RLock lock = redissonClient.getLock(configCode); boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { - SchBasePoint basePoint = pointService.getById(deviceCode); if (ObjectUtil.isEmpty(basePoint)) { throw new BadRequestException("点位错误!"); } - String configCode = basePoint.getRegion_code() + "SKTask"; + // 组织参数 param.put("config_code", configCode); taskService.apply(param); @@ -333,19 +336,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 找到当前的设备 String deviceCode = param.getString("device_code"); String requestNo = param.getString("requestNo"); - RLock lock = redissonClient.getLock(deviceCode); + SchBasePoint basePoint = pointService.getById(deviceCode); + String configCode = basePoint.getRegion_code() + "MLTask"; + RLock lock = redissonClient.getLock(configCode); // 无业务:0 int handling = 0; boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); try { if (tryLock) { - SchBasePoint basePoint = pointService.getById(deviceCode); if (ObjectUtil.isEmpty(basePoint)) { throw new BadRequestException("点位错误!"); } - String configCode = basePoint.getRegion_code() + "MLTask"; // 组织参数 param.put("config_code", configCode); + handling = specialHandling(basePoint.getRegion_code(), param); param.put("special_param", handling); taskService.apply(param); } @@ -941,7 +945,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { try { if (tryLock) { String move = null; - if (ObjectUtil.isNotEmpty(actionRequest.getMove())) { + if (ObjectUtil.isNotEmpty(actionRequest.getMove()) && !"-1".equals(actionRequest.getMove())) { move = (Integer.parseInt(actionRequest.getMove()) + 1) + ""; } String action = actionRequest.getAction(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java index a9ec98e..f3ebd4e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java @@ -1,23 +1,20 @@ package org.nl.wms.pda.controller; import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; import org.nl.common.logging.annotation.Log; -import org.nl.wms.das.device.check.service.IDasDeviceCheckRecordService; -import org.nl.wms.das.device.check.service.dao.DasDeviceCheckRecord; -import org.nl.wms.das.device.operation.service.IDasDeviceOperationRecordService; -import org.nl.wms.das.device.operation.service.dao.DasDeviceOperationRecord; import org.nl.wms.pda.service.PdaService; import org.nl.wms.pda.service.dao.dto.*; import org.nl.wms.pda.service.dao.vo.PdaResponseVo; -import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pda.service.util.PdaUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -153,5 +150,30 @@ public class PdaController { public ResponseEntity rgfjskTask(@RequestBody FjReq req) { return new ResponseEntity<>(pdaService.rgfjskTask(req), HttpStatus.OK); } + @PostMapping("/mlTask") + @Log("混碾压制满料") + @ApiOperation("混碾压制满料") + public ResponseEntity mlTask(@RequestBody FjReq req) { + return new ResponseEntity<>(pdaService.mlTask(req), HttpStatus.OK); + } + @PostMapping("/zpxxTask") + @Log("查看组盘信息") + @ApiOperation("查看组盘信息") + public ResponseEntity zpxxTask(@RequestBody FjReq req) { + return new ResponseEntity<>(pdaService.zpxxTask(req), HttpStatus.OK); + } + + @PostMapping("/vehicleUnbind") + @Log("载具解绑") + @ApiOperation("载具解绑") + public PdaResponseVo vehicleUnbind(@RequestBody JSONObject param) { + String point_code = param.getString("point_code"); + if (StrUtil.isBlank(point_code)) { + throw new BadRequestException("点位不能为空!"); + } + pdaService.vehicleUnbind(point_code); + return PdaUtils.pdaResultOk("操作成功"); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java index 67ac0dc..bf293ca 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -1,5 +1,6 @@ package org.nl.wms.pda.service; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.pda.service.dao.dto.*; import org.nl.wms.pda.service.dao.vo.*; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; @@ -88,6 +89,10 @@ public interface PdaService { PdaResponseVo rgfjskTask(FjReq req); + PdaResponseVo mlTask(FjReq req); + + JSONObject zpxxTask(FjReq req); + List getHnWorkOrder(); List getRgfjPoint(); @@ -99,4 +104,11 @@ public interface PdaService { List getCbjPoint(); List packShelfInfo(); + + /** + * 载具解绑 + * + * @param point_code 点位编码 + */ + void vehicleUnbind(String point_code); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/FjReq.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/FjReq.java index c728d33..5a7f15a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/FjReq.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/FjReq.java @@ -9,4 +9,7 @@ import lombok.Data; public class FjReq { private String startPoint; private String deviceCode; + private String weight; + private String vehicle_code; + private String qty; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index a402247..74bff17 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -11,6 +11,7 @@ import org.nl.common.exception.BadRequestException; import org.nl.common.utils.SecurityUtils; import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.database.material.service.dao.mapper.MdBaseMaterialMapper; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.dto.to.acs.DeviceInfoDto; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; @@ -24,6 +25,7 @@ import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper; 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; @@ -40,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @Author: lyd @@ -52,6 +55,10 @@ public class PdaServiceImpl implements PdaService { @Autowired private PdaMapper pdaMapper; @Autowired + private MdBaseMaterialMapper mdBaseMaterialMapper; + @Autowired + private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper; + @Autowired private IPdmBdWorkorderService workorderService; @Autowired private ISchBasePointService pointService; @@ -535,6 +542,44 @@ public class PdaServiceImpl implements PdaService { return PdaResponseVo.pdaResultOk("人工分拣送空请求成功"); } + @Override + public PdaResponseVo mlTask(FjReq req) { + JSONObject param = new JSONObject(); + String device_code=req.getDeviceCode(); + if(device_code.startsWith("HN")) { + param.put("device_code", req.getDeviceCode()); + param.put("qty", req.getQty()); + param.put("config_code", "HNMLTask"); + param.put("weight", req.getWeight()); + param.put("vehicle_code", req.getVehicle_code()); + taskService.apply(param); + } + if(device_code.startsWith("YJ")) { + param.put("device_code", req.getDeviceCode()); + param.put("config_code", "YZMLTask"); + param.put("qty", req.getQty()); + param.put("weight", req.getWeight()); + param.put("vehicle_code", req.getVehicle_code()); + taskService.apply(param); + } + return PdaResponseVo.pdaResultOk("任务创建成功"); + } + + @Override + public JSONObject zpxxTask(FjReq req) { + String vehicle_code=req.getVehicle_code(); + if(ObjectUtil.isEmpty(vehiclematerialgroupMapper.getVehicleCode(vehicle_code))){ + throw new BadRequestException("条码信息错误"); + } + Map zpxx =vehiclematerialgroupMapper.getVehicleCode(vehicle_code); + Map mcxx=mdBaseMaterialMapper.getMaterialCode(zpxx.get("material_id").toString()); + JSONObject param = new JSONObject(); + param.put("material_code",mcxx.get("material_code").toString()); + param.put("material_qty",zpxx.get("material_qty").toString()); + param.put("material_weight",zpxx.get("material_weight").toString()); + param.put("message","条码信息为"); + return param; + } @Override public List getHnWorkOrder() { return pdaMapper.getHnWorkOrder(); @@ -595,4 +640,28 @@ public class PdaServiceImpl implements PdaService { group.setCreate_time(DateUtil.now()); vehiclematerialgroupService.save(group); } + + @Override + public void vehicleUnbind(String point_code) { + SchBasePoint basePoint = pointService.getById(point_code); + if (ObjectUtil.isNotEmpty(basePoint.getVehicle_code())) { + SchBaseVehiclematerialgroup groupInfo=new SchBaseVehiclematerialgroup(); + if(point_code.startsWith("HCHJ")){ + groupInfo = vehiclematerialgroupService.getGroupInfo(basePoint.getVehicle_code(), + GeneralDefinition.STEEL_TRAY, GroupBindMaterialStatusEnum.BOUND.getValue()); + }if(point_code.startsWith("KL")){ + groupInfo = vehiclematerialgroupService.getGroupInfo(basePoint.getVehicle_code(), + GeneralDefinition.MATERIAL_CUP, GroupBindMaterialStatusEnum.BOUND.getValue()); + } + log.info("解绑载具数据{}", groupInfo); + if (ObjectUtil.isNotEmpty(groupInfo)) { + TaskUtils.setGroupUpdateByPC(groupInfo); + groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + vehiclematerialgroupService.updateById(groupInfo); + } + }else{ + throw new BadRequestException("该位置不存在物料信息"); + } + PointUtils.clearPoint(basePoint); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/util/PdaUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/util/PdaUtils.java new file mode 100644 index 0000000..60773ae --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/util/PdaUtils.java @@ -0,0 +1,50 @@ +package org.nl.wms.pda.service.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.pda.service.dao.vo.PdaResponseVo; + +/** + * 辽宁晟华手持工具类 + * + * @author 张江玮 + * @date 2022/11/30 15:53 + */ +public final class PdaUtils { + private String message; + + public static PdaResponseVo pdaResultOk(String message) { + PdaResponseVo vo = new PdaResponseVo(); + vo.setMessage(message); + return vo; + } + + /** + * 服务层调用方法 + * 创建操作成功的 JSONObject 并携带需要返回的数据 + * + * @param result 返回数据,可为 NULL + * @return 携带了返回数据的 JSONObject + */ + public static JSONObject buildSuccessResultJSON(JSON result) { + JSONObject resultJSON = new JSONObject(); + resultJSON.put("code", "1"); + resultJSON.put("desc", "操作成功!"); + resultJSON.put("result", result); + return resultJSON; + } + + /** + * 服务层调用方法 + * 创建操作失败的 JSONObject + * + * @param desc 错误提示,可为 NULL + * @return 自定义错误提示的 JSONObject + */ + public static JSONObject buildFailResultJSON(String desc) { + JSONObject resultJSON = new JSONObject(); + resultJSON.put("code", "0"); + resultJSON.put("desc", desc); + return resultJSON; + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml index 560bc41..2e48173 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/mapper/PdmBdWorkorderMapper.xml @@ -45,6 +45,7 @@ m.material_model AS formula, m.order_number AS order_number, m.material_code AS material_code, + m.raw_material_code As material_model, IF(LENGTH(m.a_long_side) > 0,m.a_long_side,0) AS a, IF(LENGTH(m.b_short_side) > 0,m.b_short_side,0) AS b, IF(LENGTH(m.h_height) > 0,m.h_height,0) AS h, diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index 0f6b926..3e80766 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -97,6 +97,7 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java index b8161e4..14658d9 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java @@ -4,13 +4,19 @@ 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; +import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; +import org.nl.system.service.param.dao.Param; +import org.nl.system.service.param.impl.SysParamServiceImpl; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/HNEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/HNEnum.java new file mode 100644 index 0000000..95464ce --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/enums/HNEnum.java @@ -0,0 +1,27 @@ +package org.nl.wms.sch.task_manage.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @Author: zjj + * @Description: 混碾货架 + * @Date: 2024/6/20 + */ +@Getter +@AllArgsConstructor +public enum HNEnum { + /** + * 第一层 + */ + FIRST("0", "第一层"), + /** + * 第二层 + */ + SECOND("1", "第二层"); + + + private String value; + private String label; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java index f91d2b4..95fdd74 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.common.exception.BadRequestException; import org.nl.system.service.notice.ISysNoticeService; import org.nl.wms.database.material.service.IMdBaseMaterialService; @@ -158,11 +159,27 @@ public class HNMLTask extends AbstractTask { .or() .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .eq(SchBasePoint::getOut_order_seq,HNEnum.FIRST.getValue()) .eq(SchBasePoint::getIs_used, true) .notLike(SchBasePoint::getPoint_code,"CBJ%") .orderByAsc(SchBasePoint::getUpdate_time) .orderByAsc(SchBasePoint::getIn_order_seq) .orderByAsc(SchBasePoint::getPoint_code)); + if(ObjectUtil.isEmpty(points)){ + points = pointService.list(new LambdaQueryWrapper() + .eq(SchBasePoint::getRegion_code, nextRegionStr.get(0)) + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) + .or() + .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .eq(SchBasePoint::getOut_order_seq,HNEnum.SECOND.getValue()) + .eq(SchBasePoint::getIs_used, true) + .notLike(SchBasePoint::getPoint_code,"CBJ%") + .orderByAsc(SchBasePoint::getUpdate_time) + .orderByAsc(SchBasePoint::getIn_order_seq) + .orderByAsc(SchBasePoint::getPoint_code)); + } } return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; } @@ -304,6 +321,7 @@ public class HNMLTask extends AbstractTask { groupEntity.setCreate_name(GeneralDefinition.ACS_NAME); groupEntity.setCreate_time(DateUtil.now()); groupEntity.setVehicle_code(vehicleCode); + groupEntity.setRedundance_material_code(productionTask.getProduce_order()); groupEntity.setVehicle_type(vehicleType); groupEntity.setSource_vehicle_code(basePoint.getPoint_code()); groupEntity.setPoint_code(basePoint.getPoint_code()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java index 2a30173..fd016ed 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java @@ -18,6 +18,8 @@ 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.TaskFinishedTypeEnum; import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.sch.task_manage.task.tasks.dtk.mapper.DTKMapper; +import org.nl.wms.sch.task_manage.task.tasks.hn.mapper.HNMapper; import org.nl.wms.util.PointUtils; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java index 77a695e..9a72c7c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZMLTask.java @@ -221,6 +221,8 @@ public class YZMLTask extends AbstractTask { } // 砖块数量 Integer qty = param.getInteger("qty"); + //重量 + BigDecimal weight=param.getBigDecimal("weight"); SchBasePoint basePoint = pointService.getById(deviceCode); PdmBdWorkorder workorderObject = workorderService.getDeviceProductionTask(basePoint.getParent_point_code()); // 找到相同组盘信息就修改,避免任务取消组盘信息还存在,重复插入 @@ -248,6 +250,7 @@ public class YZMLTask extends AbstractTask { groupEntity.setVehicle_code(vehicleCode); groupEntity.setVehicle_type(vehicleType); groupEntity.setMaterial_qty(qty); + groupEntity.setMaterial_weight(weight); groupEntity.setCustomer(workorderObject.getCustomer()); groupEntity.setExt_data(JSONObject.toJSONString(stackParameters)); groupEntity.setPoint_code(basePoint.getPoint_code()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java index 7094992..a53db62 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java @@ -129,19 +129,6 @@ public class YZQLTask extends AbstractTask { Integer materialRatio = workOrder.getMaterial_ratio(); // 获取计划重量 BigDecimal planWeight = workOrder.getPlan_weight(); - if (YZPoint.getPoint_type().equals(GeneralDefinition.SPREADER_NEW_MATERIAL)) { - BigDecimal newPlanWeight = planWeight.multiply(BigDecimal.valueOf(((double)materialRatio / 100))); - if (workOrder.getReal_new_weight().compareTo(newPlanWeight) >= 0) { - throw new BadRequestException(ExceptionConstant.exceptionMessage(ExceptionConstant.getCurrentClass() - , ExceptionConstant.getLineNumber(), "新料实际量已足够")); - } - } else { - BigDecimal oldWeight = planWeight.multiply(BigDecimal.valueOf((double) ((100 - materialRatio) / 100))); - if (workOrder.getReal_new_weight().compareTo(oldWeight) >= 0) { - throw new BadRequestException(ExceptionConstant.exceptionMessage(ExceptionConstant.getCurrentClass() - , ExceptionConstant.getLineNumber(), "旧料实际量已足够")); - } - } extGroupData.put("is_new", YZPoint.getPoint_type().equals(GeneralDefinition.SPREADER_NEW_MATERIAL)); SchBasePoint point = findStartPoint(startRegionStr, extGroupData); if (ObjectUtil.isEmpty(point)) { diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java index f3dc2a2..4657b5c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java @@ -14,6 +14,7 @@ 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.enums.HNEnum; 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.TaskFinishedTypeEnum; @@ -59,9 +60,9 @@ public class YZSKTask extends AbstractTask { SchBasePoint point = findNextPoint(nextRegionStr); if (ObjectUtil.isEmpty(point)) { // 消息通知 - noticeService.createNotice("送空盅任务未找到混料机空位!", TASK_CONFIG_CODE + task.getPoint_code1(), + noticeService.createNotice("送空盅任务未找到困料货架空位!", TASK_CONFIG_CODE + task.getPoint_code1(), NoticeTypeEnum.WARN.getCode()); - throw new BadRequestException("送空盅任务未找到混料机空位!"); + throw new BadRequestException("送空盅任务未找到困料货架空位!"); } // 设置终点并修改创建成功状态 task.setPoint_code2(point.getPoint_code()); @@ -126,15 +127,29 @@ public class YZSKTask extends AbstractTask { LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); lam.in(SchBasePoint::getRegion_code, nextRegionStr) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .eq(SchBasePoint::getOut_order_seq,HNEnum.SECOND.getValue()) + .eq(SchBasePoint::getIs_used, true) .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) .notLike(SchBasePoint::getPoint_code,"CBJ%") - .eq(SchBasePoint::getIs_used, true) .orderByAsc(SchBasePoint::getIn_order_seq) .orderByAsc(SchBasePoint::getPoint_code); List schBasePoints = pointService.list(lam); - return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; + if(ObjectUtil.isEmpty(schBasePoints)){ + lam.in(SchBasePoint::getRegion_code, nextRegionStr) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + .or() + .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getOut_order_seq, HNEnum.FIRST.getValue()) + .notLike(SchBasePoint::getPoint_code,"CBJ%") + .eq(SchBasePoint::getIs_used, true) + .orderByAsc(SchBasePoint::getIn_order_seq) + .orderByAsc(SchBasePoint::getPoint_code); + schBasePoints = pointService.list(lam); + } + return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; } @Override diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java index 83a5425..f7c0eba 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java @@ -56,6 +56,7 @@ public class TaskUtils { taskObj.setUpdate_time(DateUtil.now()); } + public static void setGroupUpdateByAcs(SchBaseVehiclematerialgroup groupEntity) { groupEntity.setUpdate_id(GeneralDefinition.ACS_ID); groupEntity.setUpdate_name(GeneralDefinition.ACS_NAME); @@ -206,4 +207,9 @@ public class TaskUtils { } return result; } + public static void addCurrentUpdateColum(JSONObject row) { + row.put("update_optid", SecurityUtils.getCurrentUserId()); + row.put("update_optname", SecurityUtils.getCurrentNickName()); + row.put("update_time", DateUtil.now()); + } } diff --git a/lms/nladmin-ui/src/views/system/user/index.vue b/lms/nladmin-ui/src/views/system/user/index.vue index 647b879..cfd53fb 100644 --- a/lms/nladmin-ui/src/views/system/user/index.vue +++ b/lms/nladmin-ui/src/views/system/user/index.vue @@ -91,7 +91,7 @@ />
- + diff --git a/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue b/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue index 15797b1..8e0a5d3 100644 --- a/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue +++ b/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue @@ -14,6 +14,16 @@ label-position="right" label-width="80px" > + + + + +