Browse Source

完善维修工单结算

master
fanzongzhe 1 year ago
parent
commit
a8fa8cdfa4
  1. 16
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  2. 15
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
  3. 14
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDto.java
  4. 38
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillQuery.java
  5. 46
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillVo.java
  6. 37
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SettleVo.java
  7. 1
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBillDetailsVo.java
  8. 24
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml
  9. 12
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java
  10. 204
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  11. 8
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillRest.java
  12. 80
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillService.java
  13. 91
      yxt-as/src/main/java/com/yxt/anrui/as/feign/fms/FmsReceivesettle.java
  14. 87
      yxt-as/src/main/java/com/yxt/anrui/as/feign/fms/FmsReceivesettleDto.java
  15. 33
      yxt-as/src/main/java/com/yxt/anrui/as/feign/fms/FmsReceivesettleFeign.java

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

@ -75,5 +75,21 @@ public class AsBusrepairBill extends BaseEntity {
private String memberCarNumber;
@ApiModelProperty("旧件是否入库(适用于保内业务,0未入库,1已入库)")
private Integer oldIsInInventory;
@ApiModelProperty("使用组织名称")
private String useOrgName;
@ApiModelProperty("创建组织名称")
private String createOrgName;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("制单部门sid")
private String deptSid;
@ApiModelProperty("制单部门")
private String dept;
@ApiModelProperty("班组sid")
private String groupSid;
@ApiModelProperty("班组名称")
private String groupName;
}

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

