次账号支持保时捷组织架构图
dev
youhong.ai 2023-06-15 00:53:22 +08:00
commit 3f96ed75bc
24 changed files with 1459 additions and 203 deletions

View File

@ -0,0 +1,44 @@
package aiyh.utils.ecologyutil.modelutil;
import aiyh.utils.Util;
import aiyh.utils.httpUtil.cushttpclasses.CusHttpSession;
import com.alibaba.fastjson.JSONObject;
import com.engine.common.util.ServiceUtil;
import com.engine.cube.service.ModeAppService;
import com.engine.cube.service.impl.ModeAppServiceImpl;
import org.apache.log4j.Logger;
import weaver.hrm.User;
import java.util.HashMap;
import java.util.Map;
/**
*
*/
public class CusModelUtil {
private static Logger logger = Util.getLogger();
public static ModeAppService modeAppService = ServiceUtil.getService(ModeAppServiceImpl.class, new User(1));
/**
*
* @param modeId
*/
public static void rebuildRight(String modeId) {
try{
Map<String, Object> param = new HashMap<>();
param.put("rebulidFlag", "1");
param.put("righttype", "1");
param.put("modeid", modeId);
param.put("rebulidFlag", "1");
param.put("showProgress", "0");
param.put("operation", "resetAllRight");
param.put("session", new CusHttpSession());
Map<String, Object> stringObjectMap = modeAppService.saveModeRightList(param, new User(1));
logger.info("CusModelUtil.rebuildRight end;result:"+new JSONObject(stringObjectMap).toJSONString() + ";param:" + modeId);
}catch(Throwable e){
logger.error("CusModelUtil.rebuildRight error;message:" + e.getMessage());
}
}
}

View File

@ -0,0 +1,68 @@
package aiyh.utils.ecologyutil.rightutil;
import aiyh.utils.Util;
import aiyh.utils.httpUtil.cushttpclasses.CusHttpServletRequest;
import aiyh.utils.httpUtil.cushttpclasses.CusHttpSession;
import com.alibaba.fastjson.JSONObject;
import com.engine.hrm.cmd.permissiontoadjust.ProcessDataCmd;
import org.apache.log4j.Logger;
import weaver.hrm.User;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;
/**
* ecology
*
*/
public class RightMoveUtil {
private static Logger logger = Util.getLogger();
/**
*
* @param param
* fromid
* toid
* T133All
* T133AllNum
* @return
*/
public static JSONObject moveRight(JSONObject param){
JSONObject result = new JSONObject();
try{
logger.info("RightMoveUtil moveRight begin;param:" + param.toJSONString());
Map<String, Object> params = new HashMap<>();
for(Object key : param.keySet()){
params.put(key.toString(),param.get(key));
}
HttpServletRequest request = new CusHttpServletRequest(){
@Override
public String getParameter(String s) {
return param.getString(s);
}
@Override
public HttpSession getSession(boolean b) {
HttpSession session = new CusHttpSession(){
@Override
public Object getAttribute(String s) {
return new User(1);
}
};
return session;
}
};
ProcessDataCmd cmd = new ProcessDataCmd(params,request,new User(1));
Map<String, Object> execute = cmd.execute(null);
result = new JSONObject(execute);
logger.info("RightMoveUtil moveRight end;result:" + execute.toString());
return result;
}catch (Throwable e){
logger.error("RightMoveUtil moveRight error;message:" + e.getMessage());
return result;
}
}
}

View File

@ -0,0 +1,274 @@
package aiyh.utils.httpUtil.cushttpclasses;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletInputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map;
public class CusHttpServletRequest implements HttpServletRequest {
@Override
public String getMethod() {
return null;
}
@Override
public String getRequestURI() {
return null;
}
@Override
public StringBuffer getRequestURL() {
return null;
}
@Override
public String getContextPath() {
return null;
}
@Override
public String getServletPath() {
return null;
}
@Override
public String getPathInfo() {
return null;
}
@Override
public String getPathTranslated() {
return null;
}
@Override
public String getQueryString() {
return null;
}
@Override
public String getHeader(String s) {
return null;
}
@Override
public Enumeration getHeaders(String s) {
return null;
}
@Override
public Enumeration getHeaderNames() {
return null;
}
@Override
public int getIntHeader(String s) {
return 0;
}
@Override
public long getDateHeader(String s) {
return 0;
}
@Override
public Cookie[] getCookies() {
return new Cookie[0];
}
@Override
public HttpSession getSession(boolean b) {
return null;
}
@Override
public HttpSession getSession() {
return null;
}
@Override
public String getRequestedSessionId() {
return null;
}
@Override
public boolean isRequestedSessionIdValid() {
return false;
}
@Override
public boolean isRequestedSessionIdFromCookie() {
return false;
}
@Override
public boolean isRequestedSessionIdFromURL() {
return false;
}
@Override
public String getAuthType() {
return null;
}
@Override
public String getRemoteUser() {
return null;
}
@Override
public boolean isUserInRole(String s) {
return false;
}
@Override
public Principal getUserPrincipal() {
return null;
}
/**
* @deprecated
*/
@Override
public boolean isRequestedSessionIdFromUrl() {
return false;
}
@Override
public String getProtocol() {
return null;
}
@Override
public String getScheme() {
return null;
}
@Override
public String getServerName() {
return null;
}
@Override
public int getServerPort() {
return 0;
}
@Override
public String getRemoteAddr() {
return null;
}
@Override
public String getRemoteHost() {
return null;
}
@Override
public void setCharacterEncoding(String s) throws UnsupportedEncodingException {
}
@Override
public String getParameter(String s) {
return null;
}
@Override
public String[] getParameterValues(String s) {
return new String[0];
}
@Override
public Enumeration getParameterNames() {
return null;
}
@Override
public Map getParameterMap() {
return null;
}
@Override
public ServletInputStream getInputStream() throws IOException {
return null;
}
@Override
public BufferedReader getReader() throws IOException, IllegalStateException {
return null;
}
@Override
public String getCharacterEncoding() {
return null;
}
@Override
public int getContentLength() {
return 0;
}
@Override
public String getContentType() {
return null;
}
@Override
public Locale getLocale() {
return null;
}
@Override
public Enumeration getLocales() {
return null;
}
@Override
public boolean isSecure() {
return false;
}
@Override
public Object getAttribute(String s) {
return null;
}
@Override
public void setAttribute(String s, Object o) {
}
@Override
public Enumeration getAttributeNames() {
return null;
}
@Override
public void removeAttribute(String s) {
}
@Override
public RequestDispatcher getRequestDispatcher(String s) {
return null;
}
/**
* @param s
* @deprecated
*/
@Override
public String getRealPath(String s) {
return null;
}
}

View File

@ -0,0 +1,113 @@
package aiyh.utils.httpUtil.cushttpclasses;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionContext;
import java.util.Enumeration;
public class CusHttpSession implements HttpSession {
@Override
public String getId() {
return null;
}
@Override
public boolean isNew() {
return false;
}
@Override
public long getCreationTime() {
return 0;
}
@Override
public long getLastAccessedTime() {
return 0;
}
@Override
public void setMaxInactiveInterval(int i) {
}
@Override
public int getMaxInactiveInterval() {
return 0;
}
@Override
public Object getAttribute(String s) {
return null;
}
@Override
public Enumeration<String> getAttributeNames() {
return null;
}
@Override
public void setAttribute(String s, Object o) {
}
@Override
public void removeAttribute(String s) {
}
@Override
public void invalidate() {
}
/**
* @deprecated
*/
@Override
public HttpSessionContext getSessionContext() {
return null;
}
@Override
public ServletContext getServletContext() {
return null;
}
/**
* @param s
* @deprecated
*/
@Override
public Object getValue(String s) {
return null;
}
/**
* @deprecated
*/
@Override
public String[] getValueNames() {
return new String[0];
}
/**
* @param s
* @param o
* @deprecated
*/
@Override
public void putValue(String s, Object o) {
}
/**
* @param s
* @deprecated
*/
@Override
public void removeValue(String s) {
}
}

View File

@ -0,0 +1,45 @@
package com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.controller;
import aiyh.utils.ApiResult;
import aiyh.utils.Util;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.entity.ContractParametersEntity;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.service.PublishInformationService;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.service.impl.PublishInformationServiceImpl;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.apache.log4j.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.Map;
//合同系统接收单位或部门编码,根据编码整理所有下级单位及部门的合同台账详细信息,并将数据返回给调用方。
@Path("/pubish")
public class PublishInformationAction {
//日志处理
private final Logger log = Util.getLogger();
//service主要的业务逻辑
private final PublishInformationService publishInformationService = new PublishInformationServiceImpl();
@Path("/information/action")
@POST
@Produces(MediaType.APPLICATION_JSON)
public String getReportData(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map<String,Object> param) {
//单位编码
String divisionCode = request.getParameter("divisionCode");
//部门编码
String deptCode = request.getParameter("deptCode");
ContractParametersEntity contractParametersEntity = publishInformationService.getResponseJson(divisionCode,deptCode);
if (contractParametersEntity!=null){
return ApiResult.success(contractParametersEntity,200,"查询成功,结果如下");
}
return ApiResult.error(404,"参数为空,请重新选择单位编码和部门编码");
}
}

View File

@ -0,0 +1,76 @@
package com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.entity;
import lombok.Data;
/**
* <h1></h1>
* @Author
* @Date 2023/4/21 17:59
*/
@Data
public class ContractParametersEntity {
//合同编码
private String contractno;
//合同名称
private String contractname;
//合同密级
private String contractsecret;
//合同类别
private String contracttype;
//合同审批流程
private String contractworkflow;
//合同性质
private String contractproperties;
//对应型号
private String correspond;
//甲方
private String partya;
//甲方单位属性
private String partyaprop;
//乙方
private String partyb;
//项目名称
private String entryname;
//订单编号
private String orderno;
//合同总金额
private String totalamount;
//价款类型
private String pricetype;
//已收/付金额
private String receivedamount;
//已开/收票金额
private String issuedamount;
//剩余未收/付金额
private String remainingamount;
//币种
private String currency;
//合同状态
private String contractstatus;
//收付款进度
private String collectionprogress;
//收付款方式
private String paymentmethod;
//签约日期
private String signingdate;
//签约地
private String signingplace;
//是否需要飞行试验
private String flighttest;
//二级单位名称
private String secondaryunit;
//承办单位名称
private String organizername;
//承办部门
private String undertakedepart;
//承办人
private String undertakeperson;
//签订人
private String signedby;
//合同用印文件
private String contractfile;
//其他合同附件
private String otherattachments;
// getter and setter methods
}

