来料加工订单

This commit is contained in:
潘荣晟
2026-01-25 16:57:10 +08:00
parent dad22ec7ec
commit ea02e5af4e
8 changed files with 142 additions and 51 deletions

View File

@@ -18,4 +18,5 @@ public interface ErrorCodeConstants {
ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在");
ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在");
ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批");
ErrorCode MTRL_CODE_NOT_EXISTS = new ErrorCode(1_008_000_150, "中铜物料不存在");
}

View File

@@ -155,5 +155,7 @@ public class EntrustOrderOrderController implements BusinessControllerMarker {
entrustOrderOrderService.closeOrder(ids);
return success(true);
}
//委托加工订单提交erp
}

View File

@@ -61,9 +61,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.ByteArrayOutputStream;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -1569,8 +1567,8 @@ public class ContractServiceImpl implements ContractService {
}
// 生成ERP合同映射表
// ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); TODO ERP暂时返回成功
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); //TODO ERP暂时返回成功
//ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
// 调用ERP模块
JSONObject erpResult = sendToErp(erpContractVO);
@@ -1818,16 +1816,16 @@ public class ContractServiceImpl implements ContractService {
JSONObject erpResult = new JSONObject();
// TODO 暂时返回成功
erpResult.putOnce("success", true);
erpResult.putOnce("data", "success");
/*HashMap<String, String> result = erpContractService.submitErp(erpContractVO);
// erpResult.putOnce("success", true);
// erpResult.putOnce("data", "success");
Map<String, String> result = erpContractService.submitErp(erpContractVO);
if ("E".equals(result.get("flag"))) {
erpResult.putOnce("success", false);
erpResult.putOnce("errMsg", result.get("resStr")+":"+result.get("E_RESP"));
} else {
erpResult.putOnce("success", true);
erpResult.putOnce("data", result);
}*/
}
return erpResult;
}

View File

@@ -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.util.object.BeanUtils;
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.BpmTaskApi;
import com.zt.plat.module.bpm.api.task.dto.*;
@@ -81,6 +84,8 @@ public class SalesOrderServiceImpl implements SalesOrderService {
@Resource
private ContractService contractService;
@Resource
private MaterialInfomationApi materialInfomationApi;
@@ -192,18 +197,46 @@ public class SalesOrderServiceImpl implements SalesOrderService {
head.setDivision(salesOrderDO.getPdtGrpCdg());// 产品组
head.setReq_date_h(salesOrderDO.getVoucherDate()); // 交货日期
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);
// 销售订单明细
List<ErpSalesOrderSaveReqVO.Item> items = new ArrayList<>();
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();
item.setItem_categ(String.valueOf(salesOrderDetailRespVO.getLineNumber()));
item.setMaterial(salesOrderDetailRespVO.getMaterialNumber());
item.setMaterial(mtrlZhongtongCode);
item.setPlant(salesOrderDetailRespVO.getFactoryNumber());
item.setStore_loc(salesOrderDetailRespVO.getShippingPlace());
item.setSales_unit(salesOrderDetailRespVO.getUnit());
item.setDlvschduse(salesOrderDetailRespVO.getInvoiceType());
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);
}
erpSalesOrderSaveReqVO.setItems(items);
@@ -235,8 +268,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
}
});
erpSalesOrderSaveReqVO.setConds(conds);
// String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO);
String result="3333";
String result = erpOrderService.submitOrderToErp091(erpSalesOrderSaveReqVO);
if (result != null) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R())));
String salesdocument = jsonObject.containsKey("salesdocument")?jsonObject.getString("salesdocument"):null;