Commit 74aaad13 authored by 鲁鑫's avatar 鲁鑫

非生产性领料验证;存货调拨任务标题修改

parent 547177f9
......@@ -181,7 +181,7 @@ function initializeToolBar(){
{ id: 'sleep', remark: '暂缓',name:'common.button.sleep', icon: 'fa-pause-circle', event: sleep },
{ id: 'abort', remark: '终止',name:'common.button.abort', icon: 'fa-stop-circle', event: abort},
//{ id: 'relate', remark: '协同关联',name:'common.button.relate', icon: 'fa-link', event: relate},
{ id: 'print', remark: '打印',name:'common.button.print', icon: 'fa-print', event: print },
//{ id: 'print', remark: '打印',name:'common.button.print', icon: 'fa-print', event: print },
{ id: 'showChart', remark: '流程图',name:'common.button.flowchart', icon: 'fa-sitemap', event: showChart},
{ id: 'showApprovalHistory', remark: '流程轨迹',name:'common.button.approvalhistory', icon: 'fa-table', event: showApprovalHistory},
{ id: 'taskCollect', remark: '收藏任务',name:'common.button.taskcollect', icon: 'fa-star', event: saveTaskCollect}
......@@ -1033,9 +1033,9 @@ function abort() {
* 打印
*/
function print() {
// var url = location.href;
// url=url.replace(/\.(job)\?/g,'.print?');
// Public.openPostWindow(url);
var url = location.href;
url=url.replace(/\.(job)\?/g,'.print?');
Public.openPostWindow(url);
}
// 流程图
......
......@@ -114,7 +114,7 @@ function loadGrid() {
}
},
{
display: "物料描述", name: "maktx", width: 200, minWidth: 60, type: "string", align: "left",
display: "物料描述", name: "maktx", width: 300, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
......
......@@ -29,7 +29,7 @@
<x:inputC name="kostlName" required="false" label="成本中心" labelCol="2" fieldCol="2" wrapper="select"/>
<x:hidden name="kostl"/>
<x:inputC name="aufnrName" required="false" label="内部订单" labelCol="2" fieldCol="2" wrapper="select"/>
<x:inputC name="message" required="false" label="预留/相关需求的编号" readonly="true" labelCol="2" fieldCol="2"/>
<x:inputC name="message" required="false" label="领料单号" readonly="true" labelCol="2" fieldCol="2"/>
<x:hidden name="aufnr"/>
</div>
</div>
......
......@@ -11,6 +11,11 @@ function initUI() {
function loadGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: addHandler,
printHandler: {
id: 'print', text: '打印', img:'fa-clipboard', click: function(){
printHandler();
}
},
});
gridManager = UICtrl.grid("#maingrid", {
columns: [
......@@ -24,7 +29,7 @@ function loadGrid() {
{display: "内部订单描述", name: "aufnrName", width: 200, 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: "message", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "领料单号", name: "message", width: 200, minWidth: 60, type: "string", align: "left"},
],
dataAction: "server",
url: web_app.name + '/nonProducePick/slicedNonProducePickList.ajax',
......@@ -71,3 +76,16 @@ function doView(id) {
url: web_app.name + '/nonProducePick/showNonProducePickDetail.job?bizId='+id+"&isReadOnly=true"
});
}
function printHandler(){
var row = DataUtil.getUpdateRow(gridManager);
if (!row) {
return;
}
if (row.status != 3){
Public.tip("请审批完成再打印!");
return;
}
var url='/nonProducePick/print.load';
Public.openPostWindow(web_app.name+url,{id :row.id});
}
......@@ -586,8 +586,8 @@ function checkConstraints(){
if (!datas) {
return false;
}
if (isApproveProcUnit() && datas.length == 0 && "2" != getHandleResult()){
Public.tip("供应商银行银行信息必填");
if (isApplyProcUnit() && datas.length == 0 && "2" != getHandleResult()){
Public.tip("供应商银行信息必填");
return false;
}
}
......@@ -601,8 +601,8 @@ function checkConstraints(){
if (!datas) {
return false;
}
if (isApproveProcUnit() && datas.length == 0 && "2" != getHandleResult()){
Public.tip("供应商付款信息必填");
if (isApplyProcUnit() && datas.length == 0 && "2" != getHandleResult()){
Public.tip("供应商公司信息必填");
return false;
}
}
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>物品领料单</title>
<#include "/print/commonStyleTemplate.ftl" />
<style type="text/css">
td {
font-size: 13px;
}
</style>
</head>
<body>
<div class="billTitle">物品领料单</div>
<table cellspacing="0px" cellpadding="0px" class="tablePrint">
<colgroup>
<col width='50%'/>
<col width="50%"/>
</colgroup>
<tr>
<td class="left">领料部门:${kostlName?default("")?html}</td>
<td class="right">领料单号:${message?default("")?html}</td>
</tr>
</table>
<table cellspacing="0px" cellpadding="0px" class="tablePrint">
<colgroup>
<col width='50%'/>
<col width="50%"/>
</colgroup>
<tr>
<td class="left">领料类型:${personMemberName?default("")?html}</td>
<td class="right">列印日期:${fillinDate?default("")?html}</td>
</tr>
</table>
<table cellspacing="0px" cellpadding="0px" class="tableBorder">
<colgroup>
<col width='10%'/>
<col width='20%'/>
<col width='50%'/>
<col width='10%'/>
<col width='10%'/>
</colgroup>
<tr>
<td class="center">项次</td>
<td class="center">材料编码</td>
<td class="left">材料名称</td>
<td class="center">单位</td>
<td class="center">数量</td>
</tr>
<#if itemList?? && itemList?size gt 0>
<#list itemList as detail>
<tr>
<td class="center">${detail.rspos?default("")?html}</td>
<td class="center">${detail.matnr?default("")?html}</td>
<td class="left">${detail.maktx?default("")?html}</td>
<td class="center">${detail.msehl?default("")?html}</td>
<td class="center">${detail.erfmg?default("")?html}</td>
</tr>
</#list>
<#else>
<tr>
<td class="center">&nbsp;</td>
<td class="center">&nbsp;</td>
<td class="left">&nbsp;</td>
<td class="center">&nbsp;</td>
<td class="center">&nbsp;</td>
</tr>
</#if>
</table>
<table cellspacing="0px" cellpadding="0px" class="tableBorder">
<colgroup>
<col width='10%'/>
<col width="70%"/>
<col width="10%"/>
<col width="10%"/>
</colgroup>
<tr>
<td class="center">用途:</td>
<td class="left">${used?default("")?html}</td>
<td class="center">总计:</td>
<td class="center">${count?default("")?html}</td>
</tr>
</table>
</body>
</html>
......@@ -120,11 +120,12 @@ public class NonProducePickApplicationImpl extends FlowBroker implements NonProd
nonProducePick.setType(sapResult.getTYPE());
if ("Y".equals(ztype)){
nonProducePick.setMessage(sapResult.getMESSAGE_V1());
}else if ("N".equals(ztype)){
nonProducePick.setMessage(sapResult.getMESSAGE());
}else if (StringUtil.isBlank(ztype)){
nonProducePick.setMessage(sapResult.getMESSAGE());
}
// else if ("N".equals(ztype)){
// nonProducePick.setMessage(sapResult.getMESSAGE());
// }else if (StringUtil.isBlank(ztype)){
// nonProducePick.setMessage(sapResult.getMESSAGE());
// }
nonProducePickRepository.save(nonProducePick);
} catch (IOException e) {
throw new RuntimeException(e);
......@@ -139,26 +140,27 @@ public class NonProducePickApplicationImpl extends FlowBroker implements NonProd
if (nonProducePick.isNew()) {
nonProducePick.setStatusId(BizBillStatus.APPLYING.getId());
//根据工厂。物料,单位检查可用数量
//this.checkNonProducePickNum(nonProducePickItems);
} else {
nonProducePick = (NonProducePick) commonDomainService.loadAndFillinProperties(nonProducePick);
}
this.checkNonProducePickNum(nonProducePickItems, nonProducePick.getWerks());
nonProducePick = nonProducePickRepository.save(nonProducePick);
nonProducePickItemApplication.saveNonProducePickItems(nonProducePick.getId(),nonProducePickItems);
return nonProducePick.getId();
}
public void checkNonProducePickNum(List<NonProducePickItem> nonProducePickItems){
public void checkNonProducePickNum(List<NonProducePickItem> nonProducePickItems,String werks){
List<CheckNonProducePickItemNumVo> collect = nonProducePickItems
.stream()
.map(nonProducePickItem -> {
CheckNonProducePickItemNumVo checkNonProducePickItemNumVo = new CheckNonProducePickItemNumVo();
BeanUtils.copyProperties(nonProducePickItem, checkNonProducePickItemNumVo);
checkNonProducePickItemNumVo.setWerks(werks);
return checkNonProducePickItemNumVo;
}).collect(Collectors.toList());
try {
//http://192.168.3.109:8000/sap/bc/erp_ep/mm_check?sap-client=300
String execute = httpClient.execute(collect, "erp_ep/mm_check");
String execute = httpClient.execute(collect, "mm_check");
List<SapResult> resultList = JSONObject.parseArray(execute, SapResult.class);
SapResult sapResult = resultList.get(0);
if (!"S".equals(sapResult.getTYPE())){
......
......@@ -2,17 +2,29 @@ package com.huigou.topsun.sap.nonProducePick.controller;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.data.domain.query.QueryPageRequest;
import com.huigou.topsun.ep.change.domain.query.EpChangeFormQueryRequest;
import com.huigou.topsun.sap.nonProducePick.application.NonProducePickApplication;
import com.huigou.topsun.sap.nonProducePick.application.NonProducePickItemApplication;
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePick;
import com.huigou.topsun.sap.nonProducePick.domain.NonProducePickItem;
import com.huigou.topsun.sap.nonProducePick.domain.query.NonProducePickQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.ClassHelper;
import com.huigou.util.SDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Auther: xin.lu
......@@ -29,6 +41,8 @@ public class NonProducePickController extends CommonController {
@Resource
private NonProducePickApplication nonProducePickApplication;
@Autowired
private NonProducePickItemApplication nonProducePickItemApplication;
public String forwardNonProducePickList(){
return forward("nonProducePickList");
......@@ -61,4 +75,23 @@ public class NonProducePickController extends CommonController {
NonProducePick nonProducePick = nonProducePickApplication.findNonProducePickById(id);
return forward("nonProducePickDetail",nonProducePick);
}
/**
* 打印
* @return
*/
public String print() {
SDO sdo = this.getSDO();
String id = sdo.getId();
NonProducePick nonProducePick = this.nonProducePickApplication.findNonProducePickById(id);
Map<String, Object> map = ClassHelper.beanToMap(nonProducePick);
// 获取Grid数据
List<NonProducePickItem> itemList = nonProducePickItemApplication.findByNonProducePickId(id);
map.put("printTime", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(LocalDateTime.now()));
map.put("itemList", itemList);
BigDecimal bigDecimal = itemList.stream().map(NonProducePickItem::getErfmg).reduce(BigDecimal.ZERO, BigDecimal::add);
map.put("count",bigDecimal);
String pintPage = String.format("/print/topsun/nonProducePick.ftl");
return outputAndProcUnitHandlerPDF(pintPage, id, map);
}
}
......@@ -27,7 +27,19 @@ public class CheckNonProducePickItemNumVo implements Serializable {
/**
*单位
*/
@Column(name = "UNIT")
@JsonProperty("UNIT")
private String meins;
/**
* 数量
*/
@JsonProperty("MNG06")
private BigDecimal erfmg;
/**
* 库存地点
*/
@JsonProperty("LGORT")
private String lgort;
}
......@@ -12,14 +12,6 @@ import com.huigou.topsun.base.coderule.application.CodeRuleApplication;
import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.suppliers.domain.SuppliersBank;
import com.huigou.topsun.sap.suppliers.domain.SuppliersBuyer;
import com.huigou.topsun.sap.suppliers.domain.SuppliersInfo;
import com.huigou.topsun.sap.suppliers.domain.SuppliersPay;
import com.huigou.topsun.sap.suppliers.domain.vo.SuppliersBankVo;
import com.huigou.topsun.sap.suppliers.domain.vo.SuppliersBuyerVo;
import com.huigou.topsun.sap.suppliers.domain.vo.SuppliersInfoVo;
import com.huigou.topsun.sap.suppliers.domain.vo.SuppliersPayVo;
import com.huigou.topsun.sap.transfers.application.SapStockTransfersApplication;
import com.huigou.topsun.sap.transfers.application.SapStockTransfersItemApplication;
import com.huigou.topsun.sap.transfers.domain.SapStockTransfers;
......@@ -33,6 +25,7 @@ import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.doc.attachment.application.AttachmentApplication;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper;
import com.huigou.util.DateUtil;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -43,6 +36,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Auther: Lxh
......@@ -162,6 +156,29 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
}
}
/**
* 设置任务名称
*/
@Override
protected void setTaskDescription(DelegateTask delegateTask) {
String bizId = delegateTask.getExecution().getProcessBusinessKey();
delegateTask.setDescription(this.getApprovalSubjectName(bizId));
}
/**
* 获取任务标题
*
* @param bizId
* @return
*/
private String getApprovalSubjectName(String bizId) {
SapStockTransfers sapStockTransfers = this.sapStockTransfersRepository.findOne(bizId);
//查询 单据日期
String fillinDateStr = DateUtil.getDateFormat("yyyy-MM-dd HH:mm:ss", sapStockTransfers.getFillinDate());
//设置标题
return String.format("%s-%s(%s)", "公司间内跨工厂调拨申请", sapStockTransfers.getBillCode(), fillinDateStr);
}
@Override
protected Map<String, Object> getProcessBizParams(String bizId) {
return ClassHelper.toMap(sapStockTransfersRepository.getOne(bizId));
......@@ -208,6 +225,7 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
resultMap.put("parameter", JSON.toJSONString(sapStockTransfersVO));
// List<SapStockTransfersVO> sapStockTransfersVOs = new ArrayList<>();
// sapStockTransfersVOs.add(sapStockTransfersVO);
String message = "";
try {
String result = defaultHttpClient.execute(sapStockTransfersVO, url);
List<SapResult> sapResultList = JSONObject.parseArray(result, SapResult.class);
......@@ -225,7 +243,9 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
sapStockTransfers.setMessage(sapResult.getMESSAGE_V1());
sapStockTransfersRepository.save(sapStockTransfers);
} else {
throw new RuntimeException("数据传输失败,请稍后手动重试!" + sapResult.getMESSAGE());
List<String> stringList = sapResultList.stream().map(SapResult::getMESSAGE).collect(Collectors.toList());
message = String.join(";", stringList);
throw new RuntimeException("数据传输失败,请稍后手动重试!" + message);
}
} catch (Exception e) {
resultMap.put("TYPE", "E");
......
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