晶棒工单&&新增原料缓存区

This commit is contained in:
psh
2024-07-08 14:18:13 +08:00
parent ec78e9dd8b
commit 8857a78de1
15 changed files with 717 additions and 14 deletions

View File

@@ -55,7 +55,7 @@
sch_base_point p
WHERE
m.PalletSN = p.vehicle_code2
AND p.region_code = 'YL'
AND (p.region_code='YL' or p.region_code='YLHC')
) a
GROUP BY
PalletSN;
@@ -95,7 +95,7 @@
FROM
sch_base_point
WHERE
region_code IN ( 'YL', 'HW', 'HWK' )
region_code IN ( 'YL','YLHC', 'HW', 'HWK' )
) a,
(
SELECT

View File

@@ -5,6 +5,6 @@
select p.point_code,productName,PalletSN,qty from sch_base_point p left join
(select productName,PalletSN,sum(qty) as qty from sch_base_material GROUP BY productName,PalletSN ) m
on p.vehicle_code2=m.PalletSN
where p.region_code='YL' and p.ing_task_code is not null and m.productname=#{productname}
where (p.region_code='YL' or p.region_code='YLHC') and p.ing_task_code is not null and m.productname=#{productname}
</select>
</mapper>

View File

@@ -88,4 +88,14 @@ public class SchBaseTaskController {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/move")
@Log("管理端一键移库")
@ApiOperation("管理端一键移库")
@SaIgnore
//@PreAuthorize("@el.check('task:list')")
public ResponseEntity<Object> move() {
schBaseTaskService.move();
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -99,4 +99,12 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
* @param param
*/
void operation(Map<String, Object> param);
/**
* 管理端一键移库
*
* @return
*/
void move();
}

View File

@@ -14,6 +14,10 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.ext.service.AcsToWmsService;
import org.nl.wms.ext.service.dto.to.BaseResponse;
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.mapper.SchBaseTaskMapper;
@@ -49,6 +53,12 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
@Autowired
private TaskFactory taskFactory;
@Autowired
private ISchBasePointService schBasePointService;
@Autowired
private AcsToWmsService acsToWmsService;
@Override
public IPage<SchBaseTask> queryAll(Map whereJson, PageQuery page) {
String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString() : null;
@@ -267,4 +277,36 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
}
}
/**
* 管理端一键移库
*
* @return
*/
@Override
public void move(){
log.info("管理端发起一键移库!");
List<SchBasePoint> schBasePointList=schBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getIs_used,true)
.eq(SchBasePoint::getRegion_code, "YLHC")
.notLike(SchBasePoint::getVehicle_code2,"YBHC")
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, "")
));
List<SchBasePoint> nextList=schBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getRegion_code, "YL")
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, "")));
for(SchBasePoint schBasePoint:schBasePointList){
JSONObject param =new JSONObject();
param.put("start_point",schBasePoint.getPoint_code());
param.put("next_point",nextList.get(0).getPoint_code());
param.put("request_medthod_code", "POINTTask");
param.put("request_medthod_name", "点对点任务");
param.put("device_code",param.getString("start_point"));
BaseResponse baseResponse=acsToWmsService.acsApply(param);
nextList.remove(0);
}
}
}

View File

@@ -76,9 +76,9 @@ public class POINTTask extends AbstractTask {
task.setRemark("");
SchBasePoint schBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, task.getPoint_code1()));
SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, task.getPoint_code2()));
if(task.getPoint_code2().startsWith("DKT")){
SchBasePoint nextSchBasePoint= pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, task.getPoint_code2()));
//如果是叠盘位,根据当前数量+1为目标地址
int qty=nextSchBasePoint.getVehicle_qty()+1;
task.setPoint_code2(task.getPoint_code2().substring(0,task.getPoint_code2().length()-1)+qty);
@@ -88,8 +88,10 @@ public class POINTTask extends AbstractTask {
taskService.update(task);
//发起任务时先把点位占用,防止发起重复任务
// point.setIng_task_code(task.getTask_code());
// pointService.update(point);
schBasePoint.setIng_task_code(task.getTask_code());
pointService.update(schBasePoint);
nextSchBasePoint.setIng_task_code(task.getTask_code());
pointService.update(nextSchBasePoint);
//下发
this.renotifyAcs(task);
@@ -207,7 +209,7 @@ public class POINTTask extends AbstractTask {
// 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) {
startPointObj.setIng_task_code("");
pointService.update(endPointObj);
pointService.update(startPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());

View File

@@ -158,6 +158,12 @@ public class SSXBKJTask extends AbstractTask {
taskObj.setRemark("任务完成");
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
// 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) {
startPointObj.setIng_task_code("");
//任务取消把原先占用的位置释放
pointService.update(startPointObj);
}
// 终点解锁
if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setIng_task_code("");

View File

@@ -92,7 +92,7 @@ public class YCLRKTask extends AbstractTask {
String extGroupData = task.getExt_group_data();
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
// String materialType = jsonObject.getString("material_type");
SchBasePoint point = findNextPoint();
SchBasePoint point = findNextPoint(jsonObject.getString("sub_tray"));
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
@@ -123,8 +123,11 @@ public class YCLRKTask extends AbstractTask {
*
* @return
*/
private SchBasePoint findNextPoint() {
private SchBasePoint findNextPoint(String sub_tray) {
String regionCode = "YL";
if(sub_tray.startsWith("YBHC")) {
regionCode = "YLHC";
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode, "0");
for (SchBasePoint schBasePoint : schBasePointList) {
if (schBasePoint.getIs_used()

View File

@@ -45,6 +45,6 @@
from sch_base_point p
LEFT JOIN sch_base_vehiclematerialgroup v
on p.vehicle_code2=v.vehicle_code
where p.region_code in('YL','HW','HWK');
where p.region_code in('YL','YLHC','HW','HWK');
</select>
</mapper>

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.workorder.controller.service.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@@ -18,4 +19,8 @@ public class WorkorderQuery implements Serializable {
private String supplierCode;
//绑定状态
private String status;
//生产工单
private String moname;
//出库单号
private String somtOrderNo;
}

View File

@@ -27,6 +27,8 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
public IPage<Workorder> queryAll(WorkorderQuery whereJson, PageQuery page){
IPage<Workorder> pages = new Page<>(page.getPage() + 1, page.getSize());
LambdaQueryWrapper<Workorder> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotBlank(whereJson.getMoname()), Workorder::getMoname,whereJson.getMoname());
wrapper.like(StringUtils.isNotBlank(whereJson.getSomtOrderNo()), Workorder::getSomtOrderNo,whereJson.getSomtOrderNo());
wrapper.like(StringUtils.isNotBlank(whereJson.getPalletSN()), Workorder::getPalletSN,whereJson.getPalletSN());
wrapper.like(StringUtils.isNotBlank(whereJson.getLotSN()), Workorder::getLotSN,whereJson.getLotSN());
wrapper.like(StringUtils.isNotBlank(whereJson.getProductName()), Workorder::getProductName,whereJson.getProductName());