财报代码编写

This commit is contained in:
lvleigang 2025-04-28 15:07:21 +08:00
parent 8ab88a9acb
commit 82b1384feb
7 changed files with 221 additions and 6 deletions

View File

@ -26,6 +26,7 @@ public interface IIncomeInvoiceDao extends IBaseDao<IncomeInvoiceEntity, String>
List<IncomeInvoiceEntity> queryOaMx(IncomeInvoiceEntity incomeInvoiceEntity); List<IncomeInvoiceEntity> queryOaMx(IncomeInvoiceEntity incomeInvoiceEntity);
int updateMx(IncomeInvoiceEntity incomeInvoiceEntity); int updateMx(IncomeInvoiceEntity incomeInvoiceEntity);
int updateFP(IncomeInvoiceEntity incomeInvoiceEntity);
int saveMx(IncomeInvoiceEntity incomeInvoiceEntity); int saveMx(IncomeInvoiceEntity incomeInvoiceEntity);
@ -34,5 +35,7 @@ public interface IIncomeInvoiceDao extends IBaseDao<IncomeInvoiceEntity, String>
List<JSONObject> queryByAloneId(IncomeInvoiceEntity jnquerydata); List<JSONObject> queryByAloneId(IncomeInvoiceEntity jnquerydata);
List<JSONObject> queryAccount(IncomeInvoiceEntity jnentity); List<JSONObject> queryAccount(IncomeInvoiceEntity jnentity);
List<IncomeInvoiceEntity> queryOaFp(IncomeInvoiceEntity incomeInvoiceEntity);
} }

View File

@ -38,6 +38,12 @@ public class IncomeInvoiceDaoImpl extends MybatisGenericDao<IncomeInvoiceEntity,
} }
@DS("#entity.dataSourceCode") @DS("#entity.dataSourceCode")
@Override @Override
public List<IncomeInvoiceEntity> queryOaFp(IncomeInvoiceEntity entity) {
List<IncomeInvoiceEntity> o = (List<IncomeInvoiceEntity>) super.selectList(getSqlIdPrifx() + "queryOaFp", entity);
return o;
}
@DS("#entity.dataSourceCode")
@Override
public List<IncomeInvoiceEntity> queryOaMx(IncomeInvoiceEntity entity) { public List<IncomeInvoiceEntity> queryOaMx(IncomeInvoiceEntity entity) {
List<IncomeInvoiceEntity> o = (List<IncomeInvoiceEntity>) super.selectList(getSqlIdPrifx() + "queryOaMx", entity); List<IncomeInvoiceEntity> o = (List<IncomeInvoiceEntity>) super.selectList(getSqlIdPrifx() + "queryOaMx", entity);
return o; return o;
@ -49,6 +55,11 @@ public class IncomeInvoiceDaoImpl extends MybatisGenericDao<IncomeInvoiceEntity,
} }
@DS("#entity.dataSourceCode") @DS("#entity.dataSourceCode")
@Override @Override
public int updateFP(IncomeInvoiceEntity entity) {
return super.update(getSqlIdPrifx() + "updateFP", entity);
}
@DS("#entity.dataSourceCode")
@Override
public int saveMx(IncomeInvoiceEntity entity) { public int saveMx(IncomeInvoiceEntity entity) {
return super.insert(getSqlIdPrifx() + "saveMx", entity); return super.insert(getSqlIdPrifx() + "saveMx", entity);
} }

View File

@ -179,6 +179,15 @@
</trim> </trim>
</select> </select>
<select id="queryOaFp" resultType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity" parameterType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity">
select
id as dataId
from formmain_0705
<trim prefix="where" prefixOverrides="and">
<if test="field0002 != null and field0002 != ''"> and field0002 = #{field0128} </if>
</trim>
</select>
<select id="queryOaMx" resultType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity" parameterType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity"> <select id="queryOaMx" resultType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity" parameterType="com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity">
select select
id as dataId id as dataId
@ -200,6 +209,15 @@
</trim> </trim>
where id = #{dataId} where id = #{dataId}
</update> </update>
<update id="updateFP" parameterType = "com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity" >
update formmain_0705 set
<trim suffix="" suffixOverrides=",">
<if test="field0130 != null and field0130 != ''"> field0034 = #{field0130},</if>
<if test="field0138 != null and field0138 != ''"> field0035 = #{field0138},</if>
<if test="field0139 != null and field0139 != ''"> field0036 = #{field0139},</if>
</trim>
where id = #{dataId}
</update>
<insert id="saveMx" parameterType="com.hzya.frame.report.reportManage.entity.ReportManageEntity"> <insert id="saveMx" parameterType="com.hzya.frame.report.reportManage.entity.ReportManageEntity">
insert into formson_0702( insert into formson_0702(

View File

@ -21,6 +21,7 @@ public interface IIncomeInvoiceService extends IBaseService<IncomeInvoiceEntity,
**/ **/
JsonResultEntity getIncomeInvoiceData(JSONObject requestJson); JsonResultEntity getIncomeInvoiceData(JSONObject requestJson);
SysExtensionApiEntity setData(SysExtensionApiEntity entity) throws Exception; SysExtensionApiEntity setData(SysExtensionApiEntity entity) throws Exception;
SysExtensionApiEntity setDataCallBack(SysExtensionApiEntity entity) throws Exception;
JsonResultEntity sendFinancialReportPlugin(JSONObject requestJson); JsonResultEntity sendFinancialReportPlugin(JSONObject requestJson);
} }

