rev:回温库存报表出库按钮功能修改;

opt:查询更新母托盘组盘代码优化;手持组盘解绑功能优化;回温出库任务完成优化
This commit is contained in:
DESKTOP-5DIJMF9\admin
2024-09-02 17:38:01 +08:00
parent 602d84758d
commit 166dd99b76
22 changed files with 248 additions and 88 deletions

View File

@@ -160,7 +160,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
throw new BadRequestException("任务类型不正确!requestMethodCode"+requestMethodName+",device_code"+device_code);
}
// 执行创建任务
task.apply(param);
String task_code = task.apply(param);
Map<String, String> parameters = new HashMap();
parameters.put("task_code",task_code);
result.setParameters(parameters);
return result;
}

View File

@@ -60,6 +60,9 @@ public class PdaController {
region.setVehicle_qty(0);
}
}
if("KJ".equals(whereJson.get("region_code"))){
region.setVehicle_qty(null);
}
return new ResponseEntity<>(pointService.getPointListByPda(region), HttpStatus.OK);
}

View File

@@ -90,8 +90,7 @@ public class PdaServiceImpl implements PdaService {
@Override
public PdaResponseVo zpjb(JSONObject param) {
String subTray=param.getString("sub_tray");
String motherTray=param.getString("mother_tray");
//母盘解绑
//子拖盘解绑
if(ObjectUtil.isNotEmpty(subTray)){
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
.eq(SchBaseVehiclematerialgroup::getVehicle_code, subTray)
@@ -103,35 +102,38 @@ public class PdaServiceImpl implements PdaService {
vehiclematerialgroupService.updateById(one);
}
List<SchBasePoint> schBasePointList= pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getVehicle_code, subTray));
.eq(SchBasePoint::getVehicle_code2, subTray));
for(SchBasePoint schBasePoint:schBasePointList){
schBasePoint.setVehicle_code("");
schBasePoint.setVehicle_code2("");
schBasePoint.setVehicle_qty(0);
pointService.update(schBasePoint);
}
}
//子盘解绑
String motherTray = param.getString("mother_tray");
//母盘解绑
if(ObjectUtil.isNotEmpty(motherTray)){
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
.eq(SchBaseVehiclematerialgroup::getVehicle_code, motherTray)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
GroupBindMaterialStatusEnum.BOUND.getValue()));
//查询母托盘
JSONObject group_jo = new JSONObject();
group_jo.put("vehicle_code",motherTray);
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo);
if (ObjectUtil.isNotEmpty(one)) {
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateById(one);
vehiclematerialgroupService.updateByJson(one);
}
List<SchBasePoint> schBasePointList= pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getVehicle_code, motherTray));
for(SchBasePoint schBasePoint:schBasePointList){
schBasePoint.setVehicle_code2("");
schBasePoint.setVehicle_code("");
pointService.update(schBasePoint);
}
UpdateWrapper<Material> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("palletSN",motherTray);
updateWrapper.set("group_bind_material_status",GroupBindMaterialStatusEnum.UNBOUND.getValue());
materialMapper.update(null,updateWrapper);
}
return PdaResponseVo.pdaResultOk("组盘解绑成功");
}

View File

