opt:1.优化单据回传查询;2.优化用料单实时查询,实时更新;

3.优化失败单据回传字段序列化顺序混乱;
4.手动同步数量限制,模糊搜索;
This commit is contained in:
2025-03-06 20:03:21 +08:00
parent d633021734
commit 70bb1aae8f
9 changed files with 176 additions and 71 deletions

View File

@@ -70,6 +70,10 @@ public class SyncReceiptProcessHandler implements ClassProcess {
} }
handleBillEntity(pmFormData.getForm_type(), formData); handleBillEntity(pmFormData.getForm_type(), formData);
String json = formData.toJSONString(); String json = formData.toJSONString();
LambdaUpdateWrapper<PmFormData> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(PmFormData::getId, pmFormData.getId());
updateWrapper.set(PmFormData::getUpdate_time, DateUtil.now());
updateWrapper.set(PmFormData::getErp_data, json);
try { try {
IdentifyInfo identifyInfo = new IdentifyInfo(); IdentifyInfo identifyInfo = new IdentifyInfo();
BeanUtils.copyProperties(erpSec, identifyInfo); BeanUtils.copyProperties(erpSec, identifyInfo);
@@ -90,21 +94,15 @@ public class SyncReceiptProcessHandler implements ClassProcess {
.map(error -> ((JSONObject) error).getString("Message")) .map(error -> ((JSONObject) error).getString("Message"))
.collect(Collectors.joining("; ")); .collect(Collectors.joining("; "));
} }
LambdaUpdateWrapper<PmFormData> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(PmFormData::getId, pmFormData.getId());
updateWrapper.set(PmFormData::getUpdate_time, DateUtil.now());
if (isSuccess) { if (isSuccess) {
updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成")); updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成"));
updateWrapper.set(PmFormData::getRemark, "回执单创建成功,回传Erp数据为:" + responseStatus.getJSONArray("SuccessEntitys").toJSONString()); updateWrapper.set(PmFormData::getRemark, "回执单创建成功,回传Erp数据为:" + responseStatus.getJSONArray("SuccessEntitys").toJSONString());
Log.error("回传Erp数据为:" + json + ",传输数据为:");
} else { } else {
updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("暂停")); updateWrapper.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("暂停"));
updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:" + errorMessages + ",回传Erp数据为:" + json); updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:" + errorMessages + ",回传Erp数据为:" + json);
Log.error("回传Erp数据为:" + json + ",传输数据为:");
} }
iPmFormDataService.update(updateWrapper); iPmFormDataService.update(updateWrapper);
} catch (Exception ex) { } catch (Exception ex) {
LambdaUpdateWrapper<PmFormData> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(PmFormData::getId, pmFormData.getId()); updateWrapper.eq(PmFormData::getId, pmFormData.getId());
updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:" + ex.getMessage() + ",回传Erp数据为:" + json); updateWrapper.set(PmFormData::getRemark, "回执单创建失败,原因为:" + ex.getMessage() + ",回传Erp数据为:" + json);
iPmFormDataService.update(updateWrapper); iPmFormDataService.update(updateWrapper);

View File

@@ -3,15 +3,18 @@ package org.nl.wms.pm_manage.form_data.controller;
import cn.dev33.satoken.annotation.SaIgnore; import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.lang3.ObjectUtils;
import org.nl.common.TableDataInfo; import org.nl.common.TableDataInfo;
import org.nl.common.anno.Log; import org.nl.common.anno.Log;
import org.nl.common.domain.entity.PageQuery; import org.nl.common.domain.entity.PageQuery;
import org.nl.common.enums.StatusEnum;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery;
@@ -22,6 +25,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Arrays; import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
@@ -69,10 +74,30 @@ public class PmFormDataController {
} }
@GetMapping("/getSonFormData/{id}") @GetMapping("/getSonFormData/{id}")
public ResponseEntity<Object> getSonDtlFormData(@PathVariable String id){ public ResponseEntity<Object> getSonDtlFormData(@PathVariable String id) {
//参数判读,参数解析,调用参数入库 //参数判读,参数解析,调用参数入库
//Page<BmFormStruc> page = iBmFormStrucService.page(pageQuery.build(), query.build()); //Page<BmFormStruc> page = iBmFormStrucService.page(pageQuery.build(), query.build());
return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id),HttpStatus.OK); return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id), HttpStatus.OK);
}
@PostMapping("/confirmStatus")
@SaIgnore
@Log("单据完成")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity<Object> confirmStatus(@RequestBody JSONObject form) {
JSONArray data = form.getJSONArray("data");
if (!ObjectUtils.isEmpty(data)) {
Set<String> ids = data.stream()
.map(item -> (String) item)
.collect(Collectors.toSet());
iPmFormDataService.update(
new LambdaUpdateWrapper<PmFormData>()
.set(PmFormData::getStatus, StatusEnum.FORM_STATUS.code("完成"))
.in(PmFormData::getId, ids)
);
}
return new ResponseEntity<>(HttpStatus.OK);
} }

