Browse Source

[feat] 工程管理

修改开发修改单领料前端页面:去掉前端添加、删除、修改按钮;
开发修改单Controller新增 通过开发修改单号查询开发修改单详情集合后端接口;新增 加载审批弹窗后端接口;新增 自动绑定页面字段后端接口;新增 审批完成任务后端接口;新增 查找开发修改领料详情信息列表后端接口;
开发修改单领料详情新增:通过bomId和领料单号查询领料单详情集合后端接口;
新增工程经理审批开发修改单领料前端页面
新增工程主管审批开发修改单领料前端页面
新增驳回调整开发修改单领料前端页面
dev
liuxiaoxu 7 months ago
parent
commit
6a28267ca5
  1. 173
      ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderPickingController.java
  2. 6
      ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingDetailMapper.java
  3. 5
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderDetailService.java
  4. 6
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderPickingDetailService.java
  5. 8
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderDetailServiceImpl.java
  6. 9
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderPickingDetailServiceImpl.java
  7. 7
      ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderPickingDetailMapper.xml
  8. 9
      ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/developModifyorderPicking.html
  9. 338
      ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/taskGcjlVerify.html
  10. 338
      ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/taskGczgVerify.html
  11. 337
      ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/taskModifyApply.html

173
ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderPickingController.java

@ -1,9 +1,24 @@
package com.ruoyi.erp.controller;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.erp.domain.ErpDevelopModifyorder;
import com.ruoyi.erp.domain.*;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderPickingVo;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper;
import com.ruoyi.erp.service.IErpBomService;
import com.ruoyi.erp.service.IErpDevelopModifyorderDetailService;
import com.ruoyi.erp.service.IErpDevelopModifyorderPickingDetailService;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.system.domain.SysMakeOrder;
import com.ruoyi.system.domain.SysSalesOrderChild;
import com.ruoyi.system.service.ISysUserService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@ -11,13 +26,15 @@ import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.erp.domain.ErpDevelopModifyorderPicking;
import com.ruoyi.erp.service.IErpDevelopModifyorderPickingService;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 开发修改单领料Controller
*
@ -33,6 +50,27 @@ public class ErpDevelopModifyorderPickingController extends BaseController
@Autowired
private IErpDevelopModifyorderPickingService erpDevelopModifyorderPickingService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private TaskService taskService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private IProcessService processService;
@Autowired
private IErpDevelopModifyorderDetailService developModifyorderDetailService;
@Autowired
private IErpBomService erpBomService;
@Autowired
private IErpDevelopModifyorderPickingDetailService pickingDetailService;
@RequiresPermissions("erp:developModifyorderPicking:view")
@GetMapping()
public String developModifyorderPicking()
@ -90,6 +128,137 @@ public class ErpDevelopModifyorderPickingController extends BaseController
return AjaxResult.success();
}
/**
* 加载审批弹窗
* @param taskId
* @param mmap
* @return
*/
@GetMapping("/showVerifyDialog/{taskId}")
public String showVerifyDialog(@PathVariable("taskId") String taskId, ModelMap mmap) {
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String processInstanceId = task.getProcessInstanceId();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
ErpDevelopModifyorderPickingVo erpDevelopModifyorderPickingVo = erpDevelopModifyorderPickingService.selectErpDevelopModifyorderPickingById(new Long(processInstance.getBusinessKey()));
mmap.put("formData", erpDevelopModifyorderPickingVo);
mmap.put("taskId", taskId);
mmap.put("developOrderCode",erpDevelopModifyorderPickingVo.getDevelopOderCode());
String verifyName = task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1);
return prefix + "/task" + verifyName;
}
/**
* 自动绑定页面字段
*/
@ModelAttribute("preloadObj")
public ErpDevelopModifyorderPickingVo getObj(@RequestParam(value = "developOrderPickingId", required = false) Long developOrderPickingId, HttpSession session) {
if (developOrderPickingId != null) {
return erpDevelopModifyorderPickingService.selectErpDevelopModifyorderPickingById(developOrderPickingId);
}
return new ErpDevelopModifyorderPickingVo();
}
/**
* 完成任务
*
* @return
*/
@RequestMapping(value = "/complete/{taskId}", method = {RequestMethod.POST, RequestMethod.GET})
@ResponseBody
public AjaxResult complete(@PathVariable("taskId") String taskId, @RequestParam(value = "saveEntity", required = false) String saveEntity,
@ModelAttribute("preloadObj") ErpDevelopModifyorderPickingVo erpDevelopModifyorderPickingVo, HttpServletRequest request) {
boolean saveEntityBoolean = BooleanUtils.toBoolean(saveEntity);
//获取实例id
String instanceId = erpDevelopModifyorderPickingVo.getInstanceId();
//获取实例类型
String instanceType = erpDevelopModifyorderPickingVo.getInstanceType();
boolean approvedFlag = processService.complete(taskId, instanceId, erpDevelopModifyorderPickingVo.getApplyTitle(), erpDevelopModifyorderPickingVo.getPickingOrderCode(), "developModifyOrderPicking", new HashMap<String, Object>(), request);
if(!approvedFlag){
// 审核状态-审核拒绝
erpDevelopModifyorderPickingVo.setAuditStatus("2");
}
// 如果任务已结束更新业务表状态
boolean processIsFinish = processService.judgeProcessIsFinish(instanceId);
if (processIsFinish) {
// 审核通过
erpDevelopModifyorderPickingVo.setAuditStatus("1");
// String developOderCode = erpDevelopModifyorderPickingVo.getDevelopOrderCode();
//如果审核通过生成采购计划
// purchasePlanService.generatePurchasePlanByDevelopModifyorder(erpDevelopModifyorderPickingVo);
// SalesAftersalesNoticeVO tempSalesAftersalesNoticeVO = salesAftersalesNoticeService.selectSalesAftersalesNoticeByCode(aftersalesNoticeCode);
//
// //如果审核通过生成售后单
// aftersalesOrderService.generateAftersalesOrderBySalesAftersalesNotice(tempSalesAftersalesNoticeVO);
// 提交
if("submit".equals(instanceType)){
// 使用状态-是
// erpBomVo.setUseStatus("1");
}
// 作废
else if("cancel".equals(instanceType)){
// 使用状态-已作废
// erpBomVo.setUseStatus("2");
}
// 恢复
else if("restore".equals(instanceType)){
// 使用状态-是
// erpBomVo.setUseStatus("1");
}
}
erpDevelopModifyorderPickingService.updateErpDevelopModifyorderPicking(erpDevelopModifyorderPickingVo);
// 驳回申请后继续申请,可能修改表单
if (saveEntityBoolean) {
erpDevelopModifyorderPickingService.updateErpDevelopModifyorderPicking(erpDevelopModifyorderPickingVo);
}
return success("任务已完成");
}
/**
* 查找与开发修改单号有关的开发修改详情信息列表
*/
@PostMapping("/getDevelopModifyorderListByCode")
@ResponseBody
public TableDataInfo getDevelopModifyorderListByCode(@RequestParam("developOrderCode") String developOrderCode)
{
startPage();
List<ErpDevelopModifyorderDetail> list = developModifyorderDetailService.selectErpDevelopModifyorderDetailByCode(developOrderCode);
return getDataTable(list);
}
/**
* 查找开发修改领料详情信息列表
*/
@PostMapping("/getPickingDetailListByIdAndCode")
@ResponseBody
public TableDataInfo getPickingDetailListByIdAndCode(@RequestParam("parentId") Long parentId,
@RequestParam("pickingOrderCode") String pickingOrderCode
)
{
startPage();
// ErpBom erpBom = new ErpBom();
// erpBom.setParentId(parentId);
// List<ErpBom> erpBoms = erpBomService.selectErpBomAllLevelList(erpBom);
ErpDevelopModifyorderPickingDetail developModifyorderPickingDetail = new ErpDevelopModifyorderPickingDetail();
developModifyorderPickingDetail.setPickingOrderCode(pickingOrderCode);
developModifyorderPickingDetail.setBomId(parentId);
List<ErpDevelopModifyorderPickingDetail> list = pickingDetailService.selectPickingDetailListByIdAndCode(developModifyorderPickingDetail);
return getDataTable(list);
}
/**
* 修改开发修改单领料
*/

