修改
This commit is contained in:
@@ -278,7 +278,15 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONArray list = new JSONArray();
|
String contain_name = param.getString("contain_name");
|
||||||
|
String package_box_sn = param.getString("package_box_sn");
|
||||||
|
String warehouse = param.getString("warehouse");
|
||||||
|
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("ContainerName",contain_name);
|
||||||
|
jo.put("isSourceRollDeliveryComplete",1);
|
||||||
|
jo.put("PackageBoxSN",package_box_sn);
|
||||||
|
jo.put("PackageBoxSN",warehouse);
|
||||||
|
|
||||||
// String url = acsUrl + api;
|
// String url = acsUrl + api;
|
||||||
String url = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_URL").getValue();
|
String url = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_URL").getValue();
|
||||||
@@ -286,7 +294,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
|||||||
url = url + api;
|
url = url + api;
|
||||||
try {
|
try {
|
||||||
String resultMsg = HttpRequest.post(url)
|
String resultMsg = HttpRequest.post(url)
|
||||||
.body(String.valueOf(param))
|
.body(String.valueOf(jo))
|
||||||
.execute().body();
|
.execute().body();
|
||||||
result = JSONObject.parseObject(resultMsg);
|
result = JSONObject.parseObject(resultMsg);
|
||||||
log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString());
|
log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString());
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
) AS is_bake
|
) AS is_bake
|
||||||
FROM
|
FROM
|
||||||
ST_IVT_CoolPointIvt coolIvt
|
ST_IVT_CoolPointIvt coolIvt
|
||||||
LEFT JOIN PDM_BI_RawFoilWorkOrder der ON der.container_name = der.container_name
|
LEFT JOIN PDM_BI_RawFoilWorkOrder der ON coolIvt.container_name = der.container_name
|
||||||
LEFT JOIN ST_IVT_HotRegionIOMst hotMst ON hotMst.container_name = coolIvt.container_name
|
LEFT JOIN ST_IVT_HotRegionIOMst hotMst ON hotMst.container_name = coolIvt.container_name
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT * FROM ST_IVT_HotRegionIODtl WHERE 1=1 ORDER BY confirm_time ASC LIMIT 1
|
SELECT * FROM ST_IVT_HotRegionIODtl WHERE 1=1 ORDER BY confirm_time ASC LIMIT 1
|
||||||
|
|||||||
@@ -1742,6 +1742,16 @@ public class CheckOutBillServiceImpl implements CheckOutBillService {
|
|||||||
|
|
||||||
// 调用接口回传
|
// 调用接口回传
|
||||||
new LmsToSapServiceImpl().returnMoveDtl(paramMst);
|
new LmsToSapServiceImpl().returnMoveDtl(paramMst);
|
||||||
|
|
||||||
|
//调用母卷配送到位接口
|
||||||
|
JSONObject mes_jo = new JSONObject();
|
||||||
|
|
||||||
|
//查询该子卷对应的分切计划
|
||||||
|
//JSONArray cut_rows = WQLObject.getWQLObject("")
|
||||||
|
mes_jo.put("contain_name",disArr.getJSONObject(0).getString("pcsn"));
|
||||||
|
mes_jo.put("package_box_sn",disArr.getJSONObject(0).getString("box_no"));
|
||||||
|
mes_jo.put("warehouse","3");
|
||||||
|
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package org.nl.wms.st.returns.rest;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.modules.logging.annotation.Log;
|
||||||
|
import org.nl.wms.st.returns.service.InAndOutReturnService;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "出入库回传")
|
||||||
|
@RequestMapping("/api/inandoutreturn")
|
||||||
|
@Slf4j
|
||||||
|
public class InAndOutReturnlController {
|
||||||
|
private final InAndOutReturnService inAndOutReturnService;
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询出库单")
|
||||||
|
@ApiOperation("查询出库单")
|
||||||
|
//@PreAuthorize("@el.check('checkoutbill:list')")
|
||||||
|
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||||
|
return new ResponseEntity<>(inAndOutReturnService.pageQuery(whereJson, page), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/upload")
|
||||||
|
@Log("回传")
|
||||||
|
@ApiOperation("回传")
|
||||||
|
public ResponseEntity<Object> upload(@RequestBody Map whereJson) {
|
||||||
|
inAndOutReturnService.upload(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/uploadMES")
|
||||||
|
@Log("回传MES")
|
||||||
|
@ApiOperation("回传MES")
|
||||||
|
public ResponseEntity<Object> uploadMES(@RequestBody Map whereJson) {
|
||||||
|
inAndOutReturnService.uploadMES(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/uploadSAP")
|
||||||
|
@Log("回传SAP")
|
||||||
|
@ApiOperation("回传SAP")
|
||||||
|
public ResponseEntity<Object> uploadSAP(@RequestBody Map whereJson) {
|
||||||
|
inAndOutReturnService.uploadSAP(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/disupload")
|
||||||
|
@Log("不回传")
|
||||||
|
@ApiOperation("不回传")
|
||||||
|
public ResponseEntity<Object> disupload(@RequestBody Map whereJson) {
|
||||||
|
inAndOutReturnService.disupload(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package org.nl.wms.st.returns.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface InAndOutReturnService {
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
*
|
||||||
|
* @param whereJson 条件
|
||||||
|
* @param page 分页参数
|
||||||
|
* @return Map<String, Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> pageQuery(Map whereJson, Pageable page);
|
||||||
|
|
||||||
|
void upload(Map whereJson);
|
||||||
|
|
||||||
|
void uploadMES(Map whereJson);
|
||||||
|
|
||||||
|
void uploadSAP(Map whereJson);
|
||||||
|
|
||||||
|
void disupload(Map whereJson);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,207 @@
|
|||||||
|
package org.nl.wms.st.returns.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.modules.system.service.impl.ParamServiceImpl;
|
||||||
|
import org.nl.modules.wql.WQL;
|
||||||
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.modules.wql.util.SpringContextHolder;
|
||||||
|
import org.nl.modules.wql.util.WqlUtil;
|
||||||
|
import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl;
|
||||||
|
import org.nl.wms.ext.sap.service.impl.LmsToSapServiceImpl;
|
||||||
|
import org.nl.wms.st.returns.service.InAndOutReturnService;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PC端出入库新增
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> pageQuery(Map whereJson, Pageable page) {
|
||||||
|
HashMap map = new HashMap<>(whereJson);
|
||||||
|
String bill_code = MapUtil.getStr(whereJson, "bill_code");
|
||||||
|
String material_search = MapUtil.getStr(whereJson, "material_search");
|
||||||
|
map.put("flag", "1");
|
||||||
|
map.put("stor_id", MapUtil.getStr(whereJson, "stor_id"));
|
||||||
|
map.put("io_type", MapUtil.getStr(whereJson, "io_type"));
|
||||||
|
map.put("bill_status", MapUtil.getStr(whereJson, "bill_status"));
|
||||||
|
map.put("bill_type", MapUtil.getStr(whereJson, "bill_type"));
|
||||||
|
map.put("is_upload", MapUtil.getStr(whereJson, "is_upload"));
|
||||||
|
map.put("begin_time", MapUtil.getStr(whereJson, "begin_time"));
|
||||||
|
map.put("end_time", MapUtil.getStr(whereJson, "end_time"));
|
||||||
|
map.put("pcsn", MapUtil.getStr(whereJson, "pcsn"));
|
||||||
|
if (!ObjectUtil.isEmpty(bill_code)) map.put("bill_code", "%" + bill_code + "%");
|
||||||
|
if (!ObjectUtil.isEmpty(material_search)) map.put("material_search", "%" + material_search + "%");
|
||||||
|
|
||||||
|
JSONObject jo = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.input_time desc");
|
||||||
|
return jo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uploadMES(Map whereJson) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void uploadSAP(Map whereJson) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public void disupload(Map whereJson) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void upload(Map whereJson) {
|
||||||
|
//出库分配表
|
||||||
|
WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_IOStorInvDis");
|
||||||
|
//出库明细表
|
||||||
|
WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_IOStorInvDtl");
|
||||||
|
//出库主表
|
||||||
|
WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_IOStorInv");
|
||||||
|
// 物料表
|
||||||
|
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||||
|
//根据出入单类型判断回传业务
|
||||||
|
//1、生产入库:回传MES;手工入库:回传SAP
|
||||||
|
//1、销售出库:回传MES、SAP;改切出库:回传SAP
|
||||||
|
JSONArray rows = (JSONArray) whereJson.get("rows");
|
||||||
|
for (int i = 0; i < rows.size(); i++) {
|
||||||
|
JSONObject jo_mst = new JSONObject();
|
||||||
|
String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue();
|
||||||
|
if (StrUtil.equals(isUpload, "1")) {
|
||||||
|
String bill_type = jo_mst.getString("bill_type");
|
||||||
|
//生产入库
|
||||||
|
if (StrUtil.equals(bill_type, "0001")) {
|
||||||
|
//1.回传MES
|
||||||
|
|
||||||
|
}
|
||||||
|
// 销售出库
|
||||||
|
if (StrUtil.equals(bill_type, "1001")) {
|
||||||
|
// 1.回传sap
|
||||||
|
JSONObject paramSapMst = new JSONObject();
|
||||||
|
paramSapMst.put("ZACTION", "P");
|
||||||
|
paramSapMst.put("VBELN", ""); // 交货
|
||||||
|
paramSapMst.put("BUDAT", jo_mst.getString("biz_date"));
|
||||||
|
paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight"));
|
||||||
|
paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code"));
|
||||||
|
|
||||||
|
JSONArray paramDtlArr = new JSONArray();
|
||||||
|
JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
|
||||||
|
for (int m = 0; m < dtlArr.size(); m++) {
|
||||||
|
JSONArray paramDisArr = new JSONArray();
|
||||||
|
JSONObject json = dtlArr.getJSONObject(m);
|
||||||
|
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
|
||||||
|
|
||||||
|
// 明细
|
||||||
|
JSONObject jsonDtl = new JSONObject();
|
||||||
|
jsonDtl.put("VBELN", ""); // 交货
|
||||||
|
jsonDtl.put("POSNR", json.getString("seq_no"));
|
||||||
|
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
|
||||||
|
jsonDtl.put("LGORT", ""); // 储存地点
|
||||||
|
|
||||||
|
// 分配明细
|
||||||
|
JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0);
|
||||||
|
for (int j = 0; j < disArr.size(); j++) {
|
||||||
|
JSONObject json2 = disArr.getJSONObject(j);
|
||||||
|
JSONObject jsonDis = new JSONObject();
|
||||||
|
|
||||||
|
jsonDis.put("VBELN", ""); // 交货
|
||||||
|
jsonDis.put("POSNR", json2.getString("seq_no"));
|
||||||
|
jsonDis.put("CHARG", json2.getString("pcsn"));
|
||||||
|
jsonDis.put("LFIMG", json.getString("plan_qty"));
|
||||||
|
jsonDis.put("VRKME", json.getString("qty_unit_name"));
|
||||||
|
jsonDis.put("PIKMG", json2.getString("plan_qty"));
|
||||||
|
jsonDis.put("VRKMP", json2.getString("qty_unit_name"));
|
||||||
|
paramDisArr.add(jsonDis);
|
||||||
|
}
|
||||||
|
jsonDtl.put("CHARG_T", paramDisArr);
|
||||||
|
paramDtlArr.add(jsonDtl);
|
||||||
|
}
|
||||||
|
paramSapMst.put("ITEM", paramDtlArr);
|
||||||
|
|
||||||
|
// 调用接口回传
|
||||||
|
new LmsToSapServiceImpl().returnDelivery(paramSapMst);
|
||||||
|
|
||||||
|
// 2.回传mes
|
||||||
|
JSONObject paramMesMst = new JSONObject();
|
||||||
|
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
|
||||||
|
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
|
||||||
|
|
||||||
|
paramMesMst.put("UserName", userName);
|
||||||
|
paramMesMst.put("Password", passWord);
|
||||||
|
paramMesMst.put("OutboundOrderNum", jo_mst.getString("bill_code"));
|
||||||
|
paramMesMst.put("OutboundUser", jo_mst.getString("confirm_optname"));
|
||||||
|
paramMesMst.put("OutboundTime", jo_mst.getString("confirm_time"));
|
||||||
|
|
||||||
|
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
|
||||||
|
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
|
||||||
|
.process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
JSONArray paramArr = new JSONArray();
|
||||||
|
for (int j = 0; j < boxArr.size(); j++) {
|
||||||
|
JSONObject json = boxArr.getJSONObject(j);
|
||||||
|
JSONObject jsonBox = new JSONObject();
|
||||||
|
|
||||||
|
jsonBox.put("PackageBoxSN", json.getString("num"));
|
||||||
|
paramArr.add(jsonBox);
|
||||||
|
}
|
||||||
|
paramMesMst.put("item", paramArr);
|
||||||
|
|
||||||
|
// 调用接口回传
|
||||||
|
new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 改切出库
|
||||||
|
if (StrUtil.equals(bill_type, "1003")) {
|
||||||
|
JSONObject paramMst = new JSONObject();
|
||||||
|
JSONArray paramArr = new JSONArray();
|
||||||
|
|
||||||
|
paramMst.put("BLDAT", jo_mst.getString("biz_date"));
|
||||||
|
paramMst.put("BUDAT", jo_mst.getString("biz_date"));
|
||||||
|
paramMst.put("BKTXT", ""); // 凭证抬头文本
|
||||||
|
paramMst.put("XBLNR", ""); // 参考
|
||||||
|
|
||||||
|
JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
|
||||||
|
for (int j = 0; j < disArr.size(); j++) {
|
||||||
|
JSONObject json = disArr.getJSONObject(j);
|
||||||
|
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
|
||||||
|
|
||||||
|
JSONObject jsonDtl = new JSONObject();
|
||||||
|
jsonDtl.put("RSPOS", i + 1);
|
||||||
|
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
|
||||||
|
jsonDtl.put("BWART", "311");
|
||||||
|
jsonDtl.put("MENGE", json.getDoubleValue("plan_qty"));
|
||||||
|
jsonDtl.put("MEINS", json.getString("qty_unit_id"));
|
||||||
|
jsonDtl.put("LGORT", ""); // 库存地点
|
||||||
|
jsonDtl.put("CHARG", json.getString("pcsn"));
|
||||||
|
jsonDtl.put("UMLGO", ""); // 收货库存地点
|
||||||
|
jsonDtl.put("UMCHA", json.getString("pcsn"));
|
||||||
|
jsonDtl.put("KDAUF", ""); // 销售订单
|
||||||
|
jsonDtl.put("KDPOS", ""); // 销售订单行项目
|
||||||
|
paramArr.add(jsonDtl);
|
||||||
|
}
|
||||||
|
paramMst.put("item", paramArr);
|
||||||
|
|
||||||
|
// 调用接口回传
|
||||||
|
new LmsToSapServiceImpl().returnMoveDtl(paramMst);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,343 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: 出入库回传查询
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.pcsn TYPEAS s_string
|
||||||
|
输入.material_id TYPEAS s_string
|
||||||
|
输入.material_search TYPEAS s_string
|
||||||
|
输入.stor_id TYPEAS s_string
|
||||||
|
输入.bill_status TYPEAS s_string
|
||||||
|
输入.is_upload TYPEAS s_string
|
||||||
|
输入.begin_time TYPEAS s_string
|
||||||
|
输入.end_time TYPEAS s_string
|
||||||
|
输入.bill_code TYPEAS s_string
|
||||||
|
输入.bill_type TYPEAS s_string
|
||||||
|
输入.io_type TYPEAS s_string
|
||||||
|
输入.material_type_id TYPEAS f_string
|
||||||
|
输入.iostorinv_id TYPEAS s_string
|
||||||
|
输入.ids TYPEAS f_string
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
PAGEQUERY
|
||||||
|
SELECT DISTINCT
|
||||||
|
mst.*,
|
||||||
|
dtl.source_bill_type,
|
||||||
|
user.nick_name AS upload_name
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinv mst
|
||||||
|
LEFT JOIN st_ivt_iostorinvdtl dtl ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
LEFT JOIN sys_user user ON user.user_id = mst.upload_optid
|
||||||
|
INNER JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
WHERE
|
||||||
|
mst.bill_status = '99'
|
||||||
|
AND
|
||||||
|
mst.bill_type not in ('000401','010201','010202','010401','010601')
|
||||||
|
OPTION 输入.stor_id <> ""
|
||||||
|
mst.stor_id = 输入.stor_id
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.pcsn <> ""
|
||||||
|
dtl.pcsn = 输入.pcsn
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.bill_type <> ""
|
||||||
|
mst.bill_type = 输入.bill_type
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.bill_status <> ""
|
||||||
|
mst.bill_status = 输入.bill_status
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.bill_code <> ""
|
||||||
|
mst.bill_code like 输入.bill_code
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.io_type <> ""
|
||||||
|
mst.io_type = 输入.io_type
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.is_upload <> ""
|
||||||
|
mst.is_upload = 输入.is_upload
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.begin_time <> ""
|
||||||
|
mst.biz_date >= 输入.begin_time
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.end_time <> ""
|
||||||
|
mst.biz_date <= 输入.end_time
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.material_search <> ""
|
||||||
|
(
|
||||||
|
mb.material_code like 输入.material_search
|
||||||
|
OR
|
||||||
|
mb.material_name like 输入.material_search
|
||||||
|
)
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDPAGEQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "2"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
proc.PK_DEPT,
|
||||||
|
proc.VEND_ID,
|
||||||
|
proc.CEMPLOYEEID,
|
||||||
|
proc.PK_DEPT_V,
|
||||||
|
proc.VBILLCODE,
|
||||||
|
dtl.pcsn,
|
||||||
|
dtl.material_id,
|
||||||
|
proc.PRICE,
|
||||||
|
proc.PRICE_TAX,
|
||||||
|
(case when mst.bill_type not in ('000601','000501','010701') then dtl.real_qty else concat('-',dtl.plan_qty) end) AS real_qty,
|
||||||
|
proc.TAX,
|
||||||
|
proc.PURCHASE_ID_B,
|
||||||
|
proc.PURCHASE_ID,
|
||||||
|
proc.ITEM_ID,
|
||||||
|
proc.CROWNO,
|
||||||
|
proc.QTY,
|
||||||
|
mb.material_name,
|
||||||
|
proc.F_UNIT_ID,
|
||||||
|
proc.M_UNIT_ID,
|
||||||
|
userper.ext_id AS make_ext_id,
|
||||||
|
userper.extuser_id AS create_user_id,
|
||||||
|
mb.measrate AS vchangerate,
|
||||||
|
dict.label
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
LEFT JOIN sys_dict_detail dict ON dict.`value` = mst.bill_type AND dict.name = 'IO_BUSS_TYPE'
|
||||||
|
INNER JOIN pcs_if_purchaseorderproc proc ON proc.id = dtl.base_billdtl_id
|
||||||
|
LEFT JOIN sys_user userper ON userper.user_id = mst.input_optid
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
WHERE
|
||||||
|
dtl.iostorinv_id = 输入.iostorinv_id
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "3"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
md_pb_materialtypeerpstorage erp
|
||||||
|
WHERE
|
||||||
|
erp.material_type_id IN 输入.material_type_id
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
*,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
|
||||||
|
WHEN a.bill_type NOT IN ( '000601', '000501', '010701' ) THEN
|
||||||
|
a.num ELSE concat( '-', a.num )
|
||||||
|
END
|
||||||
|
) AS real_qty
|
||||||
|
|
||||||
|
FROM
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
MAX( erpuser.ext_id ) AS create_id,
|
||||||
|
erpuser.extuser_id AS create_user_id,
|
||||||
|
MAX( dept.ext_id ) AS dept_ext_id,
|
||||||
|
MAX( dept.version_id ) AS version_id,
|
||||||
|
MAX( mst.input_time ) AS input_time,
|
||||||
|
MAX( mst.biz_date ) AS biz_date,
|
||||||
|
dtl.material_id,
|
||||||
|
MAX( mb.ext_id ) AS material_ext_id,
|
||||||
|
MAX( mu.ext_id ) AS unit_ext_id,
|
||||||
|
MAX( mb.material_name ) AS material_name,
|
||||||
|
SUM( dtl.real_qty ) AS num,
|
||||||
|
dtl.pcsn,
|
||||||
|
MAX( mst.bill_type ) AS bill_type,
|
||||||
|
MAX(IFNULL(mb.measrate,'1/1')) AS vchangerate,
|
||||||
|
MAX(dict.label) AS label
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdis dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
LEFT JOIN sys_user erpuser ON erpuser.user_id = mst.input_optid
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = mst.sysdeptid
|
||||||
|
LEFT JOIN sys_dict_detail dict ON dict.`value` = mst.bill_type AND dict.name = 'IO_BUSS_TYPE'
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
LEFT JOIN md_pb_measureunit mu ON mu.measure_unit_id = mb.ass_unit_id
|
||||||
|
WHERE
|
||||||
|
dtl.iostorinv_id = 输入.iostorinv_id
|
||||||
|
GROUP BY
|
||||||
|
material_id,
|
||||||
|
dtl.pcsn,
|
||||||
|
extuser_id
|
||||||
|
) a
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "5"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
MAX(proc.PK_DEPT) AS PK_DEPT,
|
||||||
|
MAX(proc.VEND_ID) AS VEND_ID,
|
||||||
|
MAX(proc.CEMPLOYEEID) AS CEMPLOYEEID,
|
||||||
|
MAX(proc.PK_DEPT_V) AS PK_DEPT_V,
|
||||||
|
proc.VBILLCODE,
|
||||||
|
dtl.pcsn,
|
||||||
|
dtl.material_id,
|
||||||
|
MAX(proc.PRICE) AS PRICE,
|
||||||
|
MAX(proc.PRICE_TAX) AS PRICE_TAX,
|
||||||
|
SUM(dtl.real_qty) AS real_qty,
|
||||||
|
MAX(proc.TAX) AS TAX,
|
||||||
|
MAX(proc.PURCHASE_ID_B) AS PURCHASE_ID_B,
|
||||||
|
MAX(proc.PURCHASE_ID) AS PURCHASE_ID,
|
||||||
|
MAX(proc.ITEM_ID) AS ITEM_ID,
|
||||||
|
MAX(proc.CROWNO) AS CROWNO,
|
||||||
|
MAX(proc.QTY) AS QTY,
|
||||||
|
MAX(mb.material_name) AS material_name,
|
||||||
|
MAX(proc.F_UNIT_ID) AS F_UNIT_ID,
|
||||||
|
MAX(proc.M_UNIT_ID) AS M_UNIT_ID,
|
||||||
|
MAX(userper.ext_id) AS make_ext_id,
|
||||||
|
userper.extuser_id AS create_user_id,
|
||||||
|
MAX(IFNULL(mb.measrate,'1/1')) AS vchangerate,
|
||||||
|
MAX(dict.label) AS label
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
INNER JOIN pcs_if_purchaseorderproc proc ON proc.id = dtl.base_billdtl_id
|
||||||
|
LEFT JOIN sys_user userper ON userper.user_id = mst.input_optid
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
LEFT JOIN sys_dict_detail dict ON dict.`value` = mst.bill_type AND dict.name = 'IO_BUSS_TYPE'
|
||||||
|
WHERE
|
||||||
|
dtl.iostorinv_id IN 输入.ids
|
||||||
|
GROUP BY
|
||||||
|
material_id,pcsn,extuser_id,VBILLCODE,CROWNO
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "6"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
MAX(erpuser.ext_id) AS create_id,
|
||||||
|
erpuser.extuser_id AS create_user_id,
|
||||||
|
MAX(dept.ext_id) AS dept_ext_id,
|
||||||
|
MAX(dept.version_id) AS version_id,
|
||||||
|
MAX(mst.input_time) AS input_time,
|
||||||
|
MAX(mst.biz_date) AS biz_date,
|
||||||
|
dtl.material_id,
|
||||||
|
MAX(mb.ext_id) AS material_ext_id,
|
||||||
|
MAX(mu.ext_id) AS unit_ext_id,
|
||||||
|
MAX(mb.material_name) AS material_name,
|
||||||
|
SUM(dtl.real_qty) AS real_qty,
|
||||||
|
dtl.pcsn,
|
||||||
|
MAX(IFNULL(mb.measrate,'1/1')) AS vchangerate,
|
||||||
|
MAX(dict.label) AS label
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdis dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
LEFT JOIN sys_user erpuser ON erpuser.user_id = mst.input_optid
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = mst.sysdeptid
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
LEFT JOIN md_pb_measureunit mu ON mu.measure_unit_id = mb.ass_unit_id
|
||||||
|
LEFT JOIN sys_dict_detail dict ON dict.`value` = mst.bill_type AND dict.name = 'IO_BUSS_TYPE'
|
||||||
|
WHERE
|
||||||
|
dtl.iostorinv_id IN 输入.ids
|
||||||
|
GROUP BY
|
||||||
|
material_id,dtl.pcsn,extuser_id
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "7"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
inv.*
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv inv ON inv.iostorinv_id = dtl.iostorinv_id
|
||||||
|
WHERE
|
||||||
|
dtl.material_id = 输入.material_id
|
||||||
|
AND
|
||||||
|
dtl.pcsn = 输入.pcsn
|
||||||
|
AND
|
||||||
|
inv.is_upload = '0'
|
||||||
|
AND
|
||||||
|
inv.iostorinv_id not IN 输入.ids
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "8"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
erpuser.ext_id AS create_id,
|
||||||
|
erpuser.extuser_id AS create_user_id,
|
||||||
|
dept.ext_id AS dept_ext_id,
|
||||||
|
dept.version_id,
|
||||||
|
mst.input_time,
|
||||||
|
mst.biz_date,
|
||||||
|
dtl.material_id,
|
||||||
|
mb.ext_id AS material_ext_id,
|
||||||
|
mu.ext_id AS unit_ext_id,
|
||||||
|
mb.material_name,
|
||||||
|
dtl.seq_no,
|
||||||
|
(case when mst.bill_type not in ('000601','000501','010701') then dtl.real_qty else concat('-',dtl.plan_qty) end) AS real_qty,
|
||||||
|
dtl.pcsn,
|
||||||
|
IFNULL(mb.measrate,'1/1') AS vchangerate,
|
||||||
|
dict.label
|
||||||
|
FROM
|
||||||
|
st_ivt_iostorinvdtl dtl
|
||||||
|
LEFT JOIN st_ivt_iostorinv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
|
LEFT JOIN sys_dict_detail dict ON dict.`value` = mst.bill_type AND dict.name = 'IO_BUSS_TYPE'
|
||||||
|
LEFT JOIN sys_user erpuser ON erpuser.user_id = mst.input_optid
|
||||||
|
LEFT JOIN sys_dept dept ON dept.dept_id = mst.sysdeptid
|
||||||
|
LEFT JOIN md_me_materialbase mb ON mb.material_id = dtl.material_id
|
||||||
|
LEFT JOIN md_pb_measureunit mu ON mu.measure_unit_id = mb.ass_unit_id
|
||||||
|
WHERE
|
||||||
|
dtl.iostorinv_id = 输入.iostorinv_id
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
@@ -48,4 +48,12 @@ export function disupload(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del, upload, upload2, disupload }
|
export function getType(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/inandoutreturn/getType',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del, upload, upload2, disupload, getType }
|
||||||
|
|||||||
@@ -32,7 +32,6 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="query.io_type"
|
v-model="query.io_type"
|
||||||
size="mini"
|
size="mini"
|
||||||
disabled
|
|
||||||
placeholder="出入类型"
|
placeholder="出入类型"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@change="ioTypeChange"
|
@change="ioTypeChange"
|
||||||
@@ -58,9 +57,9 @@
|
|||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in billtypelist"
|
v-for="item in billtypelist"
|
||||||
:key="item.code"
|
:key="item.value"
|
||||||
:label="item.name"
|
:label="item.label"
|
||||||
:value="item.code"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -190,8 +189,6 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
:data="crud.data"
|
:data="crud.data"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
show-summary
|
|
||||||
:summary-method="getSum"
|
|
||||||
:highlight-current-row="true"
|
:highlight-current-row="true"
|
||||||
@selection-change="crud.selectionChangeHandler"
|
@selection-change="crud.selectionChangeHandler"
|
||||||
>
|
>
|
||||||
@@ -240,7 +237,6 @@ import crudOperation from '@crud/CRUD.operation'
|
|||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
import crudStorattr from '@/views/wms/basedata/st/stor/storattr'
|
import crudStorattr from '@/views/wms/basedata/st/stor/storattr'
|
||||||
import ViewDialog from '@/views/wms/st/inbill/ViewDialog'
|
import ViewDialog from '@/views/wms/st/inbill/ViewDialog'
|
||||||
import crudRawAssist from '@/views/wms/st/inbill/rawassist'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Return',
|
name: 'Return',
|
||||||
@@ -254,12 +250,13 @@ export default {
|
|||||||
del: false,
|
del: false,
|
||||||
reset: true,
|
reset: true,
|
||||||
download: false
|
download: false
|
||||||
}
|
},
|
||||||
|
query: { io_type: '0' }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
mixins: [presenter(), header(), crud()],
|
mixins: [presenter(), header(), crud()],
|
||||||
// 数据字典
|
// 数据字典
|
||||||
dicts: ['io_bill_status', 'ST_CREATE_MODE', 'io_type', 'is_upload'],
|
dicts: ['io_bill_status', 'ST_CREATE_MODE', 'io_type', 'is_upload', 'ST_INV_IN_TYPE', 'ST_INV_OUT_TYPE'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
height: document.documentElement.clientHeight - 180 + 'px;',
|
height: document.documentElement.clientHeight - 180 + 'px;',
|
||||||
@@ -278,12 +275,11 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
crudStorattr.getStor({ 'is_materialstore': '1' }).then(res => {
|
crudStorattr.getStor({ 'is_productstore': '1' }).then(res => {
|
||||||
this.storlist = res.content
|
this.storlist = res.content
|
||||||
})
|
})
|
||||||
crudRawAssist.getType({ 'io_code': '' }).then(res => {
|
debugger
|
||||||
this.billtypelist = res
|
this.billtypelist = this.dict.ST_INV_IN_TYPE
|
||||||
})
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
@@ -298,11 +294,20 @@ export default {
|
|||||||
this.viewShow = true
|
this.viewShow = true
|
||||||
},
|
},
|
||||||
bill_typeFormat(row) {
|
bill_typeFormat(row) {
|
||||||
for (const item of this.billtypelist) {
|
if (this.query.io_type === '0') {
|
||||||
if (item.code === row.bill_type) {
|
return this.dict.label.ST_INV_IN_TYPE[row.bill_type]
|
||||||
return item.name
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (this.query.io_type === '1') {
|
||||||
|
return this.dict.label.ST_INV_OUT_TYPE[row.bill_type]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ioTypeChange(value) {
|
||||||
|
if (value === '1') {
|
||||||
|
this.billtypelist = this.dict.ST_INV_OUT_TYPE
|
||||||
|
} else {
|
||||||
|
this.billtypelist = this.dict.ST_INV_IN_TYPE
|
||||||
|
}
|
||||||
|
this.crud.toQuery()
|
||||||
},
|
},
|
||||||
create_modeFormat(row) {
|
create_modeFormat(row) {
|
||||||
return this.dict.label.ST_CREATE_MODE[row.create_mode]
|
return this.dict.label.ST_CREATE_MODE[row.create_mode]
|
||||||
@@ -366,7 +371,7 @@ export default {
|
|||||||
this.fullscreenLoading = false
|
this.fullscreenLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
disuploadSAP() {
|
uploadSAP() {
|
||||||
const res = this.$refs.table.selection
|
const res = this.$refs.table.selection
|
||||||
if (!res || res.length < 1) {
|
if (!res || res.length < 1) {
|
||||||
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
@@ -383,7 +388,7 @@ export default {
|
|||||||
this.fullscreenLoading = false
|
this.fullscreenLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
disuploadMES() {
|
uploadMES() {
|
||||||
const res = this.$refs.table.selection
|
const res = this.$refs.table.selection
|
||||||
if (!res || res.length < 1) {
|
if (!res || res.length < 1) {
|
||||||
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
@@ -400,61 +405,12 @@ export default {
|
|||||||
this.fullscreenLoading = false
|
this.fullscreenLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
ioTypeChange(value) {
|
|
||||||
if (value === '1') {
|
|
||||||
crudRawAssist.getType({ 'io_code': '', 'io_flag': '01' }).then(res => {
|
|
||||||
this.billtypelist = res
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
crudRawAssist.getType({ 'io_code': '', 'io_flag': '00' }).then(res => {
|
|
||||||
this.billtypelist = res
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.crud.toQuery()
|
|
||||||
},
|
|
||||||
formatIsUpload(row) {
|
formatIsUpload(row) {
|
||||||
if (row.is_upload === '0') {
|
if (row.is_upload === '0') {
|
||||||
return '否'
|
return '否'
|
||||||
} else if (row.is_upload === '1') {
|
} else if (row.is_upload === '1') {
|
||||||
return '是'
|
return '是'
|
||||||
}
|
}
|
||||||
},
|
|
||||||
getSum(param) {
|
|
||||||
// 将所有number的字段合计
|
|
||||||
const { columns, data } = param
|
|
||||||
const sums = []
|
|
||||||
let values = []
|
|
||||||
columns.forEach((column, index) => {
|
|
||||||
if (index === 1) {
|
|
||||||
sums[index] = '合计'
|
|
||||||
return
|
|
||||||
}
|
|
||||||
values = data.map(item => Number(item[column.property]))
|
|
||||||
if (column.property === 'total_qty') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(3) + 'kg' // 保留三位小数
|
|
||||||
} else if (column.property === 'detail_count') {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
sums[index] = sums[index].toFixed(0) // 保留三位小数
|
|
||||||
} else {
|
|
||||||
sums[index] = '--'
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return sums
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user