Merge remote-tracking branch 'origin/task销项发票提交' into release

release
王琦 2 years ago
commit 99b5c727d4
  1. 25
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  2. 12
      dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/S4Request.java
  3. 1
      dxhy-erp/src/main/java/com/dxhy/erp/entity/sdny/SNRequestObject.java
  4. 8
      dxhy-erp/src/main/java/com/dxhy/erp/service/SNPushCheckRecordService.java
  5. 31
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ImageSubmitServiceImpl.java
  6. 4
      升级sql/销项发票提交.sql

@ -630,9 +630,30 @@ public class SDNYMainProcessController extends AbstractController {
QueryWrapper<RecordInvoiceSaleDetailModel> saleDetailWrapper = new QueryWrapper<>(); QueryWrapper<RecordInvoiceSaleDetailModel> saleDetailWrapper = new QueryWrapper<>();
saleDetailWrapper.eq("invoice_no", invoiceNo); saleDetailWrapper.eq("invoice_no", invoiceNo);
List<RecordInvoiceSaleDetailModel> recordInvoiceSaleDetailModel = snPushCheckRecordService.selectSaleListByWrapper(saleDetailWrapper); List<RecordInvoiceSaleDetailModel> recordInvoiceSaleDetailModel = snPushCheckRecordService.selectSaleListByWrapper(saleDetailWrapper);
List<BaseTDxRecordInvoiceDetail> baseTDxRecordInvoiceDetail = null;
if(recordInvoiceSaleDetailModel == null || recordInvoiceSaleDetailModel.size() == 0){
log.info("明细行为空,查验补充信息");
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap, null);
if (!checkInvoiceResult.containsKey("code")) {
if (!checkInvoiceResult.containsKey("cyjg")) {
snPushCheckRecordService.updateInvoice(dbName, checkInvoiceResult, recordWrapper);
QueryWrapper<BaseTDxRecordInvoiceDetail> detailWrapper = new QueryWrapper<>();
detailWrapper.eq("uuid", uuid);
baseTDxRecordInvoiceDetail = snPushCheckRecordService.selectRecordDetailListByWrapper(detailWrapper);
} else if (checkInvoiceResult.containsKey("cyjg") && !"0001".equals(checkInvoiceResult.getString("cyjg"))) {
data = errorInfo(checkInvoiceResult, data);
return ResponseEntity.ok(JSONObject.toJSONString(data));
}
}
checkInvoiceByUuid = snPushCheckRecordService.selectRecordByWrapper(recordWrapper);
}
JSONObject checkInvoice = (JSONObject) JSONObject.toJSON(tdxSaleRecordInvoice); JSONObject checkInvoice = (JSONObject) JSONObject.toJSON(tdxSaleRecordInvoice);
JSONArray saleDetail = (JSONArray) JSONObject.toJSON(recordInvoiceSaleDetailModel); JSONArray saleDetail = (JSONArray) JSONObject.toJSON(recordInvoiceSaleDetailModel);
if(baseTDxRecordInvoiceDetail!= null && baseTDxRecordInvoiceDetail.size() > 0){
saleDetail = (JSONArray) JSONObject.toJSON(baseTDxRecordInvoiceDetail);
}
convertToResult(checkInvoice, saleDetail); convertToResult(checkInvoice, saleDetail);
data.put("data", checkInvoice); data.put("data", checkInvoice);
@ -685,7 +706,7 @@ public class SDNYMainProcessController extends AbstractController {
} }
} else { } else {
//其他类发票,直接入库 //其他类发票,直接入库
R data = new R(1000, "default success"); R data = new R(500, "default success");
if (checkInvoiceResult != null && !checkInvoiceResult.isEmpty()) { if (checkInvoiceResult != null && !checkInvoiceResult.isEmpty()) {
log.info("其他类发票,不做查验,直接入库"); log.info("其他类发票,不做查验,直接入库");
data.put("message", "success"); data.put("message", "success");
@ -1400,7 +1421,7 @@ public class SDNYMainProcessController extends AbstractController {
* @param params * @param params
* @return * @return
*/ */
//@PostMapping("/imageSubmitSalesInvoice") @PostMapping("/imageSubmitSalesInvoice")
@ResponseBody @ResponseBody
@SysLog("影像系统提交销项发票") @SysLog("影像系统提交销项发票")
public ResponseEntity<String> imageSubmitSalesInvoice(@RequestBody SNRequestObject params) { public ResponseEntity<String> imageSubmitSalesInvoice(@RequestBody SNRequestObject params) {

@ -1,5 +1,6 @@
package com.dxhy.erp.entity.sdny; package com.dxhy.erp.entity.sdny;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -23,16 +24,27 @@ import javax.xml.bind.annotation.XmlRootElement;
@NoArgsConstructor @NoArgsConstructor
public class S4Request { public class S4Request {
@JSONField(name = "SYSID")
private String SYSID; private String SYSID;
@JSONField(name = "IFYWID")
private String IFYWID; private String IFYWID;
@JSONField(name = "BSKEY")
private String BSKEY; private String BSKEY;
@JSONField(name = "SAPKEY")
private String SAPKEY; private String SAPKEY;
@JSONField(name = "ZORG")
private String ZORG; private String ZORG;
@JSONField(name = "ZFILED1")
private String ZFILED1; private String ZFILED1;
@JSONField(name = "ZFILED2")
private String ZFILED2; private String ZFILED2;
@JSONField(name = "ZFILED3")
private String ZFILED3; private String ZFILED3;
@JSONField(name = "ZFILED4")
private String ZFILED4; private String ZFILED4;
@JSONField(name = "ZFILED5")
private String ZFILED5; private String ZFILED5;
@JSONField(name = "ZDATA")
private String ZDATA; private String ZDATA;

@ -2,6 +2,7 @@ package com.dxhy.erp.entity.sdny;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data

@ -1243,10 +1243,10 @@ public class SNPushCheckRecordService extends AbstractServiceAdapter {
public void updateInvoice(String dbName, JSONObject checkInvoiceResult, QueryWrapper<BaseTDxRecordInvoice> recordWrapper) throws Exception { public void updateInvoice(String dbName, JSONObject checkInvoiceResult, QueryWrapper<BaseTDxRecordInvoice> recordWrapper) throws Exception {
//先删除原有主数据,再查验更新主数据和明细数据 //先删除原有主数据,再查验更新主数据和明细数据
int delete = snPushCheckRecordService.deleteRecordByWrapper(recordWrapper); int delete = snPushCheckRecordService.deleteRecordByWrapper(recordWrapper);
if (delete > 0) {
checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber")); checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber"));
signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, "", "1", dbName); signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, "", "1", dbName);
}
} }
} }

@ -30,7 +30,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
//@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Slf4j @Slf4j
public class ImageSubmitServiceImpl implements ImageSubmitService { public class ImageSubmitServiceImpl implements ImageSubmitService {
@ -69,7 +69,17 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
queryWrapper.in("uuid", uuidList); queryWrapper.in("uuid", uuidList);
List<SdnyTDxRecordInvoice> invoicesList = tdxRecordInvoiceDao.selectList(queryWrapper); List<SdnyTDxRecordInvoice> invoicesList = tdxRecordInvoiceDao.selectList(queryWrapper);
if (invoicesList == null || invoicesList.size() == 0) { if (invoicesList == null || invoicesList.size() == 0) {
return R.error(500, "未查询到发票信息,请重新查验"); QueryWrapper<SdnyTDxSaleRecordInvoice> salesQueryWrapper = new QueryWrapper<>();
salesQueryWrapper.in("uuid", uuidList);
List<SdnyTDxSaleRecordInvoice> saleRecordInvoices = sdnyTDxSaleRecordInvoiceDao.selectList(salesQueryWrapper);
if (saleRecordInvoices == null || saleRecordInvoices.size() == 0) {
return R.error(500, "未查询到发票信息,请重新查验");
}
invoicesList = new ArrayList<>();
for (SdnyTDxSaleRecordInvoice item : saleRecordInvoices) {
SdnyTDxRecordInvoice invoice = JsonUtils.getInstance().parseObject(JSONObject.toJSONString(item), SdnyTDxRecordInvoice.class);
invoicesList.add(invoice);
}
} }
if (invoicesList.size() != uuidList.size()) { if (invoicesList.size() != uuidList.size()) {
StringBuffer msg = new StringBuffer(); StringBuffer msg = new StringBuffer();
@ -88,7 +98,17 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
detailQueryWrapper.in("uuid", uuidList); detailQueryWrapper.in("uuid", uuidList);
List<SdnyTDxRecordInvoiceDetail> detailList = detailDao.selectList(detailQueryWrapper); List<SdnyTDxRecordInvoiceDetail> detailList = detailDao.selectList(detailQueryWrapper);
if (detailList == null || detailList.size() == 0) { if (detailList == null || detailList.size() == 0) {
return R.error(500,"未查询到发票明细信息,请重新查验"); QueryWrapper<SdnyTDxRecordInvoiceDetailSales> salesQueryWrapper = new QueryWrapper<>();
salesQueryWrapper.in("uuid", uuidList);
List<SdnyTDxRecordInvoiceDetailSales> salesDetailList = detailSalesDao.selectList(salesQueryWrapper);
if (salesDetailList == null || salesDetailList.size() == 0) {
return R.error(500,"未查询到发票明细信息,请重新查验");
}
detailList = new ArrayList<>();
for (SdnyTDxRecordInvoiceDetailSales item : salesDetailList) {
SdnyTDxRecordInvoiceDetail detail = JsonUtils.getInstance().parseObject(JSONObject.toJSONString(item), SdnyTDxRecordInvoiceDetail.class);
detailList.add(detail);
}
} }
Map<String, List<SdnyTDxRecordInvoiceDetail>> detailiMap = new HashMap<>(); Map<String, List<SdnyTDxRecordInvoiceDetail>> detailiMap = new HashMap<>();
detailList.stream().forEach(item -> { detailList.stream().forEach(item -> {
@ -162,6 +182,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
saleRecordInvoice.setSort(paramsInvoiceMap.get(invoice.getUuid()).getSort()); saleRecordInvoice.setSort(paramsInvoiceMap.get(invoice.getUuid()).getSort());
saleRecordInvoice.setFileId(paramsInvoiceMap.get(invoice.getUuid()).getFileId()); saleRecordInvoice.setFileId(paramsInvoiceMap.get(invoice.getUuid()).getFileId());
saleRecordInvoice.setFileName(paramsInvoiceMap.get(invoice.getUuid()).getFileName()); saleRecordInvoice.setFileName(paramsInvoiceMap.get(invoice.getUuid()).getFileName());
saleRecordInvoice.setCheckDate(DateUtils.strToDate(paramsInvoiceMap.get(invoice.getUuid()).getCheckDate()));
salesInvoiceList.add(saleRecordInvoice); salesInvoiceList.add(saleRecordInvoice);
}); });
@ -249,7 +270,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
zdata.setZGXR(params.getJbrUserNum()); zdata.setZGXR(params.getJbrUserNum());
zdata.setZCYZT("1"); zdata.setZCYZT("1");
zdata.setZCYJG("查验成功"); zdata.setZCYJG("查验成功");
zdata.setZCYRQ(dt); zdata.setZCYRQ(DateUtils.dateToStr(item.getCheckDate(),"yyyy-MM-dd HH:mm:ss"));
zdata.setZBHSJE_Y(item.getInvoiceAmount().toPlainString()); zdata.setZBHSJE_Y(item.getInvoiceAmount().toPlainString());
zdata.setZZSE_Y(item.getTaxAmount().toPlainString()); zdata.setZZSE_Y(item.getTaxAmount().toPlainString());
zdata.setZHSJE_Y(item.getTotalAmount().toPlainString()); zdata.setZHSJE_Y(item.getTotalAmount().toPlainString());
@ -317,7 +338,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
param.put("IS_INPUT", request); param.put("IS_INPUT", request);
//推送到SAP //推送到SAP
log.info("推送山能数据:{}", JSONObject.toJSONString(param)); log.info("推送山能数据:{}", JSONObject.toJSONString(param));
String result = snPushCheckRecordService.pushCheckResultToSAP(param.toJSONString()); String result = snPushCheckRecordService.pushCheckResultToSAP(JSONObject.toJSONString(param));
JSONObject rs = JSONObject.parseObject(result).getJSONObject("ES_OUTPUT"); JSONObject rs = JSONObject.parseObject(result).getJSONObject("ES_OUTPUT");
if (!"S".equals(rs.getString("ZTYPE"))) { if (!"S".equals(rs.getString("ZTYPE"))) {
return R.error(500,rs.getString("ZMESSAGE")); return R.error(500,rs.getString("ZMESSAGE"));

@ -10,4 +10,6 @@ ALTER TABLE `dxhy_tertiary`.`t_dx_sale_record_invoice` MODIFY COLUMN `image_id`
ALTER TABLE `dxhy_tertiary`.`t_dx_sale_record_invoice` MODIFY COLUMN `sn_voucher_number` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '山能凭证号' AFTER `account_period`; ALTER TABLE `dxhy_tertiary`.`t_dx_sale_record_invoice` MODIFY COLUMN `sn_voucher_number` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '山能凭证号' AFTER `account_period`;
ALTER TABLE `dxhy_detail`.`t_dx_record_invoice_detail_sales` MODIFY COLUMN `tax_code` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '税码' AFTER `kce`; ALTER TABLE `dxhy_tertiary`.`t_dx_record_invoice_detail_sales` MODIFY COLUMN `tax_code` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '税码' AFTER `kce`;
ALTER TABLE dxhy_tertiary.t_dx_sale_record_invoice ADD INDEX image_id(image_id);

Loading…
Cancel
Save