Browse Source

完善维修工单结算

master
fanzongzhe 10 months ago
parent
commit
a02e681d88
  1. 9
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  2. 1
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
  3. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java
  4. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java
  5. 1
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java
  6. 304
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  7. 17
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  8. 65
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventory.java
  9. 4
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java
  10. 8
      yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
  11. 2
      yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java
  12. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java
  13. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java
  14. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java
  15. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java
  16. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java
  17. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java
  18. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java
  19. 16
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

9
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java

@ -139,4 +139,13 @@ public class AsBusrepairBill extends BaseEntity {
private Integer completeState; private Integer completeState;
@ApiModelProperty("出库确认备注") @ApiModelProperty("出库确认备注")
private String outboundRemarks; private String outboundRemarks;
@ApiModelProperty("对接人sid")
private String dockingPeopleSid;
@ApiModelProperty("对接人")
private String dockingPeople;
@ApiModelProperty("对接人电话")
private String dockingPhone;
@ApiModelProperty("是否确认材料费(1是,0否)")
private Integer materialConfirm;
} }

1
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java

@ -167,4 +167,5 @@ public class AsBusrepairBillDetailsVo implements Vo {
private List<FileUrlQuery> fileName = new ArrayList<>(); //文件名称 private List<FileUrlQuery> fileName = new ArrayList<>(); //文件名称
@ApiModelProperty("商品登记备注") @ApiModelProperty("商品登记备注")
private String registerRemarks; private String registerRemarks;
} }

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java

@ -151,4 +151,6 @@ public class AsBusrepairBillDto implements Dto {
private List<FileUrlQuery> fileName = new ArrayList<>(); //文件名称 private List<FileUrlQuery> fileName = new ArrayList<>(); //文件名称
@ApiModelProperty("商品登记备注") @ApiModelProperty("商品登记备注")
private String registerRemarks; private String registerRemarks;
@ApiModelProperty("附加费")
private String addAmount;
} }

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/GoodsDetailsVo.java

@ -68,5 +68,6 @@ public class GoodsDetailsVo implements Vo {
private List<String> partsSellersSids = new ArrayList<>(); private List<String> partsSellersSids = new ArrayList<>();
@ApiModelProperty("配件销售") @ApiModelProperty("配件销售")
private List<String> partsSellers = new ArrayList<>(); private List<String> partsSellers = new ArrayList<>();
@ApiModelProperty("维修项目")
private String serviceItem;
} }

1
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java

@ -62,6 +62,7 @@ public class AsBusrepairInventoryBillInit {
private List<SitemsVo> sitemVoList = new ArrayList<>(); private List<SitemsVo> sitemVoList = new ArrayList<>();
@ApiModelProperty("商品登记备注") @ApiModelProperty("商品登记备注")
private String registerRemarks; private String registerRemarks;
private String isGoOut;
private List<AsBusrepairInventorybillDetailSDto> detailList = new ArrayList<>(); private List<AsBusrepairInventorybillDetailSDto> detailList = new ArrayList<>();
} }

