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<>();
saleDetailWrapper.eq("invoice_no", invoiceNo);
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);
JSONArray saleDetail = (JSONArray) JSONObject.toJSON(recordInvoiceSaleDetailModel);
if(baseTDxRecordInvoiceDetail!= null && baseTDxRecordInvoiceDetail.size() > 0){
saleDetail = (JSONArray) JSONObject.toJSON(baseTDxRecordInvoiceDetail);
}
convertToResult(checkInvoice, saleDetail);
data.put("data", checkInvoice);
@ -685,7 +706,7 @@ public class SDNYMainProcessController extends AbstractController {
}
} else {
//其他类发票,直接入库
R data = new R(1000, "default success");
R data = new R(500, "default success");
if (checkInvoiceResult != null && !checkInvoiceResult.isEmpty()) {
log.info("其他类发票,不做查验,直接入库");
data.put("message", "success");
@ -1400,7 +1421,7 @@ public class SDNYMainProcessController extends AbstractController {
* @param params
* @return
*/
//@PostMapping("/imageSubmitSalesInvoice")
@PostMapping("/imageSubmitSalesInvoice")
@ResponseBody
@SysLog("影像系统提交销项发票")
public ResponseEntity<String> imageSubmitSalesInvoice(@RequestBody SNRequestObject params) {

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

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

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

@ -30,7 +30,7 @@ import java.util.*;
import java.util.stream.Collectors;
@Service
//@Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
@Slf4j
public class ImageSubmitServiceImpl implements ImageSubmitService {
@ -69,7 +69,17 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
queryWrapper.in("uuid", uuidList);
List<SdnyTDxRecordInvoice> invoicesList = tdxRecordInvoiceDao.selectList(queryWrapper);
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()) {
StringBuffer msg = new StringBuffer();
@ -88,7 +98,17 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
detailQueryWrapper.in("uuid", uuidList);
List<SdnyTDxRecordInvoiceDetail> detailList = detailDao.selectList(detailQueryWrapper);
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<>();
detailList.stream().forEach(item -> {
@ -162,6 +182,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
saleRecordInvoice.setSort(paramsInvoiceMap.get(invoice.getUuid()).getSort());
saleRecordInvoice.setFileId(paramsInvoiceMap.get(invoice.getUuid()).getFileId());
saleRecordInvoice.setFileName(paramsInvoiceMap.get(invoice.getUuid()).getFileName());
saleRecordInvoice.setCheckDate(DateUtils.strToDate(paramsInvoiceMap.get(invoice.getUuid()).getCheckDate()));
salesInvoiceList.add(saleRecordInvoice);
});
@ -249,7 +270,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
zdata.setZGXR(params.getJbrUserNum());
zdata.setZCYZT("1");
zdata.setZCYJG("查验成功");
zdata.setZCYRQ(dt);
zdata.setZCYRQ(DateUtils.dateToStr(item.getCheckDate(),"yyyy-MM-dd HH:mm:ss"));
zdata.setZBHSJE_Y(item.getInvoiceAmount().toPlainString());
zdata.setZZSE_Y(item.getTaxAmount().toPlainString());
zdata.setZHSJE_Y(item.getTotalAmount().toPlainString());
@ -317,7 +338,7 @@ public class ImageSubmitServiceImpl implements ImageSubmitService {
param.put("IS_INPUT", request);
//推送到SAP
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");
if (!"S".equals(rs.getString("ZTYPE"))) {
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_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