@@ -37,6 +37,12 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
*/
void update(SchBaseVehiclematerialgroup entity);
/**
* 根据条件更新组盘信息
* @param entity
*/
void updateByJson(SchBaseVehiclematerialgroup entity);
/**
* 多选删除
* @param ids /

View File

@@ -51,5 +51,7 @@
AND vg.vehicle_type = #{vehicle_type}
</if>
AND vg.group_bind_material_status = '2'
order by vg.update_time
LIMIT 1
</select>
</mapper>

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -16,6 +17,8 @@ import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.workorder.service.dao.Workorder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -68,6 +71,24 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
vehiclematerialgroupMapper.updateById(entity);
}
@Override
public void updateByJson(SchBaseVehiclematerialgroup entity) {
//更新
UpdateWrapper<SchBaseVehiclematerialgroup> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("vehicle_code",entity.getVehicle_code());
updateWrapper.le("group_bind_material_status","2");
updateWrapper.set("task_code",entity.getTask_code());
updateWrapper.set("point_code",entity.getPoint_code());
updateWrapper.set("point_name",entity.getPoint_name());
updateWrapper.set("move_way",entity.getMove_way());
updateWrapper.set("group_bind_material_status", entity.getGroup_bind_material_status());
updateWrapper.set("update_id",entity.getUpdate_id());
updateWrapper.set("update_name",entity.getUpdate_name());
updateWrapper.set("update_time",entity.getUpdate_time());
vehiclematerialgroupMapper.update(null,updateWrapper);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除

View File

@@ -107,6 +107,14 @@ public class SchBasePointController {
return new ResponseEntity<>(schBasePointService.getPointList(region),HttpStatus.OK);
}
@PostMapping("/getPointListByPda")
@Log("获取区域下拉框")
@ApiOperation("获取区域下拉框")
//@SaCheckPermission("@el.check('schBaseRegion:list')")
public ResponseEntity<Object> getPointListByPda(@RequestBody(required = false) SchBasePoint region){
return new ResponseEntity<>(schBasePointService.getPointListByPda(region),HttpStatus.OK);
}
@PostMapping("/getPointsByRegionCodes")
@Log("获取区域下拉框")
@ApiOperation("获取区域下拉框")

View File

@@ -121,10 +121,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
// 获取region_name
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
if(ObjectUtil.isEmpty(entity.getRegion_name())){
// 获取region_name
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
}
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
@@ -143,9 +144,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
// 获取region_name
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
if(ObjectUtil.isEmpty(entity.getRegion_name())){
// 获取region_name
SchBaseRegion baseRegion = regionMapper.selectById(entity.getRegion_code());
entity.setRegion_name(baseRegion.getRegion_name());
}
// if (ObjectUtil.isNotEmpty(entity.getCan_vehicle_types())) {
// String can_vehicle_type = String.join(",", entity.getCan_vehicle_types());
// entity.setCan_vehicle_type(can_vehicle_type);

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.report;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
@@ -214,4 +215,13 @@ public class ReportController {
return new ResponseEntity<>(TableDataInfo.build(reportService.getIngotBatchList()),HttpStatus.OK);
}
@PostMapping("/hwtask")
@Log("回温出库")
@ApiOperation("回温出库")
public ResponseEntity<Object> hwtask(@RequestBody JSONObject param){
log.info("回温出库任务:"+param.toString());
reportService.hwtask(param);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.report.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
@@ -76,4 +77,6 @@ public interface IReportService extends IService<ReportDto> {
List<String> getIngotBatchList();
void hwtask(JSONObject param);
}

View File

@@ -272,6 +272,7 @@
p.vehicle_code2 AS subTray,
p.vehicle_code AS motherTray,
p.update_time AS updateTime,
p.ing_task_code AS ing_task_code,
ANY_VALUE ( v.standing_time ) AS standingTime,
ANY_VALUE ( m2.siliconGrade ) AS siliconGrade,
ANY_VALUE ( m2.productDescription ) AS productDescription,

View File

@@ -38,4 +38,6 @@ public class HwDto implements Serializable {
private String siliconGrade;
/** 客户来料批次号 */
private String ingotBatch;
/** 任务号 */
private String ing_task_code;
}

View File

