2026.3.19 晚

缓存出库确认后台
This commit is contained in:
1009473166@qq.com
2026-04-27 15:58:34 +08:00
parent 3729d0df5f
commit 52ce9135da
20 changed files with 320 additions and 162 deletions

View File

@@ -659,7 +659,7 @@ public class ToErpServiceImpl implements IToErpService {
callBackErp.setCcompany(inStockin.getCompanyShortName()); // 公司简称 callBackErp.setCcompany(inStockin.getCompanyShortName()); // 公司简称
callBackErp.setCcode(inStockin.getStockinId()); // wms 单据号 callBackErp.setCcode(inStockin.getStockinId()); // wms 单据号
callBackErp.setDdate(inStockin.getFinishDate()); // 操作日期 callBackErp.setDdate(inStockin.getFinishDate()); // 操作日期
callBackErp.setCintype("1"); // 业务类型 callBackErp.setCintype(inStockin.getInType()); // 业务类型
callBackErp.setCvencode(inStockin.getSupplierNo()); // 供应商编码 callBackErp.setCvencode(inStockin.getSupplierNo()); // 供应商编码
callBackErp.setCvenname(inStockin.getSupplierNo()); // 供应商名称 callBackErp.setCvenname(inStockin.getSupplierNo()); // 供应商名称
callBackErp.setCoptname(inStockin.getCreateManId()); // 操作人 callBackErp.setCoptname(inStockin.getCreateManId()); // 操作人
@@ -720,7 +720,7 @@ public class ToErpServiceImpl implements IToErpService {
String sendMsg = JSONUtil.toJsonStr(callBackErp); String sendMsg = JSONUtil.toJsonStr(callBackErp);
try { try {
//todo 发送给erp 成功失败改状态 //todo 发送给erp 成功失败改状态
RequestLog requestLog = requestLogService.getRequestLog("http://192.168.188.235/app1/api?type=1&key=1", JSONUtil.toJsonStr(callBackErp), "入库回传", "wms", "erp"); RequestLog requestLog = requestLogService.getRequestLog("http://192.168.188.235/app1/api?type=1&key=1", JSONUtil.toJsonStr(callBackErp), "入库回传", "wms", "erp", inStockin.getInType(), inStockin.getAccountSetNo());
if ("1".equals(requestLog.getIsSuccessful())) { if ("1".equals(requestLog.getIsSuccessful())) {
inStockin.setSendStatus("1"); inStockin.setSendStatus("1");
inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -728,6 +728,8 @@ public class ToErpServiceImpl implements IToErpService {
inStockinDetailParam.setSendStatus("1"); inStockinDetailParam.setSendStatus("1");
inStockinDetailParam.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); inStockinDetailParam.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
inStockinDetailParam.setMsg("成功"); inStockinDetailParam.setMsg("成功");
inStockinDetailBackService.insertInStockInDetailBackFinish(inStockinDetails);
inStockinDetailBackService.deleteInStockInDetailList(inStockinDetails);
} else { } else {
inStockin.setSendStatus("2"); inStockin.setSendStatus("2");
inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -739,6 +741,7 @@ public class ToErpServiceImpl implements IToErpService {
inStockinBackService.updateInStockinBack(inStockin); inStockinBackService.updateInStockinBack(inStockin);
inStockinDetailBackService.updateInStockinDetailBack(inStockinDetailParam); inStockinDetailBackService.updateInStockinDetailBack(inStockinDetailParam);
} catch (Exception e) { } catch (Exception e) {
inStockin.setSendStatus("2"); inStockin.setSendStatus("2");
inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -752,6 +755,11 @@ public class ToErpServiceImpl implements IToErpService {
} }
public static void main(String[] args) {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
@Override @Override
public void callbackDeliveryOutNoticeNew() { public void callbackDeliveryOutNoticeNew() {
OutStockoutBack outStockoutBack = outStockoutBackService.selelctTopOutStockout(); OutStockoutBack outStockoutBack = outStockoutBackService.selelctTopOutStockout();

View File

@@ -44,7 +44,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override @Override
eduled(fixedDelay=1500) @Scheduled(fixedDelay=1500)
public void pushOutMydoJob() { public void pushOutMydoJob() {
//查询所有未推送的料箱出库作业 //查询所有未推送的料箱出库作业
MydoJob mydoJobParam = new MydoJob(); MydoJob mydoJobParam = new MydoJob();

View File

@@ -4,6 +4,7 @@ import java.util.List;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack; import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import org.apache.ibatis.annotations.Param;
/** /**
* 入库单据子信息Mapper接口 * 入库单据子信息Mapper接口
@@ -11,8 +12,7 @@ import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
* @author ruoyi * @author ruoyi
* @date 2026-01-27 * @date 2026-01-27
*/ */
public interface InStockinDetailBackMapper public interface InStockinDetailBackMapper {
{
/** /**
* 查询入库单据子信息 * 查询入库单据子信息
* *
@@ -36,6 +36,7 @@ public interface InStockinDetailBackMapper
* @return 结果 * @return 结果
*/ */
public int insertInStockinDetailBack(InStockinDetailBack inStockinDetailBack); public int insertInStockinDetailBack(InStockinDetailBack inStockinDetailBack);
public int insertInStockinDetailBackById(InStockin inStockin); public int insertInStockinDetailBackById(InStockin inStockin);
/** /**
@@ -61,4 +62,8 @@ public interface InStockinDetailBackMapper
* @return 结果 * @return 结果
*/ */
public int deleteInStockinDetailBackByStockinDetailIds(String[] stockinDetailIds); public int deleteInStockinDetailBackByStockinDetailIds(String[] stockinDetailIds);
void insertInStockInDetailBackFinish(@Param("list") List<InStockinDetailBack> inStockinDetailParam);
void deleteInStockInDetailList(@Param("idList") List<InStockinDetailBack> inStockinDetails);
} }

View File

@@ -58,4 +58,8 @@ public interface IInStockinDetailBackService
* @return 结果 * @return 结果
*/ */
public int deleteInStockinDetailBackByStockinDetailId(String stockinDetailId); public int deleteInStockinDetailBackByStockinDetailId(String stockinDetailId);
void insertInStockInDetailBackFinish(List<InStockinDetailBack> inStockinDetailParam);
void deleteInStockInDetailList(List<InStockinDetailBack> inStockinDetails);
} }

View File

@@ -90,4 +90,14 @@ public class InStockinDetailBackServiceImpl implements IInStockinDetailBackServi
{ {
return inStockinDetailBackMapper.deleteInStockinDetailBackByStockinDetailId(stockinDetailId); return inStockinDetailBackMapper.deleteInStockinDetailBackByStockinDetailId(stockinDetailId);
} }
@Override
public void insertInStockInDetailBackFinish(List<InStockinDetailBack> inStockinDetailParam) {
inStockinDetailBackMapper.insertInStockInDetailBackFinish(inStockinDetailParam);
}
@Override
public void deleteInStockInDetailList(List<InStockinDetailBack> inStockinDetails) {
inStockinDetailBackMapper.deleteInStockInDetailList(inStockinDetails);
}
} }

View File

@@ -1,6 +1,7 @@
package com.ruoyi.in.stockindetail.mapper; package com.ruoyi.in.stockindetail.mapper;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import com.ruoyi.in.stockindetail.domain.InStockinDetail; import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -69,4 +70,5 @@ public interface InStockinDetailMapper
void deleteInStockinDetailByStockinGuid(String stockinGuid); void deleteInStockinDetailByStockinGuid(String stockinGuid);
InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail); InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
} }

View File

@@ -2,6 +2,7 @@ package com.ruoyi.in.stockindetail.service;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import com.ruoyi.in.stockindetail.domain.InStockinDetail; import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import java.util.List; import java.util.List;
@@ -81,4 +82,6 @@ public interface IInStockinDetailService
public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail); public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
} }

View File

@@ -3,6 +3,7 @@ package com.ruoyi.in.stockindetail.service.impl;
import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import com.ruoyi.in.stockindetail.domain.InStockinDetail; import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.mapper.InStockinDetailMapper; import com.ruoyi.in.stockindetail.mapper.InStockinDetailMapper;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService; import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
@@ -127,4 +128,6 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService
return inStockinDetailMapper.selectStockinByDetailById(inStockinDetail); return inStockinDetailMapper.selectStockinByDetailById(inStockinDetail);
} }
} }

