feat(sip): 优化订单

订单新增代理商
dev_1.0.0
chenhao 2025-09-10 10:54:24 +08:00
parent 6a3b274856
commit c688decad4
7 changed files with 50 additions and 17 deletions

View File

@ -28,7 +28,7 @@
<script th:src="@{/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js?v=1.22.6}"></script> <script th:src="@{/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js?v=1.22.6}"></script>
<!-- jquery-validate 表单验证插件 --> <!-- jquery-validate 表单验证插件 -->
<script th:src="@{/ajax/libs/validate/jquery.validate.min.js?v=1.21.0}"></script> <script th:src="@{/ajax/libs/validate/jquery.validate.min.js?v=1.21.0}"></script>
<script th:src="@{/ajax/libs/validate/jquery.validate.extend.js?v=1.21.0}"></script> <script th:src="@{/ajax/libs/validate/jquery.validate.extend.js?v=1.22.0}"></script>
<script th:src="@{/ajax/libs/validate/messages_zh.js?v=1.21.0}"></script> <script th:src="@{/ajax/libs/validate/messages_zh.js?v=1.21.0}"></script>
<!-- bootstrap-table 表格树插件 --> <!-- bootstrap-table 表格树插件 -->
<script th:src="@{/ajax/libs/bootstrap-table/extensions/tree/bootstrap-table-tree.min.js?v=1.22.6}"></script> <script th:src="@{/ajax/libs/bootstrap-table/extensions/tree/bootstrap-table-tree.min.js?v=1.22.6}"></script>

View File

