处理签批格式

This commit is contained in:
wanggeng 2022-07-07 11:23:07 +08:00
parent fef1dfc259
commit 2a4f16aa52
13 changed files with 246 additions and 189 deletions

View File

@ -4,6 +4,7 @@ import ink.wgink.exceptions.RemoveException;
import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.SearchException;
import ink.wgink.exceptions.UpdateException; import ink.wgink.exceptions.UpdateException;
import ink.wgink.interfaces.init.IInitBaseTable;
import ink.wgink.module.form.pojo.dtos.docno.DocNoDTO; import ink.wgink.module.form.pojo.dtos.docno.DocNoDTO;
import ink.wgink.module.form.pojo.pos.docno.DocNoPO; import ink.wgink.module.form.pojo.pos.docno.DocNoPO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -19,7 +20,7 @@ import java.util.Map;
* @Version: 3.0 * @Version: 3.0
**/ **/
@Repository @Repository
public interface IDocNoDao { public interface IDocNoDao extends IInitBaseTable {
/** /**
* 新增文号 * 新增文号

View File

@ -4,6 +4,7 @@ import ink.wgink.exceptions.RemoveException;
import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.SearchException;
import ink.wgink.exceptions.UpdateException; import ink.wgink.exceptions.UpdateException;
import ink.wgink.interfaces.init.IInitBaseTable;
import ink.wgink.module.form.pojo.dtos.docnolog.DocNoLogDTO; import ink.wgink.module.form.pojo.dtos.docnolog.DocNoLogDTO;
import ink.wgink.module.form.pojo.pos.docnolog.DocNoLogPO; import ink.wgink.module.form.pojo.pos.docnolog.DocNoLogPO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -19,7 +20,7 @@ import java.util.Map;
* @Version: 3.0 * @Version: 3.0
**/ **/
@Repository @Repository
public interface IDocNoLogDao { public interface IDocNoLogDao extends IInitBaseTable {
/** /**
* 新增文号日志 * 新增文号日志

View File

@ -36,6 +36,8 @@ public class DocNoDTO {
private String creator; private String creator;
@ApiModelProperty(name = "gmtModified", value = "修改时间") @ApiModelProperty(name = "gmtModified", value = "修改时间")
private String gmtModified; private String gmtModified;
@ApiModelProperty(name = "latestDocNo", value = "最新文号")
private String latestDocNo;
public String getDocNoId() { public String getDocNoId() {
return docNoId == null ? "" : docNoId.trim(); return docNoId == null ? "" : docNoId.trim();
@ -125,5 +127,11 @@ public class DocNoDTO {
this.gmtModified = gmtModified; this.gmtModified = gmtModified;
} }
public String getLatestDocNo() {
return latestDocNo == null ? "" : latestDocNo.trim();
}
public void setLatestDocNo(String latestDocNo) {
this.latestDocNo = latestDocNo;
}
} }

View File

@ -27,6 +27,26 @@
<result column="creator" property="creator"/> <result column="creator" property="creator"/>
</resultMap> </resultMap>
<!-- 建表 -->
<update id="createTable">
CREATE TABLE IF NOT EXISTS `form_doc_no_log` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`doc_no_log_id` char(36) DEFAULT NULL COMMENT '主键',
`doc_no_id` char(36) DEFAULT NULL COMMENT '文号ID',
`doc_no_used_id` varchar(255) DEFAULT NULL COMMENT '使用ID同一类的文号相同',
`doc_no_year` int(4) DEFAULT NULL COMMENT '文号年',
`doc_no_month` int(2) DEFAULT NULL COMMENT '文号月',
`doc_no_day` int(2) DEFAULT NULL COMMENT '文号日',
`doc_no_nu` int(11) DEFAULT NULL COMMENT '文号',
`doc_no_full` varchar(255) DEFAULT NULL COMMENT '完整文号',
`gmt_create` datetime DEFAULT NULL COMMENT '创建时间',
`creator` char(36) DEFAULT NULL COMMENT '创建人',
PRIMARY KEY (`id`),
KEY `doc_no_id` (`doc_no_id`),
KEY `doc_no_id_2` (`doc_no_id`,`doc_no_used_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文号日志';
</update>
<!-- 新增文号日志 --> <!-- 新增文号日志 -->
<insert id="save" parameterType="map"> <insert id="save" parameterType="map">
INSERT INTO form_doc_no_log( INSERT INTO form_doc_no_log(

View File

@ -33,6 +33,28 @@
<result column="is_delete" property="isDelete"/> <result column="is_delete" property="isDelete"/>
</resultMap> </resultMap>
<!-- 建表 -->
<update id="createTable">
CREATE TABLE IF NOT EXISTS `form_doc_no` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`doc_no_id` char(36) DEFAULT NULL COMMENT '主键',
`title` varchar(255) DEFAULT NULL COMMENT '标题',
`summary` varchar(500) DEFAULT NULL COMMENT '描述',
`type` varchar(255) DEFAULT 'auto' COMMENT '类型always一直累加year按年累加month按月累加day按日累加manual手动',
`template` varchar(255) DEFAULT NULL COMMENT '模板',
`start_nu` int(11) DEFAULT NULL COMMENT '开始编号',
`nu_length` int(11) DEFAULT NULL COMMENT '编号长度',
`latest_doc_no` varchar(255) DEFAULT NULL COMMENT '最新文号',
`is_active` int(1) DEFAULT '1' COMMENT '是否激活',
`gmt_create` datetime DEFAULT NULL COMMENT '创建时间',
`creator` char(36) DEFAULT NULL COMMENT '创建人',
`gmt_modified` datetime DEFAULT NULL COMMENT '修改时间',
`modifier` char(36) DEFAULT NULL COMMENT '修改人',
`is_delete` int(1) DEFAULT '0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='文号';
</update>
<!-- 新增文号 --> <!-- 新增文号 -->
<insert id="save" parameterType="map"> <insert id="save" parameterType="map">
INSERT INTO form_doc_no( INSERT INTO form_doc_no(

View File

@ -78,29 +78,6 @@ function OaDocNo(layui) {
}); });
} }
/**
* 设置文号字段
* @param data
*/
this.initDocNo = function (data) {
var docnos = $('.docno');
if (docnos.length == 0) {
return;
}
$.each(docnos, function (index, item) {
var selects = $(item).find('select');
var select = selects[0];
var docNoField = select.id;
for(var key in data) {
if(key == docNoField) {
docNoField[key +'Text'] = docNoField[key];
delete docNoField[key];
break;
}
}
})
}
/** /**
* 设置文号 * 设置文号
* @param formData * @param formData

View File

@ -6,10 +6,12 @@ function OaFormUtil(layui) {
var form = layui.form; var form = layui.form;
var restAjax = layui.restajax; var restAjax = layui.restajax;
var processImageEnlargeScale = 0; var processImageEnlargeScale = 0;
// 全屏 // 全屏
function fullPage() { function fullPage() {
$('.layui-card-body').css('height', (win.height() - 75) + 'px'); $('.layui-card-body').css('height', (win.height() - 75) + 'px');
} }
fullPage(); fullPage();
// 消息位置 // 消息位置
@ -75,13 +77,13 @@ function OaFormUtil(layui) {
if (!jointlySigns) { if (!jointlySigns) {
continue; continue;
} }
var signListDom = '<div style="text-align: left;"><span>记录</span>'; var signListDom = '<div style="text-align: left;">';
for (var i = 0, item; item = jointlySigns[i++];) { for (var i = 0, item; item = jointlySigns[i++];) {
signListDom += [ signListDom += [
'<div>', '<div>',
' <span>' + item.content + '</span>', ' <span>' + item.content + '</span>',
' <span>' + item.userName + '</span>', ' <span>->' + item.userName + '</span>',
' <span>' + item.time + '</span>', ' <span>->' + item.time + '</span>',
'</div>' '</div>'
].join(''); ].join('');
} }
@ -107,7 +109,7 @@ function OaFormUtil(layui) {
} }
var jointlySignListText = ''; var jointlySignListText = '';
for (var i = 0, item; item = jointlySigns[i++];) { for (var i = 0, item; item = jointlySigns[i++];) {
jointlySignListText += item.content + ' ' + item.userName + ' ' + item.time + '\n'; jointlySignListText += item.content + ' ->' + item.userName + ' ->' + item.time + '\n';
} }
formData[key] = jointlySignListText; formData[key] = jointlySignListText;
} }
@ -213,6 +215,7 @@ function OaFormUtil(layui) {
} else { } else {
src = 'route/activiti/model/get-runtime-process-image/' + processInstanceId; src = 'route/activiti/model/get-runtime-process-image/' + processInstanceId;
} }
function initRuntimeProcessImage() { function initRuntimeProcessImage() {
var html = [ var html = [
'<div id="runtimeProcessImageBox">', '<div id="runtimeProcessImageBox">',
@ -830,7 +833,11 @@ function OaFormUtil(layui) {
layer.confirm('确定结束吗?', {title: false}, function (confirmLayerIndex) { layer.confirm('确定结束吗?', {title: false}, function (confirmLayerIndex) {
layer.close(confirmLayerIndex); layer.close(confirmLayerIndex);
layer.prompt({title: '请输入结束原因', formType: 2, offset: getMsgOffset(isApp)}, function (reason, promptIndex) { layer.prompt({
title: '请输入结束原因',
formType: 2,
offset: getMsgOffset(isApp)
}, function (reason, promptIndex) {
layer.close(promptIndex); layer.close(promptIndex);
var loadLayerIndex; var loadLayerIndex;
@ -864,6 +871,7 @@ function OaFormUtil(layui) {
// 抄送 // 抄送
$(document.body).on('click', '#ccBtn', function () { $(document.body).on('click', '#ccBtn', function () {
closeBtns(); closeBtns();
function getCcArray() { function getCcArray() {
var selectedUserIdArray = []; var selectedUserIdArray = [];
if (!$('#ccs').val()) { if (!$('#ccs').val()) {
@ -878,6 +886,7 @@ function OaFormUtil(layui) {
} }
return selectedUserIdArray; return selectedUserIdArray;
} }
var oaUserSelect = new OaUserSelect(layui, { var oaUserSelect = new OaUserSelect(layui, {
isApp: isApp, isApp: isApp,
headers: headers, headers: headers,
@ -911,7 +920,11 @@ function OaFormUtil(layui) {
} }
layer.confirm('确定转交吗?', {title: false}, function (confirmLayerIndex) { layer.confirm('确定转交吗?', {title: false}, function (confirmLayerIndex) {
layer.close(confirmLayerIndex); layer.close(confirmLayerIndex);
layer.prompt({title: '请输入转交原因', formType: 2, offset: getMsgOffset(isApp)}, function (reason, promptIndex) { layer.prompt({
title: '请输入转交原因',
formType: 2,
offset: getMsgOffset(isApp)
}, function (reason, promptIndex) {
layer.close(promptIndex); layer.close(promptIndex);
var loadLayerIndex; var loadLayerIndex;

View File

@ -51,9 +51,10 @@
<input type="hidden" id="formCode" value="${r'${formCode}'}"> <input type="hidden" id="formCode" value="${r'${formCode}'}">
<input type="hidden" id="formVersion" value="${r'${formVersion}'}"> <input type="hidden" id="formVersion" value="${r'${formVersion}'}">
</div> </div>
<script src="static/form/js/form-util.js?v=1"></script> <script src="static/form/js/form-util.js?v=2"></script>
<script src="static/form/js/oa-user-select.js?v=1"></script> <script src="static/form/js/oa-user-select.js?v=2"></script>
<script src="static/form/js/oa-form-util.js?v=1"></script> <script src="static/form/js/oa-form-util.js?v=2"></script>
<script src="static/form/js/oa-docno.js?v=2"></script>
<script src="static/form/js/app-oa-form-util.js?v=1"></script> <script src="static/form/js/app-oa-form-util.js?v=1"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script> <script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script> <script src="assets/layuiadmin/layui/layui.js"></script>
@ -73,6 +74,7 @@
var token = queryParams.token; var token = queryParams.token;
var formUtil = new FormUtil(layui, Viewer); var formUtil = new FormUtil(layui, Viewer);
var oaFormUtil = new OaFormUtil(layui); var oaFormUtil = new OaFormUtil(layui);
var oaDocNo = new OaDocNo(layui);
// 调试可先设置为空对象 // 调试可先设置为空对象
var confirmAssignees = ${r"${confirmAssignees}"}; var confirmAssignees = ${r"${confirmAssignees}"};
var fields = ${r"${fields}"}; var fields = ${r"${fields}"};
@ -103,6 +105,8 @@
formUtil.initAppUploadVideo('${field.data.id}', ${field.data.count}, {token: token}); formUtil.initAppUploadVideo('${field.data.id}', ${field.data.count}, {token: token});
<#elseif field.data.tag == 'uploadAudio'> <#elseif field.data.tag == 'uploadAudio'>
formUtil.initAppUploadAudio('${field.data.id}', ${field.data.count}, {token: token}); formUtil.initAppUploadAudio('${field.data.id}', ${field.data.count}, {token: token});
<#elseif field.data.tag == 'docno'>
oaDocNo.init();
<#elseif field.data.tag == 'date'> <#elseif field.data.tag == 'date'>
formUtil.initDate({ formUtil.initDate({
id: '${field.data.id}', id: '${field.data.id}',

View File

@ -48,10 +48,11 @@
<input type="hidden" id="formCode" value="${r'${formCode}'}"> <input type="hidden" id="formCode" value="${r'${formCode}'}">
<input type="hidden" id="formVersion" value="${r'${formVersion}'}"> <input type="hidden" id="formVersion" value="${r'${formVersion}'}">
</div> </div>
<script src="static/form/js/form-util.js?v=1"></script> <script src="static/form/js/form-util.js?v=2"></script>
<script src="static/form/js/oa-user-select.js?v=1"></script> <script src="static/form/js/oa-user-select.js?v=2"></script>
<script src="static/form/js/oa-form-util.js?v=1"></script> <script src="static/form/js/oa-form-util.js?v=2"></script>
<script src="static/form/js/app-oa-form-util.js?v=1"></script> <script src="static/form/js/oa-docno.js?v=2"></script>
<script src="static/form/js/app-oa-form-util.js?v=2"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script> <script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script> <script src="assets/layuiadmin/layui/layui.js"></script>
<script> <script>
@ -72,6 +73,7 @@
var processInstanceId = queryParams.processInstanceId; var processInstanceId = queryParams.processInstanceId;
var formUtil = new FormUtil(layui, Viewer); var formUtil = new FormUtil(layui, Viewer);
var oaFormUtil = new OaFormUtil(layui); var oaFormUtil = new OaFormUtil(layui);
var oaDocNo = new OaDocNo(layui);
// 初始化 // 初始化
function initData() { function initData() {
@ -117,6 +119,8 @@
formUtil.initShowUploadVideo('${field.data.id}', ${field.data.count}); formUtil.initShowUploadVideo('${field.data.id}', ${field.data.count});
<#elseif field.data.tag == 'uploadAudio'> <#elseif field.data.tag == 'uploadAudio'>
formUtil.initShowUploadAudio('${field.data.id}', ${field.data.count}); formUtil.initShowUploadAudio('${field.data.id}', ${field.data.count});
<#elseif field.data.tag == 'docno'>
oaDocNo.init();
<#elseif field.data.tag == 'date'> <#elseif field.data.tag == 'date'>
formUtil.initDate({ formUtil.initDate({
id: '${field.data.id}', id: '${field.data.id}',

View File

@ -54,10 +54,11 @@
<input type="hidden" id="formVersion" value="${r'${formVersion}'}"> <input type="hidden" id="formVersion" value="${r'${formVersion}'}">
<input type="hidden" id="isNeedClaim" value="${r'${isNeedClaim}'}"> <input type="hidden" id="isNeedClaim" value="${r'${isNeedClaim}'}">
</div> </div>
<script src="static/form/js/form-util.js?v=1"></script> <script src="static/form/js/form-util.js?v=2"></script>
<script src="static/form/js/oa-user-select.js?v=1"></script> <script src="static/form/js/oa-user-select.js?v=2"></script>
<script src="static/form/js/oa-form-util.js?v=1"></script> <script src="static/form/js/oa-form-util.js?v=2"></script>
<script src="static/form/js/app-oa-form-util.js?v=1"></script> <script src="static/form/js/oa-docno.js?v=2"></script>
<script src="static/form/js/app-oa-form-util.js?v=2"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script> <script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script> <script src="assets/layuiadmin/layui/layui.js"></script>
<script> <script>
@ -77,6 +78,7 @@
var uid = queryParams.uid; var uid = queryParams.uid;
var formUtil = new FormUtil(layui, Viewer); var formUtil = new FormUtil(layui, Viewer);
var oaFormUtil = new OaFormUtil(layui); var oaFormUtil = new OaFormUtil(layui);
var oaDocNo = new OaDocNo(layui);
// 调试可先设置为空对象 // 调试可先设置为空对象
var confirmAssignees = ${r"${confirmAssignees}"}; var confirmAssignees = ${r"${confirmAssignees}"};
var fields = ${r"${fields}"}; var fields = ${r"${fields}"};
@ -139,6 +141,8 @@
formUtil.initAppUploadVideo('${field.data.id}', ${field.data.count}, {token: token}); formUtil.initAppUploadVideo('${field.data.id}', ${field.data.count}, {token: token});
<#elseif field.data.tag == 'uploadAudio'> <#elseif field.data.tag == 'uploadAudio'>
formUtil.initAppUploadAudio('${field.data.id}', ${field.data.count}, {token: token}); formUtil.initAppUploadAudio('${field.data.id}', ${field.data.count}, {token: token});
<#elseif field.data.tag == 'docno'>
oaDocNo.init();
<#elseif field.data.tag == 'date'> <#elseif field.data.tag == 'date'>
formUtil.initDate({ formUtil.initDate({
id: '${field.data.id}', id: '${field.data.id}',

View File

@ -51,10 +51,10 @@
<input type="hidden" id="formCode" value="${r'${formCode}'}"> <input type="hidden" id="formCode" value="${r'${formCode}'}">
<input type="hidden" id="formVersion" value="${r'${formVersion}'}"> <input type="hidden" id="formVersion" value="${r'${formVersion}'}">
</div> </div>
<script src="static/form/js/form-util.js?v=1"></script> <script src="static/form/js/form-util.js?v=2"></script>
<script src="static/form/js/oa-user-select.js?v=1"></script> <script src="static/form/js/oa-user-select.js?v=2"></script>
<script src="static/form/js/oa-form-util.js?v=1"></script> <script src="static/form/js/oa-form-util.js?v=2"></script>
<script src="static/form/js/oa-docno.js?v=1"></script> <script src="static/form/js/oa-docno.js?v=2"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script> <script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script> <script src="assets/layuiadmin/layui/layui.js"></script>
<script> <script>

View File

@ -60,8 +60,9 @@
<input type="hidden" id="formCode" value="${r'${formCode}'}"> <input type="hidden" id="formCode" value="${r'${formCode}'}">
<input type="hidden" id="formVersion" value="${r'${formVersion}'}"> <input type="hidden" id="formVersion" value="${r'${formVersion}'}">
</div> </div>
<script src="static/form/js/form-util.js?v=1"></script> <script src="static/form/js/form-util.js?v=2"></script>
<script src="static/form/js/oa-form-util.js?v=1"></script> <script src="static/form/js/oa-form-util.js?v=2"></script>
<script src="static/form/js/oa-docno.js?v=2"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script> <script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script> <script src="assets/layuiadmin/layui/layui.js"></script>
<script> <script>
@ -81,6 +82,7 @@
var processInstanceId = queryParams.processInstanceId; var processInstanceId = queryParams.processInstanceId;
var formUtil = new FormUtil(layui, Viewer); var formUtil = new FormUtil(layui, Viewer);
var oaFormUtil = new OaFormUtil(layui); var oaFormUtil = new OaFormUtil(layui);
var oaDocNo = new OaDocNo(layui);
// 初始化 // 初始化
function initData() { function initData() {
@ -120,6 +122,8 @@
formUtil.initShowUploadVideo('${field.data.id}', ${field.data.count}); formUtil.initShowUploadVideo('${field.data.id}', ${field.data.count});
<#elseif field.data.tag == 'uploadAudio'> <#elseif field.data.tag == 'uploadAudio'>
formUtil.initShowUploadAudio('${field.data.id}', ${field.data.count}); formUtil.initShowUploadAudio('${field.data.id}', ${field.data.count});
<#elseif field.data.tag == 'docno'>
oaDocNo.init();
<#elseif field.data.tag == 'date'> <#elseif field.data.tag == 'date'>
formUtil.initDate({ formUtil.initDate({
id: '${field.data.id}', id: '${field.data.id}',

View File

@ -66,10 +66,10 @@
<input type="hidden" id="formVersion" value="${r'${formVersion}'}"> <input type="hidden" id="formVersion" value="${r'${formVersion}'}">
<input type="hidden" id="isNeedClaim" value="${r'${isNeedClaim}'}"> <input type="hidden" id="isNeedClaim" value="${r'${isNeedClaim}'}">
</div> </div>
<script src="static/form/js/form-util.js?v=1"></script> <script src="static/form/js/form-util.js?v=2"></script>
<script src="static/form/js/oa-user-select.js?v=1"></script> <script src="static/form/js/oa-user-select.js?v=2"></script>
<script src="static/form/js/oa-form-util.js?v=1"></script> <script src="static/form/js/oa-form-util.js?v=2"></script>
<script src="static/form/js/oa-docno.js?v=1"></script> <script src="static/form/js/oa-docno.js?v=2"></script>
<script src="assets/js/vendor/viewer/viewer.min.js"></script> <script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/layuiadmin/layui/layui.js"></script> <script src="assets/layuiadmin/layui/layui.js"></script>
<script> <script>
@ -120,7 +120,6 @@
uid uid
]), {}, null, function(code, data) { ]), {}, null, function(code, data) {
oaFormUtil.initSignList(data); oaFormUtil.initSignList(data);
oaDocNo.initDocNo(data)
var dataFormData = {}; var dataFormData = {};
for(var i in data) { for(var i in data) {