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..c3cc9535 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; /** * @@ -1207,25 +1209,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} + +