package com.vincent.rsf.server.api.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.controller.params.BaseMatParms; import com.vincent.rsf.server.api.controller.params.OrderParams; import com.vincent.rsf.server.api.controller.params.QueryOrderParam; import com.vincent.rsf.server.api.service.ReceiveMsgService; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.manager.entity.Loc; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; import com.vincent.rsf.server.manager.service.MatnrService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; /** * @author Ryan * @version 1.0 * @title ErpApiController * @description * @create 2025/3/4 13:19 */ @RestController @RequestMapping("/erp") @Api(tags = "ERP接口对接") public class ReceiveMsgController extends BaseController { @Autowired private ReceiveMsgService receiveMsgService; @Autowired private MatnrService matnrService; /** * @author Ryan * @description 接收ERP推送的PO单据 * @throws * @return * @time 2025/3/4 13:57 */ @ApiOperation(value = "接收同步ERP采购单") @PostMapping("/sync/purchase") public R syncPurchases(@RequestBody List orders) { if (orders.isEmpty()) { return R.error("推送订单不能为空,请检查校验后再操作!!"); } if (!receiveMsgService.syncPurchasee(orders)) { return R.error("保存失败"); } else { return R.ok("保存成功!!"); } } /** * @author Ryan * @date 2025/8/15 * @description: DO单同步 * @version 1.0 */ @ApiOperation("出库通知单(DO单同步)") @PostMapping("/sync/delivery") public R syncDelivery(@RequestBody List orders) { if (!receiveMsgService.syncPurchasee(orders)) { return R.error("保存失败"); } else { return R.ok("保存成功!!"); } } /** * @author Ryan * @description 同步质检结果信息 * @param * @return * @time 2025/3/12 16:56 */ @ApiOperation("质检结果同步") @PostMapping("/sync/inspect") public void syncQlyInspect(HttpServletRequest request, HttpServletResponse response) { AsnOrderTemplate template = ExcelUtil.mockData(AsnOrderTemplate.class); List list = new ArrayList<>(); list.add(template); ExcelUtil.build(ExcelUtil.create(list, AsnOrderTemplate.class), response); System.out.println(template); // return R.ok(); } @ApiOperation("基础物料信息同步") @PostMapping("/sync/base/matnrs") public R syncMatnrs(@RequestBody List matnrs) { if (Objects.isNull(matnrs)) { return R.error("参数不能为空!1"); } receiveMsgService.syncMatnrs(matnrs); return R.ok(); } @ApiOperation("查询单据状态") @PostMapping("/query/order") public R queryOrderStatus(@RequestBody QueryOrderParam queryParams) { if (Objects.isNull(queryParams)) { throw new CoolException("参数不能为空!!"); } return receiveMsgService.queryOrderStatus(queryParams); } /** * @author Ryan * @date 2025/8/15 * @description: 库位明细同步 * @version 1.0 */ @PostMapping("/sync/locs/detls") @ApiOperation("库位信息明细同步") public R syncLocDetls(@RequestBody Map map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam pageParam = new PageParam<>(baseParam, Loc.class); QueryWrapper wrapper = pageParam.buildWrapper(true); return receiveMsgService.syncLocsDetl(pageParam, wrapper); } }