View File

@ -0,0 +1,20 @@
package com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.mapper;
import aiyh.utils.annotation.recordset.Select;
import aiyh.utils.annotation.recordset.SqlMapper;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.entity.ContractParametersEntity;
@SqlMapper
public interface PublishInformationMapper {
/**
* <h2>uf_xyz ContractParametersEntity</h2>
* @param divisionCode
* @param deptCode
* @return ContractParametersEntity DB
* @author hcy
* @Date 2023/4/23 9:47
*/
@Select("select * from uf_xyz where division = #{divisionCode} and deptment =#{deptCode}")
ContractParametersEntity getDeptList(String divisionCode, String deptCode);
}

View File

@ -0,0 +1,7 @@
package com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.service;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.entity.ContractParametersEntity;
public interface PublishInformationService {
ContractParametersEntity getResponseJson(String divisionCode, String deptCode);
}

View File

@ -0,0 +1,30 @@
package com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.service.impl;
import aiyh.utils.Util;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.entity.ContractParametersEntity;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.mapper.PublishInformationMapper;
import com.api.chaoyang.he.hcy_hangtiankeji.accesscontractsystem.service.PublishInformationService;
import org.apache.log4j.Logger;
public class PublishInformationServiceImpl implements PublishInformationService {
//日志
private final Logger logger = Util.getLogger();
//处理业务的sql
private final PublishInformationMapper publishInformationMapper = Util.getMapper(PublishInformationMapper.class);
@Override
public ContractParametersEntity getResponseJson(String divisionCode, String deptCode) {
if (!"".equals(divisionCode)&& !"".equals(deptCode)){
ContractParametersEntity dataDb = publishInformationMapper.getDeptList(divisionCode,deptCode);
if (dataDb == null){
return dataDb;
}
}
return null;
}
}

View File

@ -0,0 +1,50 @@
package com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.controller;
import aiyh.utils.ApiResult;
import aiyh.utils.Util;
import com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.service.SendContractInfoService;
import com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.service.impl.SendContractInfoServiceImpl;
import org.apache.log4j.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.util.List;
import java.util.Map;
/**
* <h1>GM</h1>
* @author hcy
* @date 2023/5/8 13:36
*/
@Path("/send")
public class SendContractInfoController {
/**
*
*/
private final Logger logger = Util.getLogger();
/**
* service
*/
private final SendContractInfoService sendContractInfoService = new SendContractInfoServiceImpl();
@POST
@Path("/Contract/Info")
@Produces(MediaType.APPLICATION_JSON)
public String sendContractInfo(@Context HttpServletRequest request, @Context HttpServletResponse response){
String zbzt = request.getParameter("zbzt");
List<Map<String,Object>> contractInfo = sendContractInfoService.sendContractData(zbzt);
if (contractInfo.size() == 0){
return ApiResult.error("接口数据为空,请检查台账数据是否为空");
}
return ApiResult.success(contractInfo,200,"成功");
}
}

View File

@ -0,0 +1,42 @@
package com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.mapper;
import aiyh.utils.annotation.recordset.ParamMapper;
import aiyh.utils.annotation.recordset.Select;
import aiyh.utils.annotation.recordset.SqlMapper;
import java.util.List;
import java.util.Map;
@SqlMapper
public interface SendContractInfoMapper {
@Select("select * from uf_httztb where wybs = #{uniqueIdentification} ")
List<Map<String, Object>> selectConfigData(@ParamMapper("uniqueIdentification") String uniqueIdentification);
@Select("select * from uf_httztb_dt1 where mainid = #{mainid}")
List<Map<String, Object>> getConfigDetal1Information(@ParamMapper("mainid")String mainid);
@Select("select * from uf_httztb_dt2 where mainid = #{mainid}")
List<Map<String, Object>> getConfigDetal2Information(@ParamMapper("mainid")String mainid);
@Select("select $t{selectKeys} from $t{tableName}")
List<Map<String, Object>> selectAllDBData(@ParamMapper("selectKeys") String selectKeys,
@ParamMapper("tableName") String tableName);
@Select("select $t{selectKeys} from $t{tableName} where LEFT(modedatacreatedate,10) = LEFT(#{yesterday},10) or LEFT(modedatamodifydatetime,10) = LEFT(#{yesterday},10)")
List<Map<String, Object>> selectYesterdayDBData(@ParamMapper("selectKeys")String selectKeys,
@ParamMapper("tableName")String tableName,
@ParamMapper("yesterday")String yesterday);
@Select("select $t{selectDatailTableKeys} from $t{s} where mainid = #{mainid}")
List<Map<String, Object>> selectAllDetailDBData(@ParamMapper("selectDatailTableKeys") String selectDatailTableKeys,
@ParamMapper("s")String s,
@ParamMapper("mainid")String mainid);
@Select("select imagefileid from DocImageFile where docid = #{lcqzyj} order by versionId")
String getImageFileId(@ParamMapper("lcqzyj") String lcqzyj);
@Select("select imagefilename from DocImageFile where docid = #{lcqzyj} order by versionId desc")
String getImagefilename(@ParamMapper("lcqzyj") String lcqzyj);
}

View File

@ -0,0 +1,8 @@
package com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.service;
import java.util.List;
import java.util.Map;
public interface SendContractInfoService {
List<Map<String, Object>> sendContractData(String zbzt);
}

View File