@ -17,8 +17,21 @@ import java.util.List;
@Data
public class AsBusrepairBillDetailsVo implements Vo {
private String sid;
private String orgPath;
@ApiModelProperty("班组sid")
private String groupSid;
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单部门sid")
private String deptSid;
@ApiModelProperty("制单部门")
private String dept;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("操作人Sid")
private String operatorSid;
@ApiModelProperty("操作人")
private String operator;
@ApiModelProperty("单据编号")
@ -96,4 +109,6 @@ public class AsBusrepairBillDetailsVo implements Vo {
private List<SitemVo> sitemVos = new ArrayList<>();// 服务项目
private List<AitemVo> aitemVos = new ArrayList<>();// 附加项目
private List<GoodsDetailsVo> goodsDetailsVos = new ArrayList<>(); //商品信息
private SettleVo settleVo = new SettleVo(); //结算信息
private boolean showReSettleBtn; //是否显示反结算按钮,ture显示,false不显示
}

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

@ -18,8 +18,20 @@ import java.util.List;
public class AsBusrepairBillDto implements Dto {
private String sid;
private String orgPath;
@ApiModelProperty("班组sid")
private String groupSid;
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("制单部门sid")
private String deptSid;
@ApiModelProperty("制单部门")
private String dept;
@ApiModelProperty("操作人Sid")
private String operatorSid;
@ApiModelProperty("操作人")
private String operator;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据编号")
@ -86,6 +98,6 @@ public class AsBusrepairBillDto implements Dto {
private OtherVo otherVo = new OtherVo();//送修人信息
private List<SitemVo> sitemVos = new ArrayList<>();// 服务项目
private List<AitemVo> aitemVos = new ArrayList<>();// 附加项目
private SettleVo settleVo = new SettleVo(); //结算信息
}

38
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillQuery.java

@ -12,18 +12,50 @@ import lombok.Data;
@Data
public class AsBusrepairBillQuery implements Query {
private String nodeCode;
@ApiModelProperty("使用组织sid")
private String orgPath;
private String userSid;
@ApiModelProperty("菜单url")
private String menuUrl;
private String nodeCode;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("制单部门")
private String dept;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据编号")
private String billNo;
private String startTime;//制单开始时间
private String endTime;//制单结束时间
@ApiModelProperty("单据类型0正常工单、1保险理赔、2协议单位")
private String billType;
@ApiModelProperty("进厂开始时间")
private String entryStartTime;
@ApiModelProperty("进厂结束时间")
private String entryEndTime;
@ApiModelProperty("预计完工开始时间")
private String finishStartTime;
@ApiModelProperty("预计完工结束时间")
private String finishEndTime;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("客户单位")
private String customerOrg;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车架号")
private String vinNo;
private String startTime;
private String endTime;
@ApiModelProperty("服务顾问姓名")
private String waitorName;
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("主修人(可多选)销售单")
private String mainRepairers;
@ApiModelProperty("是否需要开发票(是1,否0)")
private String isInvoicing;
}

46
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.as.api.asbusrepairbill;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -15,26 +16,53 @@ import java.util.Date;
@Data
public class AsBusrepairBillVo implements Vo {
private String createTime;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("当前环节")
private String nodeName;
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("制单部门")
private String dept;
@ApiModelProperty("制单人姓名")
private String createByName;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("制单日期")
private Date createTime;
@ApiModelProperty("单据类型0正常工单、1保险理赔、2协议单位")
private String billType;
@ApiModelProperty("进厂时间")
private String entryTime;
@ApiModelProperty("预计完工时间-工单")
private String estimatedFinishTime;
@ApiModelProperty("科目")
private String subject;
@ApiModelProperty("当前环节")
private String nodeName;
@ApiModelProperty("进入当前环节时间")
private String nodeTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("进厂时间")
private Date entryTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("预计完工时间-工单")
private Date estimatedFinishTime;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("客户单位")
private String customerOrg;
@ApiModelProperty("车牌号")
private String vehMark;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车型")
private String vehModel;
@ApiModelProperty("服务顾问姓名")
private String waitorName;
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("主修人(可多选)销售单")
private String mainRepairers;
@ApiModelProperty("快捷备注-销售单")
private String shotRemarks;
@ApiModelProperty("是否需要开发票(是1,否0)")
private String isInvoicing;
}

37
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SettleVo.java

@ -0,0 +1,37 @@
package com.yxt.anrui.as.api.asbusrepairbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/4/28 13:43
*/
@Data
public class SettleVo {
@ApiModelProperty("付款人编号")
private String payerNo; // 付款人编号
@ApiModelProperty("付款人名称")
private String payerName; // 付款人名称
@ApiModelProperty("应收金额")
private String receivableAmount; // 应收金额
@ApiModelProperty("订金抵扣")
private String depositdeductAmount; // 订金抵扣
@ApiModelProperty("结算方式key")
private String settleKey; // 结算方式key
@ApiModelProperty("结算方式value")
private String settleValue; // 结算方式value
@ApiModelProperty("结算金额")
private String settleAmount; // 结算金额
@ApiModelProperty("其他结算方式")
private String otherSettleKey; // 其他结算方式
@ApiModelProperty("其他结算金额")
private String otherSettleValue; // 其他结算金额
@ApiModelProperty("欠款金额")
private String debts; // 欠款金额
@ApiModelProperty("结算时间")
private String settleTime; // 结算时间
}

1
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusreservebill/AsBusreserveBillDetailsVo.java

@ -99,5 +99,4 @@ public class AsBusreserveBillDetailsVo implements Vo {
@ApiModelProperty("客户单位")
private String customerOrg; // 客户单位
private List<AsbillSitemVo> sitemVos = new ArrayList<>();
}

24
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml

@ -24,20 +24,32 @@
</select>
<select id="listPage" resultType="com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBillVo">
SELECT
b.createTime,
b.sid,
b.billNo,
b.nodeName,
b.useOrgName,
b.dept,
b.createByName,
b.createTime,
b.billType,
b.`subject`,
b.entryTime,
b.estimatedFinishTime,
b.`subject`,
b.nodeName,
b.nodeTime,
b.customerName,
b.mobile,
b.customerOrg,
v.vehMark,
v.vinNo
v.vinNo,
v.vehModel,
b.waitorName,
b.groupName,
b.mainRepairers,
b.shotRemarks,
i.isInvoicing
FROM
as_busrepair_bill AS b
LEFT JOIN as_busrepair_bill_vech AS v on b.sid = v.billSid
LEFT JOIN as_busrepair_bill_vech AS v ON b.sid = v.billSid
LEFT JOIN as_busrepair_bill_invoice AS i ON b.sid = i.billSid
<where>${ew.sqlSegment}</where>
</select>
</mapper>

12
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java

@ -40,6 +40,18 @@ public class AsBusrepairBillRest {
return asBusrepairBillService.submitNextNode(dto);
}
@PostMapping("/sureMaterialFee")
@ApiOperation("确认材料费")
ResultBean<String> sureMaterialFee(@RequestBody AsBusrepairBillDto dto){
return asBusrepairBillService.sureMaterialFee(dto);
}
@PostMapping("/settle")
@ApiOperation("结算")
ResultBean<String> settle(@RequestBody AsBusrepairBillDto dto){
return asBusrepairBillService.settle(dto);
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")

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

@ -28,9 +28,14 @@ import com.yxt.anrui.as.biz.asbusrepairbillsitem.AsBusrepairBillSitemService;
import com.yxt.anrui.as.biz.asbusrepairbillsitemrepairer.AsBusrepairBillSitemRepairerService;
import com.yxt.anrui.as.biz.asbusrepairbillvech.AsBusrepairBillVechService;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.fms.FmsReceivesettle;
import com.yxt.anrui.as.feign.fms.FmsReceivesettleDto;
import com.yxt.anrui.as.feign.fms.FmsReceivesettleFeign;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
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.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -47,6 +52,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* @description:
@ -56,6 +62,10 @@ import java.util.List;
@Service
public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMapper, AsBusrepairBill> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FmsReceivesettleFeign fmsReceivesettleFeign;
@Autowired
private AsBusrepairBillNodeService asBusrepairBillNodeService;
@Resource
@ -163,10 +173,14 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
sid = asBusrepairBill.getSid();
BeanUtil.copyProperties(dto, asBusrepairBill, "id", "sid");
String orgPath = dto.getOrgPath();
asBusrepairBill.setOrgSidPath(orgPath);
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
if (orgSidByPath.getSuccess()) {
asBusrepairBill.setUseOrgSid(orgSidByPath.getData());
asBusrepairBill.setCreateOrgSid(orgSidByPath.getData());
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(orgSidByPath.getData()).getData();
asBusrepairBill.setUseOrgName(organizationVo.getName());
asBusrepairBill.setCreateOrgName(organizationVo.getName());
String applyCode = getApplyCode(orgSidByPath.getData());
asBusrepairBill.setBillNo(applyCode);
}
@ -181,6 +195,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("登记");
billNode.setNodeCode("1");
billNode.setCreateBySid(dto.getOperatorSid());
asBusrepairBillNodeService.insert(billNode);
}
if (StringUtils.isNotBlank(sid)) {
@ -294,6 +309,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (null != asBusrepairBill) {
BeanUtil.copyProperties(asBusrepairBill, vo);
vo.setOrgPath(asBusrepairBill.getOrgSidPath());
if (null != asBusrepairBill.getEntryTime()) {
vo.setEntryTime(sdf.format(asBusrepairBill.getEntryTime()));
}
@ -386,6 +402,13 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
}
vo.setGoodsDetailsVos(goodsDetailsVos);
}
FmsReceivesettle receivesettle = fmsReceivesettleFeign.fetchBySourceSid(sid).getData();
if (null != receivesettle) {
vo.setShowReSettleBtn(true);
SettleVo settleVo = new SettleVo(); //结算信息
BeanUtil.copyProperties(receivesettle, settleVo);
vo.setSettleVo(settleVo);
}
}
return rb.success().setData(vo);
}
@ -393,35 +416,107 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
public PagerVo<AsBusrepairBillVo> listPage(PagerQuery<AsBusrepairBillQuery> pagerQuery) {
AsBusrepairBillQuery query = pagerQuery.getParams();
QueryWrapper<AsBusrepairBill> qw = new QueryWrapper<>();
if (query != null) {
String orgPath = query.getOrgPath();
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath);
if (orgSidByPath.getSuccess()) {
qw.eq("b.createOrgSid", orgSidByPath.getData());
}
if (StringUtils.isNotBlank(query.getNodeCode())) {
qw.eq("b.nodeCode", query.getNodeCode());
}
if (StringUtils.isNotBlank(query.getBillType())) {
qw.eq("b.billType", query.getBillType());
}
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("b.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("v.vehMark", query.getVehMark());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("v.vinNo", query.getVinNo());
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("b.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("b.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("b.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("b.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("b.createBySid", query.getUserSid());
} else {
PagerVo<AsBusrepairBillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<AsBusrepairBillVo> p = new PagerVo<>();
return p;
}
String startDate = query.getStartTime();
String endDate = query.getEndTime();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (b.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (b.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
);
qw.eq("1", "1");
qw.orderByDesc("b.createTime");
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("b.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getDept())) {
qw.like("b.dept", query.getDept());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("b.createByName", query.getCreateByName());
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("b.billNo", query.getBillNo());
}
String startDate = query.getStartTime();
String endDate = query.getEndTime();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (b.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (b.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getBillType())) {
qw.eq("b.billType", query.getBillType());
}
String entryStartTime = query.getEntryStartTime();
String entryEndTime = query.getEntryEndTime();
qw.apply(StringUtils.isNotEmpty(entryStartTime), "date_format (b.entryTime,'%Y-%m-%d') >= date_format('" + entryStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(entryEndTime), "date_format (b.entryTime,'%Y-%m-%d') <= date_format('" + entryEndTime + "','%Y-%m-%d')"
);
String finishStartTime = query.getFinishStartTime();
String finishEndTime = query.getFinishEndTime();
qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (b.estimatedFinishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(finishEndTime), "date_format (b.estimatedFinishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("b.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getMobile())) {
qw.like("b.mobile", query.getMobile());
}
if (StringUtils.isNotBlank(query.getCustomerOrg())) {
qw.like("b.customerOrg", query.getCustomerOrg());
}
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("v.vehMark", query.getVehMark());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("v.vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getWaitorName())) {
qw.like("b.waitorName", query.getWaitorName());
}
if (StringUtils.isNotBlank(query.getGroupName())) {
qw.like("b.groupName", query.getGroupName());
}
if (StringUtils.isNotBlank(query.getMainRepairers())) {
qw.like("b.mainRepairers", query.getMainRepairers());
}
if (StringUtils.isNotBlank(query.getIsInvoicing())) {
qw.eq("i.isInvoicing", query.getIsInvoicing());
}
if (StringUtils.isNotBlank(query.getNodeCode())) {
qw.eq("b.nodeCode", query.getNodeCode());
}
qw.eq("1", "1");
qw.orderByDesc("b.createTime");
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<AsBusrepairBillVo> pagging = baseMapper.listPage(page, qw);
PagerVo<AsBusrepairBillVo> p = PagerUtil.pageToVo(pagging, null);
@ -464,6 +559,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
billNode.setBillSid(sid);
billNode.setCreateByName(dto.getOperator());
billNode.setNodeName(nodeName);
billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode(nodeCode.toString());
asBusrepairBillNodeService.insert(billNode);
}
@ -478,4 +574,58 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
public ResultBean<AsBusrepairPageVo> getOneByBillNo(String billNo) {
return null;
}
public ResultBean<String> sureMaterialFee(AsBusrepairBillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
AsBusrepairBill asBusrepairBill = fetchBySid(sid);
if (asBusrepairBill.getNodeCode() == 5) {
if (asBusrepairBill.getSubject().equals("保内")) {
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂");
asBusrepairBill.setNodeTime(new DateTime());
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();
}
public ResultBean<String> settle(AsBusrepairBillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
AsBusrepairBill asBusrepairBill = fetchBySid(sid);
if (asBusrepairBill.getNodeCode() == 5) {
asBusrepairBill.setNodeCode(6);
asBusrepairBill.setNodeName("出厂");
asBusrepairBill.setNodeTime(new DateTime());
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);
SettleVo settleVo = dto.getSettleVo();
if (null != settleVo) {
FmsReceivesettleDto settleDto = new FmsReceivesettleDto();
BeanUtil.copyProperties(settleVo, settleDto, "id", "sid");
settleDto.setCreateBySid(dto.getOperatorSid());
settleDto.setCreateByName(dto.getOperator());
settleDto.setSourceBillSid(dto.getSid());
settleDto.setSourceBillNo(asBusrepairBill.getBillNo());
fmsReceivesettleFeign.save(settleDto);
}
}
return rb.success();
}
}

8
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillRest.java

@ -116,4 +116,12 @@ public class AsBusreserveBillRest {
asBusreserveBillService.saveTrackingRecord(dto);
return rb.success();
}
@ApiOperation("转维修单")
@PostMapping("/convertedRepairOrders")
public ResultBean convertedRepairOrders(@RequestBody AsBusreserveBillDto dto) {
ResultBean rb = ResultBean.fireFail();
asBusreserveBillService.convertedRepairOrders(dto);
return rb.success();
}
}

80
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusreservebill/AsBusreserveBillService.java

@ -29,11 +29,14 @@ 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.as.api.asbusrepairbill.AsBusrepairBillDto;
import com.yxt.anrui.as.api.asbusrepairbill.SitemVo;
import com.yxt.anrui.as.api.asbusreservebill.*;
import com.yxt.anrui.as.api.asbusreservebillsitem.AsBusreserveBillSitem;
import com.yxt.anrui.as.api.enums.AsBillTypeEnum;
import com.yxt.anrui.as.api.utils.AsRule;
import com.yxt.anrui.as.api.utils.domain.AsBillNo;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.biz.asbusreservebillsitem.AsBusreserveBillSitemService;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
@ -70,7 +73,8 @@ import java.util.List;
@Service
public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBillMapper, AsBusreserveBill> {
@Autowired
private AsBusrepairBillService asBusrepairBillService;
@Autowired
private AsBusreserveBillSitemService asBusreserveBillSitemService;
@Autowired
@ -208,9 +212,11 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill
return billNo;
}
public void saveOrUpdateDto(AsBusreserveBillDto dto) {
public String saveOrUpdateDto(AsBusreserveBillDto dto) {
String dtoSid = dto.getSid();
String sid = "";
if (StringUtils.isNotBlank(dtoSid)) {
sid = dtoSid;
AsBusreserveBill bill = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, bill, "id", "sid");
baseMapper.updateById(bill);
@ -226,6 +232,7 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill
}
} else {
AsBusreserveBill entity = new AsBusreserveBill();
sid = entity.getSid();
BeanUtil.copyProperties(dto, entity, "id", "sid");
String orgPath = dto.getOrgPath();
entity.setOrgSidPath(orgPath);
@ -250,6 +257,7 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill
}
}
}
return sid;
}
public void insertByDto(AsBusreserveBillDto dto) {
@ -317,4 +325,72 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill
}
}
}
public void convertedRepairOrders(AsBusreserveBillDto dto) {
String sid = saveOrUpdateDto(dto);
AsBusreserveBill bill = fetchBySid(sid);
if (null != bill) {
AsBusrepairBillDto billDto = new AsBusrepairBillDto();
billDto.setOrgPath(bill.getOrgSidPath());
billDto.setCreateBySid(bill.getCreateBySid());
billDto.setOperatorSid(bill.getCreateBySid());
billDto.setCreateByName(bill.getCreateByName());
billDto.setOperator(bill.getCreateByName());
billDto.setDept(bill.getCreateDept());
billDto.setDeptSid(bill.getCreateDeptSid());
if (StringUtils.isNotBlank(bill.getCustomerSid())) {
billDto.setCustomerSid(bill.getCustomerSid());
}
if (StringUtils.isNotBlank(bill.getCustomerName())) {
billDto.setCustomerName(bill.getCustomerName());
}
if (StringUtils.isNotBlank(bill.getWaitorSid())) {
billDto.setWaitorSid(bill.getWaitorSid());
}
if (StringUtils.isNotBlank(bill.getWaitorName())) {
billDto.setWaitorName(bill.getWaitorName());
}
if (StringUtils.isNotBlank(bill.getMobile())) {
billDto.setMobile(bill.getMobile());
}
if (StringUtils.isNotBlank(bill.getVehMark())) {
billDto.setVehMark(bill.getVehMark());
}
if (StringUtils.isNotBlank(bill.getVinNo())) {
billDto.setVinNo(bill.getVinNo());
}
if (StringUtils.isNotBlank(bill.getVehModel())) {
billDto.setVehModel(bill.getVehModel());
}
if (StringUtils.isNotBlank(bill.getCustomerOrg())) {
billDto.setCustomerOrg(bill.getCustomerOrg());
}
if (!dto.getSitemVos().isEmpty()) {
List<SitemVo> sitemVos = new ArrayList<>();// 服务项目
for (AsbillSitemVo sitemVo : dto.getSitemVos()) {
SitemVo sitem = new SitemVo();
if (StringUtils.isNotBlank(sitemVo.getServiceItemSid())) {
sitem.setServiceItemSid(sitemVo.getServiceItemSid());
}
if (StringUtils.isNotBlank(sitemVo.getServiceItem())) {
sitem.setServiceItem(sitemVo.getServiceItem());
}
if (StringUtils.isNotBlank(sitemVo.getHourPrice())) {
sitem.setHourPrice(sitemVo.getHourPrice());
}
if (StringUtils.isNotBlank(sitemVo.getHours())) {
sitem.setHours(sitemVo.getHours());
}
if (StringUtils.isNotBlank(sitemVo.getPrice())) {
sitem.setPrice(sitemVo.getPrice());
}
sitemVos.add(sitem);
}
billDto.setSitemVos(sitemVos);
}
asBusrepairBillService.saveBill(billDto);
bill.setState(0);
baseMapper.updateById(bill);
}
}
}