6
ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingDetailMapper.java

@ -74,4 +74,10 @@ public interface ErpDevelopModifyorderPickingDetailMapper
* @return 结果
*/
public int restoreErpDevelopModifyorderPickingDetailById(Long developOrderPickingDetailId);
/**
*
* 通过bomId和领料单号查询领料单详情集合
* */
List<ErpDevelopModifyorderPickingDetail> selectPickingDetailListByIdAndCode(ErpDevelopModifyorderPickingDetail developModifyorderPickingDetail);
}

5
ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderDetailService.java

@ -72,4 +72,9 @@ public interface IErpDevelopModifyorderDetailService
* @return
*/
int restoreErpDevelopModifyorderDetailById(Long developOrderDetailId);
/**
* 通过开发修改单号查询开发修改单详情集合
* */
List<ErpDevelopModifyorderDetail> selectErpDevelopModifyorderDetailByCode(String developOrderCode);
}

6
ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderPickingDetailService.java

@ -72,4 +72,10 @@ public interface IErpDevelopModifyorderPickingDetailService
* @return
*/
int restoreErpDevelopModifyorderPickingDetailById(Long developOrderPickingDetailId);
/**
*
* 通过bomId和领料单号查询领料单详情集合
* */
List<ErpDevelopModifyorderPickingDetail> selectPickingDetailListByIdAndCode(ErpDevelopModifyorderPickingDetail developModifyorderPickingDetail);
}

