Compare commits

..

2 Commits

2 changed files with 55 additions and 22 deletions

View File

@ -77,7 +77,7 @@ public class MaterialUndoController {
// } // }
if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE) || "Z001".equals(inv_TYPE) || "Z005".equals(inv_TYPE) || "Z006".equals(inv_TYPE) || "Z007".equals(inv_TYPE)) { if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE) || "Z001".equals(inv_TYPE) || "Z005".equals(inv_TYPE) || "Z006".equals(inv_TYPE) || "Z007".equals(inv_TYPE)) {
// materialUndoServiceImpl.rkUndo(undoId, userId); // 入库 materialUndoServiceImpl.rkUndo(undoId, userId); // 入库
materialUndoServiceImpl.cgrkUndo(undoId, userId); // 采购入库 materialUndoServiceImpl.cgrkUndo(undoId, userId); // 采购入库
} }
// else if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE)) { // else if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE)) {

View File

@ -73,33 +73,66 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
*/ */
@Transactional @Transactional
public void cgrkUndo (String undoId, String user) throws Exception { public void cgrkUndo (String undoId, String user) throws Exception {
String billCode = toSAPService.cancelShipInter(undoId, user);
// String billCode = toSAPService.cancelShipInter(undoId, user); if (billCode == null) {
// if (billCode == null) { throw new GlobalException("报送ERP失败,请联系IT处理");
// throw new GlobalException("报送ERP失败,请联系IT处理"); }
// }
EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("采购入库冲销", user, "采购入库冲销"); EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("采购入库冲销", user, "采购入库冲销");
String condition="WHERE UNDOID =? "; String condition="SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE UNDOID = :UNDOID ";
String[] bindSet={undoId}; // String[] bindSet={undoId};
//根据物料凭证找到所有的待冲销数据更新库存状态为创建
// 直接删除生成的标签
List<MaterialPacking> list = MaterialPackingServiceProxy.getMaterialPackingService().select(condition, bindSet);
if(list.size() > 0) {
for (MaterialPacking materialPacking : list) {
MaterialPackingKey key = materialPacking.getKey();
// MaterialPackingServiceProxy.getMaterialPackingService().setEvent(key, makeEventInfo, setEventInfo);
String delSql = "DELETE FROM MATERIALPACKING WHERE MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
String MATERIALPACKINGNAME = materialPacking.getMaterialPackingName();
Map<String, Object> hashMap = new HashMap<String, Object> (); Map<String, Object> hashMap = new HashMap<String, Object> ();
hashMap.put("UNDOID", undoId);
//根据物料凭证找到所有的待冲销数据更新库存状态为创建
List<Map<String, Object>> MPlIST = IDMFrameServiceProxy.getSqlTemplate().queryForList(condition, hashMap);
SetEventInfo setEventInfo = new SetEventInfo();
setEventInfo.setUserColumns(hashMap);
RemoveInfo removeInfo = new RemoveInfo();
for (Map<String, Object> MP : MPlIST) {
//根据当前的数据跟新完工报告且删除入库表的数据
String sql = "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" +
"UNION \r\n" +
"SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
String MATERIALPACKINGNAME = MP.get("MATERIALPACKINGNAME").toString();
hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
// SetEventInfo setEventInfo = new SetEventInfo(); List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
// setEventInfo.setUserColumns(hashMap); for (int i = 0; i < queryForList.size(); i++) {
IDMFrameServiceProxy.getSqlTemplate().update(delSql, hashMap); String dh = queryForList.get(i).get("RECEIVEREQUESTNAME").toString();
hashMap.put("RECEIVEREQUESTNAME", dh);
String hh = queryForList.get(i).get("RECEIVEREQUESTDETAILNAME").toString();
hashMap.put("RECEIVEREQUESTDETAILNAME", hh);
// String sl = queryForList.get(i).get("QTY").toString();
String updateSql = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" +
"SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" +
" SELECT NVL(SUM(M.QTY),0) \r\n" +
" FROM MATERIALPACKINGSUB M \r\n" +
" WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" +
" AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" +
" AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" +
") \r\n" +
"WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" +
" AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, hashMap);
String updateSql2 = "UPDATE MATERIALRECEIVEREQUESTDETAIL T \r\n" +
"SET T.RECEIVEDQUANTITY = T.RECEIVEDQUANTITY - ( \r\n" +
" SELECT NVL(SUM(M.QTY),0) \r\n" +
" FROM MATERIALPACKINGSUBHISTORY M \r\n" +
" WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME \r\n" +
" AND M.RECEIVEREQUESTNAME = T.RECEIVEREQUESTNAME \r\n" +
" AND M.RECEIVEREQUESTDETAILNAME = T.RECEIVEREQUESTDETAILNAME \r\n" +
") \r\n" +
"WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME \r\n" +
" AND T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME";
IDMFrameServiceProxy.getSqlTemplate().update(updateSql2, hashMap);
String deleteSql = " DELETE FROM MATERIALPACKINGSUB T WHERE T.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND "
+ "T.RECEIVEREQUESTDETAILNAME = :RECEIVEREQUESTDETAILNAME AND T.MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap);
} }
MaterialPackingServiceProxy.getMaterialPackingService().remove(new MaterialPackingKey("SDK", MATERIALPACKINGNAME), makeEventInfo, removeInfo);
} }
// 更新凭证冲销状态 // 更新凭证冲销状态