feat: 供三方调用接口开发

dev_fifo1.0
chenhc 1 year ago
parent 6dc6e5ab3b
commit 1cde4618ad

@ -0,0 +1,71 @@
package com.glxp.api.controller.thrsys;
import cn.hutool.core.util.ObjectUtil;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.forthird.ForInvOutScanCodeRequest;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.forthird.ForInvOutScanCodeResponse;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.service.forthird.ForThirdSysApiService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
@RestController
public class ForThirdSysApiController {
@Resource
ForThirdSysApiService forThirdSysApiService;
/**
* B001 /
* @param filterInvProductRequest
* @return
*/
@PostMapping("/forThirdSysApi/inv/products/filter")
public BaseResponse invProductsFilter(@RequestBody FilterInvProductRequest filterInvProductRequest) {
if (ObjectUtil.isNull(filterInvProductRequest)){
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
PageSimpleResponse<InvProductResponse> pageSimpleResponse =
forThirdSysApiService.invProductsFilter(filterInvProductRequest);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* B002
* @param filterUdiRelRequest
* @return
*/
@PostMapping("/forThirdSysApi/basic/products/search")
public BaseResponse basicProductsSearch(@RequestBody FilterUdiRelRequest filterUdiRelRequest) {
if (ObjectUtil.isNull(filterUdiRelRequest)){
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse =
forThirdSysApiService.basicProductsSearch(filterUdiRelRequest);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* B003 /退
* @param forInvOutScanCodeRequest
* @return
*/
@PostMapping("/forThirdSysApi/inv/out/scanCode")
public BaseResponse invOutScanCode(@RequestBody @Valid ForInvOutScanCodeRequest forInvOutScanCodeRequest) {
ForInvOutScanCodeResponse forInvOutScanCodeResponse = forThirdSysApiService.invOutScanCode(forInvOutScanCodeRequest);
return ResultVOUtils.success(forInvOutScanCodeResponse);
}
}

@ -0,0 +1,33 @@
package com.glxp.api.req.forthird;
import lombok.Data;
@Data
public class ForBasicProductsSearchFilter {
/**
* UDI
*/
private String udiCode;
/**
*
*/
private String mainId;
/**
* DI
*/
private String nameCode;
/**
*
*/
private String cpmctymc;
/**
*
*/
private String ggxh;
}

@ -0,0 +1,457 @@
package com.glxp.api.req.forthird;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class ForInvOutScanCodeRequest {
private IoOrderRequest ioOrderRequest;
private List<IoOrderCodeRequest> codeRequestList;
@Data
static class IoOrderRequest{
/**
*
*/
@TableField(value = "billNo")
private String billNo;
/**
*
*/
@TableField(value = "corpOrderId")
private String corpOrderId;
/**
*
*/
@TableField(value = "mainAction")
private String mainAction;
/**
*
*/
@TableField(value = "`action`")
private String action;
/**
*
*/
@TableField(value = "fromCorp")
private String fromCorp;
/**
*
*/
@TableField(value = "fromDeptCode")
private String fromDeptCode;
/**
*
*/
@TableField(value = "fromInvCode")
private String fromInvCode;
/**
* 1.UDIMS2.3.pda4.pda5.pc
*/
@TableField(value = "fromType")
private Integer fromType;
/**
* 1:稿2:;3:;4:;5:;6:;7:;8:
*/
@TableField(value = "`status`")
private Integer status;
/**
* 1.稿2:;3:
*/
@TableField(value = "dealStatus")
private Integer dealStatus;
/**
*
*/
@TableField(value = "`createUser`")
private String createUser;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateUser")
private String updateUser;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "reviewUser")
private String reviewUser;
/**
*
*/
@TableField(value = "auditTime")
private Date auditTime;
@TableField(value = "checkUser")
private String checkUser;
@TableField(value = "checkTime")
private Date checkTime;
/**
* ID
*/
@TableField(value = "customerId")
private String customerId;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "outChangeEnable")
private Boolean outChangeEnable;
/**
*
*/
@TableField(value = "originUllageSupNo")
private String originUllageSupNo;
/**
*
*/
@TableField(value = "ullageSupNo")
private String ullageSupNo;
/**
*
*/
@TableField(value = "supplementNo")
private String supplementNo;
/**
* (
*/
@TableField(value = "thirdBillNo")
private String thirdBillNo;
/**
* 使,
*/
@TableField(value = "replicateNo")
private String replicateNo;
/**
*
*/
@TableField(value = "printRemark")
private String printRemark;
/**
*
*/
@TableField(value = "remark")
private String remark;
@TableField(value = "errMsg")
private String errMsg;
@TableField(value = "preOutBillNo")
private String preOutBillNo;
@TableField(value = "preInBillNo")
private String preInBillNo;
@TableField(value = "entrustEnd")
private boolean entrustEnd;
@TableField(value = "reviewSp")
private boolean reviewSp; //是否验收外网单据时,需忽略流转更改为待审核
@TableField(value = "confirmUser")
private String confirmUser;
/**
* 1.2:,3. 稿
*/
@TableField(value = "orderType")
private Integer orderType;
//单据同步状态
@TableField(value = "syncStatus")
private Integer syncStatus;
@TableField(value = "fromReceiveBillNo")
private String fromReceiveBillNo;
@TableField(value = "fromThrBillNo")
private String fromThrBillNo;
/**
* /0.1.2.
*/
@TableField(value = "exportStatus")
private Integer exportStatus;
@TableField(value = "busType")
private Integer busType; //1:正常2送货3.到货
@TableField(value = "deliveryStatus")
private Integer deliveryStatus; //单据送货验收状态
@TableField(value = "processStatus")
private Integer processStatus; //退货单据处理状态
@TableField(value = "inCodeStatus")
private Integer inCodeStatus; //内部码生成状态
@TableField(value = "relKey")
private String relKey; //关联单据唯一键
@TableField(value = "suppleCount")
private Integer suppleCount; //补单次数
@TableField(value = "checkStatus")
private Integer checkStatus; //确认状态
// 预验收按单出库,退货
@TableField(value = "checkPreInOrders")
private String checkPreInOrders;
// 预验收按货位出库,退货
@TableField(value = "checkPreInInvCode")
private String checkPreInInvCode;
// 预验收按货位出库,退货
@TableField(value = "checkPreInSpaceCode")
private String checkPreInSpaceCode;
// 当前货位
@TableField(value = "curSpaceCode")
private String curSpaceCode;
// 预验收、寄售当前货位
@TableField(value = "preCurSpaceCode")
private String preCurSpaceCode;
/**
*
*/
@TableField(value = "outSickInfo")
private String outSickInfo;
@TableField(value = "fromSpmsOrders")
private String fromSpmsOrders;
/**
*
*/
@TableField(value = "preInSelected")
private Integer preInSelected;
/**
*
*/
@TableField(value = "sickerAdNum")
private String sickerAdNum;
/**
* code
*/
@TableField(value = "fromPatientCode")
private String fromPatientCode;
}
@Data
static class IoOrderCodeRequest{
/**
* UDI
*/
@TableField(value = "code")
private String code;
public void setCode(String code) {
this.code = code;
this.setErrUdiCode(code.replace("\u001D", ""));
}
/**
* GS1
*/
@TableField(value = "errUdiCode")
private String errUdiCode;
/**
*
*/
@TableField(value = "mainAction")
private String mainAction;
/**
*
*/
@TableField(value = "`action`")
private String action;
/**
*
*/
@TableField(value = "orderId")
private String orderId;
/**
*
*/
@TableField(value = "corpOrderId")
private String corpOrderId;
/**
* DI
*/
@TableField(value = "nameCode")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "produceDate")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
private String serialNo;
/**
*
*/
@TableField(value = "packageLevel")
private String packageLevel;
/**
* ID
*/
@TableField(value = "supId")
private String supId;
/**
* ID
*/
@TableField(value = "relId")
private Long relId;
/**
*
*/
@TableField(value = "`count`")
private Integer count;
/**
*
*/
@TableField(value = "reCount")
private Integer reCount;
/**
*
*/
@TableField(value = "deptCode")
private String deptCode;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "warehouseCode")
private String warehouseCode;
/**
*
*/
@TableField(value = "preSpaceCode")
private String preSpaceCode;
@TableField(value = "preInSpaceCode")
private String preInSpaceCode;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "inBatchNo")
private String inBatchNo;
}
}