8
ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderDetailServiceImpl.java

@ -123,4 +123,12 @@ public class ErpDevelopModifyorderDetailServiceImpl implements IErpDevelopModify
{
return erpDevelopModifyorderDetailMapper.restoreErpDevelopModifyorderDetailById(developOrderDetailId);
}
/**
* 通过开发修改单号查询开发修改单详情集合
* */
@Override
public List<ErpDevelopModifyorderDetail> selectErpDevelopModifyorderDetailByCode(String developOrderCode) {
return erpDevelopModifyorderDetailMapper.selectDevelopModifyDetailMaterialByCode(developOrderCode);
}
}

9
ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderPickingDetailServiceImpl.java

@ -123,4 +123,13 @@ public class ErpDevelopModifyorderPickingDetailServiceImpl implements IErpDevelo
{
return erpDevelopModifyorderPickingDetailMapper.restoreErpDevelopModifyorderPickingDetailById(developOrderPickingDetailId);
}
/**
*
* 通过bomId和领料单号查询领料单详情集合
* */
@Override
public List<ErpDevelopModifyorderPickingDetail> selectPickingDetailListByIdAndCode(ErpDevelopModifyorderPickingDetail developModifyorderPickingDetail) {
return erpDevelopModifyorderPickingDetailMapper.selectPickingDetailListByIdAndCode(developModifyorderPickingDetail);
}
}

7
ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderPickingDetailMapper.xml

@ -55,7 +55,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectErpDevelopModifyorderPickingDetailVo"/>
where develop_order_picking_detail_id = #{developOrderPickingDetailId}
</select>
<select id="selectPickingDetailListByIdAndCode" parameterType="ErpDevelopModifyorderPickingDetail" resultMap="ErpDevelopModifyorderPickingDetailResult">
<include refid="selectErpDevelopModifyorderPickingDetailVo"/>
where picking_order_code = #{pickingOrderCode}
and bom_id = #{bomId}
</select>
<insert id="insertErpDevelopModifyorderPickingDetail" parameterType="ErpDevelopModifyorderPickingDetail" useGeneratedKeys="true" keyProperty="developOrderPickingDetailId">
insert into erp_develop_modifyorder_picking_detail
<trim prefix="(" suffix=")" suffixOverrides=",">

9
ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/developModifyorderPicking.html

@ -45,15 +45,6 @@
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="erp:developModifyorderPicking:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="erp:developModifyorderPicking:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="erp:developModifyorderPicking:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="erp:developModifyorderPicking:export">
<i class="fa fa-download"></i> 导出
</a>

338
ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/taskGcjlVerify.html

