Browse Source

Merge remote-tracking branch 'origin/master'

master
涂强 1 week ago
parent
commit
acdfda5cb2
  1. 10
      lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java
  2. 2
      lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java
  3. 17
      lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml
  4. 5
      lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java
  5. 17
      lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java
  6. 45
      lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java
  7. 184
      lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java

10
lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java

@ -55,6 +55,16 @@ public interface IBstIvtCutpointivtService extends IService<BstIvtCutpointivt> {
* @return / * @return /
*/ */
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort); 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套轴异常位 * @param type 点位类型1套轴对接位2分切缓存位3分切对接位4套轴异常位

2
lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java

@ -16,6 +16,8 @@ public interface BstIvtCutpointivtMapper extends BaseMapper<BstIvtCutpointivt> {
List<BstIvtCutpointivt> getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort); 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<BstIvtPackageinfoivt> getPointByStatus(String point_status, String ivt_status);
List<BstIvtCutpointivt> getAreaNotTaskPointByLocationAreaAndStatus(String location); List<BstIvtCutpointivt> getAreaNotTaskPointByLocationAreaAndStatus(String location);

17
lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml

@ -25,6 +25,23 @@
ORDER BY bic.sort_seq DESC ORDER BY bic.sort_seq DESC
</if> </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>
<select id="getPointByStatus" <select id="getPointByStatus"
resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt"> resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt">

5
lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java

@ -97,6 +97,11 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl<BstIvtCutpointivtM
return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatus(type, pointStatus, area, sort); 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 @Override
public List<BstIvtCutpointivt> getAreaNotTaskPointByStatusNotCheckPickUpCompleted(String type, String pointStatus, String area, String sort) { public List<BstIvtCutpointivt> getAreaNotTaskPointByStatusNotCheckPickUpCompleted(String type, String pointStatus, String area, String sort) {
return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatusNotCheckPickUpCompleted(type, pointStatus, area, sort); return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatusNotCheckPickUpCompleted(type, pointStatus, area, sort);

17
lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoCallAirShaftTask.java

@ -282,8 +282,6 @@ public class AutoCallAirShaftTask extends Prun {
// 当前拔轴的分切计划,一根轴最多2卷子卷 // 当前拔轴的分切计划,一根轴最多2卷子卷
List<PdmBiSlittingproductionplan> oldPlans = slittingproductionplanService.getByQzzNo(qzzNo); List<PdmBiSlittingproductionplan> oldPlans = slittingproductionplanService.getByQzzNo(qzzNo);
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, needPlan.getQzz_generation());
//设置当前的拔管纸管信息到param里 //设置当前的拔管纸管信息到param里
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans); SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
// 套管数量 // 套管数量
@ -291,8 +289,10 @@ public class AutoCallAirShaftTask extends Prun {
// 拔管数量 // 拔管数量
param.put("pullCount", oldPlans.size()); param.put("pullCount", oldPlans.size());
param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList())); param.put("containers", oldPlans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList()));
//呼叫agv换托盘 //呼叫agv换托盘,判断是否有计划需要的管芯
toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0)); boolean paperflag = toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
// 保存所需要的套轴分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, needPlan.getQzz_generation());
//生成并下发拔轴行架任务 //生成并下发拔轴行架任务
trussCallAirShaftTask.createTask(param); trussCallAirShaftTask.createTask(param);
// 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴) // 将分切计划is_paper_ok 1(纸管已经准备好) -> 2(已经套轴)
@ -362,14 +362,14 @@ public class AutoCallAirShaftTask extends Prun {
.eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO) .eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO)
.eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES)); .eq(PdmBiSlittingproductionplan::getIs_paper_ok, SlitterConstant.SLITTER_YES));
} }
//若套轴暂存架没有相同规格的气胀轴,直接去气胀轴库找即可 //调用agv换托盘
// 调用ACS滚条气涨轴下来 boolean paperflag = toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
// 调用ACS滚条气涨轴下来,若套轴暂存架没有相同规格的气胀轴,直接去气胀轴库找即可
if (!toAcsOutShaft(planDto, emptyPoints.get(0))) { if (!toAcsOutShaft(planDto, emptyPoints.get(0))) {
log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", emptyPoints.get(0).getPoint_code()); log.error("呼叫出轴失败-穿拔轴{}不进行套轴,跳过!", emptyPoints.get(0).getPoint_code());
return; return;
} }
//调用agv换托盘
toCallAgvMovePaperTube(needPlans, "0", emptyPoints.get(0));
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划 // 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, qzz_generation); saveCutPlanMessage(emptyPoints.get(0), needPlans, qzzSize, qzz_generation);
} }
@ -586,7 +586,6 @@ public class AutoCallAirShaftTask extends Prun {
param.put("is_bushing", SlitterConstant.SLITTER_YES); param.put("is_bushing", SlitterConstant.SLITTER_YES);
} }
} }
/** /**
* 呼叫AGV更换纸管 * 呼叫AGV更换纸管
* @param needPlans 所需要套轴的分切计划 * @param needPlans 所需要套轴的分切计划

45
lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java

@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; 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.mapper.SlitterMapper;
import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil; import org.nl.b_lms.sch.tasks.slitter.util.SlitterTaskUtil;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -46,7 +47,7 @@ public class AutoSendAirShaftAgvTask {
private IPdmBiSlittingproductionplanService slittingproductionplanService; private IPdmBiSlittingproductionplanService slittingproductionplanService;
@Autowired @Autowired
private SendAirShaftAgvTask sendAirShaftAgvTask; private SendAirShaftAgvTask sendAirShaftAgvTask;
@Autowired @Resource
private SlitterMapper slitterMapper; private SlitterMapper slitterMapper;
@Autowired @Autowired
private RedissonClient redissonClient; private RedissonClient redissonClient;
@ -59,9 +60,33 @@ public class AutoSendAirShaftAgvTask {
// 获取套轴对接位有气涨轴没任务的点位 // 获取套轴对接位有气涨轴没任务的点位
// 目前满足B1,B2 // 目前满足B1,B2
// todo: 可以把区域校验去掉,就能够包括B1,B2,B3,B4 // 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) { for (BstIvtCutpointivt cutPoint : cutPoints) {
log.info("此时执行的点位:{}", cutPoint.getPoint_code()); 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()) List<String> collect = Stream.of(cutPoint.getQzz_no1(), cutPoint.getQzz_no2())
.filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); .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;
}
}
} }

184
lms/nladmin-system/src/main/java/org/nl/wms/st/instor/rest/CheckController.java

@ -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);
}
}
Loading…
Cancel
Save