diff --git a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java index 74c4d2fa..e80b0e81 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java +++ b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java @@ -423,6 +423,10 @@ public class BaseInvoiceController extends AbstractController { pramsMap.put("paymentDateEnd", map.get("paymentDateEnd")); pramsMap.put("settlementNo", map.get("settlementNo")); pramsMap.put("voucherNumber", map.get("voucherNumber")); + pramsMap.put("snVoucherNumber", map.get("snVoucherNumber")); + pramsMap.put("postingTime", map.get("postingTime")); + pramsMap.put("imageId", map.get("imageId")); + pramsMap.put("accountPeriod", map.get("accountPeriod")); String inAccountStatus = (String)map.get("inAccountStatus"); if (sfkrz != null) { @@ -628,6 +632,7 @@ public class BaseInvoiceController extends AbstractController { return ResponseEntity.ok(R.error("签收状态不能为空!")); } String qsflag = getUserInfo().getQsStatus(); + log.info("签收开关qsflag:{}",qsflag); if ("1".equals(qsflag)) { pramsMap.put("qszt", "1"); } diff --git a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java index 4574ac2a..a95d93f5 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java +++ b/dxhy-base/src/main/java/com/dxhy/base/controller/BaseRzTDxRecordInvoiceController.java @@ -467,6 +467,7 @@ public class BaseRzTDxRecordInvoiceController extends AbstractController { pramsMap.put("gfsh", gfshList); String qsflag = getUserInfo().getQsStatus(); pramsMap.put("qsflag", qsflag); + log.info("签收认证状态为:{}",qsflag); if (!StringHelper.isBlank(datalist)) { pramsMap.put("datalist", datalist); diff --git a/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java b/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java index f0ad784f..324d8afd 100644 --- a/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java +++ b/dxhy-base/src/main/java/com/dxhy/base/service/invoicecheck/BaseInvoiceManualCheckServiceImpl.java @@ -14,6 +14,7 @@ import java.util.Map; import javax.annotation.Resource; import com.dxhy.common.constant.DictConstant; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.alibaba.fastjson.JSONObject; @@ -49,6 +50,7 @@ import com.github.pagehelper.PageInfo; * @version 1.0 */ @SuppressWarnings({"AlibabaLowerCamelCaseVariableNaming", "AlibabaUndefineMagicConstant", "AlibabaMethodTooLong"}) +@Slf4j @Service("baseInvoiceManualCheckService") public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl implements BaseInvoiceManualCheckService { @@ -204,10 +206,12 @@ public class BaseInvoiceManualCheckServiceImpl extends MpBaseServiceImpl query = new QueryWrapper<>(); query.eq("reason_code", record.getOutReason()); BaseTDxOutReason reason = baseTDxOutReasonDao.selectOne(query); - vo.setReason(reason.getOutReason()); + if (reason != null) + vo.setReason(reason.getOutReason()); return vo; } @@ -643,7 +645,8 @@ public class BaseReceiptOutServiceImpl extends MpBaseServiceImpl query = new QueryWrapper<>(); query.eq("reason_code", record.getOutReason()); BaseTDxOutReason reason = baseTDxOutReasonDao.selectOne(query); - vo.setReason(reason.getOutReason()); + if (reason != null) + vo.setReason(reason.getOutReason()); // 认证日期 string类型的长日期转为string类型的短日期 String certDate = record.getCertDate(); Date date = new Date(); diff --git a/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml b/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml index 6dfa02e8..1afb3819 100644 --- a/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml +++ b/dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml @@ -64,7 +64,7 @@ from t_dx_record_invoice t left join t_dx_tax_current c on t.gf_tax_no = c.taxno left join t_dx_dk_count d on c.taxno = d.taxno and c.current_tax_period = d.skssq WHERE date_format(t.invoice_date,'%Y-%m-%d') between #{kpksrq} and #{kpjsrq} - and (t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08')) + and t.invoice_type in('01','03','08','14','31','283','161','183','185') or (t.invoice_type ='32' and t.lq_tdyslxDm='08') and t.rzh_yesorno = '0' and t.auth_status in('0','5','6') and t.export_mark = '0' @@ -110,7 +110,7 @@ and t.payment_status = #{paymentStatus} - and (t.invoice_type = '14' or (t.invoice_type = '32' and t.lq_tdyslxDm='08') ) + and t.invoice_type = '14' or (t.invoice_type = '32' and t.lq_tdyslxDm='08') and t.invoice_type = #{invoiceType} @@ -171,6 +171,18 @@ order by t.invoice_date desc + + and t.sn_voucher_number = #{snVoucherNumber} + + + and t.postingTime = #{postingTime} + + + and t.image_id = #{imageId} + + + and t.account_period = #{accountPeriod} + + SELECT + id, + date_format(create_time,'%Y-%m-%d %H:%i:%S') create_time, + date_format(update_time,'%Y-%m-%d %H:%i:%S') update_time, + user_account, + operation_status, + title, + content, + url + FROM + sys_messagecontrol + WHERE + user_account = #{userName} + + and operation_status = #{operationStatus} + + ORDER BY operation_status ASC,update_time desc + + + + + update sys_messagecontrol + set operation_status=1, + update_time=#{updateTime} + where id = #{id} + + + update sys_messagecontrol + set operation_status=1, + update_time=#{updateTime} + where user_account = #{userAccount} + and operation_status = 0 + + diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java index 46b9ccc1..8f3e5dfa 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java @@ -108,6 +108,8 @@ public class InterfaceController extends AbstractController { private VoucherRecordService voucherRecordService; @Value("${erp.ipUrl}") private String ipUrl; + @Resource + private BaseIReceiptInvoiceService baseIReceiptInvoiceService; /** * @@ -712,6 +714,16 @@ public class InterfaceController extends AbstractController { returnResult = invoicePoolService.salsePush(globalInfo, requestParam, request, response, authorize); break; // 接口编码不存在 + + // 获取单张发票 + case "INVOICE.SINGLEINVOICECHECK": + returnResult = gatherService.singleInvoiceChenck(globalInfo, requestParam, request, response, authorize); + break; + // 获取单张发票 + case "INVOICE.SYNCINVOICEINFO": + returnResult = gatherService.syncInvoiceInfo(globalInfo, requestParam, request, response, authorize); + break; + default: returnResult = authStatusService.getInterfaceCodeError(globalInfo); break; @@ -1207,25 +1219,50 @@ public class InterfaceController extends AbstractController { public String transferOut(ErpInvoiceData erpInvoiceData){ String zdata = erpInvoiceData.getIS_INPUT().getZDATA(); List list = JSON.parseArray(zdata, Map.class); - Map map = list.get(0); - String invoiceCode =(String) map.get("ZFPDM"); - String invoiceNo = (String)map.get("ZFPHM"); - BigDecimal bigDecimal = (BigDecimal) map.get("JXSZC"); - String outReason = (String)map.get("ZZCYY"); - String outTaxPeriod = (String)map.get("BUDAT"); - String uuid = invoiceCode+invoiceNo; - BaseInvoiceEditVO baseInvoiceEditVO = new BaseInvoiceEditVO(); - baseInvoiceEditVO.setPrimaryKey(uuid); - baseInvoiceEditVO.setOutReason(outReason); - baseInvoiceEditVO.setOutTax(bigDecimal.toString()); - baseInvoiceEditVO.setOutStatus("1"); - baseInvoiceEditVO.setOutTaxPeriod(outTaxPeriod); - UserInfo userInfo = new UserInfo(); + + try{ - String transfer = iReceiptOutService.transfer(erpInvoiceData,baseInvoiceEditVO, userInfo); + /** + * 根据金额判断是转入还是转出 + * + * + */ + String transfer =""; + for(Map map:list) { + String invoiceCode =(String) map.get("ZFPDM"); + String invoiceNo = (String)map.get("ZFPHM"); + BigDecimal bigDecimal = (BigDecimal) map.get("JXSZC"); + String outReason = (String)map.get("ZZCYY"); + String outTaxPeriod = (String)map.get("BUDAT"); + String uuid = invoiceCode+invoiceNo; + BaseInvoiceEditVO baseInvoiceEditVO = new BaseInvoiceEditVO(); + baseInvoiceEditVO.setPrimaryKey(uuid); + baseInvoiceEditVO.setOutReason(outReason); + baseInvoiceEditVO.setOutTax(bigDecimal.toString()); + baseInvoiceEditVO.setOutStatus("1"); + baseInvoiceEditVO.setOutTaxPeriod(outTaxPeriod); + UserInfo userInfo = new UserInfo(); + if(bigDecimal.compareTo(BigDecimal.ZERO)==1){ + transfer = iReceiptOutService.transfer(erpInvoiceData,baseInvoiceEditVO, userInfo); + }else { + BaseReceiptOutCancelEditReqVO baseReceiptOutCancelEditReqVO = new BaseReceiptOutCancelEditReqVO(); + baseReceiptOutCancelEditReqVO.setPrimaryKey(uuid); + String s = baseIReceiptInvoiceService.cancelOut(baseReceiptOutCancelEditReqVO); + if(s.equals("取消转出成功")){ + OutPut outPut = new OutPut(); + EsOutPutResp es = new EsOutPutResp(); + es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); + es.setBSKEY(erpInvoiceData.getIS_INPUT().getBSKEY()); + es.setZTYPE("S"); + es.setZMESSAGE("处理成功"); + outPut.setES_OUTPUT(es); + transfer = JsonUtils.getInstance().toJsonString(outPut); + } + } + } return transfer; }catch (Exception e){ - log.info(e.getMessage()); + e.printStackTrace(); OutPut outPut = new OutPut(); EsOutPutResp es = new EsOutPutResp(); es.setSAPKEY(erpInvoiceData.getIS_INPUT().getSAPKEY()); diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java index 03debbb8..729e712f 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java @@ -3,6 +3,7 @@ package com.dxhy.erp.dao; import java.util.List; import java.util.Map; +import com.dxhy.erp.entity.BaseTDxRecordInvoice; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -183,4 +184,7 @@ public interface TdxRecordInvoiceDao extends BaseMapper { void updateInvoiceAccount(TdxInvoiceAccount invoice); void saveInvoiceAccount(TdxInvoiceAccount invoice); + + void deleteByuuid(@Param("uuids") String[] uuids); + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java b/dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java new file mode 100644 index 00000000..49c160f2 --- /dev/null +++ b/dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java @@ -0,0 +1,25 @@ +package com.dxhy.erp.model; + +import com.dxhy.common.vo.UserInfo; +import lombok.Data; + +/** + * @author peipei.li + * @date 2019-05-15 取消已转出进项税请求req + */ +@Data +public class BaseReceiptOutCancelEditReqVO { + /** + * uuid,多个以英文逗号分隔,结尾不加分号 + */ + private String primaryKey; + + /** + * 业务参数 + */ + private String businessCode; + /** + * + */ + private UserInfo userInfo; +} diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java index 0888c4a0..b040667f 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java @@ -2,6 +2,7 @@ package com.dxhy.erp.service; import com.dxhy.erp.entity.BaseTDxRecordInvoice; +import com.dxhy.erp.model.BaseReceiptOutCancelEditReqVO; import java.util.List; @@ -22,4 +23,14 @@ public interface BaseIReceiptInvoiceService { */ void updateBatch(List condEntity); + /** + * 取消已转出进项税,请求确认 + * + * @param reqVO + * 请求参数 + * @return 返回结果 + */ + String cancelOut(BaseReceiptOutCancelEditReqVO reqVO); + + } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java index f501dec6..016e7597 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java @@ -4,12 +4,21 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.dxhy.common.constant.DbConstant; +import com.dxhy.common.datasource.config.DynamicContextHolder; +import com.dxhy.common.enums.JxszcCancelEnum; +import com.dxhy.common.enums.JxszcZtEnum; import com.dxhy.common.service.impl.MpBaseServiceImpl; import com.dxhy.erp.dao.BaseTDxRecordInvoiceDao; +import com.dxhy.erp.dao.TdxRecordInvoiceDao; import com.dxhy.erp.entity.BaseTDxRecordInvoice; +import com.dxhy.erp.entity.BaseTDxRecordInvoiceOut; +import com.dxhy.erp.model.BaseReceiptOutCancelEditReqVO; import com.dxhy.erp.service.BaseIReceiptInvoiceService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; /** @@ -24,6 +33,8 @@ import java.util.List; @SuppressWarnings("AlibabaUndefineMagicConstant") @Service("baseIReceiptInvoiceService") public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl implements BaseIReceiptInvoiceService { + @Resource + private TdxRecordInvoiceDao tdxRecordInvoiceDao; @Override public List selectByUuids(String[] uuids) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -42,4 +53,85 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl updateWrapper = new UpdateWrapper<>(); + updateWrapper.lambda().in(BaseTDxRecordInvoiceOut::getUuid, uuids); + tdxRecordInvoiceDao.deleteByuuid(uuids); + } + /** + * 取消进项税转出,批量revert抵账表已经更新的字段 + * + * @param ids 请求参数 + */ + private void updatePartInvoiceForCancel(String[] ids) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(BaseTDxRecordInvoice::getUuid, ids); + List list = super.list(queryWrapper); + for (BaseTDxRecordInvoice condRecord : list) { + // 转出状态 revert为未转出 + condRecord.setOutStatus(JxszcZtEnum.WZC.getZcztDm()); + // 转出原因 + condRecord.setOutReason(null); + // 备注 + condRecord.setOutRemark(null); + // 转出日期 + condRecord.setOutDate(null); + // 转出人 + condRecord.setOutBy(null); + // 转出金额 + condRecord.setOutInvoiceAmout(null); + // 转出税额 + condRecord.setOutTaxAmount(null); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("out_status",condRecord.getOutStatus()); + updateWrapper.set("out_reason",condRecord.getOutReason()); + updateWrapper.set("out_date",condRecord.getOutDate()); + updateWrapper.set("out_by",condRecord.getOutBy()); + updateWrapper.set("out_invoice_amout",condRecord.getOutInvoiceAmout()); + updateWrapper.set("out_tax_amount",condRecord.getOutTaxAmount()); + updateWrapper.eq("uuid",condRecord.getUuid()); + super.baseMapper.update(null,updateWrapper); + + } + + } } diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java index 7acf1ec0..56402633 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java @@ -132,7 +132,9 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl + + delete from t_dx_record_invoice_out where uuid in + + #{item} + +