View File

@ -1,12 +1,16 @@
package com.hzya.frame.plugin.incomeInvoiceData.service.impl; package com.hzya.frame.plugin.incomeInvoiceData.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.mdm.mdmModuleSource.entity.MdmModuleSourceEntity; import com.hzya.frame.mdm.mdmModuleSource.entity.MdmModuleSourceEntity;
import com.hzya.frame.plugin.incomeInvoiceData.dao.IIncomeInvoiceDao; import com.hzya.frame.plugin.incomeInvoiceData.dao.IIncomeInvoiceDao;
import com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity; import com.hzya.frame.plugin.incomeInvoiceData.entity.IncomeInvoiceEntity;
import com.hzya.frame.plugin.incomeInvoiceData.service.IIncomeInvoiceService; import com.hzya.frame.plugin.incomeInvoiceData.service.IIncomeInvoiceService;
import com.hzya.frame.seeyon.service.ICtpAttachmentService;
import com.hzya.frame.seeyon.util.YzfSignUtil; import com.hzya.frame.seeyon.util.YzfSignUtil;
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity; import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
import com.hzya.frame.sysnew.comparison.controlsLog.dao.impl.ControlsLogDaoImpl; import com.hzya.frame.sysnew.comparison.controlsLog.dao.impl.ControlsLogDaoImpl;
@ -36,8 +40,14 @@ import org.springframework.core.task.TaskExecutor;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
@ -46,6 +56,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID;
/** /**
* @author makejava * @author makejava
@ -55,6 +66,8 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S
private IIncomeInvoiceDao incomeInvoiceDao; private IIncomeInvoiceDao incomeInvoiceDao;
@Autowired @Autowired
private ICtpAttachmentService ctpAttachmentService;
@Autowired
private ControlsLogDaoImpl controlsLogDaoimpl; private ControlsLogDaoImpl controlsLogDaoimpl;
@Autowired @Autowired
private IComparisonDao comparisonDao; private IComparisonDao comparisonDao;
@ -250,8 +263,8 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S
JSONObject queryParams = new JSONObject(); JSONObject queryParams = new JSONObject();
queryParams.put("page",queryCursor); queryParams.put("page",queryCursor);
queryParams.put("size",size); queryParams.put("size",size);
queryParams.put("kprqq",dataTime); //queryParams.put("kprqq",dataTime);
queryParams.put("kprqz",dataTime); //queryParams.put("kprqz",dataTime);
queryParams.put("taxNo",taxNo); queryParams.put("taxNo",taxNo);
dayabody.put("queryParams",queryParams); dayabody.put("queryParams",queryParams);
if(flags) { if(flags) {
@ -483,6 +496,175 @@ public class IncomeInvoiceServiceImpl extends BaseService<IncomeInvoiceEntity, S
} }
return entity; return entity;
} }
public JSONObject fileUpload(File file) {
if (null != file) {
try {
HashMap<String, Object> paramMap = new HashMap<>();
String loginName = "hzya";
paramMap.put("file", file);
String url = "/seeyon/rest/attachment?token=@token@";//如果后面加上applicationCategory=1&extensions=&firstSave=true附件业务自动生成一条记录
url = url.replaceAll("@token@", getOAToken(loginName));
String result = HttpUtil.post("http://60.204.152.210" + url, paramMap);
if (StrUtil.isNotBlank(result)) {
JSONObject jsonObject = JSONObject.parseObject(result);
String atts = jsonObject.get("atts").toString();
if (StrUtil.isNotEmpty(atts)) {
JSONArray jsonArray = JSONArray.parseArray(atts);
JSONObject res = (JSONObject) jsonArray.get(0);
String fileUrl = res.getString("fileUrl");
logger.info("附件id:" + fileUrl);
return res;
}
}
}catch (Exception e){
logger.error("附件上传失败"+e.getMessage());
}
}
return null;
}
private String sendFileUpload(String url,String filename) {
try {
// 获取文件字节数据
byte[] fileBytes = downloadFileBytes(url);
if (fileBytes != null) {
// 模拟一个文件
File tempFile = new File(filename);
try (FileOutputStream fos = new FileOutputStream(tempFile)) {
fos.write(fileBytes);
}
JSONObject data = fileUpload(tempFile);
String fileUrl = null;
if(data != null && data.getString("fileUrl") != null && !"".equals(data.getString("fileUrl")) ){
fileUrl = data.getString("fileUrl");
}
// 操作完成后删除临时文件
tempFile.deleteOnExit();
return fileUrl;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public byte[] downloadFileBytes(String fileUrl) throws IOException {
URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
try (InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
return outputStream.toByteArray();
}
}
/**
* seeyon流程事件监听后置方法绑定修改文件
* @param entity
* @return
* @throws Exception
*/
@Override
public SysExtensionApiEntity setDataCallBack(SysExtensionApiEntity entity) throws Exception {
try {
String bodys = entity.getBodys();
JSONObject jsonObject = JSONObject.parseObject(bodys);
String urlData = null;
String ofdurlData = null;
String xmlurlData = null;
if(jsonObject.getString("url") != null){
urlData = sendFileUpload(jsonObject.getString("url"),jsonObject.getString("fphm")+"url");
}
if(jsonObject.getString("ofdurl") != null){
ofdurlData = sendFileUpload(jsonObject.getString("ofdurl"),jsonObject.getString("fphm")+"ofdurl");
}
if(jsonObject.getString("xmlurl") != null){
xmlurlData = sendFileUpload(jsonObject.getString("xmlurl"),jsonObject.getString("fphm")+"xmlurl");
}
if(jsonObject.getString("fphm") != null){
IncomeInvoiceEntity incomeInvoiceEntity = new IncomeInvoiceEntity();
incomeInvoiceEntity.setDataSourceCode("master");//todo
//incomeInvoiceEntity.setDataSourceCode("HT-OA");//todo
incomeInvoiceEntity.setField0128(jsonObject.getString("fphm"));//发票号码
incomeInvoiceEntity.setField0130(urlData);//发票文件
incomeInvoiceEntity.setField0138(ofdurlData);//发票文件
incomeInvoiceEntity.setField0139(xmlurlData);//发票文件
List<IncomeInvoiceEntity> list = incomeInvoiceDao.queryOaFp(incomeInvoiceEntity);
if(list != null && list.size() == 1){
incomeInvoiceEntity.setDataId(list.get(0).getDataId());
if(urlData != null){
//保存关联表
String urluuid = String.valueOf(UUID.randomUUID().getLeastSignificantBits());
ctpAttachmentService.saveAttachment(urlData,list.get(0).getDataId().toString(),urluuid,incomeInvoiceEntity.getDataSourceCode());
}
if(ofdurlData != null){
//保存关联表
String urluuid = String.valueOf(UUID.randomUUID().getLeastSignificantBits());
ctpAttachmentService.saveAttachment(ofdurlData,list.get(0).getDataId().toString(),urluuid,incomeInvoiceEntity.getDataSourceCode());
}
if(xmlurlData != null){
//保存关联表
String urluuid = String.valueOf(UUID.randomUUID().getLeastSignificantBits());
ctpAttachmentService.saveAttachment(xmlurlData,list.get(0).getDataId().toString(),urluuid,incomeInvoiceEntity.getDataSourceCode());
}
incomeInvoiceDao.updateFP(incomeInvoiceEntity);
}
}
//修改明细表
if(jsonObject.getString("htbh") != null){
IncomeInvoiceEntity incomeInvoiceEntity = new IncomeInvoiceEntity();
incomeInvoiceEntity.setDataSourceCode("master");//todo
//incomeInvoiceEntity.setDataSourceCode("HT-OA");//todo
incomeInvoiceEntity.setField0003(jsonObject.getString("htbh"));//合同号
incomeInvoiceEntity.setField0127(jsonObject.getString("fpdm"));//发票代码
incomeInvoiceEntity.setField0128(jsonObject.getString("fphm"));//发票号码
incomeInvoiceEntity.setField0129(jsonObject.getString("jshj"));//发票总额
incomeInvoiceEntity.setField0130(jsonObject.getString("url"));//发票文件
incomeInvoiceEntity.setField0138(jsonObject.getString("ofdurl"));//发票文件
incomeInvoiceEntity.setField0139(jsonObject.getString("xmlurl"));//发票文件
List<IncomeInvoiceEntity> list = incomeInvoiceDao.queryOaZb(incomeInvoiceEntity);
if(list != null && list.size() == 1){
incomeInvoiceEntity.setFormmainId(list.get(0).getDataId());
if(urlData != null){
//保存关联表
String urluuid = String.valueOf(UUID.randomUUID().getLeastSignificantBits());
ctpAttachmentService.saveAttachment(urlData,list.get(0).getDataId().toString(),urluuid,incomeInvoiceEntity.getDataSourceCode());
}
if(ofdurlData != null){
//保存关联表
String urluuid = String.valueOf(UUID.randomUUID().getLeastSignificantBits());
ctpAttachmentService.saveAttachment(ofdurlData,list.get(0).getDataId().toString(),urluuid,incomeInvoiceEntity.getDataSourceCode());
}
if(xmlurlData != null){
//保存关联表
String urluuid = String.valueOf(UUID.randomUUID().getLeastSignificantBits());
ctpAttachmentService.saveAttachment(xmlurlData,list.get(0).getDataId().toString(),urluuid,incomeInvoiceEntity.getDataSourceCode());
}
List<IncomeInvoiceEntity> mxlist = incomeInvoiceDao.queryOaMx(incomeInvoiceEntity);
if(mxlist != null && mxlist.size() == 1){
incomeInvoiceEntity.setDataId(mxlist.get(0).getDataId());
incomeInvoiceDao.updateMx(incomeInvoiceEntity);
}
if(mxlist == null || mxlist.size() == 0){
incomeInvoiceEntity.setDataId(1);
incomeInvoiceDao.saveMx(incomeInvoiceEntity);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return entity;
}

View File

@ -16,5 +16,5 @@ public interface ICtpAttachmentService extends IBaseService<CtpAttachmentEntity,
* @param sub_reference 随机uuid * @param sub_reference 随机uuid
* @return * @return
*/ */
CtpAttachmentEntity saveAttachment(String fileUrl, String col_summary_id, String sub_reference)throws Exception; CtpAttachmentEntity saveAttachment(String fileUrl, String col_summary_id, String sub_reference, String dataSourceCode)throws Exception;
} }

View File

@ -41,11 +41,11 @@ public class CtpAttachmentServiceImpl extends BaseService<CtpAttachmentEntity, S
* @return * @return
*/ */
@Override @Override
public CtpAttachmentEntity saveAttachment(String fileUrl, String col_summary_id, String sub_reference)throws Exception { public CtpAttachmentEntity saveAttachment(String fileUrl, String col_summary_id, String sub_reference, String dataSourceCode)throws Exception {
//查一下附件 //查一下附件
CtpFileEntity ctpFileEntity = new CtpFileEntity(); CtpFileEntity ctpFileEntity = new CtpFileEntity();
ctpFileEntity.setId(fileUrl); ctpFileEntity.setId(fileUrl);
ctpFileEntity.setDataSourceCode(""); ctpFileEntity.setDataSourceCode(dataSourceCode);
List<CtpFileEntity> ctpFileList = ctpFileService.query(ctpFileEntity); List<CtpFileEntity> ctpFileList = ctpFileService.query(ctpFileEntity);
if (CollectionUtils.isNotEmpty(ctpFileList)){ if (CollectionUtils.isNotEmpty(ctpFileList)){
CtpFileEntity ctpFile = ctpFileList.get(0); CtpFileEntity ctpFile = ctpFileList.get(0);
@ -55,7 +55,7 @@ public class CtpAttachmentServiceImpl extends BaseService<CtpAttachmentEntity, S
ctpAttachmentEntity.setFile_url(ctpFile.getId());//ctp_file表的id ctpAttachmentEntity.setFile_url(ctpFile.getId());//ctp_file表的id
ctpAttachmentEntity.setAtt_reference(col_summary_id);//业务表单的id ctpAttachmentEntity.setAtt_reference(col_summary_id);//业务表单的id
ctpAttachmentEntity.setSub_reference(sub_reference);//这个字段要保存到业务表附件到字段上 ctpAttachmentEntity.setSub_reference(sub_reference);//这个字段要保存到业务表附件到字段上
ctpAttachmentEntity.setCategory("66");//这里写66 才可以显示图片 ctpAttachmentEntity.setCategory(ctpFile.getCategory());//这里写66 才可以显示图片
ctpAttachmentEntity.setFilename(ctpFile.getFilename()); ctpAttachmentEntity.setFilename(ctpFile.getFilename());
ctpAttachmentEntity.setType(ctpFile.getType()); ctpAttachmentEntity.setType(ctpFile.getType());
ctpAttachmentEntity.setMime_type(ctpFile.getMime_type()); ctpAttachmentEntity.setMime_type(ctpFile.getMime_type());