add:1.主表增加产线信息;trackNo 跟踪号;
2.sn条码校验,非空的不能重复
3.增加分页,增加状态:1.忽略过账 :状态跟回传异常异样忽略(功能暂时不确定)
4.物料名称,bom数量有可能为0;为0的也跟回传异常异样忽略;
This commit is contained in:
@@ -19,6 +19,8 @@ public class ReceiveOutRequest {
|
|||||||
private String requsername;
|
private String requsername;
|
||||||
private String comment;
|
private String comment;
|
||||||
private String cztype;
|
private String cztype;
|
||||||
|
private String workArea;
|
||||||
|
private String trackNo;
|
||||||
private List<Entrys> entrys;
|
private List<Entrys> entrys;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package org.nl.wms.ext_manage.mes.mq.producer;
|
package org.nl.wms.ext_manage.mes.mq.producer;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.wms.ext_manage.mes.service.dto.WorkReportParam;
|
import org.nl.wms.ext_manage.mes.service.dto.WorkReportParam;
|
||||||
|
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn;
|
||||||
|
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -11,8 +14,15 @@ import org.springframework.stereotype.Component;
|
|||||||
public class WorkReportProducer {
|
public class WorkReportProducer {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RabbitTemplate rabbitTemplate;
|
private RabbitTemplate rabbitTemplate;
|
||||||
|
@Autowired
|
||||||
|
private IReceiveOutReturnService receiveOutReturnService;
|
||||||
|
|
||||||
public void send(WorkReportParam param) {
|
public void send(WorkReportParam param) {
|
||||||
|
if (!StringUtils.isEmpty(param.getSn())){
|
||||||
|
ReceiveOutReturn one = receiveOutReturnService.getOne(new LambdaQueryWrapper<ReceiveOutReturn>()
|
||||||
|
.eq(ReceiveOutReturn::getSn, param.getSn()));
|
||||||
|
if (one != null) return;//已存在跳过
|
||||||
|
}
|
||||||
rabbitTemplate.convertAndSend("Mes", "workReport", JSON.toJSONString(param));
|
rabbitTemplate.convertAndSend("Mes", "workReport", JSON.toJSONString(param));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,11 +8,8 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||||
import org.nl.wms.ext_manage.api.MesApi;
|
|
||||||
import org.nl.wms.ext_manage.mes.service.MesReportService;
|
import org.nl.wms.ext_manage.mes.service.MesReportService;
|
||||||
import org.nl.wms.ext_manage.mes.service.dto.WorkOrderBomItem;
|
|
||||||
import org.nl.wms.ext_manage.mes.service.dto.WorkReportParam;
|
import org.nl.wms.ext_manage.mes.service.dto.WorkReportParam;
|
||||||
import org.nl.wms.ext_manage.service.WmsToZDWmdService;
|
|
||||||
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
|
import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService;
|
||||||
import org.nl.wms.pda_manage.outBound.dto.LineSideDto;
|
import org.nl.wms.pda_manage.outBound.dto.LineSideDto;
|
||||||
import org.nl.wms.sch_manage.service.ISchBaseRegionService;
|
import org.nl.wms.sch_manage.service.ISchBaseRegionService;
|
||||||
@@ -25,9 +22,6 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class MesReportServiceImpl implements MesReportService {
|
public class MesReportServiceImpl implements MesReportService {
|
||||||
@@ -74,6 +68,8 @@ public class MesReportServiceImpl implements MesReportService {
|
|||||||
sideDto.setSn(workReportParam.getSn());
|
sideDto.setSn(workReportParam.getSn());
|
||||||
sideDto.setStorageVehicleCode(one.getStoragevehicle_code());
|
sideDto.setStorageVehicleCode(one.getStoragevehicle_code());
|
||||||
sideDto.setReportParam(JSON.toJSONString(workReportParam));
|
sideDto.setReportParam(JSON.toJSONString(workReportParam));
|
||||||
|
sideDto.setTrackNo(workReportParam.getTrackNo());
|
||||||
|
sideDto.setWorkArea(workReportParam.getWorkArea());
|
||||||
pdaIosOutService.directConfirm(sideDto);
|
pdaIosOutService.directConfirm(sideDto);
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
ReceiveOutReturn entity = new ReceiveOutReturn();
|
ReceiveOutReturn entity = new ReceiveOutReturn();
|
||||||
@@ -87,6 +83,8 @@ public class MesReportServiceImpl implements MesReportService {
|
|||||||
entity.setRequserno("WMS");
|
entity.setRequserno("WMS");
|
||||||
entity.setRequsername("WMS");
|
entity.setRequsername("WMS");
|
||||||
entity.setCztype("02");
|
entity.setCztype("02");
|
||||||
|
entity.setTrackNo(workReportParam.getTrackNo());
|
||||||
|
entity.setWorkArea(workReportParam.getWorkArea());
|
||||||
entity.setCreateTime(DateUtil.now());
|
entity.setCreateTime(DateUtil.now());
|
||||||
entity.setRemark(ex.getMessage());
|
entity.setRemark(ex.getMessage());
|
||||||
entity.setStatus(StockReturnStatusEnum.ERROR.getCode() );
|
entity.setStatus(StockReturnStatusEnum.ERROR.getCode() );
|
||||||
|
|||||||
@@ -560,6 +560,11 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退料入库
|
||||||
|
* 注意是红字单据
|
||||||
|
* @param billChangeDto
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void syncReturnInBill(BillChangeDto billChangeDto) {
|
public void syncReturnInBill(BillChangeDto billChangeDto) {
|
||||||
String billId = billChangeDto.getBillid();
|
String billId = billChangeDto.getBillid();
|
||||||
@@ -606,6 +611,7 @@ public class InboundEasSyncServiceImpl implements InboundEasSyncService {
|
|||||||
//更新单据
|
//更新单据
|
||||||
Boolean allZD = true;
|
Boolean allZD = true;
|
||||||
for (Purchasedtl dtl : easDtlList) {
|
for (Purchasedtl dtl : easDtlList) {
|
||||||
|
dtl.setQty(dtl.getQty().abs());
|
||||||
if (ZD_STOR_SET.contains(dtl.getHouse_code())){
|
if (ZD_STOR_SET.contains(dtl.getHouse_code())){
|
||||||
//中鼎立库
|
//中鼎立库
|
||||||
dtl.setInstock_qty(dtl.getQty());
|
dtl.setInstock_qty(dtl.getQty());
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package org.nl.wms.pda_manage.ios_manage.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
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 com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@@ -37,30 +36,27 @@ import org.nl.wms.pda_manage.util.PdaResponse;
|
|||||||
import org.nl.wms.sch_manage.enums.StatusEnum;
|
import org.nl.wms.sch_manage.enums.StatusEnum;
|
||||||
import org.nl.wms.sch_manage.enums.TaskEnum;
|
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
|
||||||
import org.nl.wms.sch_manage.service.core.AbstractTask;
|
import org.nl.wms.sch_manage.service.core.AbstractTask;
|
||||||
import org.nl.wms.sch_manage.service.core.tasks.PdaPointTask;
|
import org.nl.wms.sch_manage.service.core.tasks.PdaPointTask;
|
||||||
import org.nl.wms.sch_manage.service.core.tasks.VehicleOutTask;
|
import org.nl.wms.sch_manage.service.core.tasks.VehicleOutTask;
|
||||||
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
import org.nl.wms.warehouse_manage.enums.IOSConstant;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
import org.nl.wms.warehouse_manage.inAndOut.service.IOutBillService;
|
||||||
import org.nl.wms.warehouse_manage.inventory.IStInventoryService;
|
|
||||||
import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType;
|
|
||||||
import org.nl.wms.warehouse_manage.inventory.core.param.impl.InFinishParam;
|
|
||||||
import org.nl.wms.warehouse_manage.inventory.core.param.impl.OutFinishParam;
|
|
||||||
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
|
||||||
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDis;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDtlMapper;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDtlMapper;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvMapper;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvMapper;
|
||||||
|
import org.nl.wms.warehouse_manage.inventory.IStInventoryService;
|
||||||
|
import org.nl.wms.warehouse_manage.inventory.core.enums.InventoryChangeType;
|
||||||
|
import org.nl.wms.warehouse_manage.inventory.core.param.impl.OutFinishParam;
|
||||||
|
import org.nl.wms.warehouse_manage.service.IMdPbGroupplateService;
|
||||||
|
import org.nl.wms.warehouse_manage.service.dao.GroupPlate;
|
||||||
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
import org.nl.wms.warehouse_manage.service.dao.mapper.MdPbGroupplateMapper;
|
||||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn;
|
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn;
|
||||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService;
|
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService;
|
||||||
import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService;
|
|
||||||
import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn;
|
|
||||||
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
|
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -296,8 +292,11 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
entry.setSrcbillentryid(bomItem.getItemId());
|
entry.setSrcbillentryid(bomItem.getItemId());
|
||||||
if (qty.compareTo(actualQty) > 0) {
|
if (qty.compareTo(actualQty) > 0) {
|
||||||
status = StockReturnStatusEnum.FAIL.getCode();
|
status = StockReturnStatusEnum.FAIL.getCode();
|
||||||
entry.setStatus(StockReturnStatusEnum.TODO.getCode());
|
entry.setStatus(StockReturnStatusEnum.FAIL.getCode());
|
||||||
entry.setRemark(materialCode+"WMS库存不足:当前" + actualQty + "需求" + qty.intValue());
|
entry.setRemark(materialCode+"WMS库存不足:当前" + actualQty + "需求" + qty.intValue());
|
||||||
|
if (entry.getBaseqty().compareTo(BigDecimal.ZERO) == 0){
|
||||||
|
entry.setStatus(StockReturnStatusEnum.IGNORE.getCode());
|
||||||
|
}
|
||||||
entrys.add(entry);
|
entrys.add(entry);
|
||||||
}else {
|
}else {
|
||||||
final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl();
|
final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl();
|
||||||
@@ -358,7 +357,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
.eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")));
|
||||||
}
|
}
|
||||||
entry.setRemark("等待回传EAS");
|
entry.setRemark("等待回传EAS");
|
||||||
entry.setStatus(StockReturnStatusEnum.FAIL.getCode());
|
entry.setStatus(StockReturnStatusEnum.TODO.getCode());
|
||||||
entrys.add(entry);
|
entrys.add(entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -383,6 +382,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
|||||||
receiveOutRequest.setRequsername("WMS");
|
receiveOutRequest.setRequsername("WMS");
|
||||||
receiveOutRequest.setDeptno("01.09.14.02");
|
receiveOutRequest.setDeptno("01.09.14.02");
|
||||||
receiveOutRequest.setDeptno("01.09.14.02");
|
receiveOutRequest.setDeptno("01.09.14.02");
|
||||||
|
receiveOutRequest.setTrackNo(param.getTrackNo());
|
||||||
|
receiveOutRequest.setWorkArea(param.getWorkArea());
|
||||||
receiveOutRequest.setEntrys(entrys);
|
receiveOutRequest.setEntrys(entrys);
|
||||||
ReceiveOutReturn entity = receiveOutReturnService.saveFromRequest(
|
ReceiveOutReturn entity = receiveOutReturnService.saveFromRequest(
|
||||||
receiveOutRequest, status, null,CollectionUtils.isEmpty(ioStorInvDtls)?null:ioStorInv.getBill_code(),param.getReportParam());
|
receiveOutRequest, status, null,CollectionUtils.isEmpty(ioStorInvDtls)?null:ioStorInv.getBill_code(),param.getReportParam());
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
package org.nl.wms.pda_manage.outBound.dto;
|
package org.nl.wms.pda_manage.outBound.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.nl.wms.ext_manage.mes.service.dto.WorkOrderBomItem;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class LineSideDto {
|
public class LineSideDto {
|
||||||
@@ -31,5 +28,7 @@ public class LineSideDto {
|
|||||||
private BigDecimal reportedQty;
|
private BigDecimal reportedQty;
|
||||||
private String storageVehicleCode;
|
private String storageVehicleCode;
|
||||||
private String reportParam;
|
private String reportParam;
|
||||||
|
private String trackNo;
|
||||||
|
private String workArea;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,11 @@ public class FormReturnAutoTask {
|
|||||||
List<PmStockReturn> rows = new ArrayList<>();
|
List<PmStockReturn> rows = new ArrayList<>();
|
||||||
for (PmStockReturn item : list) {
|
for (PmStockReturn item : list) {
|
||||||
rows.add(item);
|
rows.add(item);
|
||||||
pmStockReturnService.uploadRows(rows);
|
try {
|
||||||
|
pmStockReturnService.uploadRows(rows);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("定时回传任务错误{}",e.getMessage());
|
||||||
|
}
|
||||||
Thread.sleep(1000 * 5);
|
Thread.sleep(1000 * 5);
|
||||||
rows.remove(item);
|
rows.remove(item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,11 @@ public class ReceiveReturnAutoTask {
|
|||||||
.last("limit 5"));
|
.last("limit 5"));
|
||||||
log.info("========>倒冲领料定时回传列表:{}", JSON.toJSONString(list));
|
log.info("========>倒冲领料定时回传列表:{}", JSON.toJSONString(list));
|
||||||
for (ReceiveOutReturn item : list) {
|
for (ReceiveOutReturn item : list) {
|
||||||
receiveOutReturnService.uploadErp(item);
|
try {
|
||||||
|
receiveOutReturnService.uploadErp(item);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("========>倒冲领料定时回传错误:{}", e.getMessage());
|
||||||
|
}
|
||||||
Thread.sleep(1000 * 5);
|
Thread.sleep(1000 * 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ public class ReceiveOutReturn implements Serializable {
|
|||||||
private String requsername;
|
private String requsername;
|
||||||
private String comment;
|
private String comment;
|
||||||
private String cztype;
|
private String cztype;
|
||||||
|
@TableField("track_no")
|
||||||
|
private String trackNo;
|
||||||
|
@TableField("work_area")
|
||||||
|
private String workArea;
|
||||||
|
|
||||||
@TableField("create_time")
|
@TableField("create_time")
|
||||||
private String createTime;
|
private String createTime;
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ public class ReceiveOutReturnDetail implements Serializable {
|
|||||||
private String lotnumber;
|
private String lotnumber;
|
||||||
private String stockerno;
|
private String stockerno;
|
||||||
private String stockername;
|
private String stockername;
|
||||||
|
private String iobillcode;
|
||||||
@TableField("update_time")
|
@TableField("update_time")
|
||||||
private String updateTime;
|
private String updateTime;
|
||||||
private String status;
|
private String status;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.google.common.collect.Lists;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
@@ -19,7 +18,6 @@ import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
|||||||
import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
|
import org.nl.wms.basedata_manage.service.IBsrealStorattrService;
|
||||||
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.basedata_manage.service.ISectattrService;
|
import org.nl.wms.basedata_manage.service.ISectattrService;
|
||||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
|
||||||
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
import org.nl.wms.basedata_manage.service.dao.BsrealStorattr;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
import org.nl.wms.basedata_manage.service.dao.MdMeMaterialbase;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||||
@@ -27,8 +25,6 @@ import org.nl.wms.ext_manage.api.EasApi;
|
|||||||
import org.nl.wms.ext_manage.api.request.QueryEasStockRequest;
|
import org.nl.wms.ext_manage.api.request.QueryEasStockRequest;
|
||||||
import org.nl.wms.ext_manage.api.request.ReceiveOutRequest;
|
import org.nl.wms.ext_manage.api.request.ReceiveOutRequest;
|
||||||
import org.nl.wms.ext_manage.api.response.QueryEasStockResponse;
|
import org.nl.wms.ext_manage.api.response.QueryEasStockResponse;
|
||||||
import org.nl.wms.ext_manage.mes.service.dto.WorkOrderBomItem;
|
|
||||||
import org.nl.wms.ext_manage.service.WmsToErpService;
|
|
||||||
import org.nl.wms.ext_manage.util.ErpUtil;
|
import org.nl.wms.ext_manage.util.ErpUtil;
|
||||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||||
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv;
|
import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInv;
|
||||||
@@ -200,13 +196,15 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
entity.setRequestId(ioBillCode);
|
entity.setRequestId(ioBillCode);
|
||||||
entity.setCreatedBy(SecurityUtils.getCurrentUsername());
|
entity.setCreatedBy(SecurityUtils.getCurrentUsername());
|
||||||
entity.setReportParam(reportParam);
|
entity.setReportParam(reportParam);
|
||||||
|
entity.setWorkArea(request.getWorkArea());
|
||||||
|
entity.setTrackNo(request.getTrackNo());
|
||||||
this.save(entity);
|
this.save(entity);
|
||||||
saveRequestDetails(entity.getId(), request.getEntrys());
|
saveRequestDetails(entity.getId(), request.getEntrys(), ioBillCode);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void saveRequestDetails(Long returnId, List<ReceiveOutRequest.Entrys> entrys) {
|
private void saveRequestDetails(Long returnId, List<ReceiveOutRequest.Entrys> entrys, String ioBillCode) {
|
||||||
if (entrys == null || entrys.isEmpty()) {
|
if (entrys == null || entrys.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -232,6 +230,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
detail.setStockername(entry.getStockername());
|
detail.setStockername(entry.getStockername());
|
||||||
detail.setStatus(entry.getStatus());
|
detail.setStatus(entry.getStatus());
|
||||||
detail.setUpdateTime(now);
|
detail.setUpdateTime(now);
|
||||||
|
detail.setIobillcode(ioBillCode);
|
||||||
receiveOutReturnDetailMapper.insert(detail);
|
receiveOutReturnDetailMapper.insert(detail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -311,6 +310,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public void uploadErp(ReceiveOutReturn mst) {
|
public void uploadErp(ReceiveOutReturn mst) {
|
||||||
if (mst == null || mst.getId() == null) {throw new BadRequestException("请选择需要回传的数据");}
|
if (mst == null || mst.getId() == null) {throw new BadRequestException("请选择需要回传的数据");}
|
||||||
ReceiveOutReturn entity = this.getById(mst.getId());
|
ReceiveOutReturn entity = this.getById(mst.getId());
|
||||||
@@ -381,12 +381,20 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
final String materialCode = detail.getMaterialno();
|
final String materialCode = detail.getMaterialno();
|
||||||
final BigDecimal qty = detail.getQty();
|
final BigDecimal qty = detail.getQty();
|
||||||
final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode);
|
final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode);
|
||||||
if (qty.compareTo(actualQty) > 0) {
|
if (qty.compareTo(actualQty) > 0 && detail.getStatus().equals(StockReturnStatusEnum.FAIL.getCode())) {
|
||||||
|
//跳过
|
||||||
|
sucess = Boolean.FALSE;
|
||||||
continue;
|
continue;
|
||||||
|
} else if (qty.compareTo(actualQty) > 0 && detail.getStatus().equals(StockReturnStatusEnum.TODO.getCode())) {
|
||||||
|
sucess = Boolean.FALSE;
|
||||||
|
continue;//库存不足但是同步时生成过出入库单
|
||||||
|
} else{
|
||||||
|
detail.setStatus(StockReturnStatusEnum.TODO.getCode());
|
||||||
|
detail.setIobillcode(ioStorInv.getBill_code());
|
||||||
}
|
}
|
||||||
entrys.add(detail);
|
entrys.add(detail);
|
||||||
//待回传的说明还没做库存变动
|
//待回传的说明还没做库存变动
|
||||||
if (detail.getStatus().equals(StockReturnStatusEnum.FAIL.getCode())){
|
if (detail.getStatus().equals(StockReturnStatusEnum.FAIL.getCode())){//失败说明库存不足,直接跳过
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl();
|
final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl();
|
||||||
@@ -453,6 +461,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
ioStorInvDisMapper.batchSave(iOStorInvDiss);
|
ioStorInvDisMapper.batchSave(iOStorInvDiss);
|
||||||
iStInventoryService.changeInventory(InventoryChangeType.OUT_FINS, outFinsParams);
|
iStInventoryService.changeInventory(InventoryChangeType.OUT_FINS, outFinsParams);
|
||||||
}
|
}
|
||||||
|
mst.setRequestId(mst.getRequestId() + "," + ioStorInv.getBill_code());
|
||||||
|
|
||||||
final String warehouseno = entrys.get(0).getWarehouseno();
|
final String warehouseno = entrys.get(0).getWarehouseno();
|
||||||
final QueryEasStockRequest easStockRequest = new QueryEasStockRequest();
|
final QueryEasStockRequest easStockRequest = new QueryEasStockRequest();
|
||||||
@@ -482,7 +491,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (!CollectionUtils.isEmpty(unsatisfiedList)){
|
if (!CollectionUtils.isEmpty(unsatisfiedList)){
|
||||||
receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper<ReceiveOutReturnDetail>()
|
receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper<ReceiveOutReturnDetail>()
|
||||||
.set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.FAIL.getCode())
|
// .set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.FAIL.getCode())
|
||||||
.set(ReceiveOutReturnDetail::getRemark,"EAS库存不足")
|
.set(ReceiveOutReturnDetail::getRemark,"EAS库存不足")
|
||||||
.set(ReceiveOutReturnDetail::getUpdateTime,now)
|
.set(ReceiveOutReturnDetail::getUpdateTime,now)
|
||||||
.in(ReceiveOutReturnDetail::getId,unsatisfiedList.stream()
|
.in(ReceiveOutReturnDetail::getId,unsatisfiedList.stream()
|
||||||
@@ -497,11 +506,8 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@Transactional
|
|
||||||
public Boolean callEasByAllBill(ReceiveOutReturn entity, Long id, List<ReceiveOutReturnDetail> details, String now, ErpUtil login) {
|
public Boolean callEasByAllBill(ReceiveOutReturn entity, Long id, List<ReceiveOutReturnDetail> details, String now, ErpUtil login) {
|
||||||
String status;
|
|
||||||
String remark = "";
|
|
||||||
Boolean sucess =Boolean.TRUE;
|
|
||||||
if (id == null ) {
|
if (id == null ) {
|
||||||
throw new IllegalArgumentException("回传记录ID和明细ID不能为空");
|
throw new IllegalArgumentException("回传记录ID和明细ID不能为空");
|
||||||
}
|
}
|
||||||
@@ -513,20 +519,17 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
|||||||
req.put("data", receiveOutRequest);
|
req.put("data", receiveOutRequest);
|
||||||
log.info("======>请求EAS领料出库单接口:" + JSONObject.toJSONString(req));
|
log.info("======>请求EAS领料出库单接口:" + JSONObject.toJSONString(req));
|
||||||
login.audit(req.toJSONString());
|
login.audit(req.toJSONString());
|
||||||
status = StockReturnStatusEnum.SUCESS.getCode();
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
sucess = Boolean.FALSE;
|
|
||||||
log.error("请求EAS领料出库单接口失败,回传记录ID:{}", id, e);
|
log.error("请求EAS领料出库单接口失败,回传记录ID:{}", id, e);
|
||||||
status = StockReturnStatusEnum.FAIL.getCode();
|
throw new BadRequestException(e.getMessage());
|
||||||
remark = e.getMessage();
|
|
||||||
}
|
}
|
||||||
receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper<ReceiveOutReturnDetail>()
|
receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper<ReceiveOutReturnDetail>()
|
||||||
.set(ReceiveOutReturnDetail::getStatus,status)
|
.set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.SUCESS.getCode())
|
||||||
.set(ReceiveOutReturnDetail::getRemark,remark)
|
.set(ReceiveOutReturnDetail::getRemark,"")
|
||||||
.set(ReceiveOutReturnDetail::getUpdateTime,now)
|
.set(ReceiveOutReturnDetail::getUpdateTime,now)
|
||||||
.in(ReceiveOutReturnDetail::getId,details.stream()
|
.in(ReceiveOutReturnDetail::getId,details.stream()
|
||||||
.map(ReceiveOutReturnDetail::getId).collect(Collectors.toList())));
|
.map(ReceiveOutReturnDetail::getId).collect(Collectors.toList())));
|
||||||
return sucess;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Boolean callEasByOneBill(ReceiveOutReturn entity, Boolean sucess, Long id, List<ReceiveOutReturnDetail> details, String now, ErpUtil login) {
|
private Boolean callEasByOneBill(ReceiveOutReturn entity, Boolean sucess, Long id, List<ReceiveOutReturnDetail> details, String now, ErpUtil login) {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ public enum StockReturnStatusEnum {
|
|||||||
SUCESS("1","回传成功"),
|
SUCESS("1","回传成功"),
|
||||||
FAIL("2","回传失败"),
|
FAIL("2","回传失败"),
|
||||||
ERROR("3","回传异常"),
|
ERROR("3","回传异常"),
|
||||||
|
IGNORE("4","忽略过账"),
|
||||||
;
|
;
|
||||||
|
|
||||||
StockReturnStatusEnum(String code, String desc) {
|
StockReturnStatusEnum(String code, String desc) {
|
||||||
|
|||||||
@@ -73,6 +73,8 @@
|
|||||||
<el-table-column prop="orgno" label="机构编号" min-width="120" />
|
<el-table-column prop="orgno" label="机构编号" min-width="120" />
|
||||||
<el-table-column prop="biztype" label="业务类型" min-width="100" />
|
<el-table-column prop="biztype" label="业务类型" min-width="100" />
|
||||||
<el-table-column prop="invscheme" label="库存方案" min-width="100" />
|
<el-table-column prop="invscheme" label="库存方案" min-width="100" />
|
||||||
|
<el-table-column prop="trackNo" label="跟踪号" min-width="100" />
|
||||||
|
<el-table-column prop="workArea" label="产线" min-width="100" />
|
||||||
<el-table-column prop="transtype" label="交易类型" min-width="100" />
|
<el-table-column prop="transtype" label="交易类型" min-width="100" />
|
||||||
<el-table-column prop="biztime" label="业务时间" min-width="160" />
|
<el-table-column prop="biztime" label="业务时间" min-width="160" />
|
||||||
<el-table-column prop="createTime" label="创建时间" min-width="160" />
|
<el-table-column prop="createTime" label="创建时间" min-width="160" />
|
||||||
@@ -121,7 +123,7 @@
|
|||||||
<el-descriptions-item label="回传备注" :span="2">{{ currentRow.remark }}</el-descriptions-item>
|
<el-descriptions-item label="回传备注" :span="2">{{ currentRow.remark }}</el-descriptions-item>
|
||||||
<el-descriptions-item label="报工参数" :span="2">{{ currentRow.reportParam }}</el-descriptions-item>
|
<el-descriptions-item label="报工参数" :span="2">{{ currentRow.reportParam }}</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<el-table :data="currentRow.details || []" size="mini" style="width: 100%; margin-top: 12px;">
|
<el-table :data="pagedDetails" size="mini" style="width: 100%; margin-top: 12px;">
|
||||||
<el-table-column prop="seq" label="行序号" width="80" />
|
<el-table-column prop="seq" label="行序号" width="80" />
|
||||||
<el-table-column label="回传状态" min-width="140">
|
<el-table-column label="回传状态" min-width="140">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
@@ -154,6 +156,14 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<el-pagination
|
||||||
|
style="margin-top: 8px; text-align: right;"
|
||||||
|
:current-page.sync="detailPage.page"
|
||||||
|
:page-size.sync="detailPage.size"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:total="(currentRow.details || []).length"
|
||||||
|
layout="total, prev, pager, next, sizes"
|
||||||
|
/>
|
||||||
<div slot="footer" class="dialog-footer"><el-button type="primary" @click="viewShow = false">关闭</el-button></div>
|
<div slot="footer" class="dialog-footer"><el-button type="primary" @click="viewShow = false">关闭</el-button></div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
@@ -212,6 +222,7 @@ export default {
|
|||||||
viewShow: false,
|
viewShow: false,
|
||||||
uploadFlag: true,
|
uploadFlag: true,
|
||||||
currentRow: {},
|
currentRow: {},
|
||||||
|
detailPage: { page: 1, size: 10 },
|
||||||
permission: {
|
permission: {
|
||||||
add: ['purchasemst:add'],
|
add: ['purchasemst:add'],
|
||||||
edit: ['purchasemst:edit'],
|
edit: ['purchasemst:edit'],
|
||||||
@@ -221,7 +232,8 @@ export default {
|
|||||||
{ value: '0', label: '待回传' },
|
{ value: '0', label: '待回传' },
|
||||||
{ value: '1', label: '回传成功' },
|
{ value: '1', label: '回传成功' },
|
||||||
{ value: '2', label: '回传失败' },
|
{ value: '2', label: '回传失败' },
|
||||||
{ value: '3', label: '回传异常' }
|
{ value: '3', label: '回传异常' },
|
||||||
|
{ value: '4', label: '忽略过账' },
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
orgno: [{ required: true, message: '请输入机构编号', trigger: 'blur' }],
|
orgno: [{ required: true, message: '请输入机构编号', trigger: 'blur' }],
|
||||||
@@ -230,6 +242,22 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
pagedDetails() {
|
||||||
|
const list = this.currentRow.details || []
|
||||||
|
const start = (this.detailPage.page - 1) * this.detailPage.size
|
||||||
|
return list.slice(start, start + this.detailPage.size)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'detailPage.size'() {
|
||||||
|
const total = (this.currentRow.details || []).length
|
||||||
|
const maxPage = Math.max(1, Math.ceil(total / this.detailPage.size))
|
||||||
|
if (this.detailPage.page > maxPage) {
|
||||||
|
this.detailPage.page = maxPage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
if (this.query.dateRange) {
|
if (this.query.dateRange) {
|
||||||
@@ -332,6 +360,7 @@ export default {
|
|||||||
toView(row) {
|
toView(row) {
|
||||||
get(row.id).then(res => {
|
get(row.id).then(res => {
|
||||||
this.currentRow = res.data
|
this.currentRow = res.data
|
||||||
|
this.detailPage.page = 1
|
||||||
this.viewShow = true
|
this.viewShow = true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user