|
|
|
@ -1426,12 +1426,17 @@ if (pMap!=null&&pMap.size()>0){
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
ints.add(i);
|
|
|
|
|
|
|
|
|
|
errList.add(model);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ArrayList<PurchaseorderDTO> dtos = new ArrayList<>();
|
|
|
|
|
for (int i = 0; i < ints.size(); i++) {
|
|
|
|
|
Integer integer = ints.get(i);
|
|
|
|
|
dataList.remove(dataList.get(integer));
|
|
|
|
|
dtos.add(dataList.get(integer));
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < dtos.size(); i++) {
|
|
|
|
|
PurchaseorderDTO purchaseorderDTO = dtos.get(i);
|
|
|
|
|
dataList.remove(purchaseorderDTO);
|
|
|
|
|
}
|
|
|
|
|
BillRuleController bean = SpringContext.getBean(BillRuleController.class);
|
|
|
|
|
String str2="purchase";
|
|
|
|
@ -1449,138 +1454,140 @@ if (pMap!=null&&pMap.size()>0){
|
|
|
|
|
BigDecimal rateSum = new BigDecimal("0.00");
|
|
|
|
|
// advance_amount垫资金额:判断采购订单子表中有多少磅单是属于垫资的,找到之后将他们的【金额】进行汇总得到。
|
|
|
|
|
BigDecimal advanceSum = new BigDecimal("0.00");
|
|
|
|
|
|
|
|
|
|
// 合同id
|
|
|
|
|
String purchaseId = dataList.get(0).getPurchaseId();
|
|
|
|
|
LambdaQueryWrapper<ContractMEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
wrapper.eq(ContractMEntity::getContractType,"0");
|
|
|
|
|
wrapper.eq(ContractMEntity::getContractCode,purchaseId);
|
|
|
|
|
List<ContractMEntity> contractMEntities = contractMapper.selectList(wrapper);
|
|
|
|
|
if (contractMEntities!=null&&contractMEntities.size()>0){
|
|
|
|
|
// 采购合同
|
|
|
|
|
ContractMEntity contractMEntity = contractMEntities.get(0);
|
|
|
|
|
if (dataList.size()>0){
|
|
|
|
|
// 合同id
|
|
|
|
|
String purchaseId = dataList.get(0).getPurchaseId();
|
|
|
|
|
LambdaQueryWrapper<ContractMEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
wrapper.eq(ContractMEntity::getContractType,"0");
|
|
|
|
|
wrapper.eq(ContractMEntity::getContractCode,purchaseId);
|
|
|
|
|
List<ContractMEntity> contractMEntities = contractMapper.selectList(wrapper);
|
|
|
|
|
if (contractMEntities!=null&&contractMEntities.size()>0){
|
|
|
|
|
// 采购合同
|
|
|
|
|
ContractMEntity contractMEntity = contractMEntities.get(0);
|
|
|
|
|
//雪花算法获取采购订单id
|
|
|
|
|
Long aLong = new DefaultIdentifierGenerator().nextId(PurchaseorderitemEntity.class);
|
|
|
|
|
Long aLong = new DefaultIdentifierGenerator().nextId(PurchaseorderitemEntity.class);
|
|
|
|
|
|
|
|
|
|
//采购
|
|
|
|
|
for (int i = 0; i < dataList.size(); i++) {
|
|
|
|
|
for (int i = 0; i < dataList.size(); i++) {
|
|
|
|
|
|
|
|
|
|
PurchaseorderDTO model = dataList.get(i);
|
|
|
|
|
Purchaseorder_item0Entity item0 = new Purchaseorder_item0Entity();
|
|
|
|
|
Long aLong2 = new DefaultIdentifierGenerator().nextId(Purchaseorder_item0Entity.class);
|
|
|
|
|
PurchaseorderDTO model = dataList.get(i);
|
|
|
|
|
Purchaseorder_item0Entity item0 = new Purchaseorder_item0Entity();
|
|
|
|
|
Long aLong2 = new DefaultIdentifierGenerator().nextId(Purchaseorder_item0Entity.class);
|
|
|
|
|
// 雪花算法获取榜单id
|
|
|
|
|
Long aLong1 = new DefaultIdentifierGenerator().nextId(PoundlistEntity.class);
|
|
|
|
|
model.setId(aLong1.toString());
|
|
|
|
|
Long aLong1 = new DefaultIdentifierGenerator().nextId(PoundlistEntity.class);
|
|
|
|
|
model.setId(aLong1.toString());
|
|
|
|
|
// 设置id
|
|
|
|
|
item0.setId(aLong2.toString());
|
|
|
|
|
item0.setId(aLong2.toString());
|
|
|
|
|
// 主表Id
|
|
|
|
|
item0.setPurchaseorderId(aLong.toString());
|
|
|
|
|
item0.setPurchaseorderId(aLong.toString());
|
|
|
|
|
//poundlist_id磅单id:
|
|
|
|
|
item0.setPoundlistId(aLong1.toString());
|
|
|
|
|
item0.setPoundlistId(aLong1.toString());
|
|
|
|
|
//price单价:为execl中的采购单价
|
|
|
|
|
item0.setPrice(new BigDecimal(model.getPurchasePrice()));
|
|
|
|
|
item0.setPrice(new BigDecimal(model.getPurchasePrice()));
|
|
|
|
|
//settlement结算重量:为execl中的结算重量
|
|
|
|
|
item0.setSettlement(new BigDecimal(model.getSettlement()));
|
|
|
|
|
item0.setSettlement(new BigDecimal(model.getSettlement()));
|
|
|
|
|
//rate税率:默认为0 即13个点
|
|
|
|
|
item0.setRate("0");
|
|
|
|
|
item0.setRate("0");
|
|
|
|
|
//amount金额:price*settlement,保留6位小数
|
|
|
|
|
item0.setAmount(item0.getPrice().multiply(item0.getSettlement()).setScale(6,BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
item0.setAmount(item0.getPrice().multiply(item0.getSettlement()).setScale(6,BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
//not_amount不含税金额:price*settlement*(1 - 税率) 不含税价格为sum/1.13=price
|
|
|
|
|
item0.setNotAmount(item0.getAmount().divide(new BigDecimal(1+0.13)));
|
|
|
|
|
item0.setNotAmount(item0.getAmount().divide(new BigDecimal(1+0.13)));
|
|
|
|
|
//vehicle_id车辆id:磅单c表车辆id
|
|
|
|
|
item0.setVehicleId(model.getVehicleId());
|
|
|
|
|
item0.setVehicleId(model.getVehicleId());
|
|
|
|
|
//material_id物料id:磅单表物料id
|
|
|
|
|
item0.setMaterialId(model.getMaterialId());
|
|
|
|
|
item0.setMaterialId(model.getMaterialId());
|
|
|
|
|
//supplier_id供应商id:磅单表供应商id
|
|
|
|
|
item0.setSupplierId(contractMEntity.getCode());
|
|
|
|
|
item0.setSupplierId(contractMEntity.getCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//结算重量汇总到主表
|
|
|
|
|
settlementNum=settlementNum.add(item0.getSettlement());
|
|
|
|
|
settlementNum=settlementNum.add(item0.getSettlement());
|
|
|
|
|
//垫资金额
|
|
|
|
|
if (model.getAdvance().equals("是")){
|
|
|
|
|
advanceSum=advanceSum.add(item0.getSettlement());
|
|
|
|
|
}
|
|
|
|
|
if (model.getAdvance().equals("是")){
|
|
|
|
|
advanceSum=advanceSum.add(item0.getSettlement());
|
|
|
|
|
}
|
|
|
|
|
//金额
|
|
|
|
|
amoutSum=amoutSum.add(item0.getAmount());
|
|
|
|
|
amoutSum=amoutSum.add(item0.getAmount());
|
|
|
|
|
// 不含税金额
|
|
|
|
|
notAmountSum=notAmountSum.add(item0.getNotAmount());
|
|
|
|
|
notAmountSum=notAmountSum.add(item0.getNotAmount());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
purItemEntities.add(item0);
|
|
|
|
|
purItemEntities.add(item0);
|
|
|
|
|
|
|
|
|
|
if (i==dataList.size()-1){
|
|
|
|
|
PurchaseorderitemEntity entity = new PurchaseorderitemEntity();
|
|
|
|
|
if (i==dataList.size()-1){
|
|
|
|
|
PurchaseorderitemEntity entity = new PurchaseorderitemEntity();
|
|
|
|
|
// id
|
|
|
|
|
entity.setId(aLong.toString());
|
|
|
|
|
// 税额rateSum
|
|
|
|
|
rateSum=amoutSum.subtract(notAmountSum);
|
|
|
|
|
entity.setId(aLong.toString());
|
|
|
|
|
// 税额rateSum
|
|
|
|
|
rateSum=amoutSum.subtract(notAmountSum);
|
|
|
|
|
|
|
|
|
|
// 生成的采购编码
|
|
|
|
|
ActionResult pdBillNumber = bean.getBillNumber(str2);
|
|
|
|
|
entity.setDocumentNo(String.valueOf(pdBillNumber.getData()));
|
|
|
|
|
ActionResult pdBillNumber = bean.getBillNumber(str2);
|
|
|
|
|
entity.setDocumentNo(String.valueOf(pdBillNumber.getData()));
|
|
|
|
|
|
|
|
|
|
// 合同id
|
|
|
|
|
entity.setContractCode(contractMEntities.get(0).getId());
|
|
|
|
|
entity.setContractCode(contractMEntities.get(0).getId());
|
|
|
|
|
// 对方合同号
|
|
|
|
|
entity.setContractNo(contractMEntities.get(0).getContractNo());
|
|
|
|
|
entity.setContractNo(contractMEntities.get(0).getContractNo());
|
|
|
|
|
// 供应商、客户ID
|
|
|
|
|
entity.setSupplierId(contractMEntities.get(0).getCode());
|
|
|
|
|
entity.setSupplierId(contractMEntities.get(0).getCode());
|
|
|
|
|
// 供应商名称
|
|
|
|
|
entity.setSupplierName(contractMEntities.get(0).getName());
|
|
|
|
|
entity.setSupplierName(contractMEntities.get(0).getName());
|
|
|
|
|
// 重量
|
|
|
|
|
entity.setNum(settlementNum);
|
|
|
|
|
entity.setNum(settlementNum);
|
|
|
|
|
// 金额
|
|
|
|
|
entity.setAmount(amoutSum);
|
|
|
|
|
entity.setAmount(amoutSum);
|
|
|
|
|
// 不含税金额
|
|
|
|
|
entity.setNotAmount(notAmountSum);
|
|
|
|
|
entity.setNotAmount(notAmountSum);
|
|
|
|
|
// 税额
|
|
|
|
|
entity.setRate(rateSum);
|
|
|
|
|
entity.setRate(rateSum);
|
|
|
|
|
// 垫资金额
|
|
|
|
|
entity.setAdvanceAmount(advanceSum);
|
|
|
|
|
purEntities=entity;
|
|
|
|
|
}
|
|
|
|
|
entity.setAdvanceAmount(advanceSum);
|
|
|
|
|
purEntities=entity;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
log.error("采购合同不存在!请添加后后重新添加!");
|
|
|
|
|
errList.addAll(dataList);
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
log.error("采购合同不存在!请添加后后重新添加!");
|
|
|
|
|
errList.addAll(dataList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < ints.size(); i++) {
|
|
|
|
|
Integer integer = ints.get(i);
|
|
|
|
|
dataList.remove(integer);
|
|
|
|
|
}
|
|
|
|
|
List<PoundlistEntity> entitys = JsonUtil.getJsonToList(dataList, PoundlistEntity.class);
|
|
|
|
|
for (int i = 0; i < ints.size(); i++) {
|
|
|
|
|
Integer integer = ints.get(i);
|
|
|
|
|
dataList.remove(integer);
|
|
|
|
|
}
|
|
|
|
|
List<PoundlistEntity> entitys = JsonUtil.getJsonToList(dataList, PoundlistEntity.class);
|
|
|
|
|
|
|
|
|
|
String str1="poundlist";
|
|
|
|
|
for (PoundlistEntity model:entitys
|
|
|
|
|
) {
|
|
|
|
|
String str1="poundlist";
|
|
|
|
|
for (PoundlistEntity model:entitys
|
|
|
|
|
) {
|
|
|
|
|
// 生成的榜单编码
|
|
|
|
|
ActionResult pdBillNumber = bean.getBillNumber(str1);
|
|
|
|
|
model.setPoundlistNo(String.valueOf(pdBillNumber.getData()));
|
|
|
|
|
ActionResult pdBillNumber = bean.getBillNumber(str1);
|
|
|
|
|
model.setPoundlistNo(String.valueOf(pdBillNumber.getData()));
|
|
|
|
|
// 是否审核
|
|
|
|
|
model.setIsExamine("1");
|
|
|
|
|
model.setIsExamine("1");
|
|
|
|
|
// 榜单类型
|
|
|
|
|
model.setPoundType("0");
|
|
|
|
|
model.setPoundType("0");
|
|
|
|
|
// 业务员默认当前操作人
|
|
|
|
|
String userId = userProvider.get().getUserId();
|
|
|
|
|
model.setBusinessId(userId);
|
|
|
|
|
String userId = userProvider.get().getUserId();
|
|
|
|
|
model.setBusinessId(userId);
|
|
|
|
|
sum+= poundlistMapper.insert(model);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 榜单逻辑
|
|
|
|
|
// System.out.println(JsonUtil.getListToJsonArray(dataList));
|
|
|
|
|
// System.out.println(JsonUtil.getListToJsonArray(entitys));
|
|
|
|
|
//进行数据添加
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int insert = purchaseorderitemMapper.insert(purEntities);
|
|
|
|
|
for (int i = 0; i < purItemEntities.size(); i++) {
|
|
|
|
|
Purchaseorder_item0Entity entity = purItemEntities.get(i);
|
|
|
|
|
purchaseorderItem0Mapper.insert(entity);
|
|
|
|
|
}
|
|
|
|
|
int insert = purchaseorderitemMapper.insert(purEntities);
|
|
|
|
|
for (int i = 0; i < purItemEntities.size(); i++) {
|
|
|
|
|
Purchaseorder_item0Entity entity = purItemEntities.get(i);
|
|
|
|
|
purchaseorderItem0Mapper.insert(entity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PurchaseOrderImportVo importVo = new PurchaseOrderImportVo();
|
|
|
|
|
num=errList.size();
|
|
|
|
|
importVo.setSnum(sum);
|
|
|
|
|