@ -0,0 +1,222 @@
package com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.service.impl;
import aiyh.utils.Util;
import com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.mapper.SendContractInfoMapper;
import com.api.chaoyang.he.hcy_hangtiankeji.gmlowgroupsenddata.service.SendContractInfoService;
import com.google.common.base.Joiner;
import com.weaver.formmodel.util.DateHelper;
import org.apache.log4j.Logger;
import sun.misc.BASE64Decoder;
import weaver.file.ImageFileManager;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
public class SendContractInfoServiceImpl implements SendContractInfoService {
/**
*
*/
private final Logger logger = Util.getLogger();
/**
* deal sql
*/
private final SendContractInfoMapper sendContractInfoMapper = Util.getMapper(SendContractInfoMapper.class);
/**
*
* @return
* @param zbzt 0 1
*/
public List<Map<String, Object>> sendContractData(String zbzt) {
//获取配置表主表数据
List<Map<String,Object>> configMainTableData = sendContractInfoMapper.selectConfigData("fw002");
if (configMainTableData.size()==0)return configMainTableData;
String mainid = Util.null2String(configMainTableData.get(0).get("id"));
//配置表明细表1数据
List<Map<String,Object>> configDetal1TableData = sendContractInfoMapper.getConfigDetal1Information(mainid);
logger.info("配置表明细表数据---configDetal1TableData---"+configDetal1TableData);
//明细表2数据
List<Map<String,Object>> configDetal2TableData = sendContractInfoMapper.getConfigDetal2Information(mainid);
List<Map<String,Object>> configDetal2TableNewData = new ArrayList<>();//处理完大小写问题后
filterUppercaseField(configDetal2TableData,configDetal2TableNewData);
logger.info("配置表明细表数据---configDetal2TableNewData---"+configDetal2TableNewData);
if (configDetal1TableData.size()==0) return configDetal1TableData;
String tableName = Util.null2String(configDetal1TableData.get(0).get("ejdwtzb"));//二级单位台账表数据库名称
String bz = Util.null2String(configDetal1TableData.get(0).get("bz")); //备注
logger.info("二级单位台账表数据库名称===="+tableName+" 二级单位台账表数名称==="+bz);
if (configDetal2TableNewData.size()==0)return configDetal1TableData;
List<String> mainTableKeys = new ArrayList<>();//用于insert和update的key
List<String> detailTableKeys = new ArrayList<>();//用于insert和update的key
for (Map<String, Object> configdetal2 : configDetal2TableNewData) {
String sfzb = Util.null2String(configdetal2.get("sfzb"));//是否主表
if ("0".equals(sfzb)){
mainTableKeys.add(Util.null2String(configdetal2.get("tbzd")));//添加主表key
}else {
detailTableKeys.add(Util.null2String(configdetal2.get("tbzd")));//添加明细表key
}
}
mainTableKeys.add("id");//拼接id
String selectMainTableKeys = Joiner.on(",").join((Iterable<?>) mainTableKeys);//拼接主表的查询条件
String selectDatailTableKeys = Joiner.on(",").join((Iterable<?>) detailTableKeys);//拼接明细表的查询条件
List<Map<String, Object>> returnDataList = new ArrayList<>();//返回一个空数组
logger.info("selectMainTableKeys"+selectMainTableKeys+"------selectDatailTableKeys:"+selectDatailTableKeys );
if ("0".equals(zbzt)) {//全量数据
List<Map<String, Object>> allDBData = sendContractInfoMapper.selectAllDBData(selectMainTableKeys, tableName);
logger.info("-------allDBData------"+allDBData);
List<Map<String,Object>> filterUppercaseNewAllDBData = new ArrayList<>();
filterUppercaseField(allDBData,filterUppercaseNewAllDBData);
for (Map<String, Object> allDBDatum : filterUppercaseNewAllDBData) {
String ejdw_mainid = Util.null2String(allDBDatum.get("id"));
List<Map<String, Object>> detalData = sendContractInfoMapper.selectAllDetailDBData(selectDatailTableKeys, tableName + "_dt1", ejdw_mainid);//查询到主表对应的明细表数据
logger.info("------detalData------"+detalData);
List<Map<String, Object>> filterUppercaseFieldDetailData = new ArrayList<>();
filterUppercaseField(detalData,filterUppercaseFieldDetailData);//处理掉大写字母的问题
logger.info("------filterUppercaseFieldDetailData------"+filterUppercaseFieldDetailData);
allDBDatum.put("detailData", filterUppercaseFieldDetailData);//向主表数据中放入明细表数据
}
logger.info("-------filterUppercaseNewAllDBData------"+filterUppercaseNewAllDBData);
List<Map<String,Object>> newAllDBData = this.dealwithSpecialFields(filterUppercaseNewAllDBData);
logger.info("-------newAllDBData------"+newAllDBData);
return newAllDBData;
}else if ("1".equals(zbzt)) {//增量数据
List<Map<String, Object>> yesterDayDBData = sendContractInfoMapper.selectYesterdayDBData(selectMainTableKeys, tableName, DateHelper.getYesterday());
logger.info("-------yesterDayDBData------"+yesterDayDBData);
List<Map<String,Object>> filterUppercasenewYesterDayDBData = new ArrayList<>();
filterUppercaseField(yesterDayDBData,filterUppercasenewYesterDayDBData);
for (Map<String, Object> yesterDayDBDatum : filterUppercasenewYesterDayDBData) {
String id = Util.null2String(yesterDayDBDatum.get("id"));
List<Map<String, Object>> detalData = sendContractInfoMapper.selectAllDetailDBData(selectDatailTableKeys, tableName + "_dt1", id);//查询到主表对应的明细表数据
logger.info("-------detalData------"+detalData);
List<Map<String, Object>> filterUppercaseFieldDetailData = new ArrayList<>();
filterUppercaseField(detalData,filterUppercaseFieldDetailData);//处理掉大写字母的问题
logger.info("-------filterUppercaseFieldDetailData------"+filterUppercaseFieldDetailData);
yesterDayDBDatum.put("detailData", filterUppercaseFieldDetailData);//向主表数据中放入明细表数据
}
logger.info("-------filterUppercasenewYesterDayDBData------"+filterUppercasenewYesterDayDBData);
List<Map<String, Object>> newYesterDayDBData = this.dealwithSpecialFields(filterUppercasenewYesterDayDBData);
logger.info("-------newYesterDayDBData------"+newYesterDayDBData);
return newYesterDayDBData;
}
return returnDataList;
}
/**
*
* @param oldListMap
* @param newListMap
*/
public void filterUppercaseField(List<Map<String,Object>> oldListMap,List<Map<String,Object>> newListMap){
for (Map<String, Object> configDetal2TableDatum : oldListMap) {
Map<String, Object> newData = new HashMap<>();
for (Map.Entry<String, Object> entry : configDetal2TableDatum.entrySet()) {
String key = entry.getKey().toLowerCase();
Object value = entry.getValue();
newData.put(key, value);
}
// 创建新数据集合
newListMap.add(newData);
}
}
/**
*
* @param allDBData
* @return
*/
private List<Map<String, Object>> dealwithSpecialFields(List<Map<String, Object>> allDBData) {
for (Map<String, Object> allDBDatum : allDBData) {
String htyywj = Util.null2String(allDBDatum.get("htyywj"));//双方用印文件
String qthtfj = Util.null2String(allDBDatum.get("qthtfj"));//其它合同附件
String lcqzyj = Util.null2String(allDBDatum.get("lcqzyj"));//流程签字意见:需要流程存为文档
String ip = Util.getCusConfigValue("setIp_htkj");//获取配置表中自定义参数用来配置ip地址、
if (!"".equals(htyywj)){
String newIp = ip + htyywj;
allDBDatum.put("htyywj",newIp);//链接地址ip://xxx--docid
}
if (!"".equals(qthtfj)){
String newIp = ip +qthtfj;
allDBDatum.put("qthtfj",newIp);//链接地址ip:xxx--docid
}
if (!"".equals(lcqzyj) && !"-1".equals(lcqzyj)){
//根据docid获取文件名称
String imagefilename = sendContractInfoMapper.getImagefilename(lcqzyj);
if (!"".equals(imagefilename)) {
allDBDatum.put("imagefilename",imagefilename);
}else{
allDBDatum.put("imagefilename", UUID.randomUUID()+".pdf");
}
int imagefileid = Util.getIntValue(sendContractInfoMapper.getImageFileId(lcqzyj));//根据docid,查询到imageFileid
InputStream inputStream = ImageFileManager.getInputStreamById(imagefileid);//根据imagefileid查询到文件流
if (inputStream!=null){
try {
allDBDatum.put("lcqzyj",Util.null2String(inputStream2Base64(inputStream)));//将处理好的文件消息重新放入字段中
} catch (Exception e) {
e.printStackTrace();
logger.error("流转换异常===="+e);
}
}
}else{
allDBDatum.put("lcqzyj", "");
}
}
return allDBData;
}
/**
* inputstreamBase64
* @param is
* @return String
*/
private static String inputStream2Base64(InputStream is) throws Exception {
byte[] data = null;
try {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[1024];
int rc = 0;
while ((rc = is.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
data = swapStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
throw new Exception("输入流关闭异常");
}
}
}
return Base64.getEncoder().encodeToString(data);
}
/**
* base64inputStream
* @param base64string
* @return inputStream
*/
private static InputStream base2InputStream(String base64string) {
ByteArrayInputStream stream = null;
try {
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes1 = decoder.decodeBuffer(base64string);
stream = new ByteArrayInputStream(bytes1);
} catch (Exception e) {
e.printStackTrace();
}
return stream;
}
}

View File

