package zy.cloud.wms.manager.controller; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.core.common.SnowflakeIdWorker; 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 zy.cloud.wms.common.web.BaseController; import zy.cloud.wms.manager.entity.*; import zy.cloud.wms.manager.entity.param.*; import zy.cloud.wms.manager.entity.result.KeyValueVo; import zy.cloud.wms.manager.service.*; import zy.cloud.wms.manager.utils.AddZero; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by vincent on 2021/2/25 */ @RestController @RequestMapping("/work") public class WorkController extends BaseController { @Autowired private WorkService workService; @Autowired private PakoutService pakoutService; @Autowired private WrkStsService wrkStsService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private OrderService orderService; @Autowired private ReceiveService receiveService; @RequestMapping("/stock/pakin") @ManagerAuth(memo = "入库") public R stockPakin(@RequestBody PakinParam number) { return workService.stockPakin(number, getUserId(), getHostId()); } @RequestMapping("/stock/pakout") @ManagerAuth(memo = "出库") public R stockPakout(@RequestBody PakoutParam number) { return workService.stockPakout(number, getUserId(), getHostId()); } @RequestMapping("/stock/in") @ManagerAuth(memo = "上架") public R stockIn(@RequestBody StockInParam stockInParam) { return workService.stockIn(stockInParam, getUserId(), getHostId()); } @RequestMapping("/stock/out/check") @ManagerAuth(memo = "库存数量检测") public R stockOutCheck(@RequestParam String number) { return workService.stockOutCheck(number, getUserId()); } @RequestMapping("/stock/out/preview") @ManagerAuth(memo = "拣货预览") public R stockOutPreview(@RequestBody StockOutParam stockOutParam) { return workService.stockOutPreview(stockOutParam, getUserId(), getHostId()); } @RequestMapping("/stock/out/create") @ManagerAuth(memo = "生成拣货单") public R stockOut(@RequestBody StockOutParam stockOutParam) { return workService.stockOutCreate(stockOutParam, getUserId(), getHostId()); } @RequestMapping("/stock/out/print") @ManagerAuth(memo = "拣货单打印") public R stockOutPrint(@RequestBody StockOutParam stockOutParam) { return workService.stockOutPrint(stockOutParam, getUserId(), getHostId()); } @RequestMapping("/stock/allot") @ManagerAuth(memo = "库存调拨") public R stockAllot() { return R.ok(); } /******************************************** PDA拣货单搜索 ************************************************/ @RequestMapping("/pakout/get") @ManagerAuth(memo = "获取拣货单") public R getPakout(@RequestParam String docNumber) { List pakouts = pakoutService.selectList(new EntityWrapper().eq("doc_num", docNumber).in("wrk_sts", 1,2)); if (Cools.isEmpty(pakouts)) { return R.parse(BaseRes.EMPTY); } Long sts = pakouts.get(0).getWrkSts(); if (sts == 1) { sts = 2L; } WrkSts wrkSts = wrkStsService.selectById(sts); return R.ok().add(Cools .add("number", pakouts.get(0).getDocNum()) .add("wrkSts", pakouts.get(0).getWrkSts()) .add("wrkSts$", wrkSts==null?"未知":wrkSts.getStsName()) .add("custName", Cools.isEmpty(pakouts.get(0).getCustName())?"-":pakouts.get(0).getCustName()) .add("pakouts", pakouts) ); } @RequestMapping("/pakout/out/confirm") @ManagerAuth(memo = "拣货单确认") public R pakoutOneConfirm(@RequestBody StockConfirmParam param) { return workService.pakoutComplete(param, getUserId()); } @RequestMapping("/stock/out/confirm") @ManagerAuth(memo = "所有拣货确认") public R stockOutConfirm(@RequestBody StockConfirmParam param) { return workService.stockOutComplete(param, getUserId(), getHostId()); } /******************************************** ******** ************************************************/ @RequestMapping("/pakout/init") @ManagerAuth(memo = "生成拣货单") public R initPakout(@RequestBody List params) { return workService.initPakout(params, getUserId(), getHostId()); } @RequestMapping("/hand/control/pakout") @ManagerAuth(memo = "手动处理拣货单") public R handControlWrkMast(@RequestParam String wrkNo, @RequestParam Integer type){ if (type == 1) { return workService.completePakout(wrkNo, getUserId(), getHostId()); } else if (type == 2) { return workService.cancelPakout(wrkNo, getUserId(), getHostId()); } return R.ok(); } @RequestMapping("/orderNo/init") @ManagerAuth(memo = "生成单据编号") public R initOrderNo() { String billNo = "QC-" + new SimpleDateFormat("yyyyMMdd").format(new Date())+"-"; String currNum = receiveService.getCurrNum(billNo); String orderNo=null; if (!Cools.isEmpty(currNum)) { String[] split = currNum.split("-"); if (split.length < 2){ orderNo= billNo + "0001"; } Integer newNum = Integer.parseInt(split[2]) +1; String format = AddZero.addZeroForNum(newNum + "", 4); orderNo = billNo + format; }else { orderNo = billNo + "0001"; } return R.ok().add(orderNo); } // @RequestMapping("/orderNo/init1") // @ManagerAuth(memo = "生成单据编号") // public R initOrderNo1() { // long nextId = snowflakeIdWorker.nextId(); // SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss"); // String orderNo = "AT-" + String.valueOf(dateformat.format(new Date())); // //String orderNo = "AT-" + String.valueOf(nextId).substring(0, 15); // if (orderService.selectByOrderNo(orderNo, getHostId()) != null) { // return R.error("抱歉,单据编号已存在"); // } // return R.ok().add(orderNo); // } @RequestMapping("/receive/init") @ManagerAuth(memo = "生成销售订单") public R initReceive(@RequestBody InitOrderParam param) { return workService.initReceive(param, getUserId(), getHostId()); } @RequestMapping("/order/init") @ManagerAuth(memo = "生成销售订单") public R initOrder(@RequestBody InitOrderParam param) { return workService.initOrder(param, getUserId(), getHostId()); } @RequestMapping("/stock/transfer") @ManagerAuth(memo = "库存调拨") public R stockTransfer(@RequestBody AsrsTransferParam number) { return R.error(); } @RequestMapping("/stock/check") @ManagerAuth(memo = "库存盘点") public R stockCheck(@RequestBody StoCheckParam param) { return workService.stockCheck(param, getUserId(), getHostId()); } @RequestMapping("/stock/check/auditing") @ManagerAuth(memo = "盘点记录审核") public R checkAuditing(@RequestParam Long checkId) { return workService.stockCheckAuditing(checkId, getUserId(), getHostId()); } @RequestMapping("/stock/checks/auditing") @ManagerAuth(memo = "盘点记录批量审核") public R checksAuditing(@RequestParam(value = "checkIds[]") Long[] checkIds) { int success = 0; for (Long checkId : checkIds) { R r = workService.stockCheckAuditing(checkId, getUserId(), getHostId()); if (String.valueOf(r.get("code")).equals("200")) { success ++; } } return R.ok("审核成功数量:" + success); } /******************************************************************************************************/ @Autowired private DocTypeService docTypeService; @Autowired private CstmrService cstmrService; @Autowired private ItemService itemService; // 获取所有单据类型 @RequestMapping("/docType/all/get") @ManagerAuth public R getDocTypeData(Integer docClass) { List docTypes = docTypeService.selectList(new EntityWrapper().eq("status", 1). eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass)); return R.ok().add(docTypes); } @RequestMapping("docType/out/get") @ManagerAuth public R getDocOutTypeData(Integer docClass){ List docTypes = docTypeService.selectList(new EntityWrapper().eq("status", 1). eq("host_id", getHostId()).orderBy("create_time", false).eq("doc_class",docClass)); return R.ok().add(docTypes); } // 获取所有客户 @RequestMapping("/cstmr/all/get") @ManagerAuth public R getCstmrData() { List cstmrs = cstmrService.selectList(new EntityWrapper().eq("status", 1).eq("host_id", getHostId()).orderBy("create_time", false)); return R.ok().add(cstmrs); } // 获取所有客户 [键值对版] @RequestMapping("/cstmr/all/get/kv") @ManagerAuth public R getCstmrDataKV() { List cstmrs = cstmrService.selectList(new EntityWrapper().eq("status", 1).eq("host_id", getHostId()).orderBy("create_time", false)); List valueVos = new ArrayList<>(); for (Cstmr cstmr : cstmrs) { KeyValueVo vo = new KeyValueVo(); vo.setName(cstmr.getName()); vo.setValue(cstmr.getId()); valueVos.add(vo); } return R.ok().add(valueVos); } // 获取所有项目 @RequestMapping("/item/all/get") @ManagerAuth public R getItemData() { List items = itemService.selectList(new EntityWrapper().eq("status", 1).eq("host_id", getHostId()).orderBy("create_time", false)); return R.ok().add(items); } // 获取所有项目 @RequestMapping("/item/all/get/kv") @ManagerAuth public R getItemDataKV() { List items = itemService.selectList(new EntityWrapper().eq("status", 1).eq("host_id", getHostId()).orderBy("create_time", false)); List valueVos = new ArrayList<>(); for (Item item : items) { KeyValueVo vo = new KeyValueVo(); vo.setName(item.getName()); vo.setValue(item.getId()); valueVos.add(vo); } return R.ok().add(valueVos); } }