@@ -1,5 +1,7 @@
package org.nl.wms.sch.report.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -7,11 +9,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.FileUtil;
import org.nl.wms.ext.service.AcsToWmsService;
import org.nl.wms.ext.service.dto.to.BaseResponse;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery;
import org.nl.wms.sch.material.service.dao.Material;
import org.nl.wms.sch.material.service.dao.mapper.MaterialMapper;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.report.service.IReportService;
import org.nl.wms.sch.report.service.dao.mapper.ReportMapper;
import org.nl.wms.sch.report.service.dto.*;
@@ -32,6 +39,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, ReportDto> impl
@Autowired
private ReportMapper reportMapper;
@Autowired
private AcsToWmsService acsToWmsService;
@Autowired
private ISchBasePointService pointService;
@Override
public IPage<ReportDto> queryAll(ReportQuery query, PageQuery pageQuery){
@@ -322,6 +333,35 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, ReportDto> impl
}
@Override
public void hwtask(JSONObject param){
param.put("request_medthod_code", "POINTTask");
param.put("request_medthod_name", "点对点任务");
param.put("device_code",param.getString("start_point"));
BaseResponse result = acsToWmsService.pdaApply(param);
Integer resultCode = result.getCode();
if(resultCode.equals(200)){
//更新起点终点任务号
SchBasePoint schBasePoint = pointService.getById(param.getString("start_point"));
SchBasePoint nextSchBasePoint = pointService.getById(param.getString("next_point"));
Map<String, String> parameters = result.getParameters();
//设置初始值
schBasePoint.setIng_task_code("1");
nextSchBasePoint.setIng_task_code("1");
if(ObjectUtil.isNotNull(parameters)){
String task_code = parameters.get("task_code");
if(ObjectUtil.isNotEmpty(task_code)){
schBasePoint.setIng_task_code(task_code);
nextSchBasePoint.setIng_task_code(task_code);
}
}
//发起任务时先把点位占用,防止发起重复任务
pointService.update(schBasePoint);
pointService.update(nextSchBasePoint);
}else{
throw new BadRequestException("回温出库失败:+"+result.getMessage());
}
}
}

View File

@@ -34,7 +34,7 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
*
* @param entity /
*/
void create(SchBaseTask entity);
String create(SchBaseTask entity);
/**
* 编辑

View File

@@ -166,7 +166,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
}
@Override
public void create(SchBaseTask entity) {
public String create(SchBaseTask entity) {
String now = DateUtil.now();
Assert.notNull(entity.getTask_status(), "任务状态不能为空!");
@@ -175,7 +175,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
entity.setCreate_time(now);
entity.setUpdate_time(now);
schBaseTaskMapper.insert(entity);
return entity.getTask_code();
}
@Override
@@ -323,10 +323,19 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
BaseResponse baseResponse= acsToWmsService.pdaApply(param);
Integer resultCode = baseResponse.getCode();
if(resultCode.equals(200)){
//发起任务时先把点位占用,防止发起重复任务
Map<String, String> parameters = baseResponse.getParameters();
//设置初始值
schBasePoint.setIng_task_code("1");
pointService.update(schBasePoint);
nexSchBasePoint.setIng_task_code("1");
if(ObjectUtil.isNotNull(parameters)){
String task_code = parameters.get("task_code");
if(ObjectUtil.isNotEmpty(task_code)){
schBasePoint.setIng_task_code(task_code);
nexSchBasePoint.setIng_task_code(task_code);
}
}
//发起任务时先把点位占用,防止发起重复任务
pointService.update(schBasePoint);
pointService.update(nexSchBasePoint);
nextList.remove(0);
}else{

View File

@@ -163,7 +163,7 @@ public abstract class AbstractTask {
* @param param
* @throws BadRequestException
*/
public void apply(JSONObject param) throws BadRequestException {
public String apply(JSONObject param) throws BadRequestException {
// 申请任务
SchBaseTask task = new SchBaseTask(); // 任务实体
String apply_point_code = param.getString("device_code"); // 请求点
@@ -251,7 +251,7 @@ public abstract class AbstractTask {
// 校验是否需要自动agv
if (!pointObj.getIs_auto()) {
// 如果不需要自动,则不创建任务
return;
return "1";
}
// 2、创建申请任务
task.setAcs_trace_id(param.getString("acs_trace_id"));
@@ -283,7 +283,8 @@ public abstract class AbstractTask {
task.setCreate_name(nickName);
task.setUpdate_id(currentUserId);
task.setUpdate_name(nickName);
taskService.create(task);
String task_code =taskService.create(task);
return task_code;
}
public void updateTaskStatus(String task_code, TaskStatus status) {

View File

@@ -181,48 +181,45 @@ public class POINTTask extends AbstractTask {
String vehicleCode=taskObj.getVehicle_code();
String vehicleCode2= taskObj.getVehicle_code2();
SchBaseVehiclematerialgroup one =null;
//母托盘更新组盘信息
if(StringUtils.isNotEmpty(vehicleCode)) {
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getPoint_code, startPoint)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
GroupBindMaterialStatusEnum.BOUND.getValue()));
JSONObject group_jo = new JSONObject();
group_jo.put("vehicle_code",vehicleCode);
one = vehiclematerialgroupService.getGroup(group_jo);
if (ObjectUtil.isNotEmpty(one)) {
one.setTask_code(taskObj.getTask_code());
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
one.setPoint_name(endPointObj.getPoint_name());
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateByJson(one);
}
}
if (ObjectUtil.isNotEmpty(one)) {
one.setTask_code(taskObj.getTask_code());
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
one.setPoint_name(endPointObj.getPoint_name());
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateById(one);
}
//子托盘更新组盘信息
if(StringUtils.isNotEmpty(vehicleCode2)) {
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
GroupBindMaterialStatusEnum.BOUND.getValue()));
if (ObjectUtil.isNotEmpty(one)) {
one.setTask_code(taskObj.getTask_code());
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
one.setPoint_name(endPointObj.getPoint_name());
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateById(one);
}
if(endPointObj.getPoint_code().contains("XHW")){
//pdm_bd_workorder_two任务完成时status改为3
workorderService.update(vehicleCode2,"3");
}
}
if (ObjectUtil.isNotEmpty(one)) {
// throw new BadRequestException(vehicleCode + " => " + startPointObj.getVehicle_type() + "的组盘信息未找到");
// }
one.setTask_code(taskObj.getTask_code());
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
one.setPoint_name(endPointObj.getPoint_name());
one.setMove_way(one.getMove_way() == null ? "" : (one.getMove_way() + " -> ") + endPointObj.getPoint_code());
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateById(one);
}
// 终点解锁
endPointObj.setIng_task_code("");
endPointObj.setVehicle_code(taskObj.getVehicle_code());