@ -1,6 +1,5 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.controller; package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.controller;
import aiyh.utils.Util; import aiyh.utils.Util;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherOtherSystemInfoService; import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherOtherSystemInfoService;
@ -33,6 +32,7 @@ public class GMGatherOtherSystemInfoController extends BaseCronJob {
boolean insertDataBool = gmgatherOtherSystemInfoService.insertDataIntoGM(syncStandard,URL,formTableNameGM); boolean insertDataBool = gmgatherOtherSystemInfoService.insertDataIntoGM(syncStandard,URL,formTableNameGM);
if (insertDataBool){ if (insertDataBool){
logger.info("GM集团获取GM集团下级单位合同台账信息执行成功"); logger.info("GM集团获取GM集团下级单位合同台账信息执行成功");
logger.info("");
}else { }else {
logger.error("GM集团获取GM集团下级单位合同台账信息执行失败"); logger.error("GM集团获取GM集团下级单位合同台账信息执行失败");
} }

View File

@ -1,15 +0,0 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.controller;
import weaver.interfaces.schedule.BaseCronJob;
/**
* <h1>GM</h1>
* @author hcy
* @date 2023/5/9 18:20
*/
public class GMGatherSMInfoController extends BaseCronJob {
public void execute() {
}
}

View File

@ -14,10 +14,8 @@ import weaver.interfaces.schedule.BaseCronJob;
*/ */
public class GMGatherSameSystemInfoController extends BaseCronJob { public class GMGatherSameSystemInfoController extends BaseCronJob {
//业务主要逻辑 //业务主要逻辑
private final GMGatherSameSystemInfoService gmgatherSameSystemInfoService = new GMGatherSameSystemInfoServiceImpl(); private final GMGatherSameSystemInfoService gmCountLowGroupData = new GMGatherSameSystemInfoServiceImpl();
//日志处理 //日志处理
private final Logger logger = Util.getLogger(); private final Logger logger = Util.getLogger();
@ -33,7 +31,43 @@ public class GMGatherSameSystemInfoController extends BaseCronJob {
//唯一标识 //唯一标识
public String uniqueIdentification; public String uniqueIdentification;
public void execute() { public void execute() {
gmgatherSameSystemInfoService.dealMainLogic(configurationMainTableName,configurationDetailTableName1,configurationDetailTableName2,uniqueIdentification); gmCountLowGroupData.dealMainLogic(configurationMainTableName,configurationDetailTableName1,configurationDetailTableName2,uniqueIdentification);//处理业务主要逻辑
}
public String getConfigurationDetailTableName1() {
return configurationDetailTableName1;
}
public void setConfigurationDetailTableName1(String configurationDetailTableName1) {
this.configurationDetailTableName1 = configurationDetailTableName1;
}
public String getConfigurationDetailTableName2() {
return configurationDetailTableName2;
}
public void setConfigurationDetailTableName2(String configurationDetailTableName2) {
this.configurationDetailTableName2 = configurationDetailTableName2;
}
public String getConfigurationMainTableName() {
return configurationMainTableName;
}
public void setConfigurationMainTableName(String configurationMainTableName) {
this.configurationMainTableName = configurationMainTableName;
}
public String getUniqueIdentification() {
return uniqueIdentification;
}
public void setUniqueIdentification(String uniqueIdentification) {
this.uniqueIdentification = uniqueIdentification;
} }
} }

View File

@ -1,7 +0,0 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper;
import aiyh.utils.annotation.recordset.SqlMapper;
@SqlMapper
public class GMGatherSMInfoMapper {
}

View File

@ -1,5 +1,6 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper; package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper;
import aiyh.utils.annotation.recordset.Delete;
import aiyh.utils.annotation.recordset.ParamMapper; import aiyh.utils.annotation.recordset.ParamMapper;
import aiyh.utils.annotation.recordset.Select; import aiyh.utils.annotation.recordset.Select;
import aiyh.utils.annotation.recordset.SqlMapper; import aiyh.utils.annotation.recordset.SqlMapper;
@ -9,29 +10,50 @@ import java.util.Map;
@SqlMapper @SqlMapper
public interface GMGatherSameSystemInfoMapper { public interface GMGatherSameSystemInfoMapper {
@Select("select * from $t{configurationMainTableName} where wybs = #{uniqueIdentification}")
@Select("select * from #{configurationMainTableName} where wybs = #{uniqueIdentification}")
List<Map<String, Object>> getConfigInformation(@ParamMapper("configurationMainTableName") String configurationMainTableName, List<Map<String, Object>> getConfigInformation(@ParamMapper("configurationMainTableName") String configurationMainTableName,
@ParamMapper("uniqueIdentification") String uniqueIdentification); @ParamMapper("uniqueIdentification") String uniqueIdentification);
@Select("select * from #{configurationDetailTableName1} where mainid = #{mainid}") @Select("select * from $t{configurationDetailTableName1} where mainid = #{mainid}")
List<Map<String, Object>> getConfigDetal1Information(@ParamMapper("configurationDetailTableName1")String configurationDetailTableName1, List<Map<String, Object>> getConfigDetal1Information(@ParamMapper("configurationDetailTableName1")String configurationDetailTableName1,
@ParamMapper("mainid")String mainid); @ParamMapper("mainid")String mainid);
@Select("select * from #{configurationDetailTableName2} where mainid = #{mainid}") @Select("select * from $t{configurationDetailTableName2} where mainid = #{mainid}")
List<Map<String, Object>> getConfigDetal2Information(@ParamMapper("configurationDetailTableName2")String configurationDetailTableName2, List<Map<String, Object>> getConfigDetal2Information(@ParamMapper("configurationDetailTableName2")String configurationDetailTableName2,
@ParamMapper("mainid")String mainid); @ParamMapper("mainid")String mainid);
@Select("select * from #{ejdwtzb_name} where LEFT(modedatacreatedate,7) = LEFT(#{yesterday},7)") @Select("select * from $t{ejdwtzb_name} where LEFT(modedatacreatedate,7) = LEFT(#{yesterday},7) ")
List<Map<String, Object>> getSMCountLowGroupdata(@ParamMapper("ejdwtzb_name")String ejdwtzb_name, List<Map<String, Object>> getSMCountLowGroupdata(@ParamMapper("ejdwtzb_name")String ejdwtzb_name,
@ParamMapper("yesterday")String yesterday); @ParamMapper("yesterday")String yesterday);
@Select("select * from #{ejdwtzb_name} where LEFT(modedatacreatedate,7) = LEFT(#{yesterday},7)") @Select("select * from $t{ejdwtzb_name} where LEFT(modedatamodifydatetime,7) = LEFT(#{yesterday},7)")
List<Map<String, Object>> getSMCountLowGroupDataUpdate(@ParamMapper("ejdwtzb_name")String ejdwtzb_name, List<Map<String, Object>> getSMCountLowGroupDataUpdate(@ParamMapper("ejdwtzb_name")String ejdwtzb_name,
@ParamMapper("yesterday")String yesterday); @ParamMapper("yesterday")String yesterday);
@Select("select * from #{jttzbd} where htbm = #{htbm}") @Select("select * from $t{jttzbd} where htbm = #{htbm}")
List<Map<String, Object>> selectHtbmData(@ParamMapper("jttzbd")String jttzbd, List<Map<String, Object>> selectHtbmData(@ParamMapper("jttzbd")String jttzbd,
@ParamMapper("htbm")String htbm); @ParamMapper("htbm")String htbm);
@Select("select * from $t{ejdwtzb_name}")
List<Map<String, Object>> getSMCountLowGroupTotalData(@ParamMapper("ejdwtzb_name") String ejdwtzb_name);
@Select("select id from $t{jttzbd} where htbm = #{htbm}")
String selectIdByHtbm(@ParamMapper("jttzbd")String jttzbd,
@ParamMapper("htbm")String htbm);
@Delete("delete from $t{s} where mainid = #{id}")
boolean deleteDetalDataByMainId(@ParamMapper("s")String s,
@ParamMapper("id")String id);
@Select("select id from $t{ejdwtzb_name} where htbm = #{htbm1}")
String selectDetailTableSouceId(@ParamMapper("ejdwtzb_name")String ejdwtzb_name,
@ParamMapper("htbm1")String htbm1);
@Select("select * from $t{s} where mainid = #{ejdw_id}")
List<Map<String, Object>> selectDetailTableSouceData(@ParamMapper("s")String s,
@ParamMapper("ejdw_id")String ejdw_id);
} }

View File

@ -1,4 +0,0 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service;
public interface GMGatherSMInfoService {
}

View File

@ -7,13 +7,17 @@ import aiyh.utils.sqlUtil.builderSql.impl.BuilderSqlImpl;
import aiyh.utils.sqlUtil.sqlResult.impl.PrepSqlResultImpl; import aiyh.utils.sqlUtil.sqlResult.impl.PrepSqlResultImpl;
import aiyh.utils.sqlUtil.whereUtil.impl.PrepWhereImpl; import aiyh.utils.sqlUtil.whereUtil.impl.PrepWhereImpl;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import sun.misc.BASE64Decoder;
import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper.GMGatherOtherSystemInfoMapper; import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper.GMGatherOtherSystemInfoMapper;
import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherOtherSystemInfoService; import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherOtherSystemInfoService;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo; import weaver.formmode.setup.ModeRightInfo;
import weaver.general.TimeUtil; import weaver.general.TimeUtil;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -37,10 +41,11 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
//连接GM下级单位暴露的接口获取台账所有的数据 //连接GM下级单位暴露的接口获取台账所有的数据
this.getEntityInsertDB(syncStandard,URL,formTableNameGM); this.getEntityInsertDB(syncStandard,URL,formTableNameGM);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); logger.error("执行数据插入逻辑异常,e:"+e.getMessage());
}
return false; return false;
} }
return true;
}
/** /**
* *
@ -59,18 +64,28 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
} }
Map<String, Object> entityMap = responeVo.getResponseMap(); Map<String, Object> entityMap = responeVo.getResponseMap();
List<Map<String,Object>> datas = (List<Map<String,Object>>) entityMap.get("data"); List<Map<String,Object>> datas = (List<Map<String,Object>>) entityMap.get("data");
logger.info("从异构系统的台账中获取的一次数据datas==="+datas);
if (datas.isEmpty()) return false;//数据为空返回:数据为空 if (datas.isEmpty()) return false;//数据为空返回:数据为空
logger.info("同步标准syncStandard为"+syncStandard+"]");
if ("1".equals(syncStandard)) { if ("1".equals(syncStandard)) {
int failNum = 0;//失败的次数 int failNum = 0;//失败的次数
for (Map<String,Object> totalDataMap : datas) { for (Map<String,Object> totalDataMap : datas) {
String imagefilename = Util.null2String(totalDataMap.get("imagefilename"));
//用于存放全部主表数据,排除所有明细表数据 //用于存放全部主表数据,排除所有明细表数据
Map<String, Object> newDataMap = new HashMap<>(totalDataMap.entrySet().stream() Map<String, Object> newDataMap = new HashMap<>(totalDataMap.entrySet().stream()
.filter(entry -> !("detailData".equals(entry.getKey()) || "id".equals(entry.getKey()))) .filter(entry -> !("detailData".equals(entry.getKey()) || "id".equals(entry.getKey()) || "imagefilename".equals(entry.getKey())))
.collect(Collectors.toMap( .collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getKey,
Map.Entry::getValue))); Map.Entry::getValue)));
String htbm = Util.null2String(totalDataMap.get("htbm")); String htbm = Util.null2String(totalDataMap.get("htbm"));
logger.info("合同编号htbm:["+htbm+"]");
//处理主表中特定字段的逻辑处理
this.dealwithLcqzyj(newDataMap,imagefilename);
if ("".equals(htbm)){//合同编号不能为空
continue;
}
int countHtbm = gmGatherOtherSystemInfoMapper.selectCountHtbm(formTableNameGM,htbm); int countHtbm = gmGatherOtherSystemInfoMapper.selectCountHtbm(formTableNameGM,htbm);
logger.info("合同编号的数量countHtbm:["+countHtbm+"]");
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
if (countHtbm == 0){ if (countHtbm == 0){
int mainid = this.createmodedata(formTableNameGM, 1, newDataMap);//先插入数据id,在根据数据id,插入所有明细数据 int mainid = this.createmodedata(formTableNameGM, 1, newDataMap);//先插入数据id,在根据数据id,插入所有明细数据
@ -95,29 +110,35 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
}else { }else {
//先删明细数据 //先删明细数据
String mainid = gmGatherOtherSystemInfoMapper.selectId(formTableNameGM,htbm); String mainid = gmGatherOtherSystemInfoMapper.selectId(formTableNameGM,htbm);
//开始插入明细表 logger.info("mainid=="+mainid);
List<Map<String, Object>> detailData = (List<Map<String, Object>>) totalDataMap.get("detailData");
for (Map<String, Object> detailDatum : detailData) {
//先删明细数据 //先删明细数据
boolean deleteBool = gmGatherOtherSystemInfoMapper.deleteByMainId(formTableNameGM+"_dt1",Util.null2String(mainid)); boolean deleteBool = gmGatherOtherSystemInfoMapper.deleteByMainId(formTableNameGM+"_dt1",Util.null2String(mainid));
if (deleteBool){ logger.info("deleteBool==="+deleteBool);
//开始插入明细表
List<Map<String, Object>> detailData = (List<Map<String, Object>>) totalDataMap.get("detailData");
logger.info("detailData==="+detailData);
if (deleteBool) {
for (Map<String, Object> detailDatum : detailData) {
logger.info("处理完明细表之前==="+detailDatum);
detailDatum.put("mainid",mainid); detailDatum.put("mainid",mainid);
logger.info("处理完明细表之前==="+detailDatum);
insertSql(formTableNameGM,detailDatum);//插入明细表 insertSql(formTableNameGM,detailDatum);//插入明细表
} }
} }
} }
} }
} }
logger.info("数据更新失败"+failNum+"次"); logger.info("数据更新失败"+failNum+"次");
} else if ("0".equals(syncStandard)){ } else if ("0".equals(syncStandard)){
for (Map<String,Object> totalDataMap : datas) { for (Map<String,Object> totalDataMap : datas) {
String imagefilename = Util.null2String(totalDataMap.get("imagefilename"));
//用于存放全部主表数据,排除所有明细表数据 //用于存放全部主表数据,排除所有明细表数据
Map<String, Object> newDataMap = new HashMap<>(totalDataMap.entrySet().stream() Map<String, Object> newDataMap = new HashMap<>(totalDataMap.entrySet().stream()
.filter(entry -> !("detailData".equals(entry.getKey()) || "id".equals(entry.getKey()))) .filter(entry -> !("detailData".equals(entry.getKey()) || "id".equals(entry.getKey()) || "imagefilename".equals(entry.getKey())))
.collect(Collectors.toMap( .collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getKey,
Map.Entry::getValue))); Map.Entry::getValue)));
this.dealwithLcqzyj(newDataMap, imagefilename);
int createmodedata = createmodedata(formTableNameGM, 1, newDataMap); int createmodedata = createmodedata(formTableNameGM, 1, newDataMap);
if (createmodedata>0){ if (createmodedata>0){
List<Map<String, Object>> detailData = (List<Map<String, Object>>) totalDataMap.get("detailData"); List<Map<String, Object>> detailData = (List<Map<String, Object>>) totalDataMap.get("detailData");
@ -130,10 +151,11 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); logger.error("异常e:"+e.getMessage());
}
return false; return false;
} }
return true;
}
/** /**
* 访ResponeVo * 访ResponeVo
@ -180,7 +202,7 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
StringBuilder updatesql = new StringBuilder("update " + tablename + " set "); StringBuilder updatesql = new StringBuilder("update " + tablename + " set ");
Set<String> keySet = map.keySet(); Set<String> keySet = map.keySet();
for (String key : keySet) { for (String key : keySet) {
updatesql.append(key).append("='").append(map.get(key).toString()).append("',"); updatesql.append(key).append("='").append(Util.null2String(map.get(key))).append("',");
} }
if (updatesql.toString().endsWith(",")) { if (updatesql.toString().endsWith(",")) {
updatesql = new StringBuilder(updatesql.substring(0, updatesql.length() - 1)); updatesql = new StringBuilder(updatesql.substring(0, updatesql.length() - 1));
@ -202,9 +224,9 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
} }
/** /**
* modeid * modeid
* @param tablename * @param tablename
* @return * @return modeid
*/ */
public Integer getModeidByTableName(String tablename) { public Integer getModeidByTableName(String tablename) {
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
@ -225,8 +247,57 @@ public class GMGatherOtherSystemInfoServiceImpl implements GMGatherOtherSystemIn
PrepSqlResultImpl prepSqlResult = builderSql.insertSql(tableName + "_dt1", datas); PrepSqlResultImpl prepSqlResult = builderSql.insertSql(tableName + "_dt1", datas);
RecordSet recordSet1 = new RecordSet(); RecordSet recordSet1 = new RecordSet();
boolean insertBool = recordSet1.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs()); boolean insertBool = recordSet1.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs());
logger.info("明细表是否插入成功---insertBool===="+insertBool);
if (!insertBool){ if (!insertBool){
logger.error("数据插入失败失败SQL:["+prepSqlResult+"]"); logger.error("数据插入失败失败SQL:["+prepSqlResult+"]");
} }
} }
/**
* base64inputStream
* @param base64string
* @return inputStream
*/
private static InputStream base2InputStream(String base64string) {
ByteArrayInputStream stream = null;
try {
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes1 = decoder.decodeBuffer(base64string);
stream = new ByteArrayInputStream(bytes1);
} catch (Exception e) {
e.printStackTrace();
}
return stream;
}
/**
*
* @param newDataMap
* @param imagefilename
*/
public void dealwithLcqzyj(Map<String, Object> newDataMap, String imagefilename){
String lcqzyj = Util.null2String(newDataMap.get("lcqzyj"));//流程签字意见:需要流程存为文档
logger.info("文件名称==="+imagefilename);
// logger.info("流程签字意见字段,处理之前==="+lcqzyj);
if (!"".equals(lcqzyj)&&!"-1".equals(lcqzyj)){
InputStream inputStream = base2InputStream(lcqzyj);
if (inputStream!=null){
int fileByInputSteam = Util.createFileByInputSteam(inputStream, imagefilename);
logger.info("fileByInputSteam:"+fileByInputSteam);
int docByImageFileId;
try {
String path = Util.getCusConfigValue("pathKey");//配置文档存放路径
logger.info("文档存放路径path:["+path+"]");
docByImageFileId = Util.createDocByImageFileId(Util.getIntValue(path), fileByInputSteam, 1);
if (docByImageFileId>0){
newDataMap.put("lcqzyj",docByImageFileId);
logger.info("流程签字意见字段docid存放成功,docid为["+docByImageFileId+"]");
}
} catch (Exception e) {
e.printStackTrace();
logger.error("流程签字一键字段docid存放失败失败原因["+e+"]");
}
}
}
}
} }

