From fdfbc6d9ba049f78d560dd8d0006e89cfb19db15 Mon Sep 17 00:00:00 2001 From: yefei Date: Wed, 12 Apr 2023 16:21:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?ariesy=20=E5=A2=9E=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dxhy/core/config/WebConfiguration.java | 2 +- .../dxhy/core/controller/ExcelController.java | 129 ++++++++++++++++++ .../controller/InvoiceQueryController.java | 9 +- .../dxhy/core/dao/ExtMessageControlDao.java | 56 ++++++++ .../core/dao/ExtSysMessagecontrolDao.java | 13 ++ .../core/entity/ExtSysMessagecontrol.java | 29 ++++ .../core/entity/ExtSysMessagecontrolVo.java | 28 ++++ .../job/service/impl/ConfirmServiceImpl.java | 3 + .../service/ExtMessageControlService.java | 64 +++++++++ .../service/ExtMessageControlServiceImpl.java | 76 +++++++++++ .../impl/CoreInvoiceQueryServiceImpl.java | 5 +- .../com/dxhy/core/util/InvoiceQueryUtil.java | 2 +- .../resources/mapper/ExtMessageControl.xml | 73 ++++++++++ 13 files changed, 482 insertions(+), 7 deletions(-) create mode 100644 dxhy-core/src/main/java/com/dxhy/core/dao/ExtMessageControlDao.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/dao/ExtSysMessagecontrolDao.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrol.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrolVo.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlService.java create mode 100644 dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlServiceImpl.java create mode 100644 dxhy-core/src/main/resources/mapper/ExtMessageControl.xml diff --git a/dxhy-core/src/main/java/com/dxhy/core/config/WebConfiguration.java b/dxhy-core/src/main/java/com/dxhy/core/config/WebConfiguration.java index a935bf45..d6e1ef66 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/config/WebConfiguration.java +++ b/dxhy-core/src/main/java/com/dxhy/core/config/WebConfiguration.java @@ -65,7 +65,7 @@ public class WebConfiguration implements WebMvcConfigurer { private ArrayList getIncludePathPatterns() { ArrayList list = new ArrayList<>(); String[] urls = - {"/mailGatherLog/**","/emailMaintain/**","/excel/apply", "/ftp/download", "/scan/get/scaninfo", "/setPwd", "/resetPwd", "/invoiceDetail/info", + {"/mailGatherLog/**","/emailMaintain/**","/excel/apply","/excel/applyForSDNY", "/ftp/download", "/scan/get/scaninfo", "/setPwd", "/resetPwd", "/invoiceDetail/info", "/invoiceDetail/saleInfo", "/smcy/info", "/invoiceDetail/companyPoolInvoiceDetail/**", "/pool/**"}; Collections.addAll(list, urls); return list; diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/ExcelController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/ExcelController.java index 46da8864..59f39471 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/ExcelController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/ExcelController.java @@ -7,6 +7,9 @@ import java.util.Map; import javax.annotation.Resource; +import com.dxhy.core.feign.IFeginWebsocket; +import com.dxhy.core.service.ExtMessageControlService; +import com.dxhy.core.service.export.IExcelExportService; import org.apache.commons.lang.StringUtils; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -41,6 +44,12 @@ public class ExcelController extends AbstractController { @Resource private IExcelExportlogService exportlogService; + @Resource + private IExcelExportService excelExportService; + + @Resource + private ExtMessageControlService messageControlService; + @Resource private Sender sender; @@ -145,6 +154,126 @@ public class ExcelController extends AbstractController { } } + /** + * excel导出申请接口 + * + * @return 返回 + * + */ + @PostMapping("/applyForSDNY") + @ResponseBody + public ResponseEntity excelExportApplyForSDNY(@RequestBody Map map) { + String serviceType = String.valueOf(map.get("serviceType")); + String condition = JSON.toJSONString(map.get("condition")); + // 入参统一在入口处理 + Map pramsMap = new HashMap<>(16); + pramsMap.put("userAccount", getUserId()); + pramsMap.put("userId", getUserId()); + pramsMap.put("userName", getUserName()); + pramsMap.put("loginName", getLoginName()); + pramsMap.put("dbName", getUserInfo().getDbName()); + pramsMap.put("gfTaxNo", StringHelper.listToString(UserInfoUtil.getGfshAll(getUserInfo().getOrg()))); + + if (StringUtils.isNotBlank(serviceType)) { + pramsMap.put("serviceType", serviceType); + } else { + return ResponseEntity.ok(R.error("业务类型不能为空!")); + } + if (StringUtils.isNotBlank(condition)) { + JSONObject prams = JSONObject.parseObject(condition); + String gfsh = prams.getString("gfsh"); + prams.put("business", getUserInfo().getBusiness()); + // 非查验综合查询、查验明细导出处理 + if (!"30".equals(serviceType) && !"29".equals(serviceType)) { + + // 判断购方税号是否为全部 + if ("99".equals(gfsh)) { + StringBuffer newGfsh = new StringBuffer(); + List list = getUserInfo().getOrg(); + for (int i = 0; i < list.size(); i++) { + Tax tax = list.get(i); + if (i == list.size() - 1) { + newGfsh.append(tax.getTaxno()); + } else { + newGfsh.append(tax.getTaxno()).append(","); + } + } + prams.put("gfsh", newGfsh); + prams.put("gfshFlag", "99"); + String newCondition = prams.toString(); + pramsMap.put("conditions", newCondition); + } else if ("".equals(gfsh) || gfsh == null) { + StringBuffer newGfsh = new StringBuffer(); + List list = getUserInfo().getOrg(); + for (int i = 0; i < list.size(); i++) { + Tax tax = list.get(i); + if (i == list.size() - 1) { + newGfsh.append(tax.getTaxno()); + } else { + newGfsh.append(tax.getTaxno()).append(","); + } + } + prams.put("gfsh", newGfsh); + String newCondition = prams.toString(); + pramsMap.put("conditions", newCondition); + } else { + String gfmc = ""; + List org = getUserInfo().getOrg(); + if (org != null && org.size() > 0) { + for (Tax tax : org) { + if (tax.getTaxno().equals(gfsh)) { + gfmc = tax.getTaxname(); + } + } + } + prams.put("gfmc", gfmc); + String newCondition = prams.toString(); + pramsMap.put("conditions", newCondition); + } + } else { + pramsMap.put("conditions", condition); + } + } else { + return ResponseEntity.ok(R.error("导出条件不能为空!")); + } + + log.debug("pramsMap-" + pramsMap); + try { + // 保存导出日志记录 + TDxExcelExportlog tdxExcelExprortlog = exportlogService.excelExportApply(pramsMap); + pramsMap.put("id", tdxExcelExprortlog.getId()); + pramsMap.put("createDate", new Date()); + JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(pramsMap)); +// String json = responseResult(jsonObject); + // 启动mq发送导出文件请求 +// sender.sendToExcel(json); + + excelExportService.exportExcel(jsonObject.toJSONString()); + waitResult(); + + Map returnMap = new HashMap<>(2); + returnMap.put("id",tdxExcelExprortlog.getId()); + returnMap.put("setviceType","2"); + + return ResponseEntity.ok(R.ok().put("data", returnMap)); + } catch (Exception e) { + e.printStackTrace(); + log.error("", e); + return ResponseEntity.ok(R.error(CommonConstants.MSG_ERR_DEFAULT)); + } + } + + private void waitResult() throws InterruptedException { + int count = 0; + for(int i = 0;i<20;i++) { + count = messageControlService.queryCount(getUserName()); + if(count > 0){ + break; + } + Thread.sleep(1000); + } + } + /** * 给jsonObject base64加密成字符串 * diff --git a/dxhy-core/src/main/java/com/dxhy/core/controller/InvoiceQueryController.java b/dxhy-core/src/main/java/com/dxhy/core/controller/InvoiceQueryController.java index 321a7f7a..6c19b208 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/controller/InvoiceQueryController.java +++ b/dxhy-core/src/main/java/com/dxhy/core/controller/InvoiceQueryController.java @@ -52,6 +52,7 @@ public class InvoiceQueryController extends AbstractController { @SysLog("发票扫码查验") public ResponseEntity smQueryInvoice(@RequestBody Map pramsMap) { // 入参统一在入口处理 + log.info("传入的参数为:{}",pramsMap); String userid = getUserName(); pramsMap.put("userid", userid); String dbName = getUserInfo().getDbName(); @@ -105,10 +106,10 @@ public class InvoiceQueryController extends AbstractController { return ResponseEntity.ok(R.error("金额不能为空!")); } } else { - if (pramsMap.get("invoiceCode").isEmpty()) { - - return ResponseEntity.ok(R.error("发票代码不能为空!")); - } +// if (pramsMap.get("invoiceCode").isEmpty()) { +// +// return ResponseEntity.ok(R.error("发票代码不能为空!")); +// } pramsMap.put("invoiceType", iu.getFplxdm()); if (pramsMap.get("checkCode").isEmpty()) { return ResponseEntity.ok(R.error("校验码不能为空!")); diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/ExtMessageControlDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/ExtMessageControlDao.java new file mode 100644 index 00000000..57952ff8 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/ExtMessageControlDao.java @@ -0,0 +1,56 @@ +package com.dxhy.core.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dxhy.core.entity.ExtSysMessagecontrol; +import com.dxhy.core.entity.ExtSysMessagecontrolVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author Administrator + * + */ +@Mapper +public interface ExtMessageControlDao extends BaseMapper { + + /** + * 查看消息信息 + * + * @param userName + * 用户名 + * @param operationStatus + * 导出状态 + * @return 返回 + */ + List queryMessageContol(@Param("userName") String userName, + @Param("operationStatus") String operationStatus); + + /** + * 统计消息数量 + * + * @param userName + * 用户名 + * @return 返回 + */ + int queryCount(String userName); + + /** + * 修改状态 + * + * @param vo + * 查询条件 + * @return 返回 + */ + int updateOperationStatusById(ExtSysMessagecontrol vo); + + /** + * 修改状态 + * + * @param vo + * 查询条件 + * @return 返回 + */ + int updateOperationStatusAll(ExtSysMessagecontrol vo); +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/dao/ExtSysMessagecontrolDao.java b/dxhy-core/src/main/java/com/dxhy/core/dao/ExtSysMessagecontrolDao.java new file mode 100644 index 00000000..5cd5a985 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/dao/ExtSysMessagecontrolDao.java @@ -0,0 +1,13 @@ +package com.dxhy.core.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dxhy.core.entity.ExtSysMessagecontrol; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author dxhy + */ +@Mapper +public interface ExtSysMessagecontrolDao extends BaseMapper { + +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrol.java b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrol.java new file mode 100644 index 00000000..2ae77632 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrol.java @@ -0,0 +1,29 @@ +package com.dxhy.core.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * + * @author xiexuedi + * @data: 2019/04/22 10:34 + */ +@Data +@TableName(value = "sys_messagecontrol") +public class ExtSysMessagecontrol implements Serializable { + + private static final long serialVersionUID = -6748298050312230059L; + @TableId + private Long id; + private Date createTime; + private Date updateTime; + private String userAccount; + private String operationStatus; + private String title; + private String content; + private String url; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrolVo.java b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrolVo.java new file mode 100644 index 00000000..56b91c17 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/entity/ExtSysMessagecontrolVo.java @@ -0,0 +1,28 @@ +package com.dxhy.core.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * + * @author xiexuedi + * @data 2019/04/22 10:34 + */ +@Data +public class ExtSysMessagecontrolVo implements Serializable { + + private static final long serialVersionUID = -6748298050312230059L; + private Long id; + private Date createTime; + private Date updateTime; + private String userAccount; + /** 0--未读 1--已读 */ + private String operationStatus; + private String title; + private String content; + private String url; + private String createTimeNew; + private String updateTimeNew; +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/job/service/impl/ConfirmServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/job/service/impl/ConfirmServiceImpl.java index d7983001..8c0c8b3a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/job/service/impl/ConfirmServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/job/service/impl/ConfirmServiceImpl.java @@ -102,6 +102,9 @@ public class ConfirmServiceImpl extends ServiceImpl impl if (list != null && list.size() > 0) { for (TAcOrg tAcOrg : list) { + + DynamicContextHolder.push(DbConstant.BASICS_READ); + BasisSysDeptCfg baseSysDeptCfg = basisSysDeptCfgDao.selectOne(new QueryWrapper().eq("nsrsbh", tAcOrg.getTaxno())); if (baseSysDeptCfg != null) { continue; diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlService.java b/dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlService.java new file mode 100644 index 00000000..426d333b --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlService.java @@ -0,0 +1,64 @@ +package com.dxhy.core.service; + +import com.dxhy.core.entity.ExtSysMessagecontrol; + +/** + * + * @ClassName: ExtMessageControlService : + * @author: xiexuedi + * @date: 2019年4月22日 下午13:32:43 + * + */ +public interface ExtMessageControlService { + + /** + * 保存消息信息 + * + * @param vo + * 查询条件 + */ + void insertMessage(ExtSysMessagecontrol vo); + + /** + * 查询消息信息 + * + * @param userName + * 用户信息 + * @param curr + * 分页 + * @param size + * 条数 + * @param operationStatus + * 状态 + * @return 返回 + */ + Object queryMessageContol(String userName, Integer curr, Integer size, String operationStatus); + + /** + * 统计消息数量 + * + * @param userName + * 用户信息 + * @return 返回 + */ + int queryCount(String userName); + + /** + * 修改状态 + * + * @param vo + * 查询条件 + * @return 返回 + */ + int updateOperationStatusById(ExtSysMessagecontrol vo); + + /** + * 修改状态 + * + * @param vo + * 查询条件 + * @return 返回 + */ + int updateOperationStatusAll(ExtSysMessagecontrol vo); + +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlServiceImpl.java new file mode 100644 index 00000000..126210a8 --- /dev/null +++ b/dxhy-core/src/main/java/com/dxhy/core/service/ExtMessageControlServiceImpl.java @@ -0,0 +1,76 @@ +package com.dxhy.core.service; + +import com.alibaba.fastjson.JSONObject; +import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.datasource.config.DynamicContextHolder; +import com.dxhy.common.service.impl.MpBaseServiceImpl; +import com.dxhy.core.dao.ExtMessageControlDao; +import com.dxhy.core.dao.ExtSysMessagecontrolDao; +import com.dxhy.core.entity.ExtSysMessagecontrol; +import com.dxhy.core.entity.ExtSysMessagecontrolVo; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author jiaohongyang + */ +@Service("messageControlService") +@Slf4j +public class ExtMessageControlServiceImpl extends MpBaseServiceImpl + implements ExtMessageControlService { + @Resource + private ExtMessageControlDao extMessageControlDao; + @Resource + private ExtSysMessagecontrolDao extSysMessagecontrolDao; + + @Override + public void insertMessage(ExtSysMessagecontrol vo) { + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + extSysMessagecontrolDao.insert(vo); + } + + @Override + public Object queryMessageContol(String userName, Integer curr, Integer size, String operationStatus) { + DynamicContextHolder.push(DbConstant.BASICS_READ); + JSONObject json = new JSONObject(); + try { + PageHelper.startPage(curr, size); + List pageList = extMessageControlDao.queryMessageContol(userName, operationStatus); + PageInfo pageInfo = new PageInfo<>(pageList); + // 统一返回页面相同的分页返回结果 + json = super.pageResult(json, pageInfo); + // 统一设置操作成功标识 + json = super.succResult(json); + } catch (Exception e) { + // 统一设置操作异常标识 + e.printStackTrace(); + json = super.errorResult(e); + } + return json; + + } + + @Override + public int queryCount(String userName) { + DynamicContextHolder.push(DbConstant.BASICS_READ); + return extMessageControlDao.queryCount(userName); + } + + @Override + public int updateOperationStatusById(ExtSysMessagecontrol vo) { + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + return extMessageControlDao.updateOperationStatusById(vo); + } + + @Override + public int updateOperationStatusAll(ExtSysMessagecontrol vo) { + DynamicContextHolder.push(DbConstant.BASICS_WRITE); + return extMessageControlDao.updateOperationStatusAll(vo); + } + +} diff --git a/dxhy-core/src/main/java/com/dxhy/core/service/singletable/impl/CoreInvoiceQueryServiceImpl.java b/dxhy-core/src/main/java/com/dxhy/core/service/singletable/impl/CoreInvoiceQueryServiceImpl.java index 5df98268..02aeca0a 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/service/singletable/impl/CoreInvoiceQueryServiceImpl.java +++ b/dxhy-core/src/main/java/com/dxhy/core/service/singletable/impl/CoreInvoiceQueryServiceImpl.java @@ -55,14 +55,17 @@ public class CoreInvoiceQueryServiceImpl extends MpBaseServiceImpl returnList = new ArrayList<>(); CoreSmcyVO smcyVo = this.convertToSmcyView(checkLog); returnList.add(smcyVo); json.put("datalist", returnList); + log.info("返回的结果为:{}",returnList); return super.responseResult(json); } diff --git a/dxhy-core/src/main/java/com/dxhy/core/util/InvoiceQueryUtil.java b/dxhy-core/src/main/java/com/dxhy/core/util/InvoiceQueryUtil.java index f0aa057e..9955a3b0 100644 --- a/dxhy-core/src/main/java/com/dxhy/core/util/InvoiceQueryUtil.java +++ b/dxhy-core/src/main/java/com/dxhy/core/util/InvoiceQueryUtil.java @@ -164,7 +164,7 @@ public class InvoiceQueryUtil { if(FplxEnum.QDZZP.getFplxDm().equals(invoiceType) || FplxEnum.QDPP.getFplxDm().equals(invoiceType)){ requestData.put("invoiceType", "31"); requestData.put("invoiceCode", ""); - requestData.put("invoiceNo", invoiceCode+invoiceNo); + requestData.put("invoiceNo", invoiceNo); }else { requestData.put("invoiceType", iu.getFplxdm()); requestData.put("invoiceCode", invoiceCode); diff --git a/dxhy-core/src/main/resources/mapper/ExtMessageControl.xml b/dxhy-core/src/main/resources/mapper/ExtMessageControl.xml new file mode 100644 index 00000000..9003de83 --- /dev/null +++ b/dxhy-core/src/main/resources/mapper/ExtMessageControl.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + update sys_messagecontrol + set operation_status=1, + update_time=#{updateTime} + where id = #{id} + + + update sys_messagecontrol + set operation_status=1, + update_time=#{updateTime} + where user_account = #{userAccount} + and operation_status = 0 + + From 00ab2287e926b960c734f9c6de1120252c0e8b41 Mon Sep 17 00:00:00 2001 From: wangzhikun Date: Thu, 13 Apr 2023 14:28:33 +0800 Subject: [PATCH 2/4] =?UTF-8?q?sap=E5=AF=B9=E6=8E=A5=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=BD=AC=E5=87=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/InterfaceController.java | 59 ++++++++---- .../com/dxhy/erp/dao/TdxRecordInvoiceDao.java | 4 + .../model/BaseReceiptOutCancelEditReqVO.java | 25 +++++ .../service/BaseIReceiptInvoiceService.java | 11 +++ .../impl/BaseIReceiptInvoiceServiceImpl.java | 92 +++++++++++++++++++ .../service/impl/ReceiptOutServiceImpl.java | 4 +- .../resources/mapper/TdxRecordInvoiceDao.xml | 6 ++ 7 files changed, 184 insertions(+), 17 deletions(-) create mode 100644 dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 46b9ccc1..c3cc9535 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -108,6 +108,8 @@ public class InterfaceController extends AbstractController { private VoucherRecordService voucherRecordService; @Value("${erp.ipUrl}") private String ipUrl; + @Resource + private BaseIReceiptInvoiceService baseIReceiptInvoiceService; /** * @@ -1207,25 +1209,50 @@ public class InterfaceController extends AbstractController { public String transferOut(ErpInvoiceData erpInvoiceData){ String zdata = erpInvoiceData.getIS_INPUT().getZDATA(); List list = JSON.parseArray(zdata, Map.class); - Map map = list.get(0); - String invoiceCode =(String) map.get("ZFPDM"); - String invoiceNo = (String)map.get("ZFPHM"); - BigDecimal bigDecimal = (BigDecimal) map.get("JXSZC"); - String outReason = (String)map.get("ZZCYY"); - String outTaxPeriod = (String)map.get("BUDAT"); - String uuid = invoiceCode+invoiceNo; - BaseInvoiceEditVO baseInvoiceEditVO = new BaseInvoiceEditVO(); - baseInvoiceEditVO.setPrimaryKey(uuid); - baseInvoiceEditVO.setOutReason(outReason); - baseInvoiceEditVO.setOutTax(bigDecimal.toString()); - baseInvoiceEditVO.setOutStatus("1"); - baseInvoiceEditVO.setOutTaxPeriod(outTaxPeriod); - UserInfo userInfo = new UserInfo(); + + try{ - String transfer = iReceiptOutService.transfer(erpInvoiceData,baseInvoiceEditVO, userInfo); + /** + * 根据金额判断是转入还是转出 + * + * + */ + String transfer =""; + for(Map map:list) { + String invoiceCode =(String) map.get("ZFPDM"); + String invoiceNo = (String)map.get("ZFPHM"); + BigDecimal bigDecimal = (BigDecimal) map.get("JXSZC"); + String outReason = (String)map.get("ZZCYY"); + String outTaxPeriod = (String)map.get("BUDAT"); + String uuid = invoiceCode+invoiceNo; + BaseInvoiceEditVO baseInvoiceEditVO = new BaseInvoiceEditVO(); + baseInvoiceEditVO.setPrimaryKey(uuid); + baseInvoiceEditVO.setOutReason(outReason); + baseInvoiceEditVO.setOutTax(bigDecimal.toString()); + baseInvoiceEditVO.setOutStatus("1"); + baseInvoiceEditVO.setOutTaxPeriod(outTaxPeriod); + UserInfo userInfo = new UserInfo(); + if(bigDecimal.compareTo(BigDecimal.ZERO)==1){ + transfer = iReceiptOutService.transfer(erpInvoiceData,baseInvoiceEditVO, userInfo); + }else { + BaseReceiptOutCancelEditReqVO baseReceiptOutCancelEditReqVO = new BaseReceiptOutCancelEditReqVO(); + baseReceiptOutCancelEditReqVO.setPrimaryKey(uuid); + String s = baseIReceiptInvoiceService.cancelOut(baseReceiptOutCancelEditReqVO); + if(s.equals("取消转出成功")){ + OutPut outPut = new OutPut(); + EsOutPutResp es = new EsOutPutResp(); + es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); + es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); + es.setZTYPE("S"); + es.setZMESSAGE("处理成功"); + outPut.setES_OUTPUT(es); + transfer = JsonUtils.getInstance().toJsonString(outPut); + } + } + } return transfer; }catch (Exception e){ - log.info(e.getMessage()); + e.printStackTrace(); OutPut outPut = new OutPut(); EsOutPutResp es = new EsOutPutResp(); es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java index 03debbb8..729e712f 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java @@ -3,6 +3,7 @@ package com.dxhy.erp.dao; import java.util.List; import java.util.Map; +import com.dxhy.erp.entity.BaseTDxRecordInvoice; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -183,4 +184,7 @@ public interface TdxRecordInvoiceDao extends BaseMapper { void updateInvoiceAccount(TdxInvoiceAccount invoice); void saveInvoiceAccount(TdxInvoiceAccount invoice); + + void deleteByuuid(@Param("uuids") String[] uuids); + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java new file mode 100644 index 00000000..49c160f2 --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java @@ -0,0 +1,25 @@ +package com.dxhy.erp.model; + +import com.dxhy.common.vo.UserInfo; +import lombok.Data; + +/** + * @author peipei.li + * @date 2019-05-15 取消已转出进项税请求req + */ +@Data +public class BaseReceiptOutCancelEditReqVO { + /** + * uuid,多个以英文逗号分隔,结尾不加分号 + */ + private String primaryKey; + + /** + * 业务参数 + */ + private String businessCode; + /** + * + */ + private UserInfo userInfo; +} diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java index 0888c4a0..b040667f 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java @@ -2,6 +2,7 @@ package com.dxhy.erp.service; import com.dxhy.erp.entity.BaseTDxRecordInvoice; +import com.dxhy.erp.model.BaseReceiptOutCancelEditReqVO; import java.util.List; @@ -22,4 +23,14 @@ public interface BaseIReceiptInvoiceService { */ void updateBatch(List condEntity); + /** + * 取消已转出进项税,请求确认 + * + * @param reqVO + * 请求参数 + * @return 返回结果 + */ + String cancelOut(BaseReceiptOutCancelEditReqVO reqVO); + + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java index f501dec6..016e7597 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java @@ -4,12 +4,21 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.datasource.config.DynamicContextHolder; +import com.dxhy.common.enums.JxszcCancelEnum; +import com.dxhy.common.enums.JxszcZtEnum; import com.dxhy.common.service.impl.MpBaseServiceImpl; import com.dxhy.erp.dao.BaseTDxRecordInvoiceDao; +import com.dxhy.erp.dao.TdxRecordInvoiceDao; import com.dxhy.erp.entity.BaseTDxRecordInvoice; +import com.dxhy.erp.entity.BaseTDxRecordInvoiceOut; +import com.dxhy.erp.model.BaseReceiptOutCancelEditReqVO; import com.dxhy.erp.service.BaseIReceiptInvoiceService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; /** @@ -24,6 +33,8 @@ import java.util.List; @SuppressWarnings("AlibabaUndefineMagicConstant") @Service("baseIReceiptInvoiceService") public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl implements BaseIReceiptInvoiceService { + @Resource + private TdxRecordInvoiceDao tdxRecordInvoiceDao; @Override public List selectByUuids(String[] uuids) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -42,4 +53,85 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.lambda().in(BaseTDxRecordInvoiceOut::getUuid, uuids); + tdxRecordInvoiceDao.deleteByuuid(uuids); + } + /** + * 取消进项税转出,批量revert抵账表已经更新的字段 + * + * @param ids 请求参数 + */ + private void updatePartInvoiceForCancel(String[] ids) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(BaseTDxRecordInvoice::getUuid, ids); + List list = super.list(queryWrapper); + for (BaseTDxRecordInvoice condRecord : list) { + // 转出状态 revert为未转出 + condRecord.setOutStatus(JxszcZtEnum.WZC.getZcztDm()); + // 转出原因 + condRecord.setOutReason(null); + // 备注 + condRecord.setOutRemark(null); + // 转出日期 + condRecord.setOutDate(null); + // 转出人 + condRecord.setOutBy(null); + // 转出金额 + condRecord.setOutInvoiceAmout(null); + // 转出税额 + condRecord.setOutTaxAmount(null); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("out_status",condRecord.getOutStatus()); + updateWrapper.set("out_reason",condRecord.getOutReason()); + updateWrapper.set("out_date",condRecord.getOutDate()); + updateWrapper.set("out_by",condRecord.getOutBy()); + updateWrapper.set("out_invoice_amout",condRecord.getOutInvoiceAmout()); + updateWrapper.set("out_tax_amount",condRecord.getOutTaxAmount()); + updateWrapper.eq("uuid",condRecord.getUuid()); + super.baseMapper.update(null,updateWrapper); + + } + + } } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java index 7acf1ec0..56402633 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java @@ -132,7 +132,9 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl + + delete from t_dx_record_invoice_out where uuid in + + #{item} + +