diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java index 33cb0ed28..69eefb2fc 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java @@ -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()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_COOLOUT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_COOLOUT.wql index eba824f3c..dd70ad311 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_COOLOUT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/st/wql/PDA_COOLOUT.wql @@ -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 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index e33db9ac5..50fa81700 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -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); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java new file mode 100644 index 000000000..b4b8bcf45 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/rest/InAndOutReturnlController.java @@ -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 query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(inAndOutReturnService.pageQuery(whereJson, page), HttpStatus.OK); + } + + @PostMapping("/upload") + @Log("回传") + @ApiOperation("回传") + public ResponseEntity upload(@RequestBody Map whereJson) { + inAndOutReturnService.upload(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/uploadMES") + @Log("回传MES") + @ApiOperation("回传MES") + public ResponseEntity uploadMES(@RequestBody Map whereJson) { + inAndOutReturnService.uploadMES(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/uploadSAP") + @Log("回传SAP") + @ApiOperation("回传SAP") + public ResponseEntity uploadSAP(@RequestBody Map whereJson) { + inAndOutReturnService.uploadSAP(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/disupload") + @Log("不回传") + @ApiOperation("不回传") + public ResponseEntity disupload(@RequestBody Map whereJson) { + inAndOutReturnService.disupload(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java new file mode 100644 index 000000000..1b2266cb2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/InAndOutReturnService.java @@ -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 + */ + Map pageQuery(Map whereJson, Pageable page); + + void upload(Map whereJson); + + void uploadMES(Map whereJson); + + void uploadSAP(Map whereJson); + + void disupload(Map whereJson); + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java new file mode 100644 index 000000000..42ed47be4 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -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 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); + } + + } + } + } + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql new file mode 100644 index 000000000..704cc687f --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/wql/QST_IVT_INANDOUTRETRUN.wql @@ -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 diff --git a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js index 610d37b1b..798a7e4ef 100644 --- a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js +++ b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js @@ -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 } diff --git a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue index bb842f25e..653fbcf2f 100644 --- a/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inAndOutReturn/index.vue @@ -32,7 +32,6 @@ @@ -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 } } }