Merge branches '0507' and 'release' of http://192.168.12.182/invoice/pt into 0507

release
yefei 2 years ago
commit dd158593ad
  1. 4
      dxhy-admin/src/main/java/com/dxhy/admin/sys/controller/SysDeptController.java
  2. 9
      dxhy-admin/src/main/java/com/dxhy/admin/sys/service/SysDeptService.java
  3. 6
      dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SsoLoginServiceImpl.java
  4. 7
      dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysDeptServiceImpl.java
  5. 11
      dxhy-common/src/main/java/com/dxhy/common/constant/CommonConstants.java
  6. 3
      dxhy-common/src/main/java/com/dxhy/common/service/impl/DictdetaServciceImpl.java
  7. 62
      dxhy-core/src/main/java/com/dxhy/core/service/singletable/impl/CoreSaveInvoiceInfoServiceImpl.java
  8. 87
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java

@ -45,14 +45,14 @@ public class SysDeptController extends AbstractController {
* 列表
*/
@RequestMapping("/list")
public ResponseEntity<?> list() {
public ResponseEntity<?> list(@RequestBody long deptId) {
String company = "";
UserInfo userInfo = getUserInfo();
if (Long.parseLong(getUserId()) != Constant.SUPER_ADMIN && !userInfo.getCompany().contains(SysConfig.ZXQY)) {
company = userInfo.getCompany();
}
List<SysDeptEntity> deptList = sysDeptService.queryList(company);
List<SysDeptEntity> deptList = sysDeptService.queryList(company,deptId);
log.info("树状信息:{}", JSON.toJSONString(deptList));
return ResponseEntity.ok(R.ok().put("data", deptList));
}

@ -22,6 +22,15 @@ public interface SysDeptService extends IService<SysDeptEntity> {
*/
List<SysDeptEntity> queryList(String company);
/**
* 根据集团编码获取部门信息
*
* @param company
* 集团编码
* @return 部门信息
*/
List<SysDeptEntity> queryList(String company,long parentId);
/**
* 根据集团编码获取用户关联信息
*

@ -58,6 +58,9 @@ public class SsoLoginServiceImpl implements SsoLoginService {
boolean insertRole = this.insertRole(user);
// 保存用户信息
boolean insertUser = this.insertUser(user);
log.info("insertOrg = {},insertRole={},insertUser",insertOrg,insertRole,insertUser);
// 刷新用户缓存
sysUserService.refreshCache(false, user.getUsername());
return insertOrg && insertUser && insertRole;
@ -75,6 +78,7 @@ public class SsoLoginServiceImpl implements SsoLoginService {
sysUserService.saveUser(userEntity);
return true;
} catch (Exception e) {
log.error("insertUser 报错信息为{}",e);
e.printStackTrace();
return false;
}
@ -92,6 +96,7 @@ public class SsoLoginServiceImpl implements SsoLoginService {
}
return true;
} catch (Exception e) {
log.error("insertRole 报错信息为{}",e);
e.printStackTrace();
return false;
}
@ -113,6 +118,7 @@ public class SsoLoginServiceImpl implements SsoLoginService {
}
return true;
} catch (Exception e) {
log.error("insertOrg 报错信息为{}",e);
e.printStackTrace();
return false;
}

@ -54,6 +54,13 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptDao, SysDeptEntity> i
return this.getChildPerms(deptList, parentId);
}
@Override
public List<SysDeptEntity> queryList(String company, long parentId) {
DynamicContextHolder.push(DbConstant.BASICS_READ);
List<SysDeptEntity> deptList = baseMapper.queryList(company);
return this.getChildPerms(deptList, parentId);
}
/**
* 根据父节点的ID获取所有子节点
*

@ -60,6 +60,17 @@ public class CommonConstants {
* 默认返回页面的错误信息
*/
public static final String MSG_ERR_PUSH_SDNY = "推送数据到sap失败!";
/**
* 超时的错误信息
*/
public static final String CONNECT_TIMEOUT = "网络超时,请稍后重试!";
/**
* 空指针的错误信息
*/
public static final String NULL_POINTER_TIMEOUT = "系统错误,请稍后重试!";
/**
* 默认返回页面的成功信息
*/

@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -20,6 +21,7 @@ import com.dxhy.common.vo.DictdetaModel;
* @author jiaohongyang
*/
@Service("dictdetaServcice")
@Slf4j
public class DictdetaServciceImpl implements DictdetaServcice {
@Resource
private RedisUtils redisUtils;
@ -32,6 +34,7 @@ public class DictdetaServciceImpl implements DictdetaServcice {
@Override
public String queryDictName(String type,String code) {
log.info("type={},code={}",type,code);
String dictJson = redisUtils.get(RedisConstant.KEY_DICT + type);
List<DictdetaModel> dictdetaModels = JSON.parseArray(dictJson, DictdetaModel.class);
Map<String, String> collect = dictdetaModels.stream().collect(Collectors.toMap(DictdetaModel::getDictcode, DictdetaModel::getDictname));

@ -120,16 +120,29 @@ public class CoreSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl<TDxRecordI
// invoiceStatistics.setTaxRate(queryInvoiceResult.getBigDecimal("taxRate"));
// invoiceStatistics.setTaxAmount(queryInvoiceResult.getBigDecimal("taxAmount"));
String taxRate = queryInvoiceResult.getString("taxRate");
if (taxRate.contains("%")) {
taxRate = taxRate.replace("%", "");
log.info("taxRate={}",taxRate);
if(StringUtils.isNotEmpty(taxRate)) {
if (taxRate.contains("%")) {
taxRate = taxRate.replace("%", "");
}
if("免税".equals(taxRate)){
invoiceStatistics.setTaxRate(new BigDecimal("0"));
}else {
invoiceStatistics.setTaxRate(new BigDecimal(taxRate));
}
}
String amount = queryInvoiceResult.getString("taxAmount");
if(StringUtils.isNotEmpty(amount)){
try {
invoiceStatistics.setTaxAmount(queryInvoiceResult.getBigDecimal("taxAmount"));
} catch (Exception e) {
invoiceStatistics.setTaxAmount(new BigDecimal("0"));
}
}
invoiceStatistics.setTaxRate(new BigDecimal(taxRate));
try {
invoiceStatistics.setTaxAmount(queryInvoiceResult.getBigDecimal("taxAmount"));
} catch (Exception e) {
invoiceStatistics.setTaxAmount(new BigDecimal("0"));
String resultString = queryInvoiceResult.getString("totalAmount");
if(StringUtils.isNotEmpty(resultString)){
invoiceStatistics.setTotalAmount(queryInvoiceResult.getBigDecimal("totalAmount"));
}
invoiceStatistics.setTotalAmount(queryInvoiceResult.getBigDecimal("totalAmount"));
invoiceStatisticsList.add(invoiceStatistics);
} else {
if (queryInvoiceResult.containsKey("detailList")) {
@ -139,27 +152,36 @@ public class CoreSaveInvoiceInfoServiceImpl extends MpBaseServiceImpl<TDxRecordI
Map<String, String> slvMap = new HashMap<>(16);
for (int i = 0; i < dataArray.size(); i++) {
JSONObject invoiceDetailQuery = dataArray.getJSONObject(i);
String slvPri = queryInvoiceResult.getString("invoiceCode")
+ queryInvoiceResult.getString("invoiceNo") + invoiceDetailQuery.getString("taxRate");
String taxRate = invoiceDetailQuery.getString("taxRate");
if(StringUtils.isEmpty(taxRate)){
taxRate = "";
}
String slvPri = queryInvoiceResult.getString("invoiceCode") + queryInvoiceResult.getString("invoiceNo") + taxRate;
if (!slvMap.containsKey(slvPri)) {
slvMap.put(slvPri, slvPri);
TDxRecordInvoiceStatistics invoiceStatistics = new TDxRecordInvoiceStatistics();
invoiceStatistics.setCreateDate(DateUtils.getSqlDateLong());
invoiceStatistics.setInvoiceCode(queryInvoiceResult.getString("invoiceCode"));
invoiceStatistics.setInvoiceNo(queryInvoiceResult.getString("invoiceNo"));
invoiceStatistics.setDetailAmount(invoiceDetailQuery.getBigDecimal("detailAmount"));
try {
invoiceStatistics.setTaxRate(invoiceDetailQuery.getBigDecimal("taxRate"));
} catch (Exception e) {
invoiceStatistics.setTaxRate(new BigDecimal("0"));
}
try {
invoiceStatistics.setTaxAmount(invoiceDetailQuery.getBigDecimal("taxAmount"));
} catch (Exception e) {
invoiceStatistics.setTaxAmount(new BigDecimal("0"));
if(StringUtils.isNotBlank(taxRate)){
try {
invoiceStatistics.setTaxRate(invoiceDetailQuery.getBigDecimal("taxRate"));
} catch (Exception e) {
invoiceStatistics.setTaxRate(new BigDecimal("0"));
}
}
String detailAmount = invoiceDetailQuery.getString("detailAmount");
String taxAmount = invoiceDetailQuery.getString("taxAmount");
if(StringUtils.isNotBlank(detailAmount)){
invoiceStatistics.setDetailAmount(invoiceDetailQuery.getBigDecimal("detailAmount"));
}
if(StringUtils.isNotBlank(taxAmount)){
try {
invoiceStatistics.setTaxAmount(invoiceDetailQuery.getBigDecimal("taxAmount"));
} catch (Exception e) {
invoiceStatistics.setTaxAmount(new BigDecimal("0"));
}
}
if (StringUtils.isNotBlank(detailAmount) && StringUtils.isNotBlank(taxAmount)) {
try {
detailAmount = new BigDecimal(detailAmount).toPlainString();

@ -35,6 +35,7 @@ import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeoutException;
/**
* 山东能源查验主流程控制器
@ -110,7 +111,7 @@ public class SDNYMainProcessController extends AbstractController {
@PostMapping("/singleInvoiceCheck")
@ResponseBody
@SysLog("发票查验")
public ResponseEntity<String> singleInvoiceCheck(@RequestBody Map<String, String> pramsMap) throws ParseException {
public ResponseEntity<String> singleInvoiceCheck(@RequestBody Map<String, String> pramsMap) throws Exception {
log.info("传入的参数为:{}", pramsMap);
String userid = "101833";
String dbName = "business";
@ -165,7 +166,7 @@ public class SDNYMainProcessController extends AbstractController {
return ResponseEntity.ok(JSONObject.toJSONString(R.error("金额不能为空!")));
}
} else {
if (StringUtils.isBlank(pramsMap.get("checkCode"))){
if (StringUtils.isBlank(pramsMap.get("checkCode"))) {
return ResponseEntity.ok(JSONObject.toJSONString(R.error("校验码不能为空!")));
}
}
@ -184,7 +185,7 @@ public class SDNYMainProcessController extends AbstractController {
}
//非通行费类发票 先判断底账库中是否已存在
if(!"32000".equals(pramsMap.get("invoiceType"))) {
if (!"32000".equals(pramsMap.get("invoiceType"))) {
//查询底账库是否有对应发票,有则直接返回
QueryWrapper<BaseTDxRecordInvoice> recordWrapper = new QueryWrapper<>();
recordWrapper.eq("uuid", uuid);
@ -197,9 +198,26 @@ public class SDNYMainProcessController extends AbstractController {
detailWrapper.eq("uuid", uuid);
DynamicContextHolder.push("business" + DbConstant.DETAIL_READ);
List<BaseTDxRecordInvoiceDetail> baseTDxRecordInvoiceDetail = baseTDxRecordInvoiceDetailDao.selectList(detailWrapper);
DynamicContextHolder.push("business" + DbConstant.BUSINESS_READ);
if(baseTDxRecordInvoiceDetail != null && baseTDxRecordInvoiceDetail.size() == 0){
//先删除原有主数据,再查验更新主数据和明细数据
int delete = baseTDxRecordInvoiceDao.delete(recordWrapper);
if(delete > 0) {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
if (!checkInvoiceResult.containsKey("code")) {
if (!checkInvoiceResult.containsKey("cyjg")) {
checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber"));
signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, userid, "1", dbName);
}
}
DynamicContextHolder.push("business" + DbConstant.DETAIL_READ);
baseTDxRecordInvoiceDetail = baseTDxRecordInvoiceDetailDao.selectList(detailWrapper);
DynamicContextHolder.push("business" + DbConstant.BUSINESS_READ);
}
}
JSONObject checkInvoice = (JSONObject) JSONObject.toJSON(checkInvoiceByUuid);
JSONArray checkInvoiceDetail = (JSONArray) JSONObject.toJSON(baseTDxRecordInvoiceDetail);
@ -240,8 +258,8 @@ public class SDNYMainProcessController extends AbstractController {
}
try {
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
log.info("查验结果为:{}", checkInvoiceResult);
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap);
log.info("查验结果为:{}", checkInvoiceResult);
} catch (Exception e) {
e.printStackTrace();
}
@ -312,7 +330,7 @@ public class SDNYMainProcessController extends AbstractController {
private R errorInfo(JSONObject checkInvoiceResult, R data) {
if ("0002".equals(checkInvoiceResult.getString("cyjg"))) {
data = new R(1002, checkInvoiceResult.getString("cyjgxx"));
data = new R(1002, checkInvoiceResult.getString("cyjgxx"));
}
if ("0005".equals(checkInvoiceResult.getString("cyjg"))) {
@ -375,7 +393,7 @@ public class SDNYMainProcessController extends AbstractController {
checkInvoice.put("totalAmount", checkInvoice.getString("invoiceAmount"));
//添加非空判断
String invoiceCode = null;
if ( checkInvoice.get("invoiceCode") != null){
if (checkInvoice.get("invoiceCode") != null) {
invoiceCode = checkInvoice.get("invoiceCode").toString();
}
String invoiceType = checkInvoice.get("invoiceType").toString();
@ -390,10 +408,10 @@ public class SDNYMainProcessController extends AbstractController {
checkInvoice.put("administrativeDivisionNo", "");
checkInvoice.put("administrativeDivisionName", "");
if("31".equals(invoiceType) || "32".equals(invoiceType) || "185".equals(invoiceType) || "186".equals(invoiceType)){
if ("31".equals(invoiceType) || "32".equals(invoiceType) || "185".equals(invoiceType) || "186".equals(invoiceType)) {
checkInvoice.put("invoiceCode", "");
checkInvoice.put("invoiceNumber", invoiceCode == null ? checkInvoice.get("invoiceNo").toString() :invoiceCode + checkInvoice.get("invoiceNo").toString());
}else {
checkInvoice.put("invoiceNumber", invoiceCode == null ? checkInvoice.get("invoiceNo").toString() : invoiceCode + checkInvoice.get("invoiceNo").toString());
} else {
checkInvoice.put("invoiceCode", invoiceCode);
checkInvoice.put("invoiceNumber", checkInvoice.get("invoiceNo").toString());
}
@ -452,10 +470,10 @@ public class SDNYMainProcessController extends AbstractController {
Float hjje = null;
if (detail.getString("detailAmount") != null && detail.getString("taxAmount") != null) {
Float je = Float.parseFloat(detail.getString("detailAmount"));
if(detail.getString("taxAmount") != null) {
if (detail.getString("taxAmount") != null) {
Float se = Float.parseFloat(detail.getString("taxAmount"));
hjje = je + se;
}else{
} else {
hjje = je;
}
}
@ -531,7 +549,7 @@ public class SDNYMainProcessController extends AbstractController {
String company = "";
String taxno = "";
String taxname = "";
if(orgByCompCode != null) {
if (orgByCompCode != null) {
company = orgByCompCode.getCompany();
taxno = orgByCompCode.getTaxno();
taxname = orgByCompCode.getTaxname();
@ -649,11 +667,20 @@ public class SDNYMainProcessController extends AbstractController {
}
}
} catch (Exception exception) {
log.error("同步SAP失败,报错信息为:{}",exception);
} catch (TimeoutException exception) {
log.error("同步SAP失败,报错信息为:{}", exception);
exception.printStackTrace();
return ResponseEntity.ok(JSONObject.toJSONString(R.error(CommonConstants.CONNECT_TIMEOUT)));
} catch(NullPointerException exception){
log.error("同步SAP失败,报错信息为:{}", exception);
exception.printStackTrace();
return ResponseEntity.ok(JSONObject.toJSONString(R.error(CommonConstants.NULL_POINTER_TIMEOUT)));
} catch(Exception exception){
log.error("同步SAP失败,报错信息为:{}", exception);
exception.printStackTrace();
return ResponseEntity.ok(JSONObject.toJSONString(R.error(CommonConstants.MSG_ERR_DEFAULT)));
}
return ResponseEntity.ok(JSONObject.toJSONString(R.error(CommonConstants.MSG_ERR_PUSH_SDNY)));
}
@ -759,7 +786,7 @@ public class SDNYMainProcessController extends AbstractController {
List<SAPInvoiceDetail> sapInvoiceDetailList = new ArrayList<>();
//查询明细
String uuid = snInvoice.getInvoiceCode() + snInvoice.getInvoiceNumber();
if (StringUtils.isBlank(snInvoice.getInvoiceCode())){
if (StringUtils.isBlank(snInvoice.getInvoiceCode())) {
uuid = snInvoice.getInvoiceNumber();
}
DynamicContextHolder.push("business" + DbConstant.DETAIL_READ);
@ -788,7 +815,7 @@ public class SDNYMainProcessController extends AbstractController {
//将类似于0.03数据格式转化为3.00
if (snInvoiceDetail.getTaxRate() != null && snInvoiceDetail.getTaxRate() != "") {
sapInvoiceDetail.setZTAX(snInvoiceDetail.getTaxRate());
if ( "0".equals(snInvoiceDetail.getTaxRate())){
if ("0".equals(snInvoiceDetail.getTaxRate())) {
sapInvoiceDetail.setZTAX("0.00");
// sapInvoiceDetail.setZSM(sapInvoiceDetail.getZTAX());
}
@ -802,7 +829,7 @@ public class SDNYMainProcessController extends AbstractController {
BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
sapInvoiceDetail.setZTAX(tax1.toString());
}
if (snInvoiceDetail.getTaxRate().contains("%") && !snInvoiceDetail.getTaxRate().contains(".")){
if (snInvoiceDetail.getTaxRate().contains("%") && !snInvoiceDetail.getTaxRate().contains(".")) {
String replace = snInvoiceDetail.getTaxRate().replace("%", ".00");
sapInvoiceDetail.setZTAX(replace);
}
@ -818,11 +845,11 @@ public class SDNYMainProcessController extends AbstractController {
sapInvoiceDetail.setZCYR(info.getZCYRMC());
sapInvoiceDetail.setZDW(snInvoiceDetail.getUnit());
sapInvoiceDetail.setZGSJBM(snInvoiceDetail.getCommodityCode());
if (StringUtils.isNotBlank(snInvoiceDetail.getTax())){
if (StringUtils.isNotBlank(snInvoiceDetail.getTax())) {
sapInvoiceDetail.setZSE(snInvoiceDetail.getTax());
}else {
if (detailInfo != null && !detailInfo.isEmpty()){
} else {
if (detailInfo != null && !detailInfo.isEmpty()) {
for (InvoiceDetailInfo invoiceDetailInfo : detailInfo) {
if (StringUtils.isNotBlank(invoiceDetailInfo.getDetailNo()) && invoiceDetailInfo.getDetailNo().equals(snInvoiceDetail.getRowNo())) {
sapInvoiceDetail.setZSE(invoiceDetailInfo.getTaxAmount());
@ -832,10 +859,10 @@ public class SDNYMainProcessController extends AbstractController {
}
sapInvoiceDetail.setZSL(snInvoiceDetail.getQuantity());
String zsmTax = snInvoiceDetail.getTaxRate();
if (zsmTax != null && zsmTax != "" && zsmTax.length() > 4){
zsmTax = zsmTax.substring(0,4);
if (zsmTax != null && zsmTax != "" && zsmTax.length() > 4) {
zsmTax = zsmTax.substring(0, 4);
}
if (zsmTax != null && zsmTax.contains("%") && !zsmTax.contains(".")){
if (zsmTax != null && zsmTax.contains("%") && !zsmTax.contains(".")) {
zsmTax = (new BigDecimal(zsmTax.replace("%", ""))).divide(new BigDecimal("100")).toString();
}
// sapInvoiceDetail.setZSM(getZSM(snInvoiceDetail.getTaxRate()));
@ -869,16 +896,16 @@ public class SDNYMainProcessController extends AbstractController {
info.setZTAX(replace + ".00");
info.setZSM(getZSM(divide.toString()));
}
if (taxRate != null && taxRate.contains(".") && !taxRate.contains("%")){
if (taxRate.length() >4){
taxRate = taxRate.substring(0,4);
if (taxRate != null && taxRate.contains(".") && !taxRate.contains("%")) {
if (taxRate.length() > 4) {
taxRate = taxRate.substring(0, 4);
BigDecimal tax = new BigDecimal(taxRate);
info.setZSM(getZSM(tax.toString()));
BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
info.setZTAX(tax1.toString());
}
}
if (taxRate != null && "0".equals(taxRate)){
if (taxRate != null && "0".equals(taxRate)) {
info.setZTAX("0.00");
info.setZSM(getZSM(info.getZTAX()));
}

Loading…
Cancel
Save