diff --git a/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java b/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java index 8c9a3c8..2100590 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java @@ -10,7 +10,8 @@ public enum ReceiveTypeEnums { Z001("Z001", "生产物资采购订单"), Z002("Z002", "研发采购订单"), Z003("Z003", "非生产物资采购订单"), - Z004("Z004", "固定资产、在建工程采购订单"); + Z004("Z004", "固定资产、在建工程采购订单"), + ZLR1("ZLR1", "销售退货"); private final String code; private final String info; @@ -38,4 +39,19 @@ public enum ReceiveTypeEnums { public static Boolean isPurchase(String code) { return getPurchase().contains(code); } + + /** + * 销售退货 + */ + public static List getsaleReturn() { + List str = new ArrayList<>(); + str.add(ZLR1.getCode()); + return str; + } + /** + * 是否使用销售退货 + */ + public static Boolean isSaleReturn(String code) { + return getsaleReturn().contains(code); + } } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java index 6d51b9e..ea2b18f 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java @@ -527,6 +527,8 @@ public class MaterialReceiveActController { if (ReceiveTypeEnums.isPurchase(request.getReceiveRequestType())) { Map args = new HashMap<>(); undoId = toSAPServiceImpl.PurStockIn(receiveRequestName, siteName, user, args); + }else if( ReceiveTypeEnums.isSaleReturn(request.getReceiveRequestType())) { + undoId = toSAPServiceImpl.SaleReturn(receiveRequestName, siteName, user, commitDate, opCode); } // @TODO 其他订单 } catch (Exception e) { @@ -560,4 +562,42 @@ public class MaterialReceiveActController { } return AjaxResult.me().setResultObj(null); } + +// 单据类型判断 + public String SendERPStockIn(String receiveRequestName, String siteName, String eventUser,String reActo,String commitDate,String opCode) throws Exception { + //判断单据类型调用不同的NC接口 + String sql = "SELECT m.RECEIVEREQUESTTYPE,m.RECEIVEREQUESTDETAILTYPE FROM MATERIALRECEIVEREQUEST m WHERE m.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME"; + Map hashMap = new HashMap (); + hashMap.put("RECEIVEREQUESTNAME", receiveRequestName); + List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); + String billCode = ""; + if (queryForList != null && queryForList.size() > 0) { + String type = queryForList.get(0).get("RECEIVEREQUESTTYPE").toString(); +// String receiverequestdetailtype = queryForList.get(0).get("RECEIVEREQUESTDETAILTYPE").toString(); + switch (type) { + case "Z001" : //采购入库 + case "Z002" : //研发采购订单 + case "Z003" : //非生产物资采购订单 + case "Z004" : //固定资产、在建工程采购订单 + Map args = new HashMap<>(); + billCode = toSAPServiceImpl.PurStockIn(receiveRequestName, siteName, eventUser, + args/* ,overReceiveControls */); + break; + case "Z005" : //服务费用采购订单 + case "Z006" : //股份 - 泗洪STO + case "Z007" : //股份泗洪-分子公司STO + break; + case "Z008" : //物资退货采购订单 + break; + case "ZLR1" : //销售退料 + billCode = toSAPServiceImpl.SaleReturn(receiveRequestName, "SDK", eventUser,commitDate, opCode); + break; + default : + break; + } + } else { + throw new CustomException("找不到单据" + receiveRequestName); + } + return billCode; + } } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ReturnStockIntoServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ReturnStockIntoServiceImpl.java index cbe24dc..cefd48d 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ReturnStockIntoServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ReturnStockIntoServiceImpl.java @@ -1,5 +1,6 @@ package com.cim.idm.service.Impl; +import cn.hutool.json.ObjectMapper; import com.cim.idm.exception.GlobalException; import com.cim.idm.framework.IDMFrameServiceProxy; import com.cim.idm.framework.data.EventInfo; @@ -21,7 +22,6 @@ import com.cim.idm.wmspackage.materialreceiverequestactdetail.MaterialReceiveReq import com.cim.idm.wmspackage.materialreceiverequestactdetail.management.info.ActDetailIncreaseInfo; import com.cim.idm.wmspackage.materialreceiverequestactdetail.management.info.CreateActDetailInfo; import com.cim.idm.wmspackage.materialreceivetactdetail.management.data.MaterialReceiveActDetailKey; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -36,12 +36,18 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import com.cim.idm.util.MESHttpUtil; @Service public class ReturnStockIntoServiceImpl implements ReturnStockInService { @Autowired private ToSAPServiceImpl ToSAPServiceImpl; + + @Autowired + MESHttpUtil mesHttpUtil; + + String baseUrl = "http://172.22.10.213:8190"; /** @@ -540,7 +546,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService { Map hashMap3 = new HashMap(); hashMap3.put("SITENAME", siteName); List> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(wgs, hashMap3); - + //判断批次是否数量是否满足单据需求 for (int i = 0; i < queryForList2.size(); i++) { String receiveRequestName = queryForList2.get(i).get("RECEIVEREQUESTNAME").toString(); @@ -555,11 +561,12 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService { // 更新抬头文本状态和Box状态 /*String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME FROM MATERIALPACKING M WHERE M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND ERPLOCATION = :ERPLOCATION AND m.MATERIALPACKINGNAME IN " + pc;*/ - String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME FROM MATERIALPACKING M WHERE M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND m.MATERIALPACKINGNAME IN " + String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME,M.CHARGE FROM MATERIALPACKING M WHERE M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND m.MATERIALPACKINGNAME IN " + pc; Map hashMap = new HashMap(); hashMap.put("RECEIVEREQUESTNAME", receiveRequestName); // hashMap.put("ERPLOCATION", erpLocation); + List chargeList = new ArrayList<> (); List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); for (Map map : queryForList) { MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), @@ -576,8 +583,22 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService { Map hashMap2 = new HashMap(); hashMap2.put("LOTNAME", map.get("MATERIALPACKINGNAME").toString()); IDMFrameServiceProxy.getSqlTemplate().update(sql2, hashMap2); + + chargeList.add(map.get("CHARGE").toString()); } SaveUnDoInfo(billCode, commitDate); + + + Map requestBodyMap = new HashMap<>(); + requestBodyMap.put("chargeList", chargeList); + String requestBody = new ObjectMapper(requestBodyMap).toString(); + try { + String httpPost = mesHttpUtil.httpPost(baseUrl + "/wms/wmsMaterialDelete ", requestBody); + System.out.println(httpPost); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } return true; diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml index 5394656..2a84963 100644 --- a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml @@ -134,7 +134,9 @@ TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH, m.MATERIALSPECNAME, m.SITENAME, m.ERPLOCATION, m.LOCATIONNAME, m.MATERIALUNIT, m.SDK_ID, m.REMARK REMARK, m.SALESMAN SALESPERSON, m.SALESASSISTANT CAREER_ASSISTANCE, m.BUSINESSDIVISION BUSINESS_UNIT, - m2.STOCKORGNO AS ERPFACTORY, m2.SUPPLIERNO, +-- m2.STOCKORGNO AS ERPFACTORY, + COALESCE(m2.STOCKORGNO, m.ERPFACTORY) AS ERPFACTORY, + m2.SUPPLIERNO, m3.WIDTH AS DESCRIPTION, m3.MATERIALUNITDESC, m3.WIDTH SPECNAME, m3.PHASE, m3.DESC_CN, DECODE( m3.IS_BATCH, 'Y', '是' , '否' ) IS_BATCH, CASE WHEN m3.EXPIRATION_RULES = '0' THEN '入厂保质期' WHEN m3.EXPIRATION_RULES = '1' THEN '出厂保质期' ELSE '未定义' END AS REPLACED_VALUE, DECODE( m4.IQCFLAG, 'Y', '是', '否' ) IQCFLAG, @@ -165,10 +167,11 @@ #{name} AND m.SITENAME = #{siteName} - AND m2.RECEIVEREQUESTTYPE IN - - #{type} - + + + + +-- ZLR1 销售退货类型