opt:优化倒扣逻辑:改成按明细回传
This commit is contained in:
@@ -11,7 +11,6 @@ import org.nl.wms.ext_manage.util.ErpUtil;
|
||||
import org.nl.wms.warehouse_manage.enums.IOSEnum;
|
||||
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;
|
||||
@@ -57,33 +56,6 @@ public class EasApi {
|
||||
iPmStockReturnService.save(stockReturn);
|
||||
}
|
||||
|
||||
public void receiveOutAndSaveReceiveTable(ReceiveOutRequest receiveOutRequest){
|
||||
receiveOutAndSaveReceiveTable(receiveOutRequest, null);
|
||||
}
|
||||
|
||||
public void receiveOutAndSaveReceiveTable(ReceiveOutRequest receiveOutRequest, Long recordId){
|
||||
log.info("======>请求EAS领料出库单接口:" + JSONObject.toJSONString(receiveOutRequest));
|
||||
JSONObject req = new JSONObject();
|
||||
req.put("type", "MES");
|
||||
req.put("method", "DealLLCKBill");
|
||||
req.put("data", receiveOutRequest);
|
||||
String status;
|
||||
String remark;
|
||||
try {
|
||||
ErpUtil.create().login().audit(req.toJSONString());
|
||||
status = StockReturnStatusEnum.SUCESS.getCode();
|
||||
remark = "回传成功";
|
||||
} catch (Exception e) {
|
||||
remark = e.getMessage();
|
||||
status = StockReturnStatusEnum.FAIL.getCode();
|
||||
}
|
||||
if (recordId == null) {
|
||||
receiveOutReturnService.saveFromRequest(receiveOutRequest, status, remark);
|
||||
}else {
|
||||
receiveOutReturnService.updateUploadResult(recordId, status, remark);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询eas库存
|
||||
* @param request
|
||||
|
||||
@@ -37,5 +37,8 @@ public class ReceiveOutRequest {
|
||||
private String lotnumber;
|
||||
private String stockerno;
|
||||
private String stockername;
|
||||
private String status;
|
||||
private String updateTime;
|
||||
private String remark;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,6 +76,7 @@ public class ErpUtil {
|
||||
* 审核接口请求
|
||||
*/
|
||||
public JSONObject audit(String json){
|
||||
log.warn("----"+json);
|
||||
try {
|
||||
call.clearOperation();
|
||||
call.setOperationName("dealTask");
|
||||
|
||||
@@ -53,6 +53,8 @@ import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMappe
|
||||
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.service.dao.mapper.MdPbGroupplateMapper;
|
||||
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.service.IPmStockReturnService;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
|
||||
@@ -90,8 +92,10 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
* 组盘记录
|
||||
*/
|
||||
@Autowired
|
||||
private IMdPbGroupplateService iMdPbGroupplateService; /**
|
||||
private IMdPbGroupplateService iMdPbGroupplateService;
|
||||
|
||||
@Resource
|
||||
private IReceiveOutReturnService receiveOutReturnService;
|
||||
/**
|
||||
* 库区服务
|
||||
*/
|
||||
@@ -296,8 +300,6 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
ioStorInvDtl.setSource_bill_code(param.getWorkOrder());
|
||||
ioStorInvDtl.setSource_bill_type("work_order");
|
||||
ioStorInvDtls.add(ioStorInvDtl);
|
||||
// ioStorInvDtlMapper.insert(ioStorInvDtl);
|
||||
|
||||
totalQty.add(assignQty);
|
||||
// 分配
|
||||
final IOStorInvDis ioStorInvDis = new IOStorInvDis();
|
||||
@@ -347,7 +349,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService {
|
||||
receiveOutRequest.setBiztime(LocalDate.now().toString());
|
||||
receiveOutRequest.setCztype("02");
|
||||
receiveOutRequest.setEntrys(entrys);
|
||||
easApi.receiveOutAndSaveReceiveTable(receiveOutRequest);
|
||||
ReceiveOutReturn entity = receiveOutReturnService.saveFromRequest(
|
||||
receiveOutRequest, StockReturnStatusEnum.TODO.getCode(), null);
|
||||
return PdaResponse.requestOk();
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,6 @@ public class ReceiveOutReturn implements Serializable {
|
||||
@TableField("created_by")
|
||||
private String createdBy;
|
||||
|
||||
@TableField("updated_time")
|
||||
private String updatedTime;
|
||||
@TableField("update_time")
|
||||
private String updateTime;
|
||||
}
|
||||
|
||||
@@ -36,4 +36,8 @@ public class ReceiveOutReturnDetail implements Serializable {
|
||||
private String lotnumber;
|
||||
private String stockerno;
|
||||
private String stockername;
|
||||
@TableField("update_time")
|
||||
private String updateTime;
|
||||
private String status;
|
||||
private String remark;
|
||||
}
|
||||
|
||||
@@ -26,6 +26,10 @@ public interface IReceiveOutReturnService extends IService<ReceiveOutReturn> {
|
||||
|
||||
void updateUploadResult(Long id, String status, String remark);
|
||||
|
||||
void updateDetailUploadResult(Long detailId, String status,String remark);
|
||||
|
||||
void refreshUploadResult(Long id, Boolean sucess);
|
||||
|
||||
void uploadErp(ReceiveOutReturn mst);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.wms.ext_manage.api.EasApi;
|
||||
import org.nl.wms.ext_manage.api.request.ReceiveOutRequest;
|
||||
import org.nl.wms.ext_manage.service.WmsToErpService;
|
||||
import org.nl.wms.ext_manage.util.ErpUtil;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturnDetail;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnDto;
|
||||
@@ -19,15 +23,18 @@ import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.mapper.ReceiveOut
|
||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.mapper.ReceiveOutReturnMapper;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService;
|
||||
import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMapper, ReceiveOutReturn> implements IReceiveOutReturnService {
|
||||
|
||||
@Resource
|
||||
@@ -35,6 +42,9 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
||||
@Resource
|
||||
private EasApi easApi;
|
||||
|
||||
@Autowired
|
||||
private WmsToErpService wmsToErpService;
|
||||
|
||||
@Override
|
||||
public IPage<ReceiveOutReturn> queryPage(ReceiveOutReturnQuery query, PageQuery page) {
|
||||
QueryWrapper<ReceiveOutReturn> wrapper = new QueryWrapper<>();
|
||||
@@ -166,6 +176,8 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
||||
detail.setLotnumber(entry.getLotnumber());
|
||||
detail.setStockerno(entry.getStockerno());
|
||||
detail.setStockername(entry.getStockername());
|
||||
detail.setStatus(StockReturnStatusEnum.TODO.getCode());
|
||||
detail.setUpdateTime(now);
|
||||
receiveOutReturnDetailMapper.insert(detail);
|
||||
}
|
||||
}
|
||||
@@ -200,7 +212,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
||||
dto.setStatus(entity.getStatus());
|
||||
dto.setRequestId(entity.getRequestId());
|
||||
dto.setCreatedBy(entity.getCreatedBy());
|
||||
dto.setUpdatedTime(entity.getUpdatedTime());
|
||||
dto.setUpdatedTime(entity.getUpdateTime());
|
||||
return dto;
|
||||
}
|
||||
|
||||
@@ -243,19 +255,55 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
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());
|
||||
if (entity == null) {
|
||||
throw new BadRequestException("回传记录不存在");
|
||||
}
|
||||
if (entity == null) {throw new BadRequestException("回传记录不存在");}
|
||||
Boolean sucess = Boolean.TRUE;
|
||||
final Long id = entity.getId();
|
||||
List<ReceiveOutReturnDetail> details = receiveOutReturnDetailMapper.selectList(new LambdaQueryWrapper<ReceiveOutReturnDetail>()
|
||||
.eq(ReceiveOutReturnDetail::getReturnId, entity.getId())
|
||||
.eq(ReceiveOutReturnDetail::getReturnId, id)
|
||||
.and(wrapper -> wrapper.ne(ReceiveOutReturnDetail::getStatus, StockReturnStatusEnum.SUCESS.getCode())
|
||||
.or()
|
||||
.isNull(ReceiveOutReturnDetail::getStatus))
|
||||
.orderByAsc(ReceiveOutReturnDetail::getSeq)
|
||||
.orderByAsc(ReceiveOutReturnDetail::getId));
|
||||
ReceiveOutRequest request = buildRequest(entity, details);
|
||||
easApi.receiveOutAndSaveReceiveTable(request, entity.getId());
|
||||
if (details.isEmpty()) {
|
||||
this.refreshUploadResult(id,sucess);
|
||||
}else {
|
||||
final String now = DateUtil.now();
|
||||
final ErpUtil login = ErpUtil.create().login();
|
||||
log.info("======>请求EAS领料出库单数据条:"+details.size());
|
||||
for (ReceiveOutReturnDetail detail : details) {
|
||||
final Long detailId = detail.getId();
|
||||
String status;
|
||||
String remark = null;
|
||||
if (id == null || detailId == null) {
|
||||
throw new IllegalArgumentException("回传记录ID和明细ID不能为空");
|
||||
}
|
||||
final ReceiveOutRequest receiveOutRequest = buildRequest(entity, Collections.singletonList(detail));
|
||||
try {
|
||||
JSONObject req = new JSONObject();
|
||||
req.put("type", "MES");
|
||||
req.put("method", "DealLLCKBill");
|
||||
req.put("data", receiveOutRequest);
|
||||
log.info("======>请求EAS领料出库单接口:" + JSONObject.toJSONString(req));
|
||||
login.audit(req.toJSONString());
|
||||
status = StockReturnStatusEnum.SUCESS.getCode();
|
||||
} catch (Exception e) {
|
||||
sucess = Boolean.FALSE;
|
||||
log.error("请求EAS领料出库单接口失败,回传记录ID:{},明细ID:{}", id, detailId, e);
|
||||
status = StockReturnStatusEnum.FAIL.getCode();
|
||||
remark = e.getMessage();
|
||||
}
|
||||
ReceiveOutReturnDetail updateItem = new ReceiveOutReturnDetail();
|
||||
updateItem.setId(detailId);
|
||||
updateItem.setStatus(status);
|
||||
updateItem.setRemark(remark);
|
||||
updateItem.setUpdateTime(now);
|
||||
receiveOutReturnDetailMapper.updateById(updateItem);
|
||||
}
|
||||
this.refreshUploadResult(id,sucess);
|
||||
}
|
||||
}
|
||||
|
||||
private ReceiveOutRequest buildRequest(ReceiveOutReturn entity, List<ReceiveOutReturnDetail> details) {
|
||||
@@ -302,13 +350,35 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl<ReceiveOutReturnMap
|
||||
return entrys;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateDetailUploadResult(Long detailId, String status, String remark) {
|
||||
ReceiveOutReturnDetail detail = new ReceiveOutReturnDetail();
|
||||
detail.setId(detailId);
|
||||
detail.setStatus(status);
|
||||
detail.setRemark(remark);
|
||||
detail.setUpdateTime(DateUtil.now());
|
||||
receiveOutReturnDetailMapper.updateById(detail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refreshUploadResult(Long id,Boolean sucess) {
|
||||
ReceiveOutReturn entity = new ReceiveOutReturn();
|
||||
entity.setId(id);
|
||||
entity.setStatus(sucess? StockReturnStatusEnum.SUCESS.getCode() : StockReturnStatusEnum.FAIL.getCode());
|
||||
entity.setRemark(sucess? "回传成功" : "存在回传失败明细");
|
||||
entity.setUpdateTime(DateUtil.now());
|
||||
this.updateById(entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateUploadResult(Long id, String status, String remark) {
|
||||
ReceiveOutReturn entity = new ReceiveOutReturn();
|
||||
entity.setId(id);
|
||||
entity.setStatus(status);
|
||||
entity.setRemark(limitText(remark, 1000));
|
||||
entity.setUpdatedTime(DateUtil.now());
|
||||
entity.setUpdateTime(DateUtil.now());
|
||||
this.updateById(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,9 +51,9 @@ spring:
|
||||
master:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_nlwq}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
|
||||
url: jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3307}/${DB_NAME:wms_standardv2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||
url: jdbc:mysql://${DB_HOST:172.30.15.33}:${DB_PORT:3306}/${DB_NAME:wms_nlwq}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false
|
||||
username: ${DB_USER:root}
|
||||
password: ${DB_PWD:123456}
|
||||
password: ${DB_PWD:shnl*123}
|
||||
# password: ${DB_PWD:123456}
|
||||
druid:
|
||||
# 基础连接池配置
|
||||
|
||||
@@ -112,11 +112,19 @@
|
||||
</el-descriptions>
|
||||
<el-table :data="currentRow.details || []" size="mini" style="width: 100%; margin-top: 12px;">
|
||||
<el-table-column prop="seq" label="行序号" width="80" />
|
||||
<el-table-column label="回传状态" min-width="140">
|
||||
<template slot-scope="scope">
|
||||
{{ statusLabel(scope.row.status) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="materialno" label="物料编号" min-width="120" />
|
||||
<el-table-column prop="unitno" label="单位编号" min-width="100" />
|
||||
<el-table-column prop="qty" label="数量" min-width="100" />
|
||||
<el-table-column prop="baseqty" label="基础数量" min-width="100" />
|
||||
<el-table-column prop="warehouseno" label="仓库编号" min-width="120" />
|
||||
<el-table-column prop="updateTime" label="更新时间" min-width="120" />
|
||||
<el-table-column prop="remark" label="说明" min-width="120" />
|
||||
<el-table-column prop="srcbillno" label="源单据编号" min-width="140" />
|
||||
<el-table-column prop="srcbillno" label="源单据编号" min-width="140" />
|
||||
<el-table-column prop="lotnumber" label="批号" min-width="100" />
|
||||
<el-table-column prop="tracknumber" label="追踪号" min-width="120" />
|
||||
@@ -154,7 +162,7 @@ const createDefaultForm = () => ({
|
||||
status: '0',
|
||||
requestId: '',
|
||||
createdBy: '',
|
||||
updatedTime: '',
|
||||
updateTime: '',
|
||||
details: []
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user