Commit d21d46d9 authored by 1650842865's avatar 1650842865

采购信息记录删除功能

parent 66d81ce0
...@@ -41,6 +41,11 @@ function initPurchaseListGrid() { ...@@ -41,6 +41,11 @@ function initPurchaseListGrid() {
id: 'copyHandler', text: "复制", img:'fa-clipboard', click: function(){ id: 'copyHandler', text: "复制", img:'fa-clipboard', click: function(){
copyQualityInfoRecord(); copyQualityInfoRecord();
} }
},
cancelHandler:{
id: 'cancelHandler', text: "作废", img:'fa-trash-o', click: function(){
cancelHandlerInfoRecord();
}
} }
}); });
purchaseInfoRecordGridManager = UICtrl.grid('#purchaseInfoRecordGrid', { purchaseInfoRecordGridManager = UICtrl.grid('#purchaseInfoRecordGrid', {
...@@ -233,3 +238,21 @@ function copyQualityInfoRecord(){ ...@@ -233,3 +238,21 @@ function copyQualityInfoRecord(){
}); });
} }
function cancelHandlerInfoRecord(){
var row = purchaseInfoRecordGridManager.getSelectedRow();
if (!row) {
return;
}
if (Public.isBlank(row.infnr)) {
Public.errorTip('只能作废有采购信息记录号的数据!');
return false;
}
UICtrl.confirm('您确定要作废该条采购信息记录吗,作废后无法恢复?', function () {
Public.ajax(web_app.name + '/sapPurchaseInfoRecord/cancelPurchaseRecord.ajax',
{id: row.id},
function () {
reloadPurchaseGrid();
});
});
}
...@@ -3,6 +3,7 @@ package com.huigou.topsun.sap.purchaseInfoRecord.application; ...@@ -3,6 +3,7 @@ package com.huigou.topsun.sap.purchaseInfoRecord.application;
import com.huigou.topsun.sap.purchaseInfoRecord.domain.SapPurchaseInfoRecord; import com.huigou.topsun.sap.purchaseInfoRecord.domain.SapPurchaseInfoRecord;
import com.huigou.topsun.sap.purchaseInfoRecord.domain.query.SapPurchaseInfoRecordQueryRequest; import com.huigou.topsun.sap.purchaseInfoRecord.domain.query.SapPurchaseInfoRecordQueryRequest;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -18,4 +19,6 @@ public interface SapPurchaseInfoRecordApplication { ...@@ -18,4 +19,6 @@ public interface SapPurchaseInfoRecordApplication {
Map<String,Object> slicedSapPurchaseInfoRecordList(SapPurchaseInfoRecordQueryRequest queryRequest); Map<String,Object> slicedSapPurchaseInfoRecordList(SapPurchaseInfoRecordQueryRequest queryRequest);
SapPurchaseInfoRecord loadSapPurchaseInfoRecord(String id); SapPurchaseInfoRecord loadSapPurchaseInfoRecord(String id);
void cancelPurchaseRecord(String id);
} }
...@@ -20,7 +20,9 @@ import com.huigou.topsun.sap.purchaseInfoRecord.domain.SapPurchaseInfoRecord; ...@@ -20,7 +20,9 @@ import com.huigou.topsun.sap.purchaseInfoRecord.domain.SapPurchaseInfoRecord;
import com.huigou.topsun.sap.purchaseInfoRecord.domain.SapPurchaseInfoRecordItem; import com.huigou.topsun.sap.purchaseInfoRecord.domain.SapPurchaseInfoRecordItem;
import com.huigou.topsun.sap.common.domain.SapResult; import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.purchaseInfoRecord.domain.query.SapPurchaseInfoRecordQueryRequest; import com.huigou.topsun.sap.purchaseInfoRecord.domain.query.SapPurchaseInfoRecordQueryRequest;
import com.huigou.topsun.sap.purchaseInfoRecord.domain.vo.SapPurchaseInfoRecordCancelVo;
import com.huigou.topsun.sap.purchaseInfoRecord.domain.vo.SapPurchaseInfoRecordItemVo; import com.huigou.topsun.sap.purchaseInfoRecord.domain.vo.SapPurchaseInfoRecordItemVo;
import com.huigou.topsun.sap.purchaseInfoRecord.repository.SapPurchaseInfoRecordItemRepository;
import com.huigou.topsun.sap.purchaseInfoRecord.repository.SapPurchaseInfoRecordRepository; import com.huigou.topsun.sap.purchaseInfoRecord.repository.SapPurchaseInfoRecordRepository;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bpm.FlowBroker; import com.huigou.uasp.bpm.FlowBroker;
...@@ -38,6 +40,7 @@ import org.springframework.util.Assert; ...@@ -38,6 +40,7 @@ import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -62,6 +65,8 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements ...@@ -62,6 +65,8 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements
SapMutualEpLogApplication sapMutualEpLogApplication; SapMutualEpLogApplication sapMutualEpLogApplication;
@Autowired @Autowired
private CodeRuleRepository codeRuleRepository; private CodeRuleRepository codeRuleRepository;
@Autowired
private SapPurchaseInfoRecordItemRepository sapPurchaseInfoRecordItemRepository;
@Transactional @Transactional
@Override @Override
...@@ -311,4 +316,40 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements ...@@ -311,4 +316,40 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements
return sapPurchaseInfoRecordRepository.findOne(id); return sapPurchaseInfoRecordRepository.findOne(id);
} }
@Override
public void cancelPurchaseRecord(String id) {
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("businessType", "作废采购信息记录");
resultMap.put("businessId", id);
resultMap.put("parameter", JSON.toJSONString(id));
SapPurchaseInfoRecordItem recordItem = this.sapPurchaseInfoRecordItemRepository.findOne(id);
SapPurchaseInfoRecordCancelVo cancelVo = new SapPurchaseInfoRecordCancelVo();
BeanUtil.copyProperties(recordItem,cancelVo);
cancelVo.setZzf("X");//删除标识
try {
String url = SystemCache.getParameter("sap.PurchaseInfoRecord.url", String.class);
String execute = httpClient.execute(cancelVo, url);
List<SapResult> resultList = JSONObject.parseArray(execute, SapResult.class);
SapResult sapResult = resultList.get(0);
if (!"S".equals(sapResult.getTYPE())){
resultMap.put("TYPE", sapResult.getTYPE());
resultMap.put("MESSAGE", "数据传输失败,"+ sapResult.getMESSAGE());
throw new RuntimeException("数据传输失败,"+ sapResult.getMESSAGE());
} else {
resultMap.put("TYPE", sapResult.getTYPE());
resultMap.put("MESSAGE", sapResult.getMESSAGE());
}
//recordItem.setInfnr(sapResult.getMESSAGE_V1());
recordItem.setTYPE(sapResult.getTYPE());
recordItem.setMESSAGE(sapResult.getMESSAGE());
sapPurchaseInfoRecordItemApplication.save(recordItem);
} catch (IOException e) {
resultMap.put("TYPE", "E");
resultMap.put("MESSAGE", e.getMessage());
throw new RuntimeException(e);
}finally {
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
}
}
} }
...@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -125,4 +126,11 @@ public class SapPurchaseInfoRecordController extends CommonController { ...@@ -125,4 +126,11 @@ public class SapPurchaseInfoRecordController extends CommonController {
return forward("purchaseInfoRecordDetail",sapPurchaseInfoRecord); return forward("purchaseInfoRecordDetail",sapPurchaseInfoRecord);
} }
public String cancelPurchaseRecord(){
SDO sdo = this.getSDO();
String id = sdo.getId();
sapPurchaseInfoRecordApplication.cancelPurchaseRecord(id);
return success();
}
} }
package com.huigou.topsun.sap.purchaseInfoRecord.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author xin.lu
* @Description:
* @date 2025/3/189:40
*/
@Data
public class SapPurchaseInfoRecordCancelVo implements Serializable {
/**
* 供应商
*/
@JsonProperty("LIFNR")
private String lifnr;
/**
* 物料编码
*/
@JsonProperty("MATNR")
private String matnr;
/**
* 采购信息记录号
*/
@JsonProperty("INFNR")
private String infnr;
/**
* 删除标志
*/
@JsonProperty("ZZF")
private String zzf;
}
...@@ -14,6 +14,8 @@ public interface SapPurchaseInfoRecordItemRepository extends JpaRepository<SapPu ...@@ -14,6 +14,8 @@ public interface SapPurchaseInfoRecordItemRepository extends JpaRepository<SapPu
List<SapPurchaseInfoRecordItem> findBySapPurchaseInfoRecordId(String sapPurchaseInfoRecordId); List<SapPurchaseInfoRecordItem> findBySapPurchaseInfoRecordId(String sapPurchaseInfoRecordId);
SapPurchaseInfoRecordItem findByInfnr(String infnr);
} }
...@@ -114,32 +114,54 @@ public class SapDictionaryApplicationImpl implements SapDictionaryApplication { ...@@ -114,32 +114,54 @@ public class SapDictionaryApplicationImpl implements SapDictionaryApplication {
@Override @Override
public String[] getWidths(List<Map<String, String>> mapList){ public String[] getWidths(List<Map<String, String>> mapList){
Map<String, String> map = mapList.get(0); // 找到 value 值长度最长的 Map
Map<String, String> map = findLongestMap(mapList);
String []widths=new String[map.size()]; String []widths=new String[map.size()];
for (int i=0;i<mapList.size();i++){ int u=0;
Map<String, String> mapp = mapList.get(i); for (String key : map.keySet()) {
int u=0; if (widths[u]==null){
for (String key : mapp.keySet()) { widths[u] = "40";
if (widths[u]==null){ }
widths[u] = "40"; String value=(String) map.get(key);
} int length = value.trim().length();
String tmpWidth=widths[u]; if (length >= 1){
String value=(String) mapp.get(key); widths[u]="100";
}
if (value.trim().length()>10){ if (length >= 20 ) {
if (Integer.parseInt(tmpWidth)<130){ widths[u]="200";
widths[u]="130";
}
} else {
if (value.trim().length()>6){
if (Integer.parseInt(tmpWidth)<80){
widths[u]=String.valueOf(value.trim().length()*10);
}
}
}
u++;
} }
if (length >= 30 ) {
widths[u]="250";
}
u++;
} }
return widths; return widths;
} }
/**
* 计算 Map 中所有 value 的总长度
*/
public int calculateValueLength(Map<String, String> map) {
int totalLength = 0;
for (String value : map.values()) {
totalLength += value.length();
}
return totalLength;
}
/**
* 找到 value 值长度最长的 Map
*/
public Map<String, String> findLongestMap(List<Map<String, String>> mapList) {
Map<String, String> longestMap = null;
int maxLength = -1;
for (Map<String, String> map : mapList) {
int currentLength = calculateValueLength(map);
if (currentLength > maxLength) {
maxLength = currentLength;
longestMap = map;
}
}
return longestMap;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment