|
|
@@ -7,8 +7,10 @@ import com.usoftchina.saas.account.api.CompanyApi;
|
|
|
import com.usoftchina.saas.account.dto.CompanyDTO;
|
|
|
import com.usoftchina.saas.base.Result;
|
|
|
import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
|
|
|
+import com.usoftchina.saas.commons.api.ConfigsApi;
|
|
|
import com.usoftchina.saas.commons.api.MaxnumberService;
|
|
|
import com.usoftchina.saas.commons.api.MessageLogService;
|
|
|
+import com.usoftchina.saas.commons.cache.ConfigsCache;
|
|
|
import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
|
|
|
import com.usoftchina.saas.commons.dto.DocBaseDTO;
|
|
|
import com.usoftchina.saas.commons.dto.ListReqDTO;
|
|
|
@@ -21,10 +23,8 @@ import com.usoftchina.saas.context.BaseContextHolder;
|
|
|
import com.usoftchina.saas.document.dto.VendorDTO;
|
|
|
import com.usoftchina.saas.document.dto.VendorListDTO;
|
|
|
import com.usoftchina.saas.document.entities.*;
|
|
|
-import com.usoftchina.saas.document.mapper.DataImportMapper;
|
|
|
-import com.usoftchina.saas.document.mapper.SubledgerMapper;
|
|
|
-import com.usoftchina.saas.document.mapper.VendorMapper;
|
|
|
-import com.usoftchina.saas.document.mapper.VendorcontactMapper;
|
|
|
+import com.usoftchina.saas.document.mapper.*;
|
|
|
+import com.usoftchina.saas.document.service.VendApamountService;
|
|
|
import com.usoftchina.saas.document.service.VendorService;
|
|
|
import com.usoftchina.saas.document.service.VendorkindService;
|
|
|
import com.usoftchina.saas.exception.BizException;
|
|
|
@@ -69,6 +69,12 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
private VendorkindService vendorkindService;
|
|
|
@Autowired
|
|
|
private CompanyApi companyApi;
|
|
|
+ @Autowired
|
|
|
+ private ConfigsApi configsApi;
|
|
|
+ @Autowired
|
|
|
+ private VendApamountService vendApamountService;
|
|
|
+ @Autowired
|
|
|
+ private VendApamountMapper vendApamountMapper;
|
|
|
@Value("${b2b.baseUrl.common}")
|
|
|
private String b2bUrl;
|
|
|
|
|
|
@@ -153,28 +159,11 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
main.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
List<Vendorcontact> items = vendorListDTO.getItems();
|
|
|
String ve_code = main.getVe_code().trim().toUpperCase();
|
|
|
-
|
|
|
- //获取已结账的期间
|
|
|
- String YM = subledgerMapper.selectUnPeriod(companyId);
|
|
|
- if(YM==null || YM.equals("")){
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
|
|
|
- YM = simpleDateFormat.format(main.getVe_begindate());
|
|
|
- }else{
|
|
|
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMM");
|
|
|
- String beginDate = simpleDateFormat.format(main.getVe_begindate());
|
|
|
- if(Integer.valueOf(YM)>Integer.valueOf(beginDate)){
|
|
|
- int code = BizExceptionCode.LIMIT_PERIOD_VENDOR.getCode();
|
|
|
- String mes = String.format(BizExceptionCode.LIMIT_PERIOD_VENDOR.getMessage(),YM);
|
|
|
- throw new BizException(code , mes);
|
|
|
- }
|
|
|
- YM = beginDate;
|
|
|
- }
|
|
|
ve_code = RegexpUtils.replaceSpecCharacter(ve_code);
|
|
|
if (vendorListDTO.isCodeModified()) {
|
|
|
ve_code = pushMaxnubmer(ve_code, main.getId());
|
|
|
}
|
|
|
- //String code = pushMaxnubmer(ve_code, main.getId());
|
|
|
- if(main.getId() == 0){
|
|
|
+ if(main.getId() == 0){//保存
|
|
|
int count = getMapper().getCountByCode(ve_code, companyId);
|
|
|
if(count > 0){
|
|
|
throw new BizException(BizExceptionCode.REPEAT_CODE);
|
|
|
@@ -185,12 +174,6 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
}
|
|
|
//保存主表信息
|
|
|
main.setVe_code(ve_code);
|
|
|
- //更新应付款余额
|
|
|
- Double beginapamount = main.getVe_beginapamount()==null ? new Double(0):main.getVe_beginapamount();
|
|
|
- Double beginprepayamount = main.getVe_beginprepayamount()==null ? new Double(0):main.getVe_beginprepayamount();
|
|
|
- Double payamount = main.getVe_payamount()==null? new Double(0):main.getVe_payamount();
|
|
|
- Double preamount = main.getVe_preamount()==null? new Double(0):main.getVe_preamount();
|
|
|
- main.setVe_leftamount(beginapamount-beginprepayamount+payamount-preamount);
|
|
|
//更新录入人录入时间ID
|
|
|
main.setCreatorId(BaseContextHolder.getUserId());
|
|
|
getMapper().insertSelective(main);
|
|
|
@@ -201,12 +184,25 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
item.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
item.setCreatorId(BaseContextHolder.getUserId());
|
|
|
item.setCreateTime(new Date());
|
|
|
-
|
|
|
}
|
|
|
//保存明细表信息
|
|
|
if (items.size() > 0){
|
|
|
vendorcontactMapper.batchInsert(items);
|
|
|
}
|
|
|
+ if( 1==2 ){//单一币别更新应付款余额
|
|
|
+ Double beginapamount = main.getVe_beginapamount()==null ? new Double(0):main.getVe_beginapamount();
|
|
|
+ Double beginprepayamount = main.getVe_beginprepayamount()==null ? new Double(0):main.getVe_beginprepayamount();
|
|
|
+ if(beginapamount>0 || beginprepayamount>0){
|
|
|
+ VendApamount vendApamount=new VendApamount();
|
|
|
+ vendApamount.setId(new Long(0));
|
|
|
+ vendApamount.setVa_beginapamount(beginapamount);
|
|
|
+ vendApamount.setVa_beginprepayamount(beginprepayamount);
|
|
|
+ vendApamount.setVa_currency(configsApi.getConfigDataBycode("defaultCurrency"));
|
|
|
+ vendApamount.setVa_vendid(main.getId());
|
|
|
+ vendApamount.setVa_vendcode(main.getVe_code());
|
|
|
+ vendApamountService.saveData(vendApamount);
|
|
|
+ }
|
|
|
+ }
|
|
|
//记录LOG
|
|
|
messageLogService.save(generateMsgObj(mainId, ve_code));
|
|
|
}else{
|
|
|
@@ -226,7 +222,6 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
throw new BizException(BizExceptionCode.REPEAT_NAME);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//有关联时不可修改名称编号
|
|
|
Map<String, Object> map = new HashMap<String, Object>();
|
|
|
map.put("v_id",main.getId());
|
|
|
@@ -245,7 +240,6 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
throw new BizException(BizExceptionCode.BIZ_RELUPDATE_AMOUNT);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//检查期初日期是否已结转
|
|
|
count = getMapper().validFinish(mainId,companyId);
|
|
|
if (count>0) {
|
|
|
@@ -255,7 +249,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
//期初预收
|
|
|
main.setVe_beginprepayamount(vendortpl.getVe_beginprepayamount());
|
|
|
}
|
|
|
-
|
|
|
+ if( 1==2 ){//单一币别更新应付款余额
|
|
|
+ }
|
|
|
//启用B2B对账
|
|
|
if (StringUtils.isEmpty(oldVendor.getVe_uu()) && !StringUtils.isEmpty(main.getVe_uu())){
|
|
|
try {
|
|
|
@@ -264,7 +259,6 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
LOGGER.info("请求B2B对账启用接口失败!, time={}", DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
getMapper().updateByPrimaryKeySelective(main);
|
|
|
if (items.size() > 0) {
|
|
|
List<Vendorcontact> updateItems = new ArrayList<Vendorcontact>();
|
|
|
@@ -293,51 +287,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
//记录LOG
|
|
|
messageLogService.update(generateMsgObj(main.getId(), ve_code));
|
|
|
}
|
|
|
-
|
|
|
- //更新应收款余额
|
|
|
- Double ve_leftamount = (main.getVe_beginapamount() == null ? new Double(0) : main.getVe_beginapamount())
|
|
|
- - (main.getVe_beginprepayamount() == null ? new Double(0) : main.getVe_beginprepayamount())
|
|
|
- + (main.getVe_payamount() == null ? new Double(0) : main.getVe_payamount())
|
|
|
- - (main.getVe_preamount() == null ? new Double(0) : main.getVe_preamount());
|
|
|
- main.setVe_leftamount(ve_leftamount);
|
|
|
- getMapper().updateByPrimaryKeySelective(main);
|
|
|
-
|
|
|
- //插入中间表
|
|
|
- Double amount = (main.getVe_beginapamount() == null ? new Double(0) : main.getVe_beginapamount())
|
|
|
- - (main.getVe_beginprepayamount() == null ? new Double(0) : main.getVe_beginprepayamount());
|
|
|
- Subledger subledger = new Subledger();
|
|
|
- subledger.setSl_code("期初余额");
|
|
|
- subledger.setSl_kind("期初余额");
|
|
|
- subledger.setSl_vendid(Math.toIntExact(main.getId()));
|
|
|
- subledger.setSl_custid(0);
|
|
|
- subledger.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
- subledger.setSl_date(DateUtils.getFirstDay(main.getVe_begindate()));
|
|
|
- subledger.setSl_ym(DateUtils.getYm(main.getVe_begindate()));
|
|
|
- subledger.setSl_currency(main.getVe_currency());
|
|
|
- if (amount > new Double(0)){
|
|
|
- subledger.setSl_preamount(new Double(0));
|
|
|
- subledger.setSl_amount(Math.abs(amount));
|
|
|
- }else {
|
|
|
- subledger.setSl_amount(new Double(0));
|
|
|
- subledger.setSl_preamount(Math.abs(amount));
|
|
|
- }
|
|
|
- subledger.setSl_orderamount(Math.abs(amount));
|
|
|
- subledger.setSl_namount((subledger.getSl_orderamount() == null ? new Double(0) : subledger.getSl_orderamount()) +
|
|
|
- (subledger.getSl_discount() == null ? new Double(0) : subledger.getSl_discount()) -
|
|
|
- (subledger.getSl_yamount() == null ? new Double(0) : subledger.getSl_yamount()));
|
|
|
- subledger.setCreateTime(new Date());
|
|
|
- subledger.setCreatorId(BaseContextHolder.getUserId());
|
|
|
- subledger.setCreatorName(BaseContextHolder.getUserName());
|
|
|
- Long sl_id = subledgerMapper.selectByKindCodeVendid("期初余额","期初余额",
|
|
|
- Math.toIntExact(main.getId()),BaseContextHolder.getCompanyId(),YM);
|
|
|
-
|
|
|
- subledger.setId(sl_id);
|
|
|
- if ( sl_id!=null && sl_id > 0 ) {
|
|
|
- subledgerMapper.updateByPrimaryKeySelective(subledger);
|
|
|
- }else {
|
|
|
- subledgerMapper.insertSelective(subledger);
|
|
|
- }
|
|
|
-
|
|
|
+ //更新供应商应付余额表供应商编号,名称.
|
|
|
+ vendApamountMapper.updateCodeAndNameByVendid(main.getId());
|
|
|
return generateMsgObj(main.getId(), ve_code);
|
|
|
}
|
|
|
|
|
|
@@ -386,6 +337,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
|
|
|
}else{
|
|
|
vendorcontactMapper.deleteByFK(id);
|
|
|
getMapper().deleteByPrimaryKey(id);
|
|
|
+ //删除期初设置
|
|
|
+ vendApamountMapper.deleteByVendid(id);
|
|
|
//删除中间表
|
|
|
subledgerMapper.deleteVendor("期初余额", "期初余额", Math.toIntExact(id));
|
|
|
//记录LOG
|