销售退货根据接收仓库修改状态

This commit is contained in:
王帅 2025-05-15 16:43:07 +08:00
parent e26517807f
commit 48c65aae69
3 changed files with 50 additions and 3 deletions

View File

@ -499,7 +499,7 @@ public class MaterialReceiveActController {
@RequestMapping(value = "/commitToERP", method = RequestMethod.POST)
public AjaxResult commitToERP(@RequestBody JSONObject in ) {
public AjaxResult commitToERP(@RequestBody JSONObject in ) throws CustomException {
TrackOutBoDto trackOutBoDto = JSON.toJavaObject(in, TrackOutBoDto.class);
// 采购单
List<MaterialReceiveRequest> requests = new ArrayList<>();
@ -517,6 +517,8 @@ public class MaterialReceiveActController {
String user = trackOutBoDto.getUser();
String opCode = trackOutBoDto.getOpCode();
String commitDate = trackOutBoDto.getCommitDate();
String erpLocation = trackOutBoDto.getErpLocation();
String erpFactory1 = trackOutBoDto.getErpFactory();
// 采购单处理
for (MaterialReceiveRequest request : requests) {
String receiveRequestName = request.getReceiveRequestName();
@ -561,7 +563,7 @@ public class MaterialReceiveActController {
SDKMaterialPackingServiceImpl.updateMaterialPackingUndoIdByReceive(receiveRequestName, undoId);
// 更新库存状态
SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoId,commitDate);
SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoId,opCode);
SDKMaterialPackingServiceImpl.updateStockState(makeEventInfo, undoId,opCode,erpLocation, erpFactory1);
}
// 到货单据更新状态
if (Objects.nonNull(materialDelivery)) {

View File

@ -11,6 +11,10 @@ public class TrackOutBoDto {
private String opCode;
private String receiveRequestName;
private MaterialreceiveActDto materialreceiveAct;
/**仓库*/
private String erpLocation;
/**组织*/
private String erpFactory;
}

View File

@ -299,7 +299,6 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
* @param UNDOID
*/
public void updateStockState(EventInfo eventInfo, String UNDOID,String opCode) {
String sql = "SELECT SITENAME, MATERIALPACKINGNAME FROM MATERIALPACKING T WHERE UNDOID = :UNDOID";
Map<String, Object> hashMap = new HashMap<String, Object> ();
hashMap.put("UNDOID", UNDOID);
@ -317,6 +316,48 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
}
}
/**
* 更新库存状态
* @param eventInfo
* @param UNDOID
* @param opCode
* @param erpLocation 仓库
* @param erpFactory 组织
*/
public void updateStockState(EventInfo eventInfo, String UNDOID,String opCode, String erpLocation, String erpFactory) throws CustomException {
// 查询仓库类型
String sqlErp = "SELECT TYPE FROM BS_ERPLOCATION WHERE ERPFACTORYNAME = :ERPFACTORYNAME AND ERPLOCATIONNAME = :ERPLOCATIONNAME";
Map<String, Object> hashMapErp = new HashMap<String, Object> ();
hashMapErp.put("ERPFACTORYNAME", erpFactory);
hashMapErp.put("ERPLOCATIONNAME", erpLocation);
List<Map<String, Object>> maps = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlErp, hashMapErp);
if (maps == null || maps.size() == 0 || maps.get(0).get("TYPE") == null) {
throw new CustomException("仓库类型为空," + "仓库:" + erpLocation + ",组织:" + erpFactory);
}
String type = maps.get(0).get("TYPE").toString();
String packinggrade = "1".equals(type) ? "OK" : "NG";
String oqaresult = "1".equals(type) ? "OK" : "NG";
String specialstate = "1".equals(type) ? "" : "2";
String sql = "SELECT SITENAME, MATERIALPACKINGNAME FROM MATERIALPACKING T WHERE UNDOID = :UNDOID";
Map<String, Object> hashMap = new HashMap<String, Object> ();
hashMap.put("UNDOID", UNDOID);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
Map<String, Object> bindMap = new HashMap<String, Object>();
SetEventInfo setEventInfo = new SetEventInfo();
for (Map<String, Object> map : queryForList) {
bindMap.put("packingState","Released");
bindMap.put("stockState","Stocked");
bindMap.put("unDoID",UNDOID);
bindMap.put("messageId",opCode);
bindMap.put("packingGrade",packinggrade);
bindMap.put("oqaResult",oqaresult);
bindMap.put("specialState",specialstate);
setEventInfo.setUserColumns(bindMap);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);
}
}
/**
* 模拟NC
* @param shipRequestName