304
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -59,6 +59,7 @@ import com.yxt.anrui.as.feign.sms.SmsGoods;
import com.yxt.anrui.as.feign.sms.SmsGoodsFeign; import com.yxt.anrui.as.feign.sms.SmsGoodsFeign;
import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryFeign; import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryFeign;
import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryPush; import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryPush;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils; import com.yxt.common.base.utils.ConstantUtils;
@ -137,7 +138,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
private CrmCustomerTempFeign crmCustomerTempFeign; private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired @Autowired
private AsServiceItemService asServiceItemService; private AsServiceItemService asServiceItemService;
@Autowired
private DocPdfComponent docPdfComponent;
/** /**
* 维修领料获取派工单 * 维修领料获取派工单
* *
@ -944,18 +946,9 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
if (asBusrepairBill.getOldIsReclaim() != 1) { if (asBusrepairBill.getOldIsReclaim() != 1) {
return rb.setMsg("请先完成旧件入库,再进行操作!"); return rb.setMsg("请先完成旧件入库,再进行操作!");
} }
asBusrepairBill.setNodeCode(6); asBusrepairBill.setMaterialConfirm(1);
asBusrepairBill.setNodeName("出厂"); asBusrepairBill.setOutDoorState("2");
asBusrepairBill.setNodeTime(new DateTime());
baseMapper.updateById(asBusrepairBill); baseMapper.updateById(asBusrepairBill);
//新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("出厂");
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
} }
} }
return rb.success(); return rb.success();
@ -971,56 +964,75 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
return rb.setMsg("请先完成旧件入库,再进行操作!"); return rb.setMsg("请先完成旧件入库,再进行操作!");
} }
asBusrepairBill.setNodeCode(6); asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂"); asBusrepairBill.setNodeName("已结算");
asBusrepairBill.setNodeTime(new DateTime()); asBusrepairBill.setNodeTime(new DateTime());
if (asBusrepairBill.getMaterialConfirm().intValue() == 0) {
asBusrepairBill.setMaterialConfirm(1);
asBusrepairBill.setOutDoorState("2");
}
baseMapper.updateById(asBusrepairBill); baseMapper.updateById(asBusrepairBill);
//新增工单环节信息 //新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode(); AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid); billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator()); billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("出厂"); billNode.setNodeName("已结算");
billNode.setCreateBySid(dto.getOperatorSid()); billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6"); billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode); asBusrepairBillNodeService.insert(billNode);
} }
SettleVo settleVo = dto.getSettleVo(); if (asBusrepairBill.getSubject().equals("保外")) {
if (null != settleVo) { SettleVo settleVo = dto.getSettleVo();
FmsReceivesettleDto settleDto = new FmsReceivesettleDto(); if (null != settleVo) {
BeanUtil.copyProperties(settleVo, settleDto, "id", "sid"); FmsReceivesettleDto settleDto = new FmsReceivesettleDto();
settleDto.setCreateBySid(dto.getOperatorSid()); BeanUtil.copyProperties(settleVo, settleDto, "id", "sid");
settleDto.setCreateByName(dto.getOperator()); settleDto.setCreateBySid(dto.getOperatorSid());
settleDto.setSourceBillSid(dto.getSid()); settleDto.setCreateByName(dto.getOperator());
settleDto.setSourceBillNo(asBusrepairBill.getBillNo()); settleDto.setSourceBillSid(dto.getSid());
fmsReceivesettleFeign.save(settleDto); settleDto.setSourceBillNo(asBusrepairBill.getBillNo());
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto(); fmsReceivesettleFeign.save(settleDto);
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName()); FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid()); finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCustomerSid(asBusrepairBill.getCustomerSid()); finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
finUncollectedReceivablesDetailedDto.setCustomerName(asBusrepairBill.getCustomerName()); finUncollectedReceivablesDetailedDto.setCustomerSid(asBusrepairBill.getCustomerSid());
AsBusrepairBillVech billVech = asBusrepairBillVechService.fetchByBillSid(asBusrepairBill.getSid()); finUncollectedReceivablesDetailedDto.setCustomerName(asBusrepairBill.getCustomerName());
if (null != billVech) { AsBusrepairBillVech billVech = asBusrepairBillVechService.fetchByBillSid(asBusrepairBill.getSid());
if (StringUtils.isNotBlank(billVech.getVinNo())) { if (null != billVech) {
finUncollectedReceivablesDetailedDto.setVIN(billVech.getVinNo()); if (StringUtils.isNotBlank(billVech.getVinNo())) {
finUncollectedReceivablesDetailedDto.setVIN(billVech.getVinNo());
}
} }
} finUncollectedReceivablesDetailedDto.setCustomerPhone(asBusrepairBill.getMobile());
finUncollectedReceivablesDetailedDto.setCustomerPhone(asBusrepairBill.getMobile()); finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid()); finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath()); finUncollectedReceivablesDetailedDto.setReceivablesName("工时费、材料费");
finUncollectedReceivablesDetailedDto.setReceivablesName("工时费、材料费"); BigDecimal settleAmount = new BigDecimal("0");
BigDecimal settleAmount = new BigDecimal("0"); BigDecimal otherSettleAmount = new BigDecimal("0");
BigDecimal otherSettleAmount = new BigDecimal("0"); if (StringUtils.isNotBlank(settleVo.getSettleAmount())) {
if (StringUtils.isNotBlank(settleVo.getSettleAmount())) { settleAmount = new BigDecimal(settleVo.getSettleAmount());
settleAmount = new BigDecimal(settleVo.getSettleAmount()); }
} if (StringUtils.isNotBlank(settleVo.getOtherSettleAmount())) {
if (StringUtils.isNotBlank(settleVo.getOtherSettleAmount())) { otherSettleAmount = new BigDecimal(settleVo.getOtherSettleAmount());
otherSettleAmount = new BigDecimal(settleVo.getOtherSettleAmount()); }
} finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settleAmount.add(otherSettleAmount)).toString()); finUncollectedReceivablesDetailedDto.setReveivableMoney((settleAmount.add(otherSettleAmount)).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settleAmount.add(otherSettleAmount)).toString()); finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName()); finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedDto.setKxState("01"); finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("已结算");
asBusrepairBill.setNodeTime(new DateTime());
asBusrepairBill.setOutDoorState("2");
baseMapper.updateById(asBusrepairBill);
//新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("已结算");
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
} }
} }
AsTrackBillDto asTrackBillDto = new AsTrackBillDto(); AsTrackBillDto asTrackBillDto = new AsTrackBillDto();
@ -1225,6 +1237,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
} else if (asBusrepairBill.getNodeCode() == 3) { } else if (asBusrepairBill.getNodeCode() == 3) {
nodeCode = 2; nodeCode = 2;
nodeName = "派工"; nodeName = "派工";
asBusrepairBill.setCompleteState(0);
asBusrepairBill.setRepairState(0);
} }
asBusrepairBill.setNodeCode(nodeCode); asBusrepairBill.setNodeCode(nodeCode);
asBusrepairBill.setNodeName(nodeName); asBusrepairBill.setNodeName(nodeName);
@ -1411,6 +1425,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
} }
vo.setUserName(userName); vo.setUserName(userName);
String path = createSettlePdf(vo, type, subject); String path = createSettlePdf(vo, type, subject);
filePath = path;
} }
return rb.success().setData(filePath); return rb.success().setData(filePath);
} }
@ -1420,91 +1435,136 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
Map<String, Object> dataMap = new HashMap(); Map<String, Object> dataMap = new HashMap();
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
List<Map<String, Object>> newList = new ArrayList<>(); List<Map<String, Object>> newList = new ArrayList<>();
boolean price0 = false;
if (subject.equals("保内") && type.equals("1")) {
price0 = true;
}
dataMap.put("company", vo.getCompany()); dataMap.put("company", vo.getCompany());
dataMap.put("dept", vo.getDept()); dataMap.put("dept", vo.getDept());
dataMap.put("settleTime", vo.getSettleTime()); dataMap.put("settleTime", vo.getSettleTime());
dataMap.put("customer", vo.getCustomer()); dataMap.put("customer", vo.getCustomer());
dataMap.put("mobile", vo.getCompany()); dataMap.put("mobile", vo.getMobile());
dataMap.put("billNo", vo.getCompany()); dataMap.put("billNo", vo.getBillNo());
dataMap.put("billType", vo.getCompany()); dataMap.put("billType", vo.getBillType());
dataMap.put("vehModel", vo.getCompany()); dataMap.put("vehModel", vo.getVehModel());
dataMap.put("claimManufacturer", vo.getCompany()); dataMap.put("claimManufacturer", vo.getClaimManufacturer());
dataMap.put("claimNo", vo.getCompany()); dataMap.put("claimNo", vo.getClaimNo());
dataMap.put("vinNo", vo.getCompany()); dataMap.put("vinNo", vo.getVinNo());
dataMap.put("vehMark", vo.getCompany()); dataMap.put("vehMark", vo.getVehMark());
dataMap.put("isKp", vo.getCompany()); dataMap.put("isKp", vo.getIsKp());
dataMap.put("caps1", vo.getCompany()); if (price0) {
dataMap.put("sumMoney1", vo.getCompany()); dataMap.put("caps1", "");
dataMap.put("caps2", vo.getCompany()); dataMap.put("sumMoney1", "0");
dataMap.put("sumMoney2", vo.getCompany()); dataMap.put("caps2","");
dataMap.put("outAmount", vo.getCompany()); dataMap.put("sumMoney2", "0");
dataMap.put("subsidyAmount", vo.getCompany()); dataMap.put("outAmount","0");
dataMap.put("rescueAmount", vo.getCompany()); dataMap.put("subsidyAmount","0");
dataMap.put("receivableAmount", vo.getCompany()); dataMap.put("rescueAmount","0");
dataMap.put("actualAmount", vo.getCompany()); dataMap.put("receivableAmount","0");
dataMap.put("actualAmount","0");
} else {
dataMap.put("caps1", vo.getCaps1());
dataMap.put("sumMoney1", vo.getSumMoney1());
dataMap.put("caps2", vo.getCaps2());
dataMap.put("sumMoney2", vo.getSumMoney2());
dataMap.put("outAmount", vo.getOutAmount());
dataMap.put("subsidyAmount", vo.getSubsidyAmount());
dataMap.put("rescueAmount", vo.getRescueAmount());
dataMap.put("receivableAmount", vo.getReceivableAmount());
dataMap.put("actualAmount", vo.getActualAmount());
}
dataMap.put("userName", vo.getCompany()); dataMap.put("userName", vo.getCompany());
//
// private String sortNo; //序号
// private String serviceItem; //维修项目
// private String serviceItemCode; //维修项目编码
// private String serviceType; //工种
// private String hourPrice; //工时单价
// private String hours; //工时数量
// private String price; //维修金额
// private String discount; //折扣
// private String discountAmount; //优惠
// private String amount; //销售金额
// private String repairerName; //维修技师
// private String remarks; //备注
//
// private List<SettleGoodsPdfVo> goods = new ArrayList<>();
List<SettleItemPdfVo> items = vo.getItems(); List<SettleItemPdfVo> items = vo.getItems();
if (!items.isEmpty()) { if (!items.isEmpty()) {
for (SettleItemPdfVo itemPdfVo : items) { for (SettleItemPdfVo itemPdfVo : items) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("sortNo", itemPdfVo.getSortNo()); map.put("sortNo", itemPdfVo.getSortNo());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("serviceItem", itemPdfVo.getServiceItem());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("serviceItemCode", itemPdfVo.getServiceItemCode());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("serviceType", itemPdfVo.getServiceType());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("hourPrice", itemPdfVo.getHourPrice());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("hours", itemPdfVo.getHours());
map.put("sortNo", itemPdfVo.getSortNo()); if (price0) {
map.put("sortNo", itemPdfVo.getSortNo()); map.put("price","0");
map.put("sortNo", itemPdfVo.getSortNo()); } else {
map.put("sortNo", itemPdfVo.getSortNo()); map.put("price", itemPdfVo.getPrice());
map.put("sortNo", itemPdfVo.getSortNo()); }
map.put("sortNo", itemPdfVo.getSortNo()); map.put("discount", itemPdfVo.getDiscount());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("discountAmount", itemPdfVo.getDiscountAmount());
map.put("sortNo", itemPdfVo.getSortNo()); map.put("amount", itemPdfVo.getAmount());
map.put("repairerName", itemPdfVo.getRepairerName());
map.put("remarks", itemPdfVo.getRemarks());
list.add(map); list.add(map);
} }
} }
// dataMap.put("list", list); dataMap.put("list", list);
// String temp = "/template/"; List<SettleGoodsPdfVo> goods = vo.getGoods();
// String targetPath = docPdfComponent.getUploadTemplateUrl(); if (!goods.isEmpty()) {
// try { for (SettleGoodsPdfVo good : goods) {
// //获取模板 Map<String, Object> map = new HashMap<>();
// InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vouchers/yhjt.ftl"); map.put("sortNo", good.getSortNo());
// //生成word文件名 map.put("goodsSpuName", good.getGoodsSpuName());
// String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); map.put("goodsSkuCode", good.getGoodsSkuCode());
// long seconds = System.currentTimeMillis(); map.put("goodsSkuOwnSpec", good.getGoodsSkuOwnSpec());
// String typeName = dateStr + seconds + ".doc"; map.put("unit", good.getUnit());
// File file = new File(targetPath + "templateVouchers" + seconds + ".ftl"); map.put("count", good.getCount());
// File dir = new File(targetPath); if (price0) {
// WordConvertUtils.inputStreamToFile(inputStream, file); map.put("price","0");
// WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir); map.put("amount","0");
// //新生成的word路径 } else {
// String wordPath = targetPath + typeName; map.put("price", good.getPrice());
// String pdfName = "月还计提审批" + dateStr + seconds + ".pdf"; map.put("amount", good.getAmount());
// WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); }
// finalPath = temp + pdfName; map.put("discount", good.getDiscount());
// } catch (NoClassDefFoundError e) { map.put("discountAmount", good.getDiscountAmount());
// e.printStackTrace(); map.put("remarks", good.getRemarks());
// finalPath = targetPath; map.put("operName", good.getOperName());
// } newList.add(map);
}
}
dataMap.put("newList", newList);
String temp = "/template/";
String targetPath = docPdfComponent.getUploadTemplateUrl();
String ftl = "";
boolean add = true;
if (StringUtils.isBlank(vo.getOutAmount()) &&
StringUtils.isBlank(vo.getSubsidyAmount()) &&
StringUtils.isBlank(vo.getRescueAmount())) {
add = false;
}
if (subject.equals("保内")) {
if (add) {
ftl = "ftl/baoneifujia.ftl";
} else {
ftl = "ftl/baonei.ftl";
}
} else if (subject.equals("保外")) {
if (add) {
ftl = "ftl/baowaifujia.ftl";
} else {
ftl = "ftl/baowai.ftl";
}
}
try {
//获取模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(ftl);
//生成word文件名
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "templateSettle" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
String pdfName = "结算单" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
finalPath = temp + pdfName;
} catch (NoClassDefFoundError e) {
e.printStackTrace();
finalPath = targetPath;
}
return finalPath; return finalPath;
} }

17
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -26,6 +26,7 @@ import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventory;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign; import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsUpdateCountQuery; import com.yxt.anrui.as.feign.wms.wmsInventory.WmsUpdateCountQuery;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto; import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto;
@ -279,6 +280,19 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
detail.setCurrentCount(new BigDecimal(sDto.getOutboundCount())); detail.setCurrentCount(new BigDecimal(sDto.getOutboundCount()));
} }
detail.setBillSid(entity.getSid()); detail.setBillSid(entity.getSid());
String inventorySid = sDto.getInventorySid();
WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(inventorySid).getData();
if (null != inventory) {
if (null != inventory.getTaxRate()) {
if (inventory.getTaxRate().compareTo(BigDecimal.ZERO) > 0) {
detail.setIsTaxRate(1);
} else {
detail.setIsTaxRate(0);
}
} else {
detail.setIsTaxRate(0);
}
}
asBusrepairInventorybillDetailService.insert(detail); asBusrepairInventorybillDetailService.insert(detail);
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery(); WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
@ -382,6 +396,9 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (StringUtils.isNotBlank(data.getBillNo())) { if (StringUtils.isNotBlank(data.getBillNo())) {
vo.setSourceBillNo(data.getBillNo()); vo.setSourceBillNo(data.getBillNo());
} }
if (StringUtils.isNotBlank(data.getIsGoOut())) {
vo.setIsGoOut(data.getIsGoOut());
}
if (StringUtils.isNotBlank(data.getWaitorName())) { if (StringUtils.isNotBlank(data.getWaitorName())) {
vo.setWaitorName(data.getWaitorName()); vo.setWaitorName(data.getWaitorName());
} }

65
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventory.java

@ -0,0 +1,65 @@
package com.yxt.anrui.as.feign.wms.wmsInventory;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author wangpengfei
* @date 2024/2/28 8:38
*/
@Data
@TableName("wms_inventory")
public class WmsInventory extends BaseEntity {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private BigDecimal count;
@ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)")
private BigDecimal allocateCount;
@ApiModelProperty("拣货量")
private BigDecimal pickCount;
@ApiModelProperty("冻结量")
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("首次入库日期-计算库龄的依据")
private Date firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("厂家订单号")
private String manufactorBillNo;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsInventory/WmsInventoryFeign.java