@ -0,0 +1,39 @@
package com.glxp.api.req.forthird;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class ForInvProductsFilter extends ListPageRequest {
/**
* UDI+ 01069412732363351123050210D230262121D23026201181
*/
private String udiCode;
/**
* DI 06941273236335
*/
private String nameCode;
/**
* 线
*/
private String cpmctymc;
/**
* 202006
*/
private String batchNo;
/**
* / 1001
*/
private String invCode;
/**
*
*/
private String supName;
}

@ -0,0 +1,13 @@
package com.glxp.api.res.forthird;
import lombok.Data;
@Data
public class ForInvOutScanCodeResponse {
/**
* UDI
*/
private String billNo;
}

@ -0,0 +1,20 @@
package com.glxp.api.service.forthird;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.forthird.ForInvOutScanCodeRequest;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.forthird.ForInvOutScanCodeResponse;
import com.glxp.api.res.inv.InvProductResponse;
import java.util.List;
public interface ForThirdSysApiService {
PageSimpleResponse<InvProductResponse> invProductsFilter(FilterInvProductRequest filterInvProductRequest);
PageSimpleResponse<UdiRelevanceResponse> basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest);
ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest);
}

@ -0,0 +1,117 @@
package com.glxp.api.service.forthird.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.forthird.ForInvOutScanCodeRequest;
import com.glxp.api.req.inv.FilterInvProductRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.forthird.ForInvOutScanCodeResponse;
import com.glxp.api.res.inv.InvProductPageResponse;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.forthird.ForThirdSysApiService;
import com.glxp.api.service.inv.impl.InvProductService;
import com.glxp.api.util.StringUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Slf4j
@Service
@Transactional(rollbackFor = Exception.class)
public class ForThirdSysApiServiceImpl implements ForThirdSysApiService {
@Resource
InvProductService invProductService;
@Resource
UdiRelevanceService udiRelevanceService;
@Override
public PageSimpleResponse<InvProductResponse> invProductsFilter(FilterInvProductRequest filterInvProductRequest) {
buildForInvProductsFilter(filterInvProductRequest);
List<InvProductResponse> list = invProductService.filterList(filterInvProductRequest);
PageInfo<InvProductResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<InvProductResponse> pageResponse = new InvProductPageResponse();
pageResponse.setList(pageInfo.getList());
pageResponse.setTotal(pageInfo.getTotal());
return pageResponse;
}
@Override
public PageSimpleResponse<UdiRelevanceResponse> basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest) {
buildForBasicProductsSearchFilter(filterUdiRelRequest);
List<UdiRelevanceResponse> list = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<UdiRelevanceResponse> pageResponse = new InvProductPageResponse();
pageResponse.setList(pageInfo.getList());
pageResponse.setTotal(pageInfo.getTotal());
return pageResponse;
}
@Override
public ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest) {
ForInvOutScanCodeResponse forInvOutScanCodeResponse = new ForInvOutScanCodeResponse();
System.out.println(JSON.toJSONString(forInvOutScanCodeRequest));
// TODO: 2024/3/15 以获取到业务单据实体 需要对单据进行操作 成功返回 单据号
String billNo = "1212121";
forInvOutScanCodeResponse.setBillNo(billNo);
return forInvOutScanCodeResponse;
}
private void buildForBasicProductsSearchFilter(FilterUdiRelRequest filterUdiRelRequest) {
String udiCode = filterUdiRelRequest.getUdiCode().trim();
if (StringUtils.isNotEmpty(udiCode)){
UdiEntity udiEntity = FilterUdiUtils.getUdi(udiCode);
if (ObjectUtil.isNull(udiEntity)) throw new JsonException("udiCode:["+udiCode+"],解析错误!");
String udi = udiEntity.getUdi().trim();
if (StringUtils.isNotEmpty(udi)) filterUdiRelRequest.setNameCode(udi);
}
if (filterUdiRelRequest.getPage() == null) {
filterUdiRelRequest.setPage(1);
}
if (filterUdiRelRequest.getLimit() == null) {
filterUdiRelRequest.setLimit(10);
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
}
private void buildForInvProductsFilter(FilterInvProductRequest filterInvProductRequest) {
String udiCode = filterInvProductRequest.getUdiCode().trim();
if (StringUtils.isNotEmpty(udiCode)){
UdiEntity udiEntity = FilterUdiUtils.getUdi(udiCode);
if (ObjectUtil.isNull(udiEntity)) throw new JsonException("udiCode:["+udiCode+"],解析错误!");
String udi = udiEntity.getUdi().trim();
String batchNo = udiEntity.getBatchNo().trim();
if (StringUtils.isNotEmpty(udi)) filterInvProductRequest.setNameCode(udi);
if (StringUtils.isNotEmpty(batchNo)) filterInvProductRequest.setBatchNo(batchNo);
}
if (filterInvProductRequest.getPage() == null) {
filterInvProductRequest.setPage(1);
}
if (filterInvProductRequest.getLimit() == null) {
filterInvProductRequest.setLimit(10);
}
if (filterInvProductRequest.getPage() != null) {
int offset = (filterInvProductRequest.getPage() - 1) * filterInvProductRequest.getLimit();
PageHelper.offsetPage(offset, filterInvProductRequest.getLimit());
}
}
}

