package com.zy.asrs.controller; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.LocNormal; import com.zy.asrs.entity.param.LocNormalStockOutParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.LocNormalService; import com.zy.asrs.service.OutStockService; import com.zy.asrs.service.WorkService; import com.zy.common.service.erp.ErpService; import com.zy.common.service.erp.entity.OutStockBillEntry; import com.zy.common.web.BaseController; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Date; import java.util.List; import java.util.Map; @Slf4j @RestController public class OutStockController extends BaseController { @Autowired private OutStockService outStockService; @Autowired private WorkService workService; @Autowired private LocNormalService locNormalService; @Autowired private ErpService erpService; /** * * @param curr * @param limit * @param param * @return */ @RequestMapping(value = "/outStock/query/list") @ManagerAuth public R outStockQueryList(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam Map param){ return R.ok(outStockService.queryOutStock(toPage(curr, limit, param, OutStockBillEntry.class))); } /** * 检索符合通知单的立库库存物料 * @param fbillNo * @return */ @RequestMapping(value = "/outStock/query/locList") @ManagerAuth public R queryMatWithLoc(String fbillNo) { List list = outStockService.queryMatWithLoc(fbillNo); return R.ok(list); } @RequestMapping(value = "/plate/outStock/start") @ManagerAuth(memo = "出库作业") public R fullStoreTakeStart(@RequestBody StockOutParam param) { outStockService.startupFullTakeStore(param, getUserId()); return R.ok("出库启动成功"); } /** * 检索符合通知单的平仓库存物料 * @param fbillNo * @return */ @RequestMapping(value = "/outStock/query/locNormalList") @ManagerAuth public R queryMatWithLocNormal(String fbillNo) { List list = locNormalService.queryLocNorlMatnr(fbillNo); return R.ok(list); } /** * 平仓对接erp出库 * @param * @return */ @RequestMapping(value = "/outStock/locNormal") @ManagerAuth public R outStockLocNormal(@RequestBody LocNormalStockOutParam param) { Long modiUser = getUserId(); Date modiTime = new Date(); for (LocNormal locNormals:param.getList()) { // erp中间表更新数据 Integer FInterI = outStockService.queryOutStockFInterID(param.getSupplier()); // 获取出库单主表主键 if (!erpService.incrementCPakOut(FInterI, locNormals.getMatnr(), locNormals.getAnfme().doubleValue(), param.getSupplier())) { log.info("更新ERP成品出库数据[matnr={0}]失败", locNormals.getMatnr()); } // 把对应物料平仓库存出库 locNormalService.outLocNormal(locNormals.getMatnr(), modiUser, modiTime, locNormals.getId()); } return R.ok("平仓出库成功"); } }