Merge remote-tracking branch 'origin/dev-v6.0.1' into dev-v6.0.1

release
yefei 2 years ago
commit aa1bdafa76
  1. 59
      dxhy-erp/src/main/java/com/dxhy/erp/controller/InterfaceController.java
  2. 4
      dxhy-erp/src/main/java/com/dxhy/erp/dao/TdxRecordInvoiceDao.java
  3. 25
      dxhy-erp/src/main/java/com/dxhy/erp/model/BaseReceiptOutCancelEditReqVO.java
  4. 11
      dxhy-erp/src/main/java/com/dxhy/erp/service/BaseIReceiptInvoiceService.java
  5. 92
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/BaseIReceiptInvoiceServiceImpl.java
  6. 4
      dxhy-erp/src/main/java/com/dxhy/erp/service/impl/ReceiptOutServiceImpl.java
  7. 6
      dxhy-erp/src/main/resources/mapper/TdxRecordInvoiceDao.xml

@ -108,6 +108,8 @@ public class InterfaceController extends AbstractController {
private VoucherRecordService voucherRecordService;
@Value("${erp.ipUrl}")
private String ipUrl;
@Resource
private BaseIReceiptInvoiceService baseIReceiptInvoiceService;
/**
*
@ -1217,25 +1219,50 @@ public class InterfaceController extends AbstractController {
public String transferOut(ErpInvoiceData erpInvoiceData){
String zdata = erpInvoiceData.getIS_INPUT().getZDATA();
List<Map> list = JSON.parseArray(zdata, Map.class);
Map<String, Object> 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<String,Object> 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());

@ -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<TdxRecordInvoice> {
void updateInvoiceAccount(TdxInvoiceAccount invoice);
void saveInvoiceAccount(TdxInvoiceAccount invoice);
void deleteByuuid(@Param("uuids") String[] uuids);
}

@ -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;
}

@ -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<BaseTDxRecordInvoice> condEntity);
/**
* 取消已转出进项税请求确认
*
* @param reqVO
* 请求参数
* @return 返回结果
*/
String cancelOut(BaseReceiptOutCancelEditReqVO reqVO);
}

@ -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<BaseTDxRecordInvoiceDao, BaseTDxRecordInvoice> implements BaseIReceiptInvoiceService {
@Resource
private TdxRecordInvoiceDao tdxRecordInvoiceDao;
@Override
public List<BaseTDxRecordInvoice> selectByUuids(String[] uuids) {
QueryWrapper<BaseTDxRecordInvoice> queryWrapper = new QueryWrapper<>();
@ -42,4 +53,85 @@ public class BaseIReceiptInvoiceServiceImpl extends MpBaseServiceImpl<BaseTDxRec
super.succResult(new JSONObject());
}
/**
* 取消已转出进项税 请求确认
*
* @param reqVO 请求参数
* @return 返回结果
*/
@Override
public String cancelOut(BaseReceiptOutCancelEditReqVO reqVO) {
DynamicContextHolder.push("business"+ DbConstant.BUSINESS_WRITE);
String[] uuids = reqVO.getPrimaryKey().split(",");
excuteCancelWrite(uuids);
return "取消转出成功";
}
/**
* 数据库操作
*
* @param uuids 请求参数
*/
@Transactional(rollbackFor = Exception.class)
public void excuteCancelWrite(String[] uuids) {
// 批量将状态设置为 已取消
updateBatchByUuid(uuids);
// 批量revert抵账表 转出时候更新的数据
updatePartInvoiceForCancel(uuids);
}
/**
* 批量将 进项税 明细转为已取消
*
* @param uuids 请求参数
*/
private void updateBatchByUuid(String[] uuids) {
BaseTDxRecordInvoiceOut entity = new BaseTDxRecordInvoiceOut();
// 已取消
entity.setIsCancel(JxszcCancelEnum.YQX.getQxztDm());
UpdateWrapper<BaseTDxRecordInvoiceOut> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().in(BaseTDxRecordInvoiceOut::getUuid, uuids);
tdxRecordInvoiceDao.deleteByuuid(uuids);
}
/**
* 取消进项税转出批量revert抵账表已经更新的字段
*
* @param ids 请求参数
*/
private void updatePartInvoiceForCancel(String[] ids) {
QueryWrapper<BaseTDxRecordInvoice> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(BaseTDxRecordInvoice::getUuid, ids);
List<BaseTDxRecordInvoice> 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<BaseTDxRecordInvoice> 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);
}
}
}

@ -132,7 +132,9 @@ public class ReceiptOutServiceImpl extends MpBaseServiceImpl<BaseReceiptOutDao,
condRecord.setOutInvoiceAmout(record.getTotalAmount());
// 税款所属期
condRecord.setOutBelongDate(condVO.getOutTaxPeriod());
if(record.getTaxAmount().compareTo(new BigDecimal(condVO.getOutTax()))==0){
condRecord.setOutStatus("2");
}
/*全部转出 */
if (JxszcZtEnum.QBZC.getZcztDm().equals(condVO.getOutStatus())) {
// 转出金额

@ -206,6 +206,12 @@
STR_TO_DATE(#{invoiceDate}, '%Y-%m-%d %H'), #{uuid},
now(), #{pzh}, #{bxr}, #{checkCode}, #{isSign})
</insert>
<delete id="deleteByuuid" parameterType="string">
delete from t_dx_record_invoice_out where uuid in
<foreach collection="uuids" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</delete>
<select id="selectByCollect" resultType="com.dxhy.erp.entity.TdxRecordInvoice" databaseId="mysql">

Loading…
Cancel
Save