修改
This commit is contained in:
@@ -278,7 +278,15 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
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 = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_URL").getValue();
|
||||
@@ -286,7 +294,7 @@ public class LmsToMesServiceImpl implements LmsToMesService {
|
||||
url = url + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url)
|
||||
.body(String.valueOf(param))
|
||||
.body(String.valueOf(jo))
|
||||
.execute().body();
|
||||
result = JSONObject.parseObject(resultMsg);
|
||||
log.info("airSwellWithPaperTubeAssComplete接口输出参数为:-------------------" + result.toString());
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
) AS is_bake
|
||||
FROM
|
||||
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 (
|
||||
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);
|
||||
|
||||
//调用母卷配送到位接口
|
||||
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
|
||||
v-model="query.io_type"
|
||||
size="mini"
|
||||
disabled
|
||||
placeholder="出入类型"
|
||||
class="filter-item"
|
||||
@change="ioTypeChange"
|
||||
@@ -58,9 +57,9 @@
|
||||
>
|
||||
<el-option
|
||||
v-for="item in billtypelist"
|
||||
:key="item.code"
|
||||
:label="item.name"
|
||||
:value="item.code"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -190,8 +189,6 @@
|
||||
size="mini"
|
||||
:data="crud.data"
|
||||
style="width: 100%;"
|
||||
show-summary
|
||||
:summary-method="getSum"
|
||||
:highlight-current-row="true"
|
||||
@selection-change="crud.selectionChangeHandler"
|
||||
>
|
||||
@@ -240,7 +237,6 @@ import crudOperation from '@crud/CRUD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import crudStorattr from '@/views/wms/basedata/st/stor/storattr'
|
||||
import ViewDialog from '@/views/wms/st/inbill/ViewDialog'
|
||||
import crudRawAssist from '@/views/wms/st/inbill/rawassist'
|
||||
|
||||
export default {
|
||||
name: 'Return',
|
||||
@@ -254,12 +250,13 @@ export default {
|
||||
del: false,
|
||||
reset: true,
|
||||
download: false
|
||||
}
|
||||
},
|
||||
query: { io_type: '0' }
|
||||
})
|
||||
},
|
||||
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() {
|
||||
return {
|
||||
height: document.documentElement.clientHeight - 180 + 'px;',
|
||||
@@ -278,12 +275,11 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
crudStorattr.getStor({ 'is_materialstore': '1' }).then(res => {
|
||||
crudStorattr.getStor({ 'is_productstore': '1' }).then(res => {
|
||||
this.storlist = res.content
|
||||
})
|
||||
crudRawAssist.getType({ 'io_code': '' }).then(res => {
|
||||
this.billtypelist = res
|
||||
})
|
||||
debugger
|
||||
this.billtypelist = this.dict.ST_INV_IN_TYPE
|
||||
},
|
||||
methods: {
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
@@ -298,11 +294,20 @@ export default {
|
||||
this.viewShow = true
|
||||
},
|
||||
bill_typeFormat(row) {
|
||||
for (const item of this.billtypelist) {
|
||||
if (item.code === row.bill_type) {
|
||||
return item.name
|
||||
}
|
||||
if (this.query.io_type === '0') {
|
||||
return this.dict.label.ST_INV_IN_TYPE[row.bill_type]
|
||||
}
|
||||
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) {
|
||||
return this.dict.label.ST_CREATE_MODE[row.create_mode]
|
||||
@@ -366,7 +371,7 @@ export default {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
},
|
||||
disuploadSAP() {
|
||||
uploadSAP() {
|
||||
const res = this.$refs.table.selection
|
||||
if (!res || res.length < 1) {
|
||||
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
@@ -383,7 +388,7 @@ export default {
|
||||
this.fullscreenLoading = false
|
||||
})
|
||||
},
|
||||
disuploadMES() {
|
||||
uploadMES() {
|
||||
const res = this.$refs.table.selection
|
||||
if (!res || res.length < 1) {
|
||||
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||
@@ -400,61 +405,12 @@ export default {
|
||||
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) {
|
||||
if (row.is_upload === '0') {
|
||||
return '否'
|
||||
} else if (row.is_upload === '1') {
|
||||
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