58 changed files with 1776 additions and 298 deletions
@ -0,0 +1,16 @@ |
|||
package com.yxt.anrui.base.api.basevehicleout; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/31 16:04 |
|||
*/ |
|||
@Data |
|||
public class BaseSalesReturnVo { |
|||
|
|||
private String mainSid; |
|||
private String customerNo; |
|||
private String materialCode; |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.yxt.anrui.buscenter.api.bussalesreturnorders; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/31 11:52 |
|||
*/ |
|||
@Data |
|||
@TableName("bus_sales_return_orders") |
|||
public class BusSalesReturnOrders extends BaseEntity { |
|||
|
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车辆sid") |
|||
private String vinSid; |
|||
@ApiModelProperty("客户编码") |
|||
private String customerNo; |
|||
@ApiModelProperty("单据编号") |
|||
private String billNo; |
|||
@ApiModelProperty("物料编码") |
|||
private String materialCode; |
|||
@ApiModelProperty("应退数量") |
|||
private String mustQty; |
|||
@ApiModelProperty("实退数量") |
|||
private String realQty; |
|||
@ApiModelProperty("销售组织编码") |
|||
private String saleOrgId; |
|||
@ApiModelProperty("是否赠品") |
|||
private String isFree; |
|||
@ApiModelProperty("组织全路径") |
|||
private String orgSidPath; |
|||
} |
@ -0,0 +1,34 @@ |
|||
package com.yxt.anrui.buscenter.api.bussalesreturnorders; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/31 16:28 |
|||
*/ |
|||
@Data |
|||
public class BusSalesReturnOrdersDto implements Dto { |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车辆sid") |
|||
private String vinSid; |
|||
@ApiModelProperty("客户编码") |
|||
private String customerNo; |
|||
@ApiModelProperty("单据编号") |
|||
private String billNo; |
|||
@ApiModelProperty("物料编码") |
|||
private String materialCode; |
|||
@ApiModelProperty("应退数量") |
|||
private String mustQty; |
|||
@ApiModelProperty("实退数量") |
|||
private String realQty; |
|||
@ApiModelProperty("销售组织编码") |
|||
private String saleOrgId; |
|||
@ApiModelProperty("是否赠品") |
|||
private String isFree; |
|||
@ApiModelProperty("组织全路径") |
|||
private String orgSidPath; |
|||
} |
@ -0,0 +1,71 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.buscenter.api.bussalesreturnorders; |
|||
|
|||
import com.yxt.anrui.buscenter.api.bussealapply.*; |
|||
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandoverDto; |
|||
import com.yxt.anrui.buscenter.api.flow.FlowTaskVo; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import io.swagger.annotations.ApiParam; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* Project: bus_seal_apply(盖章申请管理) <br/> |
|||
* File: BusSealApplyFeign.java <br/> |
|||
* Class: com.yxt.anrui.buscenter.api.bussealapply.BusSealApplyFeign <br/> |
|||
* Description: 盖章申请表. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-04-24 13:45:23 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Api(tags = "销售退货单表") |
|||
@FeignClient( |
|||
contextId = "anrui-buscenter-BusSalesReturnOrders", |
|||
name = "anrui-buscenter", |
|||
path = "v1/bussalesreturnorders", |
|||
fallback = BusSealApplyFeignFallback.class) |
|||
public interface BusSalesReturnOrdersFeign { |
|||
|
|||
@ApiOperation("新增") |
|||
@PostMapping("/saveReturnOrders") |
|||
@ResponseBody |
|||
public ResultBean<String> saveReturnOrders(@RequestBody BusSalesReturnOrdersDto dto); |
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,57 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.buscenter.api.bussalesreturnorders; |
|||
|
|||
|
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: anrui-buscenter(业务管理) <br/> |
|||
* File: BusSalesOrderVehicleFeignFallback.java <br/> |
|||
* Class: com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeignFallback <br/> |
|||
* Description: 销售订单-车辆信息. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2022-04-27 13:39:04 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Component |
|||
public class BusSalesReturnOrdersFeignFallback implements BusSalesReturnOrdersFeign { |
|||
|
|||
|
|||
@Override |
|||
public ResultBean<String> saveReturnOrders(BusSalesReturnOrdersDto dto) { |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.yxt.anrui.buscenter.biz.bussalesreturnorders; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.buscenter.api.bussalesreturnorders.BusSalesReturnOrders; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/5/16 13:53 |
|||
*/ |
|||
@Mapper |
|||
public interface BusSalesReturnOrdersMapper extends BaseMapper<BusSalesReturnOrders> { |
|||
|
|||
int selectNum(String bill); |
|||
} |
@ -0,0 +1,10 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.anrui.buscenter.biz.bussalesreturnorders.BusSalesReturnOrdersMapper"> |
|||
|
|||
<select id="selectNum" resultType="java.lang.Integer"> |
|||
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED), 0) as code |
|||
from bus_sales_return_orders |
|||
where billNo LIKE concat(#{bill}, '%') |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,29 @@ |
|||
package com.yxt.anrui.buscenter.biz.bussalesreturnorders; |
|||
|
|||
import com.yxt.anrui.buscenter.api.bussalesreturnorders.BusSalesReturnOrdersDto; |
|||
import com.yxt.anrui.buscenter.api.bussalesreturnorders.BusSalesReturnOrdersFeign; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/5/16 13:54 |
|||
*/ |
|||
@Api(tags = "销售退货单") |
|||
@RestController("com.yxt.anrui.buscenter.biz.bussalesreturnorders.BusSalesReturnOrdersRest") |
|||
@RequestMapping("v1/bussalesreturnorders") |
|||
public class BusSalesReturnOrdersRest implements BusSalesReturnOrdersFeign { |
|||
|
|||
@Autowired |
|||
private BusSalesReturnOrdersService busSalesReturnOrdersService; |
|||
@Override |
|||
public ResultBean<String> saveReturnOrders(BusSalesReturnOrdersDto dto) { |
|||
return busSalesReturnOrdersService.saveReturnOrders(dto); |
|||
} |
|||
} |
@ -0,0 +1,61 @@ |
|||
package com.yxt.anrui.buscenter.biz.bussalesreturnorders; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.base.common.enums.BillTypeEnum; |
|||
import com.yxt.anrui.base.common.utils.Rule; |
|||
import com.yxt.anrui.base.common.utils.domain.BillNo; |
|||
import com.yxt.anrui.buscenter.api.bushandoverprepare.HandoverInformationIntemVo; |
|||
import com.yxt.anrui.buscenter.api.bussalesreturnorders.BusSalesReturnOrders; |
|||
import com.yxt.anrui.buscenter.api.bussalesreturnorders.BusSalesReturnOrdersDto; |
|||
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformation; |
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign; |
|||
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo; |
|||
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/5/16 13:53 |
|||
*/ |
|||
@Service |
|||
public class BusSalesReturnOrdersService extends MybatisBaseService<BusSalesReturnOrdersMapper, BusSalesReturnOrders> { |
|||
|
|||
@Autowired |
|||
private SysOrganizationFeign sysOrganizationFeign; |
|||
|
|||
@Autowired |
|||
private SysStaffOrgFeign sysStaffOrgFeign; |
|||
|
|||
public ResultBean<String> saveReturnOrders(BusSalesReturnOrdersDto dto) { |
|||
ResultBean<String> rb = ResultBean.fireFail(); |
|||
BusSalesReturnOrders busSalesReturnOrders = new BusSalesReturnOrders(); |
|||
BeanUtil.copyProperties(dto, busSalesReturnOrders, "id", "sid"); |
|||
baseMapper.insert(busSalesReturnOrders); |
|||
return rb.success().setData(busSalesReturnOrders.getSid()); |
|||
} |
|||
|
|||
/** |
|||
* 生成交销售退货单单据编号 |
|||
* |
|||
* @param orgSid |
|||
* @return |
|||
*/ |
|||
public String getApplyCode(String orgSid) { |
|||
//获取分公司sid
|
|||
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(orgSid); |
|||
String orgCode = resultBean1.getData().getOrgCode(); |
|||
BillNo b = new BillNo(); |
|||
b.setOrgCode(orgCode); |
|||
b.setBillType(BillTypeEnum.XXTHS.getBillType()); |
|||
String bill = Rule.getBill(b); |
|||
int i = baseMapper.selectNum(bill); |
|||
String billNo = Rule.getBillNo(bill, i); |
|||
return billNo; |
|||
} |
|||
} |
@ -0,0 +1,54 @@ |
|||
package com.yxt.anrui.fin.api.kingdee.salesreturn; |
|||
|
|||
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable; |
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/8/31 10:48 |
|||
*/ |
|||
|
|||
/** |
|||
* 销售退货单 |
|||
*/ |
|||
@Data |
|||
public class SalesReturn { |
|||
@ApiModelProperty("单据类型") |
|||
public String billType = "XSTHD01_SYS"; |
|||
@ApiModelProperty("退货客户编码") |
|||
public String customerNo; |
|||
@ApiModelProperty("库存组织编码") |
|||
public String FStockOrgId; |
|||
@ApiModelProperty("单据编号") |
|||
public String billNo; |
|||
@ApiModelProperty("币别") |
|||
public String currency = "PRE001"; |
|||
@ApiModelProperty("日期") |
|||
public String FDate; |
|||
@ApiModelProperty("销售组织编码") |
|||
public String FSaleOrgId; |
|||
@ApiModelProperty("收款明细") |
|||
public List<SalesReturn.SalesReturnDetailDto> salesReturnDetails; |
|||
|
|||
@Data |
|||
public static class SalesReturnDetailDto implements Dto { |
|||
|
|||
@ApiModelProperty("物料编码") |
|||
public String FMaterialId; |
|||
@ApiModelProperty("库存单位") |
|||
public String FUnitID; |
|||
@ApiModelProperty("应退数量") |
|||
public String FMustQty; |
|||
@ApiModelProperty("实退数量") |
|||
public String FRealQty; |
|||
@ApiModelProperty("退货日期") |
|||
public String FDeliveryDate; |
|||
@ApiModelProperty("是否赠品") |
|||
public String FIsFree; |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.salesreturn; |
|||
|
|||
import com.alibaba.fastjson.JSON; |
|||
import com.alibaba.fastjson.JSONArray; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.alibaba.fastjson.parser.Feature; |
|||
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 封装转换的类 |
|||
*/ |
|||
public class SalesReturnOrdersCastToKingDeeBillFields { |
|||
/** |
|||
* 构造金蝶需要的数据结构 并对字段赋值 |
|||
* |
|||
* @param map_fEntityModel_ |
|||
* @param vehicleList |
|||
* @return |
|||
*/ |
|||
public static String getKingDeeData(Map<String, String> map_fEntityModel_, List<Map<String, String>> vehicleList) { |
|||
/** |
|||
* 取模板 |
|||
*/ |
|||
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/salesreturn/data.json"); |
|||
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/salesreturn/data_data.json"); |
|||
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/salesreturn/data_model.json"); |
|||
|
|||
//模板字符创转json
|
|||
JSONObject jsonObj = JSONObject.parseObject(readJsonFile, Feature.OrderedField); |
|||
JSONObject jsonFEntityData_ = JSONObject.parseObject(fEntityData_, Feature.OrderedField); |
|||
fEntityModel_ = KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_); |
|||
JSONObject jsonFEntityModel_ = JSONObject.parseObject(fEntityModel_, Feature.OrderedField); |
|||
|
|||
List<JSONObject> list_fEntity_ = new ArrayList<>(); |
|||
|
|||
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
|
|||
for (int i = 0; i < vehicleList.size(); i++) { |
|||
String fEntity_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/salesreturn/data_FEntity.json"); |
|||
Map<String, String> params = vehicleList.get(i); |
|||
Map<String, String> map_fEntity_ = new HashMap<>(); |
|||
for (Map.Entry<String, String> entry : params.entrySet()) { |
|||
map_fEntity_.put(entry.getKey(), entry.getValue()); |
|||
} |
|||
fEntity_ = KingDeeUtils.replaceTemplateParams(fEntity_, map_fEntity_); |
|||
list_fEntity_.add(JSONObject.parseObject(fEntity_, Feature.OrderedField)); |
|||
} |
|||
|
|||
jsonFEntityModel_.put("FEntity", JSONArray.parseArray(JSON.toJSONString(list_fEntity_))); |
|||
jsonFEntityData_.put("Model", JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_), Feature.OrderedField)); |
|||
jsonObj.put("data", jsonFEntityData_.toJSONString()); |
|||
|
|||
return jsonObj.toJSONString(); |
|||
} |
|||
} |
@ -0,0 +1,97 @@ |
|||
package com.yxt.anrui.fin.biz.kingdee.salesreturn; |
|||
|
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; |
|||
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl; |
|||
import com.yxt.anrui.fin.api.kingdee.otherarreceivable.OtherReceivable; |
|||
import com.yxt.anrui.fin.api.kingdee.salesreturn.SalesReturn; |
|||
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; |
|||
import com.yxt.common.base.utils.StringUtils; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class SalesReturnOrdersService extends FinKingDeeService { |
|||
|
|||
/** |
|||
* 生成的销售退货单的数据,推送到金蝶的平台中 |
|||
* |
|||
* @param salesReturn |
|||
* @return |
|||
*/ |
|||
public ResultBean salesReturnOrdersService(SalesReturn salesReturn) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
//业务表的主表数据集合
|
|||
Map<String, String> map_fEntityModel_ = new HashMap<>(); |
|||
//客户
|
|||
if (StringUtils.isBlank(salesReturn.getCustomerNo())) { |
|||
return rb.setMsg("客户编码不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FRetcustId", salesReturn.getCustomerNo()); |
|||
//库存组织
|
|||
if (StringUtils.isBlank(salesReturn.getFStockOrgId())) { |
|||
return rb.setMsg("库存组织不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FStockOrgId", salesReturn.getFStockOrgId()); |
|||
//单据编号
|
|||
if (StringUtils.isBlank(salesReturn.getBillNo())) { |
|||
return rb.setMsg("单据编号不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FBillNo", salesReturn.getBillNo()); |
|||
//业务日期
|
|||
if (StringUtils.isBlank(salesReturn.getFDate())) { |
|||
return rb.setMsg("业务日期不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FDate", salesReturn.getFDate()); |
|||
//销售组织
|
|||
if (StringUtils.isBlank(salesReturn.getFSaleOrgId())) { |
|||
return rb.setMsg("销售组织不能为空"); |
|||
} |
|||
map_fEntityModel_.put("FSaleOrgId", salesReturn.getFSaleOrgId()); |
|||
|
|||
List<SalesReturn.SalesReturnDetailDto> salesReturnDetailDtos = salesReturn.getSalesReturnDetails() == null ? new ArrayList<>() : salesReturn.getSalesReturnDetails(); |
|||
//准备 物料列表的数据
|
|||
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(salesReturnDetailDtos); |
|||
if (!vehicleListMap.getSuccess()) { |
|||
return rb.setMsg(vehicleListMap.getMsg()); |
|||
} |
|||
String kingDeeData = SalesReturnOrdersCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_, vehicleListMap.getData()); |
|||
try { |
|||
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.SAL_RETURNSTOCK.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL()); |
|||
if (!resultBean1.getSuccess()) { |
|||
log.info("销售退货单保存失败!"); |
|||
return rb.setMsg("销售退货单保存失败!"); |
|||
} |
|||
log.info("销售退货单保存成功!"); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
} |
|||
return rb; |
|||
} |
|||
|
|||
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<SalesReturn.SalesReturnDetailDto> collectionDetails) { |
|||
ResultBean<List<Map<String, String>>> rb = ResultBean.fireFail(); |
|||
List<Map<String, String>> collectionDetailMap = new ArrayList<>(); |
|||
for (int i = 0; i < collectionDetails.size(); i++) { |
|||
SalesReturn.SalesReturnDetailDto c = collectionDetails.get(i); |
|||
Map<String, String> m = new HashMap<>(); |
|||
if (StringUtils.isBlank(c.getFMaterialId())) { |
|||
return rb.setMsg("物料编码不能为空"); |
|||
} |
|||
if (StringUtils.isBlank(c.getFUnitID())) { |
|||
return rb.setMsg("库存单位不能为空"); |
|||
} |
|||
m.put("FMaterialId", c.getFMaterialId()); |
|||
m.put("FUnitID", c.getFUnitID()); |
|||
m.put("FRealQty", c.getFRealQty()); |
|||
m.put("FDeliveryDate", c.getFDeliveryDate()); |
|||
m.put("FIsFree", c.getFIsFree()); |
|||
collectionDetailMap.add(m); |
|||
} |
|||
return rb.success().setData(collectionDetailMap); |
|||
} |
|||
} |
@ -0,0 +1,4 @@ |
|||
{ |
|||
"formId": "SAL_RETURNSTOCK", |
|||
"data": "@KD_data" |
|||
} |
@ -0,0 +1,142 @@ |
|||
{ |
|||
"FENTRYID": "0", |
|||
"FRowType": "", |
|||
"FMapId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FMaterialId": { |
|||
"FNumber": "@KD_FMaterialId" |
|||
}, |
|||
"FAuxpropId": { |
|||
"FAUXPROPID__FF100001": { |
|||
"FNumber": "" |
|||
}, |
|||
"FAUXPROPID__FF100005": { |
|||
"FNumber": "" |
|||
}, |
|||
"FAUXPROPID__FF100002": { |
|||
"FNumber": "" |
|||
}, |
|||
"FAUXPROPID__FF100004": { |
|||
"FNumber": "" |
|||
}, |
|||
"FAUXPROPID__FF100006": { |
|||
"FNumber": "" |
|||
} |
|||
}, |
|||
"FUnitID": { |
|||
"FNumber": "@KD_FUnitID" |
|||
}, |
|||
"FInventoryQty": "0", |
|||
"FRealQty": "@KD_FRealQty", |
|||
"FParentMatId": { |
|||
"FNUMBER": "" |
|||
}, |
|||
"FPrice": "0", |
|||
"FTaxPrice": "0", |
|||
"FIsFree": "@KD_FIsFree", |
|||
"FTaxCombination": { |
|||
"FNumber": "" |
|||
}, |
|||
"FEntryTaxRate": "0", |
|||
"FBOMId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FReturnType": { |
|||
"FNumber": "THLX01_SYS" |
|||
}, |
|||
"FOwnerTypeId": "", |
|||
"FOwnerId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FProduceDate": "", |
|||
"FExpiryDate": "", |
|||
"FStockId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FStocklocId": { |
|||
"FSTOCKLOCID__FF100001": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100002": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100003": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100004": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100005": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100006": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100007": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100008": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100009": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSTOCKLOCID__FF100010": { |
|||
"FNumber": "" |
|||
} |
|||
}, |
|||
"FStockstatusId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FDeliveryDate": "@KD_FDeliveryDate", |
|||
"FMtoNo": "", |
|||
"FNote": "", |
|||
"FDiscountRate": "0", |
|||
"FPriceDiscount": "0", |
|||
"FAuxUnitQty": "0", |
|||
"FExtAuxUnitId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FExtAuxUnitQty": "0", |
|||
"FSalCostPrice": "0", |
|||
"FISCONSUMESUM": "", |
|||
"FLot": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSalUnitID": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSalUnitQty": "0", |
|||
"FSalBaseQty": "0", |
|||
"FPriceBaseQty": "0", |
|||
"FProjectNo": "", |
|||
"FQualifyType": "", |
|||
"FEOwnerSupplierId": { |
|||
"FNUMBER": "" |
|||
}, |
|||
"FIsOverLegalOrg": "false", |
|||
"FESettleCustomerId": { |
|||
"FNUMBER": "" |
|||
}, |
|||
"FThirdEntryId": "", |
|||
"FSOEntryId": "0", |
|||
"FPriceListEntry": { |
|||
"FNUMBER": "" |
|||
}, |
|||
"FARNOTJOINQTY": "0", |
|||
"FIsReturnCheck": "false", |
|||
"FTaxDetailSubEntity": [ |
|||
{ |
|||
"FDetailID": "0", |
|||
"FTaxRate": "0" |
|||
} |
|||
], |
|||
"FSerialSubEntity": [ |
|||
{ |
|||
"FDetailID": "0", |
|||
"FSerialNo": "", |
|||
"FSerialNote": "" |
|||
} |
|||
] |
|||
} |
@ -0,0 +1,13 @@ |
|||
{ |
|||
"Creator": "", |
|||
"NeedUpDateFields": [], |
|||
"NeedReturnFields": [], |
|||
"IsDeleteEntry": "True", |
|||
"SubSystemId": "", |
|||
"IsVerifyBaseDataField": "false", |
|||
"IsEntryBatchFill": "True", |
|||
"ValidateFlag": "True", |
|||
"NumberSearch": "True", |
|||
"InterationFlags": "", |
|||
"Model": {} |
|||
} |
@ -0,0 +1,112 @@ |
|||
{ |
|||
"FID": "0", |
|||
"FBillTypeID": { |
|||
"FNUMBER": "XSTHD01_SYS" |
|||
}, |
|||
"FBillNo": "@KD_FBillNo", |
|||
"FDate": "@KD_FDate", |
|||
"FSaleOrgId": { |
|||
"FNumber": "@KD_FSaleOrgId" |
|||
}, |
|||
"FRetcustId": { |
|||
"FNumber": "@KD_FRetcustId" |
|||
}, |
|||
"FSaledeptid": { |
|||
"FNumber": "" |
|||
}, |
|||
"FReturnReason": { |
|||
"FNumber": "" |
|||
}, |
|||
"FHeadLocId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FCorrespondOrgId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FTransferBizType": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSaleGroupId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSalesManId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FStockOrgId": { |
|||
"FNumber": "@KD_FStockOrgId" |
|||
}, |
|||
"FStockDeptId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FStockerGroupId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FStockerId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FHeadNote": "", |
|||
"FReceiveCustId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FReceiveAddress": "", |
|||
"FSettleCustId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FReceiveCusContact": { |
|||
"FNAME": "" |
|||
}, |
|||
"FPayCustId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FOwnerTypeIdHead": "", |
|||
"FOwnerIdHead": { |
|||
"FNumber": "" |
|||
}, |
|||
"FScanBox": "", |
|||
"FCDateOffsetUnit": "", |
|||
"FCDateOffsetValue": "0", |
|||
"FIsTotalServiceOrCost": "false", |
|||
"F_PAEZ_Assistant": { |
|||
"FNumber": "" |
|||
}, |
|||
"SubHeadEntity": { |
|||
"FEntryId": "0", |
|||
"FSettleCurrId": { |
|||
"FNumber": "PRE001" |
|||
}, |
|||
"FThirdBillNo": "", |
|||
"FThirdBillId": "", |
|||
"FThirdSrcType": "", |
|||
"FSettleOrgId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FSettleTypeId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FChageCondition": { |
|||
"FNumber": "" |
|||
}, |
|||
"FPriceListId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FDiscountListId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FLocalCurrId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FExchangeTypeId": { |
|||
"FNumber": "" |
|||
}, |
|||
"FExchangeRate": "0", |
|||
"FBuyerNick": "", |
|||
"FReceiverAddress": "", |
|||
"FReceiverName": "", |
|||
"FReceiverMobile": "", |
|||
"FReceiverCountry": "", |
|||
"FReceiverState": "", |
|||
"FReceiverCity": "", |
|||
"FReceiverDistrict": "", |
|||
"FReceiverPhone": "" |
|||
} |
|||
} |
@ -0,0 +1,208 @@ |
|||
一、请求参数说明: |
|||
1.formid:业务对象表单Id,字符串类型(必录) |
|||
2.data:Json格式数据(详情参考Json格式数据)(必录) |
|||
2.1.Creator:创建者内码(非必录) |
|||
2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key) |
|||
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key) |
|||
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录) |
|||
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录) |
|||
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录) |
|||
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录) |
|||
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录) |
|||
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录) |
|||
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult) |
|||
2.11.Model:表单数据包,Json类型(必录) |
|||
|
|||
字段说明: |
|||
关联应收金额:FARJOINAMOUNT |
|||
累计应收数量(销售基本):FBASEARQTY |
|||
业务流程:FBFLowId |
|||
累计应收金额:FARAMOUNT |
|||
订单类型:FSOBILLTYPEID |
|||
源单编号:FSrcBillNo |
|||
销售成本价:FSalCostPrice |
|||
关联应收数量(计价基本):FBaseARJoinQty |
|||
价税合计:FAllAmount |
|||
税额(本位币):FTaxAmount_LC |
|||
税额:FEntryTaxAmount |
|||
价税合计(本位币):FAllAmount_LC |
|||
退货日期:FDeliveryDate (必填项) |
|||
净价:FTaxNetPrice |
|||
是否赠品:FIsFree |
|||
序列号单位:FSNUnitID |
|||
销售数量:FSalUnitQty |
|||
销售单位:FSalUnitID |
|||
计价基本数量:FPriceBaseQty |
|||
销售基本数量:FSalBaseQty |
|||
库存基本分母:FStockBaseDen |
|||
销售基本分子:FSalBaseNum |
|||
质量类型:FQualifyType |
|||
当前库存:FInventoryQty |
|||
项目编号:FProjectNo |
|||
计划跟踪号:FMtoNo |
|||
序列号单位数量:FSNQty |
|||
拒收标志:FRefuseFlag |
|||
实退数量(辅单位):FExtAuxUnitQty |
|||
辅单位:FExtAuxUnitId |
|||
消耗汇总:FISCONSUMESUM |
|||
金额(本位币):FAmount_LC |
|||
仓位:FStocklocId |
|||
保质期:FExpPeriod |
|||
保质期单位:FExpUnit |
|||
客户物料编码:FMapId |
|||
退货类型:FReturnType (必填项) |
|||
批号:FLot |
|||
客户物料名称:FMapName |
|||
源单类型:FSrcBillTypeID |
|||
(作废)关联开票数量(基本单位):FBaseInvoicedQty |
|||
关联应收数量(计价):FInvoicedQty |
|||
备注:FNote |
|||
累计应收数量(销售):FSumInvoicedQty |
|||
库存更新标示:FStockFlag |
|||
累计收款金额:FSumRecievedAmt |
|||
累计开票金额:FSumInvoicedAmt |
|||
(作废)累计开票数量(基本单位):FBaseSumInvoicedQty |
|||
折前金额:FBefDisAmt |
|||
最低限价:FLimitDownPrice |
|||
系统定价:FSysPrice |
|||
折前价税合计:FBefDisAllAmt |
|||
金额:FAmount |
|||
折扣额:FDiscount |
|||
折扣率%:FDiscountRate |
|||
价格系数:FPriceCoefficient |
|||
计价数量:FPriceUnitQty |
|||
计价单位:FPriceUnitId |
|||
总成本(本位币):FCostAmount_LC |
|||
单价:FPrice |
|||
税率%:FEntryTaxRate |
|||
税组合:FTaxCombination |
|||
含税单价:FTaxPrice |
|||
第三方单据编号:FThirdBillNo |
|||
第三方单据内码:FThirdBillId |
|||
第三方系统来源:FThirdSrcType |
|||
会员名称:FBuyerNick |
|||
收货人国家:FReceiverCountry |
|||
收货人地址:FReceiverAddress |
|||
收货人:FReceiverName |
|||
价外税:FIsPriceExcludeTax |
|||
价目表:FPriceListId |
|||
是否含税:FIsIncludedTax |
|||
税额:FBillTaxAmount |
|||
折扣表:FDiscountListId |
|||
跨组织结算生成:FISGENFORIOS |
|||
货主供应商:FOwnerSupplierID |
|||
结算组织客户:FSETTLECustomerID |
|||
收货人城市:FReceiverCity |
|||
卖方代扣代缴:FSellerWithholding |
|||
增值税:FVAT |
|||
计入成本金额:FCostAmount |
|||
买方代扣代缴:FBuyerWithholding |
|||
备注:FSerialNote |
|||
序列号:FSerialId |
|||
序列号:FSerialNo |
|||
计入成本比例%:FCostPercent |
|||
收货人省份:FReceiverState |
|||
收货人地区:FReceiverDistrict |
|||
收货人手机:FReceiverMobile |
|||
收货人电话:FReceiverPhone |
|||
税额:FTaxAmount |
|||
税率%:FTaxRate |
|||
税率名称:FTaxRateId |
|||
金额:FBillAmount |
|||
产品类型:FRowType |
|||
退货检验:FIsReturnCheck |
|||
销售订单EntryId:FSOEntryId |
|||
父项产品:FParentMatId |
|||
第三方单据分录ID:FThirdEntryId |
|||
父项标识:FParentRowId |
|||
行标识:FRowId |
|||
未关联应收数量(计价单位):FARNOTJOINQTY |
|||
明细货主供应商:FEOwnerSupplierId |
|||
携带的主业务单位:FSRCBIZUNITID |
|||
关联应收数量(库存基本):FStockBaseARJoinQty |
|||
组织间结算跨法人标识:FIsOverLegalOrg |
|||
行价目表:FPriceListEntry |
|||
关联应收数量(销售基本):FSalBaseARJoinQty |
|||
明细结算组织客户:FESettleCustomerId |
|||
单价折扣:FPriceDiscount |
|||
汇率精度:FPrecision |
|||
总成本(本位币):FBillCostAmount_LC |
|||
总成本:FBillCostAmount |
|||
价税合计(本位币):FBillAllAmount_LC |
|||
价税合计:FBillAllAmount |
|||
税额(本位币):FBillTaxAmount_LC |
|||
金额(本位币):FBillAmount_LC |
|||
汇率:FExchangeRate |
|||
收款条件:FChageCondition |
|||
结算方式:FSettleTypeId |
|||
车辆类型:F_PAEZ_BaseProperty |
|||
结算组织:FSettleOrgId (必填项) |
|||
汇率类型:FExchangeTypeId |
|||
本位币:FLocalCurrId |
|||
结算币别:FSettleCurrId (必填项) |
|||
单据类型:FBillTypeIDFBillTypeID (必填项) |
|||
收货方:FReceiveCustId |
|||
货主:FOwnerIdHead |
|||
货主类型:FOwnerTypeIdHead |
|||
销售部门:FSaledeptid |
|||
销售组:FSaleGroupId |
|||
库存部门:FStockDeptId |
|||
销售员:FSalesManId |
|||
创建人:FCreatorId |
|||
付款方:FPayCustId |
|||
结算方:FSettleCustId |
|||
仓管员:FStockerId |
|||
销售组织:FSaleOrgId (必填项) |
|||
单据状态:FDocumentStatus |
|||
单据编号:FBillNo |
|||
日期:FDate (必填项) |
|||
库存组:FStockerGroupId |
|||
退货客户:FRetcustId (必填项) |
|||
库存组织:FStockOrgId (必填项) |
|||
创建日期:FCreateDate |
|||
审核人:FApproverId |
|||
最后修改日期:FModifyDate |
|||
最后修改人:FModifierId |
|||
审核日期:FApproveDate |
|||
作废状态:FCancelStatus |
|||
作废日期:FCancelDate |
|||
作废人:FCancellerId |
|||
物料类别:FMaterialType |
|||
规格型号:FMaterialModel |
|||
物料名称:FMaterialName |
|||
库存单位:FUnitID (必填项) |
|||
仓库:FStockId |
|||
实退数量:FRealQty |
|||
应退数量:FMustqty |
|||
物料编码:FMaterialId (必填项) |
|||
创建日期偏移量:FCDateOffsetValue |
|||
创建日期偏移单位:FCDateOffsetUnit |
|||
备注:FHeadNote |
|||
项目类别:F_PAEZ_Assistant |
|||
整单服务标识:FIsTotalServiceOrCost |
|||
库存状态:FStockstatusId |
|||
库存辅单位:FAuxUnitId |
|||
库存基本数量:FBaseunitQty |
|||
基本单位:FBaseunitId |
|||
库存辅单位数量:FAuxUnitQty |
|||
订单单号:FOrderNo |
|||
总成本:FEntryCostAmount |
|||
成本价(本位币):FCostPrice |
|||
有效期至:FExpiryDate |
|||
保管者类型:FKeeperTypeId |
|||
货主:FOwnerId (必填项) |
|||
货主类型:FOwnerTypeId |
|||
保管者:FKeeperId |
|||
生产日期:FProduceDate |
|||
辅助属性:FAuxpropId |
|||
BOM版本:FBOMId |
|||
对应组织:FCorrespondOrgId |
|||
跨组织业务类型:FTransferBizType |
|||
收货方地址:FReceiveAddress |
|||
退货原因:FReturnReason |
|||
业务类型:FBussinessType |
|||
交货地点:FHeadLocId |
|||
信用检查结果:FCreditCheckResult |
|||
组织间结算跨法人标识:FIsInterLegalPerson |
|||
收货方联系人:FReceiveCusContact |
|||
序列号上传:FScanBox |
@ -1,13 +1,40 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.anrui.riskcenter.biz.loancapitalcreditresult.LoanCapitalCreditResultMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
<select id="selectPageVo" resultType="com.yxt.anrui.riskcenter.api.loancapitalcreditresult.LoanCapitalCreditResultVo"> |
|||
SELECT * FROM loan_capital_credit_result <where> ${ew.sqlSegment} </where> |
|||
</select> |
|||
|
|||
<select id="selectListAllVo" resultType="com.yxt.anrui.riskcenter.api.loancapitalcreditresult.LoanCapitalCreditResultVo"> |
|||
SELECT * FROM loan_capital_credit_result <where> ${ew.sqlSegment} </where> |
|||
</select> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
<select id="selectPageVo" |
|||
resultType="com.yxt.anrui.riskcenter.api.loancapitalcreditresult.LoanCapitalCreditResultVo"> |
|||
SELECT |
|||
lr.`sid`, |
|||
bo.`useOrgName`, |
|||
bo.`orgName`, |
|||
bo.`staffName`, |
|||
bl.`loanCotractNo`, |
|||
bl.`vehCount` AS num, |
|||
bl.`borrowerName`, |
|||
bl.`bankName`, |
|||
bl.`policyName`, |
|||
lr.`capCarefulDate`, |
|||
lr.`capCarefulResult`, |
|||
bl.`bankContractNo`, |
|||
lr.loanContractSid |
|||
FROM |
|||
loan_capital_credit_result lr |
|||
LEFT JOIN anrui_buscenter.bus_sales_order_loancontract bl |
|||
ON lr.`loanContractSid` = bl.`sid` |
|||
LEFT JOIN anrui_buscenter.`bus_sales_order` bo |
|||
ON lr.`saleOrderSid` = bo.`sid` |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
</select> |
|||
|
|||
<select id="selectListAllVo" |
|||
resultType="com.yxt.anrui.riskcenter.api.loancapitalcreditresult.LoanCapitalCreditResultVo"> |
|||
SELECT * FROM loan_capital_credit_result |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
</select> |
|||
</mapper> |
Loading…
Reference in new issue