来料加工订单
This commit is contained in:
@@ -18,4 +18,5 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在");
|
ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在");
|
||||||
ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在");
|
ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在");
|
||||||
ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批");
|
ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批");
|
||||||
|
ErrorCode MTRL_CODE_NOT_EXISTS = new ErrorCode(1_008_000_150, "中铜物料不存在");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,5 +155,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
|
|||||||
entrustOrderOrderService.closeOrder(ids);
|
entrustOrderOrderService.closeOrder(ids);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
//委托加工订单提交erp
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -61,9 +61,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.zip.ZipEntry;
|
import java.util.zip.ZipEntry;
|
||||||
import java.util.zip.ZipOutputStream;
|
import java.util.zip.ZipOutputStream;
|
||||||
@@ -1569,8 +1567,8 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 生成ERP合同映射表
|
// 生成ERP合同映射表
|
||||||
// ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); TODO ERP暂时返回成功
|
ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); //TODO ERP暂时返回成功
|
||||||
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
|
//ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
|
||||||
|
|
||||||
// 调用ERP模块
|
// 调用ERP模块
|
||||||
JSONObject erpResult = sendToErp(erpContractVO);
|
JSONObject erpResult = sendToErp(erpContractVO);
|
||||||
@@ -1818,16 +1816,16 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
JSONObject erpResult = new JSONObject();
|
JSONObject erpResult = new JSONObject();
|
||||||
|
|
||||||
// TODO 暂时返回成功
|
// TODO 暂时返回成功
|
||||||
erpResult.putOnce("success", true);
|
// erpResult.putOnce("success", true);
|
||||||
erpResult.putOnce("data", "success");
|
// erpResult.putOnce("data", "success");
|
||||||
/*HashMap<String, String> result = erpContractService.submitErp(erpContractVO);
|
Map<String, String> result = erpContractService.submitErp(erpContractVO);
|
||||||
if ("E".equals(result.get("flag"))) {
|
if ("E".equals(result.get("flag"))) {
|
||||||
erpResult.putOnce("success", false);
|
erpResult.putOnce("success", false);
|
||||||
erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP"));
|
erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP"));
|
||||||
} else {
|
} else {
|
||||||
erpResult.putOnce("success", true);
|
erpResult.putOnce("success", true);
|
||||||
erpResult.putOnce("data", result);
|
erpResult.putOnce("data", result);
|
||||||
}*/
|
}
|
||||||
|
|
||||||
return erpResult;
|
return erpResult;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,9 @@ import com.zt.plat.framework.common.pojo.CommonResult;
|
|||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
|
import com.zt.plat.module.base.api.materialinfomation.MaterialInfomationApi;
|
||||||
|
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationPageReqDTO;
|
||||||
|
import com.zt.plat.module.base.api.materialinfomation.dto.MaterialInfomationRespDTO;
|
||||||
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
||||||
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
||||||
import com.zt.plat.module.bpm.api.task.dto.*;
|
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||||
@@ -81,6 +84,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ContractService contractService;
|
private ContractService contractService;
|
||||||
|
@Resource
|
||||||
|
private MaterialInfomationApi materialInfomationApi;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -192,18 +197,46 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|||||||
head.setDivision(salesOrderDO.getPdtGrpCdg());// 产品组
|
head.setDivision(salesOrderDO.getPdtGrpCdg());// 产品组
|
||||||
head.setReq_date_h(salesOrderDO.getVoucherDate()); // 交货日期
|
head.setReq_date_h(salesOrderDO.getVoucherDate()); // 交货日期
|
||||||
head.setSales_grp(salesOrderDO.getPurchaseGroup()); // 销售组
|
head.setSales_grp(salesOrderDO.getPurchaseGroup()); // 销售组
|
||||||
|
// head.setSales_off(salesOrderDO.getSaleOrgzName()); // 销售办事处
|
||||||
|
head.setCust_grp1("10"); // 客户组
|
||||||
|
head.setPurch_no_c(salesOrderDO.getContractNumber());
|
||||||
|
head.setName(salesOrderDO.getContractName());
|
||||||
|
// head.setRef_1();
|
||||||
|
// head.setPurch_date();
|
||||||
|
// head.setOrd_reason();
|
||||||
|
head.setCurrency(salesOrderDO.getCurrencyNumber()); // 货币码
|
||||||
|
// head.setTaxclass(1);
|
||||||
erpSalesOrderSaveReqVO.setHead(head);
|
erpSalesOrderSaveReqVO.setHead(head);
|
||||||
// 销售订单明细
|
// 销售订单明细
|
||||||
List<ErpSalesOrderSaveReqVO.Item> items = new ArrayList<>();
|
List<ErpSalesOrderSaveReqVO.Item> items = new ArrayList<>();
|
||||||
for (SalesOrderDetailRespVO salesOrderDetailRespVO : salesOrderDetailByOrderId) {
|
for (SalesOrderDetailRespVO salesOrderDetailRespVO : salesOrderDetailByOrderId) {
|
||||||
|
MaterialInfomationPageReqDTO infomationPageReqDTO=new MaterialInfomationPageReqDTO();
|
||||||
|
infomationPageReqDTO.setPageSize(10000);
|
||||||
|
infomationPageReqDTO.setCode(salesOrderDetailRespVO.getMaterialNumber());
|
||||||
|
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(infomationPageReqDTO);
|
||||||
|
if (materialInfomationPage.getData()==null || materialInfomationPage.getData().getList().isEmpty()){
|
||||||
|
throw exception(MTRL_CODE_NOT_EXISTS);
|
||||||
|
|
||||||
|
}
|
||||||
|
MaterialInfomationRespDTO materialInfomationRespDTO = materialInfomationPage.getData().getList().get(0);
|
||||||
|
Map<String, Object> flatAttributes = materialInfomationRespDTO.getFlatAttributes();
|
||||||
|
//获取中铜物料编码
|
||||||
|
String mtrlZhongtongCode = flatAttributes.getOrDefault("mtrlZhongtongCode", "").toString();
|
||||||
|
if (mtrlZhongtongCode.isEmpty()){
|
||||||
|
throw exception(MTRL_CODE_NOT_EXISTS);
|
||||||
|
}
|
||||||
ErpSalesOrderSaveReqVO.Item item = new ErpSalesOrderSaveReqVO.Item();
|
ErpSalesOrderSaveReqVO.Item item = new ErpSalesOrderSaveReqVO.Item();
|
||||||
item.setItem_categ(String.valueOf(salesOrderDetailRespVO.getLineNumber()));
|
item.setItem_categ(String.valueOf(salesOrderDetailRespVO.getLineNumber()));
|
||||||
item.setMaterial(salesOrderDetailRespVO.getMaterialNumber());
|
item.setMaterial(mtrlZhongtongCode);
|
||||||
item.setPlant(salesOrderDetailRespVO.getFactoryNumber());
|
item.setPlant(salesOrderDetailRespVO.getFactoryNumber());
|
||||||
item.setStore_loc(salesOrderDetailRespVO.getShippingPlace());
|
item.setStore_loc(salesOrderDetailRespVO.getShippingPlace());
|
||||||
item.setSales_unit(salesOrderDetailRespVO.getUnit());
|
item.setSales_unit(salesOrderDetailRespVO.getUnit());
|
||||||
item.setDlvschduse(salesOrderDetailRespVO.getInvoiceType());
|
item.setDlvschduse(salesOrderDetailRespVO.getInvoiceType());
|
||||||
item.setTarget_qty(salesOrderDetailRespVO.getQuantity());
|
item.setTarget_qty(salesOrderDetailRespVO.getQuantity());
|
||||||
|
item.setItm_number(Math.toIntExact(salesOrderDetailRespVO.getLineNumber()));
|
||||||
|
item.setItem_categ(salesOrderDetailRespVO.getProjectCategory());
|
||||||
|
item.setShip_point(salesOrderDetailRespVO.getShippingPlace()); // 装运地点
|
||||||
|
item.setAcct_assgt(salesOrderDetailRespVO.getMetalAcctasscatGroup());//todo 物料科目分配组
|
||||||
items.add(item);
|
items.add(item);
|
||||||
}
|
}
|
||||||
erpSalesOrderSaveReqVO.setItems(items);
|
erpSalesOrderSaveReqVO.setItems(items);
|
||||||
@@ -235,8 +268,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
erpSalesOrderSaveReqVO.setConds(conds);
|
erpSalesOrderSaveReqVO.setConds(conds);
|
||||||
// String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO);
|
String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO);
|
||||||
String result="3333";
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R())));
|
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R())));
|
||||||
String salesdocument = jsonObject.containsKey("salesdocument")?jsonObject.getString("salesdocument"):null;
|
String salesdocument = jsonObject.containsKey("salesdocument")?jsonObject.getString("salesdocument"):null;
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ public class ErpOrderSaveReqVO {
|
|||||||
@NotEmpty(message = "采购订单行项目列表不能为空")
|
@NotEmpty(message = "采购订单行项目列表不能为空")
|
||||||
private List<Item> items;
|
private List<Item> items;
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
private List<Itex> itex; // 行项目扩展信息
|
||||||
|
|
||||||
private JSONArray accts; // 科目分配信息(科目分配类别为K或P时使用)
|
private JSONArray accts; // 科目分配信息(科目分配类别为K或P时使用)
|
||||||
@Valid
|
@Valid
|
||||||
private List<Comp> comps; // 委托加工物料信息(委托加工订单时使用)
|
private List<Comp> comps; // 委托加工物料信息(委托加工订单时使用)
|
||||||
@@ -165,8 +168,6 @@ public class ErpOrderSaveReqVO {
|
|||||||
@Schema(description = "交货起止日期(格式:YYYYMMDD-YYYYMMDD)")
|
@Schema(description = "交货起止日期(格式:YYYYMMDD-YYYYMMDD)")
|
||||||
private String vend_mat; // IDNLF CHAR22
|
private String vend_mat; // IDNLF CHAR22
|
||||||
|
|
||||||
@Valid
|
|
||||||
private Itex itex; // 行项目扩展信息
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.zt.plat.module.erp.service.erp;
|
package com.zt.plat.module.erp.service.erp;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.module.erp.api.ErpExternalApi;
|
import com.zt.plat.module.erp.api.ErpExternalApi;
|
||||||
import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO;
|
import com.zt.plat.module.erp.api.dto.ErpSubmitReqDTO;
|
||||||
@@ -33,23 +35,26 @@ public class ErpOrderServiceImpl implements ErpOrderService {
|
|||||||
req.put("exte", createVo.getExte());
|
req.put("exte", createVo.getExte());
|
||||||
req.put("acct", createVo.getAccts());
|
req.put("acct", createVo.getAccts());
|
||||||
reqDTO.setReq(req);
|
reqDTO.setReq(req);
|
||||||
|
|
||||||
return submitToErp(reqDTO);
|
return submitToErp(reqDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ErpSubmitReqDTO buildBaseReqDTO(ErpOrderSaveReqVO vo, String funcnr) {
|
private ErpSubmitReqDTO buildBaseReqDTO(ErpOrderSaveReqVO vo, String funcnr) {
|
||||||
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
||||||
|
// reqDTO.setFuncnr(funcnr);
|
||||||
|
// reqDTO.setBskey(vo.getOrderNo());
|
||||||
|
// reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId()));
|
||||||
|
// reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
||||||
reqDTO.setFuncnr(funcnr);
|
reqDTO.setFuncnr(funcnr);
|
||||||
reqDTO.setBskey(vo.getOrderNo());
|
reqDTO.setBskey(vo.getOrderNo());
|
||||||
reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId()));
|
reqDTO.setUsrid("100048799");
|
||||||
reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
reqDTO.setUsrnm("夏丽丽");
|
||||||
return reqDTO;
|
return reqDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String submitToErp(ErpSubmitReqDTO reqDTO) {
|
private String submitToErp(ErpSubmitReqDTO reqDTO) {
|
||||||
Map<String, String> response = erpExternalApi.submitDataToErp(reqDTO);
|
Map<String, String> response = erpExternalApi.submitDataToErp(reqDTO);
|
||||||
return response.get("resStr");
|
return JSONObject.toJSONString(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -86,10 +91,11 @@ public class ErpOrderServiceImpl implements ErpOrderService {
|
|||||||
Map<String, Object> req = new HashMap<>();
|
Map<String, Object> req = new HashMap<>();
|
||||||
req.put("head", createVo.getHead());
|
req.put("head", createVo.getHead());
|
||||||
req.put("item", createVo.getItems());
|
req.put("item", createVo.getItems());
|
||||||
req.put("conds", createVo.getConds());
|
req.put("conds", JSONArray.parseArray(createVo.getConds().toString()));
|
||||||
req.put("partn_es", createVo.getPartn_es());
|
req.put("partn_es", createVo.getPartn_es());
|
||||||
req.put("partn_numb", createVo.getPartn_numb());
|
req.put("partn_numb", createVo.getPartn_numb());
|
||||||
reqDTO.setReq(req);
|
reqDTO.setReq(req);
|
||||||
|
String reqJson = com.alibaba.fastjson2.JSON.toJSONString(reqDTO);
|
||||||
|
|
||||||
return submitToErp(reqDTO);
|
return submitToErp(reqDTO);
|
||||||
}
|
}
|
||||||
@@ -107,8 +113,11 @@ public class ErpOrderServiceImpl implements ErpOrderService {
|
|||||||
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
ErpSubmitReqDTO reqDTO = new ErpSubmitReqDTO();
|
||||||
reqDTO.setFuncnr(funcnr);
|
reqDTO.setFuncnr(funcnr);
|
||||||
reqDTO.setBskey(vo.getOrderNo());
|
reqDTO.setBskey(vo.getOrderNo());
|
||||||
reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId()));
|
reqDTO.setUsrid("100048799");
|
||||||
reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
reqDTO.setUsrnm("夏丽丽");
|
||||||
|
// reqDTO.setBskey(vo.getOrderNo());
|
||||||
|
// reqDTO.setUsrid(String.valueOf(SecurityFrameworkUtils.getLoginUserId()));
|
||||||
|
// reqDTO.setUsrnm((SecurityFrameworkUtils.getLoginUserNickname()));
|
||||||
return reqDTO;
|
return reqDTO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class ErpConfig {
|
|||||||
if (succeed && "S".equals(dataObject.getString("E_FLAG"))) {
|
if (succeed && "S".equals(dataObject.getString("E_FLAG"))) {
|
||||||
String flag = "S";
|
String flag = "S";
|
||||||
JSONArray E_RESP = dataObject.containsKey("E_DATA") ? dataObject.getJSONArray("E_DATA") : null;
|
JSONArray E_RESP = dataObject.containsKey("E_DATA") ? dataObject.getJSONArray("E_DATA") : null;
|
||||||
String E_MSG = dataObject.containsKey("E_MSG") ? dataObject.getString("E_MSG") : null;
|
String E_MSG = dataObject.containsKey("E_MSG") ? dataObject.getString("E_MSG") : "";
|
||||||
resMap.put("E_RESP", E_RESP);
|
resMap.put("E_RESP", E_RESP);
|
||||||
resMap.put("resStr", E_MSG);
|
resMap.put("resStr", E_MSG);
|
||||||
resMap.put("flag", flag);
|
resMap.put("flag", flag);
|
||||||
|
|||||||
Reference in New Issue
Block a user