@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
/** /**
* @description: 商品基础信息 * @description: 商品基础信息
@ -29,4 +30,7 @@ public interface WmsInventoryFeign {
@PostMapping("/updateInventoryCount") @PostMapping("/updateInventoryCount")
ResultBean updateInventoryCount(@RequestBody WmsUpdateCountQuery query); ResultBean updateInventoryCount(@RequestBody WmsUpdateCountQuery query);
@ApiOperation("根据Sid获取库存实体")
@PostMapping("/fetchEntityBySid")
ResultBean<WmsInventory> fetchEntityBySid(@RequestParam("sid") String sid);
} }

8
yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java

@ -511,12 +511,18 @@ public class PmsPurchaseBillService extends MybatisBaseService<PmsPurchaseBillMa
wmsAnsBillDto.setCreateBySid(pmsPurchaseBill.getCreateBySid()); wmsAnsBillDto.setCreateBySid(pmsPurchaseBill.getCreateBySid());
wmsAnsBillDto.setSourceBillNo(pmsPurchaseBill.getBillNo()); wmsAnsBillDto.setSourceBillNo(pmsPurchaseBill.getBillNo());
wmsAnsBillDto.setBusTypeKey("01"); wmsAnsBillDto.setBusTypeKey("01");
wmsAnsBillDto.setBusTypeValue("采购预约"); wmsAnsBillDto.setBusTypeValue("采购入库");
wmsAnsBillDto.setCreateByName(pmsPurchaseBill.getCreateByName()); wmsAnsBillDto.setCreateByName(pmsPurchaseBill.getCreateByName());
wmsAnsBillDto.setBillState(0); wmsAnsBillDto.setBillState(0);
wmsAnsBillDto.setReviewStatus(""); wmsAnsBillDto.setReviewStatus("");
wmsAnsBillDto.setRefuseReason(""); wmsAnsBillDto.setRefuseReason("");
wmsAnsBillDto.setSourceBillSid(pmsPurchaseBill.getSid()); wmsAnsBillDto.setSourceBillSid(pmsPurchaseBill.getSid());
PmsPurchaseBillInvoiceDetailsVo invoiceDetailsVo = pmsPurchaseBillInvoiceService.selByMainSid(businessSid);
if (null != invoiceDetailsVo) {
if (null != invoiceDetailsVo.getTaxRate()) {
wmsAnsBillDto.setTaxRate(invoiceDetailsVo.getTaxRate().toString());
}
}
if (StringUtils.isNotBlank(pmsPurchaseBill.getManufacturersOrderTypeKey())) { if (StringUtils.isNotBlank(pmsPurchaseBill.getManufacturersOrderTypeKey())) {
wmsAnsBillDto.setManufactorBillTypeKey(pmsPurchaseBill.getManufacturersOrderTypeKey()); wmsAnsBillDto.setManufactorBillTypeKey(pmsPurchaseBill.getManufacturersOrderTypeKey());
} }

2
yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java

@ -64,4 +64,6 @@ public class WmsAnsBillDto {
@ApiModelProperty("厂家订单类型key") @ApiModelProperty("厂家订单类型key")
private String manufactorBillTypeKey; private String manufactorBillTypeKey;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>(); private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
@ApiModelProperty("采购单税率")
private String taxRate;
} }

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBill.java

@ -4,6 +4,7 @@ import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
/** /**
@ -61,4 +62,6 @@ public class WmsAnsBill extends BaseEntity {
private String manufactorBillTypeValue; private String manufactorBillTypeValue;
@ApiModelProperty("厂家订单类型key") @ApiModelProperty("厂家订单类型key")
private String manufactorBillTypeKey; private String manufactorBillTypeKey;
@ApiModelProperty("采购单税率")
private BigDecimal taxRate;
} }

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java

@ -4,6 +4,7 @@ import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailDto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -64,4 +65,6 @@ public class WmsAnsBillDto {
@ApiModelProperty("厂家订单类型key") @ApiModelProperty("厂家订单类型key")
private String manufactorBillTypeKey; private String manufactorBillTypeKey;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>(); private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
@ApiModelProperty("采购单税率")
private String taxRate;
} }

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventory.java

@ -46,6 +46,8 @@ public class WmsInventory extends BaseEntity {
private BigDecimal freezeCount; private BigDecimal freezeCount;
@ApiModelProperty("入库单价") @ApiModelProperty("入库单价")
private BigDecimal cost; private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid") @ApiModelProperty("仓库sid")
private String warehouseSid; private String warehouseSid;
@ApiModelProperty("仓库名称") @ApiModelProperty("仓库名称")

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordDto.java

@ -104,7 +104,7 @@ public class WmsInventoryRecordDto implements Dto {
@ApiModelProperty("入库单价") @ApiModelProperty("入库单价")
private String cost; private String cost;
@ApiModelProperty("税率") @ApiModelProperty("税率")
private String tax; private String taxRate;
@ApiModelProperty("入库金额") @ApiModelProperty("入库金额")
private String amount; private String amount;
@ApiModelProperty("经办人sid") @ApiModelProperty("经办人sid")

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java

@ -351,6 +351,9 @@ public class WmsInventoryRecordService extends MybatisBaseService<WmsInventoryRe
WmsInventoryRecord inventoryRecord = new WmsInventoryRecord(); WmsInventoryRecord inventoryRecord = new WmsInventoryRecord();
BeanUtil.copyProperties(dto,inventoryRecord,"id","sid"); BeanUtil.copyProperties(dto,inventoryRecord,"id","sid");
inventoryRecord.setInventorySid(wmsInventory.getSid()); inventoryRecord.setInventorySid(wmsInventory.getSid());
if (StringUtils.isNotBlank(dto.getTaxRate())) {
inventoryRecord.setTax(new BigDecimal(dto.getTaxRate()));
}
baseMapper.insert(inventoryRecord); baseMapper.insert(inventoryRecord);
} }

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillQuery.java

@ -34,5 +34,6 @@ public class WmsReceiptBillQuery implements Query {
private String orgPath; private String orgPath;
@ApiModelProperty("用户sid") @ApiModelProperty("用户sid")
private String userSid; private String userSid;
@ApiModelProperty("分配状态")
private String distributeType;
} }

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

@ -127,6 +127,10 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
if (StringUtils.isNotBlank(query.getBillState())) { if (StringUtils.isNotBlank(query.getBillState())) {
qw.like("wrb.billState", query.getBillState()); qw.like("wrb.billState", query.getBillState());
} }
//分配状态
if (StringUtils.isNotBlank(query.getDistributeType())) {
qw.like("wrb.distributeType", query.getDistributeType());
}
//外部编号 //外部编号
if (StringUtils.isNotBlank(query.getSourceBillNo())) { if (StringUtils.isNotBlank(query.getSourceBillNo())) {
qw.like("wrb.sourceBillNo", query.getSourceBillNo()); qw.like("wrb.sourceBillNo", query.getSourceBillNo());

16
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

@ -18,6 +18,7 @@ import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack; import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService; import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill; import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillService;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo; import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag; import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService; import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService;
@ -101,7 +102,8 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
private WmsGoodsTagService wmsGoodsTagService; private WmsGoodsTagService wmsGoodsTagService;
@Autowired @Autowired
private BaseGoodsSpuFeign baseGoodsSpuFeign; private BaseGoodsSpuFeign baseGoodsSpuFeign;
@Autowired
private WmsAnsBillService wmsAnsBillService;
public PagerVo<WmsShelfBillVo> listPage(PagerQuery<WmsShelfBillQuery> pq) { public PagerVo<WmsShelfBillVo> listPage(PagerQuery<WmsShelfBillQuery> pq) {
WmsShelfBillQuery query = pq.getParams(); WmsShelfBillQuery query = pq.getParams();
@ -777,8 +779,16 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
recordDto.setCost(receiptBillDetail.getCost().toString()); recordDto.setCost(receiptBillDetail.getCost().toString());
recordDto.setAmount(amount.toString()); recordDto.setAmount(amount.toString());
} }
if (null != receiptBillDetail.getTaxAmount()) { //设置税率
recordDto.setTax(receiptBillDetail.getTaxAmount().toString()); WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(sourceBillSid); //收货单
if (null != wmsReceiptBill) {
String ansSid = wmsReceiptBill.getSourceBillSid(); //预约入库sid
WmsAnsBill ansBill = wmsAnsBillService.fetchBySid(ansSid);
if (null != ansBill) {
if (null != ansBill.getTaxRate()) {
recordDto.setTaxRate(ansBill.getTaxRate().toString());
}
}
} }
} }
wmsInventoryRecordService.saveRecord(recordDto); wmsInventoryRecordService.saveRecord(recordDto);

Loading…
Cancel
Save