Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -55,6 +55,16 @@ public interface IBstIvtCutpointivtService extends IService<BstIvtCutpointivt> {
|
||||
* @return /
|
||||
*/
|
||||
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort);
|
||||
|
||||
/**
|
||||
* 获取类型状态,没任务的点位
|
||||
* @param type 点位类型:1套轴对接位,2分切缓存位,3分切对接位,4套轴异常位
|
||||
* @param pointStatus 点位状态:1空位、2有气涨轴、3有子卷
|
||||
* @param area 区域(0上1下)
|
||||
* @param sort 0:不排序,1:正序, 2:倒序
|
||||
* @return /
|
||||
*/
|
||||
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus2(String type, String pointStatus, String area, String sort);
|
||||
/**
|
||||
* 获取类型状态,没任务的点位,不校验取货完成的任务
|
||||
* @param type 点位类型:1套轴对接位,2分切缓存位,3分切对接位,4套轴异常位
|
||||
|
||||
@@ -16,6 +16,8 @@ public interface BstIvtCutpointivtMapper extends BaseMapper<BstIvtCutpointivt> {
|
||||
|
||||
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort);
|
||||
|
||||
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus2(String type, String pointStatus, String area, String sort);
|
||||
|
||||
List<BstIvtPackageinfoivt> getPointByStatus(String point_status, String ivt_status);
|
||||
|
||||
List<BstIvtCutpointivt> getAreaNotTaskPointByLocationAreaAndStatus(String location);
|
||||
|
||||
@@ -25,6 +25,23 @@
|
||||
ORDER BY bic.sort_seq DESC
|
||||
</if>
|
||||
|
||||
</select>
|
||||
|
||||
<select id="getAreaNotTaskPointByStatus2"
|
||||
resultType="org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt">
|
||||
SELECT bic.*
|
||||
FROM bst_ivt_cutpointivt bic
|
||||
WHERE bic.point_type = #{type}
|
||||
AND bic.is_used = '1'
|
||||
AND bic.point_status = #{pointStatus}
|
||||
AND bic.point_location = #{area}
|
||||
<if test="sort == '1'">
|
||||
ORDER BY bic.sort_seq ASC
|
||||
</if>
|
||||
<if test="sort == '2'">
|
||||
ORDER BY bic.sort_seq DESC
|
||||
</if>
|
||||
|
||||
</select>
|
||||
<select id="getPointByStatus"
|
||||
resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt">
|
||||
|
||||
@@ -97,6 +97,11 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl<BstIvtCutpointivtM
|
||||
return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatus(type, pointStatus, area, sort);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BstIvtCutpointivt> getAreaNotTaskPointByStatus2(String type, String pointStatus, String area, String sort) {
|
||||
return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatus2(type, pointStatus, area, sort);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BstIvtCutpointivt> getAreaNotTaskPointByStatusNotCheckPickUpCompleted(String type, String pointStatus, String area, String sort) {
|
||||
return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatusNotCheckPickUpCompleted(type, pointStatus, area, sort);
|
||||
|
||||
@@ -282,8 +282,6 @@ public class AutoCallAirShaftTask extends Prun {
|
||||
// 当前拔轴的分切计划,一根轴最多2卷子卷
|
||||
List<PdmBiSlittingproductionplan> oldPlans = slittingproductionplanService.getByQzzNo(qzzNo);
|
||||
|
||||
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
|
||||
saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, needPlan.getQzz_generation());
|
||||
//设置当前的拔管纸管信息到param里
|
||||
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
|
||||
// 套管数量
|
||||
@@ -291,8 +289,10 @@ public class AutoCallAirShaftTask extends Prun {
|
||||
// 拔管数量
|
||||
param.put("pullCount", oldPlans.size());
|
||||
param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList()));
|
||||
//呼叫agv换托盘
|
||||
toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
|
||||
//呼叫agv换托盘,判断是否有计划需要的管芯
|
||||
boolean paperflag = toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
|
||||
// 保存所需要的套轴分切计划数据到点位上(套轴对接位)更新分切计划
|
||||
saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, needPlan.getQzz_generation());
|
||||
//生成并下发拔轴行架任务
|
||||
trussCallAirShaftTask.createTask(param);
|
||||
// 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴)
|
||||
@@ -362,14 +362,14 @@ public class AutoCallAirShaftTask extends Prun {
|
||||
.eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)
|
||||
.eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES));
|
||||
}
|
||||
//若套轴暂存架没有相同规格的气胀轴,直接去气胀轴库找即可
|
||||
// 调用ACS滚条气涨轴下来
|
||||
//调用agv换托盘
|
||||
boolean paperflag = toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
|
||||
|
||||
// 调用ACS滚条气涨轴下来,若套轴暂存架没有相同规格的气胀轴,直接去气胀轴库找即可
|
||||
if (!toAcsOutShaft(planDto, emptyPoints.get(0))) {
|
||||
log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", emptyPoints.get(0).getPoint_code());
|
||||
return;
|
||||
}
|
||||
//调用agv换托盘
|
||||
toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
|
||||
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
|
||||
saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, qzz_generation);
|
||||
}
|
||||
@@ -586,7 +586,6 @@ public class AutoCallAirShaftTask extends Prun {
|
||||
param.put("is_bushing", SlitterConstant.SLITTER_YES);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 呼叫AGV更换纸管
|
||||
* @param needPlans 所需要套轴的分切计划
|
||||
|
||||
@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
|
||||
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.update.LambdaUpdateWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService;
|
||||
@@ -20,11 +19,13 @@ import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum;
|
||||
import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper;
|
||||
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -46,7 +47,7 @@ public class AutoSendAirShaftAgvTask {
|
||||
private IPdmBiSlittingproductionplanService slittingproductionplanService;
|
||||
@Autowired
|
||||
private SendAirShaftAgvTask sendAirShaftAgvTask;
|
||||
@Autowired
|
||||
@Resource
|
||||
private SlitterMapper slitterMapper;
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
@@ -59,9 +60,33 @@ public class AutoSendAirShaftAgvTask {
|
||||
// 获取套轴对接位有气涨轴没任务的点位
|
||||
// 目前满足B1,B2
|
||||
// todo: 可以把区域校验去掉,就能够包括B1,B2,B3,B4
|
||||
List<BstIvtCutpointivt> cutPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "2", "0", "0");
|
||||
List<BstIvtCutpointivt> cutPoints = bcutpointivtService.getAreaNotTaskPointByStatus2("1", "2", "0", "0");
|
||||
for (BstIvtCutpointivt cutPoint : cutPoints) {
|
||||
log.info("此时执行的点位:{}", cutPoint.getPoint_code());
|
||||
boolean taskflag = this.isSingleTask(cutPoint.getPoint_code());
|
||||
if (taskflag) {
|
||||
cutPoint.setRemark("点位"+cutPoint.getPoint_code()+"存在未完成的任务!");
|
||||
cutPoint.setIs_used("0");
|
||||
cutPoint.setUpdate_time(DateUtil.now());
|
||||
bcutpointivtService.updateById(cutPoint);
|
||||
continue;
|
||||
}
|
||||
taskflag = this.isSingleTask(cutPoint.getTruss_point_code1());
|
||||
if (taskflag) {
|
||||
cutPoint.setRemark("点位"+cutPoint.getTruss_point_code1()+"存在未完成的任务!");
|
||||
cutPoint.setIs_used("0");
|
||||
cutPoint.setUpdate_time(DateUtil.now());
|
||||
bcutpointivtService.updateById(cutPoint);
|
||||
continue;
|
||||
}
|
||||
taskflag = this.isSingleTask(cutPoint.getTruss_point_code2());
|
||||
if (taskflag) {
|
||||
cutPoint.setRemark("点位"+cutPoint.getTruss_point_code2()+"存在未完成的任务!");
|
||||
cutPoint.setIs_used("0");
|
||||
cutPoint.setUpdate_time(DateUtil.now());
|
||||
bcutpointivtService.updateById(cutPoint);
|
||||
continue;
|
||||
}
|
||||
// 获取分切计划
|
||||
List<String> collect = Stream.of(cutPoint.getQzz_no1(), cutPoint.getQzz_no2())
|
||||
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList());
|
||||
@@ -168,4 +193,18 @@ public class AutoSendAirShaftAgvTask {
|
||||
|
||||
}
|
||||
|
||||
//判断该点位是否存在未完成的任务
|
||||
public boolean isSingleTask(String point_code) {
|
||||
JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(task1) || ObjectUtil.isNotEmpty(task2) || ObjectUtil.isNotEmpty(task3) || ObjectUtil.isNotEmpty(task4)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,184 +0,0 @@
|
||||
package org.nl.wms.st.instor.rest;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.nl.wms.st.instor.service.CheckService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 盘点功能
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/check")
|
||||
@Slf4j
|
||||
public class CheckController {
|
||||
private final CheckService checkService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询盘点单")
|
||||
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(checkService.pageQuery(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getDtlView")
|
||||
@Log("查询盘点单明细详情")
|
||||
|
||||
public ResponseEntity<Object> getDtlView(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(checkService.getDtlView(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getExceptionDispose")
|
||||
@Log("查询盘点单明细异常")
|
||||
|
||||
public ResponseEntity<Object> getExceptionDispose(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(checkService.getExceptionDispose(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getOutBillDtl")
|
||||
@Log("查询移库单")
|
||||
|
||||
public ResponseEntity<Object> getOutBillDtl(@RequestParam Map whereJson) {
|
||||
return new ResponseEntity<>(checkService.getOutBillDtl(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getOutBillDtl2")
|
||||
@Log("查询盘点单明细2")
|
||||
|
||||
public ResponseEntity<Object> getOutBillDtl2(@RequestParam Map whereJson) {
|
||||
return new ResponseEntity<>(checkService.getOutBillDtl2(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getOutBillDis")
|
||||
@Log("查询移库单")
|
||||
|
||||
public ResponseEntity<Object> getOutBillDis(@RequestParam Map whereJson) {
|
||||
return new ResponseEntity<>(checkService.getOutBillDis(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("删除移库单")
|
||||
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
checkService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改盘点单")
|
||||
|
||||
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson) {
|
||||
checkService.update(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping()
|
||||
@Log("新增盘点单")
|
||||
|
||||
public ResponseEntity<Object> insertDtl(@RequestBody JSONObject whereJson) {
|
||||
checkService.insertDtl(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PostMapping("/allInsert")
|
||||
@Log("新增全部在库木箱")
|
||||
|
||||
public ResponseEntity<Object> allInsert(@RequestBody JSONObject whereJson) {
|
||||
checkService.allInsert(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@GetMapping("/getStructIvt")
|
||||
@Log("查询可盘点库存")
|
||||
|
||||
public ResponseEntity<Object> getStructIvt(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(checkService.getStructIvt(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/confirm")
|
||||
@Log("盘点确定")
|
||||
|
||||
public ResponseEntity<Object> confirm(@RequestBody JSONObject whereJson) {
|
||||
checkService.confirm(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@GetMapping("/getInvTypes")
|
||||
@Log("查询单据字段")
|
||||
|
||||
public ResponseEntity<Object> getInvTypes() {
|
||||
return new ResponseEntity<>(checkService.getInvTypes(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/handdown")
|
||||
@Log("移库单手动下发")
|
||||
|
||||
public ResponseEntity<Object> handdown(@RequestBody JSONObject whereJson) {
|
||||
checkService.handdown(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/saveCheck")
|
||||
@Log("盘点保存")
|
||||
|
||||
public ResponseEntity<Object> saveCheck(@RequestBody JSONObject whereJson) {
|
||||
checkService.saveCheck(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/process0")
|
||||
@Log("财务为准")
|
||||
|
||||
public ResponseEntity<Object> process0(@RequestBody JSONObject whereJson) {
|
||||
checkService.process0(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/process1")
|
||||
@Log("实物为准")
|
||||
|
||||
public ResponseEntity<Object> process1(@RequestBody JSONObject whereJson) {
|
||||
checkService.process1(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(value = "/download")
|
||||
public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
|
||||
checkService.download(checkService.getOutBillDtl(whereJson), response);
|
||||
}
|
||||
|
||||
@PostMapping("/disposeConfirm")
|
||||
@Log("处理确认")
|
||||
|
||||
public ResponseEntity<Object> disposeConfirm(@RequestBody JSONObject whereJson) {
|
||||
checkService.disposeConfirm(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/confirmBtn")
|
||||
@Log("强制确认")
|
||||
|
||||
public ResponseEntity<Object> confirmBtn(@RequestBody JSONObject whereJson) {
|
||||
checkService.confirmBtn(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@PostMapping("/repairSubmit")
|
||||
@Log("补录明细")
|
||||
|
||||
public ResponseEntity<Object> repairSubmit(@RequestBody JSONObject whereJson) {
|
||||
checkService.repairSubmit(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user