Commit 8970c7f9 authored by 全洪江's avatar 全洪江

Merge remote-tracking branch 'origin/dev' into dev

parents c8d3ae01 8a1d712b
......@@ -48,8 +48,8 @@
<option name="tableUIInfoList">
<list>
<TableUIInfo>
<option name="className" value="WorkInstrcutionApply" />
<option name="tableName" value="work_instrcution_apply" />
<option name="className" value="SapStatsIndicators" />
<option name="tableName" value="sap_stats_indicators" />
</TableUIInfo>
</list>
</option>
......
......@@ -3,7 +3,7 @@ $(document).ready(function() {
initializeUI();
initializeToobarContainer();
initializeTab();
// initializateSelectC();
initializateSelectC();
// runObserver();
});
......@@ -19,10 +19,11 @@ function initializeTab() {
}
function initializateSelectC() {
$('#productId').searchbox({
$('#selectedCategory').searchbox({
type: "product",
name: "productCode",
name: "productCode2",
onChange: function (value, data) {
$('#selectedCategory').val(data.productCategoryName)
}
});
}
......@@ -35,8 +36,6 @@ function initializeUI() {
allowRightCollapse: false,
allowRightResize: false
});
var gm=UICtrl.getGridManager("#layout");
UICtrl.onGridResize(gm);
}
function deleteHandler(){
......@@ -105,12 +104,14 @@ function loadDataTest() {
// Grid: 需要监听 Grid Data 时,必须设置 唯一 id 列。
var dataMapping = {
Product: [
"productId", "brandName","productCategoryId", "productUnit", "productSizeGroupId", "confirmDate", "comfirmPerson"
"productId", "brandName","productCategoryId", "productUnit", "productSizeGroupId"
, "isOnlyCode", "isBodyColor", "isDisable", "isBuildBom"
, "confirmDate", "comfirmPerson"
, "isFreeInspection", "isNoQualityLoss", "sampleOrderNo", "stockNo", "fileNo", "brandName"
],
ProductDetail: [
{"factoryName": "factoryName"}, "productLayout", "materialCode", "productCode", "productEnCode", "bodyColor"
, "customerMaterialCode" ,"versionNo", "isNewSpecification", "specificationNo"
, "customerMaterialCode" ,"versionNo", "isNewSpecification", "specificationNo", "productSubstrate"
],
ProductLooked: [
"productLength", "productWidth", "productHeight", "productThick", "productWeight", "productAngleType", "productAngle"
......
$(document).ready(function() {
loadStatsIndicatorsDetailListGrid();
});
function loadStatsIndicatorsDetailListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
updateHandler: function(){
updateHandler();
},
deleteHandler: deleteHandler
});
gridManager = UICtrl.grid("#statsIndicatorsDetailGrid", {
columns: [
{display: "行号", name: "zlenr", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
required: false,
type: 'text'
}},
{display: "成本中心", name: "ekostl", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
required: false,
type: 'text'
}},
{display: "订单", name: "eaufnr", width: 120, minWidth: 60, type: "string", align: "left",
editor: {
required: false,
type: 'text'
}},
{display: "统计指标", name: "stagr", width: 120, minWidth: 60, type: "string", align: "left",
editor: {
required: false,
type: 'text'
}},
{display: "统计指标数量", name: "mbgbtr", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
required: false,
type: 'text'
}},
{display: "行文本", name: "SGTXT", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
required: false,
type: 'text'
}}
],
dataAction: "server",
url: web_app.name + '/sapStatsIndicators/slicedStatsIndicatorsDetailList.ajax',
pageSize: 10,
usePager: true,
toolbar: toolbarOptions,
enabledEdit: true,
width: "100%",
height: "100%",
heightDiff: -8,
checkbox: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
onDblClickRow: function (data, rowindex, rowobj) {
doView(data.statsIndicatorsDetailId);
}
});
UICtrl.setSearchAreaToggle(gridManager);
}
/**
* 流程引擎回调设置打样的id
* @param value 打样申请的id
*/
function setId(id) {
$("#id").val(id);
}
/**
* 流程引擎获取打样申请id的回掉方法。
* @return 打样申请的id
*/
function getId() {
return $("#id").val() || "";
}
\ No newline at end of file
<%@ 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/sap/costCenter/sapCostCenterDetail.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"/>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:inputC name="kokrs" required="true" label="成本控制范围" labelCol="2" maxLength="64" fieldCol="2"/>
<x:inputC name="bldat" required="true" label="凭证日期" labelCol="2" maxLength="64" fieldCol="2" wrapper="date"/>
</div>
<div class="hg-form-row">
<x:inputC name="budat" required="true" label="过账日期" labelCol="2" maxLength="64" fieldCol="2" wrapper="date"/>
<x:selectC name="bltxt" required="false" label="凭证文本" labelCol="2" dictionary="KOSAR" fieldCol="2"/>
</div>
<div class="hg-form-row">
<x:inputC name="usnam" required="true" label="SAP用户名" labelCol="2" fieldCol="4"/>
</div>
</div>
<div class="blank_div clearfix"></div>
<div id="statsIndicatorsDetailGrid" style="margin: 2px;">
</div>
</form>
<%--</div>--%>
</body>
</html>
package com.huigou.topsun.sap.statsIndicators.application;
public interface SapStatsIndicatorsApplication {
String PROCESS_DEFINITION_KEY = "statsIndicatorsProc";
}
\ No newline at end of file
package com.huigou.topsun.sap.statsIndicators.application;
public interface SapStatsIndicatorsDetailApplication {
}
\ No newline at end of file
package com.huigou.topsun.sap.statsIndicators.application.impl;
import com.huigou.topsun.proofing.domain.proofingApply.model.*;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsApplication;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicators;
import com.huigou.topsun.sap.statsIndicators.repository.SapStatsIndicatorsRepository;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper;
import lombok.SneakyThrows;
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 org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
@Service
public class SapStatsIndicatorsApplicationImpl extends FlowBroker implements SapStatsIndicatorsApplication {
@Autowired
private SapStatsIndicatorsRepository sapStatsIndicatorsRepository;
@SneakyThrows
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Override
protected String saveBizAndApprovalData() {
super.saveBizAndApprovalData();
SapStatsIndicators sapStatsIndicators = getBizEntity(SapStatsIndicators.class);
if (sapStatsIndicators.isNew()) {
sapStatsIndicators.setStatusId(BizBillStatus.APPLYING.getId());
} else {
sapStatsIndicators = (SapStatsIndicators) commonDomainService.loadAndFillinProperties(sapStatsIndicators);
}
sapStatsIndicators = sapStatsIndicatorsRepository.save(sapStatsIndicators);
return sapStatsIndicators.getId();
}
@Override
protected Map<String, Object> getProcessBizParams(String bizId) {
// 返回业务数据给流程实例,
return ClassHelper.toMap(sapStatsIndicatorsRepository.getOne(bizId));
}
@Override
protected void onEnd(DelegateExecution delegateExecution) {
super.onEnd(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED;
SapStatsIndicators sapStatsIndicators = sapStatsIndicatorsRepository.findOne(bizId);
sapStatsIndicators.setStatusId(status.getId());
sapStatsIndicatorsRepository.save(sapStatsIndicators);
}
@Override
protected void onAbortProcessInstance(DelegateExecution delegateExecution) {
super.onAbortProcessInstance(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
SapStatsIndicators sapStatsIndicators = sapStatsIndicatorsRepository.findOne(bizId);
sapStatsIndicators.setStatusId(BizBillStatus.ABORTED.getId());
sapStatsIndicatorsRepository.save(sapStatsIndicators);
}
/**
* @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();
SapStatsIndicators sapStatsIndicators = sapStatsIndicatorsRepository.findOne(bizId);
sapStatsIndicators.setStatusId(BizBillStatus.APPLYING.getId());
sapStatsIndicatorsRepository.save(sapStatsIndicators);
}
}
}
\ No newline at end of file
package com.huigou.topsun.sap.statsIndicators.application.impl;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsDetailApplication;
import org.springframework.stereotype.Service;
@Service
public class SapStatsIndicatorsDetailApplicationImpl implements SapStatsIndicatorsDetailApplication {
}
package com.huigou.topsun.sap.statsIndicators.controller;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsApplication;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsDetailApplication;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@Controller
@ControllerMapping("/sapStatsIndicators")
public class SapStatsIndicatorsController extends CommonController {
protected String getPagePath() {
return "/biz/topsun/sap/statsIndicators/";
}
@Autowired
SapStatsIndicatorsApplication sapStatsIndicatorsApplication;
@Autowired
SapStatsIndicatorsDetailApplication sapStatsIndicatorsDetailApplication;
public String forwardStatsIndicatorsList(){
this.putAttribute("processDefinitionKey", sapStatsIndicatorsApplication.PROCESS_DEFINITION_KEY);
this.putAttribute("procUnitId", "Apply");//定义流程环节的id
// SapStatsIndicators sapStatsIndicators = new SapStatsIndicators();
// sapStatsIndicators.setStatusId(BizBillStatus.APPLYING.getId());
// Operator operator = getOperator();//获取当前操作员的详情信息
// sapStatsIndicators.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("statsIndicatorsList");
}
public String slicedStatsIndicatorsDetailList(){
return toResult(null);
}
}
\ No newline at end of file
package com.huigou.topsun.sap.statsIndicators.domain;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName sap_stats_indicators
*/
@Table(name="sap_stats_indicators")
@Entity
@Data
public class SapStatsIndicators extends FlowBillAbstractEntity {
/**
* 成本控制范围
*/
@Column(name = "KOKRS")
private String kokrs;
/**
* 凭证日期
*/
@Column(name = "BLDAT")
private Date bldat;
/**
* 过账日期
*/
@Column(name = "BUDAT")
private Date budat;
/**
* 凭证文本
*/
@Column(name = "BLTXT")
private String bltxt;
/**
* SAP用户名
*/
@Column(name = "USNAM")
private String usnam;
@Override
protected String getCodeRuleId() {
return "sapStatsIndicators";
}
}
\ No newline at end of file
package com.huigou.topsun.sap.statsIndicators.domain;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
*
* @TableName sap_stats_indicators
*/
@Table(name="sap_stats_indicators_detail")
@Entity
@Data
public class SapStatsIndicatorsDetail{
/**
* 行号
*/
@Id
@GeneratedValue(
generator = "system-uuid"
)
@GenericGenerator(
name = "system-uuid",
strategy = "guid"
)
@Column(name = "stats_indicators_detail_id")
private String statsIndicatorsDetailId;
/**
* 行号
*/
@Column(name = "stats_indicators_id")
private String statsIndicatorsId;
/**
* 行号
*/
@Column(name = "ZLENR")
private String zlenr;
/**
* 成本中心
*/
@Column(name = "EKOSTL")
private String ekostl;
/**
* 订单
*/
@Column(name = "EAUFNR")
private String eaufnr;
/**
* 统计指标
*/
@Column(name = "STAGR")
private String stagr;
/**
* 统计指标数量
*/
@Column(name = "MBGBTR")
private BigDecimal mbgbtr;
/**
* 行文本
*/
@Column(name = "SGTXT")
private String sgtxt;
}
\ No newline at end of file
package com.huigou.topsun.sap.statsIndicators.repository;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicatorsDetail;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SapStatsIndicatorsDetailRepository extends JpaRepository<SapStatsIndicatorsDetail,String> {
}
package com.huigou.topsun.sap.statsIndicators.repository;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicators;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SapStatsIndicatorsRepository extends JpaRepository<SapStatsIndicators,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="statsIndicatorsProc" name="统计指标" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" delegateExpression="#{SapStatsIndicatorsApplication}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="#{SapStatsIndicatorsApplication}"></activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="Apply" name="打样申请" activiti:formKey="proofingApply/showProofingApply.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{proofingApplyApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{proofingApplyApplication}"></activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Approve" name="打样审批" activiti:assignee="${assignee} " activiti:formKey="proofingApply/showProofingApply.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{proofingApplyApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{proofingApplyApplication}"></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_proofingProc">
<bpmndi:BPMNPlane bpmnElement="proofingProc" id="BPMNPlane_proofingProc">
<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
......@@ -16,6 +16,15 @@
</easy-search>
<easy-search name="productCode2" desc="产品">
<sql>
select t.product_category_id, t.product_category_name from product_category t
</sql>
<field name="类型ID" title="类型ID" code="productCategoryId" width="200" />
<field name="产品名称" title="产品名称" code="productCategoryName" width="200" />
</easy-search>
<easy-search name="productS" desc="产品">
<sql>
select pa.product_id,pm.proofing_make_no
......
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