@ -0,0 +1,338 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改开发修改单领料')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-developModifyorderPicking-gcjl" th:object="${formData}">
<input name="developOrderPickingId" th:field="*{developOrderPickingId}" type="hidden">
<input name="taskId" th:field="*{taskId}" type="hidden">
<input name="taskName" th:field="*{taskName}" type="hidden">
<input name="instanceId" th:field="*{instanceId}" type="hidden">
<input name="instanceType" th:field="*{instanceType}" type="hidden">
<input type="hidden" name="p_COM_comment" />
<div class="form-group">
<label class="col-sm-3 control-label">开发修改单领料单号:</label>
<div class="col-sm-8">
<input name="pickingOrderCode" th:field="*{pickingOrderCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联生产单号:</label>
<div class="col-sm-8">
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">领料员:</label>
<div class="col-sm-8">
<input name="pickUser" th:field="*{pickUser}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">订单类型:</label>
<div class="col-sm-8">
<input name="orderType" th:field="*{orderType}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required" for="gcjlVerifyApproved">审批意见:</label>
<div class="col-sm-8">
<select name="p_B_gcjlVerifyApproved" id="gcjlVerifyApproved" class="form-control" required>
<option value=""></option>
<option value="true">同意</option>
<option value="false">拒绝</option>
</select>
</div>
</div>
</form>
<div class="container">
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-picking"></table>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:src="@{/js/activiti.js}"></script>
<script th:inline="javascript">
var prefix = ctx + "erp/developModifyorderPicking";
var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var levelDatas = [[${@dict.getType('bomLevel')}]];
var bomLevelSelectDatas = [[${@dict.getTypeSelect('bomLevel')}]];
var processMethodDatas = [[${@dict.getType('processMethod')}]];
var developOrderCode = [[${developOrderCode}]]
$("#form-developModifyorderPicking-gcjl").validate({
focusCleanup: true
});
function submitHandler() {
if ($('textarea[name="comment"]').val()) {
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val());
}
var taskId = [[${taskId}]];
// 发送 AJAX 请求到后端接口
$.operate.save(prefix + "/complete/" + taskId, $('#form-developModifyorderPicking-gcjl').serialize());
}
$("input[name='applyTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
// 选择采购物料
$(function(){
var options = {
id: 'bootstrap-table-picking',
url: prefix + "/getDevelopModifyorderListByCode",
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
uniqueId: "id",
pagination: false, // 设置不分页
sidePagination: "client",
detailView: true,
queryParams: queryParams,
onExpandRow : function(index, row, $detail) {
initChildTable(index, row, $detail);
},
columns: [
{
field: 'developOrderDetailId',
title: '主键id',
visible: false
},
{
field: 'bomId',
title: 'bom主键Id',
},
{
field: 'materialNo',
align: 'center',
title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
field: 'materialUnit',
align: 'center',
title: '单位',
},
{
field: 'materialBrand',
align: 'center',
title: '品牌'
},
{
field: 'materialDescribe',
align: 'center',
title: '描述'
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'materialNum',
align: 'center',
title: '订单数量',
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门',
visible: false
},
]
};
$.table.init(options);
})
initChildTable = function(index, row, $detail) {
var parentRow = row;
var childTableId = 'child_table_'+index;
$detail.html('<table id="'+childTableId+'"></table>');
// 将 parentRow 保存为表格的数据属性
$('#' + childTableId).data('parentRow', parentRow);
// BOM展示
$('#' + childTableId).bootstrapTable({
url: prefix + "/getPickingDetailListByIdAndCode",
method: 'post',
sidePagination: "server",
contentType: "application/x-www-form-urlencoded",
queryParams: {
parentId: parentRow.bomId,
pickingOrderCode: $("#pickingOrderCode").val()
},
columns: [
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'bomId',
title: 'BOM的Id',
visible: false,
formatter: function (value, row, index) {
var parentRow = $('#' + childTableId).data('parentRow'); // 从表格的数据属性中获取 parentRow
var curIndex = row.sortNo - 1;
return '<input class="hidden form-control" data-id="bomId_' + curIndex + '" name="developModifyorderPickingDetails[' + curIndex + '].bomId" value="' + parentRow.bomId + '">';
}
},
{
field: 'level',
title: '阶层',
formatter: function (value, row, index) {
return $.table.selectDictLabel(levelDatas, value);
}
},
{
field: 'bomNo',
title: 'BOM号',
formatter: function (value, row, index) {
if (value == null || value == '') {
return '/';
} else {
return value
}
}
},
{
field: 'materialNo',
align: 'center',
title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
field: 'materialUnit',
align: 'center',
title: '单位',
},
{
field: 'materialBrand',
align: 'center',
title: '品牌'
},
{
field: 'materialDescribe',
align: 'center',
title: '描述'
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门',
visible: false
},
{
field: 'useNum',
title: '用量',
formatter: function (value, row, index) {
if (value == null || value == '') {
return '/';
} else {
return value
}
}
},
{
field: 'lossRate',
title: '损耗率',
},
{
field: 'orderUseNum',
title: '订单用量',
},
{
field: 'availableStockNum',
title: '可用库存数',
},
{
field: 'hasPickNum',
title: '已领料数',
},
{
field: 'pickNum',
title: '本次领料数',
},
{
field: 'sortNo',
title: '排序',
visible: false
}],
// 当所有数据被加载时触发
onLoadSuccess: function (data) {
},
});
}
function queryParams(params) {
var curParams = {
// 传递参数查询参数
developOrderCode: developOrderCode
};
console.log(curParams);
return curParams;
}
</script>
</body>
</html>