@ -52,7 +52,7 @@
AND saf.status = #{status} AND saf.status = #{status}
</if> </if>
<if test="type == 1"> <if test="type == 1">
AND (saf.status is null or saf.status=1 or saf.status=3) AND (saf.status is null or saf.status=0 or saf.status=1 or saf.status=3)
</if> </if>
<if test="type == 2"> <if test="type == 2">
AND (saf.status=1) AND (saf.status=1)

@ -856,3 +856,30 @@ SET `configId` = 23, `type` = '1', `isShow` = 1, `columnName` = 'auditRemark', `
`buttonRule` = '[{\"type\":\"text\",\"size\":\"small\",\"style\":\"\",\"name\":\"审核过程\",\"clickFuc\":\"showApprovalFlowDetail\"}]', `buttonRule` = '[{\"type\":\"text\",\"size\":\"small\",\"style\":\"\",\"name\":\"审核过程\",\"clickFuc\":\"showApprovalFlowDetail\"}]',
`number` = NULL, `lineNumber` = NULL, `clickFuc` = NULL, `size` = NULL, `style` = NULL, `disabled` = NULL, `checkRules` = NULL, `number` = NULL, `lineNumber` = NULL, `clickFuc` = NULL, `size` = NULL, `style` = NULL, `disabled` = NULL, `checkRules` = NULL,
`inputType` = NULL, `disabledFuc` = NULL, `expression` = NULL, `dataFuc` = NULL, `isShowXx` = NULL WHERE `id` = 258; `inputType` = NULL, `disabledFuc` = NULL, `expression` = NULL, `dataFuc` = NULL, `isShowXx` = NULL WHERE `id` = 258;
UPDATE sys_custom_config_detail
SET `configId` = 19, `type` = '1', `isShow` = 1, `columnName` = 'oper', `columnDesc` = '操作', `columnType` = 'button',
`colorRule` = '', `sort` = NULL, `lableRule` = '', `width` = 500, `tooltip` = NULL,
`buttonRule` = '[{\"type\":\"text\",\"size\":\"small\",\"style\":\"\",\"name\":\"编辑\",\"clickFuc\":\"newDistributionForm\",\"disabledFuc\":\"row.status==2\",\"hasPermi\":\"\"},{\"type\":\"text\",\"size\":\"small\",\"style\":\"\",\"name\":\"打印\",\"clickFuc\":\"printOrder\"},{\"type\":\"text\",\"size\":\"small\",\"style\":\"\",\"name\":\"删除\",\"clickFuc\":\"deleteDialog\"}]',
`number` = NULL, `lineNumber` = NULL, `clickFuc` = NULL, `size` = NULL, `style` = NULL, `disabled` = NULL, `checkRules` = NULL,
`inputType` = NULL, `disabledFuc` = NULL, `expression` = NULL, `dataFuc` = NULL, `isShowXx` = NULL WHERE `id` = 215;
UPDATE sys_custom_config_detail
SET `configId` = 25, `type` = '1', `isShow` = 1, `columnName` = 'auditRemark', `columnDesc` = '审核详情', `columnType` = 'button',
`colorRule` = NULL, `sort` = NULL, `lableRule` = NULL, `width` = NULL, `tooltip` = NULL,
`buttonRule` = '[{\"type\":\"text\",\"size\":\"small\",\"style\":\"\",\"name\":\"审核过程\",\"clickFuc\":\"showApprovalFlowDetail\"}]',
`number` = NULL, `lineNumber` = NULL, `clickFuc` = NULL, `size` = NULL, `style` = NULL, `disabled` = NULL, `checkRules` = NULL,
`inputType` = NULL, `disabledFuc` = NULL, `expression` = NULL, `dataFuc` = NULL, `isShowXx` = NULL WHERE `id` = 2713;
UPDATE sys_custom_config_detail
SET `configId` = 25, `type` = '1', `isShow` = 1, `columnName` = 'status', `columnDesc` = '单据状态', `columnType` = 'eltag',
`colorRule` = '', `sort` = NULL, `lableRule` = '{\"0\":\"草稿\",\"1\":\"未审核\",\"2\":\"已审核\",\"3\":\"已拒绝\"}',
`width` = NULL, `tooltip` = NULL, `buttonRule` = '', `number` = NULL, `lineNumber` = NULL, `clickFuc` = NULL,
`size` = NULL, `style` = NULL, `disabled` = NULL, `checkRules` = NULL, `inputType` = NULL, `disabledFuc` = NULL,
`expression` = NULL, `dataFuc` = NULL, `isShowXx` = NULL WHERE `id` = 2711;
UPDATE sys_custom_config_detail
SET `configId` = 19, `type` = '1', `isShow` = 1, `columnName` = 'status', `columnDesc` = '单据状态', `columnType` = 'eltag',
`colorRule` = '', `sort` = NULL, `lableRule` = '{\"0\":\"草稿\",\"1\":\"未审核\",\"2\":\"已审核\",\"3\":\"已拒绝\"}',
`width` = NULL, `tooltip` = NULL, `buttonRule` = '', `number` = NULL, `lineNumber` = NULL, `clickFuc` = NULL,
`size` = NULL, `style` = NULL, `disabled` = NULL, `checkRules` = NULL, `inputType` = NULL, `disabledFuc` = NULL,
`expression` = NULL, `dataFuc` = NULL, `isShowXx` = NULL WHERE `id` = 212;

Loading…
Cancel
Save