
若依二次开发(功能)————前端对主子表分录校验
分析:前端点击提交触发方法异步请求到后端,通过各种过滤条件获得B表分录的List集合,前端对response做处理,将A分录的数据与B比较。最近客户提出需求,大致为A主子表的分录数据提交校验是否在B主子表的分录中,并给出校验提示。如果有更好的方法,欢迎交流分享!Controller层。
·
最近客户提出需求,大致为A主子表的分录数据提交校验是否在B主子表的分录中,并给出校验提示。
分析:前端点击提交触发方法异步请求到后端,通过各种过滤条件获得B表分录的List集合,前端对response做处理,将A分录的数据与B比较。
大致代码:
Controller层
/**分录提交校验*/
@GetMapping("/checkEntry/{companyNum}")
public List<BdDeviceentry> checkEntry(@PathVariable String companyNum) {
//通过组织名称查询装置列表
BdDevice bdDevice = new BdDevice();
bdDevice.setCompanyNum(companyNum);
List<BdDevice> bdDeviceList = bdDeviceService.selectBdDeviceList(bdDevice);
//创建一个新数组接收遍历的分录
List<BdDeviceentry> allBdDeviceentryList = new ArrayList<>();
//查询数据为空
if (bdDeviceList == null || bdDeviceList.size() == 0) {
return null;
}else {
//遍历所有父表的列表
for (BdDevice device : bdDeviceList) {
//通过id获得分录数据
Long id = device.getId();
BdDevice bdDevice1 = bdDeviceService.selectBdDeviceById(id);
List<BdDeviceentry> bdDeviceentryList = bdDevice1.getBdDeviceentryList();
//筛选分录数据(价格来源为原辅料价目表)
for (BdDeviceentry bdDeviceentry : bdDeviceentryList) {
if ("2".equals(bdDeviceentry.getSourcePrice())) {
allBdDeviceentryList.add(bdDeviceentry);
}
}
}
}
return allBdDeviceentryList;
}
js
//分录提交获得数据
export function checkEntry(companyNum){
return request({
url:'/analysisData/product/marketprice/checkEntry/' + companyNum,
method:'get'
})
}
vue
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
const prList = this.prMarketpriceentryList;
const companyNum = this.form.companyNum;
let existMaterialNums = [];
let existMaterialNames = [];
let notExistMaterialNums = [];
let notExistMaterialNames = [];
checkEntry(companyNum).then(response => {
for (var i = 0; response.length > i; i++) {
debugger;
const existNums = response[i].materialNum;
const existNames = response[i].materialName;
existMaterialNums.push(existNums);
existMaterialNames.push(existNames);
}
for (let j = 0; j < prList.length; j++) {
const materialNum = prList[j].materialNum;
const materialName = prList[j].materialName;
if (!existMaterialNums.includes(materialNum)) {
notExistMaterialNums.push(materialNum);
}
if (!existMaterialNames.includes(materialName)) {
notExistMaterialNames.push(materialName);
}
}
if (notExistMaterialNums.length > 0) {
let message = "";
message += "物料名称:" + notExistMaterialNames.join("、") + "在该公司下不存在请前往维护!";
this.$modal.msgError(message);
return false;
} else {
this.form.prMarketpriceentryList = this.prMarketpriceentryList;
if (this.form.id != null && notExistMaterialNums.length < 1) {
updateMarketprice(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMarketprice(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
})
}
})
},
实现效果:
如果有更好的方法,欢迎交流分享!!!
更多推荐
所有评论(0)