Commit a31892dd authored by 1650842865's avatar 1650842865

付款申请查询发票实体号;退料申请;接收退料冲销反馈

parent e353d1a0
...@@ -59,7 +59,7 @@ var tableArray = [ ...@@ -59,7 +59,7 @@ var tableArray = [
display: "采购发票号", name: "belnr2", width: 120, minwidth: 120, type: "string", align: "left", display: "采购发票号", name: "belnr2", width: 120, minwidth: 120, type: "string", align: "left",
}, },
{ {
display: "采购发票行", name: "buzei", width: 120, minwidth: 120, type: "string", align: "left", display: "实体发票号", name: "zzinvcnr", width: 120, minwidth: 120, type: "string", align: "left",
}, },
// { // {
// display: "采购发票行信息", name: "zrsegItem", width: 300, minwidth: 120, type: "string", align: "left", // display: "采购发票行信息", name: "zrsegItem", width: 300, minwidth: 120, type: "string", align: "left",
...@@ -342,8 +342,8 @@ function loadGrid(obj) { ...@@ -342,8 +342,8 @@ function loadGrid(obj) {
if (dates != null && dates.length > 0) { if (dates != null && dates.length > 0) {
for (let j = 0; j < dates.length; j++) { for (let j = 0; j < dates.length; j++) {
var data = dates[j]; var data = dates[j];
if (data.belnr2 == row.BELNR2 && data.buzei == row.BUZEI) { if (data.belnr2 == row.BELNR2 ) {
Public.tip("采购发票号行:" + data.belnr2 + "-" + data.buzei + " 已选择,请取消勾选!"); Public.tip("采购发票号" + data.belnr2 +" 已选择,请取消勾选!");
return false; return false;
} }
} }
...@@ -357,7 +357,7 @@ function loadGrid(obj) { ...@@ -357,7 +357,7 @@ function loadGrid(obj) {
zlsch:"T", zlsch:"T",
zlschTextView:"T-电汇", zlschTextView:"T-电汇",
belnr2: row.BELNR2, belnr2: row.BELNR2,
buzei: row.BUZEI, zzinvcnr: row.ZZINVCNR,
zrsegitem: row.ZRSEG_ITEM, zrsegitem: row.ZRSEG_ITEM,
waers: row.WAERS, waers: row.WAERS,
kursf: row.KURSF, kursf: row.KURSF,
......
...@@ -20,7 +20,7 @@ function initGrid() { ...@@ -20,7 +20,7 @@ function initGrid() {
display: "采购发票号", name: "BELNR2", width: 120, minwidth: 120, type: "string", align: "left", display: "采购发票号", name: "BELNR2", width: 120, minwidth: 120, type: "string", align: "left",
}, },
{ {
display: "采购发票行", name: "BUZEI", width: 120, minwidth: 120, type: "string", align: "left", display: "实体发票号", name: "ZZINVCNR", width: 120, minwidth: 120, type: "string", align: "left",
}, },
// { // {
// display: "采购发票行信息", name: "ZRSEG_ITEM", width: 300, minwidth: 120, type: "string", align: "left", // display: "采购发票行信息", name: "ZRSEG_ITEM", width: 300, minwidth: 120, type: "string", align: "left",
......
...@@ -18,34 +18,36 @@ function loadGrid() { ...@@ -18,34 +18,36 @@ function loadGrid() {
} }
}, },
exportExcelHandler: exportExcelHandler, exportExcelHandler: exportExcelHandler,
// chargeOffHandler: { backHandler: {
// id: 'chargeOff', text: '冲销', img:'fa-edit', click: function(){ id: 'backHandler', text: '退料', img:'fa-edit', click: function(){
// chargeOffHandler(); backHandler();
// } }
// }, },
}); });
gridManager = UICtrl.grid("#maingrid", { gridManager = UICtrl.grid("#maingrid", {
columns: [ columns: [
{display: "单据编号", name: "billCode", width: 150, minWidth: 60, type: "string", align: "left"}, {display: "单据编号", name: "billCode", width: 150, minWidth: 60, type: "string", align: "left"},
{display: "领料单号", name: "message", width: 200, minWidth: 60, type: "string", align: "left"}, {display: "领料单号", name: "message", width: 100, minWidth: 60, type: "string", align: "left"},
//{display: "是否冲销", name: "isChargeOffTextView", width: 100, minWidth: 60, type: "string", align: "left"}, //{display: "是否冲销", name: "isChargeOffTextView", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "创建日期", name: "fillinDate", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "申请人", name: "personMemberName", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "申请部门", name: "deptName", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "工厂", name: "werksName", width: 200, minWidth: 60, type: "string", align: "left"}, {display: "工厂", name: "werksName", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "成本中心", name: "kostlName", width: 200, minWidth: 60, type: "string", align: "left"}, {display: "成本中心", name: "kostlName", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "内部订单编号", name: "aufnr", width: 200, minWidth: 60, type: "string", align: "left"}, {display: "内部订单编号", name: "aufnr", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "内部订单描述", name: "aufnrName", width: 200, minWidth: 60, type: "string", align: "left"}, {display: "内部订单描述", name: "aufnrName", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "序号", name: "rspos", width: 70, minWidth: 60, type: "string", align: "left",}, {display: "序号", name: "rspos", width: 70, minWidth: 60, type: "string", align: "left",},
{display: "物料", name: "matnr", width: 160, minWidth: 60, type: "string", align: "left"}, {display: "物料", name: "matnr", width: 160, minWidth: 60, type: "string", align: "left"},
{display: "物料描述", name: "maktx", width: 300, minWidth: 60, type: "string", align: "left",}, {display: "物料描述", name: "maktx", width: 300, minWidth: 60, type: "string", align: "left",},
{display: "库存地点", name: "lgobe", width: 200, minWidth: 60, type: "string", align: "left",}, {display: "库存地点", name: "lgobe", width: 200, minWidth: 60, type: "string", align: "left",},
{display: "数量", name: "erfmg", width: 100, minWidth: 60, type: "string", align: "left",}, {display: "数量", name: "erfmg", width: 100, minWidth: 60, type: "string", align: "left",},
{display: "退料数量", name: "backNum", width: 100, minWidth: 60, type: "string", align: "left",},
{display: "退料原因", name: "backReason", width: 150, minWidth: 60, type: "string", align: "left",},
{display: "计量单位", name: "msehl", width: 90, minWidth: 60, type: "string", align: "left",}, {display: "计量单位", name: "msehl", width: 90, minWidth: 60, type: "string", align: "left",},
{display: "领料方", name: "wempf", width: 200, minWidth: 60, type: "string", align: "left",}, {display: "领料方", name: "wempf", width: 200, minWidth: 60, type: "string", align: "left",},
{display: "备注用途", name: "usedTextView", width: 200, minWidth: 60, type: "string", align: "left",}, {display: "备注用途", name: "usedTextView", width: 200, minWidth: 60, type: "string", align: "left",},
{display: "审批状态", name: "statusTextView", width: 100, minWidth: 60, type: "string", align: "left"}, {display: "审批状态", name: "statusTextView", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "消息类型", name: "typeTextView", width: 100, minWidth: 60, type: "string", align: "left"}, {display: "消息类型", name: "typeTextView", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "创建日期", name: "fillinDate", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "申请人", name: "personMemberName", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "申请部门", name: "deptName", width: 120, minWidth: 60, type: "string", align: "left"},
], ],
dataAction: "server", dataAction: "server",
url: web_app.name + '/nonProducePick/slicedNonProducePickList.ajax', url: web_app.name + '/nonProducePick/slicedNonProducePickList.ajax',
...@@ -108,23 +110,32 @@ function printHandler(){ ...@@ -108,23 +110,32 @@ function printHandler(){
Public.openPostWindow(web_app.name+url,{id :row.id}); Public.openPostWindow(web_app.name+url,{id :row.id});
} }
function chargeOffHandler(){ function backHandler(){
var row = DataUtil.getUpdateRow(gridManager); var row = DataUtil.getUpdateRow(gridManager);
if (!row) { if (!row) {
return; return;
} }
if (row.status!= 3){ if (Public.isBlank(row.message)){
Public.tip("请审批完成再冲销!"); Public.tip("请领料完成再退料!");
return;
}
if (row.isChargeOff == 1){
Public.tip("已冲销的不能再冲销!");
return; return;
} }
var url='/nonProducePick/chargeOff.ajax'; UICtrl.showAjaxDialog({
Public.ajax(web_app.name+url,{message :row.message},function(data){ url: web_app.name + '/nonProducePickItem/showBack.load',
reloadGrid(); param:{id:row.itemId},
}) title: "退料",
width: 400,
ok: doSaveBackInfo
});
}
function doSaveBackInfo(div){
var _self=this;
$('#saveBackInfoForm',div).ajaxSubmit({url: web_app.name + '/nonProducePickItem/saveNonProducePickItem.ajax',
success : function(id) {
reloadGrid();
_self.close();
}
});
} }
//导出Excel //导出Excel
......
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,combox,commonTree,date"/>
</head>
<body>
<form class="hg-form" method="post" action="" id="saveBackInfoForm">
<x:hidden name="id"/>
<x:hidden name="nonProducePickId"/>
<x:hidden name="version"/>
<x:hidden name="rspos"/>
<x:hidden name="matnr"/>
<x:hidden name="maktx"/>
<x:hidden name="lgort"/>
<x:hidden name="lgobe"/>
<x:hidden name="erfmg"/>
<x:hidden name="meins"/>
<x:hidden name="msehl"/>
<x:hidden name="wempf"/>
<x:hidden name="used"/>
<x:hidden name="remark"/>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:inputC name="backNum" required="true" label="退料数量" labelCol="4" fieldCol="8" mask="9999999.99"/>
<x:textareaC name="backReason" required="true" label="退料原因" labelCol="4" fieldCol="8" rows="3"/>
</div>
</div>
</form>
</body>
</html>
...@@ -522,6 +522,20 @@ function getExtendedData(processAction) { ...@@ -522,6 +522,20 @@ function getExtendedData(processAction) {
return extendedData; return extendedData;
} }
//提交前校验
function checkConstraints() {
var _grid = UICtrl.getGridManager('#maingrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
if (datas.length < 1) {
Public.tip("请添加采购信息记录");
return false;
}
return true;
}
function getId() { function getId() {
return $('#id').val(); return $('#id').val();
} }
......
...@@ -454,4 +454,10 @@ public class SapCostReimbursementDetail implements Serializable { ...@@ -454,4 +454,10 @@ public class SapCostReimbursementDetail implements Serializable {
@Column(name = "ZZYL01") @Column(name = "ZZYL01")
private String zzyl01; private String zzyl01;
/**
* 实体发票号
*/
@Column(name = "zzinvcnr")
private String zzinvcnr;
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.huigou.topsun.sap.nonProducePick.application; ...@@ -2,6 +2,7 @@ package com.huigou.topsun.sap.nonProducePick.application;
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick; import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick;
import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest; import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest;
import com.huigou.topsun.sap.nonProducePick.vo.PDABackPickVo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -27,4 +28,13 @@ public interface NonProducePickApplication { ...@@ -27,4 +28,13 @@ public interface NonProducePickApplication {
public void sendNonProducePickData(NonProducePick nonProducePick,String ztype); public void sendNonProducePickData(NonProducePick nonProducePick,String ztype);
void chargeOff(String message); void chargeOff(String message);
/**
* 根据预留号查询领料单
* @param rsnums
* @return
*/
String getNonProducePick(List<String> rsnums);
void backNonProducePick(PDABackPickVo requestBody);
} }
...@@ -20,4 +20,8 @@ public interface NonProducePickItemApplication { ...@@ -20,4 +20,8 @@ public interface NonProducePickItemApplication {
void deleteByIds(List<String> ids); void deleteByIds(List<String> ids);
List<NonProducePickItem> findByNonProducePickId(String nonProducePickId); List<NonProducePickItem> findByNonProducePickId(String nonProducePickId);
NonProducePickItem findById(String id);
void updateNonProducePickItem(NonProducePickItem nonProducePickItem);
} }
package com.huigou.topsun.sap.nonProducePick.application.impl; package com.huigou.topsun.sap.nonProducePick.application.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.DictUtil; import com.huigou.cache.DictUtil;
import com.huigou.data.domain.model.CommonDomainConstants; import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.domain.query.QueryPageRequest;
import com.huigou.data.query.model.QueryDescriptor; import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel; import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.common.DefaultHttpClient; import com.huigou.topsun.sap.common.DefaultHttpClient;
...@@ -15,9 +17,7 @@ import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick; ...@@ -15,9 +17,7 @@ import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick;
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePickItem; import com.huigou.topsun.sap.nonProducePick.domain.NonProducePickItem;
import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest; import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest;
import com.huigou.topsun.sap.nonProducePick.repository.NonProducePickRepository; import com.huigou.topsun.sap.nonProducePick.repository.NonProducePickRepository;
import com.huigou.topsun.sap.nonProducePick.vo.CheckNonProducePickItemNumVo; import com.huigou.topsun.sap.nonProducePick.vo.*;
import com.huigou.topsun.sap.nonProducePick.vo.NonProducePickItemVo;
import com.huigou.topsun.sap.nonProducePick.vo.NonProducePickVo;
import com.huigou.topsun.sap.purchase.domain.SapPurchase; import com.huigou.topsun.sap.purchase.domain.SapPurchase;
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;
...@@ -26,6 +26,7 @@ import com.huigou.util.DateUtil; ...@@ -26,6 +26,7 @@ import com.huigou.util.DateUtil;
import com.huigou.util.StringUtil; import com.huigou.util.StringUtil;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -147,6 +148,49 @@ public class NonProducePickApplicationImpl extends FlowBroker implements NonProd ...@@ -147,6 +148,49 @@ public class NonProducePickApplicationImpl extends FlowBroker implements NonProd
//TODO //TODO
} }
@Override
public String getNonProducePick(List<String> rsnums) {
String join = StringUtils.join(rsnums, ",");
NonProducePickQueryRequest queryRequest = new NonProducePickQueryRequest();
queryRequest.setMessage(join);
QueryPageRequest pageRequest = new QueryPageRequest();
pageRequest.setPageSize(200);
pageRequest.setPageIndex(1);
queryRequest.setPageModel(pageRequest);
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "nonProducePickByRsnums");
Map<String, Object> map = this.sqlExecutorDao.executeSlicedQuery(queryDescriptor, queryRequest);
List<Map<String, Object>> maps = (List<Map<String, Object>>) map.get("Rows");
List<PDANonProducePickItemVo> itemVoList = maps
.stream()
.map(map1 -> {
PDANonProducePickItemVo pdaNonProducePickItemVo = ClassHelper.fromMap(PDANonProducePickItemVo.class, map1);
String used = pdaNonProducePickItemVo.getUsed();
used.replace("C","R");
pdaNonProducePickItemVo.setUsed(used);
return pdaNonProducePickItemVo;
}).collect(Collectors.toList());
String jsonString = "";
if (ObjectUtil.isNotEmpty(itemVoList)){
jsonString = JSONArray.toJSONString(itemVoList);
}
return jsonString;
}
@Override
public void backNonProducePick(PDABackPickVo requestBody) {
List<PDABackPickItemVo> items = requestBody.getData();
items.forEach(item -> {
NonProducePick producePick = nonProducePickRepository.findByMessage(item.getMessage());
List<NonProducePickItem> itemList = nonProducePickItemApplication.findByNonProducePickId(producePick.getId());
itemList.forEach(pickItem -> {
if (pickItem.getRspos().equals(item.getRspos())){
pickItem.setChargeOffMessage(item.getChargeOffMessage());
nonProducePickItemApplication.updateNonProducePickItem(pickItem);
}
});
});
}
@Override @Override
protected String saveBizAndApprovalData() { protected String saveBizAndApprovalData() {
super.saveBizAndApprovalData(); super.saveBizAndApprovalData();
......
...@@ -54,4 +54,14 @@ public class NonProducePickItemApplicationImpl extends BaseApplication implement ...@@ -54,4 +54,14 @@ public class NonProducePickItemApplicationImpl extends BaseApplication implement
public List<NonProducePickItem> findByNonProducePickId(String nonProducePickId) { public List<NonProducePickItem> findByNonProducePickId(String nonProducePickId) {
return nonProducePickItemRepository.findByNonProducePickId(nonProducePickId); return nonProducePickItemRepository.findByNonProducePickId(nonProducePickId);
} }
@Override
public NonProducePickItem findById(String id) {
return nonProducePickItemRepository.findOne(id);
}
@Override
public void updateNonProducePickItem(NonProducePickItem nonProducePickItem) {
nonProducePickItemRepository.save(nonProducePickItem);
}
} }
...@@ -11,15 +11,28 @@ import com.huigou.topsun.sap.nonProducePick.application.NonProducePickItemApplic ...@@ -11,15 +11,28 @@ import com.huigou.topsun.sap.nonProducePick.application.NonProducePickItemApplic
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick; import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick;
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePickItem; import com.huigou.topsun.sap.nonProducePick.domain.NonProducePickItem;
import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest; import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest;
import com.huigou.topsun.sap.nonProducePick.vo.PDABackPickVo;
import com.huigou.topsun.sap.nonProducePick.vo.PDANonProducePickItemVo;
import com.huigou.topsun.sap.purchaseOrder.controller.SapPurchaseOrderController;
import com.huigou.uasp.annotation.ControllerMapping; import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController; import com.huigou.uasp.client.CommonController;
import com.huigou.util.ClassHelper; import com.huigou.util.ClassHelper;
import com.huigou.util.JSONUtil;
import com.huigou.util.SDO; import com.huigou.util.SDO;
import com.topsunit.query.annotations.Param;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
import org.krysalis.barcode4j.HumanReadablePlacement; import org.krysalis.barcode4j.HumanReadablePlacement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
...@@ -27,10 +40,7 @@ import java.io.IOException; ...@@ -27,10 +40,7 @@ import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -41,6 +51,7 @@ import java.util.stream.Collectors; ...@@ -41,6 +51,7 @@ import java.util.stream.Collectors;
@Controller @Controller
@ControllerMapping("/nonProducePick") @ControllerMapping("/nonProducePick")
public class NonProducePickController extends CommonController { public class NonProducePickController extends CommonController {
private final static Logger LOG = LoggerFactory.getLogger(NonProducePickController.class);
@Override @Override
protected String getPagePath() { protected String getPagePath() {
return "/biz/topsun/sap/nonProducePick/"; return "/biz/topsun/sap/nonProducePick/";
...@@ -133,4 +144,44 @@ public class NonProducePickController extends CommonController { ...@@ -133,4 +144,44 @@ public class NonProducePickController extends CommonController {
nonProducePickApplication.chargeOff(message); nonProducePickApplication.chargeOff(message);
return success(); return success();
} }
@SkipAuth
@RequestMapping( value = "/getNonProducePick",consumes = "application/json; charset=UTF-8", produces = "application/json; charset=UTF-8")
@ResponseBody
public Map<String, Object> getNonProducePick(@RequestBody Map<String, List<String>> requestBody){
LOG.info("PDA退料查询数据=={}", JSONUtil.toString(requestBody));
HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("CODE","S");
messageMap.put("MSG","成功");
String vo = "";
try {
List<String> rsnums = requestBody.get("rsnums");
vo = nonProducePickApplication.getNonProducePick(rsnums);
messageMap.put("DATA",vo);
}catch (RuntimeException e){
messageMap.put("CODE","E");
messageMap.put("MSG",e.getMessage());
messageMap.put("DATA",vo);
}
return messageMap;
}
@SkipAuth
@RequestMapping( value = "/backNonProducePick",consumes = "application/json; charset=UTF-8", produces = "application/json; charset=UTF-8")
@ResponseBody
public Map<String, Object> backNonProducePick(@RequestBody PDABackPickVo requestBody){
LOG.info("PDA退料返回数据=={}", JSONUtil.toString(requestBody));
HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("CODE","S");
messageMap.put("MSG","成功");
messageMap.put("DATA",requestBody);
try {
nonProducePickApplication.backNonProducePick(requestBody);
}catch (RuntimeException e){
messageMap.put("CODE","E");
messageMap.put("MSG",e.getMessage());
messageMap.put("DATA","");
}
return messageMap;
}
} }
package com.huigou.topsun.sap.nonProducePick.controller; package com.huigou.topsun.sap.nonProducePick.controller;
import com.huigou.topsun.sap.nonProducePick.application.NonProducePickItemApplication; import com.huigou.topsun.sap.nonProducePick.application.NonProducePickItemApplication;
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePickItem;
import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest; import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping; import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.client.CommonController; import com.huigou.uasp.client.CommonController;
...@@ -19,6 +20,10 @@ import java.util.Map; ...@@ -19,6 +20,10 @@ import java.util.Map;
@Controller @Controller
@ControllerMapping("/nonProducePickItem") @ControllerMapping("/nonProducePickItem")
public class NonProducePickItemController extends CommonController { public class NonProducePickItemController extends CommonController {
@Override
protected String getPagePath() {
return "/biz/topsun/sap/nonProducePick/";
}
@Resource @Resource
private NonProducePickItemApplication nonProducePickItemApplication; private NonProducePickItemApplication nonProducePickItemApplication;
...@@ -35,4 +40,20 @@ public class NonProducePickItemController extends CommonController { ...@@ -35,4 +40,20 @@ public class NonProducePickItemController extends CommonController {
nonProducePickItemApplication.deleteByIds(ids); nonProducePickItemApplication.deleteByIds(ids);
return success(); return success();
} }
public String showBack(){
SDO sdo = this.getSDO();
String id = sdo.getId();
NonProducePickItem item = nonProducePickItemApplication.findById(id);
return forward("showBack",item);
}
public String saveNonProducePickItem(){
SDO sdo = this.getSDO();
NonProducePickItem nonProducePickItem = sdo.toObject(NonProducePickItem.class);
nonProducePickItemApplication.updateNonProducePickItem(nonProducePickItem);
return success();
}
} }
...@@ -86,5 +86,23 @@ public class NonProducePickItem extends AbstractEntity { ...@@ -86,5 +86,23 @@ public class NonProducePickItem extends AbstractEntity {
@Column(name = "remark") @Column(name = "remark")
private String remark; private String remark;
/**
*退料数量
*/
@Column(name = "back_num")
private BigDecimal backNum;
/**
*退料原因
*/
@Column(name = "back_reason")
private String backReason;
/**
*冲销凭证号
*/
@Column(name = "charge_off_message")
private String chargeOffMessage;
} }
...@@ -11,5 +11,5 @@ import java.util.List; ...@@ -11,5 +11,5 @@ import java.util.List;
* @Description: * @Description:
*/ */
public interface NonProducePickRepository extends JpaRepository<NonProducePick,String> { public interface NonProducePickRepository extends JpaRepository<NonProducePick,String> {
NonProducePick findByMessage(String message);
} }
package com.huigou.topsun.sap.nonProducePick.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/4/2215:05
*/
@Data
public class PDABackPickItemVo implements Serializable {
/**
* 预留/相关需求的编号
*/
@JsonProperty("RSNUM")
private String message;
/**
*序号
*/
@JsonProperty("RSPOS")
private String rspos;
/**
*冲销凭证号
*/
@JsonProperty("RSNUM2")
private String chargeOffMessage;
}
package com.huigou.topsun.sap.nonProducePick.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.util.List;
/**
* @author xin.lu
* @Description: TODO
* @date 2025/4/2215:05
*/
@Data
public class PDABackPickVo implements Serializable {
@JsonProperty("DATA")
private List<PDABackPickItemVo> data;
}
package com.huigou.topsun.sap.nonProducePick.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Auther: xin.lu
* @Date: 2024/03/13/9:33
* @Description: SAP非生产性领料申请与发料过账
*/
@Data
public class PDANonProducePickItemVo implements Serializable {
/**
* 预留/相关需求的编号
*/
@JsonProperty("RSNUM")
private String message;
/**
* 工厂
*/
@JsonProperty("WERKS")
private String werks;
/**
* 成本中心
*/
@JsonProperty("KOSTL")
private String kostl;
/**
*序号
*/
@JsonProperty("RSPOS")
private String rspos;
/**
* 物料编号
*/
@JsonProperty("MATNR")
private String matnr;
/**
*物料描述
*/
@JsonProperty( "MAKTX")
private String maktx;
/**
* 存储地点
*/
@JsonProperty("LGORT")
private String lgort;
/**
* 录入单位
*/
@JsonProperty("ERFME")
private String meins;
/**
* 以录入项单位表示的数量
*/
@JsonProperty("ERFMG")
private BigDecimal erfmg;
/**
* 收货方
*/
@JsonProperty("WEMPF")
private String wempf;
/**
* 用途
*/
@JsonProperty("ZYTBM")
private String used;
/**
*退料数量
*/
@JsonProperty("BACK_NUM")
private BigDecimal backNum;
}
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
t.aufnr_name, t.aufnr_name,
t.type, t.type,
t.message, t.message,
pi.non_produce_pick_id, pi.id as item_id,
pi.rspos, pi.rspos,
pi.matnr, pi.matnr,
pi.maktx, pi.maktx,
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
pi.msehl, pi.msehl,
pi.lgobe, pi.lgobe,
pi.used, pi.used,
pi.back_num,
pi.back_reason,
pi.remark pi.remark
FROM sap_non_produce_pick t FROM sap_non_produce_pick t
LEFT JOIN sap_non_produce_pick_item pi ON t.id = pi.non_produce_pick_id where 1=1 LEFT JOIN sap_non_produce_pick_item pi ON t.id = pi.non_produce_pick_id where 1=1
...@@ -57,4 +59,26 @@ ...@@ -57,4 +59,26 @@
<condition column="non_produce_pick_id" name="nonProducePickId" type="java.lang.String" symbol="=" alias="t"/> <condition column="non_produce_pick_id" name="nonProducePickId" type="java.lang.String" symbol="=" alias="t"/>
</query> </query>
<query name="nonProducePickByRsnums" label="根据领料单查询退料申请" table="sap_non_produce_pick_item">
<sql-query>
SELECT
p.werks,
p.kostl,
p.message,
t.rspos,
t.matnr,
t.maktx,
t.lgort,
t.erfmg,
t.meins,
t.wempf,
t.used,
t.back_num
FROM sap_non_produce_pick_item t
LEFT JOIN sap_non_produce_pick p ON p.id = t.non_produce_pick_id
WHERE t.back_num IS NOT NULL
</sql-query>
<condition column="message" name="message" type="java.lang.String" symbol="in" alias="p"/>
</query>
</query-mappings> </query-mappings>
\ No newline at end of file
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