View File

@@ -210,11 +210,12 @@ public class YCLCKTask extends AbstractTask {
if (status.equals(TaskStatus.FINISHED)) { // 完成
String vehicleCode = taskObj.getVehicle_code();
String vehicleCode2 = taskObj.getVehicle_code2();
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getPoint_code, startPoint)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
GroupBindMaterialStatusEnum.BOUND.getValue()));
//查询母托盘
JSONObject group_jo = new JSONObject();
group_jo.put("vehicle_code",vehicleCode);
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroup(group_jo);
if (ObjectUtil.isNotEmpty(one)) {
one.setTask_code(taskObj.getTask_code());
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
@@ -225,7 +226,7 @@ public class YCLCKTask extends AbstractTask {
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
vehiclematerialgroupService.updateById(one);
vehiclematerialgroupService.updateByJson(one);
}
one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode2)

View File

@@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -177,10 +178,19 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
BaseResponse baseResponse= acsToWmsService.pdaApply(param);
Integer resultCode = baseResponse.getCode();
if(resultCode.equals(200)){
//发起任务时先把点位占用,防止发起重复任务
Map<String, String> parameters = baseResponse.getParameters();
//设置初始值
schBasePoint.setIng_task_code("1");
pointService.update(schBasePoint);
nexSchBasePoint.setIng_task_code("1");
if(ObjectUtil.isNotNull(parameters)){
String task_code = parameters.get("task_code");
if(ObjectUtil.isNotEmpty(task_code)){
schBasePoint.setIng_task_code(task_code);
nexSchBasePoint.setIng_task_code(task_code);
}
}
//发起任务时先把点位占用,防止发起重复任务
pointService.update(schBasePoint);
pointService.update(nexSchBasePoint);
nextList.remove(0);
}else{