@ -129,6 +129,16 @@
.padding-top-20{ .padding-top-20{
padding-top: 20px; padding-top: 20px;
} }
label.error {
position: relative;
color: #ef392b;
right: 0px;
font-size: 12px;
z-index: 99;
}
.select2-hidden-accessible + label.error, select.error + label.error{
right: 0px;
}
</style> </style>
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
@ -621,7 +631,7 @@
jsonValue: 'v', jsonValue: 'v',
data: data??[ data: data??[
{ {
n: '直签合同', n: '销售合同',
v: '0', v: '0',
s:[{ s:[{
n: '电子订单', n: '电子订单',
@ -636,10 +646,7 @@
{ {
n: '定制开发合同', n: '定制开发合同',
v: '2', v: '2',
s:[{ s:[
n: '电子订单',
v: '0'
},
{ {
n: '纸质合同', n: '纸质合同',
v: '1' v: '1'

View File

@ -39,6 +39,9 @@
class="fa fa-search"></i>&nbsp;搜索</a> class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
class="fa fa-refresh"></i>&nbsp;重置</a> class="fa fa-refresh"></i>&nbsp;重置</a>
<a class="btn btn-success btn-rounded btn-sm" onclick="addPartner()">
<i class="fa fa-plus"></i> 添加
</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -55,9 +58,13 @@
<script> <script>
var prefix = ctx + "system/partner"; var prefix = ctx + "system/partner";
function addPartner() {
$.modal.open("添加代理商", prefix + "/add?level=04");
}
$(function () { $(function () {
var options = { var options = {
url: prefix + "/list", url: prefix + "/list",
createUrl: prefix + "/add",
showSearch: true, showSearch: true,
showColumns: false, showColumns: false,
showToggle: false, showToggle: false,

View File

@ -5,8 +5,7 @@
</head> </head>
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<div class="col-xs-12"><label class="col-sm-12 control-label" style=" text-align: c <div id="showTitle" class="col-xs-12"><label class="col-sm-12 control-label" style=" text-align: center;
\enter;
font-size: 20px; font-size: 20px;
color: #f8ac59;">创建代理商之前请先创建代理商用户</label></div> color: #f8ac59;">创建代理商之前请先创建代理商用户</label></div>
<form class="form-horizontal m" id="form-partner-add"> <form class="form-horizontal m" id="form-partner-add">
@ -60,18 +59,18 @@
</div> </div>
<div class="col-xs-6"> <div class="col-xs-6">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label is-required">邮件:</label> <label id="contactEmailLabel" class="col-sm-4 control-label is-required contact-email">邮件:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="contactEmail" class="form-control" required type="text"> <input id="contactEmail" name="contactEmail" class="form-control contact-email" required type="text">
</div> </div>
</div> </div>
</div> </div>
<div class="col-xs-6"> <div class="col-xs-6">
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 control-label is-required">系统用户:</label> <label class="col-sm-4 control-label is-required system-user">系统用户:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input name="systemUserName" onclick="selectPeople()" class="form-control" required type="text"> <input name="systemUserName" onclick="selectPeople()" class="form-control system-user" required type="text">
<input name="systemUserId" class="form-control" required type="hidden"> <input name="systemUserId" class="form-control system-user" required type="hidden">
</div> </div>
</div> </div>
</div> </div>
@ -105,6 +104,7 @@
<th:block th:include="include :: jquery-cxselect-js" /> <th:block th:include="include :: jquery-cxselect-js" />
<script th:inline="javascript"> <script th:inline="javascript">
var prefix = ctx + "system/partner" var prefix = ctx + "system/partner"
const initLevel=[[${level}]]
$("#form-partner-add").validate({ $("#form-partner-add").validate({
focusCleanup: true focusCleanup: true
}); });
@ -118,8 +118,22 @@
}); });
$(function (){
if(initLevel){
$("#showTitle").css("display","none");
$("select[name='level']").val(initLevel);
$("select[name='level']").attr("disabled",true);
$(".contact-email").removeClass("is-required")
$(".contact-email").attr("required",false)
$(".system-user").attr("required",false)
$(".system-user").removeClass("is-required")
}
})
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$("select[name='level']").attr("disabled",false);
$.operate.save(prefix + "/add", $('#form-partner-add').serialize()); $.operate.save(prefix + "/add", $('#form-partner-add').serialize());
} }
} }

View File

@ -86,17 +86,18 @@ public class PartnerInfoController extends BaseController
/** /**
* *
*/ */
@RequiresPermissions("system:partner:add") // @RequiresPermissions("system:partner:add")
@GetMapping("/add") @GetMapping("/add")
public String add() public String add(String level,ModelMap modelMap)
{ {
modelMap.put("level",level);
return prefix + "/add"; return prefix + "/add";
} }
/** /**
* *
*/ */
@RequiresPermissions("system:partner:add") // @RequiresPermissions("system:partner:add")
@Log(title = "供应商管理", businessType = BusinessType.INSERT) @Log(title = "供应商管理", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody

View File

@ -2,6 +2,8 @@ package com.ruoyi.sip.service.impl;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;

View File

@ -387,7 +387,8 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
} }
if (ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode().equals(projectOrderInfo.getOrderStatus())) { if (ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode().equals(projectOrderInfo.getOrderStatus())) {
List<PartnerInfo> partnerInfos = partnerInfoService.selectPartnerInfoByCode(Collections.singletonList(projectOrderInfo.getPartnerCode())); List<PartnerInfo> partnerInfos = partnerInfoService.selectPartnerInfoByCode(Collections.singletonList(projectOrderInfo.getPartnerCode()));
if (CollUtil.isEmpty(partnerInfos) || StringUtils.isEmpty(partnerInfos.get(0).getSystemUserId())) { //线下合同不走省代审批
if (ProjectOrderInfo.ProcessTypeEnum.ONLINE.getCode().equals(projectOrderInfo.getProcessType()) && (CollUtil.isEmpty(partnerInfos) || StringUtils.isEmpty(partnerInfos.get(0).getSystemUserId()))) {
throw new ServiceException(StrUtil.format("代理商配置[{}]未指定系统用户,无法提交审批", existProjectOrderInfo.getPartnerName())); throw new ServiceException(StrUtil.format("代理商配置[{}]未指定系统用户,无法提交审批", existProjectOrderInfo.getPartnerName()));
} }
List<ProcessInstance> processInstanceList = todoService.listProcessInstance(existProjectOrderInfo.getOrderCode()); List<ProcessInstance> processInstanceList = todoService.listProcessInstance(existProjectOrderInfo.getOrderCode());
@ -405,6 +406,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
//启动流程 //启动流程
todoService.startProcess(getFlowBusinessKey(existProjectOrderInfo.getOrderCode(), projectOrderInfo.getProcessType()), new HashMap<String, Object>() {{ todoService.startProcess(getFlowBusinessKey(existProjectOrderInfo.getOrderCode(), projectOrderInfo.getProcessType()), new HashMap<String, Object>() {{
put("processTemplate", projectOrderInfo.getProcessTemplate()); put("processTemplate", projectOrderInfo.getProcessTemplate());
put("processType", projectOrderInfo.getProcessType());
put("applyUserName", ShiroUtils.getSysUser().getUserName()); put("applyUserName", ShiroUtils.getSysUser().getUserName());
put("applyUser", ShiroUtils.getUserId()); put("applyUser", ShiroUtils.getUserId());
put("partnerUser",partnerInfos.get(0).getSystemUserId()); put("partnerUser",partnerInfos.get(0).getSystemUserId());