338
ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/taskGczgVerify.html

@ -0,0 +1,338 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改开发修改单领料')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-developModifyorderPicking-gczg" th:object="${formData}">
<input name="developOrderPickingId" th:field="*{developOrderPickingId}" type="hidden">
<input name="taskId" th:field="*{taskId}" type="hidden">
<input name="taskName" th:field="*{taskName}" type="hidden">
<input name="instanceId" th:field="*{instanceId}" type="hidden">
<input name="instanceType" th:field="*{instanceType}" type="hidden">
<input type="hidden" name="p_COM_comment" />
<div class="form-group">
<label class="col-sm-3 control-label">开发修改单领料单号:</label>
<div class="col-sm-8">
<input name="pickingOrderCode" th:field="*{pickingOrderCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联生产单号:</label>
<div class="col-sm-8">
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">领料员:</label>
<div class="col-sm-8">
<input name="pickUser" th:field="*{pickUser}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">订单类型:</label>
<div class="col-sm-8">
<input name="orderType" th:field="*{orderType}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required" for="gczgVerifyApproved">审批意见:</label>
<div class="col-sm-8">
<select name="p_B_gczgVerifyApproved" id="gczgVerifyApproved" class="form-control" required>
<option value=""></option>
<option value="true">同意</option>
<option value="false">拒绝</option>
</select>
</div>
</div>
</form>
<div class="container">
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-picking"></table>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:src="@{/js/activiti.js}"></script>
<script th:inline="javascript">
var prefix = ctx + "erp/developModifyorderPicking";
var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var levelDatas = [[${@dict.getType('bomLevel')}]];
var bomLevelSelectDatas = [[${@dict.getTypeSelect('bomLevel')}]];
var processMethodDatas = [[${@dict.getType('processMethod')}]];
var developOrderCode = [[${developOrderCode}]]
$("#form-developModifyorderPicking-gczg").validate({
focusCleanup: true
});
function submitHandler() {
if ($('textarea[name="comment"]').val()) {
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val());
}
var taskId = [[${taskId}]];
// 发送 AJAX 请求到后端接口
$.operate.save(prefix + "/complete/" + taskId, $('#form-developModifyorderPicking-gczg').serialize());
}
$("input[name='applyTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
// 选择采购物料
$(function(){
var options = {
id: 'bootstrap-table-picking',
url: prefix + "/getDevelopModifyorderListByCode",
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
uniqueId: "id",
pagination: false, // 设置不分页
sidePagination: "client",
detailView: true,
queryParams: queryParams,
onExpandRow : function(index, row, $detail) {
initChildTable(index, row, $detail);
},
columns: [
{
field: 'developOrderDetailId',
title: '主键id',
visible: false
},
{
field: 'bomId',
title: 'bom主键Id',
},
{
field: 'materialNo',
align: 'center',
title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
field: 'materialUnit',
align: 'center',
title: '单位',
},
{
field: 'materialBrand',
align: 'center',
title: '品牌'
},
{
field: 'materialDescribe',
align: 'center',
title: '描述'
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'materialNum',
align: 'center',
title: '订单数量',
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门',
visible: false
},
]
};
$.table.init(options);
})
initChildTable = function(index, row, $detail) {
var parentRow = row;
var childTableId = 'child_table_'+index;
$detail.html('<table id="'+childTableId+'"></table>');
// 将 parentRow 保存为表格的数据属性
$('#' + childTableId).data('parentRow', parentRow);
// BOM展示
$('#' + childTableId).bootstrapTable({
url: prefix + "/getPickingDetailListByIdAndCode",
method: 'post',
sidePagination: "server",
contentType: "application/x-www-form-urlencoded",
queryParams: {
parentId: parentRow.bomId,
pickingOrderCode: $("#pickingOrderCode").val()
},
columns: [
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'bomId',
title: 'BOM的Id',
visible: false,
formatter: function (value, row, index) {
var parentRow = $('#' + childTableId).data('parentRow'); // 从表格的数据属性中获取 parentRow
var curIndex = row.sortNo - 1;
return '<input class="hidden form-control" data-id="bomId_' + curIndex + '" name="developModifyorderPickingDetails[' + curIndex + '].bomId" value="' + parentRow.bomId + '">';
}
},
{
field: 'level',
title: '阶层',
formatter: function (value, row, index) {
return $.table.selectDictLabel(levelDatas, value);
}
},
{
field: 'bomNo',
title: 'BOM号',
formatter: function (value, row, index) {
if (value == null || value == '') {
return '/';
} else {
return value
}
}
},
{
field: 'materialNo',
align: 'center',
title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
field: 'materialUnit',
align: 'center',
title: '单位',
},
{
field: 'materialBrand',
align: 'center',
title: '品牌'
},
{
field: 'materialDescribe',
align: 'center',
title: '描述'
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门',
visible: false
},
{
field: 'useNum',
title: '用量',
formatter: function (value, row, index) {
if (value == null || value == '') {
return '/';
} else {
return value
}
}
},
{
field: 'lossRate',
title: '损耗率',
},
{
field: 'orderUseNum',
title: '订单用量',
},
{
field: 'availableStockNum',
title: '可用库存数',
},
{
field: 'hasPickNum',
title: '已领料数',
},
{
field: 'pickNum',
title: '本次领料数',
},
{
field: 'sortNo',
title: '排序',
visible: false
}],
// 当所有数据被加载时触发
onLoadSuccess: function (data) {
},
});
}
function queryParams(params) {
var curParams = {
// 传递参数查询参数
developOrderCode: developOrderCode
};
console.log(curParams);
return curParams;
}
</script>
</body>
</html>