91
yxt-as/src/main/java/com/yxt/anrui/as/feign/fms/FmsReceivesettle.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.feign.fms;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* Project: yxt-fms(yxt-fms) <br/>
* File: FmsReceivesettle.java <br/>
* Class: biz.api.fmsreceivesettle.FmsReceivesettle <br/>
* Description: 收款结算. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-04-01 17:04:33 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "收款结算", description = "收款结算")
@TableName("fms_receivesettle")
public class FmsReceivesettle extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("结算人姓名")
private String createByName; // 结算人姓名
@ApiModelProperty("来源单sid")
private String sourceBillSid; // 来源单sid
@ApiModelProperty("来源单号")
private String sourceBillNo; // 来源单号
@ApiModelProperty("业务类型key")
private String busTypeKey; // 业务类型key
@ApiModelProperty("业务类型value(销售出库、采购退货)")
private String busTypeValue; // 业务类型value(销售出库、采购退货)
@ApiModelProperty("付款人编号")
private String payerNo; // 付款人编号
@ApiModelProperty("付款人名称")
private String payerName; // 付款人名称
@ApiModelProperty("应收金额")
private BigDecimal receivableAmount; // 应收金额
@ApiModelProperty("订金抵扣")
private BigDecimal depositdeductAmount; // 订金抵扣
@ApiModelProperty("结算方式key")
private String settleKey; // 结算方式key
@ApiModelProperty("结算方式value")
private String settleValue; // 结算方式value
@ApiModelProperty("结算金额")
private BigDecimal settleAmount; // 结算金额
@ApiModelProperty("其他结算方式")
private String otherSettleKey; // 其他结算方式
@ApiModelProperty("其他结算金额")
private String otherSettleValue; // 其他结算金额
@ApiModelProperty("欠款金额")
private BigDecimal debts; // 欠款金额
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("结算时间")
private Date settleTime; // 结算时间
}

