Commit d0e95dc7 authored by 全洪江's avatar 全洪江

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

parents c5328db1 0ffe5060
......@@ -29,8 +29,8 @@ function bindQueryEvent() {
* 流程引擎回调设置打样的id
* @param value 打样申请的id
*/
function setId(proofingApplyId) {
$("#proofingApplyId").val(proofingApplyId);
function setId(id) {
$("#id").val(id);
}
/**
......@@ -38,7 +38,7 @@ function setId(proofingApplyId) {
* @return 打样申请的id
*/
function getId() {
return $("#proofingApplyId").val() || "";
return $("#id").val() || "";
}
//获取数据并填充
......
......@@ -6,20 +6,17 @@ $(document).ready(function () {
function initialize() {
debugger
/**
* 如果是详情页,展示数据,隐藏按钮
* @type {boolean}
*/
let isDetailPage = ($("#isDetailPage").val() === "true");
if (isDetailPage) {
let proofingApplyNo = $("#proofingApplyNo").val();
if (proofingApplyNo != null && proofingApplyNo !== '') {
ajaxRenderDataGoForm(proofingApplyNo);
showTable({proofingMakeId:$("#proofingMakeId").val()});
showTable({proofingMakeId:$("#proofingMakeId").val()});
$("#jobPageTop").hide();
if($("#jobPageTop").length>0){
$("#formButton").hide();
}
$("#formButton").hide();
$("#jobPageTop").hide();
}
}
......@@ -35,16 +32,12 @@ function bindQueryEvent() {
});
}
function save() {
debugger
saveForm();
}
/**
* 表单提交
* @returns {boolean}
*/
function saveForm() {
debugger
let extendedData= getTableResult();
if(!extendedData) return false;
......
......@@ -35,7 +35,7 @@
<x:hidden name="productId"/>
<x:inputC name="productCode" label="产品编号" labelCol="1" fieldCol="2" readonly="true"/>
<x:inputC name="customerId" label="品牌客户编号" labelCol="1" fieldCol="2"/>
<x:inputC name="customerCode" label="品牌客户编号" labelCol="1" fieldCol="2"/>
<x:inputC name="proofingMakePageNeedTime" label="版面需求时间" wrapper="date"
labelCol="1" fieldCol="2"/>
<x:inputC name="proofingMakeCompleteDate" id="completeDate"
......
......@@ -11,16 +11,17 @@ function initializateUI() {
function loadProofingMakeListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
updateHandler: function(){
updateHandler();
updateHandler: function (){
updateHandler()
},
deleteHandler: deleteHandler
// deleteHandler: deleteHandler
});
gridManager = UICtrl.grid("#proofingMakeTableGrid", {
columns: [
{display: "制造单号", name: "proofingMakeNo", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "申请单号", name: "proofingApplyNo", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "产品编号", name: "productId", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "产品编号", name: "productCode", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "品牌客户编号", name: "customerCode", width: 140, minWidth: 60, type: "string", align: "left"},
{
display: "版面需求时间",
......@@ -192,19 +193,23 @@ function addHandler() {
});
}
function updateHandler(row) {
if (!row) {
row = DataUtil.getUpdateRow(gridManager);
if (!row) {
return;
}
}
UICtrl.showAjaxDialog({
url: web_app.name + '/proofingMake/forwardDetailsProofingMake.load',
title: "修改打样制造单",
width: 1500,
param: {id: row.proofingMakeId},
ok:function (div) {saveForm()}
function updateHandler() {
let row = DataUtil.getUpdateRow(gridManager);
// UICtrl.showAjaxDialog({
// url: web_app.name + '/proofingMake/forwardDetailsProofingMake.load',
// title: "修改打样制造单",
// width: 1500,
// param: {id: row.proofingMakeId},
// ok:function (div) {
// save()
UICtrl.addTabItem({
tabid: 'updateProofingMake'+row.proofingMakeId,
text: "制造单修改",
url: web_app.name + '/proofingMake/forwardDetailsProofingMake.do?id='+row.proofingMakeId
});
// }
// ok: function (div) {
// var _self = this;
// $('#submitForm', div).ajaxSubmit({
......@@ -214,8 +219,8 @@ function updateHandler(row) {
// reloadGrid();
// }
// });
// }
});
// }
// });
}
//重写DataUtil的getUpdateRowId函数、它默认取行的id列
......
......@@ -184,11 +184,11 @@ function showTable(params) {
let a=key.includes("Apply")?"proofingApply":"proofingMake";
technologyObj.parms = { [a+"Id"]: value };
let promise = new Promise(function(resolve, reject) {
// if (technologyObj.gridManager != null) {
// reloadGrid(technologyObj);
// } else {
if (technologyObj.gridManager != null) {
reloadGrid(technologyObj);
} else {
technologyObj=loadProofingApplyGrid(technologyObj);
// }
}
setTimeout(function() {
resolve();
}, 1200);
......@@ -201,15 +201,13 @@ function showTable(params) {
let technologyId = technologyResult.length > 0 ? technologyResult[0][a+"TechnologyId"] : -1;
processObj.parms = {[a+"TechnologyId"]: technologyId}
processBomObj.parms = {[a+"TechnologyId"]: technologyId}
// if (processObj.gridManager != null) {
// reloadGrid(processObj);
// reloadGrid(processBomObj);
// } else {
if (processObj.gridManager != null) {
reloadGrid(processObj);
reloadGrid(processBomObj);
} else {
processObj=loadProofingApplyGrid(processObj);
processBomObj=loadProofingApplyGrid(processBomObj);
// }
}
});
}
......
......@@ -10,10 +10,13 @@
* 如果是详情页,展示数据,隐藏按钮
* @type {boolean}
*/
debugger
let isDetailPage = ($("#isDetailPage").val() === "true");
if (isDetailPage) {
$("#formButton").hide();
$("#jobPageTop").hide();
if($("#jobPageTop").length>0){
$("#formButton").hide();
}
}
}
......
......@@ -23,7 +23,13 @@
</div>
<div class="hg-form-cols">
<x:hidden name="workInstructionBaseInfoId"/>
<x:hidden name="workInstructionApplyId"/>
<x:hidden name="workInstructionMaterialInfoId"/>
<x:hidden name="workInstructionOptionalAttributeId"/>
<x:hidden name="workInstructionPdPublishedConfId"/>
<x:hidden name="workInstructionPrdLookedId"/>
<x:hidden name="productLossId"/>
<x:hidden name="productId"/>
<x:inputC name="productCode" label="产品编号" wrapper="select" labelCol="1" fieldCol="2"/>
......
......@@ -12,8 +12,10 @@ function initialize() {
*/
let isDetailPage = ($("#isDetailPage").val() === "true");
if (isDetailPage) {
$("#formButton").hide();
$("#jobPageTop").hide();
if($("#jobPageTop").length>0){
$("#formButton").hide();
}
}
}
......
......@@ -81,21 +81,10 @@ function updateHandler(row) {
return;
}
}
UICtrl.showAjaxDialog({
url: web_app.name + '/workInstructionApply/forwardDetailsWorkInstructionApply.load',
title: "修改作业申请指导单",
width: 1000,
param: {id:row.workInstructionApplyId},
ok: function (div) {
var _self = this;
$('#submitForm', div).ajaxSubmit({
url: web_app.name + '/workInstructionApply/saveWorkInstructionApply.ajax',
success: function () {
_self.close();
reloadGrid();
}
});
}
UICtrl.addTabItem({
tabid: 'updateWorkInstructionApply'+row.workInstructionApplyId,
text: "修改作业申请书",
url: web_app.name + '/workInstructionApply/forwardDetailsWorkInstructionApply.do?id='+row.workInstructionApplyId
});
}
......
......@@ -83,29 +83,31 @@ function resetForm(obj) {
// });
// }
function updateHandler(row) {
if (!row) {
row = DataUtil.getUpdateRow(gridManager);
if (!row) {
return;
}
}
UICtrl.showAjaxDialog({
url: web_app.name + '/workInstruction/forwardDetailsWorkInstruction.load',
title: "修改作业指导单",
width: 1500,
param: {id: row.workInstructionBaseInfoId},
ok: function (div) {
var _self = this;
$('#submitForm', div).ajaxSubmit({
url: web_app.name + '/workInstruction/saveWorkInstruction.ajax',
success: function () {
_self.close();
reloadGrid();
}
});
}
function updateHandler() {
let row = DataUtil.getUpdateRow(gridManager);
UICtrl.addTabItem({
tabid: 'updateWorkInstruction'+row.workInstructionBaseInfoId,
text: "修改作业指导书",
url: web_app.name + '/workInstruction/forwardDetailsWorkInstruction.do?id='+row.workInstructionBaseInfoId
});
// UICtrl.showAjaxDialog({
// url: web_app.name + '/workInstruction/forwardDetailsWorkInstruction.load',
// title: "修改作业指导单",
// width: 1500,
// param: {id: row.workInstructionBaseInfoId},
// ok: function (div) {
// var _self = this;
// $('#submitForm', div).ajaxSubmit({
// url: web_app.name + '/workInstruction/saveWorkInstruction.ajax',
// success: function () {
// _self.close();
// reloadGrid();
// }
// });
// }
// });
}
......
......@@ -4,6 +4,7 @@ $(document).ready(function() {
initializateUI();
loadResourceGrid();
loadProcessMaterialGrid();
bindEvent();
});
......@@ -17,9 +18,9 @@ function loadResourceGrid() {
UICtrl.addGridRow(resourceGridManager);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#rsourceGrid');
var _grid = UICtrl.getGridManager('#resourceGrid');
DataUtil.delSelectedRows({
action: 'processResource/deleteProcessResource.ajax',
action: 'process/deleteProcessResource.ajax',
param: {},
gridManager: _grid,
idFieldName: 'processResourceId',
......@@ -29,32 +30,36 @@ function loadResourceGrid() {
});
},
});
resourceGridManager = UICtrl.grid("#rsourceGrid", {
resourceGridManager = UICtrl.grid("#resourceGrid", {
columns: [
{ display: "资源名称", name: "resourceName", width: 200, minWidth: 60, type: "string", align: "left",
editor: {
required: true, type: "select",
data: {
type: 'system',
name: "resourceSelect",
name: "resourceNameGroup",
back: {
resourceId: "resourceId",
resourceName:"resourceName",
id: "resourceId",
gxmc:"resourceName",
version:"version",
}
},
getParam: function () {
return {paramValue: $("#processType").val()}
},
},
}
},
{ display: "版本", name: "version", width: 200, minWidth: 60, type: "string", align: "left" },
],
dataAction: "server",
url: web_app.name + '/processResource/slicedProcessResourceList.ajax',
url: web_app.name + '/process/slicedProcessResourceList.ajax',
parms:{processId:$("#processId").val()},
pageSize: 20,
usePager: true,
toolbar: toolbarOptions,
enabledEdit: true,
width: "100%",
height: "100%",
height: "300",
heightDiff: -8,
checkbox: true,
fixedCellHeight: true,
......@@ -78,7 +83,7 @@ function loadProcessMaterialGrid() {
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#processMaterialGrid');
DataUtil.delSelectedRows({
action: 'processMaterialItem/deleteProcessMaterialItem.ajax',
action: 'process/deleteProcessMaterialItem.ajax',
param: {},
gridManager: _grid,
idFieldName: 'processMaterialItemId',
......@@ -116,13 +121,14 @@ function loadProcessMaterialGrid() {
{ display: "物料相关内容", name: "materialJson", width: 400, minWidth: 60, type: "string", align: "left" },
],
dataAction: "server",
url: web_app.name + '/processMaterialItem/slicedProcessMaterialItems.ajax',
url: web_app.name + '/process/slicedProcessMaterialItems.ajax',
parms:{processId:$("#processId").val()},
pageSize: 20,
usePager: true,
toolbar: toolbarOptions,
enabledEdit: true,
width: "100%",
height: "100%",
height: "300",
heightDiff: -8,
checkbox: true,
fixedCellHeight: true,
......@@ -137,4 +143,64 @@ function reloadProcessMaterialGrid() {
processMaterialGridManager.loadData();
}
function bindEvent() {
$("#save").click(function () {
saveData("save");
})
$("#submit").click(function () {
saveData("submit");
})
$("#close").click(function () {//关闭
closeDispatchTabItem();
})
}
function getProcessDetail(processAction) {
//采购订单保存时数据不进行必填验证,提交时数据才进行必填验证
var op = {};
var check = true;
var resourceList = [];
var processMaterialList = [];
if (processAction == "save") {
check = false;
}
op = {check: check};
var process = $('#submitForm').formToJSON(op);
if (!process) {
return false;
}
resourceList = DataUtil.getGridData({gridManager: resourceGridManager, isAllData: true, onCheck: check})
if (!resourceList) {
return false;
}
process.resourceList = $.toJSON(resourceList);
processMaterialList = DataUtil.getGridData({gridManager: processMaterialGridManager, isAllData: true, onCheck: check})
if (!processMaterialList) {
return false;
}
process.processMaterialList = $.toJSON(processMaterialList);
return process;
}
function saveData(action) {
var processDetail = getProcessDetail("submit");
if (!processDetail) {
return;
}
Public.ajax(web_app.name + '/process/saveProcess.ajax?code=' + action,processDetail,
function (data) {
setId(data.processId);
Public.successTip("数据保存成功");
processGridManager.setParm('processId', data.processId);
processGridManager.loadData();
}
);
}
function closeDispatchTabItem() {
UICtrl.closeCurrentTab();
}
<%@ 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"%>
<%@ 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"/>
<x:script src='/biz/topsun/technology/processDetail.js'/>
</head>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="processId" />
<div class="hg-form-row">
<x:inputC name="processName" required="true" label="工序名称" labelCol="2" maxLength="64" fieldCol="4" />
<x:selectC name="processType" required="true" label="工序类别" labelCol="2" dictionary="processType" fieldCol="4" />
<x:inputC name="processContent" required="true" label="工序内容" labelCol="2" maxLength="64" fieldCol="4" />
<x:inputC name="workHours" required="true" label="工时" labelCol="2" mask="nnnn.nn" dataOptions="min:0" maxLength="32" fieldCol="4" />
<x:inputC name="processRemark" required="false" label="工序说明" labelCol="2" maxLength="32" fieldCol="10" />
</div>
<div class="blank_div clearfix"></div>
</form>
\ No newline at end of file
<body>
<x:billTitle title="工序详情" needStatus="false" needPerson="true"/>
<div class="blank_div clearfix"></div>
<button class="btn btn-default" type="button" id="close" style="left: 200px;float:right;bottom: 10px;">关闭</button>
<button class="btn btn-warning" type="button" id="submit" style="left: 200px;float:right;bottom: 10px;">提交</button>
<button class="btn btn-success" type="button" id="save" style="left: 200px;float:right;bottom: 10px;">保存</button>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="processId"/>
<div class="hg-form-row">
<x:inputC name="processName" required="true" label="工序名称" labelCol="2" maxLength="64" fieldCol="4"/>
<x:selectC name="processType" required="true" label="工序类别" labelCol="2" dictionary="processType" fieldCol="4"/>
<x:inputC name="processContent" required="true" label="工序内容" labelCol="2" maxLength="64" fieldCol="4"/>
<x:inputC name="workHours" required="true" label="工时" labelCol="2" mask="nnnn.nn" dataOptions="min:0" maxLength="32" fieldCol="4"/>
<x:inputC name="processRemark" required="false" label="工序说明" labelCol="2" maxLength="32" fieldCol="10"/>
</div>
<div class="blank_div clearfix"></div>
<x:title title="工序资源" name="group" hideTable="#info"/>
<div id="resourceGrid" style="margin: 2px;"></div>
<div class="blank_div clearfix"></div>
<x:title title="工序物料" name="group" hideTable="#info"/>
<div id="processMaterialGrid" style="margin: 2px;"></div>
</form>
</body>
</html>
......@@ -60,7 +60,7 @@ function resetForm(obj) {
}
function addHandler(){
UICtrl.showAjaxDialog({
/*UICtrl.showAjaxDialog({
url: web_app.name + '/process/addProcessDetail.load',
title: "新增工艺设置",
width: 800,
......@@ -73,7 +73,12 @@ function addHandler(){
}
});
}
});
});*/
UICtrl.addTabItem({
tabid: 'processDetail',
text: "新增工序",
url: web_app.name + '/process/addProcessDetail.do'
})
}
function updateHandler(row){
......@@ -83,7 +88,7 @@ function updateHandler(row){
return;
}
}
UICtrl.showAjaxDialog({
/*UICtrl.showAjaxDialog({
url: web_app.name + '/process/showProcessDetail.load',
title: "修改工艺设置",
width: 800,
......@@ -97,7 +102,12 @@ function updateHandler(row){
}
});
}
});
});*/
UICtrl.addTabItem({
tabid: 'processDetail'+row.processId,
text: "修改工序",
url: web_app.name + '/process/showProcessDetail.do?processId='+row.processId
})
}
//删除按钮
......
......@@ -8,7 +8,7 @@ $(document).ready(function () {
function loadProcessListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function () {
UICtrl.addGridRow(processGridManager);
UICtrl.addGridRow(processGridManager,{ sequence: processGridManager.getData().length + 1 });
},
deleteHandler: function () {
var _grid = UICtrl.getGridManager('#processListGrid');
......@@ -25,6 +25,9 @@ function loadProcessListGrid() {
});
processGridManager = UICtrl.grid("#processListGrid", {
columns: [
{display: "序号", name: "sortNum", width: 80, minWidth: 60, type: "string", align: "left",
editor: { type: 'spinner', min: 1, max: 100, mask: 'nnn'}
},
{
display: "工序名称", name: "processName", width: 120, minWidth: 60, type: "string", align: "left",
editor: {
......@@ -80,56 +83,6 @@ function loadProcessListGrid() {
type: 'text'
}*/
},
{
display: '资源', name: "resourceName", width: 180, align: "left", type: "string",
editor: {
required: true, type: "select",
data: {
type: 'system',
name: "resourceNameGroup",
getParam: function (item) {
return {paramValue: item.processType}
},
back: {
gxmc: "resourceName",
id: "resourceId"
}
},
}
},
{display: "版本", name: "version", width: 200, minWidth: 60, type: "string", align: "left"},
{
display: "工序物料", name: "materialName", width: 180, minWidth: 60, type: "string", align: "left",
editor: {
required: true, type: "select",
data: {
type: 'system',
name: "sapMaterialSelect",
back: {
materialId: "materialId",
materialName: "materialName",
materialUnit: "materialUnit",
materialJson: "materialJson",
}
},
}
},
{display: "物料计量单位", name: "materialUnit", width: 100, minWidth: 60, type: "string", align: "left"},
{
display: "使用物料数量",
name: "materialNumber",
width: 100,
minWidth: 60,
type: "string",
align: "left",
editor: {
type: 'text',
mask: 'positiveMoney',
required: true
}
},
{display: "物料相关内容", name: "materialJson", width: 400, minWidth: 60, type: "string", align: "left"},
],
dataAction: "server",
url: web_app.name + '/technologyProcess/slicedTechnologyProcessList.ajax',
......
......@@ -26,7 +26,7 @@ public interface ProofingMakeApplication {
ProofingMakeVo getProofingMakeVoById(String proofingMakeId);
Map<String, Object> mappingReplacementMap(ProofingMakeVo vo) throws IllegalAccessException;
void deleteProofingMakeById(String id);
void deleteProofingMakeByIds(List<String> ids);
}
......@@ -77,7 +77,7 @@ public class ProofingApplyApplicationImpl extends FlowBroker implements Proofing
}
//二次保存不添加id
String id = UUID.randomUUID().toString().replace("-", "");
if (proofingApply.getProofingApplyId() == null || proofingApply.getProofingApplyId().isEmpty()) {
if (proofingApply.getId() == null || proofingApply.getId().isEmpty()) {
proofingApply.setProofingApplyId(id);
}
//如果录入了ng重新打样原因,则更改状态为不通过
......@@ -193,26 +193,7 @@ public class ProofingApplyApplicationImpl extends FlowBroker implements Proofing
return proofingApplyAndLookedVo;
}
/**
* 映射打样制造和打样申请 除前缀不一样的字段
* @param proofingApply
* @throws IllegalAccessException
*/
public void test(ProofingApplyAndLookedVo proofingApply) throws IllegalAccessException {
Map<String, Object> proofingMake = new HashMap<>();
Class<?> proofingApplyClass = proofingApply.getClass();
Field[] fields = proofingApplyClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String name = field.getName();
Object value = field.get(proofingApply);
String proofingMakeName = name.replaceFirst("^proofingApply", "proofingMake");
proofingMake.put(proofingMakeName, value);
}
}
@Override
public ProofingApplyBaseInfo selectProofingApplyByProofingApplyNo(String proofingApplyNo) {
......
......@@ -14,10 +14,12 @@ import com.huigou.topsun.proofing.domain.proofingApply.model.ProofingApplyProces
import com.huigou.topsun.proofing.domain.proofingApply.model.ProofingApplyTechnology;
import com.huigou.topsun.proofing.domain.proofingMake.model.*;
import com.huigou.topsun.proofing.domain.proofingMake.query.ProofingMakeQueryRequest;
import com.huigou.topsun.proofing.domain.vo.ProofingApplyAndLookedVo;
import com.huigou.topsun.proofing.domain.vo.ProofingMakeVo;
import com.huigou.topsun.proofing.repository.proofingApply.ProofingApplyRepository;
import com.huigou.topsun.proofing.repository.proofingMake.*;
import com.huigou.topsun.util.MyBaseUtil;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.SDO;
import org.springframework.beans.BeanUtils;
......@@ -26,6 +28,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -69,7 +73,7 @@ public class ProofingMakeApplicationImpl extends BaseApplication implements Proo
* 编辑打样制造及相关信息
* @param sdo 打样制造及相关信息
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
// @Transactional(propagation = Propagation.REQUIRES_NEW)
@Override
public void saveProofingMake(SDO sdo) throws JsonProcessingException {
ProofingMakeBaseInfo proofingMakeBaseInfo = sdo.toObject(ProofingMakeBaseInfo.class);
......@@ -97,26 +101,30 @@ public class ProofingMakeApplicationImpl extends BaseApplication implements Proo
/*
* 将样品的相关工艺工序等删除
*/
List<ProofingMakeTechnology> technologiesToDelete = proofingMakeTechnologyRepository.findAllByProofingMakeId(proofingMakeBaseInfo.getProofingApplyId());
List<ProofingMakeTechnology> technologiesToDelete = proofingMakeTechnologyRepository.findAllByProofingMakeId(proofingMakeBaseInfo.getProofingMakeId());
if (!technologiesToDelete.isEmpty()) {
ProofingMakeTechnology technologyToDelete = technologiesToDelete.get(0);
String proofingMakeTechnologyId = technologyToDelete.getProofingMakeTechnologyId();
proofingMakeTechnologyRepository.delete(technologyToDelete);
List<ProofingMakeProcess> processesToDelete = proofingMakeProcessRepository.findAllByProofingMakeTechnologyId(proofingMakeTechnologyId);
proofingMakeProcessRepository.deleteInBatch(processesToDelete);
List<ProofingMakeProcessMaterial> proofingMakeTechnologyList = proofingMakeProcessMaterialRepository.findAllByProofingMakeTechnologyId(proofingMakeTechnologyId);
proofingMakeProcessMaterialRepository.deleteInBatch(proofingMakeTechnologyList);
List<ProofingMakeProcess> processesToDelete = proofingMakeProcessRepository.findAllByProofingMakeTechnologyId(proofingMakeTechnologyId);
proofingMakeProcessRepository.deleteInBatch(processesToDelete);
proofingMakeTechnologyRepository.delete(technologyToDelete);
}
proofingMakeTechnology.setProofingMakeId(proofingMakeBaseInfo.getProofingMakeId());
proofingMakeTechnology = proofingMakeTechnologyRepository.save(proofingMakeTechnology);
for (ProofingMakeProcess proofingMakeProcess : ProcessList) {
proofingMakeProcess.setProofingMakeProcessId(null);
proofingMakeProcess.setProofingMakeTechnologyId(proofingMakeTechnology.getProofingMakeTechnologyId());
proofingMakeProcessRepository.save(proofingMakeProcess);
}
for (ProofingMakeProcessMaterial proofingMakeProcessMaterial : processMaterialList) {
proofingMakeProcessMaterial.setProofingMakeProcessMaterialId(null);
proofingMakeProcessMaterial.setProofingMakeTechnologyId(proofingMakeTechnology.getProofingMakeTechnologyId());
proofingMakeProcessMaterialRepository.save(proofingMakeProcessMaterial);
}
......@@ -139,14 +147,39 @@ public class ProofingMakeApplicationImpl extends BaseApplication implements Proo
if (proofingMake==null) return null;
ProofingMakeLooked proofingMakeLooked = proofingMakeLookedRepository.findByProofingMakeId(proofingMakeId);
ProofingMakePdPublishedConf proofingMakePdPublishedConf = proofingMakePdPublishedConfRepository.findByProofingMakeId(proofingMakeId);
// ProofingApplyBaseInfo proofingApply = proofingApplyRepository.findByProofingApplyId(proofingMake.getProofingApplyId());
BeanUtils.copyProperties(proofingMake,proofingMakeVo);
BeanUtils.copyProperties(proofingMakeLooked,proofingMakeVo);
BeanUtils.copyProperties(proofingMakePdPublishedConf,proofingMakeVo);
// BeanUtils.copyProperties(proofingApply,proofingMakeVo);
MyBaseUtil.mergeObjects(proofingMakeVo,
proofingMake,
proofingMakeLooked,
proofingMakePdPublishedConf);
return proofingMakeVo;
}
/**
* 映射打样制造和打样申请 除前缀不一样的字段
* @param vo
* @throws IllegalAccessException
*/
public Map<String, Object> mappingReplacementMap(ProofingMakeVo vo) throws IllegalAccessException {
Map<String, Object> proofingMake = new HashMap<>();
Class<?> proofingApplyClass = vo.getClass();
Field[] fields = proofingApplyClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String name = field.getName();
if (!name.equals("proofingApplyId") && !name.equals("proofingApplyNo") && !name.equals("proofingApplyApplicationStatus")) {
Object value = field.get(vo);
String proofingMakeName = name.replaceFirst("^proofingApply", "proofingMake");
proofingMake.put(proofingMakeName, value);
} else {
Object value = field.get(vo);
proofingMake.put(name, value);
}
}
return proofingMake;
}
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void deleteProofingMakeById(String id) {
......
......@@ -77,8 +77,15 @@ public class ProofingMakeController extends CommonController {
String id = sdo.getId();
this.putAttribute("isDetailPage","true");
ProofingMakeVo proofingMakeVo =(id==null||"".equals(id))?null:proofingMakeApplication.getProofingMakeVoById(id);
this.putAttribute("bizId", "proofingMake"+proofingMakeVo.getProofingMakeNo());
return forward("proofingMake",proofingMakeVo);
Map<String,Object> map=null;
try {
map=proofingMakeApplication.mappingReplacementMap(proofingMakeVo);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
return forward("proofingMake",map);
}
/**
......
......@@ -122,7 +122,7 @@ public class ProofingTechnologyRelevancyController extends CommonController {
processMaterialItem.setMaterialId("测试id"+i);
processMaterialItem.setMaterialName("测试name"+i);
processMaterialItem.setMaterialNumber(Double.valueOf(i));
processMaterialItem.setTechnologyProcessId("process_id"+i);
processMaterialItem.setProcessId("process_id"+i);
processMaterialItem.setMaterialJson("测试material"+i);
processMaterialItem.setMaterialUnit("测试Unit"+i);
list.add(processMaterialItem);
......
package com.huigou.topsun.sap.common;
import com.huigou.cache.SystemCache;
import com.huigou.topsun.sap.common.serializer.MessageSerializer;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Base64;
import java.util.Map;
import java.util.stream.Collectors;
/**
*/
@Component
public class DefaultHttpClient extends BaseApplication implements HttpClient {
private final static Logger LOG = LoggerFactory.getLogger(DefaultHttpClient.class);
private final MessageSerializer messageSerializer;
private final org.apache.http.client.HttpClient http = HttpClientBuilder.create().build();
@Autowired
public DefaultHttpClient(MessageSerializer messageSerializer) {
this.messageSerializer = messageSerializer;
}
@Override
public String execute(Map<String, Object> param,String url) throws IOException {
//系统接口地址
// ip地址
String ip = SystemCache.getParameter("sap.service.ip", String.class);
// 上下文
String applicationContext = SystemCache.getParameter("sap.service.application.context", String.class);
// 用户名
String password = SystemCache.getParameter("ap.service.password", String.class);
// 密码
String username = SystemCache.getParameter("sap.service.username", String.class);
// 客户端
String client = SystemCache.getParameter("sap.service.client", String.class);
//String serverUrl = "http://192.168.3.109:8000/sap/bc/erp_ep/bd_mastdata/material?sap-client=200";
StringBuffer serverUrl = new StringBuffer();
serverUrl
.append(ip)
.append(applicationContext)
.append(url)
.append("?")
.append(client);
HttpPost post = new HttpPost(serverUrl.toString());
String usernameAndPassword = username + ":" + password;
post.addHeader("Authorization", "Basic " + Base64.getEncoder().encodeToString(usernameAndPassword.getBytes()));
//post.addHeader("token",SystemCache.getParameter("material.token",String.class));
String requestText = messageSerializer.serialize(param);
LOG.info("requestText={}", requestText);
post.setEntity(new StringEntity(requestText, ContentType.APPLICATION_JSON));
LOG.info("post={}", post);
HttpResponse response;
String responseText = "";
try {
response = http.execute(post);
LOG.info("response={}", response);
StatusLine statusLine = response.getStatusLine();
LOG.info("statusLine={}", statusLine);
int statusCode = statusLine.getStatusCode();
if (statusLine.getStatusCode() < HttpStatus.SC_OK || statusLine.getStatusCode() >= HttpStatus.SC_MULTIPLE_CHOICES) {
throw new IOException(String.format("调用SAP系统出错,statusCode=%s, %s", statusCode, statusLine.getReasonPhrase()));
}
responseText = IOUtils.readLines(response.getEntity().getContent())
.stream()
.collect(Collectors.joining("\n"));
LOG.info("responseText={}", responseText);
LOG.info("----------->> 调用SAP接口 {} 成功 <<-----------", serverUrl);
}finally {
post.releaseConnection();
}
return responseText;
}
}
package com.huigou.topsun.sap.common;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Endpoint {
}
package com.huigou.topsun.sap.common;
import com.alibaba.fastjson.JSONWriter;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.MimeTypeUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletResponse;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@Aspect
@Component
public class EndpointInterceptor {
private final static Logger LOG = LoggerFactory.getLogger(com.huigou.topsun.sap.common.EndpointInterceptor.class);
@Around("@annotation(Endpoint)")
public Object intercept(ProceedingJoinPoint pjp) throws Throwable {
// HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Map<String, Object> result = new HashMap<>(2);
try {
pjp.proceed(pjp.getArgs());
result.put("type", HttpServletResponse.SC_OK);
} catch (IllegalArgumentException iae) {
LOG.error("", iae);
result.put("type", HttpServletResponse.SC_BAD_REQUEST);
result.put("mesg", "请求失败," + iae.getMessage());
} catch (Exception e) {
LOG.error("", e);
result.put("type", HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
result.put("mesg", "请求失败");
}
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
response.setContentType(MimeTypeUtils.APPLICATION_JSON_VALUE);
try (JSONWriter writer = new JSONWriter(response.getWriter())) {
writer.writeObject(result);
writer.flush();
}
return null;
}
}
package com.huigou.topsun.sap.common;
import java.io.IOException;
import java.util.Map;
/**
* esb客户端,用于调用esb服务。
*/
public interface HttpClient {
/**
* param 要传递的数据,包括结构,在请求前会序列化和转json,不用特殊处理
* url 采用restful风格接口,ip、端口、上下文基本固定,只传名称
* 比如:"http://192.168.3.109:8000/sap/bc/erp_ep/bd_mastdata/material?sap-client=200";
* @param param
* @param url
* @return
* @throws IOException
*/
String execute(Map<String, Object> param,String url) throws IOException;
}
package com.huigou.topsun.sap.common.domain;
import java.util.HashMap;
import java.util.Map;
/**
* 消息
*/
public class Message {
/**
* 消息头
*/
private final Map<String, Object> body = new HashMap<>(16);
public Map<String, Object> getBody() {
return body;
}
public Message setBody(String name, Object value) {
body.put(name, value);
return this;
}
}
/**
* 同sap进行数据同步相关
*/
package com.huigou.topsun.sap.common;
\ No newline at end of file
package com.huigou.topsun.sap.common.serializer;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.huigou.topsun.sap.common.domain.Message;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component("messageCodec")
public class MessageCodec implements MessageSerializer, MessageDeserializer {
@Override
public String serialize(Map<String, Object> map) {
return JSON.toJSONString(map, SerializerFeature.DisableCircularReferenceDetect);
}
@Override
public Message deserialze(String text) {
JSONObject jsonObject = JSONObject.parseObject(text);
Map<String, Object> body = jsonObject.getJSONObject("body");
Message message = new Message();
message.getBody().putAll(body);
return message;
}
}
package com.huigou.topsun.sap.common.serializer;
import com.huigou.topsun.sap.common.domain.Message;
/**
* 消息反序列化器
*/
public interface MessageDeserializer {
Message deserialze(String text);
}
package com.huigou.topsun.sap.common.serializer;
import java.util.Map;
/**
* 消息序列化器
*/
public interface MessageSerializer {
String serialize(Map<String, Object> map);
}
package com.huigou.topsun.sap.common.support;
import com.huigou.topsun.sap.common.domain.Message;
import com.huigou.topsun.sap.common.serializer.MessageDeserializer;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.stream.Collectors;
public class MessageHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
private final static Logger LOG = LoggerFactory.getLogger(MessageHandlerMethodArgumentResolver.class);
private MessageDeserializer messageDeserializer;
public MessageHandlerMethodArgumentResolver(MessageDeserializer messageDeserializer) {
this.messageDeserializer = messageDeserializer;
}
@Override
public boolean supportsParameter(MethodParameter parameter) {
return Message.class.isAssignableFrom(parameter.getParameterType());
}
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
String requestText;
try {
requestText = IOUtils.readLines(webRequest.getNativeRequest(HttpServletRequest.class).getReader()).stream()
.collect(Collectors.joining("\n"));
} catch (IOException ioe) {
throw new IllegalArgumentException("解析SAP消息出错", ioe);
}
LOG.info("{},收到SAP消息: {}", parameter.getMethod().toString(), requestText);
return messageDeserializer.deserialze(requestText);
}
}
package com.huigou.topsun.technology.application;
import com.huigou.topsun.technology.domain.model.ProcessMaterialItem;
import com.huigou.topsun.technology.domain.model.ProcessResource;
import com.huigou.topsun.technology.domain.query.ProcessQueryRequest;
import com.huigou.topsun.technology.vo.ProcessVo;
......@@ -26,4 +28,5 @@ public interface ProcessApplication {
void deleteProcessByProcessIds(List<String> ids);
ProcessVo saveProcessAndResourceAndMaterial(ProcessVo processVo, List<ProcessResource> resourceList, List<ProcessMaterialItem> processMaterialList);
}
......@@ -3,6 +3,8 @@ package com.huigou.topsun.technology.application;
import com.huigou.topsun.technology.domain.model.ProcessMaterialItem;
import java.util.List;
/**
* @author 16508
* @description 针对表【process_material_item(工序物料关系表)】的数据库操作Service
......@@ -14,4 +16,10 @@ public interface ProcessMaterialItemApplication {
void deleteByTechnologyProcessId(String technologyProcessId);
void saveProcessMaterialItem(String processId, List<ProcessMaterialItem> processMaterialList);
List<ProcessMaterialItem> slicedProcessMaterialItems(String processId);
void deleteByIds(List<String> ids);
}
......@@ -2,8 +2,10 @@ package com.huigou.topsun.technology.application;
import com.huigou.topsun.technology.domain.model.ProcessResource;
import com.huigou.topsun.technology.vo.ProcessResourceVo;
import java.util.List;
import java.util.Map;
/**
* @author 16508
......@@ -12,8 +14,16 @@ import java.util.List;
*/
public interface ProcessResourceApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/technology/processResource.xml";
ProcessResource saveProcessResource(ProcessResource processResource);
void deleteByTechnologyProcessId(String technologyProcessId);
void deleteByIds(List<String> ids);
void saveProcessResource(String processId, List<ProcessResource> resourceList);
List<ProcessResourceVo> slicedProcessResourceList(String processId);
}
......@@ -24,4 +24,6 @@ public interface TechnologyProcessApplication {
List<TechnologyProcess> findByTechnologyId(String technologyId);
void deleteByTechnologyProcessIds(List<String> technologyProcessIds);
String saveTechnologyProcess(String processId);
}
......@@ -4,7 +4,11 @@ import com.huigou.cache.DictUtil;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.technology.application.ProcessApplication;
import com.huigou.topsun.technology.application.ProcessMaterialItemApplication;
import com.huigou.topsun.technology.application.ProcessResourceApplication;
import com.huigou.topsun.technology.domain.model.Process;
import com.huigou.topsun.technology.domain.model.ProcessMaterialItem;
import com.huigou.topsun.technology.domain.model.ProcessResource;
import com.huigou.topsun.technology.domain.query.ProcessQueryRequest;
import com.huigou.topsun.technology.repository.ProcessRepository;
import com.huigou.topsun.technology.vo.ProcessVo;
......@@ -24,6 +28,10 @@ import java.util.Map;
public class ProcessApplicationImpl extends BaseApplication implements ProcessApplication {
@Resource
private ProcessRepository processRepository;
@Resource
private ProcessResourceApplication processResourceApplication;
@Resource
private ProcessMaterialItemApplication processMaterialItemApplication;
@Override
public ProcessVo saveProcess(ProcessVo processVo) {
......@@ -57,6 +65,14 @@ public class ProcessApplicationImpl extends BaseApplication implements ProcessAp
ids.forEach(this::deleteProcessByProcessId);
}
@Override
public ProcessVo saveProcessAndResourceAndMaterial(ProcessVo processVo, List<ProcessResource> resourceList, List<ProcessMaterialItem> processMaterialList) {
processVo = this.saveProcess(processVo);
processResourceApplication.saveProcessResource(processVo.getProcessId(),resourceList);
processMaterialItemApplication.saveProcessMaterialItem(processVo.getProcessId(),processMaterialList);
return processVo;
}
}
......
......@@ -9,10 +9,10 @@ import javax.annotation.Resource;
import java.util.List;
/**
* @author 16508
* @description 针对表【process_material_item(工序物料关系表)】的数据库操作Service实现
* @createDate 2023-11-22 11:04:03
*/
* @author 16508
* @description 针对表【process_material_item(工序物料关系表)】的数据库操作Service实现
* @createDate 2023-11-22 11:04:03
*/
@Service
public class ProcessMaterialItemApplicationImpl implements ProcessMaterialItemApplication {
@Resource
......@@ -25,9 +25,30 @@ public class ProcessMaterialItemApplicationImpl implements ProcessMaterialItemAp
@Override
public void deleteByTechnologyProcessId(String technologyProcessId) {
List<ProcessMaterialItem> materialItemList = processMaterialItemRepository.findByTechnologyProcessId(technologyProcessId);
List<ProcessMaterialItem> materialItemList = processMaterialItemRepository.findByProcessId(technologyProcessId);
processMaterialItemRepository.delete(materialItemList);
}
@Override
public void saveProcessMaterialItem(String processId, List<ProcessMaterialItem> processMaterialList) {
processMaterialList
.forEach(processMaterialItem -> {
processMaterialItem.setProcessId(processId);
processMaterialItemRepository.save(processMaterialItem);
});
}
@Override
public List<ProcessMaterialItem> slicedProcessMaterialItems(String processId) {
return processMaterialItemRepository.findByProcessId(processId);
}
@Override
public void deleteByIds(List<String> ids) {
ids.forEach(id->{
processMaterialItemRepository.delete(id);
});
}
}
......
package com.huigou.topsun.technology.application.impl;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.topsun.technology.application.ProcessResourceApplication;
import com.huigou.topsun.technology.domain.model.ProcessResource;
import com.huigou.topsun.technology.repository.ProcessResourceRepository;
import com.huigou.topsun.technology.vo.ProcessResourceVo;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @author 16508
......@@ -14,7 +18,7 @@ import java.util.List;
* @createDate 2023-11-22 11:04:03
*/
@Service
public class ProcessResourceApplicationImpl implements ProcessResourceApplication {
public class ProcessResourceApplicationImpl extends BaseApplication implements ProcessResourceApplication {
@Resource
private ProcessResourceRepository processResourceRepository;
......@@ -25,9 +29,31 @@ public class ProcessResourceApplicationImpl implements ProcessResourceApplicatio
@Override
public void deleteByTechnologyProcessId(String technologyProcessId) {
List<ProcessResource> processResourceList = processResourceRepository.findByTechnologyProcessId(technologyProcessId);
List<ProcessResource> processResourceList = processResourceRepository.findByProcessId(technologyProcessId);
processResourceRepository.delete(processResourceList);
}
@Override
public void deleteByIds(List<String> ids) {
ids.forEach(id->{
processResourceRepository.delete(id);
});
}
@Override
public void saveProcessResource(String processId, List<ProcessResource> resourceList) {
resourceList
.forEach(processResource -> {
processResource.setProcessId(processId);
processResourceRepository.save(processResource);
});
}
@Override
public List<ProcessResourceVo> slicedProcessResourceList(String processId) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "slicedProcessResourceList");
return this.sqlExecutorDao.queryToList(queryDescriptor.getSql(),ProcessResourceVo.class,processId);
}
}
......
......@@ -24,10 +24,6 @@ import java.util.*;
public class TechnologyProcessApplicationImpl extends BaseApplication implements TechnologyProcessApplication {
@Resource
private TechnologyProcessRepository technologyProcessRepository;
@Resource
private ProcessResourceApplication processResourceApplication;
@Resource
private ProcessMaterialItemApplication processMaterialItemApplication;
@Override
public List<Map<String, Object>> slicedTechnologyProcessList(String technologyId) {
......@@ -39,28 +35,12 @@ public class TechnologyProcessApplicationImpl extends BaseApplication implements
@Override
public void saveTechnologyProcessVoList(String technologyId, List<TechnologyProcessVo> technologyProcessList) {
technologyProcessList.forEach(technologyProcessVo -> {
//保存工艺工序关系
TechnologyProcess technologyProcess = new TechnologyProcess();
technologyProcess.setTechnologyId(technologyId);
technologyProcess.setProcessId(technologyProcessVo.getProcessId());
technologyProcess.setSortNum(technologyProcessVo.getSortNum());
technologyProcessRepository.saveAndFlush(technologyProcess);
//保存工序资源
ProcessResource processResource = new ProcessResource();
processResource.setTechnologyProcessId(technologyProcess.getTechnologyProcessId());
processResource.setResourceId(technologyProcessVo.getResourceId());
processResourceApplication.saveProcessResource(processResource);
//保存工序物料
ProcessMaterialItem processMaterialItem = new ProcessMaterialItem();
processMaterialItem.setTechnologyProcessId(technologyProcess.getTechnologyProcessId());
processMaterialItem.setMaterialId(technologyProcessVo.getMaterialId());
processMaterialItem.setMaterialName(technologyProcessVo.getMaterialName());
processMaterialItem.setMaterialNumber(technologyProcessVo.getMaterialNumber());
processMaterialItem.setMaterialUnit(technologyProcessVo.getMaterialUnit());
processMaterialItem.setMaterialJson(technologyProcessVo.getMaterialJson());
processMaterialItemApplication.saveProcessMaterialItem(processMaterialItem);
});
}
......@@ -84,14 +64,15 @@ public class TechnologyProcessApplicationImpl extends BaseApplication implements
this.deleteTechnologyProcessIds(technologyProcessList);
}
public void deleteTechnologyProcessIds(List<TechnologyProcess> technologyProcessList){
technologyProcessList.forEach(technologyProcess -> {
//删除工序资源
processResourceApplication.deleteByTechnologyProcessId(technologyProcess.getTechnologyProcessId());
@Override
public String saveTechnologyProcess(String processId) {
TechnologyProcess technologyProcess = new TechnologyProcess();
technologyProcess.setProcessId(processId);
technologyProcessRepository.save(technologyProcess);
return technologyProcess.getTechnologyProcessId();
}
//删除工序物料
processMaterialItemApplication.deleteByTechnologyProcessId(technologyProcess.getTechnologyProcessId());
});
public void deleteTechnologyProcessIds(List<TechnologyProcess> technologyProcessList){
//删除工艺工序关系表
technologyProcessRepository.delete(technologyProcessList);
}
......
......@@ -2,9 +2,13 @@ package com.huigou.topsun.technology.controller;
import com.huigou.cache.DictUtil;
import com.huigou.topsun.technology.application.ProcessApplication;
import com.huigou.topsun.technology.application.ProcessMaterialItemApplication;
import com.huigou.topsun.technology.application.ProcessResourceApplication;
import com.huigou.topsun.technology.domain.model.ProcessMaterialItem;
import com.huigou.topsun.technology.domain.model.ProcessResource;
import com.huigou.topsun.technology.domain.query.ProcessQueryRequest;
import com.huigou.topsun.technology.vo.ProcessResourceVo;
import com.huigou.topsun.technology.vo.ProcessVo;
import com.huigou.topsun.technology.vo.TechnologyVo;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
......@@ -28,6 +32,10 @@ public class ProcessController extends CommonController {
@Resource
private ProcessApplication processApplication;
@Resource
private ProcessResourceApplication processResourceApplication;
@Resource
private ProcessMaterialItemApplication processMaterialItemApplication;
public String forwardProcessList(){
Map<String, String> processType = DictUtil.getDictionary("processType");
......@@ -56,7 +64,9 @@ public class ProcessController extends CommonController {
public String saveProcess(){
SDO sdo = this.getSDO();
ProcessVo processVo = sdo.toObject(ProcessVo.class);
processVo = processApplication.saveProcess(processVo);
List<ProcessResource> resourceList = sdo.getList("resourceList", ProcessResource.class);
List<ProcessMaterialItem> processMaterialList = sdo.getList("processMaterialList", ProcessMaterialItem.class);
processVo = processApplication.saveProcessAndResourceAndMaterial(processVo,resourceList,processMaterialList);
return success(processVo);
}
......@@ -78,4 +88,31 @@ public class ProcessController extends CommonController {
return success();
}
public String slicedProcessResourceList(){
SDO sdo = getSDO();
String processId = sdo.getString("processId");
List<ProcessResourceVo> resourceList = processResourceApplication.slicedProcessResourceList(processId);
return packGridDataAndResult(resourceList);
}
public String deleteProcessResource(){
SDO sdo = getSDO();
List<String> ids = sdo.getIds();
processResourceApplication.deleteByIds(ids);
return success();
}
public String slicedProcessMaterialItems(){
SDO sdo = getSDO();
String processId = sdo.getString("processId");
List<ProcessMaterialItem> processMaterialItems = processMaterialItemApplication.slicedProcessMaterialItems(processId);
return packGridDataAndResult(processMaterialItems);
}
public String deleteProcessMaterialItem(){
SDO sdo = getSDO();
List<String> ids = sdo.getIds();
processMaterialItemApplication.deleteByIds(ids);
return success();
}
}
......@@ -14,7 +14,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -136,4 +135,5 @@ public class TechnologyController extends CommonController {
TechnologyVo technologyVo = technologyApplication.findTechnologyByTechnologyIdId(technologyId);
return forward("technologyDetail",technologyVo);
}
}
......@@ -26,8 +26,8 @@ public class ProcessMaterialItem implements Serializable {
/**
* 工艺ID
*/
@Column(name = "technology_process_id")
private String technologyProcessId;
@Column(name = "process_id")
private String processId;
/**
* 物料ID
......@@ -74,7 +74,7 @@ public class ProcessMaterialItem implements Serializable {
}
ProcessMaterialItem other = (ProcessMaterialItem) that;
return (this.getProcessMaterialItemId() == null ? other.getProcessMaterialItemId() == null : this.getProcessMaterialItemId().equals(other.getProcessMaterialItemId()))
&& (this.getTechnologyProcessId() == null ? other.getTechnologyProcessId() == null : this.getTechnologyProcessId().equals(other.getTechnologyProcessId()))
&& (this.getProcessId() == null ? other.getProcessId() == null : this.getProcessId().equals(other.getProcessId()))
&& (this.getMaterialId() == null ? other.getMaterialId() == null : this.getMaterialId().equals(other.getMaterialId()))
&& (this.getMaterialNumber() == null ? other.getMaterialNumber() == null : this.getMaterialNumber().equals(other.getMaterialNumber()))
&& (this.getMaterialUnit() == null ? other.getMaterialUnit() == null : this.getMaterialUnit().equals(other.getMaterialUnit()))
......@@ -86,7 +86,7 @@ public class ProcessMaterialItem implements Serializable {
final int prime = 31;
int result = 1;
result = prime * result + ((getProcessMaterialItemId() == null) ? 0 : getProcessMaterialItemId().hashCode());
result = prime * result + ((getTechnologyProcessId() == null) ? 0 : getTechnologyProcessId().hashCode());
result = prime * result + ((getProcessId() == null) ? 0 : getProcessId().hashCode());
result = prime * result + ((getMaterialId() == null) ? 0 : getMaterialId().hashCode());
result = prime * result + ((getMaterialNumber() == null) ? 0 : getMaterialNumber().hashCode());
result = prime * result + ((getMaterialUnit() == null) ? 0 : getMaterialUnit().hashCode());
......@@ -101,7 +101,7 @@ public class ProcessMaterialItem implements Serializable {
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", processMaterialItemId=").append(processMaterialItemId);
sb.append(", technologyProcessId=").append(technologyProcessId);
sb.append(", technologyProcessId=").append(processId);
sb.append(", materialId=").append(materialId);
sb.append(", materialNumber=").append(materialNumber);
sb.append(", materialUnit=").append(materialUnit);
......
......@@ -26,8 +26,8 @@ public class ProcessResource implements Serializable {
/**
* 所属工序ID
*/
@Column(name = "technology_process_id")
private String technologyProcessId;
@Column(name = "process_id")
private String processId;
/**
* 使用的资源ID
......@@ -55,7 +55,7 @@ public class ProcessResource implements Serializable {
}
ProcessResource other = (ProcessResource) that;
return (this.getProcessResourceId() == null ? other.getProcessResourceId() == null : this.getProcessResourceId().equals(other.getProcessResourceId()))
&& (this.getTechnologyProcessId() == null ? other.getTechnologyProcessId() == null : this.getTechnologyProcessId().equals(other.getTechnologyProcessId()))
&& (this.getProcessId() == null ? other.getProcessId() == null : this.getProcessId().equals(other.getProcessId()))
&& (this.getResourceId() == null ? other.getResourceId() == null : this.getResourceId().equals(other.getResourceId()))
&& (this.getVersion() == null ? other.getVersion() == null : this.getVersion().equals(other.getVersion()));
}
......@@ -65,7 +65,7 @@ public class ProcessResource implements Serializable {
final int prime = 31;
int result = 1;
result = prime * result + ((getProcessResourceId() == null) ? 0 : getProcessResourceId().hashCode());
result = prime * result + ((getTechnologyProcessId() == null) ? 0 : getTechnologyProcessId().hashCode());
result = prime * result + ((getProcessId() == null) ? 0 : getProcessId().hashCode());
result = prime * result + ((getResourceId() == null) ? 0 : getResourceId().hashCode());
result = prime * result + ((getVersion() == null) ? 0 : getVersion().hashCode());
return result;
......@@ -78,7 +78,7 @@ public class ProcessResource implements Serializable {
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", processResourceId=").append(processResourceId);
sb.append(", technologyProcessId=").append(technologyProcessId);
sb.append(", technologyProcessId=").append(processId);
sb.append(", resourceId=").append(resourceId);
sb.append(", version=").append(version);
sb.append(", serialVersionUID=").append(serialVersionUID);
......
......@@ -11,5 +11,5 @@ import java.util.List;
* @Description:
*/
public interface ProcessMaterialItemRepository extends JpaRepository<ProcessMaterialItem,String> {
List<ProcessMaterialItem> findByTechnologyProcessId(String technologyProcessId);
List<ProcessMaterialItem> findByProcessId(String processId);
}
......@@ -11,5 +11,5 @@ import java.util.List;
* @Description:
*/
public interface ProcessResourceRepository extends JpaRepository<ProcessResource,String> {
List<ProcessResource> findByTechnologyProcessId(String technologyProcessId);
List<ProcessResource> findByProcessId(String processId);
}
package com.huigou.topsun.technology.vo;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.io.Serializable;
/**
* 工序资源
* @TableName process_resource
*/
@Data
public class ProcessResourceVo implements Serializable {
/**
* ID
*/
private String processResourceId;
/**
* 所属工序ID
*/
private String processId;
/**
* 使用的资源ID
*/
private String resourceId;
/**
* 版本号
*/
private String version;
/**
* 资源名称
*/
private String resourceName;
}
\ No newline at end of file
package com.huigou.topsun.util;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.UUID;
public class CommonUtil {
......@@ -13,4 +17,29 @@ public class CommonUtil {
return uuid;
}
/**
* 实体类转Map
* @param obj
* @return
*/
public static HashMap<String, String> entityToMap(Object obj) {
HashMap<String, String> map = new HashMap();
for (Field field : obj.getClass().getDeclaredFields()){
try {
boolean flag = field.isAccessible();
field.setAccessible(true);
Object o = field.get(obj);
if (o != null){
Field contField = obj.getClass().getDeclaredField(field.getName());
JsonProperty voField = contField.getAnnotation(JsonProperty.class);
String s = voField.value();
map.put(s, o.toString());
}
field.setAccessible(flag);
} catch (Exception e) {
e.printStackTrace();
}
}
return map;
}
}
......@@ -59,10 +59,10 @@
pc.print_opposite_color
FROM proofing_make_base_info pi
inner JOIN work_instruction_apply wa ON wa.proofing_make_id = pi.proofing_make_id
LEFT JOIN proofing_make_looked pl ON pl.proofing_make_id = pi.proofing_make_id
LEFT JOIN proofing_make_pd_published_conf pc ON pc.proofing_make_id = pi.proofing_make_id
left join product p on pi.product_code=p.product_code
left join product_detail pd on pd.product_id=p.product_id
inner JOIN proofing_make_looked pl ON pl.proofing_make_id = pi.proofing_make_id
inner JOIN proofing_make_pd_published_conf pc ON pc.proofing_make_id = pi.proofing_make_id
inner join product p on pi.product_code=p.product_code
inner join product_detail pd on pd.product_id=p.product_id
</sql>
<field name="产品id" title="产品id" code="productId" width="200" />
<field name="产品编号" title="产品编号" code="productCode" width="200" />
......
<?xml version="1.0" encoding="UTF-8"?>
<query-mappings>
<query name="slicedProcessResourceList" label="工序资源表" table="process_resource">
<sql-query>
SELECT
pr.process_resource_id,
pr.process_id,
pr.resource_id,
CASE WHEN p.process_type = 'pakeage' THEN
( SELECT gxmc FROM res_bz t WHERE t.id = pr.resource_id )
WHEN p.process_type = 'printing' THEN
( SELECT gxmc FROM res_ys t WHERE t.id = pr.resource_id )
WHEN p.process_type = 'cropping' THEN
( SELECT gxmc FROM res_cj t WHERE t.id = pr.resource_id ) ELSE '' end AS resource_name
FROM
process_resource pr left join process p on p.process_id = pr.process_id
WHERE pr.process_id = ?
</sql-query>
</query>
</query-mappings>
\ No newline at end of file
......@@ -28,7 +28,7 @@
technology t
LEFT JOIN technology_process tp ON t.technology_id = tp.technology_id
LEFT JOIN process p ON tp.process_id = p.process_id
LEFT JOIN process_resource pr ON pr.technology_process_id = tp.technology_process_id
LEFT JOIN process_resource pr ON pr.process_id = p.process_id
where 1=1
</sql-query>
<condition column="product_id" name="productId" symbol="in" alias="t"/>
......
......@@ -12,7 +12,7 @@
p.process_content,
p.process_type,
p.process_remark,
p.work_hours,
p.work_hours<!--,
pr.resource_id,
CASE WHEN p.process_type = 'pakeage' THEN
( SELECT gxmc FROM res_bz t WHERE t.id = pr.resource_id )
......@@ -25,12 +25,10 @@
mi.material_unit,
mi.material_number,
mi.material_json,
mi.process_material_item_id
mi.process_material_item_id-->
FROM
technology_process tp
LEFT JOIN process p ON tp.process_id = p.process_id
LEFT JOIN process_resource pr ON pr.technology_process_id = tp.technology_process_id
LEFT JOIN process_material_item mi ON tp.technology_process_id = mi.technology_process_id
WHERE tp.technology_id = ?
</sql-query>
</query>
......
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