区分 生产线入库 其它入库 退货入库 生成mydojob任务逻辑,
修改手动完成,修改订单数量逻辑
This commit is contained in:
@@ -4,6 +4,7 @@ import cn.hutool.json.JSONUtil;
|
||||
import com.ruoyi.api.domain.ReMaterialParam;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.api.domain.WmsJobRequest;
|
||||
import com.ruoyi.api.service.IToErpService;
|
||||
import com.ruoyi.api.service.IToWmsService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.log.domain.RequestLog;
|
||||
@@ -23,6 +24,9 @@ import java.util.Map;
|
||||
@RequestMapping("/api2erp")
|
||||
public class ToErpApiController {
|
||||
|
||||
@Autowired
|
||||
private IToErpService toErpService;
|
||||
|
||||
/**
|
||||
* 入库完成回传
|
||||
*/
|
||||
|
||||
@@ -8,7 +8,12 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class RequestEnter {
|
||||
//物料码
|
||||
private String trayCode;
|
||||
//物料大小 1-5
|
||||
private String size;
|
||||
//入库位置
|
||||
private String entranceId;
|
||||
//入库楼层 1-一楼 2-二楼
|
||||
private String floor;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.api.service;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 作业统计 Service 接口
|
||||
*/
|
||||
public interface IToErpService {
|
||||
|
||||
|
||||
Map<String,String> saveTransferBill();
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ruoyi.api.service.impl;
|
||||
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.ruoyi.api.mapper.JobStatisticsMapper;
|
||||
import com.ruoyi.api.service.IJobStatisticsService;
|
||||
import com.ruoyi.api.service.IToErpService;
|
||||
import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.job.mydojob.domain.MydoJob;
|
||||
import com.ruoyi.job.mydojob.mapper.MydoJobMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 作业统计 Service 实现
|
||||
*/
|
||||
@Service
|
||||
public class ToErpServiceImpl implements IToErpService {
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, String> saveTransferBill() {
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("code","200");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import com.ruoyi.api.domain.ReMaterialParam;
|
||||
import com.ruoyi.api.domain.RequestEnter;
|
||||
import com.ruoyi.api.domain.RequestEnterResponse;
|
||||
import com.ruoyi.api.domain.WmsJobRequest;
|
||||
import com.ruoyi.api.service.IToErpService;
|
||||
import com.ruoyi.api.service.IToWmsService;
|
||||
import com.ruoyi.bas.BasProduct.domain.BasProduct;
|
||||
import com.ruoyi.bas.BasProduct.service.IBasProductService;
|
||||
@@ -27,6 +28,8 @@ 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.erp.domain.TransferBillCallback;
|
||||
import com.ruoyi.in.erp.service.ITransferBillCallbackService;
|
||||
import com.ruoyi.in.stockin.domain.InStockin;
|
||||
import com.ruoyi.in.stockin.service.IInStockinService;
|
||||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||||
@@ -40,6 +43,7 @@ import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
|
||||
import com.ruoyi.out.tagTask.domain.TagTask;
|
||||
import com.ruoyi.out.tagTask.service.ITagTaskService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.weaver.loadtime.Aj;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -77,6 +81,14 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
private IBasProductService basProductService;
|
||||
@Autowired
|
||||
private IBasJobIdService basJobIdService;
|
||||
@Autowired
|
||||
private IToErpService toErpService;
|
||||
@Autowired
|
||||
private ITransferBillCallbackService transferBillCallbackService;
|
||||
@Autowired
|
||||
private IInStockinService inStockinService;
|
||||
@Autowired
|
||||
private IInStockinDetailService inStockinDetailService;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -87,6 +99,13 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
}
|
||||
log.info("扫码内容{}", requestEnter.getTrayCode());
|
||||
|
||||
//生成调拨单
|
||||
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
||||
if (!"200".equals(saveTransferBill.get("code"))) {
|
||||
return AjaxResult.error("生成调拨单失败");
|
||||
}
|
||||
log.info("生成调拨单{}", saveTransferBill);
|
||||
|
||||
//解析扫码内容
|
||||
String trayCode = requestEnter.getTrayCode();
|
||||
String[] split = trayCode.split(" ");
|
||||
@@ -106,8 +125,9 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
String jx = decode[2];
|
||||
String fx = decode[3];
|
||||
String xlh = decode[4];
|
||||
log.info("二维码详情 productId:{} model:{},color:{},serial:{},v:{},hz:{},ph:{},nw:{},gw:{},erpBill:{},xh:{},jx:{},fx:{},xlh:{}",productId, model, color, serial, v, hz, ph, nw, gw, erpBill, xh, jx, fx, xlh);
|
||||
log.info("二维码详情 productId:{} model:{},color:{},serial:{},v:{},hz:{},ph:{},nw:{},gw:{},erpBill:{},xh:{},jx:{},fx:{},xlh:{}", productId, model, color, serial, v, hz, ph, nw, gw, erpBill, xh, jx, fx, xlh);
|
||||
|
||||
//查询物料信息
|
||||
BasProduct basProductParam = new BasProduct();
|
||||
basProductParam.setProductId(productId);
|
||||
List<BasProduct> basProducts = basProductService.selectBasProductList(basProductParam);
|
||||
@@ -115,20 +135,47 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
return AjaxResult.error("物料信息不存在");
|
||||
}
|
||||
BasProduct basProduct = basProducts.get(0);
|
||||
/*if (!basProduct.getSpec().equals(requestEnter.getSize())) {
|
||||
return AjaxResult.error("规格不一致");
|
||||
}*/
|
||||
String inOrOutType = null;
|
||||
String inStockId = null;
|
||||
String inStockDetailId = null;
|
||||
if ("1".equals(requestEnter.getFloor())) {
|
||||
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
|
||||
InStockin inStockinParam = new InStockin();
|
||||
inStockinParam.setErpBill(erpBill);
|
||||
List<InStockin> inStockins = inStockinService.selectInStockinListApi(inStockinParam);
|
||||
if (CollUtil.isEmpty(inStockins)) {
|
||||
return AjaxResult.error("单据不存在");
|
||||
}
|
||||
InStockin inStockin = inStockins.get(0);
|
||||
if ("1".equals(inStockin.getStatus()) ||"2".equals(inStockin.getStatus())){
|
||||
inStockin.setStatus("3");
|
||||
inStockinService.updateInStockin(inStockin);
|
||||
}
|
||||
inOrOutType = inStockin.getInType();
|
||||
inStockId = inStockin.getStockinId();
|
||||
InStockinDetail inStockinDetailParam = new InStockinDetail();
|
||||
inStockinDetailParam.setStockinId(inStockin.getStockinGuid());
|
||||
inStockinDetailParam.setProductId(basProduct.getProductId());
|
||||
List<InStockinDetail> inStockinDetails = inStockinDetailService.selectInStockinDetailList(inStockinDetailParam);
|
||||
if (CollUtil.isEmpty(inStockinDetails)) {
|
||||
return AjaxResult.error("单据明细不存在");
|
||||
}
|
||||
InStockinDetail inStockinDetail = inStockinDetails.get(0);
|
||||
inStockDetailId = inStockinDetail.getStockinDetailId();
|
||||
inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1))));
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
} else {
|
||||
inOrOutType = "1";
|
||||
}
|
||||
|
||||
|
||||
//生成作业
|
||||
MydoJob mydoJob = new MydoJob();
|
||||
mydoJob.setStatus("1");
|
||||
//mydoJob.setDepartmentId(Convert.toStr(SecurityUtils.getDeptId()));
|
||||
mydoJob.setInOrOut("1");
|
||||
mydoJob.setInOrOut(inOrOutType);
|
||||
mydoJob.setExecutionPhase("1");
|
||||
mydoJob.setTrayCode(basJobIdService.getJobId("TP"));
|
||||
mydoJob.setWarehouseId("01");
|
||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||
//todo 根据包装方式 主要包装方式 描述 长 宽 高 包装材积 判断巷道1 还是巷道2
|
||||
switch (requestEnter.getSize()) {
|
||||
case "1":
|
||||
@@ -144,6 +191,7 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
}
|
||||
|
||||
//根据巷道查找货位
|
||||
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||
basCargoSpaceParam.setWarehouseId(mydoJob.getWarehouseId());
|
||||
basCargoSpaceParam.setRoadwayId(mydoJob.getRoadwayId());
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||
@@ -173,12 +221,24 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
mydoJobDetail.setSpare9(fx);
|
||||
mydoJobDetail.setUnit(jx);
|
||||
mydoJobDetail.setSpec(basProduct.getSpec());
|
||||
mydoJobDetail.setInOrOutId(inStockId);
|
||||
mydoJobDetail.setInOrOutDId(inStockDetailId);
|
||||
mydoJobDetail.setStockinId(inStockId);
|
||||
mydoJobDetailService.insertMydoJobDetail(mydoJobDetail);
|
||||
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("3");
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
|
||||
|
||||
//存入调拨单数据 已生成
|
||||
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
||||
transferBillCallback.setJobId(mydoJob.getJobId());
|
||||
transferBillCallback.setErpBill(erpBill);
|
||||
transferBillCallback.setType("1");
|
||||
transferBillCallback.setStatus("1");
|
||||
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ public interface IInStockinService
|
||||
* @return 入库单据集合
|
||||
*/
|
||||
public List<InStockin> selectInStockinList(InStockin inStockin);
|
||||
public List<InStockin> selectInStockinListApi(InStockin inStockin);
|
||||
|
||||
/**
|
||||
* 新增入库单据
|
||||
|
||||
@@ -63,6 +63,18 @@ public class InStockinServiceImpl implements IInStockinService
|
||||
return inStockinMapper.selectInStockinList(inStockin);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询入库单据列表
|
||||
*
|
||||
* @param inStockin 入库单据
|
||||
* @return 入库单据
|
||||
*/
|
||||
@Override
|
||||
public List<InStockin> selectInStockinListApi(InStockin inStockin)
|
||||
{
|
||||
return inStockinMapper.selectInStockinList(inStockin);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增入库单据
|
||||
*
|
||||
@@ -84,8 +96,9 @@ public class InStockinServiceImpl implements IInStockinService
|
||||
}
|
||||
|
||||
InStockin inStockin = new InStockin();
|
||||
inStockin.setStockinGuid(iBasJobIdService.getJobId("RKD"));
|
||||
inStockin.setStockinId(iBasJobIdService.getJobId("RKD"));
|
||||
String rkdId = iBasJobIdService.getJobId("RKD");
|
||||
inStockin.setStockinGuid(rkdId);
|
||||
inStockin.setStockinId(rkdId);
|
||||
inStockin.setCreateDate(DateUtil.formatDateTime(DateUtil.date()));
|
||||
inStockin.setCreateManId(Convert.toStr(SecurityUtils.getUserId()));
|
||||
inStockin.setDepartmentNo(Convert.toStr(SecurityUtils.getDeptId()));
|
||||
|
||||
@@ -16,6 +16,8 @@ import com.ruoyi.common.annotation.DataScope;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.MessageUtils;
|
||||
import com.ruoyi.in.erp.domain.TransferBillCallback;
|
||||
import com.ruoyi.in.erp.service.ITransferBillCallbackService;
|
||||
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
|
||||
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
|
||||
import com.ruoyi.job.mydojob.domain.MydoJob;
|
||||
@@ -67,15 +69,13 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
@Autowired
|
||||
private IBasCargoSpaceService basCargoSpaceService;
|
||||
@Autowired
|
||||
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
||||
@Autowired
|
||||
private IOutExceptionRecordService outExceptionRecordService;
|
||||
@Autowired
|
||||
private PdaService pdaService;
|
||||
@Autowired
|
||||
private IBasWarehouseService basWarehouseService;
|
||||
@Autowired
|
||||
private IToWcsService iToWcsService;
|
||||
@Autowired
|
||||
private ITransferBillCallbackService transferBillCallbackService;
|
||||
|
||||
|
||||
/**
|
||||
@@ -230,25 +230,17 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult manualCompleted(MydoJob mydoJob, int type) {
|
||||
String jobId = mydoJob.getJobId();
|
||||
MydoJob job = selectMydoJobByJobId(jobId);
|
||||
if (job == null) {
|
||||
public AjaxResult manualCompleted(MydoJob mydoJobParam, int type) {
|
||||
String jobId = mydoJobParam.getJobId();
|
||||
MydoJob mydoJob = selectMydoJobByJobId(jobId);
|
||||
if (mydoJob == null) {
|
||||
return AjaxResult.warn("任务不存在");
|
||||
}
|
||||
if (type == 0) {
|
||||
//todo 取消堆垛机任务 或者 agv任务
|
||||
/*AjaxResult ajaxResult = iToWcsService.cancelTaskByTaskNo(job.getTaskNo());
|
||||
if (!ajaxResult.isSuccess()){
|
||||
return AjaxResult.error("");
|
||||
}*/
|
||||
}
|
||||
|
||||
//入库任务
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(jobId);
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId());
|
||||
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
if (CollUtil.isNotEmpty(mydoJobDetails)) {
|
||||
List<BasStock> list = new ArrayList<>();
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
@@ -260,13 +252,13 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
}
|
||||
//正常库存
|
||||
list.add(getStockByInStockinDetail(mydoJobDetail, job, "1"));
|
||||
list.add(getStockByInStockinDetail(mydoJobDetail, mydoJob, "1"));
|
||||
}
|
||||
|
||||
//修改货位状态
|
||||
basCargoSpace.setStatus("2");
|
||||
basCargoSpace.setTrayCode(job.getTrayCode());
|
||||
basCargoSpace.setCargoSpaceId(job.getCargoSpaceId());
|
||||
basCargoSpace.setTrayCode(mydoJob.getTrayCode());
|
||||
basCargoSpace.setCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
|
||||
//插入库存信息
|
||||
@@ -279,8 +271,21 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
||||
// 插入任务历史表 删除任务
|
||||
insertHistory(mydoJob.getJobId());
|
||||
|
||||
//todo 插入回传表
|
||||
|
||||
//修改回传单据表状态
|
||||
if ("1".equals(mydoJob.getInOrOut())){
|
||||
//调拨单
|
||||
TransferBillCallback transferBillCallbackParam = new TransferBillCallback();
|
||||
transferBillCallbackParam.setJobId(mydoJob.getJobId());
|
||||
List<TransferBillCallback> transferBillCallbacks = transferBillCallbackService.selectTransferBillCallbackList(transferBillCallbackParam);
|
||||
if (CollUtil.isNotEmpty(transferBillCallbacks)){
|
||||
for (TransferBillCallback transferBillCallback : transferBillCallbacks) {
|
||||
transferBillCallback.setStatus("2");
|
||||
transferBillCallbackService.updateTransferBillCallback(transferBillCallback);
|
||||
}
|
||||
}
|
||||
}else {
|
||||
//todo 退料入库 其它入库
|
||||
}
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
return AjaxResult.warn("不存在子作业");
|
||||
|
||||
@@ -438,7 +438,7 @@ export default {
|
||||
this.getList()
|
||||
})
|
||||
}else {
|
||||
this.$modal.msgError('只有未确认的单据可以确认')
|
||||
this.$modal.msgError('只有执行中的单据可以确认')
|
||||
}
|
||||
},
|
||||
/** 打印条码按钮操作 */
|
||||
|
||||
Reference in New Issue
Block a user