add:新增 缓存区一键移库 功能
This commit is contained in:
@@ -49,6 +49,14 @@ public class ReportController {
|
||||
return new ResponseEntity<>(TableDataInfo.build(reportService.queryYlOutDetail(whereJson,page)),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/yl/movedetail")
|
||||
@Log("原料库工单库存明细")
|
||||
@ApiOperation("原料库工单库存明细")
|
||||
//@SaCheckPermission("@el.check('material:list')")
|
||||
public ResponseEntity<Object> queryMoveDetail(ReportQuery whereJson, PageQuery page){
|
||||
return new ResponseEntity<>(TableDataInfo.build(reportService.queryMoveDetail(whereJson,page)),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/yl/in")
|
||||
@Log("原材入库明细")
|
||||
@ApiOperation("原材入库明细")
|
||||
|
||||
@@ -40,6 +40,14 @@ public interface IReportService extends IService<ReportDto> {
|
||||
*/
|
||||
IPage<YCLKCDto> queryYlOutDetail(ReportQuery whereJson, PageQuery pageable);
|
||||
|
||||
/**
|
||||
* 查询原料缓存区库存
|
||||
* @param whereJson
|
||||
* @param pageable
|
||||
* @return
|
||||
*/
|
||||
IPage<YCLKCDto> queryMoveDetail(ReportQuery whereJson, PageQuery pageable);
|
||||
|
||||
IPage<YlDto> queryYlIn(ReportQuery whereJson, PageQuery pageable);
|
||||
|
||||
IPage<YlDto> queryYlOut(ReportQuery whereJson, PageQuery pageable);
|
||||
|
||||
@@ -27,6 +27,8 @@ public interface ReportMapper extends BaseMapper<ReportDto> {
|
||||
|
||||
IPage<YCLKCDto> queryYlOutDetail(IPage<YCLKCDto> pages, ReportQuery query);
|
||||
|
||||
IPage<YCLKCDto> queryMoveDetail(IPage<YCLKCDto> pages, ReportQuery query);
|
||||
|
||||
IPage<YlDto> queryYlIn(IPage<YlDto> pages, ReportQuery query);
|
||||
|
||||
IPage<YlDto> queryYlOut(IPage<YlDto> pages, ReportQuery query);
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
AND p.vehicle_code2 IS NOT NULL
|
||||
AND t.STATUS IN ( '0','1')
|
||||
AND p.region_code IN ( 'YL','YLHC','KJHC' )
|
||||
AND (p.ing_task_code IS NULL or p.ing_task_code = '')
|
||||
<if test="query.supplierName != null">
|
||||
and m2.supplierName like CONCAT('%', #{query.supplierName}, '%')
|
||||
</if>
|
||||
@@ -147,6 +148,36 @@
|
||||
ORDER BY point_code ASC
|
||||
</select>
|
||||
|
||||
<select id="queryMoveDetail" resultType="org.nl.wms.sch.report.service.dto.YCLKCDto">
|
||||
SELECT
|
||||
a.*
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
p.point_code AS pointCode,
|
||||
p.region_name AS regionName,
|
||||
p.vehicle_code2 AS subTray,
|
||||
p.vehicle_code AS motherTray,
|
||||
( CASE WHEN ( p.ing_task_code = '' OR p.ing_task_code IS NULL ) THEN 0 ELSE 1 END ) AS STATUS,
|
||||
p.update_time AS updateTime
|
||||
FROM
|
||||
sch_base_point p
|
||||
WHERE
|
||||
p.vehicle_code2 != ''
|
||||
AND p.vehicle_code2 IS NOT NULL
|
||||
AND p.is_used = '1'
|
||||
AND P.vehicle_code2 NOT LIKE '%YBHC%'
|
||||
AND (p.ing_task_code IS NULL or p.ing_task_code = '')
|
||||
AND p.region_code IN ( 'YLHC' )) a
|
||||
<if test="query.point_code != null">
|
||||
and a.point_code like CONCAT('%', #{query.point_code}, '%')
|
||||
</if>
|
||||
<if test="query.status != null">
|
||||
and a.status = #{query.point_code}
|
||||
</if>
|
||||
ORDER BY a.pointCode ASC
|
||||
</select>
|
||||
|
||||
<select id="queryYlIn" resultType="org.nl.wms.sch.report.service.dto.YlDto">
|
||||
SELECT
|
||||
m.lotSN,
|
||||
|
||||
@@ -54,6 +54,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, ReportDto> impl
|
||||
return pages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<YCLKCDto> queryMoveDetail(ReportQuery query, PageQuery pageQuery){
|
||||
IPage<YCLKCDto> pages = new Page<>(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||
pages = reportMapper.queryMoveDetail(pages, query);
|
||||
return pages;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<YlDto> queryYlIn(ReportQuery query, PageQuery pageQuery){
|
||||
IPage<YlDto> pages = new Page<>(pageQuery.getPage() + 1, pageQuery.getSize());
|
||||
|
||||
@@ -59,6 +59,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
|
||||
@Autowired
|
||||
private AcsToWmsService acsToWmsService;
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseTask> queryAll(Map whereJson, PageQuery page) {
|
||||
@@ -293,6 +295,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
.eq(SchBasePoint::getRegion_code, "YL")
|
||||
.eq(SchBasePoint::getIs_used, true)
|
||||
.eq(SchBasePoint::getVehicle_qty, 0)
|
||||
.and(slam -> slam.isNull(SchBasePoint::getVehicle_code2)
|
||||
.or()
|
||||
.eq(SchBasePoint::getVehicle_code2, ""))
|
||||
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, "")));
|
||||
@@ -302,13 +307,23 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
return;
|
||||
}
|
||||
JSONObject param = new JSONObject();
|
||||
SchBasePoint nexSchBasePoint = nextList.get(0);
|
||||
param.put("start_point", schBasePoint.getPoint_code());
|
||||
param.put("next_point", nextList.get(0).getPoint_code());
|
||||
param.put("next_point", nexSchBasePoint.getPoint_code());
|
||||
param.put("request_medthod_code", "POINTTask");
|
||||
param.put("request_medthod_name", "点对点任务");
|
||||
param.put("device_code", param.getString("start_point"));
|
||||
param.put("vehicle_code",schBasePoint.getVehicle_code());
|
||||
param.put("vehicle_code2",schBasePoint.getVehicle_code2());
|
||||
param.put("device_code", schBasePoint.getPoint_code());
|
||||
acsToWmsService.pdaApply(param);
|
||||
//发起任务时先把点位占用,防止发起重复任务
|
||||
schBasePoint.setIng_task_code("1");
|
||||
pointService.update(schBasePoint);
|
||||
nexSchBasePoint.setIng_task_code("1");
|
||||
pointService.update(nexSchBasePoint);
|
||||
|
||||
nextList.remove(0);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,4 +68,13 @@ public class WorkorderController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/batchCreate")
|
||||
@Log("批量生成移库任务")
|
||||
@ApiOperation("批量生成移库任务")
|
||||
public ResponseEntity<Object> batchCreate(@RequestBody PointDetailAdd pointDetailAdd){
|
||||
log.info("批量生成移库任务:"+pointDetailAdd.toString());
|
||||
workorderService.batchCreate(pointDetailAdd);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -53,6 +53,12 @@ public interface IWorkorderService extends IService<Workorder> {
|
||||
*/
|
||||
void batchChange( PointDetailAdd pointDetailAdd);
|
||||
|
||||
/**
|
||||
* 批量生成移库任务
|
||||
* @param pointDetailAdd
|
||||
*/
|
||||
void batchCreate( PointDetailAdd pointDetailAdd);
|
||||
|
||||
/**
|
||||
* 批量生成工单出库任务
|
||||
*/
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
AND p.vehicle_code2 IS NOT NULL
|
||||
AND t.STATUS = '1'
|
||||
AND p.region_code IN ( 'YL','YLHC','KJHC' )
|
||||
AND (p.ing_task_code IS NULL or p.ing_task_code = '')
|
||||
GROUP BY
|
||||
pointCode
|
||||
ORDER BY point_code ASC
|
||||
@@ -105,6 +106,7 @@
|
||||
AND p.vehicle_code2 IS NOT NULL
|
||||
AND t.STATUS IN ( '0' )
|
||||
AND p.region_code IN ( 'YL','YLHC','KJHC' )
|
||||
AND (p.ing_task_code IS NULL or p.ing_task_code = '')
|
||||
GROUP BY
|
||||
pointCode
|
||||
ORDER BY point_code ASC
|
||||
|
||||
@@ -12,8 +12,11 @@ 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.wms.ext.service.AcsToWmsService;
|
||||
import org.nl.wms.pda.service.PdaService;
|
||||
import org.nl.wms.pdm.service.dao.PointDetailAdd;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.report.service.dto.YCLKCDto;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||
@@ -44,6 +47,12 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private PdaService pdaService;
|
||||
@Autowired
|
||||
private ISchBasePointService schBasePointService;
|
||||
@Autowired
|
||||
private AcsToWmsService acsToWmsService;
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
|
||||
@Override
|
||||
public IPage<Workorder> queryAll(WorkorderQuery whereJson, PageQuery page){
|
||||
@@ -111,6 +120,63 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
|
||||
//更新工单状态和回温模式
|
||||
workorderMapper.batchChange(pointCodes,mode,status);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void batchCreate( PointDetailAdd pointDetailAdd){
|
||||
log.info("管理端发起一键移库!");
|
||||
//点位集合
|
||||
List<String> pointCodes = pointDetailAdd.getPointCodes();
|
||||
//下发状态
|
||||
String status = pointDetailAdd.getStatus();
|
||||
if("1".equals(status)){
|
||||
for(String pointCode : pointCodes){
|
||||
//查询当前点位最新信息
|
||||
SchBasePoint schBasePoint =schBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getIs_used, true)
|
||||
.eq(SchBasePoint::getRegion_code, "YLHC")
|
||||
.eq(SchBasePoint::getPoint_code, pointCode)
|
||||
.notLike(SchBasePoint::getVehicle_code2, "YBHC")
|
||||
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, "")
|
||||
));
|
||||
if(ObjectUtil.isNull(schBasePoint)){
|
||||
continue;
|
||||
}
|
||||
//查询是否有目的空点位
|
||||
SchBasePoint nexSchBasePoint = schBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, "YL")
|
||||
.eq(SchBasePoint::getIs_used, true)
|
||||
.eq(SchBasePoint::getVehicle_qty, 0)
|
||||
.and(slam -> slam.isNull(SchBasePoint::getVehicle_code2)
|
||||
.or()
|
||||
.eq(SchBasePoint::getVehicle_code2, ""))
|
||||
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
||||
.or()
|
||||
.eq(SchBasePoint::getIng_task_code, "")));
|
||||
if(ObjectUtil.isNull(nexSchBasePoint)){
|
||||
log.info("原料库存区无可用点位,取消后续循环");
|
||||
break;
|
||||
}
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("start_point", schBasePoint.getPoint_code());
|
||||
param.put("next_point", nexSchBasePoint.getPoint_code());
|
||||
param.put("request_medthod_code", "POINTTask");
|
||||
param.put("request_medthod_name", "点对点任务");
|
||||
param.put("vehicle_code",schBasePoint.getVehicle_code());
|
||||
param.put("vehicle_code2",schBasePoint.getVehicle_code2());
|
||||
param.put("device_code", schBasePoint.getPoint_code());
|
||||
acsToWmsService.pdaApply(param);
|
||||
//发起任务时先把点位占用,防止发起重复任务
|
||||
schBasePoint.setIng_task_code("1");
|
||||
pointService.update(schBasePoint);
|
||||
nexSchBasePoint.setIng_task_code("1");
|
||||
pointService.update(nexSchBasePoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
//@Transactional(rollbackFor = Exception.class)
|
||||
public void batchCreateTask(){
|
||||
|
||||
Reference in New Issue
Block a user