View File

@@ -3,9 +3,9 @@ package org.nl.wms.pm_manage.form_data.service.dao;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import org.nl.common.domain.mybatis.handler.FastjsonSortTypeHandler;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.nl.common.domain.mybatis.handler.FastjsonSortTypeHandler;
import org.nl.common.enums.StatusEnum; import org.nl.common.enums.StatusEnum;
import java.io.Serializable; import java.io.Serializable;
@@ -351,4 +351,11 @@ public class PmFormData implements Serializable {
private String taxPrice; private String taxPrice;
/**
* 自定义表单字段
*/
@TableField(typeHandler = FastjsonSortTypeHandler.class)
private JSONObject erp_data = new JSONObject();
} }

View File

@@ -112,16 +112,19 @@
md_me_materialbase.single_weight md_me_materialbase.single_weight
FROM FROM
pm_form_data pm_form_data
left join md_me_materialbase on pm_form_data.material_id = md_me_materialbase.material_id left join md_me_materialbase on pm_form_data.material_id = md_me_materialbase.material_id
<where> <where>
<if test="query.search != null and query.search != ''"> <if test="query.search != null and query.search != ''">
and form_data LIKE '%${query.search}%' and form_data LIKE '%${query.search}%'
</if> </if>
<if test="query.form_type != null and query.form_type != ''"> <if test="query.form_type != null and query.form_type != ''">
and form_type = #{query.form_type} and form_type = #{query.form_type}
</if> </if>
<if test="query.pcsn != null and query.pcsn != ''">
and pcsn = #{query.pcsn}
</if>
<if test="query.code != null and query.code != ''"> <if test="query.code != null and query.code != ''">
and code = #{query.code} and code LIKE '%${query.code}'
</if> </if>
<if test="query.mater != null and query.mater != ''"> <if test="query.mater != null and query.mater != ''">
and md_me_materialbase.material_code like '%${query.mater}%' and md_me_materialbase.material_code like '%${query.mater}%'
@@ -142,7 +145,7 @@
and parent_id = #{query.parent_id} and parent_id = #{query.parent_id}
</if> </if>
<if test="query.form_query != null and query.form_query.size() > 0"> <if test="query.form_query != null and query.form_query.size() > 0">
<foreach collection="query.form_query" item="value" index="key" > <foreach collection="query.form_query" item="value" index="key">
<if test="value != null and value != ''"> <if test="value != null and value != ''">
and JSON_CONTAINS(form_data, '{"${key}":"${value}"}') and JSON_CONTAINS(form_data, '{"${key}":"${value}"}')
</if> </if>

View File

