diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java index 5bd2487f..3dc1a76a 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/config/UserCenterConfig.java @@ -91,6 +91,14 @@ public class UserCenterConfig { return saaSSsoUrl + "/uadmin/user/getUserInfo"; } + /** + * i-tax新增用户 + * @return + */ + public String configAddBigUser(){ + return dbUserInfoUrl + "/api/user/addUserInfo"; + } + /** * 获取大B用户信息 * diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/RuleSplitEntity.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/RuleSplitEntity.java index 45b0a823..73a74511 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/RuleSplitEntity.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/RuleSplitEntity.java @@ -39,6 +39,10 @@ public class RuleSplitEntity implements Serializable { * 是否按照含税金额拆分 0 按照不含税金额拆分 1 按照含税金额拆分 */ private String hsbz; + /** + * 单价允许差额 + */ + private String djce; /** * 创建时间 */ diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/bo/RuleSplitEntityBO.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/bo/RuleSplitEntityBO.java index a797f254..cdc7d422 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/bo/RuleSplitEntityBO.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/bo/RuleSplitEntityBO.java @@ -47,4 +47,8 @@ public class RuleSplitEntityBO implements Serializable { * 发票限额信息 */ List invoiceAllowanceList; + /** + * 单价允许差额 + */ + private String djce; } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/vo/RuleSplitEntityVO.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/vo/RuleSplitEntityVO.java index 01b7e773..f36ded70 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/vo/RuleSplitEntityVO.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/base/model/vo/RuleSplitEntityVO.java @@ -47,4 +47,9 @@ public class RuleSplitEntityVO implements Serializable { * 发票限额信息 */ List invoiceAllowanceList; + /** + * 单价允许差额 + */ + private String djce; + } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/VerifyBuyerManageInfoServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/VerifyBuyerManageInfoServiceImpl.java index 711e9f6f..439d74cb 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/VerifyBuyerManageInfoServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/service/impl/VerifyBuyerManageInfoServiceImpl.java @@ -259,7 +259,8 @@ public class VerifyBuyerManageInfoServiceImpl implements VerifyBuyerManageInfoSe } else { if (!StringUtils.equals(ConfigureConstant.STRING_0, gmfxxtbReq.getCZLX()) && !StringUtils.equals(ConfigureConstant.STRING_1, gmfxxtbReq.getCZLX()) - && !StringUtils.equals(ConfigureConstant.STRING_2, gmfxxtbReq.getCZLX())) { + && !StringUtils.equals(ConfigureConstant.STRING_2, gmfxxtbReq.getCZLX()) + && !StringUtils.equals(ConfigureConstant.STRING_3, gmfxxtbReq.getCZLX())) { Map checkResultMap3 = new HashMap<>(2); checkResultMap3.put(OrderManagementConstant.ERRORCODE, OrderInfoContentEnum.BUYER_MESSAGE_SYNC_CZLX_ERROR_183019.getKey()); checkResultMap3.put(OrderManagementConstant.ERRORMESSAGE, preStr + OrderInfoContentEnum.BUYER_MESSAGE_SYNC_CZLX_ERROR_183019.getMessage()); diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/dto/AddUserRequestDto.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/dto/AddUserRequestDto.java new file mode 100644 index 00000000..96dd1046 --- /dev/null +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/dto/AddUserRequestDto.java @@ -0,0 +1,64 @@ +package com.dxhy.order.baseservice.module.thirdservice.user.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + + +/** + * 增加用户dto + * 与AdminUserOperateDto一致 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class AddUserRequestDto implements Serializable { + private static final long serialVersionUID = 1L; + + + /** + * 用户id + */ + private Long userId; + /** + * 登陆人id + */ + private Long puserId; + /** + * 用户名 + */ + private String username; + /** + * 姓名 + */ + private String name; + /** + * 密码 + */ + private String password; + /** + * 手机号 + */ + private String mobile; + /** + * 部门ID + */ + private Long deptId; + /** + * 看板权限 + */ + private Integer boradAuth; + /** + * 角色id + */ + private List roleIdList; + /** + * 数据权限id + */ + private List deptList; +} diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java index a6ee79a9..c777158e 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/UserInfoService.java @@ -1,9 +1,10 @@ package com.dxhy.order.baseservice.module.thirdservice.user.service; -import com.dxhy.order.model.R; +import com.dxhy.order.baseservice.module.thirdservice.user.dto.AddUserRequestDto; import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; import com.dxhy.order.baseservice.module.thirdservice.user.model.UserEntity; import com.dxhy.order.baseservice.module.thirdservice.user.model.bo.UserInfoQuery; +import com.dxhy.order.model.R; import java.util.List; import java.util.Map; @@ -17,6 +18,11 @@ import java.util.Map; public interface UserInfoService { + /** + * 新增用户 + * @return + */ + R addUser(AddUserRequestDto addUserRequestDto); /** * 获取用户信息 @@ -25,6 +31,13 @@ public interface UserInfoService { */ UserEntity getUser(); + /** + * 返过滤器用户信息 + * 不包含税号为空的数据 + * @return + */ + R getUserInfoToFilter(); + /** * 获取用户信息 */ @@ -44,6 +57,13 @@ public interface UserInfoService { */ List getTaxpayerCodeList(); + /** + * 获取数据权限Id列表 + * + * @return + */ + List getEntList(); + /** * 获取用户部门信息 * @@ -66,6 +86,14 @@ public interface UserInfoService { */ DeptEntity querySysDeptEntityByTaxplayercode(String taxpayerCode); + /** + * 根据组织编号获取组织信息 + * + * @param enterpriseNumbers + * @return + */ + DeptEntity querySysDeptEntityByEnterpriseNumbers(String enterpriseNumbers); + /** * 获取企业初始化信息 * diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java index d851611a..d8ff9747 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java @@ -5,16 +5,11 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.dxhy.order.constant.ConfigureConstant; -import com.dxhy.order.constant.OrderInfoEnum; -import com.dxhy.order.constant.OrderManagementConstant; -import com.dxhy.order.model.R; -import com.dxhy.order.utils.HttpUtils; -import com.dxhy.order.utils.JsonUtils; import com.dxhy.order.baseservice.config.UserCenterConfig; import com.dxhy.order.baseservice.module.groupmanagement.model.GroupManagementEntity; import com.dxhy.order.baseservice.module.groupmanagement.service.GroupManagementService; import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService; +import com.dxhy.order.baseservice.module.thirdservice.user.dto.AddUserRequestDto; import com.dxhy.order.baseservice.module.thirdservice.user.model.*; import com.dxhy.order.baseservice.module.thirdservice.user.model.bo.UserInfoQuery; import com.dxhy.order.baseservice.module.thirdservice.user.model.oldusercenter.SsoUser; @@ -22,6 +17,12 @@ import com.dxhy.order.baseservice.module.thirdservice.user.model.oldusercenter.S import com.dxhy.order.baseservice.module.thirdservice.user.model.oldusercenter.SysMenuEntity; import com.dxhy.order.baseservice.module.thirdservice.user.model.oldusercenter.SysRoleEntity; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; +import com.dxhy.order.constant.ConfigureConstant; +import com.dxhy.order.constant.OrderInfoEnum; +import com.dxhy.order.constant.OrderManagementConstant; +import com.dxhy.order.model.R; +import com.dxhy.order.utils.HttpUtils; +import com.dxhy.order.utils.JsonUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -53,6 +54,50 @@ public class UserInfoServiceImpl implements UserInfoService { @Resource private RedisService redisService; + /** + * 新增用户 + * + * @param addUserRequestDto + * @return + */ + @Override + public R addUser(AddUserRequestDto addUserRequestDto) { + // 山能项目先只处理大B的api对接 + HttpServletRequest req = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); + + Map headMap = new HashMap<>(2); + headMap.put("Content-Type", ConfigureConstant.STRING_APPLICATION_JSON); + String requestToken = req.getHeader(ConfigureConstant.DXHY_SSO_SESSION_ID); + headMap.put("Cookie", "dxhy_sso_sessionid=" + requestToken); + String requestBody = JsonUtils.getInstance().toJsonString(addUserRequestDto); + String result = null; + R requestResult = R.error("请求异常"); + try { + log.info("{},新增用户的接口,url:{},入参:{}", LOGGER_MSG, userCenterConfig.configAddBigUser(), requestBody); + result = HttpUtils.doPostWithHeader(userCenterConfig.configAddBigUser(), requestBody, headMap); + log.info("{},新增用户的接口,返回报文:{}", LOGGER_MSG, result); + requestResult = JsonUtils.getInstance().parseObject(result, R.class); + } catch (Exception e) { + log.error("{},新增用户的接口异常:{}", LOGGER_MSG, e); + } + + if (StringUtils.isEmpty(result) || requestResult == null) { + // 根据getUserInfo()的逻辑,如果返回为空,就代表着需要返回401进行重定向 + if (StringUtils.isEmpty(result)) { + return R.error().put(OrderManagementConstant.CODE, ConfigureConstant.INT_401).put("redirectUrl", userCenterConfig.configBigBRedirectUrl()); + } + return R.error("新增用户失败"); + } + + String msg = requestResult.getExistsMessage(); + if (requestResult.isError()) { + // 非401返回错误信息 + return R.error(StringUtils.isEmpty(msg) ? "新增用户失败" : msg); + } + + return R.ok(StringUtils.isEmpty(msg) ? "新增用户成功" : msg); + } + @Override public UserEntity getUser() { @@ -71,6 +116,29 @@ public class UserInfoServiceImpl implements UserInfoService { return null; } + + @Override + public R getUserInfoToFilter() { + // TODO 新版本接口增加查询条件 + UserInfoQuery infoQuery = new UserInfoQuery(); + R r = getUserInfo(infoQuery); + if (ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))) { + UserEntity userEntity = (UserEntity) r.get(OrderManagementConstant.DATA); + List taxPlayerCodeDeptList = userEntity.getTaxplayercodeDeptList().stream() + .filter(taxPlayerCodeDept -> StringUtils.isNotBlank(taxPlayerCodeDept.getTaxpayerCode())) + .distinct() + .collect(Collectors.toList()); + if (taxPlayerCodeDeptList.size() < 1) { + R r1 = R.ok(); + r1.put(OrderManagementConstant.CODE, "9999"); + r1.put(OrderManagementConstant.ALL_MESSAGE, "用户未完善企业信息"); + return r1; + } + userEntity.setTaxplayercodeDeptList(taxPlayerCodeDeptList); + } + return r; + } + @Override public R getUserInfo(UserInfoQuery userInfoQuery) { /* @@ -247,6 +315,20 @@ public class UserInfoServiceImpl implements UserInfoService { return new ArrayList<>(texCodeList); } + /** + * 获取当前登陆人下的所有数据权限的Id + */ + @Override + public List getEntList() { + Set entList = new HashSet<>(); + UserEntity user = getUser(); + List taxplayercodeDeptList = user.getTaxplayercodeDeptList(); + for (TaxPlayerCodeDept sysDeptEntity : taxplayercodeDeptList) { + entList.add(sysDeptEntity.getEnterpriseNumbers()); + } + return new ArrayList<>(entList); + } + /** * */ @@ -288,6 +370,30 @@ public class UserInfoServiceImpl implements UserInfoService { return null; } + @Override + public DeptEntity querySysDeptEntityByEnterpriseNumbers(String enterpriseNumbers) { + Map paraMap = new HashMap<>(2); + paraMap.put("enterpriseNumber", enterpriseNumbers); + Map headMap = new HashMap<>(2); + headMap.put("Content-Type", ConfigureConstant.STRING_APPLICATION_JSON); + try { + String queryTaxInfo = userCenterConfig.configQueryBigBOrgInfoByEnterpriseNumbers(); + log.info("{},获取企业信息的接口,url:{},入参:{}", LOGGER_MSG, queryTaxInfo, JsonUtils.getInstance().toJsonString(paraMap)); + String result = HttpUtils.doPostWithHeader(queryTaxInfo, JsonUtils.getInstance().toJsonString(paraMap), headMap); + log.info("{}调用用户信息获取信息为:{}", LOGGER_MSG, result); + if (StringUtils.isNotBlank(result)) { + JSONObject jsonObject = JSON.parseObject(result); + if (!jsonObject.isEmpty() && ConfigureConstant.STRING_0000.equals(jsonObject.get(OrderManagementConstant.CODE))) { + return JsonUtils.getInstance().parseObject(jsonObject.getString(OrderManagementConstant.DATA), DeptEntity.class); + } + } + } catch (Exception e) { + log.error("{}调用用户信息获取服务异常:{}", LOGGER_MSG, e); + return null; + } + return null; + } + @Override public DeptEntity querySysDeptEntityFromUrl(String taxpayerCode, String taxpayerName, String entId) { Map paraMap = new HashMap<>(2); diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/GroupTaxClassCodeMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/GroupTaxClassCodeMapper.xml index 9bbd04be..2094f012 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/GroupTaxClassCodeMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/GroupTaxClassCodeMapper.xml @@ -77,6 +77,48 @@ #{groupId,jdbcType=VARCHAR}, #{taxClassAbbreviation,jdbcType=VARCHAR}, #{differenceFlag,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}) + + + insert into group_tax_class_code (id, sort_id, xhf_nsrsbh, + merchandise_name, encoding, tax_items, + brief_code, specification_model, metering_unit, + unit_price, tax_class_code, tax_classification_name, + create_time, dept_id, data_source, + matching_state, data_state, share_state, + group_id, tax_class_abbreviation, difference_flag, description) + values (#{id,jdbcType=VARCHAR}, #{sortId,jdbcType=BIGINT}, #{xhfNsrsbh,jdbcType=VARCHAR}, + #{merchandiseName,jdbcType=VARCHAR}, #{encoding,jdbcType=VARCHAR}, #{taxItems,jdbcType=VARCHAR}, + #{briefCode,jdbcType=VARCHAR}, #{specificationModel,jdbcType=VARCHAR}, #{meteringUnit,jdbcType=VARCHAR}, + #{unitPrice,jdbcType=VARCHAR}, #{taxClassCode,jdbcType=VARCHAR}, + #{taxClassificationName,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{deptId,jdbcType=VARCHAR}, #{dataSource,jdbcType=VARCHAR}, + #{matchingState,jdbcType=VARCHAR}, #{dataState,jdbcType=VARCHAR}, #{shareState,jdbcType=VARCHAR}, + #{groupId,jdbcType=VARCHAR}, #{taxClassAbbreviation,jdbcType=VARCHAR}, + #{differenceFlag,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}) + on duplicate key update + id = values(id), + sort_id = values(sort_id), + xhf_nsrsbh = values(xhf_nsrsbh), + merchandise_name = values(merchandise_name), + encoding = values(encoding), + tax_items = values(tax_items), + brief_code = values(brief_code), + specification_model = values(specification_model), + metering_unit = values(metering_unit), + unit_price = values(unit_price), + tax_class_code = values(tax_class_code), + tax_classification_name = values(tax_classification_name), + create_time = values(create_time), + dept_id = values(dept_id), + data_source = values(data_source), + matching_state = values(matching_state), + data_state = values(data_state), + share_state = values(share_state), + group_id = values(group_id), + tax_class_abbreviation = values(tax_class_abbreviation), + difference_flag = values(difference_flag), + description = values(description) + diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/RuleSplitMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/RuleSplitMapper.xml index e8f48f9b..e3550745 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/RuleSplitMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/RuleSplitMapper.xml @@ -10,13 +10,14 @@ + id - , taxpayer_code, user_id, fpzldm, fpxe, hsbz, rule_split_type, create_time, update_time + , taxpayer_code, user_id, fpzldm, fpxe, hsbz, rule_split_type, djce, create_time, update_time @@ -83,7 +84,8 @@ rule_split_type, hsbz, fpzldm, - fpxe + fpxe, + djce ) VALUES @@ -103,7 +105,8 @@ #{item.ruleSplitType,jdbcType=VARCHAR}, #{item.hsbz,jdbcType=VARCHAR}, #{item.fpzldm,jdbcType=VARCHAR}, - #{item.fpxe,jdbcType=VARCHAR} + #{item.fpxe,jdbcType=VARCHAR}, + #{item.djce,jdbcType=VARCHAR} ) diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java index 671f1687..4237f852 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigureConstant.java @@ -464,6 +464,8 @@ public class ConfigureConstant { */ public final static String XJZSXHQD = "详见对应正数发票及清单"; + public final static String POTOKEN = "6_ca323ed526e74edea7e023c0733a9bef"; + /** * 数值类型 */ diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java index c08db3e5..c663b6d6 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/ConfigurerInfo.java @@ -109,6 +109,10 @@ public class ConfigurerInfo { * V6版本全电开票接口 */ public static final String GENERATE_QD_INVOICE = "GenerateQdInvoice"; + /** + * 订单驳回状态更新接口 (销售结算报账单的驳回状态传给发票系统(ERP-FI-INT-046)) + */ + public static final String ORDER_STATUS_UPDATE = "OrderStatusUpdate"; /** * 请求执行状态查询接口 @@ -229,6 +233,16 @@ public class ConfigurerInfo { */ public static final String SYNCBUYERINFO = "SyncBuyerInfo"; + /** + * 山能MDM客商购买方信息同步接口 + */ + public static final String SDENERGY_MDM_KS_SYNCBUYERINFO = "SdEnergyMdmKsSyncBuyerInfo"; + + /** + * 山能MDM物料信息同步接口 + */ + public static final String SDENERGY_MDM_KS_SYNC_GROUP_TAX_CODE = "SdEnergyMdmKsSyncGroupTaxCode"; + /** * 税控设备信息同步接口 */ diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java index ee9d5d78..c981f14e 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoContentEnum.java @@ -1852,6 +1852,8 @@ public enum OrderInfoContentEnum { /** * 发票接口相关状态 V3 */ + INVOICE_ERROR_CODE_OP_S("S", "成功"), + INVOICE_ERROR_CODE_OP_E("E", "失败"), INVOICE_ERROR_CODE_010000_V3("010000", "发票请求接收成功"), INVOICE_ERROR_CODE_010001_V3("010001", "发票开具请求数据错误,订单请求批次号已存在"), INVOICE_ERROR_CODE_010002_V3("010002", "发票开具请求数据错误,订单请求流水号已存在"), diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java index 79a9e67f..d6612878 100644 --- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java +++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java @@ -339,6 +339,18 @@ public enum OrderInfoEnum { TICKET_POOL_INVOICE_TYPE_10("10", "增值税电子普通发票"), TICKET_POOL_INVOICE_TYPE_08("08", "增值税电子专用发票"), + /** + * 山能业务系统发票类型 + */ + SN_INVOICE_TYPE_10("10", "增值税专用发票"), + SN_INVOICE_TYPE_11("11", "增值税普通发票"), + SN_INVOICE_TYPE_12("12", "增值税电子普通发票"), + SN_INVOICE_TYPE_14("14", "机动车销售统一发票"), + SN_INVOICE_TYPE_15("15", "二手车销售统一发票"), + SN_INVOICE_TYPE_25("25", "增值税电子专用发票"), + SN_INVOICE_TYPE_26("26", "电子发票(增值税专用发票)"), + SN_INVOICE_TYPE_27("27", "电子发票(普通发票)"), + /** * 开票类型(0:蓝票;1:红票) */ @@ -385,6 +397,10 @@ public enum OrderInfoEnum { ORDER_SOURCE_9("9", "发票修复"), ORDER_SOURCE_10("10", "作废重开"), + /** + * 系统来源(SAP:SAP) + */ + SYS_SOURCE_SAP("SAP","SAP"), /** * 订单类型(0:原始订单,1:拆分后订单,2:合并后订单,3:系统冲红订单,4:自动开票订单,5:作废重开订单;6:历史数据订单;7:发票修复数据) @@ -1222,6 +1238,24 @@ public enum OrderInfoEnum { */ ORDER_USER_INFO_IS_FILTER_1("1", "过滤"), ORDER_USER_INFO_IS_FILTER_2("2", "不过滤"), + /** + * 系统标识 + */ + SYS_SIGN_FP("FPXT","发票平台"), + + /** + * 接口业务ID + * FI006 FI843 金税平台将金税开票信息返回SAP的接口(ERP-FI-INT-033) + * FI007 FI840 SAP销售结算信息传给金税系统(ERP-FI-INT-034) + * FI008 FI844 金税发票作废信息返回到SAP(ERP-FI-INT-041) + * FI010 FI841 销售结算报账单的驳回状态传给发票系统(ERP-FI-INT-046) + */ + INTERFACE_BUSINESS_ID_FPKJTS("FI843","发票开具回推"), + INTERFACE_BUSINESS_ID_FPKJ("FI840","发票开具"), + INTERFACE_BUSINESS_ID_FPZFTS("FI844","发票作废回推"), + INTERFACE_BUSINESS_ID_DDZTGX("FI841","订单状态更新"), + + ; /** diff --git a/order-management-common/src/main/java/com/dxhy/order/model/QuickResponseCodeInfo.java b/order-management-common/src/main/java/com/dxhy/order/model/QuickResponseCodeInfo.java index 6479c95b..388654c0 100644 --- a/order-management-common/src/main/java/com/dxhy/order/model/QuickResponseCodeInfo.java +++ b/order-management-common/src/main/java/com/dxhy/order/model/QuickResponseCodeInfo.java @@ -16,6 +16,7 @@ import java.util.Date; @Setter public class QuickResponseCodeInfo implements Serializable { + private String id; private String invoiceTypeCodeId; diff --git a/order-management-common/src/main/java/com/dxhy/order/model/R.java b/order-management-common/src/main/java/com/dxhy/order/model/R.java index 4b4aa72c..316f3775 100644 --- a/order-management-common/src/main/java/com/dxhy/order/model/R.java +++ b/order-management-common/src/main/java/com/dxhy/order/model/R.java @@ -101,6 +101,26 @@ public class R extends HashMap { return this; } + public Boolean isOk() { + return this.get(OrderManagementConstant.CODE) != null && ConfigureConstant.INT_200 == Integer.parseInt(this.get(OrderManagementConstant.CODE).toString()); + } + + public Boolean isError() { + return !isOk(); + } + + public String getCode() { + return this.get(OrderManagementConstant.CODE).toString(); + } + + public String getMessage() { + return this.get(OrderManagementConstant.MESSAGE).toString(); + } + + public String getAllMessage() { + return this.get(OrderManagementConstant.ALL_MESSAGE).toString(); + } + /** * 判断是否成功 * @@ -117,4 +137,19 @@ public class R extends HashMap { return result; } + + /** + * 如果存在allMessage则返回allMessage,否则判断是否有message,都没有返回null + * + * @return + */ + public String getExistsMessage() { + if (this.get(OrderManagementConstant.ALL_MESSAGE) != null) { + return this.get(OrderManagementConstant.ALL_MESSAGE).toString(); + } else if (this.get(OrderManagementConstant.MESSAGE) != null) { + return this.get(OrderManagementConstant.MESSAGE).toString(); + } else { + return null; + } + } } diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java b/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java index 445c6007..7f174600 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/CommonUtils.java @@ -356,6 +356,44 @@ public class CommonUtils { return fplxdm; } + /** + * 山能业务系统发票种类转标品开票接口发票种类代码 + * @param fpzldm + * @return + */ + public static String transSnFplxdm(String fpzldm) { + String fplxdm; + if (OrderInfoEnum.SN_INVOICE_TYPE_10.getKey().equals(fpzldm)) { + //增值税专用发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_004.getKey(); + } else if (OrderInfoEnum.SN_INVOICE_TYPE_11.getKey().equals(fpzldm)) { + //增值税普通发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_007.getKey(); + } else if (OrderInfoEnum.SN_INVOICE_TYPE_12.getKey().equals(fpzldm)) { + //增值税电子普通发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_026.getKey(); + } else if (OrderInfoEnum.SN_INVOICE_TYPE_14.getKey().equals(fpzldm)) { + //机动车销售统一发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_005.getKey(); + }else if (OrderInfoEnum.SN_INVOICE_TYPE_15.getKey().equals(fpzldm)) { + //二手车销售统一发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_006.getKey(); + }else if (OrderInfoEnum.SN_INVOICE_TYPE_25.getKey().equals(fpzldm)) { + //增值税电子专用发票 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_028.getKey(); + }else if (OrderInfoEnum.SN_INVOICE_TYPE_26.getKey().equals(fpzldm)) { + //全电专 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_001.getKey(); + }else if (OrderInfoEnum.SN_INVOICE_TYPE_27.getKey().equals(fpzldm)) { + //全电普 + fplxdm = OrderInfoEnum.ORDER_INVOICE_TYPE_002.getKey(); + }else { + fplxdm = fpzldm; + } + log.debug("{}山能业务系统发票种类转换为标品开票接口发票种类,请求参数为:{},输出参数为:{}", LOGGER_MSG, fpzldm, fplxdm); + return fplxdm; + } + /** * 获取作废标志的对应的名称 diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java index 854cd4e8..b734948e 100644 --- a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java +++ b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java @@ -73,4 +73,15 @@ public class HttpUtils { return body; } + //请求山能PO + public static String sendPo(String url, String request,String userName,String password) { + long startTime = System.currentTimeMillis(); + HttpRequest httpRequest = new HttpRequest(url); + httpRequest.basicAuth(userName,password); + String body = httpRequest.body(request).timeout(300000).execute().body(); + long endTime = System.currentTimeMillis(); + log.debug("{}以字符串调用post请求url:{},耗时:{}", LOGGER_MSG, url, endTime - startTime); + return body; + } + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/constant/InterfaceNameEnum.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/constant/InterfaceNameEnum.java index cb237021..5ba4bb31 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/constant/InterfaceNameEnum.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/constant/InterfaceNameEnum.java @@ -6,8 +6,8 @@ package com.dxhy.order.consumer.constant; * @author ZSC-DXHY * @date 创建时间: 2023-01-09 22:27 */ -public enum InterfaceNameEnum { - +public enum InterfaceNameEnum{ + /** * 接口统一名称 */ @@ -18,27 +18,27 @@ public enum InterfaceNameEnum { INTERFACE_NAME_KFPT_RPA_LOGIN("RpaLogin", "航信RPA登录接口"), INTERFACE_NAME_KFPT_RPA_GET_QRCODE("GetRpaQrCode", "航信RPA获取二维码接口"), INTERFACE_NAME_KFPT_RPA_GET_AUTH_STATUS("GetRpaAuthStatus", "航信RPA获取二次认证接口"), - + ; - + /** * key值 */ private final String key; - + /** * 对应Message */ private final String message; - + public String getKey() { return this.key; } - + public String getMessage() { return this.message; } - + public static String getCodeValue(String key) { for (InterfaceNameEnum item : values()) { if (item.getKey().equals(key)) { @@ -47,7 +47,7 @@ public enum InterfaceNameEnum { } return null; } - + /** * 判断key是否存在 * @@ -62,11 +62,11 @@ public enum InterfaceNameEnum { } return false; } - - + + InterfaceNameEnum(String key, String message) { this.key = key; this.message = message; } - + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InvoiceRemarkSetMapper.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InvoiceRemarkSetMapper.java new file mode 100644 index 00000000..de4d22eb --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/InvoiceRemarkSetMapper.java @@ -0,0 +1,23 @@ +package com.dxhy.order.consumer.dao; + +import com.dxhy.order.consumer.modules.order.model.InvoiceRemarkSet; + +import java.util.List; + +public interface InvoiceRemarkSetMapper { + int deleteByPrimaryKey(String id); + + int deleteByGsbm(String gsbm); + + int insert(InvoiceRemarkSet record); + + int insertSelective(InvoiceRemarkSet record); + + InvoiceRemarkSet selectByPrimaryKey(String id); + + List selectRemarkSetList(InvoiceRemarkSet record); + + int updateByPrimaryKeySelective(InvoiceRemarkSet record); + + int updateByPrimaryKey(InvoiceRemarkSet record); +} \ No newline at end of file diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderQrcodeExtendInfoMapper.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderQrcodeExtendInfoMapper.java index 3aa9aaf9..9232a422 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderQrcodeExtendInfoMapper.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/OrderQrcodeExtendInfoMapper.java @@ -1,9 +1,9 @@ package com.dxhy.order.consumer.dao; -import com.dxhy.order.model.OrderQrcodeExtendInfo; import com.dxhy.order.consumer.model.page.PageDynamicQrcodeInfo; import com.dxhy.order.consumer.model.page.PageQrOrderInfo; import com.dxhy.order.consumer.model.page.PageQrcodeAndInvoiceDetailInfo; +import com.dxhy.order.model.OrderQrcodeExtendInfo; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/QuickResponseCodeInfoMapper.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/QuickResponseCodeInfoMapper.java index d9c1f627..acf86d40 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/QuickResponseCodeInfoMapper.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/dao/QuickResponseCodeInfoMapper.java @@ -1,7 +1,7 @@ package com.dxhy.order.consumer.dao; -import com.dxhy.order.model.QuickResponseCodeInfo; import com.dxhy.order.consumer.model.page.PageQuickResponseCodeInfo; +import com.dxhy.order.model.QuickResponseCodeInfo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -14,7 +14,7 @@ import java.util.Map; * @date 创建时间: 2020-08-14 11:56 */ public interface QuickResponseCodeInfoMapper { - + /** * 插入静态码 * @@ -22,7 +22,7 @@ public interface QuickResponseCodeInfoMapper { * @return */ int insertSelective(QuickResponseCodeInfo record); - + /** * 查询静态码数据 * @@ -31,7 +31,7 @@ public interface QuickResponseCodeInfoMapper { * @return */ QuickResponseCodeInfo selectQuickResponseCodeById(@Param(value = "id") String id, @Param("shList") List shList); - + /** * 更新静态码 * @@ -40,7 +40,7 @@ public interface QuickResponseCodeInfoMapper { * @return */ int updateQrCodeInfo(@Param("qrCode") QuickResponseCodeInfo record, @Param("shList") List shList); - + /** * 查询静态码数据 * @@ -49,7 +49,7 @@ public interface QuickResponseCodeInfoMapper { * @return */ List selectQrCodeList(@Param("map") Map map, @Param("shList") List shList); - + /** * 查询静态码数据 * @@ -59,5 +59,5 @@ public interface QuickResponseCodeInfoMapper { * @return */ QuickResponseCodeInfo queryQrCodeDetailByTqm(@Param(value = "tqm") String tqm, @Param("shList") List shList, @Param(value = "type") String type); - + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrOrderInfo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrOrderInfo.java index 383f8b3e..34b845fa 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrOrderInfo.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrOrderInfo.java @@ -12,7 +12,7 @@ import java.util.Date; */ @Getter @Setter -public class PageQrOrderInfo { +public class PageQrOrderInfo{ /** * 订单表主键 */ diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrcodeAndInvoiceDetailInfo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrcodeAndInvoiceDetailInfo.java index 16692f03..f68e4fac 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrcodeAndInvoiceDetailInfo.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQrcodeAndInvoiceDetailInfo.java @@ -10,7 +10,7 @@ import lombok.Setter; */ @Getter @Setter -public class PageQrcodeAndInvoiceDetailInfo { +public class PageQrcodeAndInvoiceDetailInfo{ private String createTime; private String ddh; private String kphjje; @@ -29,5 +29,5 @@ public class PageQrcodeAndInvoiceDetailInfo { private String xhfMc; private String quickResponseCodeValidTime; private String ewm; - + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQuickResponseCodeInfo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQuickResponseCodeInfo.java index 8af528d0..2aac00b5 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQuickResponseCodeInfo.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageQuickResponseCodeInfo.java @@ -12,7 +12,7 @@ import java.util.Date; */ @Getter @Setter -public class PageQuickResponseCodeInfo { +public class PageQuickResponseCodeInfo{ private String id; private String invoiceTypeCodeId; @@ -58,10 +58,10 @@ public class PageQuickResponseCodeInfo { private Date createTime; private Date updateTime; - + private String xmmcs; - + private String fpzlmcs; - + private String fpzldms; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageUserInfoReq.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageUserInfoReq.java deleted file mode 100644 index dd271e75..00000000 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/model/page/PageUserInfoReq.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.dxhy.order.consumer.model.page; - -import lombok.Getter; -import lombok.Setter; - -/** - * 页面查询用户信息 请求参数bean - * @author: yaoxuguang - * @createDate: Created in 2023-01-06 - */ -@Getter -@Setter -public class PageUserInfoReq { - /** - * 用户token - */ - private String userToken; - /** - * 查询类型 - */ - private String type; -} diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java index c4c2c3fa..67331277 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java @@ -5,22 +5,11 @@ import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSONObject; -import com.dxhy.order.constant.*; -import com.dxhy.order.exception.InterfaceException; -import com.dxhy.order.exception.OrderReceiveException; -import com.dxhy.order.model.*; -import com.dxhy.order.model.ofd.OfdToPdfRequest; -import com.dxhy.order.model.ofd.OfdToPdfResponse; -import com.dxhy.order.model.qd.OrderInfoQd; -import com.dxhy.order.model.queue.*; -import com.dxhy.order.model.queue.jdwj.JdwjMqData; -import com.dxhy.order.utils.CommonUtils; -import com.dxhy.order.utils.HttpUtils; -import com.dxhy.order.utils.JsonUtils; -import com.dxhy.order.utils.NsrsbhUtils; +import com.dxhy.order.baseservice.config.BaseServiceConfig; import com.dxhy.order.baseservice.module.thirdservice.rabbitmq.service.RabbitMqSendMessageService; import com.dxhy.order.baseservice.module.thirdservice.redis.service.RedisService; import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService; +import com.dxhy.order.constant.*; import com.dxhy.order.consumer.config.OpenApiConfig; import com.dxhy.order.consumer.model.protocol.CommonResponse; import com.dxhy.order.consumer.model.protocol.ResponseData; @@ -28,6 +17,7 @@ import com.dxhy.order.consumer.model.protocol.ResponseStatus; import com.dxhy.order.consumer.modules.jdjos.service.PushInvoiceToJdJosService; import com.dxhy.order.consumer.modules.manager.service.PushInvoiceService; import com.dxhy.order.consumer.modules.manager.service.QuickCodeInfoService; +import com.dxhy.order.consumer.modules.order.service.OrderCommonService; import com.dxhy.order.consumer.modules.order.service.OrderInfoService; import com.dxhy.order.consumer.modules.order.service.OrderItemInfoService; import com.dxhy.order.consumer.modules.order.service.OrderProcessService; @@ -35,6 +25,11 @@ import com.dxhy.order.consumer.modules.ticketpool.service.PushTicketPoolService; import com.dxhy.order.consumer.openapi.protocol.CommonRequestParam; import com.dxhy.order.consumer.openapi.protocol.Response; import com.dxhy.order.consumer.openapi.protocol.order.*; +import com.dxhy.order.consumer.openapi.protocol.po.IsInput; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap.FpkjtsMxSap; +import com.dxhy.order.consumer.openapi.protocol.po.generateinvoicepush.sap.FpkjtsReqSap; +import com.dxhy.order.consumer.openapi.protocol.po.voidinvoicepush.sap.FpzftsReqSap; import com.dxhy.order.consumer.openapi.protocol.v4.ResponseV4BO; import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZftsxxReqBO; import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZfxxRspBO; @@ -43,12 +38,16 @@ import com.dxhy.order.consumer.openapi.protocol.v4.push.*; import com.dxhy.order.consumer.openapi.protocol.v5.DxhyInterfaceResponse; import com.dxhy.order.consumer.openapi.protocol.v5.invalid.ZffptsV5; import com.dxhy.order.consumer.openapi.protocol.v5.invalid.ZffpxxV5; +import com.dxhy.order.consumer.openapi.protocol.v5.order.DdfpxxV5; import com.dxhy.order.consumer.openapi.protocol.v5.order.DdfpzxxV5; +import com.dxhy.order.consumer.openapi.protocol.v5.order.DdmxxxV5; import com.dxhy.order.consumer.openapi.protocol.v6.order.QdTxxBO; import com.dxhy.order.consumer.openapi.service.CommonDisposeService; import com.dxhy.order.consumer.openapi.service.InterfaceServiceV5; import com.dxhy.order.consumer.utils.BeanTransitionUtils; import com.dxhy.order.consumer.utils.InterfaceBeanTransUtils; +import com.dxhy.order.exception.InterfaceException; +import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.invoice.config.InvoiceConfig; import com.dxhy.order.invoice.module.invoice.dao.*; import com.dxhy.order.invoice.module.invoice.model.FileDownLoad; @@ -56,11 +55,22 @@ import com.dxhy.order.invoice.module.invoice.model.PushInfo; import com.dxhy.order.invoice.module.invoice.service.InvalidInvoiceService; import com.dxhy.order.invoice.module.invoice.service.OrderInvoiceInfoService; import com.dxhy.order.invoice.utils.HttpInvoiceRequestUtil; +import com.dxhy.order.model.*; +import com.dxhy.order.model.ofd.OfdToPdfRequest; +import com.dxhy.order.model.ofd.OfdToPdfResponse; +import com.dxhy.order.model.qd.OrderInfoQd; +import com.dxhy.order.model.queue.*; +import com.dxhy.order.model.queue.jdwj.JdwjMqData; +import com.dxhy.order.utils.CommonUtils; +import com.dxhy.order.utils.HttpUtils; +import com.dxhy.order.utils.JsonUtils; +import com.dxhy.order.utils.NsrsbhUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -139,6 +149,12 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { @Resource private PushInvoiceToJdJosService pushInvoiceToJdJosService; + @Resource + private OrderCommonService apiInvoiceCommonMapperService; + + @Resource + private BaseServiceConfig baseServiceConfig; + @Override public R pushRouting(String pushMsg) { R r = new R(); @@ -319,6 +335,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { //判断数据是否需要放入延时队列再次推送 boolean sendPushDelay = false; String errorMsg = ""; + //TODO lfl 系统来源待赋值 + String xtly = "SAP"; try { //查询多个推送地址 @@ -327,6 +345,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { queryPushInfo.setNsrsbh(fpTsMqData.getNsrsbh()); //接口类型为发票状态推送 queryPushInfo.setInterfaceType(fpTsMqData.getPushType()); + //byzd1作为系统来源字段使用 + queryPushInfo.setByzd1(xtly); List pushInfoList = pushInfoMapper.selectListByPushInfo(queryPushInfo); log.info("查询到的推送地址信息:{}", JsonUtils.getInstance().toJsonString(pushInfoList)); @@ -336,6 +356,7 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { return R.error(error); } + String fptsParam = ""; //多个地址循环推送 for (PushInfo pushInfo : pushInfoList) { @@ -352,6 +373,12 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { } Map requestMap = commonDisposeService.getRequestParameter(pushInfo.getNsrsbh(), pushInfo.getZipCode(), pushInfo.getEncryptCode(), content, pushInfo.getPushUrl(), pushInfo.getInterfaceType(), pushInfo.getVersionIdent()); + if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ + fptsParam = convertToYwxtParam(fpTsMqData,xtly,content,baseServiceConfig.getPoClient()); + }else { + fptsParam = JsonUtils.getInstance().toJsonString(requestMap); + } + try { String param = JsonUtils.getInstance().toJsonString(requestMap); if (param.length() > 500) { @@ -792,6 +819,107 @@ public class PushInvoiceServiceImpl implements PushInvoiceService { return content; } + public String convertToYwxtParam(CommonTsMqData fpTsMqData,String xtly,String content,String poClient){ + String ywxtParam = ""; + + if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_1.getKey().equals(fpTsMqData.getPushType())){ + //发票开具推送 + if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ + DdfpzxxV5 ddfpzxxV5 = JsonUtils.getInstance().parseObject(content.substring(1,content.length()-1), DdfpzxxV5.class); + DdfpxxV5 ddfpxx = ddfpzxxV5.getDDFPXX(); + List ddmxxx = ddfpzxxV5.getDDMXXX(); + List mainList = new ArrayList<>(); + FpkjtsReqSap fpkjtsReqSap = new FpkjtsReqSap(); + List itemList = new ArrayList<>(); + //主信息 + fpkjtsReqSap.setZJSDH(ddfpxx.getDDH()); + fpkjtsReqSap.setZFPDM(ddfpxx.getFPDM()); + fpkjtsReqSap.setZFPHM(ddfpxx.getFPHM()); + fpkjtsReqSap.setZFPLX(ddfpxx.getFPLXDM()); + fpkjtsReqSap.setZXFBM(ddfpxx.getXHFSBH()); + fpkjtsReqSap.setZGFBH(ddfpxx.getGMFSBH()); + fpkjtsReqSap.setZBHSJEY(ddfpxx.getHJJE()); + fpkjtsReqSap.setZZSEY(ddfpxx.getHJSE()); + fpkjtsReqSap.setZHSJEY(ddfpxx.getJSHJ()); + fpkjtsReqSap.setZZBZ(ddfpxx.getBZ()); + fpkjtsReqSap.setZFPZT(ConfigureConstant.STRING_1);//0-作废、1-正常 + fpkjtsReqSap.setZKPRQ(ddfpxx.getKPRQ()); + fpkjtsReqSap.setZGFMC(ddfpxx.getGMFMC()); + fpkjtsReqSap.setZGFSH(ddfpxx.getGMFSBH()); + fpkjtsReqSap.setZXFMC(ddfpxx.getXHFMC()); + fpkjtsReqSap.setZXFSH(ddfpxx.getXHFSBH()); + fpkjtsReqSap.setZTID(ddfpxx.getFPDM()+ddfpxx.getFPHM()+ddfpxx.getFPLXDM()); + fpkjtsReqSap.setZGFZH(ddfpxx.getGMFZH()); + fpkjtsReqSap.setZGFDH(ddfpxx.getGMFDH()); + fpkjtsReqSap.setZXFDH(ddfpxx.getXHFDH()); + fpkjtsReqSap.setZXFZH(ddfpxx.getXHFZH()); + fpkjtsReqSap.setZGSDM(""); + fpkjtsReqSap.setZYWDJ(""); + //明细信息 + ddmxxx.stream().forEach(f -> { + FpkjtsMxSap detail = new FpkjtsMxSap(); + detail.setZJSDH(ddfpxx.getDDH()); + detail.setZFPDM(ddfpxx.getFPDM()); + detail.setZFPHM(ddfpxx.getFPHM()); + detail.setZFPHH(f.getXH()); + detail.setMATNR(""); + detail.setZGGXH(f.getGGXH()); + detail.setZSLDW(f.getDW()); + detail.setZZSL(f.getSPSL()); + detail.setZTAX(f.getSL()); + detail.setZBHSJEY(f.getJE()); + detail.setZZSEY(f.getSE()); + detail.setZHSJEY(new BigDecimal(f.getJE()).add(new BigDecimal(f.getSE())).toString()); + detail.setINVOICEDATE(ddfpxx.getKPRQ()); + detail.setINVOICETYPE(ddfpxx.getFPLXDM()); + detail.setZHWMC(f.getXMMC()); + detail.setZSM(""); + itemList.add(detail); + }); + fpkjtsReqSap.setITITEM(itemList); + IsInput isInput = new IsInput(); + isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey()); + isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJTS.getKey()); + isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey()); + isInput.setZORG(""); + isInput.setZFILED5(poClient); + mainList.add(fpkjtsReqSap); + String jsonString = JsonUtils.getInstance().toJsonString(mainList); + isInput.setZDATA(jsonString); + PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); + poCommonRequestParam.setIS_INPUT(isInput); + + ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam); + } + }else if(OrderInfoEnum.INTERFACE_TYPE_INVOICE_PUSH_STATUS_2.getKey().equals(fpTsMqData.getPushType())){ + //发票作废推送 + if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(xtly)){ + ZffptsV5 zffptsV5 = JsonUtils.getInstance().parseObject(content, ZffptsV5.class); + List zfList = new ArrayList<>(); + FpzftsReqSap fpzftsReqSap = new FpzftsReqSap(); + fpzftsReqSap.setZFPDM(zffptsV5.getFPDM()); + fpzftsReqSap.setZFPHM(zffptsV5.getFPHM()); + fpzftsReqSap.setZFPZT(""); + fpzftsReqSap.setZJSDH(""); + IsInput isInput = new IsInput(); + isInput.setSYSID(OrderInfoEnum.SYS_SIGN_FP.getKey()); + isInput.setIFYWID(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPZFTS.getKey()); + isInput.setBSKEY(apiInvoiceCommonMapperService.getGenerateShotKey()); + isInput.setZORG(""); + isInput.setZFILED5(poClient); + zfList.add(fpzftsReqSap); + String jsonString = JsonUtils.getInstance().toJsonString(zfList); + isInput.setZDATA(jsonString); + PoCommonRequestParam poCommonRequestParam = new PoCommonRequestParam(); + poCommonRequestParam.setIS_INPUT(isInput); + + ywxtParam = JsonUtils.getInstance().toJsonString(poCommonRequestParam); + } + } + + return ywxtParam; + } + /** * 获取发票推送请求报文 * diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/InvoiceRemarkSetController.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/InvoiceRemarkSetController.java new file mode 100644 index 00000000..ffe03de7 --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/InvoiceRemarkSetController.java @@ -0,0 +1,50 @@ +package com.dxhy.order.consumer.modules.order.controller; + +import com.dxhy.order.consumer.modules.order.model.InvoiceRemarkSet; +import com.dxhy.order.consumer.modules.order.model.vo.InvoiceRemarkSetVo; +import com.dxhy.order.consumer.modules.order.service.InvoiceRemarkSetService; +import com.dxhy.order.model.R; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Description: 发票备注设置 + * @Author liufeilong + * @Date 2023-03-02 + **/ +@Slf4j +@RestController +@RequestMapping(value = "/invoiceRemarkSet") +public class InvoiceRemarkSetController { + + private static final String LOGGER_MSG = "(发票备注设置)"; + + @Resource + private InvoiceRemarkSetService invoiceRemarkSetService; + + /** + * 获取公司下的发票备注模板 + * @return + */ + @PostMapping("/queryRemarkSet") + public R queryRemarkSet(@RequestBody InvoiceRemarkSet invoiceRemarkSet) { + return R.ok().put("data", invoiceRemarkSetService.queryRemarkSet(invoiceRemarkSet)); + } + + /** + * 保存发票备注模板 + * @return + */ + @PostMapping("/saveRemarkSet") + public R saveRemarkSet(@RequestBody InvoiceRemarkSetVo invoiceRemarkSetVo) { + return invoiceRemarkSetService.saveRemarkSet(invoiceRemarkSetVo); + } + + + +} diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/InvoiceRemarkSet.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/InvoiceRemarkSet.java new file mode 100644 index 00000000..1616177f --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/InvoiceRemarkSet.java @@ -0,0 +1,26 @@ +package com.dxhy.order.consumer.modules.order.model; + +import lombok.Data; + +import java.util.Date; + +@Data +public class InvoiceRemarkSet { + private String id; + + private String xhfNsrsbh; + + private String gsbm; + + private String xh; + + private String mbmc; + + private String mbnr; + + private String status; + + private Date createTime; + + private String credateUserId; +} \ No newline at end of file diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/InvoiceRemarkSetVo.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/InvoiceRemarkSetVo.java new file mode 100644 index 00000000..c2873296 --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/model/vo/InvoiceRemarkSetVo.java @@ -0,0 +1,18 @@ +package com.dxhy.order.consumer.modules.order.model.vo; + +import com.dxhy.order.consumer.modules.order.model.InvoiceRemarkSet; +import lombok.Data; + +import java.util.List; + +/** + * @Description: 页面保存备注设置实体 + * @Author liufeilong + * @Date 2023-03-03 + **/ +@Data +public class InvoiceRemarkSetVo { + private String xhfNsrsbh; + private String gsbm; + private List list; +} diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/InvoiceRemarkSetService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/InvoiceRemarkSetService.java new file mode 100644 index 00000000..782c32de --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/InvoiceRemarkSetService.java @@ -0,0 +1,20 @@ +package com.dxhy.order.consumer.modules.order.service; + +import com.dxhy.order.consumer.modules.order.model.InvoiceRemarkSet; +import com.dxhy.order.consumer.modules.order.model.vo.InvoiceRemarkSetVo; +import com.dxhy.order.model.R; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 发票备注设置 + * @Author liufeilong + * @Date 2023-03-02 + **/ +public interface InvoiceRemarkSetService { + + List queryRemarkSet(InvoiceRemarkSet invoiceRemarkSet); + + R saveRemarkSet(InvoiceRemarkSetVo invoiceRemarkSetVo); +} diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderQrcodeExtendService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderQrcodeExtendService.java index 35da04a5..16b52d18 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderQrcodeExtendService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderQrcodeExtendService.java @@ -1,10 +1,10 @@ package com.dxhy.order.consumer.modules.order.service; +import com.dxhy.order.consumer.model.page.PageQrOrderInfo; +import com.dxhy.order.consumer.model.page.PageQrcodeAndInvoiceDetailInfo; import com.dxhy.order.model.CommonOrderInfo; import com.dxhy.order.model.OrderQrcodeExtendInfo; import com.dxhy.order.model.PageUtils; -import com.dxhy.order.consumer.model.page.PageQrOrderInfo; -import com.dxhy.order.consumer.model.page.PageQrcodeAndInvoiceDetailInfo; import java.util.List; import java.util.Map; diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/QrcodeService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/QrcodeService.java index da54d330..a2ac33a7 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/QrcodeService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/QrcodeService.java @@ -1,12 +1,12 @@ package com.dxhy.order.consumer.modules.order.service; -import com.dxhy.order.model.PageUtils; -import com.dxhy.order.model.R; import com.dxhy.order.consumer.model.page.PageDynamicQrcodeDetailInfo; import com.dxhy.order.consumer.model.page.PageEwmConfigInfo; import com.dxhy.order.consumer.model.page.PageQrcodeAndInvoiceDetailInfo; import com.dxhy.order.consumer.model.page.QrcodeOrderInfo; import com.dxhy.order.consumer.modules.scaninvoice.model.PageQrcodeOrderInfo; +import com.dxhy.order.model.PageUtils; +import com.dxhy.order.model.R; import java.util.List; import java.util.Map; diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/InvoiceRemarkSetServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/InvoiceRemarkSetServiceImpl.java new file mode 100644 index 00000000..04cde62e --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/InvoiceRemarkSetServiceImpl.java @@ -0,0 +1,70 @@ +package com.dxhy.order.consumer.modules.order.service.impl; + +import com.dxhy.order.baseservice.module.base.service.BaseService; +import com.dxhy.order.baseservice.module.thirdservice.user.model.UserEntity; +import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; +import com.dxhy.order.consumer.dao.InvoiceRemarkSetMapper; +import com.dxhy.order.consumer.modules.order.model.InvoiceRemarkSet; +import com.dxhy.order.consumer.modules.order.model.vo.InvoiceRemarkSetVo; +import com.dxhy.order.consumer.modules.order.service.InvoiceRemarkSetService; +import com.dxhy.order.model.R; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @Description: 发票备注设置 + * @Author liufeilong + * @Date 2023-03-02 + **/ +@Slf4j +@Service +public class InvoiceRemarkSetServiceImpl implements InvoiceRemarkSetService { + + @Resource + private InvoiceRemarkSetMapper invoiceRemarkSetMapper; + @Resource + private BaseService baseService; + @Resource + private UserInfoService userInfoService; + + @Override + public List queryRemarkSet(InvoiceRemarkSet invoiceRemarkSet) { + return invoiceRemarkSetMapper.selectRemarkSetList(invoiceRemarkSet); + } + + @Override + @Transactional + public R saveRemarkSet(InvoiceRemarkSetVo invoiceRemarkSetVo) { + UserEntity user = userInfoService.getUser(); + String gsbm = invoiceRemarkSetVo.getGsbm(); + String xhfNsrsbh = invoiceRemarkSetVo.getXhfNsrsbh(); + List invoiceRemarkSetList = invoiceRemarkSetVo.getList(); + if(invoiceRemarkSetList.size()>0){ + String mbmc = invoiceRemarkSetList.get(0).getMbmc(); + for(int i=0;i0 && mbmc.equals(invoiceRemarkSetList.get(i).getMbmc())){ + return R.error("模板名称不能重复!"); + } + } + invoiceRemarkSetMapper.deleteByGsbm(gsbm); + for(int i=0;i shList) { - + OrderQrcodeExtendInfo orderQrcodeExtendInfo = new OrderQrcodeExtendInfo(); orderQrcodeExtendInfo.setFpqqlsh(ddqqlsh); return orderQrcodeExtendInfoMapper.selectByOrderQrcodeExtendInfo(orderQrcodeExtendInfo, shList); } - + @Override public boolean saveQrcodeInfo(OrderQrcodeExtendInfo commonOrderToQrCodeInfo) { - + int insert = orderQrcodeExtendInfoMapper.insertQrCodeInfo(commonOrderToQrCodeInfo); - + return insert > 0; } - + @Override public PageUtils queryDynamicQrCodeList(Map paramMap, List shList) { int pageSize = Integer.parseInt(String.valueOf(paramMap.get(ConfigureConstant.STRING_PAGE_SIZE))); int currPage = Integer.parseInt(String.valueOf(paramMap.get(ConfigureConstant.STRING_CURR_PAGE))); PageHelper.startPage(currPage, pageSize); - + String startTime = paramMap.get("startTime") == null ? "" : String.valueOf(paramMap.get("startTime")); if (StringUtils.isNotBlank(startTime)) { Date start = DateUtil.parse(startTime, "yyyy-MM-dd"); @@ -78,9 +78,9 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { } else { paramMap.put("startTime", null); } - + String endTime = paramMap.get("endTime") == null ? "" : String.valueOf(paramMap.get("endTime")); - + if (StringUtils.isNotBlank(endTime)) { Date end = DateUtil.parse(endTime, "yyyy-MM-dd"); end = DateUtil.endOfDay(end); @@ -88,7 +88,7 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { } else { paramMap.put("endTime", null); } - + // 二维码有效时间转换 // 1.如果传了二维码有效起止时间 订单的创建时间必须小于 小于有效期截至时间 并且订单的过期时间大于起始时间 String startValidTime = paramMap.get("startValidTime") == null ? "" @@ -99,34 +99,34 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { } else { paramMap.put("startValidTime", null); } - + String endValidTime = paramMap.get("endValidTime") == null ? "" : String.valueOf(paramMap.get("endValidTime")); if (StringUtils.isNotBlank(endValidTime)) { // 订单初始时间 Date endValid = DateUtil.parse(endValidTime, "yyyy-MM-dd HH:mm:ss"); paramMap.put("endValidTime", endValid); - + } else { paramMap.put("endValidTime", null); } - + List list = orderQrcodeExtendInfoMapper.selectDynamicQrCodeList(paramMap, shList); PageInfo pageInfo = new PageInfo<>(list); return new PageUtils(pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum()); } - - + + @Override public PageQrOrderInfo queryEwmDetailByFpqqlsh(String fpqqlsh, List xhfNsrsbh) { - + return orderQrcodeExtendInfoMapper.queryEwmDetailByFpqqlsh(fpqqlsh, xhfNsrsbh); } - + @Override @Transactional(rollbackFor = Exception.class) public boolean updateEwmDetailInfo(OrderQrcodeExtendInfo orderQrcodeExtendInfo, List shList, CommonOrderInfo pageToFpkjInfo) { - + int updateByPrimaryKeySelective = orderQrcodeExtendInfoMapper.updateByPrimaryKeySelective(orderQrcodeExtendInfo, shList); if (updateByPrimaryKeySelective <= 0) { return false; @@ -136,7 +136,7 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { } return true; } - + @Transactional(rollbackFor = Exception.class) @Override public boolean updateEwmDetailInfoByIds(List idList) { @@ -176,13 +176,13 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { Map paramMap = new HashMap<>(5); paramMap.put("xhfNsrsbh", orderQrcodeExtendInfo.getXhfNsrsbh()); EwmConfigInfo queryEwmConfigInfo = ewmConfigInfoMapper.queryEwmConfigInfo(paramMap); - + OrderQrcodeExtendInfo updateQuickResponseCode = new OrderQrcodeExtendInfo(); int invalidDays = 30; if (queryEwmConfigInfo != null) { invalidDays = StringUtils.isBlank(queryEwmConfigInfo.getInvalidTime()) ? 30 : Integer.parseInt(queryEwmConfigInfo.getInvalidTime()); } - + //订单没有过期时间,永不失效 数据库中过期时间设置为2099 01 01 00:00:00 if (invalidDays == 0) { Date validDate = DateUtil.parse("2099-01-01 00:00:00", "yyyy-MM-dd HH:mm:ss"); @@ -190,12 +190,12 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { } else { Date validDate = DateUtil.offsetDay(new Date(), invalidDays); updateQuickResponseCode.setQuickResponseCodeValidTime(validDate); - + } updateQuickResponseCode.setId(id); updateQuickResponseCode.setXhfNsrsbh(nsrsbh); updateQuickResponseCode.setZfzt("0"); - + int updateByPrimaryKeySelective = orderQrcodeExtendInfoMapper.updateByPrimaryKeySelective(updateQuickResponseCode, shList); if (updateByPrimaryKeySelective <= 0) { return false; @@ -204,34 +204,34 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { } return true; } - + @Override public OrderQrcodeExtendInfo queryQrCodeDetailByTqm(String tqm, List shList, String type) { - + OrderQrcodeExtendInfo orderQrcodeExtendInfo = new OrderQrcodeExtendInfo(); orderQrcodeExtendInfo.setTqm(tqm); orderQrcodeExtendInfo.setQuickResponseCodeType(type); return orderQrcodeExtendInfoMapper.selectByOrderQrcodeExtendInfo(orderQrcodeExtendInfo, shList); } - + @Override public OrderQrcodeExtendInfo queryQrCodeDetailByAuthOrderId(String succOrderId, List shList) { - + OrderQrcodeExtendInfo orderQrcodeExtendInfo = new OrderQrcodeExtendInfo(); orderQrcodeExtendInfo.setAuthOrderId(succOrderId); return orderQrcodeExtendInfoMapper.selectByOrderQrcodeExtendInfo(orderQrcodeExtendInfo, shList); } - + @Override public OrderQrcodeExtendInfo queryQrcodeDetailById(String qrcodeId, List xhfNsrsbh) { return orderQrcodeExtendInfoMapper.selectByPrimaryKey(qrcodeId, xhfNsrsbh); } - + @Override public PageQrcodeAndInvoiceDetailInfo queryQrcodeAndInvoiceDetail(String qrcodeId, List shList) { return orderQrcodeExtendInfoMapper.queryQrcodeAndInvoiceDetail(qrcodeId, shList); } - + /** * 查询是否存在未审核订单 * @@ -239,11 +239,11 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { */ @Override public boolean isExistNoAuditOrder(Map paramMap, List shList) { - + String existNoAuditOrder = orderProcessInfoMapper.isExistNoAuditOrder(paramMap, shList); return existNoAuditOrder != null; } - + /** * 查询所有开票异常的数据 * @@ -255,13 +255,13 @@ public class OrderQrcodeExtendServiceImpl implements OrderQrcodeExtendService { public List selectOrderQrcodeExtendInfoForTask(Map paramMap, List shList) { return orderQrcodeExtendInfoMapper.selectOrderQrcodeExtendInfoForTask(paramMap, shList); } - + @Override public OrderQrcodeExtendInfo queryQrCodeExtByOrderId(String orderId, List shList) { - + OrderQrcodeExtendInfo orderQrcodeExtendInfo = new OrderQrcodeExtendInfo(); orderQrcodeExtendInfo.setOrderInfoId(orderId); return orderQrcodeExtendInfoMapper.selectByOrderQrcodeExtendInfo(orderQrcodeExtendInfo, shList); } - + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/QuickCodeInfoServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/QuickCodeInfoServiceImpl.java index 2cdb541b..4611e1e9 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/QuickCodeInfoServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/QuickCodeInfoServiceImpl.java @@ -2,11 +2,11 @@ package com.dxhy.order.consumer.modules.order.service.impl; import cn.hutool.core.util.ObjectUtil; import com.dxhy.order.constant.ConfigureConstant; -import com.dxhy.order.model.*; import com.dxhy.order.consumer.dao.*; import com.dxhy.order.consumer.model.page.PageQuickResponseCodeInfo; import com.dxhy.order.consumer.modules.manager.service.QuickCodeInfoService; import com.dxhy.order.invoice.module.invoice.dao.OrderInfoMapper; +import com.dxhy.order.model.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -28,54 +28,54 @@ import java.util.Map; @Service @Slf4j public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { - + @Resource InvoiceTypeCodeExtMapper invoiceTypeCodeExtMapper; - + @Resource QuickResponseCodeInfoMapper quickResponseCodeInfoMapper; - + @Resource QuickResponseCodeItemInfoMapper quickResponseCodeItemInfoMapper; - + @Resource EwmConfigInfoMapper ewmConfigInfoMapper; - + @Resource EwmConfigItemInfoMapper ewmConfigItemInfoMapper; - + @Resource private OrderInfoMapper orderInfoMapper; - + @Resource private OrderProcessInfoMapper orderProcessInfoMapper; - + @Resource private EwmGzhConfigMapper ewmGzhConfigMapper; - + @Override @Transactional(rollbackFor = Exception.class) public boolean saveQrcodeInfo(QuickResponseCodeInfo qrcodeInfo, List itemList, List extList) { - + if (qrcodeInfo != null) { int insertSelective = quickResponseCodeInfoMapper.insertSelective(qrcodeInfo); if (insertSelective <= 0) { return false; } - + } - + if (ObjectUtil.isNotEmpty(itemList)) { for (QuickResponseCodeItemInfo item : itemList) { int insertSelective = quickResponseCodeItemInfoMapper.insertSelective(item); if (insertSelective <= 0) { return false; } - + } } - + if (ObjectUtil.isNotEmpty(extList)) { for (InvoiceTypeCodeExt ext : extList) { int insertSelective = invoiceTypeCodeExtMapper.insertInvoiceTypeCodeExt(ext); @@ -84,10 +84,10 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { } } } - + return true; } - + /** * 查询二维码列表 */ @@ -100,7 +100,7 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { PageInfo pageInfo = new PageInfo<>(list); return new PageUtils(pageInfo.getList(), (int) pageInfo.getTotal(), pageInfo.getPageSize(), pageInfo.getPageNum()); } - + /** * 查询二维码详情 */ @@ -108,28 +108,28 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { public QuickResponseCodeInfo queryQrCodeDetail(String qrcodeId, List xhfNsrsbh) { return quickResponseCodeInfoMapper.selectQuickResponseCodeById(qrcodeId, xhfNsrsbh); } - + @Override public List queryQrCodeItemListByQrcodeId(String qrcodeId, List xhfNsrsbh) { return quickResponseCodeItemInfoMapper.selectByQrcodeId(qrcodeId, xhfNsrsbh); } - + @Override public List queryInvoiceTypeByQrcodeId(String qrcodeId, List xhfNsrsbh) { return invoiceTypeCodeExtMapper.selectByQrcodeId(qrcodeId, xhfNsrsbh); } - + @Override public QuickResponseCodeInfo queryQrCodeDetailByTqm(String tqm, List shList, String qrCodeType) { return quickResponseCodeInfoMapper.queryQrCodeDetailByTqm(tqm, shList, qrCodeType); } - + @Override public EwmConfigInfo queryEwmConfigInfo(Map paramMap) { return ewmConfigInfoMapper.queryEwmConfigInfo(paramMap); } - - + + @Transactional(rollbackFor = Exception.class) @Override public boolean addEwmConfigInfo(EwmConfigInfo ewmConfig, List ewmConfigItemList) { @@ -137,7 +137,7 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { if (insert <= 0) { return false; } - + for (EwmConfigItemInfo item : ewmConfigItemList) { int insertSelective = ewmConfigItemInfoMapper.insertEwmConfigItem(item); if (insertSelective <= 0) { @@ -146,7 +146,7 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { } return true; } - + @Transactional(rollbackFor = Exception.class) @Override public boolean updateEwmConfigInfo(EwmConfigInfo ewmConfig, List ewmConfigItemList) { @@ -154,7 +154,7 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { if (updateByXhfNsrsbh <= 0) { return false; } - + ewmConfigItemInfoMapper.deleteByEwmConfigId(ewmConfig.getId()); for (EwmConfigItemInfo item : ewmConfigItemList) { int insertSelective = ewmConfigItemInfoMapper.insertEwmConfigItem(item); @@ -162,52 +162,52 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { return false; } } - + return true; } - + @Override public List queryEwmConfigItemInfoById(String id) { return ewmConfigItemInfoMapper.queryEwmItemInfoByEwmConfigId(id); } - + /*@Override public Map queryEwmDetailByFpqqlsh(String fpqqlsh) { - + return quickResponseCodeInfoMapper.queryEwmDetailByFpqqlsh(fpqqlsh); }*/ - + //@Override /*public QuickResponseCodeInfo queryQrCodeDetailByDdqqlshAndNsrsbh(String fpqqlsh, String nsrsbh) { - + return quickResponseCodeInfoMapper.queryQrCodeDetailByDdqqlshAndNsrsbh(fpqqlsh, nsrsbh); }*/ - + /*@Override public List selectQuickResponseCodeListByFpqqlshDdhNsrsbh(String xsfNsrsbh, String ddh, String tqm, String fpqqlsh) { return quickResponseCodeInfoMapper.selectQuickResponseCodeListByFpqqlshDdhNsrsbh(xsfNsrsbh, ddh, tqm, fpqqlsh); }*/ - - + + @Override public boolean updateEwmDetailInfo(QuickResponseCodeInfo quickInfo, List shList) { int updateByPrimaryKeySelective = quickResponseCodeInfoMapper.updateQrCodeInfo(quickInfo, shList); return updateByPrimaryKeySelective > 0; } - + /** * 更新购方信息 */ @Transactional(rollbackFor = Exception.class) @Override public boolean updateGhfInfo(CommonOrderInfo pageToFpkjInfo, List shList) { - + OrderInfo selectOrderInfoByOrderId = orderInfoMapper .selectOrderInfoByOrderId(pageToFpkjInfo.getOrderInfo().getId(), shList); if (selectOrderInfoByOrderId == null) { return false; } - + OrderInfo updateOrderInfo = new OrderInfo(); updateOrderInfo.setGhfDh(pageToFpkjInfo.getOrderInfo().getGhfDh()); updateOrderInfo.setGhfDz(pageToFpkjInfo.getOrderInfo().getGhfDz()); @@ -228,9 +228,9 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { if (updateOrderInfoByOrderId <= 0) { return false; } - + // 更新订单扩展表 - + OrderProcessInfo updateOrderProcessInfo = new OrderProcessInfo(); updateOrderProcessInfo.setGhfMc(pageToFpkjInfo.getOrderInfo().getGhfMc()); updateOrderProcessInfo.setGhfNsrsbh(pageToFpkjInfo.getOrderInfo().getGhfNsrsbh()); @@ -242,19 +242,19 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { int updateOrderProcessInfoByProcessId = orderProcessInfoMapper.updateOrderProcessInfoByProcessId(updateOrderProcessInfo, shList); return updateOrderProcessInfoByProcessId > 0; } - + @Override public EwmGzhConfig queryGzhEwmConfig(String xhfNsrsbh) { EwmGzhConfig config = new EwmGzhConfig(); config.setNsrsbh(xhfNsrsbh); return ewmGzhConfigMapper.selectByEwmGzhConfig(config); } - - + + @Transactional(rollbackFor = Exception.class) @Override public R updateStaticEwmInfo(QuickResponseCodeInfo qrCodeInfo, List itemList, List extList) { - + List shList = new ArrayList<>(); shList.add(qrCodeInfo.getXhfNsrsbh()); int i = quickResponseCodeInfoMapper.updateQrCodeInfo(qrCodeInfo, shList); @@ -262,22 +262,22 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { log.error("更新静态码信息失败,id:{}", qrCodeInfo.getId()); return R.error(); } - + //删除老的明细 quickResponseCodeItemInfoMapper.deleteByQrId(qrCodeInfo.getId(), shList); //删除老的发票种类 invoiceTypeCodeExtMapper.deleteByQrId(qrCodeInfo.getId(), shList); - + if (ObjectUtil.isNotEmpty(itemList)) { for (QuickResponseCodeItemInfo item : itemList) { int insertSelective = quickResponseCodeItemInfoMapper.insertSelective(item); if (insertSelective <= 0) { return R.error(); } - + } } - + if (ObjectUtil.isNotEmpty(extList)) { for (InvoiceTypeCodeExt ext : extList) { int insertSelective = invoiceTypeCodeExtMapper.insertInvoiceTypeCodeExt(ext); @@ -286,10 +286,10 @@ public class QuickCodeInfoServiceImpl implements QuickCodeInfoService { } } } - - + + return R.ok(); } - - + + } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java index a3c4404c..e744b626 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceOpenGateRestApi.java @@ -2,7 +2,14 @@ package com.dxhy.order.consumer.openapi.api; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.ConfigurerInfo; +import com.dxhy.order.constant.OrderInfoContentEnum; +import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.consumer.config.OpenApiConfig; +import com.dxhy.order.consumer.openapi.protocol.po.EsOutput; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; +import com.dxhy.order.consumer.openapi.service.InterfaceServiceV6; +import com.dxhy.order.utils.JsonUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -50,6 +57,56 @@ public class InvoiceOpenGateRestApi { @Resource private OpenApiConfig openApiConfig; + @Resource + private InterfaceServiceV6 interfaceServiceV6; + + /** + * 山能对外接口PO统一入口 + * @param param + * @return + */ + @RequestMapping(path = "/v6/po", method = {RequestMethod.POST, RequestMethod.GET}) + public String orderApiV6(@RequestBody String param, HttpServletRequest request) { + + log.info("{}-山能对外接口PO统一入口,请求数据为:{}", LOGGER_MESSAGE_V6, param); + String token = request.getHeader("token"); + if(StringUtils.isBlank(token) || !ConfigureConstant.POTOKEN.equals(token)){ + return "非法请求,请停止访问!"; + } + //返回数据 + String resultString = ""; + try { + PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(param, PoCommonRequestParam.class); + String interfaceName = ""; + if(OrderInfoEnum.INTERFACE_BUSINESS_ID_FPKJ.getKey().equals(requestParam.getIS_INPUT().getIFYWID())){ + interfaceName = ConfigurerInfo.GENERATE_QD_INVOICE; + }else if(OrderInfoEnum.INTERFACE_BUSINESS_ID_DDZTGX.getKey().equals(requestParam.getIS_INPUT().getIFYWID())){ + interfaceName = ConfigurerInfo.ORDER_STATUS_UPDATE; + }else { + log.error("{}-山能对外接口PO业务接口ID:{},未定义", LOGGER_MESSAGE_V6, requestParam.getIS_INPUT().getIFYWID()); + return "请传输正确的业务ID"; + } + //保存请求报文 + interfaceServiceV6.saveRequestData(interfaceName,param); + //调用销项v6业务处理逻辑 + long startTime = System.currentTimeMillis(); + resultString = invoiceRestApiV6.orderApiV6HandingBusiness(interfaceName, param, ""); + long endTime = System.currentTimeMillis(); + log.info("{}-业务处理结果:{},接口耗时为:{}", LOGGER_MESSAGE_V6, resultString, endTime - startTime); + + } catch (Exception e) { + log.error("{}-处理业务出现异常,异常原因为:{}", LOGGER_MESSAGE_V6, e.getMessage()); + PoCommonResponseParam poCommonResponseParam = new PoCommonResponseParam(); + EsOutput esOutput = new EsOutput(); + esOutput.setBSKEY(""); + esOutput.setSAPKEY(""); + esOutput.setZTYPE(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_E.getKey()); + esOutput.setZMESSAGE(e.getMessage()); + poCommonResponseParam.setES_OUTPUT(esOutput); + return JsonUtils.getInstance().toJsonString(poCommonResponseParam); + } + return resultString; + } /** * 订单对内V6接口 diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java index e614a527..de8d03c9 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestApiV6.java @@ -18,6 +18,8 @@ import com.dxhy.order.consumer.constant.InterfaceNameEnum; import com.dxhy.order.consumer.constant.RespStatusEnum; import com.dxhy.order.consumer.openapi.protocol.CheckResult; import com.dxhy.order.consumer.openapi.protocol.CommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; import com.dxhy.order.consumer.openapi.protocol.v4.fpyl.FpylcxReqBO; import com.dxhy.order.consumer.openapi.protocol.v4.fpyl.FpylcxRspBO; import com.dxhy.order.consumer.openapi.protocol.v4.order.DdpcxxReqBO; @@ -31,6 +33,8 @@ import com.dxhy.order.consumer.openapi.protocol.v5.order.DdfpcxReqV5; import com.dxhy.order.consumer.openapi.protocol.v5.order.DdfpcxRspV5; import com.dxhy.order.consumer.openapi.protocol.v5.order.DdpcxxRspV5; import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.QdCommonRspV6; +import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.MdmGmfxxtbMulticodeValuelistBO; +import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.MdmGmfxxtbReqBO; import com.dxhy.order.consumer.openapi.service.*; import com.dxhy.order.exception.OrderReceiveException; import com.dxhy.order.utils.JsonUtils; @@ -38,6 +42,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.joda.time.Duration; @@ -47,6 +52,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; import static org.joda.time.DateTime.now; @@ -258,10 +264,110 @@ public class InvoiceRestApiV6 { || InterfaceNameEnum.INTERFACE_NAME_KFPT_RPA_GET_QRCODE.getKey().equals(interfaceName) || InterfaceNameEnum.INTERFACE_NAME_KFPT_RPA_GET_AUTH_STATUS.getKey().equals(interfaceName) || ConfigurerInfo.RED_CONFIRMATION_CONFIRM.equals(interfaceName)){ - //红字确认单接口-查询列表,查询明细列表,申请,确认,rpa登录状态,rpa获取二维码,rpa获取二次认证 + //红字确认单接口-查询列表,查询明细列表,申请,确认 QdCommonRspV6 qdCommonRspV6 = interfaceServiceV6.processProxyForQd(interfaceName, reqStr); returnJsonString = JsonUtils.getInstance().toJsonStringNullToEmpty(qdCommonRspV6); + } else if (ConfigurerInfo.ORDER_STATUS_UPDATE.equals(interfaceName)) { + //订单驳回状态更新接口-(销售结算报账单的驳回状态传给发票系统(ERP-FI-INT-046)) + PoCommonRequestParam requestParam = JsonUtils.getInstance().parseObject(reqStr, PoCommonRequestParam.class); + PoCommonResponseParam poCommonResponseParam = interfaceServiceV6.updateOrderStatus(requestParam, secretId); + returnJsonString = JsonUtils.getInstance().toJsonString(poCommonResponseParam); + } else if (ConfigurerInfo.SDENERGY_MDM_KS_SYNCBUYERINFO.equals(interfaceName)) { + // 山东能源 MDM 客商 购买方信息同步接口 + List mdmGmfxxtbReqBOS = JSONObject.parseArray(reqStr, MdmGmfxxtbReqBO.class); + List gmfxxtbReqList = new ArrayList<>(); + for (MdmGmfxxtbReqBO tempMdmGmfxxtbReqBO : mdmGmfxxtbReqBOS) { + GmfxxtbReqBO gmfxxtbReqBO = new GmfxxtbReqBO(); + gmfxxtbReqBO.setGMFBM(tempMdmGmfxxtbReqBO.getCODE()); // 取code + gmfxxtbReqBO.setXHFSBH(tempMdmGmfxxtbReqBO.getDESC14()); + gmfxxtbReqBO.setXHFMC(tempMdmGmfxxtbReqBO.getDESC1()); + + // 判断下DESC14是否为身份证,如果为身份证,则填写03,否则填写01,其余情况置空 + // 身份证正则表达式 + String idCardRegex = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; + // 税号正则表达式 + String taxNoRegex = "^[a-zA-Z0-9]{15,20}$"; + gmfxxtbReqBO.setGMFLX(""); + if (StringUtils.isNotEmpty(tempMdmGmfxxtbReqBO.getDESC14())) { + if (tempMdmGmfxxtbReqBO.getDESC14().matches(idCardRegex)) { + gmfxxtbReqBO.setGMFLX("03"); // 有可能出现个人 + } + if (tempMdmGmfxxtbReqBO.getDESC14().matches(taxNoRegex)) { + gmfxxtbReqBO.setGMFLX("01"); + } + } + + gmfxxtbReqBO.setGMFMC(tempMdmGmfxxtbReqBO.getDESC48()); + gmfxxtbReqBO.setGMFSBH(tempMdmGmfxxtbReqBO.getDESC49()); + gmfxxtbReqBO.setGMFDH(tempMdmGmfxxtbReqBO.getDESC26()); // ? + // 根据要求,取VALUELIST中的第一组数据作为银行数据 + if (tempMdmGmfxxtbReqBO.getMULTICODE() != null && !CollectionUtils.isEmpty(tempMdmGmfxxtbReqBO.getMULTICODE().getVALUELIST())) { + // 处理开户行银行 + MdmGmfxxtbMulticodeValuelistBO firstValueList = tempMdmGmfxxtbReqBO.getMULTICODE().getVALUELIST().get(0); + if (firstValueList != null) { + gmfxxtbReqBO.setGMFYH(firstValueList.getDESC3()); + gmfxxtbReqBO.setGMFZH(firstValueList.getDESC4()); + } + } + + gmfxxtbReqBO.setGMFSJH(tempMdmGmfxxtbReqBO.getDESC27()); + gmfxxtbReqBO.setGMFYX(tempMdmGmfxxtbReqBO.getDESC29()); + gmfxxtbReqBO.setCZLX("3"); // 可能重复推送,重复推送可能出现更新的情况,增加先查询,存在则更新不存在则插入的逻辑 + + // 拼接邮箱和地址 + String buyerAddress = ""; + buyerAddress = buyerAddress.concat(StringUtils.isEmpty(tempMdmGmfxxtbReqBO.getDESC22()) ? "" : tempMdmGmfxxtbReqBO.getDESC22()); + buyerAddress = buyerAddress.concat(StringUtils.isEmpty(tempMdmGmfxxtbReqBO.getDESC23()) ? "" : tempMdmGmfxxtbReqBO.getDESC23()); + buyerAddress = buyerAddress.concat(StringUtils.isEmpty(tempMdmGmfxxtbReqBO.getDESC24()) ? "" : tempMdmGmfxxtbReqBO.getDESC24()); + gmfxxtbReqBO.setGMFDZ(buyerAddress); + gmfxxtbReqBO.setINVOICE_NAME(tempMdmGmfxxtbReqBO.getDESC48()); + gmfxxtbReqBO.setINVOICE_TAXNO(tempMdmGmfxxtbReqBO.getDESC49()); + + gmfxxtbReqBO.setMDM_MULTICODE_JSON(JsonUtils.getInstance().toJsonStringNullToEmpty(tempMdmGmfxxtbReqBO.getMULTICODE())); + gmfxxtbReqList.add(gmfxxtbReqBO); + } + List gmfxxtbRspList = interfaceServiceV3.syncBuyerMessage(gmfxxtbReqList, secretId); + returnJsonString = JsonUtils.getInstance().toJsonStringNullToEmpty(gmfxxtbRspList); + + } else if (ConfigurerInfo.SDENERGY_MDM_KS_SYNC_GROUP_TAX_CODE.equals(interfaceName)) { + // 同步物料信息 + // SDEnergyMdmBaseBO baseBO = JSONObject.parseObject(reqStr, SDEnergyMdmBaseBO.class); + // List list = new ArrayList<>(); + // GroupTaxRespBO respBO = GroupTaxRespBO.build(OrderInfoContentEnum.SYNC_GROUP_TAX_009996); + // try { + // // 逐级判断是否为空,直到取到DATAINFO + // list = (List) Optional.of(baseBO) + // .map(SDEnergyMdmBaseBO::getESB) + // .map(ESBBO::getDATA) + // .map(DATABO::getDATAINFOS) + // .map(DATAINFOSBO::getDATAINFO) + // .map(i -> { + // // 转成List + // return i.stream().map(j -> { + // return JSONObject.parseObject(JSONObject.toJSONString(j), MdmSyncGroupTaxCodeReqBO.class); + // }).collect(Collectors.toList()); + // }) + // .orElse(new ArrayList()); + // + // // 进行同步 + // List reqBOList = list.stream().map(i -> { + // GroupTaxReqBO temp = new GroupTaxReqBO(); + // temp.setSpmc(i.getDESC1()); + // temp.setMs(i.getDESCSHORT()); + // temp.setUnit(i.getDESC5()); + // temp.setEncoding(i.getCODE()); + // return temp; + // }).collect(Collectors.toList()); + // + // respBO = interfaceServiceV3.syncGroupTax(reqBOList, secretId); + // + // } catch (Exception e) { + // log.error("{}解析列表失败,原始string:{},错误原因{},错误堆栈:{}", LOGGER_MSG, reqStr, e.getMessage(), e.getStackTrace()); + // } + // + // returnJsonString = JsonUtils.getInstance().toJsonStringNullToEmpty(respBO); + return returnJsonString = ""; } else { returnJsonString = ""; } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestSDEnregy.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestSDEnregy.java index 8afb6f12..ab7fffe1 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestSDEnregy.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/api/InvoiceRestSDEnregy.java @@ -118,6 +118,41 @@ public class InvoiceRestSDEnregy { return (String) syncMdmGroupTax.get("data"); } + /** + * MDM同步人员 + * + * @param requestBody + * @return + */ + @PostMapping("/sync_user") + public String syncUser(@RequestBody String requestBody) { + String logUUID = UUID.randomUUID().toString(); + log.info("{}[syncMdmGroupTax],uuid:{},收到请求报文:{}", LOGGER_MSG, logUUID, requestBody); + // 接收请求报文,然后进行入库 + SDEnergyMdmBaseBO baseBO = JSONObject.parseObject(requestBody, SDEnergyMdmBaseBO.class); + List mdmSyncUserReqBO = (List) Optional.of(baseBO) + .map(SDEnergyMdmBaseBO::getESB) + .map(ESBBO::getDATA) + .map(DATABO::getDATAINFOS) + .map(DATAINFOSBO::getDATAINFO) + .map(i -> { + // 转成List + return i.stream().map(j -> { + return JSONObject.parseObject(JSONObject.toJSONString(j), MdmSyncUserReqBO.class); + }).collect(Collectors.toList()); + }) + .orElse(new ArrayList()); + + AjaxResult syncMdmGroupTax = isdEnregyService.syncMdmUser(mdmSyncUserReqBO, requestBody); + if (syncMdmGroupTax.isError()) { + log.info("{}[syncMdmGroupTax],uuid:{},请求处理失败,原因:{}", LOGGER_MSG, logUUID, syncMdmGroupTax.getMsg()); + return syncMdmGroupTax.getMsg(); + } + + return (String) syncMdmGroupTax.get("data"); + } + + /** * 主动拉取 MDM 集团物料 * diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/v6/sdenergy/MdmSyncUserReqBO.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/v6/sdenergy/MdmSyncUserReqBO.java new file mode 100644 index 00000000..6b95ff17 --- /dev/null +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/v6/sdenergy/MdmSyncUserReqBO.java @@ -0,0 +1,122 @@ +package com.dxhy.order.consumer.openapi.protocol.v6.sdenergy; + +import lombok.ToString; + +/** + * @Description MDM同步人员 + * @Author 巩权林 + * @Date 2023/2/9 16:59 + **/ +@ToString +public class MdmSyncUserReqBO { + + + // 主编码的值 + private String CODE; + + // 姓名的值 + private String DESC1; + + // 手机号码的值 + private String DESC10; + + // 电子邮箱的值 + private String DESC11; + + // 组织代码的值 + private String DESC14; + + // 公司代码的值 + private String DESC37; + + // 公司名称的值 + private String DESC38; + + // 人员状态的值 + private String DESC59; + + // UUID的值 + private String UUID; + + private Boolean success; + + public void setCODE(String CODE) { + this.CODE = CODE; + } + + public String getCODE() { + return CODE; + } + + public void setDESC1(String DESC1) { + this.DESC1 = DESC1; + } + + public String getDESC1() { + return DESC1; + } + + public void setDESC10(String DESC10) { + this.DESC10 = DESC10; + } + + public String getDESC10() { + return DESC10; + } + + public void setDESC11(String DESC11) { + this.DESC11 = DESC11; + } + + public String getDESC11() { + return DESC11; + } + + public void setDESC14(String DESC14) { + this.DESC14 = DESC14; + } + + public String getDESC14() { + return DESC14; + } + + public void setDESC37(String DESC37) { + this.DESC37 = DESC37; + } + + public String getDESC37() { + return DESC37; + } + + public void setDESC38(String DESC38) { + this.DESC38 = DESC38; + } + + public String getDESC38() { + return DESC38; + } + + public void setDESC59(String DESC59) { + this.DESC59 = DESC59; + } + + public String getDESC59() { + return DESC59; + } + + public void setUUID(String UUID) { + this.UUID = UUID; + } + + public String getUUID() { + return UUID; + } + + public Boolean getSuccess() { + return success; + } + + public void setSuccess(Boolean success) { + this.success = success; + } +} \ No newline at end of file diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/ISDEnregyService.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/ISDEnregyService.java index 244c098d..299b0c2a 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/ISDEnregyService.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/ISDEnregyService.java @@ -1,13 +1,7 @@ package com.dxhy.order.consumer.openapi.service; import com.dxhy.order.consumer.openapi.protocol.AjaxResult; -import com.dxhy.order.consumer.openapi.protocol.v4.grouptax.GroupTaxRespBO; -import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.MdmGmfxxtbReqBO; -import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.MdmSyncGroupTaxCodeReqBO; -import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.SDEnergyMdmBaseBO; -import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.SDEnergyMdmBaseRespBO; -import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; +import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.*; import java.util.List; import java.util.function.Function; @@ -29,5 +23,14 @@ public interface ISDEnregyService { public AjaxResult syncMdmGroupTax(List mdmGmfxxtbReqBOS, String requestBody); + /** + * 同步人员库 + * + * @param mdmSyncUserReqBOS + * @param requestBody + * @return + */ + public AjaxResult syncMdmUser(List mdmSyncUserReqBOS, String requestBody); + public SDEnergyMdmBaseBO buildResult(SDEnergyMdmBaseBO baseBO, List respList, Function handleFunction); } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java index 6d15829c..823ad905 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/InterfaceServiceV6.java @@ -1,5 +1,7 @@ package com.dxhy.order.consumer.openapi.service; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; import com.dxhy.order.consumer.openapi.protocol.v4.order.DdpcxxReqBO; import com.dxhy.order.consumer.openapi.protocol.v5.order.DdpcxxRspV5; import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.QdCommonRspV6; @@ -20,7 +22,7 @@ public interface InterfaceServiceV6 { * @return com.dxhy.order.consumer.openapi.protocol.v5.order.DdpcxxRspV5 */ DdpcxxRspV5 generateQdInvoiceV6(DdpcxxReqBO ddpcxxReq, String secretId, String kpjh); - + /** * 红字确认单逻辑处理接口 * @param interfaceName @@ -29,4 +31,21 @@ public interface InterfaceServiceV6 { */ QdCommonRspV6 processProxyForQd(String interfaceName , String reqParam); + /** + * @Description: 订单驳回状态更新接口-(销售结算报账单的驳回状态传给发票系统(ERP-FI-INT-046)) + * @Param: [requestParam, secretId] + * @Return: com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam + * @Author: liufeilong + * @Date: 2023-02-08 + */ + PoCommonResponseParam updateOrderStatus(PoCommonRequestParam requestParam, String secretId); + + /** + * @Description: 保存PO请求数据 + * @Param: [interfaceName, IS_INPUT] + * @Return: void + * @Author: liufeilong + * @Date: 2023-02-22 + */ + void saveRequestData(String interfaceName, String param); } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java index a52b5cf1..0248c102 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/InterfaceServiceImplV6.java @@ -3,30 +3,38 @@ package com.dxhy.order.consumer.openapi.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; -import com.dxhy.order.constant.*; -import com.dxhy.order.model.newsk.InvoiceRequestParam; -import com.dxhy.order.utils.DecimalCalculateUtil; import com.dxhy.order.baseservice.module.base.service.BaseService; import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService; +import com.dxhy.order.constant.*; import com.dxhy.order.consumer.constant.InterfaceNameEnum; +import com.dxhy.order.consumer.dao.InterfaceRequestDataMapper; +import com.dxhy.order.consumer.openapi.protocol.po.EsOutput; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; import com.dxhy.order.consumer.openapi.protocol.v4.order.DdpcxxReqBO; import com.dxhy.order.consumer.openapi.protocol.v4.order.DdpcxxRspBO; import com.dxhy.order.consumer.openapi.protocol.v5.order.DdpcxxRspV5; -import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.QdCommonRspV6; import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.Hzqrdxx; import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.Hzqrdxxmx; +import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.QdCommonRspV6; import com.dxhy.order.consumer.openapi.protocol.v6.hzqrd.QueryHzqrdlbReq; import com.dxhy.order.consumer.openapi.service.AllocateInvoiceInterfaceServiceV3; import com.dxhy.order.consumer.openapi.service.CommonDisposeService; import com.dxhy.order.consumer.openapi.service.InterfaceServiceV6; import com.dxhy.order.invoice.config.InvoiceConfig; import com.dxhy.order.invoice.utils.HttpInvoiceRequestUtilQd; +import com.dxhy.order.model.InterfaceRequestData; +import com.dxhy.order.model.newsk.InvoiceRequestParam; +import com.dxhy.order.utils.DecimalCalculateUtil; +import com.dxhy.order.utils.DistributedKeyMaker; +import com.dxhy.order.utils.JsonUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -55,6 +63,8 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 { @Resource private InvoiceConfig invoiceConfig; + @Resource + private InterfaceRequestDataMapper interfaceRequestDataMapper; @Override public DdpcxxRspV5 generateQdInvoiceV6(DdpcxxReqBO ddpcxxReq, String secretId, String kpjh) { @@ -64,7 +74,7 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 { } @Override - public QdCommonRspV6 processProxyForQd(String interfaceName, String reqParam) { + public QdCommonRspV6 processProxyForQd(String interfaceName, String reqParam){ if(ConfigurerInfo.QUERY_RED_CONFIRMATION_LIST.equals(interfaceName)){ String reqUrl = invoiceConfig.configRedConfirmationQueryList(); @@ -100,7 +110,7 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 { String logName = "航信RPA二次认证状态接口"; String nsrsbh = ObjectUtil.toString(JSON.parseObject(reqParam).get("NSRSBH")); return processProxyForQd(reqUrl, reqParam, logName, nsrsbh); - } else { + }else{ QdCommonRspV6 qdCommonRspV6 = new QdCommonRspV6(); qdCommonRspV6.setZTDM(InterfaceEnum.INTERFACE_V5_INTERFACENAME_009999.getKey()); qdCommonRspV6.setZTXX(InterfaceEnum.INTERFACE_V5_INTERFACENAME_009999.getMessage()); @@ -108,6 +118,30 @@ public class InterfaceServiceImplV6 implements InterfaceServiceV6 { } } + @Override + public PoCommonResponseParam updateOrderStatus(PoCommonRequestParam requestParam, String secretId) { + PoCommonResponseParam poCommonResponseParam = new PoCommonResponseParam(); + EsOutput esOutput = new EsOutput(); + esOutput.setBSKEY(""); + esOutput.setSAPKEY(""); + esOutput.setZTYPE(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey()); + esOutput.setZMESSAGE(""); + poCommonResponseParam.setES_OUTPUT(esOutput); + return poCommonResponseParam; + } + + @Override + public void saveRequestData(String interfaceName, String param) { + PoCommonRequestParam poCommonRequestParam = JsonUtils.getInstance().parseObject(param, PoCommonRequestParam.class); + InterfaceRequestData data = new InterfaceRequestData(); + data.setId(DistributedKeyMaker.generateShotKey()); + data.setYwlx(interfaceName); + data.setBatchId(poCommonRequestParam.getIS_INPUT().getBSKEY()); + data.setRequestData(param); + data.setCreateTime(new Date()); + interfaceRequestDataMapper.insert(data); + } + private QdCommonRspV6 queryRedConfirmationList(String reqUrl, String reqParam, String logName){ QdCommonRspV6 qdCommonRspV6 = new QdCommonRspV6(); qdCommonRspV6.setZTDM(InterfaceEnum.INTERFACE_V5_STATUS_009999.getKey()); diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java index 4426f78b..4274b994 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/SDEnregyServiceImpl.java @@ -3,14 +3,14 @@ package com.dxhy.order.consumer.openapi.service.impl; import com.alibaba.fastjson.JSONObject; import com.dxhy.order.baseservice.module.buyer.dao.BuyerMapper; import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity; -import com.dxhy.order.baseservice.module.buyer.protocol.GmfxxtbRspBO; import com.dxhy.order.baseservice.module.commodity.dao.CommodityMapper; import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; import com.dxhy.order.baseservice.module.taxclass.dao.GroupTaxClassCodeMapper; -import com.dxhy.order.baseservice.module.taxclass.model.GroupTaxClassCodeEntity; -import com.dxhy.order.constant.OrderInfoContentEnum; +import com.dxhy.order.baseservice.module.thirdservice.user.dto.AddUserRequestDto; +import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.consumer.openapi.protocol.AjaxResult; import com.dxhy.order.consumer.openapi.protocol.v6.sdenergy.*; +import com.dxhy.order.model.R; import com.dxhy.order.utils.DistributedKeyMaker; import com.dxhy.order.utils.JsonUtils; import org.apache.commons.lang3.StringUtils; @@ -40,6 +40,9 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { @Autowired private CommodityMapper commodityMapper; + @Autowired + private UserInfoService userInfoService; + @Override public AjaxResult syncBuyerMessage(List mdmGmfxxtbReqBOS, String requestBody) { // 存表 @@ -181,4 +184,55 @@ public class SDEnregyServiceImpl extends SDEnregyServiceAbstract { return AjaxResult.success("success", resp); } + + /** + * 同步人员库 + * + * @param mdmSyncUserReqBOS + * @param requestBody + * @return + */ + @Override + public AjaxResult syncMdmUser(List mdmSyncUserReqBOS, String requestBody) { + // 同步数据到大B + for (int i = 0; i < mdmSyncUserReqBOS.size(); i++) { + MdmSyncUserReqBO mdmSyncUserReqBO = mdmSyncUserReqBOS.get(i); + // 填充字段 + AddUserRequestDto addUserRequestDto = AddUserRequestDto.builder() + .userId(null) // 用户id + .puserId(null) // 登陆人id + .username(mdmSyncUserReqBO.getCODE()) // 用户名 + .name(mdmSyncUserReqBO.getDESC1()) // 姓名 + .password(null) // 密码 + .mobile(mdmSyncUserReqBO.getDESC10()) // 手机号 + .deptId(null) // 部门ID + .boradAuth(null) // 看板权限 + .roleIdList(null) // 角色id + .deptList(null) // 数据权限id + .build(); + + // 添加用户到大B + R addResult = userInfoService.addUser(addUserRequestDto); + Boolean isSuccess = addResult != null && addResult.isOk(); + mdmSyncUserReqBO.setSuccess(isSuccess); + } + + SDEnergyMdmBaseBO baseBO = JSONObject.parseObject(requestBody, SDEnergyMdmBaseBO.class); + SDEnergyMdmBaseBO result = buildResult( + baseBO, + mdmSyncUserReqBOS, + i -> { + MdmSyncUserReqBO t = (MdmSyncUserReqBO) i; + SDEnergyMdmBaseRespBO resp = new SDEnergyMdmBaseRespBO(); + resp.setCODE(t.getCODE()); + resp.setUUID(t.getUUID()); + resp.setSYNSTATUS(t.getSuccess() ? "1" : "0"); + resp.setSYNRESULT(t.getSuccess() ? "success" : "failed"); + return resp; + } + ); + + String resp = JsonUtils.getInstance().toJsonStringNullToEmpty(result); + return AjaxResult.success("success", resp); + } } diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java index 21f4c0b0..d2c55728 100644 --- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java +++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java @@ -18,11 +18,18 @@ import com.dxhy.order.consumer.openapi.protocol.Response; import com.dxhy.order.consumer.openapi.protocol.cpy.*; import com.dxhy.order.consumer.openapi.protocol.invoice.DeprecateInvoicesRspBO; import com.dxhy.order.consumer.openapi.protocol.order.*; +import com.dxhy.order.consumer.openapi.protocol.po.EsOutput; +import com.dxhy.order.consumer.openapi.protocol.po.IsInput; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonRequestParam; +import com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam; +import com.dxhy.order.consumer.openapi.protocol.po.generateinvoice.sap.FpkjMxSap; +import com.dxhy.order.consumer.openapi.protocol.po.generateinvoice.sap.FpkjReqSap; import com.dxhy.order.consumer.openapi.protocol.sld.*; import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZffpxxBO; import com.dxhy.order.consumer.openapi.protocol.v4.invalid.ZfxxRspBO; import com.dxhy.order.consumer.openapi.protocol.v4.invoice.*; import com.dxhy.order.consumer.openapi.protocol.v4.order.*; +import com.dxhy.order.consumer.openapi.protocol.v5.order.DdpcxxRspV5; import com.dxhy.order.consumer.openapi.protocol.v6.order.QdFjysBO; import com.dxhy.order.consumer.openapi.protocol.v6.order.QdTxxBO; import com.dxhy.order.exception.OrderReceiveException; @@ -43,11 +50,13 @@ import com.dxhy.order.model.sk.query.ResponseCommonInvoice; import com.dxhy.order.model.sk.sld.SearchSld; import com.dxhy.order.utils.CommonUtils; import com.dxhy.order.utils.DecimalCalculateUtil; +import com.dxhy.order.utils.JsonUtils; import com.dxhy.order.utils.StringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; +import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.*; @@ -3432,4 +3441,108 @@ public class BeanTransitionUtils { return taxEquipmentInfo; } + + + /** + * @Description: 将PO接口开票请求参数转换成标准开票请求参数 + * @Param: [requestParam] + * @Return: com.dxhy.order.consumer.openapi.protocol.v4.order.DdpcxxReqBO + * @Author: liufeilong + * @Date: 2023-02-06 + */ + public static DdpcxxReqBO transitionPoKpReq(PoCommonRequestParam poCommonRequestParam, DeptEntity deptEntity){ + IsInput isinput = poCommonRequestParam.getIS_INPUT(); + DdpcxxReqBO ddpcxxReqBO = new DdpcxxReqBO(); + DdpcxxBO ddpcxxBO = new DdpcxxBO(); + List ddzxxList = new ArrayList<>(); + DdzxxBO ddzxxBO = new DdzxxBO(); + DdtxxBO ddtxxBO = new DdtxxBO(); + List ddmxList = new ArrayList<>(); + + if(OrderInfoEnum.SYS_SOURCE_SAP.getKey().equals(isinput.getSYSID())){ + String zdataString = isinput.getZDATA(); + FpkjReqSap req = JsonUtils.getInstance().parseObject(zdataString, FpkjReqSap.class); + //批次信息 + ddpcxxBO.setDDQQPCH(isinput.getSAPKEY()); + ddpcxxBO.setNSRSBH(deptEntity.getTaxpayerCode()); + ddpcxxBO.setFPLXDM(CommonUtils.transSnFplxdm(req.getZFPLX())); + ddpcxxBO.setKPFS(ConfigureConstant.STRING_1); + //订单头信息 + ddtxxBO.setDDQQLSH(isinput.getSAPKEY()); + ddtxxBO.setKPLX(req.getZSFHZ()); + ddtxxBO.setXHFSBH(deptEntity.getTaxpayerCode()); + ddtxxBO.setXHFMC(deptEntity.getName()); + ddtxxBO.setXHFDZ(deptEntity.getTaxpayerAddress()); + ddtxxBO.setXHFDH(deptEntity.getTaxpayerPhone()); + ddtxxBO.setXHFYH(deptEntity.getTaxpayerBank()); + ddtxxBO.setXHFZH(deptEntity.getTaxpayerAccount()); + ddtxxBO.setGMFBM(req.getZGFBH()); + ddtxxBO.setKPR(req.getZKPRXM()); + ddtxxBO.setSKR(req.getZSKRXM()); + ddtxxBO.setFHR(req.getZFHRXM()); + ddtxxBO.setJSHJ(req.getZHSJE()); + ddtxxBO.setHJJE(req.getZBHSJE()); + ddtxxBO.setHJSE(req.getZZSE()); + ddtxxBO.setDDH(req.getZJSDH()); + //TODO lfl 清单标志怎么处理? + ddtxxBO.setQDBZ("0"); + //明细信息 + List ititem = req.getITITEM(); + for(int i=0;i < ititem.size();i++){ + FpkjMxSap detail = ititem.get(i); + DdmxxxBO ddmxxxBO = new DdmxxxBO(); + ddmxxxBO.setXH(i+1+""); + //detail.getZSFZKH() 1:普通行;2:折扣行 折扣行上一行是被折扣行 + if(ConfigureConstant.STRING_1.equals(detail.getZSFZKH())){ + ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_0); + }else if(ConfigureConstant.STRING_2.equals(detail.getZSFZKH())){ + ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_1); + ddmxList.get(i-1).setFPHXZ(ConfigureConstant.STRING_2); + }else { + ddmxxxBO.setFPHXZ(ConfigureConstant.STRING_0); + } + ddmxxxBO.setZXBM(detail.getMATNR()); + ddmxxxBO.setXMMC(detail.getZCPMC()); + ddmxxxBO.setGGXH(detail.getCHARG()); + ddmxxxBO.setDW(detail.getZSLDW()); + ddmxxxBO.setSPSL(detail.getZZSL()); + ddmxxxBO.setSL(new BigDecimal(detail.getZTAX()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP).toString()); + ddmxxxBO.setDJ(detail.getZZDJ()); + ddmxxxBO.setJE(detail.getZHSJE()); + ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1); + ddmxxxBO.setSE(detail.getZZSE()); + //TODO lfl 优惠政策标识 取税编对应的优惠政策标识! + ddmxxxBO.setYHZCBS("0"); + ddmxList.add(ddmxxxBO); + } + } + ddzxxBO.setDDTXX(ddtxxBO); + ddzxxBO.setDDMXXX(ddmxList); + ddzxxList.add(ddzxxBO); + ddpcxxReqBO.setDDPCXX(ddpcxxBO); + ddpcxxReqBO.setDDZXX(ddzxxList); + return ddpcxxReqBO; + } + + /** + * @Description: 将标准开票响应参数转换成PO接口开票响应参数 + * @Param: [ddpcxxRspV5] + * @Return: com.dxhy.order.consumer.openapi.protocol.po.PoCommonResponseParam + * @Author: liufeilong + * @Date: 2023-02-06 + */ + public static PoCommonResponseParam transitionPoKpResp(DdpcxxRspV5 ddpcxxRspV5){ + PoCommonResponseParam poCommonResponseParam = new PoCommonResponseParam(); + EsOutput esOutput = new EsOutput(); + esOutput.setBSKEY(ddpcxxRspV5.getDDQQPCH()); + esOutput.setSAPKEY(ddpcxxRspV5.getDDQQPCH()); + if(OrderInfoContentEnum.INVOICE_ERROR_CODE_010000_V3.getKey().equals(ddpcxxRspV5.getZTDM())){ + esOutput.setZTYPE(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_S.getKey()); + }else{ + esOutput.setZTYPE(OrderInfoContentEnum.INVOICE_ERROR_CODE_OP_E.getKey()); + } + esOutput.setZMESSAGE(ddpcxxRspV5.getZTXX()); + poCommonResponseParam.setES_OUTPUT(esOutput); + return poCommonResponseParam; + } } diff --git a/order-management-consumer/src/main/resources/bootstrap-pre.yaml b/order-management-consumer/src/main/resources/bootstrap-pre.yaml index f346118f..25f166bf 100644 --- a/order-management-consumer/src/main/resources/bootstrap-pre.yaml +++ b/order-management-consumer/src/main/resources/bootstrap-pre.yaml @@ -4,15 +4,15 @@ spring: nacos: config: # Nacos config 地址 - server-addr: nacos-1.itax.local:33000 + server-addr: nacos-1.itax.local:8848 # Nacos config 命名空间,对应配置中的名称(sims_order_namespace) - namespace: a049b41c-b0a8-4a66-91b1-f3f3cab0e524 + namespace: be3b66c4-16e0-4698-9389-bded862f370d # Nacos config 分组 group: sims-order-config # Nacos config 登录用户名 - username: nacos + username: sims-order # Nacos config 登录密码 - password: Invoice.nacos.!1 + password: sims-order # Nacos config 配置文件前缀 prefix: sims-order-api # Nacos config 配置文件后缀,拼接完URL需要对应NacosServer中的dataId对应配置,${prefix}-${spring.profiles.active}.${file-extension} @@ -53,7 +53,7 @@ spring: # Nacos discovery 配置 discovery: # Nacos discovery 服务地址 - server-addr: nacos-1.itax.local:33000 + server-addr: nacos-1.itax.local:8848 #sentinel配置相关 sentinel: #sentinel是否开启控制 @@ -65,7 +65,7 @@ spring: #控制台端口 port: 8719 #控制台页面地址 - dashboard: sims.sentinel.01:47000 + dashboard: sims.sentinel.01:8858 datasource: r1: nacos: diff --git a/order-management-consumer/src/main/resources/bootstrap-preNew.yaml b/order-management-consumer/src/main/resources/bootstrap-preNew.yaml index 769fb923..25f166bf 100644 --- a/order-management-consumer/src/main/resources/bootstrap-preNew.yaml +++ b/order-management-consumer/src/main/resources/bootstrap-preNew.yaml @@ -4,7 +4,7 @@ spring: nacos: config: # Nacos config 地址 - server-addr: nacos-1.itax.local:8868 + server-addr: nacos-1.itax.local:8848 # Nacos config 命名空间,对应配置中的名称(sims_order_namespace) namespace: be3b66c4-16e0-4698-9389-bded862f370d # Nacos config 分组 @@ -53,7 +53,7 @@ spring: # Nacos discovery 配置 discovery: # Nacos discovery 服务地址 - server-addr: nacos-1.itax.local:8868 + server-addr: nacos-1.itax.local:8848 #sentinel配置相关 sentinel: #sentinel是否开启控制 diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/InvoiceRemarkSetMapper.xml b/order-management-consumer/src/main/resources/mybatis/mapper/InvoiceRemarkSetMapper.xml new file mode 100644 index 00000000..ba4cf619 --- /dev/null +++ b/order-management-consumer/src/main/resources/mybatis/mapper/InvoiceRemarkSetMapper.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + id, xhf_nsrsbh, gsbm, xh, mbmc, mbnr, status, create_time, credate_user_id + + + + + delete from invoice_remark_set + where id = #{id,jdbcType=VARCHAR} + + + delete from invoice_remark_set + where gsbm = #{gsbm,jdbcType=VARCHAR} + + + insert into invoice_remark_set (id, xhf_nsrsbh, gsbm, + xh, mbmc, mbnr, status, + create_time, credate_user_id) + values (#{id,jdbcType=VARCHAR}, #{xhfNsrsbh,jdbcType=VARCHAR}, #{gsbm,jdbcType=VARCHAR}, + #{xh,jdbcType=VARCHAR}, #{mbmc,jdbcType=VARCHAR}, #{mbnr,jdbcType=VARCHAR}, #{status,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, #{credateUserId,jdbcType=VARCHAR}) + + + insert into invoice_remark_set + + + id, + + + xhf_nsrsbh, + + + gsbm, + + + xh, + + + mbmc, + + + mbnr, + + + status, + + + create_time, + + + credate_user_id, + + + + + #{id,jdbcType=VARCHAR}, + + + #{xhfNsrsbh,jdbcType=VARCHAR}, + + + #{gsbm,jdbcType=VARCHAR}, + + + #{xh,jdbcType=VARCHAR}, + + + #{mbmc,jdbcType=VARCHAR}, + + + #{mbnr,jdbcType=VARCHAR}, + + + #{status,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{credateUserId,jdbcType=VARCHAR}, + + + + + update invoice_remark_set + + + xhf_nsrsbh = #{xhfNsrsbh,jdbcType=VARCHAR}, + + + gsbm = #{gsbm,jdbcType=VARCHAR}, + + + xh = #{xh,jdbcType=VARCHAR}, + + + mbmc = #{mbmc,jdbcType=VARCHAR}, + + + mbnr = #{mbnr,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + credate_user_id = #{credateUserId,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update invoice_remark_set + set xhf_nsrsbh = #{xhfNsrsbh,jdbcType=VARCHAR}, + gsbm = #{gsbm,jdbcType=VARCHAR}, + xh = #{xh,jdbcType=VARCHAR}, + mbmc = #{mbmc,jdbcType=VARCHAR}, + mbnr = #{mbnr,jdbcType=VARCHAR}, + status = #{status,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + credate_user_id = #{credateUserId,jdbcType=VARCHAR} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 8c886f0e..3bb201c1 100644 --- a/pom.xml +++ b/pom.xml @@ -559,6 +559,13 @@ dxhy Dxhy@123 + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + @@ -576,6 +583,13 @@ dxhy Dxhy@123 + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + @@ -589,6 +603,13 @@ dxhy Dxhy@123 + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + @@ -602,6 +623,13 @@ dxhy Dxhy@123 + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + @@ -615,6 +643,13 @@ dxhy Dxhy@123 + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + @@ -628,6 +663,13 @@ dxhy Dxhy@123 + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + @@ -641,6 +683,31 @@ sales_manager HApbG7#Ka7#vzADq + http://10.1.20.6:8081/nexus/content/groups/public + http://10.1.20.6:8081/nexus/content/groups/public + + http://10.1.20.6:8081/nexus/content/repositories/releases + + http://10.1.20.6:8081/nexus/content/repositories/snapshots + + + + + sdny + + /data/logs/ + debug + + + dxhy + Dxhy@123 + http://172.31.32.53:8081/repository/maven-public/ + http://172.31.32.53:8081/repository/maven-public/ + + http://172.31.32.53:8081/nexus/content/repositories/releases + + http://172.31.32.53:8081/nexus/content/repositories/snapshots +