View File

@@ -69,6 +69,9 @@ public interface IRequestLogService
* @return * @return
*/ */
public RequestLog getRequestLog(String url, String param, String remark,String source,String target); public RequestLog getRequestLog(String url, String param, String remark,String source,String target);
public RequestLog getRequestLog(String url, String param, String remark,String source,String target,String billType,String ciccid);
/** /**
* 接收接口记录 * 接收接口记录
* *

View File

@@ -3,6 +3,7 @@ package com.ruoyi.log.service.impl;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@@ -24,8 +25,7 @@ import java.util.List;
*/ */
@Service @Service
@Slf4j @Slf4j
public class RequestLogServiceImpl implements IRequestLogService public class RequestLogServiceImpl implements IRequestLogService {
{
@Autowired @Autowired
private RequestLogMapper requestLogMapper; private RequestLogMapper requestLogMapper;
@@ -36,8 +36,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 接口记录 * @return 接口记录
*/ */
@Override @Override
public RequestLog selectRequestLogByRequestId(Long requestId) public RequestLog selectRequestLogByRequestId(Long requestId) {
{
return requestLogMapper.selectRequestLogByRequestId(requestId); return requestLogMapper.selectRequestLogByRequestId(requestId);
} }
@@ -48,8 +47,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 接口记录 * @return 接口记录
*/ */
@Override @Override
public List<RequestLog> selectRequestLogList(RequestLog requestLog) public List<RequestLog> selectRequestLogList(RequestLog requestLog) {
{
return requestLogMapper.selectRequestLogList(requestLog); return requestLogMapper.selectRequestLogList(requestLog);
} }
@@ -60,8 +58,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int insertRequestLog(RequestLog requestLog) public int insertRequestLog(RequestLog requestLog) {
{
return requestLogMapper.insertRequestLog(requestLog); return requestLogMapper.insertRequestLog(requestLog);
@@ -74,8 +71,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateRequestLog(RequestLog requestLog) public int updateRequestLog(RequestLog requestLog) {
{
return requestLogMapper.updateRequestLog(requestLog); return requestLogMapper.updateRequestLog(requestLog);
} }
@@ -86,8 +82,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteRequestLogByRequestIds(Long[] requestIds) public int deleteRequestLogByRequestIds(Long[] requestIds) {
{
return requestLogMapper.deleteRequestLogByRequestIds(requestIds); return requestLogMapper.deleteRequestLogByRequestIds(requestIds);
} }
@@ -98,8 +93,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果 * @return 结果
*/ */
@Override @Override
public int deleteRequestLogByRequestId(Long requestId) public int deleteRequestLogByRequestId(Long requestId) {
{
return requestLogMapper.deleteRequestLogByRequestId(requestId); return requestLogMapper.deleteRequestLogByRequestId(requestId);
} }
@@ -122,7 +116,9 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setRequestBody(param); requestLog.setRequestBody(param);
requestLog.setRequestUrl(url); requestLog.setRequestUrl(url);
try { try {
String resStr = HttpUtil.post(url, param); String resStr = HttpRequest.post(url).form("datajson", param).form("ibilltype", "").form("cacc_id", "").contentType("application/x-www-from-urlencoded").
timeout(2000).execute().body();
// String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr); requestLog.setResponseBody(resStr);
// 判断resStr的状态码,如果不是200抛出异常让catch捕获 // 判断resStr的状态码,如果不是200抛出异常让catch捕获
if (!JSONUtil.isJsonObj(resStr)) { if (!JSONUtil.isJsonObj(resStr)) {
@@ -147,6 +143,47 @@ public class RequestLogServiceImpl implements IRequestLogService
return requestLog; return requestLog;
} }
@Override
public RequestLog getRequestLog(String url, String param, String remark, String source, String target, String billType, String ciccid) {
RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setSourceSystem(source);
requestLog.setTargetSystem(target);
requestLog.setEndpoint(remark);
requestLog.setRequestMethod("post");
requestLog.setRequestHeaders(null);
requestLog.setRequestBody("datajson:" + param + ",ibilltype:" + billType + ",cacc_id:" + ciccid);
requestLog.setRequestUrl(url);
try {
String resStr = HttpRequest.post(url).form("datajson", param).form("ibilltype", billType).form("cacc_id", ciccid).contentType("application/x-www-from-urlencoded").
timeout(2000).execute().body();
// String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr);
// 判断resStr的状态码,如果不是200抛出异常让catch捕获
if (!JSONUtil.isJsonObj(resStr)) {
throw new RuntimeException("返回结果不是有效的JSON对象");
}
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(resStr);
Object codeObj = jsonObject.get("code");
if (codeObj == null || !codeObj.toString().equals("200")) {
throw new RuntimeException("请求失败,状态码: " + (codeObj != null ? codeObj.toString() : "null"));
}
requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
requestLog.setResponseStatus("1");
requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS)));
requestLog.setIsSuccessful("1");
} catch (Exception e) {
requestLog.setErrorDetails(e.getMessage());
requestLog.setIsSuccessful("0");
requestLog.setResponseStatus("0");
} finally {
insertRequestLog(requestLog);
}
return requestLog;
}
/** /**
* 插入请求日志 * 插入请求日志
* *

View File

@@ -6,9 +6,9 @@ spring:
druid: druid:
# 主库数据源 # 主库数据源
master: master:
url: jdbc:sqlserver://192.168.188.236:1433;databaseName=FT546-wms;encrypt=true;trustServerCertificate=true; url: jdbc:sqlserver://127.0.0.1:1433;databaseName=FT546-wms;encrypt=true;trustServerCertificate=true;
username: sa username: sa
password: Flrd0914. password: 123456
# 从库数据源 # 从库数据源
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭

View File

@@ -71,7 +71,7 @@ spring:
# redis 配置 # redis 配置
redis: redis:
# 地址 # 地址
host: 192.168.188.236 host: 127.0.0.1
# 端口,默认为6379 # 端口,默认为6379
port: 6379 port: 6379
# 数据库索引 # 数据库索引

View File

@@ -27,6 +27,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="sendStatus" column="send_status"/> <result property="sendStatus" column="send_status"/>
<result property="sendTime" column="send_time"/> <result property="sendTime" column="send_time"/>
<result property="msg" column="msg"/> <result property="msg" column="msg"/>
<result property="msg" column="msg"/>
<result property="msg" column="msg"/>
</resultMap> </resultMap>
<sql id="selectInStockinBackVo"> <sql id="selectInStockinBackVo">

View File

@@ -274,10 +274,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
delete from in_stockin_detail_back where stockin_detail_id = #{stockinDetailId} delete from in_stockin_detail_back where stockin_detail_id = #{stockinDetailId}
</delete> </delete>
<insert id="insertInStockInDetailBackFinish" parameterType="java.util.List">
INSERT INTO in_stockin_detail_back_finish
<foreach collection="list" item="item" separator="UNION ALL">
SELECT * FROM in_stockin_detail_back
WHERE stockin_detail_id = #{item.stockinDetailId}
</foreach>
</insert>
<delete id="deleteInStockinDetailBackByStockinDetailIds" parameterType="String"> <delete id="deleteInStockinDetailBackByStockinDetailIds" parameterType="String">
delete from in_stockin_detail_back where stockin_detail_id in delete from in_stockin_detail_back where stockin_detail_id in
<foreach item="stockinDetailId" collection="array" open="(" separator="," close=")"> <foreach item="stockinDetailId" collection="array" open="(" separator="," close=")">
#{stockinDetailId} #{stockinDetailId}
</foreach> </foreach>
</delete> </delete>
<delete id="deleteInStockInDetailList">
DELETE FROM in_stockin_detail
WHERE stockin_detail_id IN
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper> </mapper>

View File

@@ -343,4 +343,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
order by ist.create_date desc order by ist.create_date desc
</select> </select>
</mapper> </mapper>

View File

@@ -62,7 +62,7 @@ export function getOutStockoutDetail(query) {
export function autoAllot(data) { export function autoAllot(data) {
return request({ return request({
url: '/out/outStockout/autoAllot', url: '/out/outStockout/autoAllot',
method: 'get', method: 'post',
params: data params: data
}) })
} }

View File

@@ -73,14 +73,14 @@
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="批次号" prop="lotNo">&lt;!&ndash;品名&ndash;&gt;--> <el-form-item label="组件号" prop="cargoNo"><!--品名-->
<!-- <el-input--> <el-input
<!-- v-model="queryParams.lotNo"--> v-model="queryParams.cargoNo"
<!-- placeholder="请输入批次号"--> placeholder="请输入组件号"
<!-- clearable--> clearable
<!-- @keyup.enter.native="handleQuery"--> @keyup.enter.native="handleQuery"
<!-- />--> />
<!-- </el-form-item>--> </el-form-item>
<el-form-item :label="'单据时间'" prop="dateRange"> <el-form-item :label="'单据时间'" prop="dateRange">
<el-date-picker <el-date-picker
@@ -233,10 +233,11 @@
<el-table-column label="计划数量" align="left" prop="quantity"/><!--计划数量--> <el-table-column label="计划数量" align="left" prop="quantity"/><!--计划数量-->
<el-table-column label="扫码数量" align="left" prop="scanNum"/><!--扫码数量--> <el-table-column label="扫码数量" align="left" prop="scanNum"/><!--扫码数量-->
<el-table-column label="实际数量" align="left" prop="assignNum"/><!--实际数量--> <el-table-column label="实际数量" align="left" prop="assignNum"/><!--实际数量-->
<el-table-column label="货位号" align="left" prop="assignNum" /><!--实际数量--> <el-table-column label="货位号" align="left" prop="spare9"/><!--实际数量-->
<el-table-column label="托盘号" align="left" prop="assignNum" /><!--实际数量--> <el-table-column label="托盘号" align="left" prop="spare8"/><!--实际数量-->
<el-table-column label="条码号" align="left" prop="assignNum" /><!--实际数量--> <el-table-column label="条码号" align="left" prop="barCode"/><!--实际数量-->
<el-table-column label="采购订单" align="left" prop="assignNum" /><!--实际数量--> <el-table-column label="组件号" align="left" prop="cargoNo"/><!--组件号-->
<el-table-column label="项目号" align="left" prop="spare4"/><!--项目号-->
</el-table> </el-table>
<pagination <pagination
@@ -341,7 +342,8 @@ export default {
spare2: null, spare2: null,
spare4: null, spare4: null,
spare3: null, spare3: null,
spare5: null spare5: null,
cargoNo: null
}, },
queryDetailParams: { queryDetailParams: {
pageNum: 1, pageNum: 1,

View File

@@ -25,9 +25,9 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item :label="'erp单据号'" prop="erpStockOutId"> <!-- 出库单编号 --> <el-form-item :label="'erp单据号'" prop="erpStockoutId"> <!-- 出库单编号 -->
<el-input <el-input
v-model="queryParams.erpStockOutId" v-model="queryParams.erpStockoutId"
:placeholder="'请输入出库单编号'" :placeholder="'请输入出库单编号'"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
@@ -43,6 +43,19 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="'出库方向'" prop="spare8"> <!-- 出库方向 -->
<el-select v-model="queryParams.spare8" :placeholder="'请选择出库方向'" clearable>
<el-option
v-for="dict in dict.type.out_location"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="'单据状态'" prop="status"> <!-- 单据状态 --> <el-form-item :label="'单据状态'" prop="status"> <!-- 单据状态 -->
<el-select v-model="queryParams.status" :placeholder="'请选择单据状态'" clearable> <el-select v-model="queryParams.status" :placeholder="'请选择单据状态'" clearable>
<el-option <el-option
@@ -153,7 +166,7 @@
<el-table v-loading="loading" :data="outStockoutList" @selection-change="handleSelectionChange" @row-click="handleRowClick" max-height="400"> <el-table v-loading="loading" :data="outStockoutList" @selection-change="handleSelectionChange" @row-click="handleRowClick" max-height="400">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="'出库单编号'" align="left" prop="stockoutId" /> <el-table-column :label="'出库单编号'" align="left" prop="stockoutId" />
<el-table-column :label="'erp单据号'" align="left" prop="erpStockOutId" /> <el-table-column :label="'erp单据号'" align="left" prop="erpStockoutId" />
<el-table-column :label="'出库类型'" align="left" prop="outType"> <el-table-column :label="'出库类型'" align="left" prop="outType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.out_bill_type" :value="scope.row.outType"/> <dict-tag :options="dict.type.out_bill_type" :value="scope.row.outType"/>
@@ -184,10 +197,16 @@
<!-- <el-table-column :label="'销售订单号'" align="left" prop="spare2" />--> <!-- <el-table-column :label="'销售订单号'" align="left" prop="spare2" />-->
<el-table-column :label="'审核时间'" align="left" prop="spare3" /> <el-table-column :label="'审核时间'" align="left" prop="spare3" />
<el-table-column :label="'审核人'" align="left" prop="spare4" /> <el-table-column :label="'审核人'" align="left" prop="spare4" />
<el-table-column :label="'出库方向'" align="left" prop="spare8" >
<template slot-scope="scope">
<dict-tag :options="dict.type.out_location" :value="scope.row.spare8"/>
</template>
</el-table-column>
<el-table-column :label="'创建时间'" align="left" prop="createDate" width="160" sortable/> <el-table-column :label="'创建时间'" align="left" prop="createDate" width="160" sortable/>
<el-table-column :label="'开始时间'" align="left" prop="startDate" width="160" sortable/> <el-table-column :label="'开始时间'" align="left" prop="startDate" width="160" sortable/>
<el-table-column :label="'确认时间'" align="left" prop="finishDate" width="160" sortable/> <el-table-column :label="'确认时间'" align="left" prop="finishDate" width="160" sortable/>
<el-table-column :label="'备注'" align="left" prop="spare5" /> <el-table-column :label="'备注'" align="left" prop="spare5" />
</el-table> </el-table>
<pagination <pagination
@@ -356,7 +375,7 @@ import {listWarehouse} from "@/api/bas/warehouse";
export default { export default {
name: "OutStockWithDetail", name: "OutStockWithDetail",
dicts: ['out_bill_type', 'out_bill_status', 'out_method', 'bill_resource'], dicts: ['out_bill_type', 'out_bill_status', 'out_method', 'bill_resource','out_location'],
data() { data() {
return { return {
// 遮罩层 // 遮罩层
@@ -413,14 +432,15 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
stockoutId: null, stockoutId: null,
erpStockOutId:null, erpStockoutId:null,
outType: null, outType: null,
customerNo: null, customerNo: null,
customerName: null, customerName: null,
productName: null, productName: null,
startDate: null, startDate: null,
finishDate: null, finishDate: null,
status: null status: null,
spare8:null
}, },
// 子表分页参数 // 子表分页参数
detailQueryParams: { detailQueryParams: {
@@ -605,8 +625,14 @@ export default {
this.$modal.msgError('请先审核出库单') this.$modal.msgError('请先审核出库单')
return return
} }
if (this.queryParams.spare8==''||this.queryParams.spare8==null){
this.$modal.msgError('请选择出库方向后,再次点击分配!')
return
}
let data = { let data = {
stockoutId: stockoutIds[0] stockoutId: stockoutIds[0],
spare8:this.queryParams.spare8
} }
autoAllot(data).then(response => { autoAllot(data).then(response => {
if (response.code !== 200){ if (response.code !== 200){

View File

@@ -63,6 +63,28 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="托盘类型" prop="ktpType"> <!-- 作业类型 -->
<el-select v-model="queryParams.ktpType" placeholder="请选择托盘类型" clearable>
<el-option
v-for="item in ktpType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="物料类型" prop="model"> <!-- 作业类型 -->
<el-select v-model="queryParams.model" placeholder="请选择物料类型" clearable>
<el-option
v-for="item in productType"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button><!-- 搜索 --> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button><!-- 搜索 -->
@@ -352,6 +374,7 @@ import { listManagement, getManagement, delManagement, addManagement, updateMana
import {listWarehouse} from "@/api/bas/warehouse" import {listWarehouse} from "@/api/bas/warehouse"
import {listBasProduct} from "@/api/bas/BasProduct" import {listBasProduct} from "@/api/bas/BasProduct"
import {listCargoSpace} from "@/api/bas/cargoSpace" import {listCargoSpace} from "@/api/bas/cargoSpace"
export default { export default {
name: "Management", name: "Management",
dicts: ['product_status', 'stock_status', 'cargo_space_status', 'cargo_space_lock_status'], dicts: ['product_status', 'stock_status', 'cargo_space_status', 'cargo_space_lock_status'],
@@ -373,6 +396,8 @@ export default {
managementList: [], managementList: [],
// 仓库选项 // 仓库选项
warehouseOptions: [], warehouseOptions: [],
productType: [{label: '半托', value: '0'}, {label: '满托', value: '1'}],
ktpType: [{label: '空托盘', value: '1'}, {label: '物料', value: '2'}],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
@@ -405,7 +430,9 @@ export default {
spare3: null, spare3: null,
spare4: null, spare4: null,
spare5: null, spare5: null,
spare6: null spare6: null,
ktpType: null,
model: null
}, },
queryWarehouse: { queryWarehouse: {
pageNum: 1, pageNum: 1,
@@ -483,8 +510,6 @@ export default {
inDate: null, inDate: null,
backDate: null, backDate: null,
productGuid: null, productGuid: null,
productId: null,
productName: null,
quantity: null, quantity: null,
jobId: null, jobId: null,
trayCode: null, trayCode: null,
@@ -500,7 +525,9 @@ export default {
spare3: null, spare3: null,
spare4: null, spare4: null,
spare5: null, spare5: null,
spare6: null spare6: null,
ktpType: null,
productType: null
} }
this.resetForm("form") this.resetForm("form")
}, },
@@ -566,7 +593,8 @@ export default {
}).then(() => { }).then(() => {
this.getList() this.getList()
this.$modal.msgSuccess("删除成功") // 删除成功 this.$modal.msgSuccess("删除成功") // 删除成功
}).catch(() => {}) }).catch(() => {
})
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {

View File

@@ -9,7 +9,7 @@ const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题 const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
const baseUrl = 'http://127.0.0.1:8080' // 后端接口 const baseUrl = 'http://192.168.188.236:8080' // 后端接口
const port = process.env.port || process.env.npm_config_port || 80 // 端口 const port = process.env.port || process.env.npm_config_port || 80 // 端口