first conmit 02230223
commit
a0bf1fec0b
@ -0,0 +1,2 @@
|
|||||||
|
subcompanyid=2
|
||||||
|
companytype=1
|
Binary file not shown.
@ -0,0 +1,127 @@
|
|||||||
|
package weaver.shouwen.cronjob;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import weaver.conn.RecordSet;
|
||||||
|
import weaver.general.BaseBean;
|
||||||
|
import weaver.interfaces.schedule.BaseCronJob;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author:CL
|
||||||
|
* @date:2023/2/14 10:16
|
||||||
|
*/
|
||||||
|
public class DocreceiveunitTimeCron extends BaseCronJob {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LoggerFactory.getLogger("收发文单位job");
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
LOGGER.info(" com.weaver.shouwen.cronjob.DocreceiveunitTimeCron 已进入");
|
||||||
|
// 取到部门值
|
||||||
|
BaseBean bb = new BaseBean();
|
||||||
|
//所属机构
|
||||||
|
int subcompanyid = Integer.parseInt(bb.getPropValue("gongwenTimesubcompanyid", "subcompanyid"));
|
||||||
|
//外部单位
|
||||||
|
int companytype = Integer.parseInt(bb.getPropValue("gongwenTimesubcompanyid", "companytype"));
|
||||||
|
// 先查标准表 存入list
|
||||||
|
// String selBzSql = "SELECT id,receiveunitname,canceled from docreceiveunit where subcompanyid="+subcompanyid+" and companytype="+companytype+"";
|
||||||
|
String selBzSql = "SELECT id,receiveunitname,canceled from docreceiveunit where subcompanyid=? and companytype=?";
|
||||||
|
RecordSet recordSet = new RecordSet();
|
||||||
|
boolean flag = recordSet.executeQuery(selBzSql,subcompanyid,companytype);
|
||||||
|
List<Map<String, Object>> docList = new ArrayList<>();
|
||||||
|
if (flag) {
|
||||||
|
while (recordSet.next()) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
// 标准表里1是封存0是启用
|
||||||
|
map.put("id", recordSet.getString("id"));
|
||||||
|
map.put("单位名称", recordSet.getString("receiveunitname"));
|
||||||
|
map.put("是否封存", recordSet.getString("canceled"));
|
||||||
|
|
||||||
|
docList.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 再查建模表 存入list
|
||||||
|
String selJmSql = "SELECT id,dwmc,sjzt from formtable_main_18";
|
||||||
|
recordSet = new RecordSet();
|
||||||
|
boolean flag2 = recordSet.executeQuery(selJmSql);
|
||||||
|
List<Map<String, Object>> jianmoList = new ArrayList<>();
|
||||||
|
if (flag2) {
|
||||||
|
while (recordSet.next()) {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
// 建模表里1是启用0是封存
|
||||||
|
map.put("id", recordSet.getString("id"));
|
||||||
|
map.put("单位名称", recordSet.getString("dwmc"));
|
||||||
|
map.put("是否封存", recordSet.getString("sjzt"));
|
||||||
|
jianmoList.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 如果测试表开始就无数据 直接插入 建模表中数据
|
||||||
|
if (docList.size() == 0) {
|
||||||
|
// 封存
|
||||||
|
String canceled = null;
|
||||||
|
for (Map<String, Object> jianmoMap : jianmoList) {
|
||||||
|
String insertSql = "INSERT into docreceiveunit " +
|
||||||
|
"(receiveunitname,companytype,subcompanyid,showorder,canceled) VALUES" +
|
||||||
|
"('" + jianmoMap.get("单位名称") + "','"+companytype+"','" + subcompanyid + "','.00'," + ("0".equals(jianmoMap.get("是否封存"))?"1":"0") + ")";
|
||||||
|
boolean b = recordSet.execute(insertSql);
|
||||||
|
LOGGER.info(" com.weaver.shouwen.cronjob.DocreceiveunitTimeCron 标准表内为空 插入数据行");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 比对结果
|
||||||
|
String insertSql = null;
|
||||||
|
String updateSql = null;
|
||||||
|
HashSet<String> jianmoNameSet = new HashSet<>();
|
||||||
|
HashSet<String> docNameSet = new HashSet<>();
|
||||||
|
HashSet<String> deleteset = new HashSet<>();
|
||||||
|
for (Map<String, Object> jianmoMap : jianmoList) {
|
||||||
|
jianmoNameSet.add((String) jianmoMap.get("单位名称"));
|
||||||
|
// 判断是否需要新增
|
||||||
|
Integer fg = 0;
|
||||||
|
for (Map<String, Object> docMap : docList) {
|
||||||
|
//如果建模表没有与标准表匹配的单位名称,则删除标准表的数据
|
||||||
|
docNameSet.add((String) docMap.get("单位名称") );
|
||||||
|
|
||||||
|
// 如果单位名称一样 但封存状态不一样 就更新他的封存状态
|
||||||
|
if (docMap.get("单位名称").equals(jianmoMap.get("单位名称")) && docMap.get("是否封存").equals(jianmoMap.get("是否封存"))) {
|
||||||
|
// 更新封存状态
|
||||||
|
updateSql = "UPDATE docreceiveunit set canceled='" + ("0".equals(jianmoMap.get("是否封存"))?"1":"0") + "' WHERE receiveunitname='" + jianmoMap.get("单位名称") + "'";
|
||||||
|
boolean b = recordSet.executeUpdate(updateSql);
|
||||||
|
LOGGER.info(" com.weaver.shouwen.cronjob.DocreceiveunitTimeCron 更新数据sql执行结果 [{}]", b);
|
||||||
|
}
|
||||||
|
// 如果有一样的 就break
|
||||||
|
if (docMap.get("单位名称").equals(jianmoMap.get("单位名称"))) {
|
||||||
|
fg = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 遍历完如果没有一样的就加入
|
||||||
|
if (fg == 0) {
|
||||||
|
insertSql = "INSERT into docreceiveunit " +
|
||||||
|
"(receiveunitname,companytype,subcompanyid,showorder,canceled) VALUES" +
|
||||||
|
"('" + jianmoMap.get("单位名称") + "','"+companytype+"','" + subcompanyid + "','.00',"+("0".equals(jianmoMap.get("是否封存"))?"1":"0")+")";
|
||||||
|
boolean b = recordSet.execute(insertSql);
|
||||||
|
LOGGER.info(" com.weaver.shouwen.cronjob.DocreceiveunitTimeCron 新增了数据");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//如果建模表没有与标准表匹配的单位名称,则删除标准表的数据
|
||||||
|
deleteset.addAll(docNameSet);
|
||||||
|
deleteset.removeAll(jianmoNameSet);
|
||||||
|
String deleteSql=null;
|
||||||
|
String id="";
|
||||||
|
for(String receiveunitname: deleteset){
|
||||||
|
deleteSql= "select id from docreceiveunit where receiveunitname=?";
|
||||||
|
recordSet.executeQuery(deleteSql,receiveunitname);
|
||||||
|
if (recordSet.next()) {
|
||||||
|
id = recordSet.getString("id");
|
||||||
|
}
|
||||||
|
deleteSql="delete from docreceiveunit where id="+id;
|
||||||
|
recordSet.execute(deleteSql);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
@ -0,0 +1,14 @@
|
|||||||
|
在流程或其他建模表单新增建模数据时,不另外弹出新页面,在本页面弹出小窗口就可新增,新增后可以直接把新增值付给流程字段
|
||||||
|
备注:现新增字段是特殊字段-自定义链接
|
||||||
|
|
||||||
|
具体如下描述:
|
||||||
|
|
||||||
|
以上图片的新增字段可直接连接到后台模块"收发文单位管理表"的新增页面
|
||||||
|
如下图
|
||||||
|
|
||||||
|
|
||||||
|
现效果:输入新增名称。点击保存后,需要关掉页面,再到开始的表单页面选择刚刚新增的字段。
|
||||||
|
希望效果:点击"新增"按钮时,弹出小窗口新增,新增点击保存后页面可以直接关掉页面,并把新增值付给表单字段。
|
||||||
|
|
||||||
|
|
||||||
|
2.在收发文单位管理表中的新建保存、编辑保存、删除、封存操作都要实时同步给系统自带的收发文单位管理表
|
@ -0,0 +1,24 @@
|
|||||||
|
-- 先查标准表
|
||||||
|
SELECT receiveunitname,canceled from docreceiveunit
|
||||||
|
|
||||||
|
SELECT count(*) from docreceiveunit
|
||||||
|
|
||||||
|
SELECT count(*) from docreceiveunit where subcompanyid=2 and companytype=1
|
||||||
|
|
||||||
|
SELECT id from docreceiveunit WHERE receiveunitname='这是建模表没有的数据99999999'
|
||||||
|
|
||||||
|
DELETE from docreceiveunit where id=1652
|
||||||
|
|
||||||
|
INSERT into docreceiveunit (receiveunitname,companytype,subcompanyid,showorder,canceled) VALUES('这是建模表没有的数据99999999','1','2','.00','0');
|
||||||
|
|
||||||
|
-- 再查建模表
|
||||||
|
SELECT dwmc,sjzt from formtable_main_18;
|
||||||
|
|
||||||
|
SELECT count(*) from formtable_main_18;
|
||||||
|
|
||||||
|
select * from formtable_main_18 where
|
||||||
|
-- 如果单位名称和启用相同 不插入 不同则插入
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE docreceiveunit set canceled='0' WHERE receiveunitname='测试'
|
Loading…
Reference in New Issue