订单管理相关

This commit is contained in:
潘荣晟
2025-10-11 18:01:39 +08:00
parent 9011d8fc5a
commit 5119c6cdd5
14 changed files with 772 additions and 12 deletions

View File

@@ -0,0 +1,9 @@
package com.zt.plat.module.erp.service.erp;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
public interface ErpOrderService {
String submitOrderToErp(ErpOrderSaveReqVO createVo);
}

View File

@@ -0,0 +1,95 @@
package com.zt.plat.module.erp.service.erp;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.erp.api.ErpExternalApi;
import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpBillMainSaveReqVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpOrderSaveReqVO;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class ErpOrderServiceImpl implements ErpOrderService {
@Resource
public ErpExternalApi erpExternalApi;
@Override
public String submitOrderToErp(ErpOrderSaveReqVO createVo) {
ErpSubmitReqDTO reqDTO = buildBaseReqDTO(createVo, "061");
Map<String, Object> req = new HashMap<>();
Map<String, Object> head = new HashMap<>();
// head
head.put("comp_code", createVo.getCompCode());
head.put("vendor", createVo.getVendor());
head.put("doc_type", createVo.getDocType());
head.put("doc_date", createVo.getDocDate());
head.put("purch_org", createVo.getPurchOrg());
head.put("pur_group", createVo.getPurGroup());
head.put("currency", createVo.getCurrency());
head.put("exch_rate", createVo.getExchRate());
req.put("head", head);
//exte
Map<String, Object> exte = new HashMap<>();
exte.put("zzhth", createVo.getZzhth());
exte.put("zxxyh", createVo.getZxxyh());
exte.put("znote", createVo.getZnote());
exte.put("zlifnr", createVo.getZlifnr());
req.put("exte", exte);
getMaps(createVo, req);
reqDTO.setReq(req);
return submitToErp(reqDTO);
}
private ErpSubmitReqDTO buildBaseReqDTO(ErpOrderSaveReqVO vo, String funcnr) {
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
reqDTO.setFuncnr(funcnr);
reqDTO.setBskey(vo.getOrderid());
reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId()));
reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
return reqDTO;
}
private String submitToErp(ErpSubmitReqDTO reqDTO) {
HashMap<String, String> response = erpExternalApi.submitDataToErp(reqDTO);
return response.get("resStr");
}
private void getMaps(ErpOrderSaveReqVO vo, Map<String, Object> req) {
List<Map<String, Object>> items = new ArrayList<>();
Map<String, Object> item = new HashMap<>();
item.put("po_item", vo.getPoItem());
item.put("material", vo.getMaterial());
item.put("plant", vo.getPlant());
item.put("stge_loc", vo.getStgeLoc());
item.put("quantity", vo.getQuantity());
item.put("po_unit", vo.getPoUnit());
item.put("net_price", vo.getNetPrice());
item.put("price_unit", vo.getPriceUnit());
item.put("tax_code", vo.getTaxCode());
item.put("gr_based_iv", vo.getGrBasedIv());
item.put("unlimited_dlv", vo.getUnlimitedDlv());
item.put("batch", vo.getBatch());
item.put("item_cat", vo.getItemCat());
item.put("acctass_cat", vo.getAcctassCat());
item.put("matl_group", vo.getMatlGroup());
item.put("short_text", vo.getShortText());
item.put("ret_item", vo.getRetItem());
item.put("free_item", vo.getFreeItem());
item.put("vendr_batch", vo.getVendrBatch());
item.put("note_xq", vo.getNoteXq());
item.put("note_wl", vo.getNoteWl());
item.put("vend_mat", vo.getVendMat());
items.add(item);
if ("K".equals(vo.getAcctassCat())||"P".equals(vo.getAcctassCat())){
req.put("acct", vo.getActsCtgrDtl());
}
req.put("item", items);
}
}