337
ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/taskModifyApply.html

@ -0,0 +1,337 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('驳回调整')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-developModifyorderPicking-modifyApply" th:object="${formData}">
<input name="developOrderPickingId" th:field="*{developOrderPickingId}" type="hidden">
<input name="taskId" th:field="*{taskId}" type="hidden">
<input name="taskName" th:field="*{taskName}" type="hidden">
<input name="instanceId" th:field="*{instanceId}" type="hidden">
<input name="instanceType" th:field="*{instanceType}" type="hidden">
<input type="hidden" name="p_COM_comment" />
<div class="form-group">
<label class="col-sm-3 control-label">开发修改单领料单号:</label>
<div class="col-sm-8">
<input name="pickingOrderCode" th:field="*{pickingOrderCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">关联生产单号:</label>
<div class="col-sm-8">
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">领料员:</label>
<div class="col-sm-8">
<input name="pickUser" th:field="*{pickUser}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">订单类型:</label>
<div class="col-sm-8">
<input name="orderType" th:field="*{orderType}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" for="reApply">是否继续申请:</label>
<div class="col-sm-8">
<select id="reApply" name="p_B_reApply" class="form-control m-b">
<option value="true">重新申请</option>
<option value="false">结束流程</option>
</select>
</div>
</div>
</form>
<div class="container">
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-picking"></table>
</div>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:src="@{/js/activiti.js}"></script>
<script th:inline="javascript">
var prefix = ctx + "erp/developModifyorderPicking";
var sysUnitClassDatas = [[${@dict.getType('sys_unit_class')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var levelDatas = [[${@dict.getType('bomLevel')}]];
var bomLevelSelectDatas = [[${@dict.getTypeSelect('bomLevel')}]];
var processMethodDatas = [[${@dict.getType('processMethod')}]];
var developOrderCode = [[${developOrderCode}]]
$("#form-developModifyorderPicking-modifyApply").validate({
focusCleanup: true
});
function submitHandler() {
if ($('textarea[name="comment"]').val()) {
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val());
}
var taskId = [[${taskId}]];
// 发送 AJAX 请求到后端接口
$.operate.save(prefix + "/complete/" + taskId, $('#form-developModifyorderPicking-modifyApply').serialize());
}
$("input[name='applyTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
// 选择采购物料
$(function(){
var options = {
id: 'bootstrap-table-picking',
url: prefix + "/getDevelopModifyorderListByCode",
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
uniqueId: "id",
pagination: false, // 设置不分页
sidePagination: "client",
detailView: true,
queryParams: queryParams,
onExpandRow : function(index, row, $detail) {
initChildTable(index, row, $detail);
},
columns: [
{
field: 'developOrderDetailId',
title: '主键id',
visible: false
},
{
field: 'bomId',
title: 'bom主键Id',
},
{
field: 'materialNo',
align: 'center',
title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
field: 'materialUnit',
align: 'center',
title: '单位',
},
{
field: 'materialBrand',
align: 'center',
title: '品牌'
},
{
field: 'materialDescribe',
align: 'center',
title: '描述'
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'materialNum',
align: 'center',
title: '订单数量',
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门',
visible: false
},
]
};
$.table.init(options);
})
initChildTable = function(index, row, $detail) {
var parentRow = row;
var childTableId = 'child_table_'+index;
$detail.html('<table id="'+childTableId+'"></table>');
// 将 parentRow 保存为表格的数据属性
$('#' + childTableId).data('parentRow', parentRow);
// BOM展示
$('#' + childTableId).bootstrapTable({
url: prefix + "/getPickingDetailListByIdAndCode",
method: 'post',
sidePagination: "server",
contentType: "application/x-www-form-urlencoded",
queryParams: {
parentId: parentRow.bomId,
pickingOrderCode: $("#pickingOrderCode").val()
},
columns: [
{
field: 'id',
title: '主键id',
visible: false
},
{
field: 'bomId',
title: 'BOM的Id',
visible: false,
formatter: function (value, row, index) {
var parentRow = $('#' + childTableId).data('parentRow'); // 从表格的数据属性中获取 parentRow
var curIndex = row.sortNo - 1;
return '<input class="hidden form-control" data-id="bomId_' + curIndex + '" name="developModifyorderPickingDetails[' + curIndex + '].bomId" value="' + parentRow.bomId + '">';
}
},
{
field: 'level',
title: '阶层',
formatter: function (value, row, index) {
return $.table.selectDictLabel(levelDatas, value);
}
},
{
field: 'bomNo',
title: 'BOM号',
formatter: function (value, row, index) {
if (value == null || value == '') {
return '/';
} else {
return value
}
}
},
{
field: 'materialNo',
align: 'center',
title: '料号'
},
{
field: 'materialName',
align: 'center',
title: '物料名称',
},
{
field: 'materialType',
align: 'center',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
field: 'materialUnit',
align: 'center',
title: '单位',
},
{
field: 'materialBrand',
align: 'center',
title: '品牌'
},
{
field: 'materialDescribe',
align: 'center',
title: '描述'
},
{
field: 'materialProcessMethod',
align: 'center',
title: '物料加工方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(processMethodDatas, value);
}
},
{
field: 'warehouseDept',
align: 'center',
title: '入库部门',
visible: false
},
{
field: 'useNum',
title: '用量',
formatter: function (value, row, index) {
if (value == null || value == '') {
return '/';
} else {
return value
}
}
},
{
field: 'lossRate',
title: '损耗率',
},
{
field: 'orderUseNum',
title: '订单用量',
},
{
field: 'availableStockNum',
title: '可用库存数',
},
{
field: 'hasPickNum',
title: '已领料数',
},
{
field: 'pickNum',
title: '本次领料数',
},
{
field: 'sortNo',
title: '排序',
visible: false
}],
// 当所有数据被加载时触发
onLoadSuccess: function (data) {
},
});
}
function queryParams(params) {
var curParams = {
// 传递参数查询参数
developOrderCode: developOrderCode
};
console.log(curParams);
return curParams;
}
</script>
</body>
</html>
Loading…
Cancel
Save