|
|
@ -29,10 +29,19 @@ import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo; |
|
|
|
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleDto; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; |
|
|
|
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo; |
|
|
|
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel; |
|
|
|
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOut; |
|
|
|
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutMaterial; |
|
|
|
import com.yxt.anrui.base.common.enums.ManPurOrderType; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock; |
|
|
|
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect; |
|
|
|
import com.yxt.anrui.scm.api.scmapplyinboundquery.*; |
|
|
|
import com.yxt.anrui.scm.api.scmapplyinboundvehquery.ScmApplyInboundVehQuery; |
|
|
|
import com.yxt.anrui.scm.api.scmapplyinboundvehquery.ScmApplyInboundVehQueryDetailsVo; |
|
|
@ -72,6 +81,12 @@ public class ScmApplyInboundQueryService extends MybatisBaseService<ScmApplyInbo |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private ScmApplyInboundVehQueryService scmApplyInboundVehQueryService; |
|
|
|
@Autowired |
|
|
|
private FinKingDeeFeign finKingDeeFeign; |
|
|
|
@Autowired |
|
|
|
private BaseVehicleFeign baseVehicleFeign; |
|
|
|
@Autowired |
|
|
|
private BasePurchaseSystemFeign basePurchaseSystemFeign; |
|
|
|
|
|
|
|
private QueryWrapper<ScmApplyInboundQuery> createQueryWrapper(ScmApplyInboundQueryQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
@ -144,7 +159,7 @@ public class ScmApplyInboundQueryService extends MybatisBaseService<ScmApplyInbo |
|
|
|
return vo; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<PdfPath> createPdf(String cgrkdSid) { |
|
|
|
public ResultBean<PdfPath> createPdf(String cgrkdSid,String printerType) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
PdfPath pdfPath = new PdfPath(); |
|
|
|
//获取车辆入库单查询
|
|
|
@ -195,7 +210,11 @@ public class ScmApplyInboundQueryService extends MybatisBaseService<ScmApplyInbo |
|
|
|
String typeName = dateStr + seconds + ".doc"; |
|
|
|
// 生成文件路径
|
|
|
|
String targetPath = sourcePath + dateStr; |
|
|
|
WordUtils.creatWord(dataMap, "cgrkd", sourcePath, targetPath, typeName); |
|
|
|
if (printerType.equals("针孔式打印机")){ |
|
|
|
WordUtils.creatWord(dataMap, "cgrkdzks", sourcePath, targetPath, typeName); |
|
|
|
}else if (printerType.equals("喷墨式打印机")){ |
|
|
|
WordUtils.creatWord(dataMap, "cgrkdpms", sourcePath, targetPath, typeName); |
|
|
|
} |
|
|
|
//新生成的word路径
|
|
|
|
String wordPath = targetPath + "\\" + typeName; |
|
|
|
//生成出门证文件名
|
|
|
@ -204,4 +223,86 @@ public class ScmApplyInboundQueryService extends MybatisBaseService<ScmApplyInbo |
|
|
|
pdfPath.setPdfPath("/template/" + dateStr + "/" + pdfName); |
|
|
|
return rb.success().setData(pdfPath); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean ctcgykd(String cgrkdSid) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
List<ScmApplyInboundVehQueryDetailsVo> scmApplyInboundVehQueryDetailsVos = scmApplyInboundVehQueryService.fetchByMainSid(cgrkdSid); |
|
|
|
List<BaseVehicleSelectVo> baseVehicles = new ArrayList<>(); |
|
|
|
for (ScmApplyInboundVehQueryDetailsVo scmApplyInboundVehQueryDetailsVo : scmApplyInboundVehQueryDetailsVos) { |
|
|
|
String vehSid = scmApplyInboundVehQueryDetailsVo.getVehSid(); |
|
|
|
BaseVehicleSelectVo data = baseVehicleFeign.details(vehSid).getData(); |
|
|
|
baseVehicles.add(data); |
|
|
|
} |
|
|
|
try { |
|
|
|
StkInStock stkInStock = new StkInStock(); |
|
|
|
BaseVehicleSelectVo baseVehicle = baseVehicles.get(0); |
|
|
|
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = basePurchaseSystemFeign.fetchDetailsByDeptSid(baseVehicle.getPurchaseSystemSid()).getData(); |
|
|
|
//获取采购系统中的财务编码
|
|
|
|
if (basePurchaseSystemDetailsVo != null) { |
|
|
|
stkInStock.setFPurchaseOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
stkInStock.setTOrgId(basePurchaseSystemDetailsVo.getOrgCode()); |
|
|
|
} else { |
|
|
|
stkInStock.setFPurchaseOrgId(baseVehicle.getOrgCode()); |
|
|
|
stkInStock.setTOrgId(baseVehicle.getOrgCode()); |
|
|
|
} |
|
|
|
stkInStock.setFPurchaseDeptId(baseVehicle.getPurchaseSystemCode()); |
|
|
|
stkInStock.setFSupplierId(baseVehicle.getSupplierCode()); |
|
|
|
// 入库日期:FDate (必填项)
|
|
|
|
stkInStock.setFDate(DateUtil.formatDate(baseVehicle.getPriceDate())); |
|
|
|
// 物料列表:FInStockEntry (必填项)
|
|
|
|
List<StkInStock.FInStockEntry> fInStockEntry = new ArrayList<>(); |
|
|
|
//直接调拨单的物料列表
|
|
|
|
List<StkTransferDirect.FBillEntry> FPAYBILLENTRYs = new ArrayList<>(); |
|
|
|
for (BaseVehicleSelectVo baseVehicleDto : baseVehicles) { |
|
|
|
StkInStock.FInStockEntry sf = new StkInStock.FInStockEntry(); |
|
|
|
sf.setWlfz(baseVehicleDto.getCarBrandCode()); |
|
|
|
//单价 对应厂家结算价
|
|
|
|
sf.setFPrice(baseVehicleDto.getCostPrice() + ""); |
|
|
|
//车辆类型
|
|
|
|
//厂家采购
|
|
|
|
if (ManPurOrderType.ManOrderType.PC_ORDER.getCode().equals(baseVehicle.getManPurOrderTypeKey()) || |
|
|
|
ManPurOrderType.ManOrderType.TC_ORDER.getCode().equals(baseVehicle.getManPurOrderTypeKey())) { |
|
|
|
//车辆类型-厂家外采和调车
|
|
|
|
sf.setCllx(baseVehicleDto.getManufSaleAccessKey()); |
|
|
|
sf.setCllxType("sellChannel"); |
|
|
|
} else if (ManPurOrderType.ManOrderType.WC_ORDER.getCode().equals(baseVehicle.getManPurOrderTypeKey())) { |
|
|
|
//车辆类型-外采主车
|
|
|
|
sf.setCllx("60"); |
|
|
|
sf.setCllxType("sellChannel"); |
|
|
|
//物料分组-外采主车
|
|
|
|
sf.setWlfz("99.01"); |
|
|
|
} |
|
|
|
//存货类别
|
|
|
|
sf.setFCategoryIDType("purchaseOrderType"); |
|
|
|
sf.setFCategoryIDKey(baseVehicleDto.getManPurOrderTypeKey()); |
|
|
|
//批号:FLot
|
|
|
|
sf.setFLot(baseVehicleDto.getVinNo()); |
|
|
|
//物料编码:FMaterialId (必填项)
|
|
|
|
sf.setFMaterialId(baseVehicleDto.getVinNo().substring(baseVehicleDto.getVinNo().length() - 8)); |
|
|
|
//仓库:FStockId-目前只分在途和正式两个仓库。
|
|
|
|
//仓库编码
|
|
|
|
sf.setFStockId("ARZSCK"); |
|
|
|
fInStockEntry.add(sf); |
|
|
|
//填充直接调拨单物料列表数据
|
|
|
|
StkTransferDirect.FBillEntry fBillEntry = new StkTransferDirect.FBillEntry(); |
|
|
|
fBillEntry.setFMaterialId(sf.getFMaterialId());//物料编码
|
|
|
|
fBillEntry.setFDestStockId("ARZTCK");//调入仓库
|
|
|
|
fBillEntry.setFSrcStockId("ARZSCK");//调出仓库
|
|
|
|
FPAYBILLENTRYs.add(fBillEntry); |
|
|
|
} |
|
|
|
stkInStock.setFInStockEntry(fInStockEntry); |
|
|
|
ResultBean<String> stringResultBean = finKingDeeFeign.draftStkInStock(stkInStock); |
|
|
|
if (stringResultBean.getSuccess()) { |
|
|
|
//推送调拨单
|
|
|
|
StkTransferDirect stkTransferDirect = new StkTransferDirect(); |
|
|
|
stkTransferDirect.setFStockOrgId(stkInStock.getTOrgId()); //调入库存组织
|
|
|
|
stkTransferDirect.setFDate(stkInStock.getFDate()); //日期
|
|
|
|
stkTransferDirect.setFBillEntry(FPAYBILLENTRYs); |
|
|
|
finKingDeeFeign.draftStkTransferDirect(stkTransferDirect); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |