Commit 9e837896 authored by 鲁鑫's avatar 鲁鑫

客户订单取消/变更流程

parent 244a2bd5
var gridManager = null;
$(document).ready(function () {
initialize();
loadGrid();
bindEvent();
});
function initialize(){
// var orderTypeName = $("#orderTypeName").val();
// $('#jobBizBillBody .subject').html(orderTypeName);
UICtrl.layout("#layout", {leftWidth: 3});
}
function bindEvent(){
}
function loadGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function () {
UICtrl.addGridRow(gridManager);
},
deleteHandler: function () {
var _grid = UICtrl.getGridManager('#maingrid');
DataUtil.delSelectedRows({
action: 'epSaleOrderCancelItem/deleteEpSaleOrderCancelItem.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
reloadGrid();
}
});
}
});
gridManager = UICtrl.grid("#maingrid", {
columns: [
{
display: "销售单号", name: "vbeln", width: 200, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "项次", name: "posnr", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "物料编号", name: "matnr", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "物料描述", name: "maktx", width: 300, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "数量", name: "kwmeng", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "单位", name: "vrkme", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "生产单号", name: "produceCode", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
},
{
display: "工序", name: "process", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
type: "text"
}
}
],
dataAction: "server",
url: web_app.name + '/epSaleOrderCancelItem/queryEpSaleOrderCancelItems.ajax',
pageSize: 10,
usePager: true,
parms:{epSaleOrderCancelId:getId()},
toolbar: toolbarOptions,
enabledEdit: true,
width: "100%",
height: "60%",
heightDiff: -8,
checkbox: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
});
UICtrl.setSearchAreaToggle(gridManager);
}
/**
* 流程引擎回调设置打样的id
* @param value 打样申请的id
*/
function setId(id) {
$("#id").val(id);
var _grid=UICtrl.getGridManager('#maingrid');
_grid.options.parms.epSaleOrderCancelId = id;
}
/**
* 流程引擎获取打样申请id的回掉方法。
* @return 打样申请的id
*/
function getId() {
return $("#id").val() || "";
}
function reloadGrid() {
gridManager.loadData();
}
function getExtendedData(processAction) {
//回退、打回、转交时,不需要验证必填项是否已经填写;
if (processAction == ProcessAction.BACK
|| processAction == ProcessAction.REPLENISH
|| processAction == ProcessAction.TRANSMIT) {
//不验证
$('#submitForm').attr('check', false);
}
var extendedData = {};
var _grid = UICtrl.getGridManager('#maingrid');
if (_grid) {
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.items = Public.encodeJSONURI(datas);
}
return extendedData;
}
<%@ 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"/>
<x:script src='/biz/topsun/ep/epSaleOrder/epSaleOrderCancelDetail.js'/>
</head>
<body>
<x:billTitle title="销售订单取消/变更" needStatus="false" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="id"/>
<x:hidden name="billCode"/>
<x:hidden name="fillinDate" type="datetime"/>
<x:hidden name="fullId"/>
<x:hidden name="organId"/>
<x:hidden name="organName"/>
<x:hidden name="deptId"/>
<x:hidden name="deptName"/>
<x:hidden name="positionId"/>
<x:hidden name="positionName"/>
<x:hidden name="personMemberId"/>
<x:hidden name="personMemberName"/>
<x:hidden name="orderType"/>
<x:hidden name="orderTypeName"/>
<x:hidden name="statusId"/>
<x:hidden name="customerCode"/>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:inputC name="customerName" required="false" label="客户名称" labelCol="1" fieldCol="2"/>
<x:inputC name="productType" required="true" label="产品类型" labelCol="1" fieldCol="2"/>
</div>
<div class="hg-form-row">
<x:radioC name="isCancel" required="true" label="原订单是否取消" labelCol="1" dictionary="yesorno" fieldCol="2"/>
</div>
</div>
<div class="blank_div clearfix"></div>
<div id="maingrid" style="margin: 2px;">
</div>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:textareaC name="updateContext" required="false" label="修改内容" maxLength="120" rows="3" labelCol="1" fieldCol="11"/>
<x:textareaC name="consultConclusion" required="false" label="客户协商结论" maxLength="120" rows="1" labelCol="1" fieldCol="11"/>
<x:textareaC name="reviewConclusion" required="false" label="评审结论" maxLength="120" rows="2" labelCol="1" fieldCol="11"/>
</div>
</div>
</form>
</body>
</html>
var gridManager = null;
$(document).ready(function () {
initUI();
loadGrid();
})
function initUI() {
UICtrl.initDefaultLayout();
}
function loadGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: addHandler,
});
gridManager = UICtrl.grid("#maingrid", {
columns: [
{display: "单据编号", name: "billCode", width: 150, 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: "customerCode", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "客户名称", name: "customerName", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "产品类型", name: "productType", width: 200, minWidth: 60, type: "string", align: "left"},
{display: "审批状态", name: "statusTextView", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "原订单是否取消", name: "isCancel", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "状态码", name: "code", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "消息", name: "msg", width: 200, minWidth: 60, type: "string", align: "left"},
],
dataAction: "server",
url: web_app.name + '/epSaleOrderCancel/slicedEpSaleOrderCancelList.ajax',
pageSize: 20,
usePager: true,
toolbar: toolbarOptions,
width: "100%",
height: "100%",
heightDiff: -8,
checkbox: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
onDblClickRow: function (data, rowindex, rowobj) {
doView(data.id);
},
});
UICtrl.setSearchAreaToggle(gridManager);
}
function query(obj) {
var param = $(obj).formToJSON();
UICtrl.gridSearch(gridManager, param);
}
function reloadGrid() {
gridManager.loadData();
}
function resetForm(obj) {
$(obj).formClean();
}
function addHandler() {
UICtrl.addTabItem({
tabid: 'epSaleOrderCancel',
text: "新增销售订单取消/变更",
url: web_app.name + '/epSaleOrderCancel/forwardEpSaleOrderCancelDetail.job'
});
}
function doView(id) {
UICtrl.addTabItem({
tabid: 'epSaleOrderCancel'+id,
text: "查看销售订单取消/变更",
url: web_app.name + '/epSaleOrderCancel/showEpSaleOrderCancelDetail.job?bizId='+id+"&isReadOnly=true"
});
}
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ 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"/>
<x:script src='/biz/topsun/ep/epSaleOrder/epSaleOrderCancelList.js'/>
</head>
<body>
<div class="container-fluid">
<div class="ui-hide">
</div>
<div id="layout">
<div position="center" title="销售订单取消/变更列表">
<x:title title="common.button.search" hideTable="queryMainForm" isHide="true"/>
<form class="hg-form ui-hide" method="post" action="" id="queryMainForm">
<x:inputC name="billCode" required="false" label="申请单号" labelCol="1"/>
<x:searchButtons/>
</form>
<div class="blank_div clearfix"></div>
<div id="maingrid" style="margin: 2px;"></div>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.huigou.topsun.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.huigou.cache.DictUtil;
import com.huigou.topsun.sap.costCenter.application.CostCenterApplication;
import com.huigou.topsun.sap.sapApplication.application.SapAreaApplication;
import com.huigou.topsun.sap.sapApplication.application.SapDictionaryApplication;
import com.huigou.topsun.sap.sapApplication.application.SapMaterialApplication;
import com.huigou.topsun.sap.sapApplication.application.SapPaymentApplication;
......@@ -40,6 +41,8 @@ public class ResourceSearchController {
private SapPaymentApplication sapPaymentApplication;
@Autowired
private SapMaterialApplication sapMaterialApplication;
@Autowired
private SapAreaApplication sapAreaApplication;
@EasySearch(queryName = "knttp")
public Map<String, Object> knttpSelect(SDO sdo){
......@@ -58,7 +61,9 @@ public class ResourceSearchController {
Map<String, Object> map = new HashMap<>();
map.put("knttp", value);
if ("ZFW".equals(filterValue)) {
mapList.add(map);
if ("F".equals(key) || "K".equals(key)) {
mapList.add(map);
}
} else if ("ZNE1".equals(filterValue)) {
if ("A".equals(key)) {
mapList.add(map);
......@@ -190,7 +195,7 @@ public class ResourceSearchController {
String param = sdo.getString("paramValue");
String BUKRS = sdo.getString("BUKRS");
String ZEP_BPTYPE = sdo.getString("ZEP_BPTYPE");
List<Map<String, Object>> mapList = new ArrayList<>();
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapPaymentApplication.getCusAndSuppliers(BUKRS,ZEP_BPTYPE);
return this.initEasySearchModel( mapList, param, sdo);
}
......@@ -200,7 +205,7 @@ public class ResourceSearchController {
String param = sdo.getString("paramValue");
String PARTNER = sdo.getString("PARTNER");
String ZEP_BPTYPE = sdo.getString("ZEP_BPTYPE");
List<Map<String, Object>> mapList = new ArrayList<>();
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapPaymentApplication.getCusAndBanks(PARTNER,ZEP_BPTYPE);
return this.initEasySearchModel( mapList, param, sdo);
}
......@@ -209,7 +214,7 @@ public class ResourceSearchController {
public Map<String, Object> getCompanyAndBankInfos(SDO sdo) throws IOException {
String param = sdo.getString("paramValue");
String BUKRS = sdo.getString("BUKRS");
List<Map<String, Object>> mapList = new ArrayList<>();
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapPaymentApplication.getCompanyAndBankInfos(BUKRS);
return this.initEasySearchModel( mapList, param, sdo);
}
......@@ -218,7 +223,7 @@ public class ResourceSearchController {
public Map<String, Object> getCompanyOrders(SDO sdo) throws IOException {
String param = sdo.getString("paramValue");
String BUKRS = sdo.getString("BUKRS");
List<Map<String, Object>> mapList = new ArrayList<>();
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapPaymentApplication.getCompanyOrders(BUKRS);
return this.initEasySearchModel( mapList, param, sdo);
}
......@@ -229,7 +234,7 @@ public class ResourceSearchController {
String BUKRS = sdo.getString("BUKRS");
String PARTNER = sdo.getString("PARTNER");
String ZEP_FTYPE = sdo.getString("ZEP_FTYPE");
List<Map<String, Object>> mapList = new ArrayList<>();
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapPaymentApplication.getPurchaseOrders(BUKRS,PARTNER,ZEP_FTYPE);
return this.initEasySearchModel( mapList, param, sdo);
}
......@@ -241,22 +246,31 @@ public class ResourceSearchController {
String PARTNER = sdo.getString("PARTNER");
String ZYL03 = sdo.getString("ZYL03");
String ZEP_FTYPE = sdo.getString("ZEP_FTYPE");
List<Map<String, Object>> mapList = new ArrayList<>();
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapPaymentApplication.getPartnerInvs(BUKRS,PARTNER,ZEP_FTYPE,ZYL03);
return this.initEasySearchModel( mapList, param, sdo);
}
public Map<String,Object> initEasySearchModel(List<Map<String, Object>> mapList,String param,SDO sdo){
@EasySearch(queryName = "getArea")
public Map<String, Object> getArea(SDO sdo) throws IOException {
String param = sdo.getString("paramValue");
String LAND1 = sdo.getString("LAND1");
List<Map<String, String>> mapList = new ArrayList<>();
mapList = sapAreaApplication.getAreas(LAND1);
return this.initEasySearchModel( mapList, param, sdo);
}
public Map<String,Object> initEasySearchModel(List<Map<String, String>> mapList,String param,SDO sdo){
List<QuerySchemeField> fields = new ArrayList<>();
if (CollectionUtil.isNotEmpty(mapList)){
if (StringUtil.isNotBlank(param)){//输入查询条件过滤
mapList = mapList
.stream()
.filter(map -> map.containsValue(param))
.filter(map -> map.values().stream().anyMatch(value->value.contains(param)))
.collect(Collectors.toList());
}
if (!CollectionUtils.isEmpty(mapList)){
Map<String, Object> map = mapList.get(0);
Map<String, String> map = mapList.get(0);
map.keySet().forEach(key->{
QuerySchemeField querySchemeField = new QuerySchemeField(key,key,"string",200L);
fields.add(querySchemeField);
......@@ -269,7 +283,7 @@ public class ResourceSearchController {
EasySearchParse easySearchParse = new EasySearchParse();
easySearchParse.setFields(fields);
easySearchParse.setWidth(450L);
MemEasySearcher<Map<String, Object>> memEasySearcher = new MemEasySearcherImpl<>();
MemEasySearcher<Map<String, String>> memEasySearcher = new MemEasySearcherImpl<>();
Map<String, Object> model = memEasySearcher.search(mapList, easySearchParse, pageRequest, null);
return model;
}
......
package com.huigou.topsun.ep.order.application;
import com.huigou.topsun.ep.order.domain.EpSaleOrderCancel;
import com.huigou.topsun.ep.order.domain.query.EpSaleOrderCancelQueryRequest;
import com.huigou.topsun.ep.order.domain.vo.EpSaleOrderCancelVo;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:13
* @Description:
*/
public interface EpSaleOrderCancelApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/ep/epSaleOrder/epSaleOrderCancel.xml";
String PROCESS_DEFINITION_KEY = "epSaleOrderCancelProc";
EpSaleOrderCancel findEpSaleOrderCancelById(String id);
void deleteEpSaleOrderCancelById(List<String> ids);
void updateEpSaleOrderCancel(EpSaleOrderCancel epSaleOrderCancel);
EpSaleOrderCancel saveEpSaleOrderCancel(EpSaleOrderCancel epSaleOrderCancel);
Map<String, Object> slicedEpSaleOrderCancelList(EpSaleOrderCancelQueryRequest queryRequest);
void saveEpSaleOrderCancelVo(List<EpSaleOrderCancelVo> epSaleOrderCancelVos);
}
package com.huigou.topsun.ep.order.application;
import com.huigou.topsun.ep.order.domain.EpSaleOrderCancelItem;
import com.huigou.topsun.ep.order.domain.query.EpSaleOrderCancelQueryRequest;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:13
* @Description:
*/
public interface EpSaleOrderCancelItemApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/ep/epSaleOrder/epSaleOrderCancel.xml";
void saveEpSaleOrderCancelItems(String epSaleOrderCancelId, List<EpSaleOrderCancelItem> epSaleOrderCancelItems);
Map<String,Object> queryEpSaleOrderCancelItems(EpSaleOrderCancelQueryRequest queryRequest);
void deleteByIds(List<String> ids);
List<EpSaleOrderCancelItem> findByEpSaleOrderCancelId(String epSaleOrderCancelId);
}
package com.huigou.topsun.ep.order.application.impl;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.ep.order.application.EpSaleOrderCancelItemApplication;
import com.huigou.topsun.ep.order.domain.EpSaleOrderCancelItem;
import com.huigou.topsun.ep.order.domain.query.EpSaleOrderCancelQueryRequest;
import com.huigou.topsun.ep.order.repository.EpSaleOrderCancelItemRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:20
* @Description:
*/
@Service("epSaleOrderCancelItemApplication")
public class EpSaleOrderCancelItemApplicationImpl extends BaseApplication implements EpSaleOrderCancelItemApplication {
@Autowired
private EpSaleOrderCancelItemRepository epSaleOrderCancelItemRepository;
@Override
public void saveEpSaleOrderCancelItems(String epSaleOrderCancelId, List<EpSaleOrderCancelItem> epSaleOrderCancelItems) {
epSaleOrderCancelItems.forEach(epSaleOrderCancelItem -> {
epSaleOrderCancelItem.setEpSaleOrderCancelId(epSaleOrderCancelId);
epSaleOrderCancelItemRepository.save(epSaleOrderCancelItem);
});
}
@Override
public Map<String, Object> queryEpSaleOrderCancelItems(EpSaleOrderCancelQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getEpSaleOrderCancelId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "epSaleOrderCancelItems");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public void deleteByIds(List<String> ids) {
ids.forEach(id->{
epSaleOrderCancelItemRepository.delete(id);
});
}
@Override
public List<EpSaleOrderCancelItem> findByEpSaleOrderCancelId(String epSaleOrderCancelId) {
return epSaleOrderCancelItemRepository.findByEpSaleOrderCancelId(epSaleOrderCancelId);
}
}
package com.huigou.topsun.ep.order.controller;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.topsun.ep.order.application.EpSaleOrderCancelApplication;
import com.huigou.topsun.ep.order.domain.EpSaleOrderCancel;
import com.huigou.topsun.ep.order.domain.query.EpSaleOrderCancelQueryRequest;
import com.huigou.topsun.ep.order.domain.vo.EpSaleOrderCancelVo;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.ResponseBody;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:13
* @Description:
*/
@Controller
@ControllerMapping("/epSaleOrderCancel")
public class EpSaleOrderCancelController extends CommonController {
private final static Logger LOG = LoggerFactory.getLogger(EpSaleOrderCancelController.class);
@Override
protected String getPagePath() {
return "/biz/topsun/ep/epSaleOrder/";
}
@Resource
private EpSaleOrderCancelApplication epSaleOrderCancelApplication;
public String forwardEpSaleOrderCancelList(){
return forward("epSaleOrderCancelList");
}
public String slicedEpSaleOrderCancelList(){
SDO sdo = this.getSDO();
EpSaleOrderCancelQueryRequest queryRequest = sdo.toQueryRequest(EpSaleOrderCancelQueryRequest.class);
Map<String, Object> map = epSaleOrderCancelApplication.slicedEpSaleOrderCancelList(queryRequest);
return toResult(map);
}
public String forwardEpSaleOrderCancelDetail(){
this.putAttribute("processDefinitionKey", EpSaleOrderCancelApplication.PROCESS_DEFINITION_KEY);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this.putAttribute("procUnitId", "Apply");
EpSaleOrderCancel epSaleOrderCancel = new EpSaleOrderCancel();
epSaleOrderCancel.setStatusId(BizBillStatus.APPLYING.getId());
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
Operator operator = getOperator();
epSaleOrderCancel.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("epSaleOrderCancelDetail",epSaleOrderCancel);
}
public String showEpSaleOrderCancelDetail(){
SDO sdo = this.getSDO();
String id = sdo.getBizId();
EpSaleOrderCancel epSaleOrderCancel = epSaleOrderCancelApplication.findEpSaleOrderCancelById(id);
return forward("epSaleOrderCancelDetail",epSaleOrderCancel);
}
@SkipAuth
@RequestMapping( value = "/getEpSaleOrderCancel")
@ResponseBody
public HashMap<String, Object> getEpSaleOrderCancel(@RequestBody List<EpSaleOrderCancelVo> epSaleOrderCancelVos){
//SDO sdo = this.getSDO();
HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("Message_Status","S");
messageMap.put("Message_Text","成功");
LOG.info("EP销售订单取消/变更审批数据=={}",epSaleOrderCancelVos);
try {
this.epSaleOrderCancelApplication.saveEpSaleOrderCancelVo(epSaleOrderCancelVos);
}catch (RuntimeException e){
messageMap.put("Message_Status","E");
messageMap.put("Message_Text",e);
}
return messageMap;
}
}
package com.huigou.topsun.ep.order.controller;
import com.huigou.topsun.ep.order.application.EpSaleOrderCancelItemApplication;
import com.huigou.topsun.ep.order.domain.query.EpSaleOrderCancelQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:14
* @Description:
*/
@Controller
@ControllerMapping("/epSaleOrderCancelItem")
public class EpSaleOrderCancelItemController extends CommonController {
@Resource
private EpSaleOrderCancelItemApplication epSaleOrderCancelItemApplication;
public String queryEpSaleOrderCancelItems(){
SDO sdo = this.getSDO();
EpSaleOrderCancelQueryRequest queryRequest = sdo.toQueryRequest(EpSaleOrderCancelQueryRequest.class);
Map<String, Object> map = epSaleOrderCancelItemApplication.queryEpSaleOrderCancelItems(queryRequest);
return toResult(map);
}
public String deleteEpSaleOrderCancelItem(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
epSaleOrderCancelItemApplication.deleteByIds(ids);
return success();
}
}
package com.huigou.topsun.ep.order.domain;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Auther: xin.lu
* @Date: 2024/03/20/09:16
* @Description: EP销售订单取消/变更
*/
@Data
@Entity
@Table(name = "ep_sale_order_cancel")
public class EpSaleOrderCancel extends FlowBillAbstractEntity {
/**
* 订单类型
*/
@Column(name = "order_type")
private String orderType;
/**
* 订单类型描述
*/
@Column(name = "order_type_name")
private String orderTypeName;
/**
* 客户编码
*/
@Column(name = "customer_code")
private String customerCode;
/**
* 客户名称
*/
@Column(name = "customer_name")
private String customerName;
/**
* 产品类型
*/
@Column(name = "product_type")
private String productType;
/**
* 原订单是否取消
*/
@Column(name = "is_cancel")
private String isCancel;
/**
* 修改内容
*/
@Column(name = "update_context")
private String updateContext;
/**
* 客户协商结论
*/
@Column(name = "consult_conclusion")
private String consultConclusion;
/**
* 评审结论
*/
@Column(name = "review_conclusion")
private String reviewConclusion;
@Column(name = "code")
private String code;
@Column(name = "msg")
private String msg;
@Override
protected String getCodeRuleId() {
return "epSaleOrderCancel";
}
}
package com.huigou.topsun.ep.order.domain;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/17:21
* @Description: EP销售订单取消/变更明细
*/
@Data
@Entity
@Table(name = "ep_sale_order_cancel_item")
public class EpSaleOrderCancelItem extends AbstractEntity {
/**
* EP销售订单id
*/
@Column(name = "ep_sale_order_cancel_id")
private String epSaleOrderCancelId;
/**
* 销售单号
*/
@Column(name = "VBELN")
private String vbeln;
/**
* 销售凭证项目
*/
@Column(name = "POSNR")
private String posnr;
/**
* 物料编号
*/
@Column(name = "MATNR")
private String matnr;
/**
* 物料描述
*/
@Column(name = "MAKTX")
private String maktx;
/**
* 订单数量
*/
@Column(name = "KWMENG")
private BigDecimal kwmeng;
/**
* 销售单位
*/
@Column(name = "VRKME")
private String vrkme;
/**
* 生产单号
*/
@Column(name = "PRODUCE_CODE")
private String produceCode;
/**
* 工序
*/
@Column(name = "PROCESS")
private String process;
}
package com.huigou.topsun.ep.order.domain.query;
import com.huigou.data.domain.query.QueryAbstractRequest;
import lombok.Data;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:15
* @Description:
*/
@Data
public class EpSaleOrderCancelQueryRequest extends QueryAbstractRequest {
private String epSaleOrderCancelId;
}
package com.huigou.topsun.ep.order.domain.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/12/17:21
* @Description: EP销售订单明细
*/
@Data
public class EpSaleOrderCancelItemVo implements Serializable {
/**
* EP销售订单id
*/
private String epSaleOrderId;
/**
* 销售单号
*/
@JsonProperty("vbeln")
private String vbeln;
/**
* 销售凭证项目
*/
@JsonProperty("posnr")
private String posnr;
/**
* 物料编号
*/
@JsonProperty("matnr")
private String matnr;
/**
* 物料描述
*/
@JsonProperty("maktx")
private String maktx;
/**
* 订单数量
*/
@JsonProperty("kwmeng")
private BigDecimal kwmeng;
/**
* 销售单位
*/
@JsonProperty("vrkme")
private String vrkme;
/**
* 生产单号
*/
@JsonProperty("produceCode")
private String produceCode;
/**
* 工序
*/
@JsonProperty("process")
private String process;
}
package com.huigou.topsun.ep.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/03/12/19:15
* @Description:
*/
@Data
public class EpSaleOrderCancelVo implements Serializable {
/**
* 订单类型
*/
@JsonProperty("orderType")
private String orderType;
/**
* 订单类型描述
*/
@JsonProperty("orderTypeName")
private String orderTypeName;
/**
* 客户编码
*/
@JsonProperty("customerCode")
private String customerCode;
/**
* 客户名称
*/
@JsonProperty("customerName")
private String customerName;
/**
* 产品类型
*/
@JsonProperty("productType")
private String productType;
/**
* 原订单是否取消
*/
@JsonProperty("isCancel")
private String isCancel;
/**
* 修改内容
*/
@JsonProperty("updateContext")
private String updateContext;
/**
* 客户协商结论
*/
@JsonProperty("consultConclusion")
private String consultConclusion;
/**
* 评审结论
*/
@JsonProperty("reviewConclusion")
private String reviewConclusion;
@JsonProperty("epSaleOrderCancelItemVos")
private List<EpSaleOrderCancelItemVo> epSaleOrderCancelItemVos;
}
package com.huigou.topsun.ep.order.repository;
import com.huigou.topsun.ep.order.domain.EpSaleOrderCancelItem;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/03/20/9:59
* @Description:
*/
public interface EpSaleOrderCancelItemRepository extends JpaRepository<EpSaleOrderCancelItem,String> {
List<EpSaleOrderCancelItem> findByEpSaleOrderCancelId(String epSaleOrderCancelId);
}
package com.huigou.topsun.ep.order.repository;
import com.huigou.topsun.ep.order.domain.EpSaleOrderCancel;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @Auther: xin.lu
* @Date: 2024/03/20/9:58
* @Description:
*/
public interface EpSaleOrderCancelRepository extends JpaRepository<EpSaleOrderCancel,String> {
}
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="epSaleOrderCancelProc" name="销售订单取消/变更申请" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" delegateExpression="#{epSaleOrderCancelApplication}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="#{epSaleOrderCancelApplication}"></activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="Apply" name="销售订单取消/变更申请" activiti:formKey="epSaleOrderCancel/showEpSaleOrderCancelDetail.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{epSaleOrderCancelApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{epSaleOrderCancelApplication}"></activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Approve" name="销售订单取消/变更审批" activiti:assignee="${assignee} " activiti:formKey="epSaleOrderCancel/showEpSaleOrderCancelDetail.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{epSaleOrderCancelApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{epSaleOrderCancelApplication}"></activiti:taskListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="handlerList" activiti:elementVariable="assignee">
<completionCondition>${chiefApprovePassed}</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="Apply"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="Apply" targetRef="Approve"></sequenceFlow>
<exclusiveGateway id="ApproveFinished" name="审批结束"></exclusiveGateway>
<sequenceFlow id="flow3" name="审批通过" sourceRef="ApprovePassed" targetRef="ApproveFinished">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${approvePassed}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow4" name="审批结束" sourceRef="ApproveFinished" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${approveFinished}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow5" name="审批未结束" sourceRef="ApproveFinished" targetRef="Approve">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approveFinished}]]></conditionExpression>
</sequenceFlow>
<exclusiveGateway id="ApprovePassed" name="审批通过"></exclusiveGateway>
<sequenceFlow id="flow6" sourceRef="Approve" targetRef="ApprovePassed"></sequenceFlow>
<sequenceFlow id="flow9" name="审批未通过" sourceRef="ApprovePassed" targetRef="Apply">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approvePassed}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_epSaleOrderCancelProc">
<bpmndi:BPMNPlane bpmnElement="epSaleOrderCancelProc" id="BPMNPlane_epSaleOrderCancelProc">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="355.0" y="50.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="355.0" y="550.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Apply" id="BPMNShape_Apply">
<omgdc:Bounds height="55.0" width="161.0" x="292.0" y="140.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Approve" id="BPMNShape_Approve">
<omgdc:Bounds height="55.0" width="161.0" x="292.0" y="240.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ApproveFinished" id="BPMNShape_ApproveFinished">
<omgdc:Bounds height="40.0" width="40.0" x="352.0" y="440.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ApprovePassed" id="BPMNShape_ApprovePassed">
<omgdc:Bounds height="40.0" width="40.0" x="352.0" y="349.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="372.0" y="85.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="140.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="372.0" y="195.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="240.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
<omgdi:waypoint x="372.0" y="389.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="440.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="48.0" x="320.0" y="396.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
<omgdi:waypoint x="372.0" y="480.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="550.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="48.0" x="382.0" y="489.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
<omgdi:waypoint x="392.0" y="460.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="459.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="317.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="267.0"></omgdi:waypoint>
<omgdi:waypoint x="489.0" y="267.0"></omgdi:waypoint>
<omgdi:waypoint x="453.0" y="267.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="60.0" x="459.0" y="411.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
<omgdi:waypoint x="372.0" y="295.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="349.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
<omgdi:waypoint x="352.0" y="369.0"></omgdi:waypoint>
<omgdi:waypoint x="231.0" y="369.0"></omgdi:waypoint>
<omgdi:waypoint x="231.0" y="167.0"></omgdi:waypoint>
<omgdi:waypoint x="292.0" y="167.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="60.0" x="257.0" y="376.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query name="epSaleOrderCancel" label="EP销售订单取消/变更" table="ep_sale_order_cancel">
<sql-query>
select t.* from ep_sale_order_cancel t
</sql-query>
<condition column="bill_code" name="billCode" type="java.lang.String" symbol="like" alias="t"/>
</query>
<query name="epSaleOrderCancelItems" label="EP销售订单取消/变更明细" table="ep_sale_order_cancel_item">
<sql-query>
select t.* from ep_sale_order_cancel_item t
</sql-query>
<condition column="ep_sale_order_cancel_id" name="epSaleOrderCancelId" type="java.lang.String" symbol="=" alias="t"/>
</query>
</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