View File

@ -1,7 +0,0 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.impl;
import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherSMInfoService;
public class GMGatherSMInfoServiceImpl implements GMGatherSMInfoService {
}

View File

@ -1,33 +1,32 @@
package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.impl; package weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.impl;
import aiyh.utils.Util; import aiyh.utils.Util;
import com.google.common.base.Joiner; import aiyh.utils.sqlUtil.builderSql.impl.BuilderSqlImpl;
import aiyh.utils.sqlUtil.sqlResult.impl.PrepSqlResultImpl;
import aiyh.utils.sqlUtil.whereUtil.impl.PrepWhereImpl;
import com.weaver.formmodel.util.DateHelper; import com.weaver.formmodel.util.DateHelper;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper.GMGatherSameSystemInfoMapper; import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.mapper.GMGatherSameSystemInfoMapper;
import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherSameSystemInfoService; import weaver.chaoyang.he.hcy_hangtiankeji.gmgetdatafromlowgroup.service.GMGatherSameSystemInfoService;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.formmode.setup.ModeRightInfo;
import java.util.ArrayList; import weaver.general.TimeUtil;
import java.util.List; import java.util.*;
import java.util.Map;
public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfoService { public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfoService {
/**
*
*/
private final Logger logger = Util.getLogger();
//sql //处理sql
private final GMGatherSameSystemInfoMapper gmGatherSameSystemInfoMapper = Util.getMapper(GMGatherSameSystemInfoMapper.class); private final GMGatherSameSystemInfoMapper gmGatherSameSystemInfoMapper = Util.getMapper(GMGatherSameSystemInfoMapper.class);
/**
*
* @param configurationMainTableName //构建inser、update 的sql语句
* @param configurationDetailTableName1 1 private final BuilderSqlImpl builderSqlImpl = new BuilderSqlImpl();
* @param configurationDetailTableName2 2
* @param uniqueIdentification //日志
*/ private final Logger logger = Util.getLogger();
@Override
public void dealMainLogic(String configurationMainTableName, String configurationDetailTableName1, String configurationDetailTableName2, String uniqueIdentification) { public void dealMainLogic(String configurationMainTableName, String configurationDetailTableName1, String configurationDetailTableName2, String uniqueIdentification) {
//第一步获取配置表中数据 //第一步获取配置表中数据
if (configurationMainTableName.equals("") && configurationDetailTableName1.equals("") && uniqueIdentification.equals("")) return; if (configurationMainTableName.equals("") && configurationDetailTableName1.equals("") && uniqueIdentification.equals("")) return;
@ -37,9 +36,9 @@ public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfo
if (configMainTableData.isEmpty()) return; if (configMainTableData.isEmpty()) return;
String jttzbd = Util.null2String(configMainTableData.get(0).get("jttzbd"));//集团台账表单 String jttzbd = Util.null2String(configMainTableData.get(0).get("jttzbd"));//集团台账表单
String mainid = Util.null2String(configMainTableData.get(0).get("mainid")); String mainid = Util.null2String(configMainTableData.get(0).get("id"));
logger.info("配置表主表数据---mainid---"+mainid); logger.info("配置表主表数据---mainid---"+mainid);
if (mainid.equals("")) return; if (mainid.equals("") && "".equals(jttzbd)) return;
//配置表明细表1数据用来统计商密下级单位台账名称 //配置表明细表1数据用来统计商密下级单位台账名称
List<Map<String,Object>> configDetal1TableData = gmGatherSameSystemInfoMapper.getConfigDetal1Information(configurationDetailTableName1,mainid); List<Map<String,Object>> configDetal1TableData = gmGatherSameSystemInfoMapper.getConfigDetal1Information(configurationDetailTableName1,mainid);
@ -47,9 +46,15 @@ public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfo
//明细表2数据 //明细表2数据
List<Map<String,Object>> configDetal2TableData = gmGatherSameSystemInfoMapper.getConfigDetal2Information(configurationDetailTableName2,mainid); List<Map<String,Object>> configDetal2TableData = gmGatherSameSystemInfoMapper.getConfigDetal2Information(configurationDetailTableName2,mainid);
logger.info("配置表明细表数据---configDetal2TableData---"+configDetal2TableData); logger.info("配置表明细表数据---configDetal2TableData---"+configDetal2TableData);
List<String> keys = new ArrayList<>();//用于insert和update的key List<String> mainTablekeys = new ArrayList<>();//用于存放主表中insert和update的key
List<String> detalTablekeys = new ArrayList<>();//用于存放主表中insert和update的key
for (Map<String, Object> configdetal2 : configDetal2TableData) { for (Map<String, Object> configdetal2 : configDetal2TableData) {
keys.add(Util.null2String(configdetal2.get("tbzd"))); String sfzb = Util.null2String(configdetal2.get("sfzb"));
if ("0".equals(sfzb)){
mainTablekeys.add(Util.null2String(configdetal2.get("tbzd")));
}else if ("1".equals(sfzb)){
detalTablekeys.add(Util.null2String(configdetal2.get("tbzd")));
}
} }
@ -58,9 +63,19 @@ public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfo
for (Map<String, Object> config1 : configDetal1TableData) { for (Map<String, Object> config1 : configDetal1TableData) {
String ejdwtzb_name = Util.null2String(config1.get("ejdwtzb")); //二级单位台账表数据库名称 String ejdwtzb_name = Util.null2String(config1.get("ejdwtzb")); //二级单位台账表数据库名称
String bz = Util.null2String(config1.get("bz")); //备注 String bz = Util.null2String(config1.get("bz")); //备注
logger.info("二级单位台账表数据库名称===="+ejdwtzb_name+" 二级单位台账表数名称==="+bz); String tbzt = Util.null2String(config1.get("tbzt"));
logger.info("二级单位台账表数据库名称===="+ejdwtzb_name+" 二级单位台账表数名称==="+bz+" 同步状态==="+tbzt);
if ("0".equals(tbzt)){
//查询全量数据
List<Map<String,Object>> smCountLowGroupTotalData = gmGatherSameSystemInfoMapper.getSMCountLowGroupTotalData(ejdwtzb_name);//第一次同步数据
logger.info("全量数据---smCountLowGroupTotalData==="+smCountLowGroupTotalData);
if (smCountLowGroupTotalData.size()>0){
this.insertData(smCountLowGroupTotalData,jttzbd,ejdwtzb_name,mainTablekeys,detalTablekeys,tbzt);//全增量主表数据执行插入 并且包含明细表的删除,和再次添加
}
}else if ("1".equals(tbzt)){ //非第一次同步数据
//获取当天日期的前一天,如果和创建时间吻合,并且满足修改时间为空那么,这条数据就是纯插入的数据 //获取当天日期的前一天,如果和创建时间吻合,并且满足修改时间为空那么,这条数据就是纯插入的数据
List<Map<String,Object>> smCountLowGroupDataInsert = gmGatherSameSystemInfoMapper.getSMCountLowGroupdata(ejdwtzb_name, DateHelper.getYesterday()); List<Map<String,Object>> smCountLowGroupDataInsert = gmGatherSameSystemInfoMapper.getSMCountLowGroupdata(ejdwtzb_name,DateHelper.getYesterday());
logger.info("smCountLowGroupDataInsert===="+smCountLowGroupDataInsert); logger.info("smCountLowGroupDataInsert===="+smCountLowGroupDataInsert);
//获取当天日期的前一天,如果和修改时间吻合,那么这条数据就是更新操作的数据 //获取当天日期的前一天,如果和修改时间吻合,那么这条数据就是更新操作的数据
@ -69,48 +84,73 @@ public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfo
//数据插入商密集团总台账 //数据插入商密集团总台账
if (smCountLowGroupDataInsert.size()>0){ if (smCountLowGroupDataInsert.size()>0){
this.insertData(smCountLowGroupDataInsert,jttzbd,keys); this.insertData(smCountLowGroupDataInsert,jttzbd,ejdwtzb_name,mainTablekeys,detalTablekeys, tbzt);
} }
//数据更新商密集团总台账 //数据更新商密集团总台账
if (smCountLowGroupDataupdate.size()>0){ if (smCountLowGroupDataupdate.size()>0){
this.updateData(smCountLowGroupDataupdate,jttzbd,keys); this.updateData(smCountLowGroupDataupdate,jttzbd,ejdwtzb_name,mainTablekeys,detalTablekeys);
}
} }
} }
}
}
/** /**
* <h2></h2> * <h2></h2>
* @param smCountLowGroupDataInsert * @param smCountLowGroupDataInsert
* @param jttzbd * @param jttzbd
* @param ejdwtzb_name
* @param keys insertkey * @param keys insertkey
* @param detalTablekeys list
* @param tbzt
* @author hcy * @author hcy
* 2023/5/6 17:41 * 2023/5/6 17:41
*/ */
private void insertData(List<Map<String, Object>> smCountLowGroupDataInsert, String jttzbd,List<String> keys) { private void insertData(List<Map<String, Object>> smCountLowGroupDataInsert, String jttzbd, String ejdwtzb_name, List<String> keys, List<String> detalTablekeys, String tbzt) {
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
int successNum = 0;
int failNum = 0;
for (Map<String, Object> insertDatas : smCountLowGroupDataInsert) { for (Map<String, Object> insertDatas : smCountLowGroupDataInsert) {
String htbm = Util.null2String(insertDatas.get("htbm")); String htbm = Util.null2String(insertDatas.get("htbm"));
List<Map<String,Object>> selectHtbmData = gmGatherSameSystemInfoMapper.selectHtbmData(jttzbd,htbm); List<Map<String,Object>> selectHtbmData = gmGatherSameSystemInfoMapper.selectHtbmData(jttzbd,htbm);
if (selectHtbmData.size()==0){ if (selectHtbmData.size()==0){
// String insertKey = Joiner.on(",").join((Iterable<?>) keys);//key
String insertKey = Joiner.on(",").join((Iterable<?>) keys);//key Map<String, Object> keyValueMap = new HashMap<>();
ArrayList<String> valueList = new ArrayList<>();
for (String key : keys) { for (String key : keys) {
String v = Util.null2String(insertDatas.get(key)); // if("htzje".equals(key) || "htjrrmb".equals(key)){
valueList.add(v); // String o = Util.null2String(insertDatas.get(key));
// if ("".equals(o)){
// keyValueMap.put(key, null);
// }else {
// keyValueMap.put(key, o);
// }
// }else {
// Object o = insertDatas.get(key);
// keyValueMap.put(key, o);
// }
Object o = insertDatas.get(key);
keyValueMap.put(key, o);
} }
// PrepSqlResultImpl prepSqlResult = builderSqlImpl.insertSql(jttzbd, keyValueMap);
// boolean insertBool = recordSet.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs());
String insertValue = Joiner.on(",").join((Iterable<?>) valueList);//value int createmodedata = createmodedata(jttzbd, 1, keyValueMap);
if (createmodedata>0){
String insertSql = "insert into "+jttzbd + "(" +insertKey + ")"+ "value " +"("+insertValue+")";//拼接插入的sql语句 String htbm1 = Util.null2String(keyValueMap.get("htbm"));
boolean insertBool = recordSet.executeQuery(insertSql); deleteAndInsertDetailTable(htbm1,jttzbd,ejdwtzb_name,detalTablekeys);
if (insertBool){
logger.info("数据插入成功");
}else{
logger.info("数据插入失败");
} }
// if(insertBool){
// successNum++;
// String htbm1 = Util.null2String(keyValueMap.get("htbm"));
// //执行明细表的数据删除和数据插入
// deleteAndInsertDetailTable(htbm1,jttzbd,ejdwtzb_name,detalTablekeys);
// }else{
// failNum++;
// logger.error("台账数据插入失败失败SQL:["+ prepSqlResult +"----失败次数:"+failNum+"]");
// }
logger.info("台账数据插入成功 "+successNum+"次");
} }
} }
} }
@ -119,44 +159,161 @@ public class GMGatherSameSystemInfoServiceImpl implements GMGatherSameSystemInfo
* <h2></h2> * <h2></h2>
* @param smCountLowGroupDataupdate * @param smCountLowGroupDataupdate
* @param jttzbd * @param jttzbd
* @param ejdwtzb_name
* @param keys key * @param keys key
* @param detalTablekeys list
* @author hcy * @author hcy
* 2023/5/6 17:40 * 2023/5/6 17:40
*/ */
private void updateData(List<Map<String, Object>> smCountLowGroupDataupdate, String jttzbd, List<String> keys) { private void updateData(List<Map<String, Object>> smCountLowGroupDataupdate, String jttzbd, String ejdwtzb_name, List<String> keys, List<String> detalTablekeys) {
try {
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
int failNum = 0;
int successNum = 0;
for (Map<String, Object> updateDates : smCountLowGroupDataupdate) { for (Map<String, Object> updateDates : smCountLowGroupDataupdate) {
String htbm = Util.null2String(updateDates.get("htbm")); String htbm = Util.null2String(updateDates.get("htbm"));
List<Map<String, Object>> updateDatas = gmGatherSameSystemInfoMapper.selectHtbmData(jttzbd, htbm); List<Map<String, Object>> selecthtbmData = gmGatherSameSystemInfoMapper.selectHtbmData(jttzbd, htbm);
if (updateDatas.size()>0){ if (selecthtbmData.size()>0){
//拼接sql Map<String, Object> keyValueMap = getKeyValueMap(updateDates, keys);
List<String> updateValueList = new ArrayList<>(); PrepWhereImpl prepWhere = new PrepWhereImpl();
for (String key : keys) { prepWhere.whereAnd("htbm = ?");
String value = Util.null2String(updateDates.get(key)); prepWhere.addArgs(htbm);
updateValueList.add(value); PrepSqlResultImpl prepSqlResult = builderSqlImpl.updateSql(jttzbd, keyValueMap, prepWhere);
} boolean insertBool = recordSet.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs());
StringBuilder builder = new StringBuilder(); if (insertBool){
String htbm1 = Util.null2String(keyValueMap.get("htbm"));
Joiner.on(", ").appendTo(builder, keys); //执行明细表的数据删除和数据插入
builder.append(" = "); deleteAndInsertDetailTable(htbm1,jttzbd,ejdwtzb_name,detalTablekeys);
Joiner.on(", ").appendTo(builder, updateValueList); successNum++;
String updateSql = "update "+jttzbd + "set " + builder + " where htbm = ?";
boolean updateBool = recordSet.executeQuery(updateSql, htbm);
if (updateBool){
logger.info("======数据更新成功======");
}else { }else {
logger.info("======数据更新失败======"); failNum++;
logger.error("台账数据更新失败SQL["+ prepSqlResult +"------失败次数:"+failNum+"]");
} }
logger.info("台账数据更新成功 "+successNum + "次");
}
}
}
/**
* insertupdatekey,valuemap
* @param datas
* @param keys keys
* @return key,valuemap
*/
public Map<String, Object> getKeyValueMap(Map<String, Object> datas ,List<String> keys){
Map<String, Object> keyValueMap = new HashMap<>();
for (String key : keys) {
String v = Util.null2String(datas.get(key));
keyValueMap.put(key, v);
}
return keyValueMap;
}
/**
*
* @param htbm1
* @param jttzbd
* @param ejdwtzb_name
* @param detalTablekeys list
*/
public void deleteAndInsertDetailTable(String htbm1,String jttzbd,String ejdwtzb_name,List<String> detalTablekeys){
try {
RecordSet insertDatailRS = new RecordSet();
//执行明细表的插入语句
String id = gmGatherSameSystemInfoMapper.selectIdByHtbm(jttzbd,htbm1);
int successNum = 0;
int failNum = 0;
if (!"".equals(id)){
boolean deleteBool = gmGatherSameSystemInfoMapper.deleteDetalDataByMainId(jttzbd+"_dt1",id);//明细表插入数据之前,先执行删除语句
if (deleteBool){
//执行明细表插入逻辑
String ejdw_id = gmGatherSameSystemInfoMapper.selectDetailTableSouceId(ejdwtzb_name,htbm1);
List<Map<String,Object>> souceDetailDatas = gmGatherSameSystemInfoMapper.selectDetailTableSouceData(ejdwtzb_name+"_dt1",ejdw_id);
if (souceDetailDatas.size()==0) return;
for (Map<String, Object> souceDetailData : souceDetailDatas) {
Map<String, Object> dealwithData = new HashMap<>();//根据配置表处理完需要字段后的数据Map
for (String key : detalTablekeys) {
dealwithData.put(key,souceDetailData.get(key));
}
//将mainid拼进去
dealwithData.put("mainid",id);
//开始插入明细表数据
PrepSqlResultImpl prepSqlResult = builderSqlImpl.insertSql(jttzbd+"_dt1", dealwithData);
boolean detailInsertBool = insertDatailRS.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs());
if (detailInsertBool){
successNum++;
}else {
failNum++;
logger.error("明细表数据插入失败SQL:["+prepSqlResult+"------失败次数:"+failNum+"]");
}
logger.info("明细表数据插入成功数量:"+successNum);
}
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.info("----GMGatherSameSystemInfoServiceImpl----smCountLowGroupDataupdate----异常如下===="+e); logger.error("报错=="+e);
} }
} }
/**
* :
* @param tablename
* @param userid id
* @param map map
* @return int id
*/
public int createmodedata(String tablename, int userid, Map<String, Object> map) {
Integer modeid = getModeidByTableName(tablename);
int dataid = 0;
RecordSet rs = new RecordSet();
String uuid = map.containsKey("modeuuid") ? map.get("modeuuid").toString() : UUID.randomUUID().toString();
boolean flag = rs.execute("insert into " + tablename
+ "(modeuuid,modedatacreater,modedatacreatedate,modedatacreatetime,formmodeid) values('" + uuid + "',"
+ userid + ",'" + TimeUtil.getCurrentDateString() + "','" + TimeUtil.getOnlyCurrentTimeString() + "',"
+ modeid + ")");
if (flag) {
rs.execute("select id from " + tablename + " where modeuuid='" + uuid + "'");
rs.next();
dataid = weaver.general.Util.getIntValue(rs.getString("id"));
if (dataid > 0) {
// 遍历数据 进行update
String updatesql = "update " + tablename + " set ";
Set<String> keySet = map.keySet();
for (String key : keySet) {
updatesql += key + "='" + map.get(key).toString() + "',";
}
if (updatesql.endsWith(",")) {
updatesql = updatesql.substring(0, updatesql.length() - 1);
updatesql += " where id=" + dataid;
boolean execute = rs.execute(updatesql);
if(!execute){
logger.info("出错的sql==="+updatesql);
}
}
/*
*
*/
ModeRightInfo moderight = new ModeRightInfo();
moderight.editModeDataShare(userid, modeid, dataid);
}
}
return dataid;
}
public static Integer getModeidByTableName(String tablename) {
RecordSet rs = new RecordSet();
String sql = "select b.TABLENAME,a.FORMID,a.id modeid from modeinfo a left join workflow_bill b on a.FORMID=b.id where b.TABLENAME= '"
+ tablename + "'";
rs.execute(sql);
rs.next();
return Math.abs(rs.getInt("modeid"));
}
} }

View File

@ -23,11 +23,11 @@ public interface SMCountLowGroupDataMapper {
List<Map<String, Object>> getConfigDetal2Information(@ParamMapper("configurationDetailTableName2")String configurationDetailTableName2, List<Map<String, Object>> getConfigDetal2Information(@ParamMapper("configurationDetailTableName2")String configurationDetailTableName2,
@ParamMapper("mainid")String mainid); @ParamMapper("mainid")String mainid);
@Select("select * from $t{ejdwtzb_name} where LEFT(modedatacreatedate,7) = LEFT(#{yesterday},7) ") @Select("select * from $t{ejdwtzb_name} where LEFT(modedatacreatedate,10) = LEFT(#{yesterday},10) ")
List<Map<String, Object>> getSMCountLowGroupdata(@ParamMapper("ejdwtzb_name")String ejdwtzb_name, List<Map<String, Object>> getSMCountLowGroupdata(@ParamMapper("ejdwtzb_name")String ejdwtzb_name,
@ParamMapper("yesterday")String yesterday); @ParamMapper("yesterday")String yesterday);
@Select("select * from $t{ejdwtzb_name} where LEFT(modedatamodifydatetime,7) = LEFT(#{yesterday},7)") @Select("select * from $t{ejdwtzb_name} where LEFT(modedatamodifydatetime,10) = #{yesterday}")
List<Map<String, Object>> getSMCountLowGroupDataUpdate(@ParamMapper("ejdwtzb_name")String ejdwtzb_name, List<Map<String, Object>> getSMCountLowGroupDataUpdate(@ParamMapper("ejdwtzb_name")String ejdwtzb_name,
@ParamMapper("yesterday")String yesterday); @ParamMapper("yesterday")String yesterday);

View File

@ -77,16 +77,21 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
if ("0".equals(tbzt)){ if ("0".equals(tbzt)){
//查询全量数据 //查询全量数据
List<Map<String,Object>> smCountLowGroupTotalData = smCountLowGroupDataMapper.getSMCountLowGroupTotalData(ejdwtzb_name);//第一次同步数据 List<Map<String,Object>> smCountLowGroupTotalData = smCountLowGroupDataMapper.getSMCountLowGroupTotalData(ejdwtzb_name);//第一次同步数据
logger.info("查询到的全量数据smCountLowGroupTotalData["+smCountLowGroupTotalData+"]");
if (smCountLowGroupTotalData.size()>0){ if (smCountLowGroupTotalData.size()>0){
this.insertData(smCountLowGroupTotalData,jttzbd,ejdwtzb_name,mainTablekeys,detalTablekeys,tbzt);//全增量主表数据执行插入 并且包含明细表的删除,和再次添加 this.insertData(smCountLowGroupTotalData,jttzbd,ejdwtzb_name,mainTablekeys,detalTablekeys,tbzt);//全增量主表数据执行插入 并且包含明细表的删除,和再次添加
} }
}else if ("1".equals(tbzt)){ //非第一次同步数据 }else if ("1".equals(tbzt)){ //非第一次同步数据
//获取当天日期的前一天,如果和创建时间吻合,并且满足修改时间为空那么,这条数据就是纯插入的数据 //获取当天日期的前一天,如果和创建时间吻合,并且满足修改时间为空那么,这条数据就是纯插入的数据
String yesterday = DateHelper.getYesterday();
List<Map<String,Object>> smCountLowGroupDataInsert = smCountLowGroupDataMapper.getSMCountLowGroupdata(ejdwtzb_name,DateHelper.getYesterday()); List<Map<String,Object>> smCountLowGroupDataInsert = smCountLowGroupDataMapper.getSMCountLowGroupdata(ejdwtzb_name,DateHelper.getYesterday());
logger.info("smCountLowGroupDataInsert===="+smCountLowGroupDataInsert); logger.info("smCountLowGroupDataInsert===="+smCountLowGroupDataInsert);
//获取当天日期的前一天,如果和修改时间吻合,那么这条数据就是更新操作的数据 //获取当天日期的前一天,如果和修改时间吻合,那么这条数据就是更新操作的数据
logger.info("yesterday:"+yesterday);
List<Map<String,Object>> smCountLowGroupDataupdate = smCountLowGroupDataMapper.getSMCountLowGroupDataUpdate(ejdwtzb_name,DateHelper.getYesterday()); List<Map<String,Object>> smCountLowGroupDataupdate = smCountLowGroupDataMapper.getSMCountLowGroupDataUpdate(ejdwtzb_name,DateHelper.getYesterday());
logger.info("smCountLowGroupDataupdate===="+smCountLowGroupDataupdate); logger.info("smCountLowGroupDataupdate===="+smCountLowGroupDataupdate);
//数据插入商密集团总台账 //数据插入商密集团总台账
@ -116,47 +121,27 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
*/ */
private void insertData(List<Map<String, Object>> smCountLowGroupDataInsert, String jttzbd, String ejdwtzb_name, List<String> keys, List<String> detalTablekeys, String tbzt) { private void insertData(List<Map<String, Object>> smCountLowGroupDataInsert, String jttzbd, String ejdwtzb_name, List<String> keys, List<String> detalTablekeys, String tbzt) {
RecordSet recordSet = new RecordSet();
int successNum = 0; int successNum = 0;
int failNum = 0;
for (Map<String, Object> insertDatas : smCountLowGroupDataInsert) { for (Map<String, Object> insertDatas : smCountLowGroupDataInsert) {
String htbm = Util.null2String(insertDatas.get("htbm")); String htbm = Util.null2String(insertDatas.get("htbm"));
logger.info("htbm:["+htbm+"]");
List<Map<String,Object>> selectHtbmData = smCountLowGroupDataMapper.selectHtbmData(jttzbd,htbm); List<Map<String,Object>> selectHtbmData = smCountLowGroupDataMapper.selectHtbmData(jttzbd,htbm);
logger.info("selectHtbmData:["+selectHtbmData+"]");
if (selectHtbmData.size()==0){ if (selectHtbmData.size()==0){
// String insertKey = Joiner.on(",").join((Iterable<?>) keys);//key
Map<String, Object> keyValueMap = new HashMap<>(); Map<String, Object> keyValueMap = new HashMap<>();
for (String key : keys) { for (String key : keys) {
// if("htzje".equals(key) || "htjrrmb".equals(key)){
// String o = Util.null2String(insertDatas.get(key));
// if ("".equals(o)){
// keyValueMap.put(key, null);
// }else {
// keyValueMap.put(key, o);
// }
// }else {
// Object o = insertDatas.get(key);
// keyValueMap.put(key, o);
// }
Object o = insertDatas.get(key); Object o = insertDatas.get(key);
keyValueMap.put(key, o); keyValueMap.put(key, o);
} }
// PrepSqlResultImpl prepSqlResult = builderSqlImpl.insertSql(jttzbd, keyValueMap); logger.info("keyValueMap:["+keyValueMap+"]"+"jttzbd:["+jttzbd+"]");
// boolean insertBool = recordSet.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs());
int createmodedata = createmodedata(jttzbd, 1, keyValueMap); int createmodedata = createmodedata(jttzbd, 1, keyValueMap);
logger.info("createmodedata:["+createmodedata+"]");
if (createmodedata>0){ if (createmodedata>0){
String htbm1 = Util.null2String(keyValueMap.get("htbm")); String htbm1 = Util.null2String(keyValueMap.get("htbm"));
logger.info("htbm1:["+htbm1+"]");
deleteAndInsertDetailTable(htbm1,jttzbd,ejdwtzb_name,detalTablekeys); deleteAndInsertDetailTable(htbm1,jttzbd,ejdwtzb_name,detalTablekeys);
successNum++;
} }
// if(insertBool){
// successNum++;
// String htbm1 = Util.null2String(keyValueMap.get("htbm"));
// //执行明细表的数据删除和数据插入
// deleteAndInsertDetailTable(htbm1,jttzbd,ejdwtzb_name,detalTablekeys);
// }else{
// failNum++;
// logger.error("台账数据插入失败失败SQL:["+ prepSqlResult +"----失败次数:"+failNum+"]");
// }
logger.info("台账数据插入成功 "+successNum+"次"); logger.info("台账数据插入成功 "+successNum+"次");
} }
@ -173,7 +158,6 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
* @author hcy * @author hcy
* 2023/5/6 17:40 * 2023/5/6 17:40
*/ */
private void updateData(List<Map<String, Object>> smCountLowGroupDataupdate, String jttzbd, String ejdwtzb_name, List<String> keys, List<String> detalTablekeys) { private void updateData(List<Map<String, Object>> smCountLowGroupDataupdate, String jttzbd, String ejdwtzb_name, List<String> keys, List<String> detalTablekeys) {
RecordSet recordSet = new RecordSet(); RecordSet recordSet = new RecordSet();
int failNum = 0; int failNum = 0;
@ -229,15 +213,20 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
try { try {
RecordSet insertDatailRS = new RecordSet(); RecordSet insertDatailRS = new RecordSet();
//执行明细表的插入语句 //执行明细表的插入语句
logger.info("htbm1:["+htbm1+"] jttzbd:["+jttzbd+"] ejdwtzb_name:["+ejdwtzb_name+"] detalTablekeys:["+detalTablekeys+"]");
String id = smCountLowGroupDataMapper.selectIdByHtbm(jttzbd,htbm1); String id = smCountLowGroupDataMapper.selectIdByHtbm(jttzbd,htbm1);
logger.info("id:["+id+"]");
int successNum = 0; int successNum = 0;
int failNum = 0; int failNum = 0;
if (!"".equals(id)){ if (!"".equals(id)){
boolean deleteBool = smCountLowGroupDataMapper.deleteDetalDataByMainId(jttzbd+"_dt1",id);//明细表插入数据之前,先执行删除语句 boolean deleteBool = smCountLowGroupDataMapper.deleteDetalDataByMainId(jttzbd+"_dt1",id);//明细表插入数据之前,先执行删除语句
logger.info("是否删除成功deleteBool:["+deleteBool+"]");
if (deleteBool){ if (deleteBool){
//执行明细表插入逻辑 //执行明细表插入逻辑
String ejdw_id = smCountLowGroupDataMapper.selectDetailTableSouceId(ejdwtzb_name,htbm1); String ejdw_id = smCountLowGroupDataMapper.selectDetailTableSouceId(ejdwtzb_name,htbm1);
logger.info("ejdw_id:["+ejdw_id+"]");
List<Map<String,Object>> souceDetailDatas = smCountLowGroupDataMapper.selectDetailTableSouceData(ejdwtzb_name+"_dt1",ejdw_id); List<Map<String,Object>> souceDetailDatas = smCountLowGroupDataMapper.selectDetailTableSouceData(ejdwtzb_name+"_dt1",ejdw_id);
logger.info("souceDetailDatas:["+souceDetailDatas+"]");
if (souceDetailDatas.size()==0) return; if (souceDetailDatas.size()==0) return;
for (Map<String, Object> souceDetailData : souceDetailDatas) { for (Map<String, Object> souceDetailData : souceDetailDatas) {
Map<String, Object> dealwithData = new HashMap<>();//根据配置表处理完需要字段后的数据Map Map<String, Object> dealwithData = new HashMap<>();//根据配置表处理完需要字段后的数据Map
@ -246,9 +235,11 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
} }
//将mainid拼进去 //将mainid拼进去
dealwithData.put("mainid",id); dealwithData.put("mainid",id);
logger.info("dealwithData:["+dealwithData+"]");
//开始插入明细表数据 //开始插入明细表数据
PrepSqlResultImpl prepSqlResult = builderSqlImpl.insertSql(jttzbd+"_dt1", dealwithData); PrepSqlResultImpl prepSqlResult = builderSqlImpl.insertSql(jttzbd+"_dt1", dealwithData);
boolean detailInsertBool = insertDatailRS.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs()); boolean detailInsertBool = insertDatailRS.executeUpdate(prepSqlResult.getSqlStr(), prepSqlResult.getArgs());
logger.info("detailInsertBool["+detailInsertBool+"]");
if (detailInsertBool){ if (detailInsertBool){
successNum++; successNum++;
}else { }else {
@ -274,32 +265,42 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
* @return int id * @return int id
*/ */
public int createmodedata(String tablename, int userid, Map<String, Object> map) { public int createmodedata(String tablename, int userid, Map<String, Object> map) {
try {
Integer modeid = getModeidByTableName(tablename); Integer modeid = getModeidByTableName(tablename);
logger.info("modeid:["+modeid+"]");
int dataid = 0; int dataid = 0;
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
String uuid = map.containsKey("modeuuid") ? map.get("modeuuid").toString() : UUID.randomUUID().toString(); String uuid = map.containsKey("modeuuid") ? map.get("modeuuid").toString() : UUID.randomUUID().toString();
boolean flag = rs.execute("insert into " + tablename logger.info("uuid:["+uuid+"]");
String insertSql = "insert into " + tablename
+ "(modeuuid,modedatacreater,modedatacreatedate,modedatacreatetime,formmodeid) values('" + uuid + "'," + "(modeuuid,modedatacreater,modedatacreatedate,modedatacreatetime,formmodeid) values('" + uuid + "',"
+ userid + ",'" + TimeUtil.getCurrentDateString() + "','" + TimeUtil.getOnlyCurrentTimeString() + "'," + userid + ",'" + TimeUtil.getCurrentDateString() + "','" + TimeUtil.getOnlyCurrentTimeString() + "',"
+ modeid + ")"); + modeid + ")";
logger.info("insertSql:["+insertSql+"]");
boolean flag = rs.execute(insertSql);
logger.info("flag:["+flag+"]");
if (flag) { if (flag) {
rs.execute("select id from " + tablename + " where modeuuid='" + uuid + "'"); rs.execute("select id from " + tablename + " where modeuuid='" + uuid + "'");
rs.next(); rs.next();
dataid = weaver.general.Util.getIntValue(rs.getString("id")); dataid = weaver.general.Util.getIntValue(rs.getString("id"));
logger.info("dataid:["+dataid+"]");
if (dataid > 0) { if (dataid > 0) {
// 遍历数据 进行update // 遍历数据 进行update
String updatesql = "update " + tablename + " set "; String updatesql = "update " + tablename + " set ";
logger.info("updatesql:["+updatesql+"]");
Set<String> keySet = map.keySet(); Set<String> keySet = map.keySet();
for (String key : keySet) { for (String key : keySet) {
updatesql += key + "='" + map.get(key).toString() + "',"; updatesql += key + "='" + Util.null2String(map.get(key)) + "',";
} }
logger.info("updatesql:["+updatesql+"]");
if (updatesql.endsWith(",")) { if (updatesql.endsWith(",")) {
updatesql = updatesql.substring(0, updatesql.length() - 1); updatesql = updatesql.substring(0, updatesql.length() - 1);
updatesql += " where id=" + dataid; updatesql += " where id=" + dataid;
logger.info("updatesql:["+updatesql+"]");
boolean execute = rs.execute(updatesql); boolean execute = rs.execute(updatesql);
logger.info("execute:["+execute+"]");
if(!execute){ if(!execute){
logger.info("出错的sql==="+updatesql); logger.info("出错的sql==="+updatesql);
} }
@ -313,6 +314,11 @@ public class SMCountLowGroupDataServiceImpl implements SMCountLowGroupDataServic
} }
return dataid; return dataid;
} catch (Exception e) {
e.printStackTrace();
logger.error("更新报错e:["+e+"]");
}
return -1;
} }