@@ -19,6 +19,7 @@ public class FormDataQuery extends BaseQuery<PmFormData> {
private String bill_code; private String bill_code;
private String site_code; private String site_code;
private String search; private String search;
private String pcsn;
private String parent_id; private String parent_id;
private String mater; private String mater;
private String[] status; private String[] status;

View File

@@ -113,13 +113,15 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
* 手动推送回执单据 * 手动推送回执单据
*/ */
@Override @Override
public String syncFeedBack(JSONObject jsonData) { public String syncFeedBack(JSONObject form) {
//执行回传单 //执行回传单
PmFormData pmFormData = jsonData.toJavaObject(PmFormData.class); JSONArray jsonData = form.getJSONArray("data");
PmFormData pmFormData = jsonData.getObject(0, PmFormData.class);
if (Integer.parseInt(pmFormData.getStatus()) > 30) { if (Integer.parseInt(pmFormData.getStatus()) > 30) {
throw new BadRequestException("该单据状态为已完成,无需再次回传!"); throw new BadRequestException("该单据状态为已完成,无需再次回传!");
} }
JSONObject formData = pmFormData.getForm_data(); PmFormData data = iPmFormDataService.getById(pmFormData.getId());
JSONObject formData = data.getErp_data();
//要回传的json数据 //要回传的json数据
String formid = formData.getString("formid"); String formid = formData.getString("formid");
if (StringUtils.isEmpty(formid)) { if (StringUtils.isEmpty(formid)) {
@@ -275,7 +277,9 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, query.getForm_type())); List<SyncFormMapping> list = iSyncFormMappingService.list(new LambdaQueryWrapper<SyncFormMapping>().eq(SyncFormMapping::getForm_type, query.getForm_type()));
JSONArray mappingJson = list.get(0).getMapping_json(); JSONArray mappingJson = list.get(0).getMapping_json();
String mappingString = JSON.toJSONString(mappingJson); String mappingString = JSON.toJSONString(mappingJson);
syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode()); syncErpBillsScheduleService.syncData(mappingString, list.get(0).getForm_type(), list.get(0).getDtl_split(), query.getCode(),true);
//一张单据会多次更新或新增明细,明细物料出库一次不能直接标记为完成,取消完成状态筛选
query.setStatus(null);
List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query); List<PmFormDataDto> pmFormData = this.baseMapper.queryTree2(query);
if (ObjectUtil.isNotEmpty(pmFormData)) { if (ObjectUtil.isNotEmpty(pmFormData)) {
handleFormDatas(pmFormData); handleFormDatas(pmFormData);
@@ -321,23 +325,25 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
private void handleFormDatas(List<PmFormDataDto> pmFormDataDtos) { private void handleFormDatas(List<PmFormDataDto> pmFormDataDtos) {
List<String> parents = pmFormDataDtos.stream().map(PmFormDataDto::getId).collect(Collectors.toList()); List<String> parents = pmFormDataDtos.stream().map(PmFormDataDto::getId).collect(Collectors.toList());
List<PmFormDataDto> childs = this.baseMapper.selectChilds(parents); List<PmFormDataDto> childs = this.baseMapper.selectChilds(parents);
//过滤非料箱与托盘库
String stockId = "";
if (pmFormDataDtos.get(0).getCode().contains("PPBOM")) {
stockId = "stock_Id";
} else if (pmFormDataDtos.get(0).getCode().contains("JDSCLLSQ")) {
stockId = "stockId";
} else if (pmFormDataDtos.get(0).getCode().contains("ZJDB")) {
stockId = "SrcStockId_Id";
}
if (StringUtils.isNotBlank(stockId)) {
String finalStockId = stockId;
childs.removeIf(r ->
!new HashSet<>(Arrays.asList("1233925", "1233926"))
.contains(r.getForm_data().getString(finalStockId))
);
}
if (!CollectionUtils.isEmpty(childs)) { if (!CollectionUtils.isEmpty(childs)) {
if (StringUtils.isNotBlank(pmFormDataDtos.get(0).getCode())) {
//过滤非料箱与托盘库
String stockId = "";
if (pmFormDataDtos.get(0).getCode().contains("PPBOM")) {
stockId = "stock_Id";
} else if (pmFormDataDtos.get(0).getCode().contains("JDSCLLSQ")) {
stockId = "stockId";
} else if (pmFormDataDtos.get(0).getCode().contains("ZJDB")) {
stockId = "SrcStockId_Id";
}
if (StringUtils.isNotBlank(stockId)) {
String finalStockId = stockId;
childs.removeIf(r ->
!new HashSet<>(Arrays.asList("1233925", "1233926"))
.contains(r.getForm_data().getString(finalStockId))
);
}
}
Map<String, List<PmFormDataDto>> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id)); Map<String, List<PmFormDataDto>> childMap = childs.stream().collect(Collectors.groupingBy(PmFormDataDto::getParent_id));
for (PmFormDataDto dataDto : pmFormDataDtos) { for (PmFormDataDto dataDto : pmFormDataDtos) {
String productArea = dataDto.getForm_data().getString("product_area"); String productArea = dataDto.getForm_data().getString("product_area");
@@ -358,7 +364,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
public PmFormDataDto queryErpCode(String code, String stor_code) { public PmFormDataDto queryErpCode(String code, String stor_code) {
FormDataQuery query = new FormDataQuery(); FormDataQuery query = new FormDataQuery();
query.setCode(code); query.setCode(code);
query.setStatus(new String[]{StatusEnum.FORM_STATUS.code("生成"), StatusEnum.FORM_STATUS.code("执行中")}); // query.setStatus(new String[]{StatusEnum.FORM_STATUS.code("生成"), StatusEnum.FORM_STATUS.code("执行中")});
List<PmFormDataDto> pmFormDataDtos = this.baseMapper.queryTree2(query); List<PmFormDataDto> pmFormDataDtos = this.baseMapper.queryTree2(query);
if (CollectionUtils.isEmpty(pmFormDataDtos)) { if (CollectionUtils.isEmpty(pmFormDataDtos)) {
throw new BadRequestException(code + "单据编码不存在或已经完成入库"); throw new BadRequestException(code + "单据编码不存在或已经完成入库");

View File

@@ -112,17 +112,15 @@ public class SyncErpBillsScheduleService {
for (SyncFormMapping m : list) { for (SyncFormMapping m : list) {
JSONArray mappingJson = m.getMapping_json(); JSONArray mappingJson = m.getMapping_json();
String mappingString = JSON.toJSONString(mappingJson); String mappingString = JSON.toJSONString(mappingJson);
syncData(mappingString, m.getForm_type(), m.getDtl_split(), ""); syncData(mappingString, m.getForm_type(), m.getDtl_split(), "", false);
} }
} finally { } finally {
LuceneAppender.traceIdTL.remove(); LuceneAppender.traceIdTL.remove();
} }
} }
/**
* 自动同步 public void syncData(String mappingJson, String formType, Boolean dtlSplit, String billCode, Boolean isManual) {
*/
public void syncData(String mappingJson, String formType, Boolean dtlSplit, String billCode) {
boolean islock = lock.tryLock(); boolean islock = lock.tryLock();
try { try {
if (islock) { if (islock) {
@@ -136,18 +134,22 @@ public class SyncErpBillsScheduleService {
String sevenDaysAgo = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()); String sevenDaysAgo = new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
String filterString; String filterString;
if (StringUtils.isNotBlank(billCode)) { if (StringUtils.isNotBlank(billCode)) {
filterString = "FBillNo = '" + billCode + "'"; filterString = "FBillNo like '%" + billCode + "'";
} else { } else {
filterString = getFilterString(formType, "", sevenDaysAgo, today); filterString = getFilterString(formType, "", sevenDaysAgo, today);
} }
query.setFilterString(filterString); query.setFilterString(filterString);
query.setFormId(formType); query.setFormId(formType);
query.setFieldKeys("FID"); query.setFieldKeys("FID");
query.setLimit(0); if (isManual) {
query.setLimit(1);
} else {
query.setLimit(0);
}
result = erpServiceUtils.queryBills(query); result = erpServiceUtils.queryBills(query);
if (ObjectUtils.isNotEmpty(result)) { if (ObjectUtils.isNotEmpty(result)) {
K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi(); K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi();
handleBills(mappingJson, formType, dtlSplit, errorMsg, result, k3CloudApi); handleBills(mappingJson, formType, dtlSplit, errorMsg, result, k3CloudApi, isManual);
} }
} }
} catch (Exception ex) { } catch (Exception ex) {
@@ -198,11 +200,11 @@ public class SyncErpBillsScheduleService {
query.setFilterString(filterString); query.setFilterString(filterString);
query.setFormId(formType); query.setFormId(formType);
query.setFieldKeys("FID"); query.setFieldKeys("FID");
query.setLimit(0); query.setLimit(10);
result = erpServiceUtils.queryBills(query); result = erpServiceUtils.queryBills(query);
if (ObjectUtils.isNotEmpty(result)) { if (ObjectUtils.isNotEmpty(result)) {
K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi(); K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi();
handleBills(mappingJson, formType, dtlSplit, errorMsg, result, k3CloudApi); handleBills(mappingJson, formType, dtlSplit, errorMsg, result, k3CloudApi, true);
} }
if (!CollectionUtils.isEmpty(errorMsg)) { if (!CollectionUtils.isEmpty(errorMsg)) {
throw new BadRequestException("同步成功" + (result.size() - errorMsg.size()) + "条,失败信息:" + errorMsg.toString()); throw new BadRequestException("同步成功" + (result.size() - errorMsg.size()) + "条,失败信息:" + errorMsg.toString());
@@ -224,7 +226,7 @@ public class SyncErpBillsScheduleService {
private static String getFilterString(String formType, String code, String timeStart, String timeEnd) { private static String getFilterString(String formType, String code, String timeStart, String timeEnd) {
String filterString; String filterString;
if (StringUtils.isNotBlank(code)) { if (StringUtils.isNotBlank(code)) {
filterString = "FBillNo = '" + code + "'"; filterString = "FBillNo like '%" + code + "'";
} else { } else {
filterString = BILL_ORG_MAPPING.get(formType) + " = '750572' "; filterString = BILL_ORG_MAPPING.get(formType) + " = '750572' ";
if ("ka7c19edf9d4b4b39b8cc4a06802163b0".equals(formType)) { if ("ka7c19edf9d4b4b39b8cc4a06802163b0".equals(formType)) {
@@ -241,7 +243,7 @@ public class SyncErpBillsScheduleService {
return filterString; return filterString;
} }
private void handleBills(String mappingJson, String formType, Boolean dtlSplit, Map errorMsg, JSONArray result, K3CloudApi cloudApi) { private void handleBills(String mappingJson, String formType, Boolean dtlSplit, Map errorMsg, JSONArray result, K3CloudApi cloudApi, Boolean isManual) {
//物料同步 //物料同步
SyncFormMapping syncFormMapping = syncFormMappingServiceImpl.getOne(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "BD_MATERIAL")); SyncFormMapping syncFormMapping = syncFormMappingServiceImpl.getOne(new LambdaQueryWrapper<SyncFormMapping>().in(SyncFormMapping::getForm_type, "BD_MATERIAL"));
String materialMappingString = JSON.toJSONString(syncFormMapping.getMapping_json()); String materialMappingString = JSON.toJSONString(syncFormMapping.getMapping_json());
@@ -296,11 +298,11 @@ public class SyncErpBillsScheduleService {
for (PmFormData f : mainBill) { for (PmFormData f : mainBill) {
//存在ID主单据不新增不修改修改未出库单据的明细 //存在ID主单据不新增不修改修改未出库单据的明细
String id = f.getId() + "$" + f.getForm_type(); String id = f.getId() + "$" + f.getForm_type();
if (exitFormDataList.contains(id)) { //实时扫描则同步修改未出库的用料清单单据
if (exitFormDataList.contains(id) && isManual) {
//单据明细 //单据明细
if (StringUtils.isBlank(f.getCode())) { if (StringUtils.isBlank(f.getCode())) {
PmFormData existDtlData = formDataService.getOne(new QueryWrapper<PmFormData>().eq("id", id).select("qty")); PmFormData existDtlData = formDataService.getOne(new QueryWrapper<PmFormData>().eq("id", id).select("qty"));
//同步修改未出库单据
//existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0||f.getPlan_qty().compareTo(f.getAssign_qty()) > 0 //existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0||f.getPlan_qty().compareTo(f.getAssign_qty()) > 0
if (existDtlData.getQty() != null) { if (existDtlData.getQty() != null) {
if (existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0) { if (existDtlData.getQty().compareTo(BigDecimal.ZERO) > 0) {

View File

@@ -60,4 +60,12 @@ export function getSonFormData(id) {
}) })
} }
export default { add, edit, del, getFormType, getParentFormTypes, getParentFormTypesByDesc, getSonFormData, syncFeedBack } export function confirm(data) {
return request({
url: '/api/pmFormData/confirmStatus',
method: 'post',
data
})
}
export default { add, edit, del, getFormType, getParentFormTypes, getParentFormTypesByDesc, getSonFormData, syncFeedBack, confirm }

View File

@@ -56,6 +56,16 @@
class="filter-item" class="filter-item"
/> />
</el-form-item> </el-form-item>
<el-form-item label="批次">
<el-input
v-model="query.pcsn"
clearable
size="mini"
placeholder="请输入批次"
prefix-icon="el-icon-search"
class="filter-item"
/>
</el-form-item>
<el-form-item label="单据日期" prop="analyseData"> <el-form-item label="单据日期" prop="analyseData">
<el-date-picker <el-date-picker
v-model="query.datepick" v-model="query.datepick"
@@ -88,6 +98,17 @@
> >
手动回传 手动回传
</el-button> </el-button>
<el-button
slot="right"
class="filter-item"
type="warning"
icon="el-icon-check"
size="mini"
:disabled="!currentRow"
@click="confirm"
>
处理完成
</el-button>
</crudOperation> </crudOperation>
<el-dialog <el-dialog
@@ -124,7 +145,7 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="" prop="pcsn"> <el-form-item label="" prop="pcsn">
<el-input v-model="form.pcsn" style="width: 150px;" /> <el-input v-model="form.pcsn" style="width: 150px;" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -154,7 +175,12 @@
@selection-change="handleDtlCurrentChange" @selection-change="handleDtlCurrentChange"
> >
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column prop="code" label="单据编码" show-overflow-tooltip width="120"> <el-table-column
prop="code"
label="单据编码"
show-overflow-tooltip
:min-width="flexWidth('code',crud.data,'单据编码')"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-link v-if="scope.row.hasChildren" type="warning" @click="toView(scope.row)">{{ <el-link v-if="scope.row.hasChildren" type="warning" @click="toView(scope.row)">{{
scope.row.code scope.row.code
@@ -171,21 +197,31 @@
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="vehicle_code" label="载具编号" show-overflow-tooltip width="120" /> <!-- <el-table-column prop="vehicle_code" label="载具编号" show-overflow-tooltip width="120" />-->
<el-table-column prop="qty" label="物料数量" show-overflow-tooltip /> <el-table-column prop="qty" label="物料数量" show-overflow-tooltip />
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip width="120" /> <el-table-column
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip width="120" /> prop="material_code"
<el-table-column prop="material_spec" label="物料规格" show-overflow-tooltip width="120" /> label="物料编码"
<el-table-column prop="pcsn" label="批次" show-overflow-tooltip width="120" /> show-overflow-tooltip
<el-table-column prop="unit_id" label="单位" show-overflow-tooltip width="120" /> :min-width="flexWidth('material_code',crud.data,'物料编码')"
<el-table-column prop="source_form_id" label="源单编码" show-overflow-tooltip width="120" /> />
<el-table-column prop="source_form_type" label="源单类型" show-overflow-tooltip width="130" /> <el-table-column
<el-table-column prop="parent_id" label="父单据数据id" show-overflow-tooltip width="120" /> prop="material_name"
label="物料名称"
:min-width="flexWidth('material_name',crud.data,'物料名称')"
/>
<!-- <el-table-column prop="material_spec" label="物料规格" show-overflow-tooltip width="120" />-->
<el-table-column prop="pcsn" label="批次" show-overflow-tooltip :min-width="flexWidth('pcsn',crud.data,'批次')" />
<!-- <el-table-column prop="unit_id" label="单位" show-overflow-tooltip width="120" />-->
<!-- <el-table-column prop="parent_id" label="父单据数据id" show-overflow-tooltip width="120" />-->
<el-table-column prop="create_time" label="创建时间" width="140" />
<el-table-column prop="remark" label="备注" show-overflow-tooltip width="210" />
<el-table-column label="ERP回传数据" show-overflow-tooltip width="210"> <el-table-column label="ERP回传数据" show-overflow-tooltip width="210">
<template slot-scope="scope">{{ scope.row.form_data }}</template> <template slot-scope="scope">{{ scope.row.form_data }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注" show-overflow-tooltip width="210" /> <el-table-column prop="source_form_type" label="源单类型" show-overflow-tooltip width="130" />
<el-table-column prop="create_time" label="创建时间" /> <el-table-column prop="source_form_id" label="源单编码" show-overflow-tooltip width="120" />
<el-table-column prop="proc_inst_id" label="对应流程实例id" show-overflow-tooltip width="120" /> <el-table-column prop="proc_inst_id" label="对应流程实例id" show-overflow-tooltip width="120" />
<el-table-column <el-table-column
v-permission="['admin','Classstandard:edit','Classstandard:del']" v-permission="['admin','Classstandard:edit','Classstandard:del']"
@@ -223,6 +259,7 @@ import pagination from '@crud/Pagination'
import formstruc from '@/views/wms/config_manage/formStruc/formstruc' import formstruc from '@/views/wms/config_manage/formStruc/formstruc'
import ViewDialog from './ViewDialog' import ViewDialog from './ViewDialog'
import crudClassstandard from '@/views/wms/base_manage/class_standard/classstandard' import crudClassstandard from '@/views/wms/base_manage/class_standard/classstandard'
import crudbucketrecord from '@/views/wms/md_manage/group_dick/groupdick'
// import UploadDialog from './UploadDialog' // import UploadDialog from './UploadDialog'
const defaultForm = { const defaultForm = {
@@ -362,10 +399,19 @@ export default {
this.$refs.viewDialog.setForm(row) this.$refs.viewDialog.setForm(row)
} }
}, },
syncFeedBack(row) { syncFeedBack() {
crudFormData.syncFeedBack(JSON.stringify(this.currentRow)) if (this.currentRow.length === 0) {
this.crud.notify('请选择一行单据', CRUD.NOTIFICATION_TYPE.INFO)
return
}
if (this.currentRow.length > 1) {
this.crud.notify('请确认只选择一行单据', CRUD.NOTIFICATION_TYPE.INFO)
return
}
const param = {}
param.data = this.currentRow
crudFormData.syncFeedBack(param)
.then(res => { .then(res => {
debugger
this.crud.notify(res) // 使用后端返回的消息 this.crud.notify(res) // 使用后端返回的消息
}) })
.catch(error => { .catch(error => {
@@ -373,12 +419,21 @@ export default {
}) })
}, },
handleDtlCurrentChange(val) { handleDtlCurrentChange(val) {
console.log(val) this.currentRow = val
if (val.length == 1) { }, confirm() {
this.currentRow = val[0] if (this.currentRow.length === 0) {
} else { this.crud.notify('请选择一行单据', CRUD.NOTIFICATION_TYPE.INFO)
this.currentRow = null return
} }
const ids = this.currentRow.map(row => row.id)
// 构造参数
const param = {
data: ids // 将提取的 id 数组赋值给 param.data
}
crudFormData.confirm(param).then(res => {
this.crud.notify('单据处理成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})
} }
} }
} }