87
yxt-as/src/main/java/com/yxt/anrui/as/feign/fms/FmsReceivesettleDto.java

@ -0,0 +1,87 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.as.feign.fms;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-fms(yxt-fms) <br/>
* File: FmsReceivesettleDto.java <br/>
* Class: biz.api.fmsreceivesettle.FmsReceivesettleDto <br/>
* Description: 收款结算 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-04-01 17:04:33 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "收款结算 数据传输对象", description = "收款结算 数据传输对象")
public class FmsReceivesettleDto implements Dto {
private String sid; // sid
@ApiModelProperty("创建者")
private String createBySid;
@ApiModelProperty("结算人姓名")
private String createByName; // 结算人姓名
@ApiModelProperty("来源单sid")
private String sourceBillSid; // 来源单sid
@ApiModelProperty("来源单号")
private String sourceBillNo; // 来源单号
@ApiModelProperty("业务类型key")
private String busTypeKey; // 业务类型key
@ApiModelProperty("业务类型value(销售出库、采购退货)")
private String busTypeValue; // 业务类型value(销售出库、采购退货)
@ApiModelProperty("付款人编号")
private String payerNo; // 付款人编号
@ApiModelProperty("付款人名称")
private String payerName; // 付款人名称
@ApiModelProperty("应收金额")
private String receivableAmount; // 应收金额
@ApiModelProperty("订金抵扣")
private String depositdeductAmount; // 订金抵扣
@ApiModelProperty("结算方式key")
private String settleKey; // 结算方式key
@ApiModelProperty("结算方式value")
private String settleValue; // 结算方式value
@ApiModelProperty("结算金额")
private String settleAmount; // 结算金额
@ApiModelProperty("其他结算方式")
private String otherSettleKey; // 其他结算方式
@ApiModelProperty("其他结算金额")
private String otherSettleValue; // 其他结算金额
@ApiModelProperty("欠款金额")
private String debts; // 欠款金额
@ApiModelProperty("结算时间")
private String settleTime; // 结算时间
}

33
yxt-as/src/main/java/com/yxt/anrui/as/feign/fms/FmsReceivesettleFeign.java

@ -0,0 +1,33 @@
package com.yxt.anrui.as.feign.fms;
import com.yxt.anrui.as.feign.base.basemanufacturer.BaseManufacturerFeignFallback;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* @author Fan
* @description
* @date 2024/4/28 13:40
*/
@FeignClient(
contextId = "yxt-fms-FmsReceivesettle",
name = "yxt-fms",
path = "apiadmin/v1/fmsreceivesettle",
fallback = BaseManufacturerFeignFallback.class
)
public interface FmsReceivesettleFeign {
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody FmsReceivesettleDto dto);
@ApiOperation("根据来源SID获取一条记录")
@GetMapping("/fetchBySourceSid/{sid}")
public ResultBean<FmsReceivesettle> fetchBySourceSid(@PathVariable("sid") String sourceBillSid);
@ApiOperation("逻辑删除")
@PostMapping("/updateIsDelete")
public ResultBean updateIsDelete(@RequestParam("sourceSid") String sourceSid);
}
Loading…
Cancel
Save