盘点管理页面字段显示

This commit is contained in:
liuhanqing
2025-09-16 10:57:13 +08:00
parent f3637408cb
commit 5049b8e79f
20 changed files with 266 additions and 156 deletions

View File

@@ -34,7 +34,7 @@ public class ToWmsApiController {
@PostMapping("/requestEnterByTrayCode")
public AjaxResult requestEnterByTrayCode(@RequestBody RequestEnter requestEnter) {
AjaxResult ajaxResult = toWmsService.requestEnterByTrayCode(requestEnter);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "入库任务请求(托盘)",ajaxResult);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "入库任务请求",ajaxResult);
requestLogService.insertRequestLog(requestLog);
return ajaxResult;
}

View File

@@ -8,8 +8,6 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class RequestEnter {
private String entranceId;
private String trayCode;
private String taskNo;
private String wmsType;
private String spec;
}

View File

@@ -9,6 +9,10 @@ import com.ruoyi.api.domain.RequestEnter;
import com.ruoyi.api.domain.RequestEnterResponse;
import com.ruoyi.api.domain.WmsJobRequest;
import com.ruoyi.api.service.IToWmsService;
import com.ruoyi.bas.BasProduct.domain.BasProduct;
import com.ruoyi.bas.BasProduct.service.IBasProductService;
import com.ruoyi.bas.BasProductCode.util.ProcodeUtils;
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace;
import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService;
import com.ruoyi.bas.container.domain.BasContainer;
@@ -18,8 +22,13 @@ import com.ruoyi.bas.tag.service.IBasTagService;
import com.ruoyi.bas.taskNo.service.IBasTaskNoService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.agv.domain.AgvContainerTask;
import com.ruoyi.device.agv.service.IAgvContainerTaskService;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
@@ -58,77 +67,110 @@ public class ToWmsServiceImpl implements IToWmsService {
@Autowired
private IBasCargoSpaceService basCargoSpaceService;
@Autowired
private IOutStockoutDetailService outStockoutDetailService;
@Autowired
private IOutStockoutService outStockoutService;
@Autowired
private IAgvContainerTaskService agvContainerTaskService;
@Autowired
private IBasProductService basProductService;
@Autowired
private IBasJobIdService basJobIdService;
@Override
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTrayCode(requestEnter.getTrayCode());
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if(mydoJobs.isEmpty()){
return AjaxResult.warn(MessageUtils.message("warn.message"));
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
return AjaxResult.error("托盘条码不能为空");
}
MydoJob mydoJob = mydoJobs.get(0);
if ("1".equals(mydoJob.getExecutionPhase())){
mydoJob.setExecutionPhase("2");
mydoJob.setEntranceId(requestEnter.getEntranceId());
mydoJob.setStatus("2");
mydoJobService.updateMydoJob(mydoJob);
log.info("扫码内容{}", requestEnter.getTrayCode());
//解析扫码内容
String trayCode = requestEnter.getTrayCode();
String[] split = trayCode.split(" ");
String model = split[0].substring(6);
String color = split[1].substring(6);
String serial = split[2].substring(7);
String v = split[3].substring(2);
String hz = split[4].substring(3);
String ph = split[5].substring(3);
String nw = split[6].substring(5);
String gw = split[7].substring(5);
String bm = split[8].substring(2, split[8].length() - 1);
String[] decode = ProcodeUtils.decode(bm);
String erpBill = decode[0];
String xh = decode[1];
String jx = decode[2];
String fx = decode[3];
String xlh = decode[4];
log.info("二维码详情 model:{},color:{},serial:{},v:{},hz:{},ph:{},nw:{},gw:{},erpBill:{},xh:{},jx:{},fx:{},xlh:{}", model, color, serial, v, hz, ph, nw, gw,erpBill, xh, jx, fx, xlh);
BasProduct basProductParam = new BasProduct();
basProductParam.setSpare4(xlh);
List<BasProduct> basProducts = basProductService.selectBasProductList(basProductParam);
if (CollUtil.isEmpty(basProducts)) {
return AjaxResult.error("物料信息不存在");
}
return AjaxResult.success(new RequestEnterResponse(mydoJob.getCargoSpaceId(),mydoJob.getTrayCode(),mydoJob.getTaskNo()));
BasProduct basProduct = basProducts.get(0);
if (!basProduct.getSpec().equals(requestEnter.getSpec())){
return AjaxResult.error("规格不一致");
}
//生成作业
MydoJob mydoJob = new MydoJob();
mydoJob.setJobId(basJobIdService.getJobId("RK"));
mydoJob.setStatus("1");
mydoJob.setTaskNo(Convert.toStr(basTaskNoService.getTaskNo("1")));
mydoJob.setDepartmentId(Convert.toStr(SecurityUtils.getDeptId()));
mydoJob.setTrayCode(requestEnter.getTrayCode());
return AjaxResult.success();
}
@Override
public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) {
MydoJob mydoJobParam = new MydoJob();
switch (wmsJobRequest.getWmsType()){
switch (wmsJobRequest.getWmsType()) {
case "1":
if (StrUtil.isEmpty(wmsJobRequest.getTrayCode())){
if (StrUtil.isEmpty(wmsJobRequest.getTrayCode())) {
return AjaxResult.error(MessageUtils.message("error.message1"));
}
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())){
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) {
return AjaxResult.error(MessageUtils.message("error.message2"));
}
//入库
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode());
List<MydoJob> inMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (inMydoJobs.isEmpty()){
if (inMydoJobs.isEmpty()) {
return AjaxResult.error(MessageUtils.message("warn.message"));
}
MydoJob inMydoJob = inMydoJobs.get(0);
mydoJobService.manualCompleted(inMydoJob,1);
mydoJobService.manualCompleted(inMydoJob, 1);
break;
case "2":
if (StrUtil.isEmpty(wmsJobRequest.getPickSsj())){
if (StrUtil.isEmpty(wmsJobRequest.getPickSsj())) {
return AjaxResult.error(MessageUtils.message("error.message3"));
}
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())){
if (StrUtil.isEmpty(wmsJobRequest.getTaskNo())) {
return AjaxResult.error(MessageUtils.message("error.message2"));
}
//出库
mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo());
//mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode());
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (outMydoJobs.isEmpty()){
if (outMydoJobs.isEmpty()) {
return AjaxResult.error(MessageUtils.message("warn.message"));
}
MydoJob outJob = outMydoJobs.get(0);
//料箱出库 需同步电子标签
if("23".equals(outJob.getInOrOut())){
if ("23".equals(outJob.getInOrOut())) {
//查询拣选工位绑定的电子标签
BasTag tagParam = new BasTag();
tagParam.setPickAdd(wmsJobRequest.getPickSsj());
tagParam.setSpare3("1");
List<BasTag> tags = iBasTagService.selectBasTagList(tagParam);
if (tags.isEmpty()){
if (tags.isEmpty()) {
return AjaxResult.error(MessageUtils.message("error.message4"));
}
BasTag basTag = tags.get(0);
@@ -154,13 +196,13 @@ public class ToWmsServiceImpl implements IToWmsService {
}
break;
case "3":
if (StrUtil.isEmpty(wmsJobRequest.getContainerCode())){
if (StrUtil.isEmpty(wmsJobRequest.getContainerCode())) {
return AjaxResult.error(MessageUtils.message("error.message5"));
}
if (StrUtil.isEmpty(wmsJobRequest.getPositionCode1())){
if (StrUtil.isEmpty(wmsJobRequest.getPositionCode1())) {
return AjaxResult.error(MessageUtils.message("error.message6"));
}
if (StrUtil.isEmpty(wmsJobRequest.getPositionCode2())){
if (StrUtil.isEmpty(wmsJobRequest.getPositionCode2())) {
return AjaxResult.error(MessageUtils.message("error.message7"));
}
//agv搬运作业
@@ -169,7 +211,7 @@ public class ToWmsServiceImpl implements IToWmsService {
basContainerParam.setContainerId(wmsJobRequest.getContainerCode());
//basContainerParam.setPortName(wmsJobRequest.getPositionCode2());
List<BasContainer> basContainers = basContainerService.selectBasContainerList(basContainerParam);
if (basContainers.isEmpty()){
if (basContainers.isEmpty()) {
log.error("没有该料架 {}", wmsJobRequest.getContainerCode());
return AjaxResult.error(MessageUtils.message("error.message11"));
}
@@ -182,7 +224,7 @@ public class ToWmsServiceImpl implements IToWmsService {
AgvContainerTask agvContainerTaskParam = new AgvContainerTask();
agvContainerTaskParam.setContainer(basContainer.getContainerId());
List<AgvContainerTask> agvContainerTasks = agvContainerTaskService.selectAgvContainerTaskList(agvContainerTaskParam);
if (CollUtil.isNotEmpty(agvContainerTasks)){
if (CollUtil.isNotEmpty(agvContainerTasks)) {
for (AgvContainerTask agvContainerTask : agvContainerTasks) {
agvContainerTask.setStatus("2");
agvContainerTask.setFinishTime(DateUtil.formatDateTime(new Date()));
@@ -205,10 +247,10 @@ public class ToWmsServiceImpl implements IToWmsService {
MydoJob mydoJob = mydoJobService.selectMydoJobByJobId(reMaterialParam.getJobId());
String warehouseId = mydoJob.getWarehouseId();
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(warehouseId);
if (basCargoSpace == null){
if (basCargoSpace == null) {
log.error("没有空货位");
return AjaxResult.error(MessageUtils.message("error.message20"));
}else {
} else {
mydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
mydoJob.setFaultFlag("1");
mydoJobService.updateMydoJob(mydoJob);
@@ -235,13 +277,13 @@ public class ToWmsServiceImpl implements IToWmsService {
*/
@Override
public AjaxResult startSignal(RequestEnter requestEnter) {
switch (requestEnter.getWmsType()){
/*switch (requestEnter.getWmsType()) {
case "1":
case "2":
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setTaskNo(requestEnter.getTaskNo());
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
if (mydoJobs.isEmpty()){
if (mydoJobs.isEmpty()) {
return AjaxResult.error();
}
for (MydoJob mydoJob1 : mydoJobs) {
@@ -254,7 +296,7 @@ public class ToWmsServiceImpl implements IToWmsService {
AgvContainerTask agvContainerTaskParam = new AgvContainerTask();
agvContainerTaskParam.setTaskNo(requestEnter.getTaskNo());
List<AgvContainerTask> agvContainerTasks = agvContainerTaskService.selectAgvContainerTaskList(agvContainerTaskParam);
if (CollUtil.isEmpty(agvContainerTasks)){
if (CollUtil.isEmpty(agvContainerTasks)) {
return AjaxResult.error();
}
for (AgvContainerTask agvContainerTask : agvContainerTasks) {
@@ -265,22 +307,24 @@ public class ToWmsServiceImpl implements IToWmsService {
return AjaxResult.success();
default:
return AjaxResult.error();
}
}*/
return AjaxResult.success();
}
/**
* ctu取完箱子反馈
* @param map{
* "portCode"
* "wmsType"
* }
*
* @param map{ "portCode"
* "wmsType"
* }
* @return
*/
@Override
public AjaxResult takeCompleted(Map<String, Object> map) {
String wmsType = Convert.toStr(map.get("wmsType"));
switch (wmsType){
switch (wmsType) {
case "1":
//流利架入库
String lljCode = Convert.toStr(map.get("portCode"));
@@ -291,20 +335,20 @@ public class ToWmsServiceImpl implements IToWmsService {
basTag.setSpare2("2");
iBasTagService.updateBasTag(basTag);
}
case "2":
case "2":
break;
case "3":
//小车搬运料架
String startPoint = Convert.toStr(map.get("portCode"));
BasContainer basContainerParam = new BasContainer();
basContainerParam.setPortName(startPoint);
List<BasContainer> basContainers = basContainerService.selectBasContainerList(basContainerParam);
for (BasContainer basContainer : basContainers) {
basContainer.setPortName("");
basContainerService.updateBasContainer(basContainer);
}
break;
case "3":
//小车搬运料架
String startPoint = Convert.toStr(map.get("portCode"));
BasContainer basContainerParam = new BasContainer();
basContainerParam.setPortName(startPoint);
List<BasContainer> basContainers = basContainerService.selectBasContainerList(basContainerParam);
for (BasContainer basContainer : basContainers) {
basContainer.setPortName("");
basContainerService.updateBasContainer(basContainer);
}
break;
default:
throw new RuntimeException("wmsType错误");
}

View File

@@ -1,8 +1,11 @@
package com.ruoyi.bas.BasProductCode.util;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j
public class ProcodeUtils {
// 定义密钥,与原始逻辑保持一致
private static final String KEY = "0";

View File

@@ -131,11 +131,30 @@ public class CheckStockinDetail extends BaseEntity
@Excel(name = "备用字段6")
private String spare6;
@Excel(name = "备用字段7")
private String spare7;
@Excel(name = "备用字段8")
private String spare8;
@Excel(name = "备用字段9")
private String spare9;
private String productName;
private String status;
private String cargoSpaceName;
private ExtraField extraField;
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getCargoSpaceName() {
return cargoSpaceName;
}
@@ -449,6 +468,30 @@ public class CheckStockinDetail extends BaseEntity
return spare6;
}
public String getSpare7() {
return spare7;
}
public void setSpare7(String spare7) {
this.spare7 = spare7;
}
public String getSpare8() {
return spare8;
}
public void setSpare8(String spare8) {
this.spare8 = spare8;
}
public String getSpare9() {
return spare9;
}
public void setSpare9(String spare9) {
this.spare9 = spare9;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@@ -43,7 +43,7 @@ public class InStockinController extends BaseController
{
startPage();
List<InStockin> list = new ArrayList<>();
if (Convert.toInt(inStockin.getStatus())<4){
if (inStockin.getStatus()==null || Convert.toInt(inStockin.getStatus())<4){
list = inStockinService.selectInStockinList(inStockin);
}else {
list = inStockinFinishService.selectInStockinFinishListByInStockin(inStockin);

View File

@@ -94,6 +94,7 @@ public class InStockinServiceImpl implements IInStockinService
inStockin.setInType(inStockinVo.getInType());
inStockin.setWarehouseId(inStockinVo.getWarehouseId());
inStockin.setStatus("1");
inStockin.setStockSource("1");
inStockinMapper.insertInStockin(inStockin);
for (int i = 1; i <= productVoList.size(); i++) {
BasProduct basProduct = productVoList.get(i-1);

View File

@@ -43,7 +43,7 @@ public class InStockinDetailController extends BaseController
{
startPage();
List<InStockinDetail> list = new ArrayList<>();
if (Convert.toInt(inStockinDetail.getStatus())<4){
if (inStockinDetail.getStatus()==null ||Convert.toInt(inStockinDetail.getStatus())<4){
list = inStockinDetailService.selectInStockinDetailList(inStockinDetail);
}else {
list = inStockinDetailFinishService.selectInStockinDetailList(inStockinDetail);

View File

@@ -57,6 +57,8 @@ public class MydoJobDetail extends BaseEntity
/** 物料编码 */
@Excel(name = "物料编码")
private String productId;
@Excel(name = "物料名称")
private String productName;
/** 库存状态 */
@Excel(name = "库存状态")
@@ -129,31 +131,24 @@ public class MydoJobDetail extends BaseEntity
private String status;
@Excel(name = "拣选数量")
private String pickQuantity;
//额外字段
private ExtraField extraField;
private String pickQuantityReal;
//绑定容器物品数量
private String pickBindQuantity;
/** 备用字段4 */
@Excel(name = "电压")
private String spare5;
/** 备用字段4 */
@Excel(name = "功率")
private String spare6;
/** 备用字段4 */
@Excel(name = "相位")
private String spare7;
/** 备用字段4 */
@Excel(name = "毛重")
private String spare8;
/** 备用字段4 */
@Excel(name = "分销")
private String spare9;
/** 备用字段4 */
@Excel(name = "规格")
private String spec;
@Excel(name = "机型")
private String unit;
}

View File

@@ -103,15 +103,6 @@ public class PdaController extends BaseController {
return pdaService.emptyTrayIn(trayCodeMsg);
}
// /**
// * 空料箱入库
// */
// @RequestMapping("/emptyBoxIn")
// @ResponseBody
// public AjaxResult emptyBoxIn(@RequestBody TrayCodeMsg trayCodeMsg) {
// AjaxResult ajaxResult = pdaService.emptyBoxIn(trayCodeMsg);
// return ajaxResult;
// }
/**
* 空托盘库存查询