Commit 60a4d0de authored by 鲁鑫's avatar 鲁鑫

质量信息记录SAP接口

parent f0db1624
var itemGridManager = null,fillinDate="";
$(function () {
initItemGrid();
bindEvent();
});
function bindEvent() {
fillinDate = $("#fillinDate").val();
}
function initItemGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function(){
UICtrl.addGridRow(itemGridManager);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#maingrid');
DataUtil.delSelectedRows({
action: 'sapQualityInfoRecordItem/deleteSapQualityInfoRecordItem.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
reloadGrid();
}
});
},
});
itemGridManager = UICtrl.grid('#maingrid', {
columns: getGridColumns(),
dataAction: 'server',
url: web_app.name + '/sapQualityInfoRecordItem/querySapQualityInfoRecordItems.ajax',
parms:{sapQualityInfoRecordId:Public.isNotBlank(getId())?getId():$("#tempId").val()},
height: '98%',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions,
onBeforeEdit: function (editParma) {
// if (Public.isNotBlank(editParma.record.matnr) && editParma.column.name=='matklName'){
// return false;
// }
// if (Public.isNotBlank(editParma.record.matklName) && editParma.column.name=='matnr'){
// return false;
// }
//
// return true;
},
}
);
UICtrl.setSearchAreaToggle(itemGridManager);
}
function getGridColumns() {
var columns = [];
columns = [
{display: "质量信息记录号", name: "zqinfno", width: "300", align: "left", type: "string",
//editor: {required: false, type: "text"}
},
{display: "工厂", name: "werksName", width: "200", align: "left", type: "string",
editor: {
required: true, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {fieldName: "WERKS"}
},
back: {
WERKS: "werks",
NAME1: "werksName",
}
},
}
},
{display: "供应商", name: "lieferant", width: "200", align: "left", type: "string",
editor: {required: true, type: "text"}
// editor: {
// required: true, type: "select",
// data: {
// type: 'system',
// name: "dictionary",
// getParam: function (item) {
// return {fieldName: "LIFNR"}
// },
// back: {
// LIFNR: "lifnr",
// NAME1: "lifnrName",
// }
// },
// }
},
{display: "物料编码", name: "matnr", width: "200", align: "left", type: "string",
editor: {
required: true, type: "select",
data: {
type: 'system',
name: "sapMaterialSelect",
getParam: function (item) {
return {
filterValue:item.werks
}
},
back: {
MATNR: "matnr",
MAKTX: "maktx",
MATKL: "matkl",
WGBEZ: "matklName"
}
},
}
},
{display: "物料描述", name: "maktx", width: "300", align: "left", type: "string",
editor: {required: true, type: "text"}
},
{display: "物料组", name: "matklName", width: "200", align: "left", type: "string",
editor: {
required: true, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {
fieldName: "MATKL"
}
},
back: {
MATKL: "matkl",
WGBEZ: "matklName",
}
},
}
},
{display: "合格准入验证节点1", name: "zqavfn1", width: "200", align: "left", type: "string",
editor: {required: false, type: "text"}
},
{display: "zvfnc1", name: "zvfnc1", width: "100", align: "left", type: "string",
editor: {type: 'text', }
},
{display: "合格准入验证节点2", name: "zqavfn2", width: "200", align: "left", type: "string",
editor: {required: false, type: "text"}
},
{display: "节点2结论", name: "zvfnc2", width: "100", align: "left", type: "string",
editor: {required: false, type: "text"}
},
{display: "合格准入验证节点3", name: "zqavfn3", width: "200", align: "left", type: "string",
editor: {required: false, type: "text"}
},
{display: "节点3结论", name: "zvfnc3", width: "100", align: "left", type: "string",
editor: {required: false, type: "text"}
},
{display: "合格准入验证节点4", name: "zqavfn4", width: "200", align: "left", type: "string",
editor: {type: 'text' }
},
{display: "节点4结论", name: "zvfnc4", width: "100", align: "left", type: "string",
editor: {type: 'text'}
},
{display: "打样单号码", name: "zspaufnr", width: "200", align: "left", type: "string",
editor: {type: "text", required: false,}
},
{display: "GRSRQ", name: "grsrq", width: "100", align: "left", type: "string",
editor: {type: 'text'},
},
{display: "GRS证书号", name: "grscertnr", width: "200", align: "left", type: "string",
editor: {type: 'text'},
},
{display: "GRS证书到期日", name: "grscertdatai", width: "150", align: "left", type: "date",
editor: {type: 'date'}
},
{display: "FSC认证要求", name: "fscrq", width: "200", align: "left", type: "string",
editor: {required: false, type: "text"}
},
{display: "FSC证书号", name: "fsccertnr", width: "200", align: "left", type: "string",
editor: {type: "text"}
},
{display: "FSC证书到期日", name: "fsccertdatai", width: "150", minWidth: 60, type: "date", align: "center",
editor: {type: "date"}
},
{display: "合格准入状态", name: "zqafst", width: "100", minWidth: 60, type: "string", align: "center",
editor: {type: "text"}
},
{display: "合格有效期从", name: "zvdatab", width: "150", minWidth: 60, type: "date", align: "center",
editor: {type: 'date'},
},
{display: "合格有效期到", name: "zvdatai", width: "150", minWidth: 60, type: "date", align: "center",
editor: {type: "date"}
},
{display: "备注文本", name: "ztext", width: "120", align: "left", type: "string",
editor: {type: 'text'}
},
]
return columns;
}
//获取数据保存的参数
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;
}
if (Public.isNotBlank($("#tempId").val())){
datas.forEach(data=>{
data.id = "";
data.sapQualityInfoRecordId=""
data.zqinfno=""
data.type=""
data.message=""
})
}
extendedData.items = Public.encodeJSONURI(datas);
}
return extendedData;
}
function getId() {
return $('#id').val();
}
function setId(value) {
$("#id").val(value);
var _grid=UICtrl.getGridManager('#maingrid');
_grid.options.parms.sapQualityInfoRecordId = value;
}
function reloadGrid() {
itemGridManager.loadData();
}
function getGridData(){
var _grid = UICtrl.getGridManager('#maingrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
return datas;
}
<%--采购申请--%>
<%@ 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,dateTime,combox,attachment,commonTree,comboDialog"/>
<x:script src="/biz/topsun/sap/qualityInfoRecord/qualityInfoRecordDetail.js"/>
</head>
<body>
<div class="container-fluid">
<x:billTitle title="质量信息记录维护申请" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="billCode"/>
<x:hidden name="fillinDate"/>
<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="statusId"/>
<x:hidden name="tempId"/>
<div class="hg-form-cols">
<div class="hg-form-row">
</div>
</div>
<div id="maingrid"></div>
</form>
</div>
</body>
\ No newline at end of file
var qualityInfoRecordGridManager = null, refreshFlag = false, _roleId = null, qualitySelectedList = [];
$(document).ready(function () {
initUI();
initQualityListGrid();
}
);
function initUI() {
UICtrl.initDefaultLayout();
}
function initQualityListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: addHandler,
copyHandler:{
id: 'copyHandler', text: "复制", img:'fa-clipboard', click: function(){
copyQualityInfoRecord();
}
}
});
qualityInfoRecordGridManager = UICtrl.grid('#qualityInfoRecordGrid', {
columns: [
{display: "状态", name: "statusTextView", width: "100", align: "center", type: "string"}
, {display: "id", name: "id", width: "140", align: "center", type: "string", hide: true}
, {display: "质量信息记录号", name: "zqinfno", width: "300", minWidth: 60, type: "string", align: "center"}
, {
display: "工厂", name: "werksName", width: "200", align: "center", type: "string",
},
{
display: "供应商", name: "lieferant", width: "200", align: "center", type: "string",
},
{
display: "物料编码", name: "matnr", width: "200", align: "center", type: "string",
},
{
display: "物料描述", name: "maktx", width: "300", align: "center", type: "string",
},
{
display: "物料组", name: "matklName", width: "200", align: "center", type: "string",
},
{
display: "合格准入验证节点1", name: "zqavfn1", width: "200", align: "center", type: "string",
},
{
display: "zvfnc1", name: "zvfnc1", width: "100", align: "center", type: "string",
},
{
display: "合格准入验证节点2", name: "zqavfn2", width: "200", align: "center", type: "string",
},
{
display: "节点2结论", name: "zvfnc2", width: "100", align: "center", type: "string",
},
{
display: "合格准入验证节点3", name: "zqavfn3", width: "200", align: "center", type: "string",
},
{
display: "节点3结论", name: "zvfnc3", width: "100", align: "center", type: "string",
},
{
display: "合格准入验证节点4", name: "zqavfn4", width: "200", align: "center", type: "string",
},
{
display: "节点4结论", name: "zvfnc4", width: "100", align: "center", type: "string",
},
{
display: "打样单号码", name: "zspaufnr", width: "200", align: "center", type: "string",
},
{
display: "GRSRQ", name: "grsrq", width: "100", align: "center", type: "string",
},
{
display: "GRS证书号", name: "grscertnr", width: "200", align: "center", type: "string",
},
{
display: "GRS证书到期日", name: "grscertdatai", width: "150", align: "center", type: "date",
},
{
display: "FSC认证要求", name: "fscrq", width: "200", align: "center", type: "string",
},
{
display: "FSC证书号", name: "fsccertnr", width: "200", align: "center", type: "string",
},
{
display: "FSC证书到期日", name: "fsccertdatai", width: "150", minWidth: 60, type: "date", align: "center"
},
{
display: "合格准入状态", name: "zqafst", width: "100", minWidth: 60, type: "string", align: "center",
},
{
display: "合格有效期从", name: "zvdatab", width: "150", minWidth: 60, type: "date", align: "center",
},
{
display: "合格有效期到", name: "zvdatai", width: "150", minWidth: 60, type: "date", align: "center",
},
{
display: "备注文本", name: "ztext", width: "120", align: "center", type: "string",
}
, {display: "消息类型", name: "typeTextView", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "消息文本", name: "message", width: 300, minWidth: 60, type: "string", align: "center"}
, {display: "申请人", name: "personMemberName", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "申请部门", name: "deptName", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "申请日期", name: "fillinDate", width: 150, minWidth: 60, type: "date", align: "center"}
],
dataAction: 'server',
url: web_app.name + '/sapQualityInfoRecord/slicedSapQualityInfoRecordList.ajax?',
//parms: {requireItemId: $("#prepareItemId").val()},
toolbar: toolbarOptions,
width: '99.8%',
height: '100%',
pageSize: 100,
heightDiff: -4,
//sortName: 'lastModifiedDate',
//sortOrder: 'desc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: false,
fixedCellHeight: true,
selectRowButtonOnly: true,
enableObjectBag: true,
onSuccess: function (data) {
if (data.error) {
Public.tip(data.error);
}
}
,
onDblClickRow: function (data, rowindex, rowobj) {
viewHandler(data.sapQualityInfoRecordId);
},
onAfterShowData: function (currentData) {
}
}
);
UICtrl.setSearchAreaToggle(qualityInfoRecordGridManager);
}
/**
* 查看采购申请详情
* @param id 采购信息记录申请id
* @returns {boolean}
*/
function viewHandler(id) {
if (!id) {
var row = DataUtil.getSelectedRow(qualityInfoRecordGridManager);
if (!row) {
return row;
}
id = row.id;
}
UICtrl.addTabItem({
tabid: 'viewQualityInfoRecord' + id,
text: '查看采购信息记录',
url: web_app.name + '/sapQualityInfoRecord/showSapQualityInfoRecordDetail.job?isReadOnly=true&bizId=' + id
});
}
function updateHandler() {
var row = DataUtil.getSelectedRow(qualityInfoRecordGridManager);
if (!row) {
return;
}
UICtrl.addTabItem({
tabid: 'updateQualityInfoRecord' + row.id,
text: '修改采购信息记录',
url: web_app.name + '/sapQualityInfoRecord/showSapQualityInfoRecordDetail.job?bizId=' + row.id
});
}
function addHandler() {
UICtrl.addTabItem({
tabid: 'addQualityInfoRecord',
text: '新增采购信息记录',
url: web_app.name + '/sapQualityInfoRecord/forwardSapQualityInfoRecordDetail.job'
});
}
function deleteHandler() {
var rows = DataUtil.getObjectBagData("qualityInfoRecordGrid");
if (!rows || rows.length < 1) {
Public.tip('common.warning.nochoose');
return;
}
var ids = [];
for (var i = 0; i < rows.length; i++) {
var row = rows[i];
if (row.status != 0) {
Public.errorTip('只能删除草稿状态的数据!');
return;
}
ids.push(row.id);
}
if (!ids) {
return;
}
Public.ajax(web_app.name + '/sapQualityInfoRecord/deleteByIds.ajax',
{ids: $.toJSON(ids)},
function () {
reloadQualityGrid();
});
}
function reloadQualityGrid() {
var params = $("#queryMainForm").formToJSON();
UICtrl.gridSearch(qualityInfoRecordGridManager, params);
}
function query(obj) {
var param = $(obj).formToJSON();
UICtrl.gridSearch(qualityInfoRecordGridManager, param);
}
function resetForm(obj) {
$(obj).formClean();
}
function copyQualityInfoRecord(){
var row = DataUtil.getSelectedRow(qualityInfoRecordGridManager);
if (!row) {
return;
}
UICtrl.addTabItem({
tabid: 'copyQualityInfoRecord' + row.sapQualityInfoRecordId,
text: '复制采购信息记录',
url: web_app.name + '/sapQualityInfoRecord/copyQualityInfoRecord.job?id=' + row.sapQualityInfoRecordId
});
}
<%@ 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,dateTime,combox,attachment,commonTree,comboDialog"/>
<script src='<c:url value="/lib/jquery/jquery.comboDialog.js"/>' type="text/javascript"></script>
<script src='<c:url value="/lib/jquery/jquery.commonTree.js"/>' type="text/javascript"></script>
<script src='<c:url value="/lib/jquery/jquery.flexField.js"/>' type="text/javascript"></script>
<script src='<c:url value="/biz/topsun/sap/qualityInfoRecord/qualityInfoRecordList.js"/>' type="text/javascript"></script>
</head>
<body>
<div class="container-fluid">
<div id="layout">
<div position="center" title="">
<x:title title="搜索" hideTable="queryMainForm"/>
<form class="hg-form ui-show" method="post" action="" id="queryMainForm">
<div class="hg-form-row">
<x:inputC name="billCode" label="质量信息记录编号" labelCol="1"/>
</div>
<x:searchButtons/>
</form>
<x:title title="质量记录维护明细" hideTable="#qualityInfoRecordGrid" name="list"/>
<div id="qualityInfoRecordGrid" style="margin:2px;"></div>
</div>
</div>
</div>
</body>
</html>
package com.huigou.topsun.sap.qualityInfoRecord.application;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecord;
import com.huigou.topsun.sap.qualityInfoRecord.domain.query.SapQualityInfoRecordQueryRequest;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:39
* @Description:
*/
public interface SapQualityInfoRecordApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/sapQualityInfoRecord/sapQualityInfoRecord.xml";
String PROCESS_DEFINITION_KEY = "sapQualityInfoRecordProc";
Map<String,Object> slicedSapQualityInfoRecordList(SapQualityInfoRecordQueryRequest queryRequest);
SapQualityInfoRecord loadSapQualityInfoRecord(String id);
}
package com.huigou.topsun.sap.qualityInfoRecord.application;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecordItem;
import com.huigou.topsun.sap.qualityInfoRecord.domain.query.SapQualityInfoRecordQueryRequest;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:40
* @Description:
*/
public interface SapQualityInfoRecordItemApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/sapQualityInfoRecord/sapQualityInfoRecordItem.xml";
void saveSapQualityInfoRecordItem(String sapPurchaseInfoRecordId, List<SapQualityInfoRecordItem> sapQualityInfoRecordItems);
Map<String,Object> querySapQualityInfoRecordItem(SapQualityInfoRecordQueryRequest queryRequest);
void deleteByIds(List<String> ids);
List<SapQualityInfoRecordItem> findBySapQualityInfoRecordId(String sapQualityInfoRecordId);
void save(SapQualityInfoRecordItem sapQualityInfoRecordItem);
}
package com.huigou.topsun.sap.qualityInfoRecord.application.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.common.HttpClient;
import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.qualityInfoRecord.application.SapQualityInfoRecordApplication;
import com.huigou.topsun.sap.qualityInfoRecord.application.SapQualityInfoRecordItemApplication;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecord;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecordItem;
import com.huigou.topsun.sap.qualityInfoRecord.domain.query.SapQualityInfoRecordQueryRequest;
import com.huigou.topsun.sap.qualityInfoRecord.domain.vo.SapQualityInfoRecordItemVo;
import com.huigou.topsun.sap.qualityInfoRecord.repository.SapQualityInfoRecordRepository;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:40
* @Description:
*/
@Service("sapQualityInfoRecordApplication")
public class SapQualityInfoRecordApplicationImpl extends FlowBroker implements SapQualityInfoRecordApplication {
@Autowired
private SapQualityInfoRecordRepository sapQualityInfoRecordRepository;
@Autowired
private SapQualityInfoRecordItemApplication sapQualityInfoRecordItemApplication;
@Resource
private HttpClient httpClient;
@Override
protected String saveBizAndApprovalData() {
super.saveBizAndApprovalData();
SapQualityInfoRecord sapQualityInfoRecord = getBizEntity(SapQualityInfoRecord.class);
if (sapQualityInfoRecord.isNew()) {
sapQualityInfoRecord.setStatusId(BizBillStatus.APPLYING.getId());
} else {
sapQualityInfoRecord = (SapQualityInfoRecord) commonDomainService.loadAndFillinProperties(sapQualityInfoRecord);
}
sapQualityInfoRecord = sapQualityInfoRecordRepository.save(sapQualityInfoRecord);
List<SapQualityInfoRecordItem> sapQualityInfoRecordItems = getBizEntities(SapQualityInfoRecordItem.class, "items");
sapQualityInfoRecordItemApplication.saveSapQualityInfoRecordItem(sapQualityInfoRecord.getId(), sapQualityInfoRecordItems);
return sapQualityInfoRecord.getId();
}
@Override
protected Map<String, Object> getProcessBizParams(String bizId) {
// 返回业务数据给流程实例,
return ClassHelper.toMap(sapQualityInfoRecordRepository.getOne(bizId));
}
@Override
protected void onEnd(DelegateExecution delegateExecution) {
super.onEnd(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED;
SapQualityInfoRecord sapQualityInfoRecord = sapQualityInfoRecordRepository.findOne(bizId);
sapQualityInfoRecord.setStatusId(status.getId());
sapQualityInfoRecordRepository.save(sapQualityInfoRecord);
this.getSapPurchaseInfoRecordItemVo(sapQualityInfoRecord);
}
public void getSapPurchaseInfoRecordItemVo(SapQualityInfoRecord sapQualityInfoRecord){
List<SapQualityInfoRecordItem> purchaseInfoRecordItemList = sapQualityInfoRecordItemApplication.findBySapQualityInfoRecordId(sapQualityInfoRecord.getId());
List<SapQualityInfoRecordItemVo> sapQualityInfoRecordItemVoList = new ArrayList<>();
purchaseInfoRecordItemList.forEach(sapQualityInfoRecordItem -> {
SapQualityInfoRecordItemVo sapQualityInfoRecordItemVo = new SapQualityInfoRecordItemVo();
BeanUtil.copyProperties(sapQualityInfoRecordItem, sapQualityInfoRecordItemVo);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
if (sapQualityInfoRecordItem.getGrscertdatai() !=null){
String datab = dateFormat.format(sapQualityInfoRecordItem.getGrscertdatai());
sapQualityInfoRecordItemVo.setGrscertdatai(datab);
}
if (sapQualityInfoRecordItem.getFsccertdatai() != null){
String datbi = dateFormat.format(sapQualityInfoRecordItem.getFsccertdatai());
sapQualityInfoRecordItemVo.setFsccertdatai(datbi);
}
if (sapQualityInfoRecordItem.getZvdatab() != null){
String zvdatab = dateFormat.format(sapQualityInfoRecordItem.getZvdatab());
sapQualityInfoRecordItemVo.setZvdatab(zvdatab);
}
if (sapQualityInfoRecordItem.getZvdatai() != null){
String zvdatai = dateFormat.format(sapQualityInfoRecordItem.getZvdatai());
sapQualityInfoRecordItemVo.setZvdatai(zvdatai);
}
if (sapQualityInfoRecord.getFillinDate() != null){
String fillinDate = dateFormat.format(sapQualityInfoRecord.getFillinDate());
sapQualityInfoRecordItemVo.setErstelldat(fillinDate);
}
sapQualityInfoRecordItemVo.setErsteller(sapQualityInfoRecord.getPersonMemberName());
sapQualityInfoRecordItemVoList.add(sapQualityInfoRecordItemVo);
});
try {
String url = SystemCache.getParameter("sap.QualityInfoRecord.url", String.class);
String execute = httpClient.execute(sapQualityInfoRecordItemVoList, url);
List<SapResult> resultList = JSONObject.parseArray(execute, SapResult.class);
for (SapResult sapResult : resultList) {
if (!"S".equals(sapResult.getTYPE())){
throw new RuntimeException("数据传输失败,"+ sapResult.getMESSAGE());
}
for (SapQualityInfoRecordItem sapQualityInfoRecordItem : purchaseInfoRecordItemList) {
if (sapResult.getMESSAGE_V1().equals(sapQualityInfoRecordItem.getZqinfno())){
sapQualityInfoRecordItem.setType(sapResult.getTYPE());
sapQualityInfoRecordItem.setMessage(sapResult.getMESSAGE());
sapQualityInfoRecordItemApplication.save(sapQualityInfoRecordItem);
}
}
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
protected void onAbortProcessInstance(DelegateExecution delegateExecution) {
super.onAbortProcessInstance(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
SapQualityInfoRecord sapQualityInfoRecord = sapQualityInfoRecordRepository.findOne(bizId);
sapQualityInfoRecord.setStatusId(BizBillStatus.ABORTED.getId());
sapQualityInfoRecordRepository.save(sapQualityInfoRecord);
}
/**
* @param delegateTask
* @param destActivityId 回退到的目标节点id
*/
@Override
protected void onBack(DelegateTask delegateTask, String destActivityId) {
super.onBack(delegateTask, destActivityId);
if ("Apply".equalsIgnoreCase(destActivityId)) {
String bizId = delegateTask.getExecution().getProcessBusinessKey();
SapQualityInfoRecord sapQualityInfoRecord = sapQualityInfoRecordRepository.findOne(bizId);
sapQualityInfoRecord.setStatusId(BizBillStatus.APPLYING.getId());
sapQualityInfoRecordRepository.save(sapQualityInfoRecord);
}
}
@Override
public Map<String, Object> slicedSapQualityInfoRecordList(SapQualityInfoRecordQueryRequest queryRequest) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "sapQualityInfoRecordList");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
queryModel.putDictionary("status", BizBillStatus.getMap());
return this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
@Override
public SapQualityInfoRecord loadSapQualityInfoRecord(String id) {
return sapQualityInfoRecordRepository.findOne(id);
}
}
package com.huigou.topsun.sap.qualityInfoRecord.application.impl;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.qualityInfoRecord.application.SapQualityInfoRecordItemApplication;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecordItem;
import com.huigou.topsun.sap.qualityInfoRecord.domain.query.SapQualityInfoRecordQueryRequest;
import com.huigou.topsun.sap.qualityInfoRecord.repository.SapQualityInfoRecordItemRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.uasp.bmp.fn.CodeGenerator;
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/02/28/15:40
* @Description:
*/
@Service("sapQualityInfoRecordItemApplication")
public class SapQualityInfoRecordItemApplicationImpl extends BaseApplication implements SapQualityInfoRecordItemApplication {
@Autowired
private SapQualityInfoRecordItemRepository sapQualityInfoRecordItemRepository;
@Autowired
private CodeGenerator codeGenerator;
@Override
public void saveSapQualityInfoRecordItem(String sapQualityInfoRecordId, List<SapQualityInfoRecordItem> sapQualityInfoRecordItems) {
sapQualityInfoRecordItems.forEach(sapQualityInfoRecordItem -> {
sapQualityInfoRecordItem.setSapQualityInfoRecordId(sapQualityInfoRecordId);
if (StringUtil.isBlank(sapQualityInfoRecordItem.getZqinfno())){
String nextCode = codeGenerator.getNextCode("zqinfno");
String zqinfno = sapQualityInfoRecordItem.getWerks() + "-" + nextCode.replace("-0", "-00");
sapQualityInfoRecordItem.setZqinfno(zqinfno);
}
sapQualityInfoRecordItemRepository.save(sapQualityInfoRecordItem);
});
}
@Override
public Map<String, Object> querySapQualityInfoRecordItem(SapQualityInfoRecordQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getSapQualityInfoRecordId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "sapQualityInfoRecordItems");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public void deleteByIds(List<String> ids) {
ids.forEach(id->{
sapQualityInfoRecordItemRepository.delete(id);
});
}
@Override
public List<SapQualityInfoRecordItem> findBySapQualityInfoRecordId(String sapQualityInfoRecordId) {
return sapQualityInfoRecordItemRepository.findBySapQualityInfoRecordId(sapQualityInfoRecordId);
}
@Override
public void save(SapQualityInfoRecordItem sapQualityInfoRecordItem) {
sapQualityInfoRecordItemRepository.save(sapQualityInfoRecordItem);
}
}
package com.huigou.topsun.sap.qualityInfoRecord.controller;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.topsun.sap.qualityInfoRecord.application.SapQualityInfoRecordApplication;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecord;
import com.huigou.topsun.sap.qualityInfoRecord.domain.query.SapQualityInfoRecordQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:40
* @Description:
*/
@Controller
@ControllerMapping("/sapQualityInfoRecord")
public class SapQualityInfoRecordController extends CommonController {
@Override
protected String getPagePath() {
return "/biz/topsun/sap/qualityInfoRecord/";
}
@Resource
private SapQualityInfoRecordApplication sapQualityInfoRecordApplication;
public String forwardSapQualityInfoRecordList(){
return forward("qualityInfoRecordList");
}
public String slicedSapQualityInfoRecordList(){
SDO sdo = this.getSDO();
SapQualityInfoRecordQueryRequest queryRequest = sdo.toQueryRequest(SapQualityInfoRecordQueryRequest.class);
Map<String, Object> map = sapQualityInfoRecordApplication.slicedSapQualityInfoRecordList(queryRequest);
return toResult(map);
}
public String forwardSapQualityInfoRecordDetail(){
this.putAttribute("processDefinitionKey", SapQualityInfoRecordApplication.PROCESS_DEFINITION_KEY);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this.putAttribute("procUnitId", "Apply");
SapQualityInfoRecord sapQualityInfoRecord = new SapQualityInfoRecord();
sapQualityInfoRecord.setStatusId(BizBillStatus.APPLYING.getId());
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
Operator operator = getOperator();
sapQualityInfoRecord.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("qualityInfoRecordDetail", sapQualityInfoRecord);
}
public String showSapQualityInfoRecordDetail(){
SDO sdo = this.getSDO();
String id = sdo.getBizId();
SapQualityInfoRecord sapQualityInfoRecord = sapQualityInfoRecordApplication.loadSapQualityInfoRecord(id);
return forward("qualityInfoRecordDetail", sapQualityInfoRecord);
}
public String copyQualityInfoRecord(){
this.putAttribute("processDefinitionKey", SapQualityInfoRecordApplication.PROCESS_DEFINITION_KEY);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this.putAttribute("procUnitId", "Apply");
SDO sdo = this.getSDO();
String id = sdo.getId();
SapQualityInfoRecord sapQualityInfoRecord = sapQualityInfoRecordApplication.loadSapQualityInfoRecord(id);
sapQualityInfoRecord.setTempId(sapQualityInfoRecord.getId());
sapQualityInfoRecord.setId(null);
sapQualityInfoRecord.setStatusId(BizBillStatus.APPLYING.getId());
Operator operator = getOperator();
sapQualityInfoRecord.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("qualityInfoRecordDetail", sapQualityInfoRecord);
}
}
package com.huigou.topsun.sap.qualityInfoRecord.controller;
import com.huigou.topsun.sap.qualityInfoRecord.application.SapQualityInfoRecordItemApplication;
import com.huigou.topsun.sap.qualityInfoRecord.domain.query.SapQualityInfoRecordQueryRequest;
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/02/28/15:40
* @Description:
*/
@Controller
@ControllerMapping("/sapQualityInfoRecordItem")
public class SapQualityInfoRecordItemController extends CommonController {
@Resource
private SapQualityInfoRecordItemApplication sapQualityInfoRecordItemApplication;
public String querySapQualityInfoRecordItems(){
SDO sdo = this.getSDO();
SapQualityInfoRecordQueryRequest queryRequest = sdo.toQueryRequest(SapQualityInfoRecordQueryRequest.class);
Map<String, Object> map = sapQualityInfoRecordItemApplication.querySapQualityInfoRecordItem(queryRequest);
return toResult(map);
}
public String deleteSapQualityInfoRecordItem(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
sapQualityInfoRecordItemApplication.deleteByIds(ids);
return success();
}
}
package com.huigou.topsun.sap.qualityInfoRecord.domain;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:35
* @Description:
*/
@Table(name="sap_quality_info_record")
@Entity
@Data
public class SapQualityInfoRecord extends FlowBillAbstractEntity {
@Transient
private String tempId;
@Override
protected String getCodeRuleId() {
return "qualityInfoRecord";
}
}
package com.huigou.topsun.sap.qualityInfoRecord.domain;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.*;
import java.util.Date;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:35
* @Description:
*/
@Table(name="sap_quality_info_record_item")
@Entity
@Data
public class SapQualityInfoRecordItem extends AbstractEntity {
/**
* 质量信息记录id
*/
@Column(name = "sap_quality_info_record_id")
private String sapQualityInfoRecordId;
/**
* 质量信息记录号
*/
@Column(name = "ZQINFNO")
private String zqinfno;
/**
* 物料编码
*/
@Column(name = "MATNR")
private String matnr;
/**
* 物料描述
*/
@Column(name = "MAKTX")
private String maktx;
/**
* 物料组
*/
@Column(name = "MATKL")
private String matkl;
/**
* 物料组
*/
@Column(name = "MATKL_NAME")
private String matklName;
/**
* 工厂
*/
@Column(name = "WERKS")
private String werks;
/**
* 工厂
*/
@Column(name = "WERKS_NAME")
private String werksName;
/**
* 供应商
*/
@Column(name = "LIEFERANT")
private String lieferant;
/**
* 供应商
*/
@Column(name = "LIFNR_NAME")
private String lifnrName;
/**
* 合格准入验证节点1
*/
@Column(name = "ZQAVFN1")
private String zqavfn1;
/**
* 节点1结论
*/
@Column(name = "ZVFNC1")
private String zvfnc1;
/**
* 合格准入验证节点2
*/
@Column(name = "ZQAVFN2")
private String zqavfn2;
/**
* 节点2结论
*/
@Column(name = "ZVFNC2")
private String zvfnc2;
/**
* 合格准入验证节点3
*/
@Column(name = "ZQAVFN3")
private String zqavfn3;
/**
* 节点3结论
*/
@Column(name = "ZVFNC3")
private String zvfnc3;
/**
* 合格准入验证节点4
*/
@Column(name = "ZQAVFN4")
private String zqavfn4;
/**
* 节点4结论
*/
@Column(name = "ZVFNC4")
private String zvfnc4;
/**
* 打样单号码
*/
@Column(name = "ZSPAUFNR")
private String zspaufnr;
/**
* GRSRQ
*/
@Column(name = "GRSRQ")
private String grsrq;
/**
* GRS证书号
*/
@Column(name = "GRSCERTNR")
private String grscertnr;
/**
* GRS证书到期日
*/
@Column(name = "GRSCERTDATAI")
private Date grscertdatai;
/**
* FSC认证要求
*/
@Column(name = "FSCRQ")
private String fscrq;
/**
* FSC证书号
*/
@Column(name = "FSCCERTNR")
private String fsccertnr;
/**
* FSC证书到期日
*/
@Column(name = "FSCCERTDATAI")
private Date fsccertdatai;
/**
* 合格准入状态
*/
@Column(name = "ZQAFST")
private String zqafst;
/**
* 合格有效期从
*/
@Column(name = "ZVDATAB")
private Date zvdatab;
/**
* 合格有效期到
*/
@Column(name = "ZVDATAI")
private Date zvdatai;
/**
* 备注文本
*/
@Column(name = "ZTEXT")
private String ztext;
/**
* 消息类型
*/
@Column(name = "TYPE")
private String type;
/**
* 消息文本
*/
@Column(name = "MESSAGE")
private String message;
}
package com.huigou.topsun.sap.qualityInfoRecord.domain.query;
import com.huigou.data.domain.query.QueryAbstractRequest;
import lombok.Data;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/18:08
* @Description:
*/
@Data
public class SapQualityInfoRecordQueryRequest extends QueryAbstractRequest {
private String sapQualityInfoRecordId;
private String billCode;
}
package com.huigou.topsun.sap.qualityInfoRecord.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:35
* @Description:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SapQualityInfoRecordItemVo implements Serializable {
/**
* 质量信息记录号
*/
@JsonProperty("ZMMQINFNO")
private String zqinfno;
/**
* 物料编码
*/
@JsonProperty("MATNR")
private String matnr;
/**
* 物料组
*/
@JsonProperty("MATKL")
private String matkl;
/**
* 工厂
*/
@JsonProperty("WERK")
private String werks;
/**
* 供应商
*/
@JsonProperty("LIEFERANT")
private String lieferant;
/**
* 合格准入验证节点1
*/
@JsonProperty("ZMMQAVFN1")
private String zqavfn1;
/**
* 节点1结论
*/
@JsonProperty("ZVFNC1")
private String zvfnc1;
/**
* 合格准入验证节点2
*/
@JsonProperty("ZMMQAVFN2")
private String zqavfn2;
/**
* 节点2结论
*/
@JsonProperty("ZMMVFNC2")
private String zvfnc2;
/**
* 合格准入验证节点3
*/
@JsonProperty("ZMMQAVFN3")
private String zqavfn3;
/**
* 节点3结论
*/
@JsonProperty("ZMMVFNC3")
private String zvfnc3;
/**
* 合格准入验证节点4
*/
@JsonProperty("ZMMQAVFN4")
private String zqavfn4;
/**
* 节点4结论
*/
@JsonProperty("ZMMVFNC4")
private String zvfnc4;
/**
* 打样单号码
*/
@JsonProperty("ZMMSPAUFNR")
private String zspaufnr;
/**
* GRSRQ
*/
@JsonProperty("ZMMGRSRQ")
private String grsrq;
/**
* GRS证书号
*/
@JsonProperty("ZMMGRSCERTNR")
private String grscertnr;
/**
* GRS证书到期日
*/
@JsonProperty("ZMMGRSCERTDATAI")
private String grscertdatai;
/**
* FSC认证要求
*/
@JsonProperty("ZMMFSCRQ")
private String fscrq;
/**
* FSC证书号
*/
@JsonProperty("ZMMFSCCERTNR")
private String fsccertnr;
/**
* FSC证书到期日
*/
@JsonProperty("ZMMFSCCERTDATAI")
private String fsccertdatai;
/**
* 合格准入状态
*/
@JsonProperty("ZMMZQAFST")
private String zqafst;
/**
* 合格有效期从
*/
@JsonProperty("ZMMZVDATAB")
private String zvdatab;
/**
* 合格有效期到
*/
@JsonProperty("ZMMZVDATAI")
private String zvdatai;
/**
* 备注文本
*/
@JsonProperty("ZMMZTEXT")
private String ztext;
@JsonProperty("ZMMERSTELLER")
private String ersteller;// 创建人
@JsonProperty("ZMMERSTELLDAT")
private String erstelldat;// 创建日期
@JsonProperty("ZMMAENDERER")
private String aenderer;// 最近修改人
@JsonProperty("ZMMAENDERDAT")
private String aenderdat;// 最近修改日期
}
package com.huigou.topsun.sap.qualityInfoRecord.repository;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecordItem;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:38
* @Description:
*/
public interface SapQualityInfoRecordItemRepository extends JpaRepository<SapQualityInfoRecordItem,String> {
List<SapQualityInfoRecordItem> findBySapQualityInfoRecordId(String sapQualityInfoRecordId);
}
package com.huigou.topsun.sap.qualityInfoRecord.repository;
import com.huigou.topsun.sap.qualityInfoRecord.domain.SapQualityInfoRecord;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @Auther: xin.lu
* @Date: 2024/02/28/15:37
* @Description:
*/
public interface SapQualityInfoRecordRepository extends JpaRepository<SapQualityInfoRecord,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="sapQualityInfoRecordProc" name="质量信息记录申请" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" delegateExpression="#{sapQualityInfoRecordApplication}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="#{sapQualityInfoRecordApplication}"></activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="Apply" name="质量信息记录申请" activiti:formKey="sapQualityInfoRecord/showSapQualityInfoRecordDetail.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{sapQualityInfoRecordApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{sapQualityInfoRecordApplication}"></activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Approve" name="质量信息记录审批" activiti:assignee="${assignee} " activiti:formKey="sapQualityInfoRecord/showSapQualityInfoRecordDetail.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{sapQualityInfoRecordApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{sapQualityInfoRecordApplication}"></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_sapQualityInfoRecordProc">
<bpmndi:BPMNPlane bpmnElement="sapQualityInfoRecordProc" id="BPMNPlane_sapQualityInfoRecordProc">
<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="sapQualityInfoRecordList" label="SAP质量信息记录维护申请" table="sap_quality_info_record">
<sql-query>
select t.bill_code,t.person_member_name,t.dept_name,t.status,t.full_id,t.fillin_date,i.*
from sap_quality_info_record t
left join sap_quality_info_record_item i
on t.id = i.sap_quality_info_record_id
where 1=1
</sql-query>
<condition column="bill_code" name="billCode" type="java.lang.String" symbol="like" alias="t"/>
<condition column="lifnr" name="lifnr" type="java.lang.String" symbol="like" alias="i"/>
<condition column="matnr" name="matnr" type="java.lang.String" symbol="like" alias="i"/>
<condition column="esokz" name="esokz" type="java.lang.String" symbol="like" alias="i"/>
<condition column="werks" name="werks" type="java.lang.String" symbol="like" alias="i"/>
</query>
</query-mappings>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query name="sapQualityInfoRecordItems" label="SAP质量信息记录维护明细" table="sap_quality_info_record_item">
<sql-query>
select t.* from sap_quality_info_record_item t
</sql-query>
<condition column="SAP_QUALITY_INFO_RECORD_ID" name="sapQualityInfoRecordId" 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