From dad49ebf53f8c11042f4de06157af7e3dd6e3c3e Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 10 十二月 2024 08:56:37 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OrderPakinController.java | 420 ++++ src/main/webapp/views/orderDetlPakin/orderDetl.html | 225 ++ src/main/webapp/views/orderDetlPakout/orderDetl.html | 225 ++ src/main/java/com/zy/asrs/controller/OrderDetlPakoutController.java | 138 + src/main/java/com/zy/asrs/entity/OrderPakout.java | 462 +++++ src/main/webapp/views/orderPakout/order.html | 321 +++ src/main/java/com/zy/asrs/mapper/OrderPakinMapper.java | 26 src/main/resources/mapper/OrderPakoutMapper.xml | 103 + src/main/webapp/static/js/orderPakin/order.js | 546 +++++ license.lic | 0 src/main/webapp/views/orderPakin/order.html | 321 +++ src/main/java/com/zy/asrs/entity/OrderDetlPakout.java | 466 +++++ src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java | 93 + src/main/java/com/zy/asrs/service/OrderDetlPakoutService.java | 40 src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java | 37 src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java | 26 src/main/java/com/zy/asrs/entity/OrderPakin.java | 462 +++++ src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java | 192 ++ src/main/java/com/zy/asrs/controller/OrderPakoutController.java | 420 ++++ src/main/java/com/zy/asrs/service/OrderPakinService.java | 35 src/main/java/com/zy/asrs/service/OrderDetlPakinService.java | 40 src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java | 192 ++ src/main/webapp/static/js/orderPakout/order.js | 546 +++++ src/main/resources/license.lic | 0 src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java | 93 + src/main/resources/application.yml | 2 src/main/webapp/static/image/logo.png | 0 src/main/java/com/zy/asrs/service/OrderPakoutService.java | 35 28 files changed, 5,465 insertions(+), 1 deletions(-) diff --git a/license.lic b/license.lic index c42fa89..22364dc 100644 --- a/license.lic +++ b/license.lic Binary files differ diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlPakoutController.java b/src/main/java/com/zy/asrs/controller/OrderDetlPakoutController.java new file mode 100644 index 0000000..7f49a53 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/OrderDetlPakoutController.java @@ -0,0 +1,138 @@ +package com.zy.asrs.controller; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.annotations.ManagerAuth; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.R; +import com.zy.asrs.entity.OrderDetlPakout; +import com.zy.asrs.service.OrderDetlPakoutService; +import com.zy.common.web.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("order/pakout") +public class OrderDetlPakoutController extends BaseController { + + @Autowired + private OrderDetlPakoutService orderDetlService; + + @RequestMapping(value = "/orderDetl/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(orderDetlService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/orderDetl/list/auth") + @ManagerAuth + public R list(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderDetlPakout> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("create_time", false); + } + wrapper.eq("status", 1); + Page<OrderDetlPakout> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); + return R.ok(orderDetlPage); + } + + @RequestMapping(value = "/orderDetl/pakout/list/auth") + @ManagerAuth + public R pakoutList(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam Map<String, Object> param){ + return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetlPakout.class))); + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.like(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/orderDetl/add/auth") + @ManagerAuth + public R add(OrderDetlPakout orderDetl) { + orderDetlService.insert(orderDetl); + return R.ok(); + } + + @RequestMapping(value = "/orderDetl/update/auth") + @ManagerAuth + public R update(OrderDetlPakout orderDetl){ + if (Cools.isEmpty(orderDetl) || null==orderDetl.getId()){ + return R.error(); + } + orderDetlService.updateById(orderDetl); + return R.ok(); + } + + @RequestMapping(value = "/orderDetl/delete/auth") + @ManagerAuth + public R delete(@RequestParam(value="ids[]") Long[] ids){ + for (Long id : ids){ + orderDetlService.deleteById(id); + } + return R.ok(); + } + + @RequestMapping(value = "/orderDetl/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<OrderDetlPakout> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("orderDetl")); + convert(map, wrapper); + List<OrderDetlPakout> list = orderDetlService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/orderDetlQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<OrderDetlPakout> wrapper = new EntityWrapper<>(); + wrapper.like("id", condition); + Page<OrderDetlPakout> page = orderDetlService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (OrderDetlPakout orderDetl : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", orderDetl.getId()); + map.put("value", orderDetl.getId()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/orderDetl/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<OrderDetlPakout> wrapper = new EntityWrapper<OrderDetlPakout>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != orderDetlService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(OrderDetlPakout.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + +} diff --git a/src/main/java/com/zy/asrs/controller/OrderPakinController.java b/src/main/java/com/zy/asrs/controller/OrderPakinController.java new file mode 100644 index 0000000..7216971 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/OrderPakinController.java @@ -0,0 +1,420 @@ +package com.zy.asrs.controller; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.annotations.ManagerAuth; +import com.core.common.*; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.OrderDomainParam; +import com.zy.asrs.entity.result.WrkTraceVo; +import com.zy.asrs.service.*; +import com.zy.common.model.DetlDto; +import com.zy.common.web.BaseController; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("order/pakin") +public class OrderPakinController extends BaseController { + + @Autowired + private OrderPakinService orderService; + @Autowired + private OrderDetlPakinService orderDetlService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private DocTypeService docTypeService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private WaitPakinService waitPakinService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkMastLogService wrkMastLogService; + + @RequestMapping(value = "/order/nav/list/auth") + @ManagerAuth + public R navList(@RequestParam(required = false) String orderNo){ + EntityWrapper<OrderPakin> wrapper = new EntityWrapper<>(); + if (!Cools.isEmpty(orderNo)) { + wrapper.like("order_no", orderNo); + } + wrapper.le("settle", 2).eq("status", 1); + wrapper.orderBy("create_time", false); + List<OrderPakin> orders = orderService.selectList(wrapper); + // 淇濈暀鍑哄簱鍗� + if (!Cools.isEmpty(orders)) { + Iterator<OrderPakin> iterator = orders.iterator(); + while (iterator.hasNext()) { + OrderPakin order = iterator.next(); + if (order.getDocType() != null) { + DocType docType = docTypeService.selectById(order.getDocType()); + if (docType != null) { + if (docType.getPakout() == 0) { + iterator.remove(); + } + } + } + } + } + return R.ok().add(orders); + } + + @RequestMapping(value = "/order/head/page/auth") + @ManagerAuth + public R head(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderPakin> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("settle").orderBy("create_time", false); + } + wrapper.eq("status", 1); + return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); + } + + @RequestMapping(value = "/order/detl/all/auth") + @ManagerAuth + public R head(@RequestParam Long orderId){ + return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", orderId))); + } + + @RequestMapping(value = "/order/form/add/auth") + @ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟") + @Transactional + public R formAdd(@RequestBody OrderDomainParam param){ + if(Cools.isEmpty(param.getOrderNo())){ + String prefix = ""; + DocType docType = docTypeService.selectById(param.getDocType()); + if(!Cools.isEmpty(docType)){ + prefix = docType.getPakin() == 1 ? "RK" : "CK"; + } + param.setOrderNo(prefix + snowflakeIdWorker.nextId()); + } + OrderPakin order = orderService.selectByNo(param.getOrderNo()); + if (order != null) { + return R.error("鍗曟嵁缂栧彿宸插瓨鍦�"); + } + Date now = new Date(); + order = new OrderPakin( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + param.getOrderNo(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + param.getDocType(), // 鍗曟嵁绫诲瀷 + null, // 椤圭洰缂栧彿 + null, // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + getUserId(), // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + getUserId(), // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null // 澶囨敞 + ); + if (!orderService.insert(order)) { + throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触"); + } + List<DetlDto> list = new ArrayList<>(); + for (OrderDetlPakin orderDetl : param.getOrderDetlPakinList()) { + DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); + if (DetlDto.has(list, dto)) { + OrderDetlPakin item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); + item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); + if (!orderDetlService.updateById(item)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } else { + list.add(dto); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(getUserId()); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(getUserId()); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } + } + return R.ok("璁㈠崟娣诲姞鎴愬姛"); + } + + @RequestMapping(value = "/order/form/modify/auth") + @ManagerAuth(memo = "鎵嬪姩淇敼璁㈠崟") + @Transactional + public R formModify(@RequestBody OrderDomainParam param){ + OrderPakin order = orderService.selectById(param.getOrderId()); + if (order == null || order.getStatus() == 0) { + return R.error("璁㈠崟涓嶅瓨鍦�"); + } + Date now = new Date(); + Long userId = getUserId(); + // 淇敼涓绘。 + if (!param.getDocType().equals(order.getDocType())) { + order.setDocType(param.getDocType()); + order.setUpdateBy(userId); + order.setUpdateTime(now); + if (!orderService.updateById(order)) { + throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触"); + } + } + // 淇敼鏄庣粏妗� +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + // 1.娓呯┖鏄庣粏妗� + if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId()))) { + throw new CoolException("娓呯┖璁㈠崟鏄庣粏澶辫触"); + } + // 2.閲嶇粍鏁版嵁 + List<DetlDto> list = new ArrayList<>(); + for (OrderDetlPakin orderDetl : param.getOrderDetlPakinList()) { + DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); + if (DetlDto.has(list, dto)) { + OrderDetlPakin item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); + item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); + if (!orderDetlService.updateById(item)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } else { + list.add(dto); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(getUserId()); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(getUserId()); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } + } + return R.ok("璁㈠崟淇敼鎴愬姛"); + } + + @PostMapping(value = "/order/wrk/trace/auth") + @ManagerAuth + public R orderWrkTrace(@RequestParam("orderId") Long orderId) { + OrderPakin order = orderService.selectById(orderId); + if (null == order) { + return R.error("鍗曟嵁涓嶅瓨鍦�"); + } + // 鏁伴噺缁熻 + List<OrderDetlPakin> orderDetls = orderDetlService.selectByOrderId(orderId); + double totalQty = 0; + double wrkQty = 0; + double lackQty = 0; + double endQty = 0; + for (OrderDetlPakin orderDetl : orderDetls) { + totalQty = totalQty + orderDetl.getAnfme(); + wrkQty = wrkQty + orderDetl.getWorkQty(); + endQty = endQty + orderDetl.getQty(); + double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); + if (issued > 0.0) { + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + issued = issued - locDetl.getAnfme(); + } else { + break; + } + } + } + if (issued > 0.0) { + lackQty = lackQty + issued; + } + } + // 浠诲姟杩芥函 + List<WrkTraceVo> wrkTraceVos = new ArrayList<>(); + List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNoGroupByMatnrOfSum(order.getOrderNo()); + for (WrkDetl wrkDetl : wrkDetls) { + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime())); + if (wrkMast == null) { + WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime())); + if (wrkMastLog.getIoType()==103){ + wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()).eq("io_type",53)); + } + if (wrkMastLog != null) { + wrkMast = new WrkMast(); + BeanUtils.copyProperties(wrkMastLog, wrkMast); + } else { + continue; + } + } + boolean exist = false; + for (WrkTraceVo vo : wrkTraceVos) { + if (vo.getWrkNo().equals(wrkMast.getWrkNo()) && vo.getIoTimeStr().equals(DateUtils.convert(wrkMast.getIoTime()))) { + vo.getWrkDetls().add(wrkDetl); + exist = true; + } + } + if (!exist) { + WrkTraceVo vo = new WrkTraceVo(wrkMast.getWrkNo(), DateUtils.convert(wrkMast.getIoTime()), wrkMast, wrkDetl); + wrkTraceVos.add(vo); + } + } + if (!Cools.isEmpty(wrkTraceVos) && wrkTraceVos.size() > 1) { + wrkTraceVos.sort((o1, o2) -> (int) (o2.getWrkMast().getIoTime().getTime() - o1.getWrkMast().getIoTime().getTime())); + } + return R.ok().add(Cools + .add("list", wrkTraceVos) + .add("orderNo", order.getOrderNo()) + .add("totalQty", totalQty) + .add("wrkQty", wrkQty+endQty) + .add("lackQty", lackQty) + .add("endQty",endQty) + ); + } + + + // ------------------------------------------------------------------------------------------------ + + @RequestMapping(value = "/order/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(orderService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/order/list/auth") + @ManagerAuth + public R list(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderPakin> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.like(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/order/update/auth") + @ManagerAuth + public R update(OrderPakin order){ + if (Cools.isEmpty(order) || null == order.getId()){ + return R.error(); + } + + //璁㈠崟瀹岀粨鍓嶏紝鍒ゆ柇鏄惁瀛樺湪浣滀笟涓暟鎹紝瀛樺湪鍒欎笉鑳藉畬缁� + if(order.getSettle() == 4){ + int wrkCount = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no",order.getOrderNo())); + int pakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",order.getOrderNo())); + if (wrkCount > 0 || pakinCount > 0) { + throw new CoolException("瀛樺湪浣滀笟涓暟鎹紝涓嶈兘瀹岀粨銆傝妫�鏌ュ叆搴撻�氱煡妗e拰宸ヤ綔妗�"); + } + } + + order.setUpdateBy(getUserId()); + order.setUpdateTime(new Date()); + if (!orderService.updateById(order)) { + throw new CoolException("淇敼璁㈠崟澶辫触"); + } + return R.ok(); + } + + @RequestMapping(value = "/order/delete/auth") + @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟") + @Transactional + public R delete(@RequestParam Long orderId){ + orderService.remove(orderId); +// Order order = orderService.selectById(orderId); +// if (order != null) { +// order.setStatus(0); +// } +// if (!orderService.updateById(order)) { +// throw new CoolException("鍒犻櫎璁㈠崟澶辫触"); +// } +// orderDetlService.modifyStatus(orderId, 0); + return R.ok(); + } + + @RequestMapping(value = "/order/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<OrderPakin> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("order")); + convert(map, wrapper); + List<OrderPakin> list = orderService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/orderQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<OrderPakin> wrapper = new EntityWrapper<>(); + wrapper.like("id", condition); + Page<OrderPakin> page = orderService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (OrderPakin order : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", order.getId()); + map.put("value", order.getOrderNo()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/order/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<OrderPakin> wrapper = new EntityWrapper<OrderPakin>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != orderService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(OrderPakin.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + +} diff --git a/src/main/java/com/zy/asrs/controller/OrderPakoutController.java b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java new file mode 100644 index 0000000..ef55e64 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/OrderPakoutController.java @@ -0,0 +1,420 @@ +package com.zy.asrs.controller; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.annotations.ManagerAuth; +import com.core.common.*; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.OrderDomainParam; +import com.zy.asrs.entity.result.WrkTraceVo; +import com.zy.asrs.service.*; +import com.zy.common.model.DetlDto; +import com.zy.common.web.BaseController; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@RestController +@RequestMapping("order/pakout") +public class OrderPakoutController extends BaseController { + + @Autowired + private OrderPakoutService orderService; + @Autowired + private OrderDetlPakoutService orderDetlService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private DocTypeService docTypeService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private WaitPakinService waitPakinService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkMastLogService wrkMastLogService; + + @RequestMapping(value = "/order/nav/list/auth") + @ManagerAuth + public R navList(@RequestParam(required = false) String orderNo){ + EntityWrapper<OrderPakout> wrapper = new EntityWrapper<>(); + if (!Cools.isEmpty(orderNo)) { + wrapper.like("order_no", orderNo); + } + wrapper.le("settle", 2).eq("status", 1); + wrapper.orderBy("create_time", false); + List<OrderPakout> orders = orderService.selectList(wrapper); + // 淇濈暀鍑哄簱鍗� + if (!Cools.isEmpty(orders)) { + Iterator<OrderPakout> iterator = orders.iterator(); + while (iterator.hasNext()) { + OrderPakout order = iterator.next(); + if (order.getDocType() != null) { + DocType docType = docTypeService.selectById(order.getDocType()); + if (docType != null) { + if (docType.getPakout() == 0) { + iterator.remove(); + } + } + } + } + } + return R.ok().add(orders); + } + + @RequestMapping(value = "/order/head/page/auth") + @ManagerAuth + public R head(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderPakout> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("settle").orderBy("create_time", false); + } + wrapper.eq("status", 1); + return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); + } + + @RequestMapping(value = "/order/detl/all/auth") + @ManagerAuth + public R head(@RequestParam Long orderId){ + return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId))); + } + + @RequestMapping(value = "/order/form/add/auth") + @ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟") + @Transactional + public R formAdd(@RequestBody OrderDomainParam param){ + if(Cools.isEmpty(param.getOrderNo())){ + String prefix = ""; + DocType docType = docTypeService.selectById(param.getDocType()); + if(!Cools.isEmpty(docType)){ + prefix = docType.getPakin() == 1 ? "RK" : "CK"; + } + param.setOrderNo(prefix + snowflakeIdWorker.nextId()); + } + OrderPakout order = orderService.selectByNo(param.getOrderNo()); + if (order != null) { + return R.error("鍗曟嵁缂栧彿宸插瓨鍦�"); + } + Date now = new Date(); + order = new OrderPakout( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + param.getOrderNo(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + param.getDocType(), // 鍗曟嵁绫诲瀷 + null, // 椤圭洰缂栧彿 + null, // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + getUserId(), // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + getUserId(), // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null // 澶囨敞 + ); + if (!orderService.insert(order)) { + throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触"); + } + List<DetlDto> list = new ArrayList<>(); + for (OrderDetlPakout orderDetl : param.getOrderDetlPakoutList()) { + DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); + if (DetlDto.has(list, dto)) { + OrderDetlPakout item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); + item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); + if (!orderDetlService.updateById(item)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } else { + list.add(dto); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(getUserId()); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(getUserId()); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } + } + return R.ok("璁㈠崟娣诲姞鎴愬姛"); + } + + @RequestMapping(value = "/order/form/modify/auth") + @ManagerAuth(memo = "鎵嬪姩淇敼璁㈠崟") + @Transactional + public R formModify(@RequestBody OrderDomainParam param){ + OrderPakout order = orderService.selectById(param.getOrderId()); + if (order == null || order.getStatus() == 0) { + return R.error("璁㈠崟涓嶅瓨鍦�"); + } + Date now = new Date(); + Long userId = getUserId(); + // 淇敼涓绘。 + if (!param.getDocType().equals(order.getDocType())) { + order.setDocType(param.getDocType()); + order.setUpdateBy(userId); + order.setUpdateTime(now); + if (!orderService.updateById(order)) { + throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触"); + } + } + // 淇敼鏄庣粏妗� +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); + // 1.娓呯┖鏄庣粏妗� + if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()))) { + throw new CoolException("娓呯┖璁㈠崟鏄庣粏澶辫触"); + } + // 2.閲嶇粍鏁版嵁 + List<DetlDto> list = new ArrayList<>(); + for (OrderDetlPakout orderDetl : param.getOrderDetlPakoutList()) { + DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); + if (DetlDto.has(list, dto)) { + OrderDetlPakout item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); + item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); + if (!orderDetlService.updateById(item)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } else { + list.add(dto); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(getUserId()); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(getUserId()); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); + } + } + } + return R.ok("璁㈠崟淇敼鎴愬姛"); + } + + @PostMapping(value = "/order/wrk/trace/auth") + @ManagerAuth + public R orderWrkTrace(@RequestParam("orderId") Long orderId) { + OrderPakout order = orderService.selectById(orderId); + if (null == order) { + return R.error("鍗曟嵁涓嶅瓨鍦�"); + } + // 鏁伴噺缁熻 + List<OrderDetlPakout> orderDetls = orderDetlService.selectByOrderId(orderId); + double totalQty = 0; + double wrkQty = 0; + double lackQty = 0; + double endQty = 0; + for (OrderDetlPakout orderDetl : orderDetls) { + totalQty = totalQty + orderDetl.getAnfme(); + wrkQty = wrkQty + orderDetl.getWorkQty(); + endQty = endQty + orderDetl.getQty(); + double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); + if (issued > 0.0) { + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + issued = issued - locDetl.getAnfme(); + } else { + break; + } + } + } + if (issued > 0.0) { + lackQty = lackQty + issued; + } + } + // 浠诲姟杩芥函 + List<WrkTraceVo> wrkTraceVos = new ArrayList<>(); + List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNoGroupByMatnrOfSum(order.getOrderNo()); + for (WrkDetl wrkDetl : wrkDetls) { + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime())); + if (wrkMast == null) { + WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime())); + if (wrkMastLog.getIoType()==103){ + wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()).eq("io_type",53)); + } + if (wrkMastLog != null) { + wrkMast = new WrkMast(); + BeanUtils.copyProperties(wrkMastLog, wrkMast); + } else { + continue; + } + } + boolean exist = false; + for (WrkTraceVo vo : wrkTraceVos) { + if (vo.getWrkNo().equals(wrkMast.getWrkNo()) && vo.getIoTimeStr().equals(DateUtils.convert(wrkMast.getIoTime()))) { + vo.getWrkDetls().add(wrkDetl); + exist = true; + } + } + if (!exist) { + WrkTraceVo vo = new WrkTraceVo(wrkMast.getWrkNo(), DateUtils.convert(wrkMast.getIoTime()), wrkMast, wrkDetl); + wrkTraceVos.add(vo); + } + } + if (!Cools.isEmpty(wrkTraceVos) && wrkTraceVos.size() > 1) { + wrkTraceVos.sort((o1, o2) -> (int) (o2.getWrkMast().getIoTime().getTime() - o1.getWrkMast().getIoTime().getTime())); + } + return R.ok().add(Cools + .add("list", wrkTraceVos) + .add("orderNo", order.getOrderNo()) + .add("totalQty", totalQty) + .add("wrkQty", wrkQty+endQty) + .add("lackQty", lackQty) + .add("endQty",endQty) + ); + } + + + // ------------------------------------------------------------------------------------------------ + + @RequestMapping(value = "/order/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") String id) { + return R.ok(orderService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/order/list/auth") + @ManagerAuth + public R list(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderPakout> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convert(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} + return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.like(entry.getKey(), val); + } + } + } + + @RequestMapping(value = "/order/update/auth") + @ManagerAuth + public R update(OrderPakout order){ + if (Cools.isEmpty(order) || null == order.getId()){ + return R.error(); + } + + //璁㈠崟瀹岀粨鍓嶏紝鍒ゆ柇鏄惁瀛樺湪浣滀笟涓暟鎹紝瀛樺湪鍒欎笉鑳藉畬缁� + if(order.getSettle() == 4){ + int wrkCount = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no",order.getOrderNo())); + int pakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",order.getOrderNo())); + if (wrkCount > 0 || pakinCount > 0) { + throw new CoolException("瀛樺湪浣滀笟涓暟鎹紝涓嶈兘瀹岀粨銆傝妫�鏌ュ叆搴撻�氱煡妗e拰宸ヤ綔妗�"); + } + } + + order.setUpdateBy(getUserId()); + order.setUpdateTime(new Date()); + if (!orderService.updateById(order)) { + throw new CoolException("淇敼璁㈠崟澶辫触"); + } + return R.ok(); + } + + @RequestMapping(value = "/order/delete/auth") + @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟") + @Transactional + public R delete(@RequestParam Long orderId){ + orderService.remove(orderId); +// Order order = orderService.selectById(orderId); +// if (order != null) { +// order.setStatus(0); +// } +// if (!orderService.updateById(order)) { +// throw new CoolException("鍒犻櫎璁㈠崟澶辫触"); +// } +// orderDetlService.modifyStatus(orderId, 0); + return R.ok(); + } + + @RequestMapping(value = "/order/export/auth") + @ManagerAuth + public R export(@RequestBody JSONObject param){ + EntityWrapper<OrderPakout> wrapper = new EntityWrapper<>(); + List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class); + Map<String, Object> map = excludeTrash(param.getJSONObject("order")); + convert(map, wrapper); + List<OrderPakout> list = orderService.selectList(wrapper); + return R.ok(exportSupport(list, fields)); + } + + @RequestMapping(value = "/orderQuery/auth") + @ManagerAuth + public R query(String condition) { + EntityWrapper<OrderPakout> wrapper = new EntityWrapper<>(); + wrapper.like("id", condition); + Page<OrderPakout> page = orderService.selectPage(new Page<>(0, 10), wrapper); + List<Map<String, Object>> result = new ArrayList<>(); + for (OrderPakout order : page.getRecords()){ + Map<String, Object> map = new HashMap<>(); + map.put("id", order.getId()); + map.put("value", order.getOrderNo()); + result.add(map); + } + return R.ok(result); + } + + @RequestMapping(value = "/order/check/column/auth") + @ManagerAuth + public R query(@RequestBody JSONObject param) { + Wrapper<OrderPakout> wrapper = new EntityWrapper<OrderPakout>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val")); + if (null != orderService.selectOne(wrapper)){ + return R.parse(BaseRes.REPEAT).add(getComment(OrderPakout.class, String.valueOf(param.get("key")))); + } + return R.ok(); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java new file mode 100644 index 0000000..0694e5e --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/OrderDetlPakout.java @@ -0,0 +1,466 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.asrs.service.OrderService; +import com.zy.common.utils.Synchro; +import com.zy.system.entity.User; +import com.zy.system.service.UserService; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +@TableName("man_order_detl_pakout") +public class OrderDetlPakout implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 璁㈠崟鍐呯爜 + */ + @ApiModelProperty(value= "璁㈠崟鍐呯爜") + @TableField("order_id") + private Long orderId; + + /** + * 鍗曟嵁缂栧彿 + */ + @ApiModelProperty(value= "鍗曟嵁缂栧彿") + @TableField("order_no") + private String orderNo; + + + /** + * 鏁伴噺 + */ + @ApiModelProperty(value= "鏁伴噺") + private Double anfme; + + /** + * 浣滀笟鏁伴噺 + * + * 鍏ュ簱 : 缁勬墭瀹屾垚锛岀粍鎵樻。銆佸伐浣滄。銆佸叆搴撳畬鎴愭暟閲� + * 鍑哄簱 : 宸ヤ綔妗c�佸嚭搴撳畬鎴愭暟閲� + */ + @ApiModelProperty(value= "浣滀笟鏁伴噺") + @TableField("work_qty") + private Double workQty; + + /** + * 瀹屾垚鏁伴噺 + * + * 鍏ュ簱 : qty 馃憜 + * 鍑哄簱 : qty 馃憜 + */ + @ApiModelProperty(value= "瀹屾垚鏁伴噺") + private Double qty; + + /** + * 鍟嗗搧缂栫爜 + */ + @ApiModelProperty(value= "鍟嗗搧缂栫爜") + private String matnr; + + /** + * 鍟嗗搧鍚嶇О + */ + @ApiModelProperty(value= "鍟嗗搧鍚嶇О") + private String maktx; + + /** + * 鎵瑰彿 + */ + @ApiModelProperty(value= "鎵瑰彿") + private String batch; + + /** + * 瑙勬牸 + */ + @ApiModelProperty(value= "瑙勬牸") + private String specs; + + /** + * 鍨嬪彿 + */ + @ApiModelProperty(value= "鍨嬪彿") + private String model; + + /** + * 棰滆壊 + */ + @ApiModelProperty(value= "棰滆壊") + private String color; + + /** + * 鍝佺墝 + */ + @ApiModelProperty(value= "鍝佺墝") + private String brand; + + /** + * 鍗曚綅 + */ + @ApiModelProperty(value= "鍗曚綅") + private String unit; + + /** + * 鍗曚环 + */ + @ApiModelProperty(value= "鍗曚环") + private Double price; + + /** + * sku + */ + @ApiModelProperty(value= "sku") + private String sku; + + /** + * 鍗曚綅閲� + */ + @ApiModelProperty(value= "鍗曚綅閲�") + private Double units; + + /** + * 鏉$爜 + */ + @ApiModelProperty(value= "鏉$爜") + private String barcode; + + /** + * 浜у湴 + */ + @ApiModelProperty(value= "浜у湴") + private String origin; + + /** + * 鍘傚 + */ + @ApiModelProperty(value= "鍘傚") + private String manu; + + /** + * 鐢熶骇鏃ユ湡 + */ + @ApiModelProperty(value= "鐢熶骇鏃ユ湡") + @TableField("manu_date") + private String manuDate; + + /** + * 鍝侀」鏁� + */ + @ApiModelProperty(value= "鍝侀」鏁�") + @TableField("item_num") + private String itemNum; + + /** + * 瀹夊叏搴撳瓨閲� + */ + @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�") + @TableField("safe_qty") + private Double safeQty; + + /** + * 閲嶉噺 + */ + @ApiModelProperty(value= "閲嶉噺") + private Double weight; + + /** + * 闀垮害 + */ + @ApiModelProperty(value= "闀垮害") + private Double length; + + /** + * 浣撶Н + */ + @ApiModelProperty(value= "浣撶Н") + private Double volume; + + /** + * 涓夋柟缂栫爜 + */ + @ApiModelProperty(value= "涓夋柟缂栫爜") + @TableField("three_code") + private String threeCode; + + /** + * 渚涘簲鍟� + */ + @ApiModelProperty(value= "渚涘簲鍟�") + private String supp; + + /** + * 渚涘簲鍟嗙紪鐮� + */ + @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�") + @TableField("supp_code") + private String suppCode; + + /** + * 鏄惁鎵规 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ") + @TableField("be_batch") + private Integer beBatch; + + /** + * 淇濊川鏈� + */ + @ApiModelProperty(value= "淇濊川鏈�") + @TableField("dead_time") + private String deadTime; + + /** + * 棰勮澶╂暟 + */ + @ApiModelProperty(value= "棰勮澶╂暟") + @TableField("dead_warn") + private Integer deadWarn; + + /** + * 鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 銆併�佸疁绉戯細 鏄惁纭 1: 纭 2: 鏈‘璁� + */ + @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ") + private Integer source; + + /** + * 瑕佹眰妫�楠� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ") + private Integer inspect; + + /** + * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� + */ + @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") + private Integer danger; + + /** + * 鐘舵�� 1: 姝e父 0: 绂佺敤 + */ + @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ") + private Integer status; + + /** + * 娣诲姞浜哄憳 + */ + @ApiModelProperty(value= "娣诲姞浜哄憳") + @TableField("create_by") + private Long createBy; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("create_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("update_by") + private Long updateBy; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("update_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + public OrderDetlPakout() {} + + public OrderDetlPakout(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { + this.orderId = orderId; + this.orderNo = orderNo; + this.anfme = anfme; + this.qty = qty; + this.matnr = matnr; + this.maktx = maktx; + this.batch = batch; + this.specs = specs; + this.model = model; + this.color = color; + this.brand = brand; + this.unit = unit; + this.price = price; + this.sku = sku; + this.units = units; + this.barcode = barcode; + this.origin = origin; + this.manu = manu; + this.manuDate = manuDate; + this.itemNum = itemNum; + this.safeQty = safeQty; + this.weight = weight; + this.length = length; + this.volume = volume; + this.threeCode = threeCode; + this.supp = supp; + this.suppCode = suppCode; + this.beBatch = beBatch; + this.deadTime = deadTime; + this.deadWarn = deadWarn; + this.source = source; + this.inspect = inspect; + this.danger = danger; + this.status = status; + this.createBy = createBy; + this.createTime = createTime; + this.updateBy = updateBy; + this.updateTime = updateTime; + this.memo = memo; + } + + public String getOrderId$(){ + OrderService service = SpringUtils.getBean(OrderService.class); + Order order = service.selectById(this.orderId); + if (!Cools.isEmpty(order)){ + return String.valueOf(order.getId()); + } + return null; + } + + public String getBeBatch$(){ + if (null == this.beBatch){ return null; } + switch (this.beBatch){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.beBatch); + } + } + + public String getSource$(){ + if (null == this.source){ return null; } + switch (this.source){ + case 1: + return "鍒堕��"; + case 2: + return "閲囪喘"; + case 3: + return "澶栧崗"; + default: + return String.valueOf(this.source); + } + } + + public String getInspect$(){ + if (null == this.inspect){ return null; } + switch (this.inspect){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.inspect); + } + } + + public String getDanger$(){ + if (null == this.danger){ return null; } + switch (this.danger){ + case 1: + return "鏄�"; + case 0: + return "鍚�"; + default: + return String.valueOf(this.danger); + } + } + + public String getStatus$(){ + if (null == this.status){ return null; } + switch (this.status){ + case 1: + return "姝e父"; + case 0: + return "绂佺敤"; + default: + return String.valueOf(this.status); + } + } + + public String getCreateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.createBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getCreateTime$(){ + if (Cools.isEmpty(this.createTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); + } + + public String getUpdateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.updateBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getUpdateTime$(){ + if (Cools.isEmpty(this.updateTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); + } + + public Double getEnableQty() { + if (null != this.anfme && this.workQty != null) { + return this.anfme - this.workQty; + } +// if (null != this.anfme && this.qty != null) { +// return this.anfme - this.qty; +// } + return null; + } + + public String getQty$(){ + if (getAnfme().equals(getQty())){ + return "宸插畬鎴�"; + } + return "鏈畬鎴�"; + } + + public void sync(Object source) { + Synchro.Copy(source, this); + } + +} \ No newline at end of file diff --git a/src/main/java/com/zy/asrs/entity/OrderPakin.java b/src/main/java/com/zy/asrs/entity/OrderPakin.java new file mode 100644 index 0000000..0b27e37 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/OrderPakin.java @@ -0,0 +1,462 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.asrs.service.DocTypeService; +import com.zy.asrs.service.OrderSettleService; +import com.zy.system.entity.User; +import com.zy.system.service.UserService; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +@TableName("man_order_pakin") +public class OrderPakin implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 缂栧彿 + */ + @ApiModelProperty(value= "缂栧彿") + private String uuid; + + /** + * 璁㈠崟缂栧彿 + */ + @ApiModelProperty(value= "璁㈠崟缂栧彿") + @TableField("order_no") + private String orderNo; + + /** + * 鍗曟嵁鏃ユ湡 + */ + @ApiModelProperty(value= "鍗曟嵁鏃ユ湡") + @TableField("order_time") + private String orderTime; + + /** + * 鍗曟嵁绫诲瀷 + */ + @ApiModelProperty(value= "鍗曟嵁绫诲瀷") + @TableField("doc_type") + private Long docType; + + /** + * 椤圭洰缂栧彿 + */ + @ApiModelProperty(value= "椤圭洰缂栧彿") + @TableField("item_id") + private Long itemId; + + @ApiModelProperty(value= "") + @TableField("item_name") + private String itemName; + + /** + * 璋冩嫧椤圭洰缂栧彿 + */ + @ApiModelProperty(value= "璋冩嫧椤圭洰缂栧彿") + @TableField("allot_item_id") + private Long allotItemId; + + /** + * 鍒濆绁ㄦ嵁鍙� + */ + @ApiModelProperty(value= "鍒濆绁ㄦ嵁鍙�") + @TableField("def_number") + private String defNumber; + + /** + * 绁ㄦ嵁鍙� + */ + @ApiModelProperty(value= "绁ㄦ嵁鍙�") + private String number; + + /** + * 瀹㈡埛缂栧彿 + */ + @ApiModelProperty(value= "瀹㈡埛缂栧彿") + private Long cstmr; + + /** + * 瀹㈡埛 + */ + @ApiModelProperty(value= "瀹㈡埛") + @TableField("cstmr_name") + private String cstmrName; + + /** + * 鑱旂郴鏂瑰紡 + */ + @ApiModelProperty(value= "鑱旂郴鏂瑰紡") + private String tel; + + /** + * 鎿嶄綔浜哄憳 + */ + @ApiModelProperty(value= "鎿嶄綔浜哄憳") + @TableField("oper_memb") + private String operMemb; + + /** + * 鍚堣閲戦 + */ + @ApiModelProperty(value= "鍚堣閲戦") + @TableField("total_fee") + private Double totalFee; + + /** + * 浼樻儬鐜� + */ + @ApiModelProperty(value= "浼樻儬鐜�") + private Double discount; + + /** + * 浼樻儬閲戦 + */ + @ApiModelProperty(value= "浼樻儬閲戦") + @TableField("discount_fee") + private Double discountFee; + + /** + * 閿�鍞垨閲囪喘璐圭敤鍚堣 + */ + @ApiModelProperty(value= "閿�鍞垨閲囪喘璐圭敤鍚堣") + @TableField("other_fee") + private Double otherFee; + + /** + * 瀹炰粯閲戦 + */ + @ApiModelProperty(value= "瀹炰粯閲戦") + @TableField("act_fee") + private Double actFee; + + /** + * 浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处 + */ + @ApiModelProperty(value= "浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处 ") + @TableField("pay_type") + private Integer payType; + + /** + * 涓氬姟鍛� + */ + @ApiModelProperty(value= "涓氬姟鍛�") + private String salesman; + + /** + * 缁撶畻澶╂暟 + */ + @ApiModelProperty(value= "缁撶畻澶╂暟") + @TableField("account_day") + private Integer accountDay; + + /** + * 閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻 + */ + @ApiModelProperty(value= "閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻 ") + @TableField("post_fee_type") + private Integer postFeeType; + + /** + * 閭垂 + */ + @ApiModelProperty(value= "閭垂") + @TableField("post_fee") + private Double postFee; + + /** + * 浠樻鏃堕棿 + */ + @ApiModelProperty(value= "浠樻鏃堕棿") + @TableField("pay_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date payTime; + + /** + * 鍙戣揣鏃堕棿 + */ + @ApiModelProperty(value= "鍙戣揣鏃堕棿") + @TableField("send_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date sendTime; + + /** + * 鐗╂祦鍚嶇О + */ + @ApiModelProperty(value= "鐗╂祦鍚嶇О") + @TableField("ship_name") + private String shipName; + + /** + * 鐗╂祦鍗曞彿 + */ + @ApiModelProperty(value= "鐗╂祦鍗曞彿") + @TableField("ship_code") + private String shipCode; + + /** + * 璁㈠崟鐘舵�� + */ + @ApiModelProperty(value= "璁㈠崟鐘舵��") + private Long settle; + + /** + * 鐘舵�� 1: 姝e父 0: 绂佺敤 + */ + @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ") + private Integer status; + + /** + * 娣诲姞浜哄憳 + */ + @ApiModelProperty(value= "娣诲姞浜哄憳") + @TableField("create_by") + private Long createBy; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("create_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("update_by") + private Long updateBy; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("update_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + /** + * 鐘舵�� 1: 杩涜涓� 0: 鍒濆 2:宸插畬鎴� + */ + @ApiModelProperty(value= "鐘舵�� 2:宸插畬鎴� 1: 杩涜涓� 0: 鍒濆 ") + @TableField("move_status") + private Integer moveStatus; + + public OrderPakin() {} + + public OrderPakin(String uuid, String orderNo, String orderTime, Long docType, Long itemId, String itemName, Long allotItemId, String defNumber, String number, Long cstmr, String cstmrName, String tel, String operMemb, Double totalFee, Double discount, Double discountFee, Double otherFee, Double actFee, Integer payType, String salesman, Integer accountDay, Integer postFeeType, Double postFee, Date payTime, Date sendTime, String shipName, String shipCode, Long settle, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { + this.uuid = uuid; + this.orderNo = orderNo; + this.orderTime = orderTime; + this.docType = docType; + this.itemId = itemId; + this.itemName = itemName; + this.allotItemId = allotItemId; + this.defNumber = defNumber; + this.number = number; + this.cstmr = cstmr; + this.cstmrName = cstmrName; + this.tel = tel; + this.operMemb = operMemb; + this.totalFee = totalFee; + this.discount = discount; + this.discountFee = discountFee; + this.otherFee = otherFee; + this.actFee = actFee; + this.payType = payType; + this.salesman = salesman; + this.accountDay = accountDay; + this.postFeeType = postFeeType; + this.postFee = postFee; + this.payTime = payTime; + this.sendTime = sendTime; + this.shipName = shipName; + this.shipCode = shipCode; + this.settle = settle; + this.status = status; + this.createBy = createBy; + this.createTime = createTime; + this.updateBy = updateBy; + this.updateTime = updateTime; + this.memo = memo; + } + +// Order order = new Order( +// null, // 缂栧彿[闈炵┖] +// null, // 璁㈠崟缂栧彿 +// null, // 鍗曟嵁鏃ユ湡 +// null, // 鍗曟嵁绫诲瀷 +// null, // 椤圭洰缂栧彿 +// null, // +// null, // 璋冩嫧椤圭洰缂栧彿 +// null, // 鍒濆绁ㄦ嵁鍙� +// null, // 绁ㄦ嵁鍙� +// null, // 瀹㈡埛缂栧彿 +// null, // 瀹㈡埛 +// null, // 鑱旂郴鏂瑰紡 +// null, // 鎿嶄綔浜哄憳 +// null, // 鍚堣閲戦 +// null, // 浼樻儬鐜� +// null, // 浼樻儬閲戦 +// null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 +// null, // 瀹炰粯閲戦 +// null, // 浠樻绫诲瀷 +// null, // 涓氬姟鍛� +// null, // 缁撶畻澶╂暟 +// null, // 閭垂鏀粯绫诲瀷 +// null, // 閭垂 +// null, // 浠樻鏃堕棿 +// null, // 鍙戣揣鏃堕棿 +// null, // 鐗╂祦鍚嶇О +// null, // 鐗╂祦鍗曞彿 +// null, // 璁㈠崟鐘舵�� +// null, // 鐘舵�� +// null, // 娣诲姞浜哄憳 +// null, // 娣诲姞鏃堕棿 +// null, // 淇敼浜哄憳 +// null, // 淇敼鏃堕棿 +// null // 澶囨敞 +// ); + + public String getDocType$(){ + DocTypeService service = SpringUtils.getBean(DocTypeService.class); + DocType docType = service.selectById(this.docType); + if (!Cools.isEmpty(docType)){ + return String.valueOf(docType.getDocName()); + } + return null; + } + + public String getPayType$(){ + if (null == this.payType){ return null; } + switch (this.payType){ + case 1: + return "鐜伴噾"; + case 2: + return "璁拌处"; + default: + return String.valueOf(this.payType); + } + } + + public String getPostFeeType$(){ + if (null == this.postFeeType){ return null; } + switch (this.postFeeType){ + case 1: + return "鍦ㄧ嚎鏀粯"; + case 2: + return "璐у埌浠樻"; + default: + return String.valueOf(this.postFeeType); + } + } + + public String getPayTime$(){ + if (Cools.isEmpty(this.payTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.payTime); + } + + public String getSendTime$(){ + if (Cools.isEmpty(this.sendTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime); + } + + public String getSettle$(){ + OrderSettleService service = SpringUtils.getBean(OrderSettleService.class); + OrderSettle orderSettle = service.selectById(this.settle); + if (!Cools.isEmpty(orderSettle)){ + return String.valueOf(orderSettle.getSettleName()); + } + return null; + } + + public String getStatus$(){ + if (null == this.status){ return null; } + switch (this.status){ + case 1: + return "姝e父"; + case 0: + return "绂佺敤"; + default: + return String.valueOf(this.status); + } + } + + public String getMoveStatus$(){ + if (null == this.moveStatus){ return null; } + switch (this.moveStatus){ + case 2: + return "宸插璐�"; + case 1: + return "澶囪揣涓�"; + case 0: + return "鏈垵濮�"; + default: + return String.valueOf(this.moveStatus); + } + } + + public String getCreateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.createBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getCreateTime$(){ + if (Cools.isEmpty(this.createTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); + } + + public String getUpdateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.updateBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getUpdateTime$(){ + if (Cools.isEmpty(this.updateTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/entity/OrderPakout.java b/src/main/java/com/zy/asrs/entity/OrderPakout.java new file mode 100644 index 0000000..e58968a --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/OrderPakout.java @@ -0,0 +1,462 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.asrs.service.DocTypeService; +import com.zy.asrs.service.OrderSettleService; +import com.zy.system.entity.User; +import com.zy.system.service.UserService; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; + +@Data +@TableName("man_order_pakout") +public class OrderPakout implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID + */ + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 缂栧彿 + */ + @ApiModelProperty(value= "缂栧彿") + private String uuid; + + /** + * 璁㈠崟缂栧彿 + */ + @ApiModelProperty(value= "璁㈠崟缂栧彿") + @TableField("order_no") + private String orderNo; + + /** + * 鍗曟嵁鏃ユ湡 + */ + @ApiModelProperty(value= "鍗曟嵁鏃ユ湡") + @TableField("order_time") + private String orderTime; + + /** + * 鍗曟嵁绫诲瀷 + */ + @ApiModelProperty(value= "鍗曟嵁绫诲瀷") + @TableField("doc_type") + private Long docType; + + /** + * 椤圭洰缂栧彿 + */ + @ApiModelProperty(value= "椤圭洰缂栧彿") + @TableField("item_id") + private Long itemId; + + @ApiModelProperty(value= "") + @TableField("item_name") + private String itemName; + + /** + * 璋冩嫧椤圭洰缂栧彿 + */ + @ApiModelProperty(value= "璋冩嫧椤圭洰缂栧彿") + @TableField("allot_item_id") + private Long allotItemId; + + /** + * 鍒濆绁ㄦ嵁鍙� + */ + @ApiModelProperty(value= "鍒濆绁ㄦ嵁鍙�") + @TableField("def_number") + private String defNumber; + + /** + * 绁ㄦ嵁鍙� + */ + @ApiModelProperty(value= "绁ㄦ嵁鍙�") + private String number; + + /** + * 瀹㈡埛缂栧彿 + */ + @ApiModelProperty(value= "瀹㈡埛缂栧彿") + private Long cstmr; + + /** + * 瀹㈡埛 + */ + @ApiModelProperty(value= "瀹㈡埛") + @TableField("cstmr_name") + private String cstmrName; + + /** + * 鑱旂郴鏂瑰紡 + */ + @ApiModelProperty(value= "鑱旂郴鏂瑰紡") + private String tel; + + /** + * 鎿嶄綔浜哄憳 + */ + @ApiModelProperty(value= "鎿嶄綔浜哄憳") + @TableField("oper_memb") + private String operMemb; + + /** + * 鍚堣閲戦 + */ + @ApiModelProperty(value= "鍚堣閲戦") + @TableField("total_fee") + private Double totalFee; + + /** + * 浼樻儬鐜� + */ + @ApiModelProperty(value= "浼樻儬鐜�") + private Double discount; + + /** + * 浼樻儬閲戦 + */ + @ApiModelProperty(value= "浼樻儬閲戦") + @TableField("discount_fee") + private Double discountFee; + + /** + * 閿�鍞垨閲囪喘璐圭敤鍚堣 + */ + @ApiModelProperty(value= "閿�鍞垨閲囪喘璐圭敤鍚堣") + @TableField("other_fee") + private Double otherFee; + + /** + * 瀹炰粯閲戦 + */ + @ApiModelProperty(value= "瀹炰粯閲戦") + @TableField("act_fee") + private Double actFee; + + /** + * 浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处 + */ + @ApiModelProperty(value= "浠樻绫诲瀷 1: 鐜伴噾 2: 璁拌处 ") + @TableField("pay_type") + private Integer payType; + + /** + * 涓氬姟鍛� + */ + @ApiModelProperty(value= "涓氬姟鍛�") + private String salesman; + + /** + * 缁撶畻澶╂暟 + */ + @ApiModelProperty(value= "缁撶畻澶╂暟") + @TableField("account_day") + private Integer accountDay; + + /** + * 閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻 + */ + @ApiModelProperty(value= "閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻 ") + @TableField("post_fee_type") + private Integer postFeeType; + + /** + * 閭垂 + */ + @ApiModelProperty(value= "閭垂") + @TableField("post_fee") + private Double postFee; + + /** + * 浠樻鏃堕棿 + */ + @ApiModelProperty(value= "浠樻鏃堕棿") + @TableField("pay_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date payTime; + + /** + * 鍙戣揣鏃堕棿 + */ + @ApiModelProperty(value= "鍙戣揣鏃堕棿") + @TableField("send_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date sendTime; + + /** + * 鐗╂祦鍚嶇О + */ + @ApiModelProperty(value= "鐗╂祦鍚嶇О") + @TableField("ship_name") + private String shipName; + + /** + * 鐗╂祦鍗曞彿 + */ + @ApiModelProperty(value= "鐗╂祦鍗曞彿") + @TableField("ship_code") + private String shipCode; + + /** + * 璁㈠崟鐘舵�� + */ + @ApiModelProperty(value= "璁㈠崟鐘舵��") + private Long settle; + + /** + * 鐘舵�� 1: 姝e父 0: 绂佺敤 + */ + @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ") + private Integer status; + + /** + * 娣诲姞浜哄憳 + */ + @ApiModelProperty(value= "娣诲姞浜哄憳") + @TableField("create_by") + private Long createBy; + + /** + * 娣诲姞鏃堕棿 + */ + @ApiModelProperty(value= "娣诲姞鏃堕棿") + @TableField("create_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 淇敼浜哄憳 + */ + @ApiModelProperty(value= "淇敼浜哄憳") + @TableField("update_by") + private Long updateBy; + + /** + * 淇敼鏃堕棿 + */ + @ApiModelProperty(value= "淇敼鏃堕棿") + @TableField("update_time") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 澶囨敞 + */ + @ApiModelProperty(value= "澶囨敞") + private String memo; + + /** + * 鐘舵�� 1: 杩涜涓� 0: 鍒濆 2:宸插畬鎴� + */ + @ApiModelProperty(value= "鐘舵�� 2:宸插畬鎴� 1: 杩涜涓� 0: 鍒濆 ") + @TableField("move_status") + private Integer moveStatus; + + public OrderPakout() {} + + public OrderPakout(String uuid, String orderNo, String orderTime, Long docType, Long itemId, String itemName, Long allotItemId, String defNumber, String number, Long cstmr, String cstmrName, String tel, String operMemb, Double totalFee, Double discount, Double discountFee, Double otherFee, Double actFee, Integer payType, String salesman, Integer accountDay, Integer postFeeType, Double postFee, Date payTime, Date sendTime, String shipName, String shipCode, Long settle, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) { + this.uuid = uuid; + this.orderNo = orderNo; + this.orderTime = orderTime; + this.docType = docType; + this.itemId = itemId; + this.itemName = itemName; + this.allotItemId = allotItemId; + this.defNumber = defNumber; + this.number = number; + this.cstmr = cstmr; + this.cstmrName = cstmrName; + this.tel = tel; + this.operMemb = operMemb; + this.totalFee = totalFee; + this.discount = discount; + this.discountFee = discountFee; + this.otherFee = otherFee; + this.actFee = actFee; + this.payType = payType; + this.salesman = salesman; + this.accountDay = accountDay; + this.postFeeType = postFeeType; + this.postFee = postFee; + this.payTime = payTime; + this.sendTime = sendTime; + this.shipName = shipName; + this.shipCode = shipCode; + this.settle = settle; + this.status = status; + this.createBy = createBy; + this.createTime = createTime; + this.updateBy = updateBy; + this.updateTime = updateTime; + this.memo = memo; + } + +// Order order = new Order( +// null, // 缂栧彿[闈炵┖] +// null, // 璁㈠崟缂栧彿 +// null, // 鍗曟嵁鏃ユ湡 +// null, // 鍗曟嵁绫诲瀷 +// null, // 椤圭洰缂栧彿 +// null, // +// null, // 璋冩嫧椤圭洰缂栧彿 +// null, // 鍒濆绁ㄦ嵁鍙� +// null, // 绁ㄦ嵁鍙� +// null, // 瀹㈡埛缂栧彿 +// null, // 瀹㈡埛 +// null, // 鑱旂郴鏂瑰紡 +// null, // 鎿嶄綔浜哄憳 +// null, // 鍚堣閲戦 +// null, // 浼樻儬鐜� +// null, // 浼樻儬閲戦 +// null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 +// null, // 瀹炰粯閲戦 +// null, // 浠樻绫诲瀷 +// null, // 涓氬姟鍛� +// null, // 缁撶畻澶╂暟 +// null, // 閭垂鏀粯绫诲瀷 +// null, // 閭垂 +// null, // 浠樻鏃堕棿 +// null, // 鍙戣揣鏃堕棿 +// null, // 鐗╂祦鍚嶇О +// null, // 鐗╂祦鍗曞彿 +// null, // 璁㈠崟鐘舵�� +// null, // 鐘舵�� +// null, // 娣诲姞浜哄憳 +// null, // 娣诲姞鏃堕棿 +// null, // 淇敼浜哄憳 +// null, // 淇敼鏃堕棿 +// null // 澶囨敞 +// ); + + public String getDocType$(){ + DocTypeService service = SpringUtils.getBean(DocTypeService.class); + DocType docType = service.selectById(this.docType); + if (!Cools.isEmpty(docType)){ + return String.valueOf(docType.getDocName()); + } + return null; + } + + public String getPayType$(){ + if (null == this.payType){ return null; } + switch (this.payType){ + case 1: + return "鐜伴噾"; + case 2: + return "璁拌处"; + default: + return String.valueOf(this.payType); + } + } + + public String getPostFeeType$(){ + if (null == this.postFeeType){ return null; } + switch (this.postFeeType){ + case 1: + return "鍦ㄧ嚎鏀粯"; + case 2: + return "璐у埌浠樻"; + default: + return String.valueOf(this.postFeeType); + } + } + + public String getPayTime$(){ + if (Cools.isEmpty(this.payTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.payTime); + } + + public String getSendTime$(){ + if (Cools.isEmpty(this.sendTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.sendTime); + } + + public String getSettle$(){ + OrderSettleService service = SpringUtils.getBean(OrderSettleService.class); + OrderSettle orderSettle = service.selectById(this.settle); + if (!Cools.isEmpty(orderSettle)){ + return String.valueOf(orderSettle.getSettleName()); + } + return null; + } + + public String getStatus$(){ + if (null == this.status){ return null; } + switch (this.status){ + case 1: + return "姝e父"; + case 0: + return "绂佺敤"; + default: + return String.valueOf(this.status); + } + } + + public String getMoveStatus$(){ + if (null == this.moveStatus){ return null; } + switch (this.moveStatus){ + case 2: + return "宸插璐�"; + case 1: + return "澶囪揣涓�"; + case 0: + return "鏈垵濮�"; + default: + return String.valueOf(this.moveStatus); + } + } + + public String getCreateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.createBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getCreateTime$(){ + if (Cools.isEmpty(this.createTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); + } + + public String getUpdateBy$(){ + UserService service = SpringUtils.getBean(UserService.class); + User user = service.selectById(this.updateBy); + if (!Cools.isEmpty(user)){ + return String.valueOf(user.getUsername()); + } + return null; + } + + public String getUpdateTime$(){ + if (Cools.isEmpty(this.updateTime)){ + return ""; + } + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); + } + + +} diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java new file mode 100644 index 0000000..7e4d8b1 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/OrderDetlPakoutMapper.java @@ -0,0 +1,37 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.OrderDetlPakout; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +@Mapper +@Repository +public interface OrderDetlPakoutMapper extends BaseMapper<OrderDetlPakout> { + + OrderDetlPakout selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch); + + OrderDetlPakout selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch); + + List<OrderDetlPakout> selectWorkingDetls(Long orderId); + + List<OrderDetlPakout> getPakoutPage(Map<String, Object> map); + + Integer getPakoutPageCount(Map<String, Object> map); + + int increase(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty); + + int decrease(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty); + + int modifyStatus(@Param("orderId") Long orderId, @Param("status")Integer status); + + int addToLogTable(OrderDetlPakout orderDetl); + + int increaseQtyByOrderNo(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty); + + int increaseWorkQty(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty); +} diff --git a/src/main/java/com/zy/asrs/mapper/OrderPakinMapper.java b/src/main/java/com/zy/asrs/mapper/OrderPakinMapper.java new file mode 100644 index 0000000..cee44b4 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/OrderPakinMapper.java @@ -0,0 +1,26 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.OrderPakin; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface OrderPakinMapper extends BaseMapper<OrderPakin> { + + int updateSettle(@Param("orderId")Long orderId, @Param("settle")Long settle, @Param("userId")Long userId); + + List<OrderPakin> selectComplete(); + List<OrderPakin> selectComplete8(); + + int addToLogTable(OrderPakin order); + + List<OrderPakin> selectorderNoL(@Param("orderNo")String orderNo); + + OrderPakin selectOrderMoveStatus(); + OrderPakin selectOrderMoveStatusInitial(); +} diff --git a/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java b/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java new file mode 100644 index 0000000..6682c7c --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/OrderPakoutMapper.java @@ -0,0 +1,26 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.OrderPakout; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Mapper +@Repository +public interface OrderPakoutMapper extends BaseMapper<OrderPakout> { + + int updateSettle(@Param("orderId")Long orderId, @Param("settle")Long settle, @Param("userId")Long userId); + + List<OrderPakout> selectComplete(); + List<OrderPakout> selectComplete8(); + + int addToLogTable(OrderPakout order); + + List<OrderPakout> selectorderNoL(@Param("orderNo")String orderNo); + + OrderPakout selectOrderMoveStatus(); + OrderPakout selectOrderMoveStatusInitial(); +} diff --git a/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java b/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java new file mode 100644 index 0000000..44c975a --- /dev/null +++ b/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java @@ -0,0 +1,40 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderDetlPakin; + +import java.util.List; + +public interface OrderDetlPakinService extends IService<OrderDetlPakin> { + + List<OrderDetlPakin> selectByOrderId(Long orderId); + + Page<OrderDetlPakin> getPakoutPage(Page<OrderDetlPakin> page); + + OrderDetlPakin selectItem(Long orderId, String matnr, String batch); + + OrderDetlPakin selectItem(String orderNo, String matnr, String batch); + + OrderDetlPakin findByLook(List<OrderDetlPakin> orderDetls, Long orderId, String matnr, String batch); + + boolean increase(Long orderId, String matnr, String batch, Double qty); + + boolean decrease(String orderNo, String matnr, String batch, Double qty); + + boolean modifyStatus(Long orderId, Integer status); + + boolean addToLogTable(OrderDetlPakin orderDetl); + + boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty); + + /** + * 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲� + * @param orderId + * @param matnr + * @param batch + * @param workQty + * @return + */ + boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty); +} diff --git a/src/main/java/com/zy/asrs/service/OrderDetlPakoutService.java b/src/main/java/com/zy/asrs/service/OrderDetlPakoutService.java new file mode 100644 index 0000000..ba2d213 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/OrderDetlPakoutService.java @@ -0,0 +1,40 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderDetlPakout; + +import java.util.List; + +public interface OrderDetlPakoutService extends IService<OrderDetlPakout> { + + List<OrderDetlPakout> selectByOrderId(Long orderId); + + Page<OrderDetlPakout> getPakoutPage(Page<OrderDetlPakout> page); + + OrderDetlPakout selectItem(Long orderId, String matnr, String batch); + + OrderDetlPakout selectItem(String orderNo, String matnr, String batch); + + OrderDetlPakout findByLook(List<OrderDetlPakout> orderDetls, Long orderId, String matnr, String batch); + + boolean increase(Long orderId, String matnr, String batch, Double qty); + + boolean decrease(String orderNo, String matnr, String batch, Double qty); + + boolean modifyStatus(Long orderId, Integer status); + + boolean addToLogTable(OrderDetlPakout orderDetl); + + boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty); + + /** + * 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲� + * @param orderId + * @param matnr + * @param batch + * @param workQty + * @return + */ + boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty); +} diff --git a/src/main/java/com/zy/asrs/service/OrderPakinService.java b/src/main/java/com/zy/asrs/service/OrderPakinService.java new file mode 100644 index 0000000..0d21930 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/OrderPakinService.java @@ -0,0 +1,35 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderPakin; +import com.zy.asrs.entity.OrderDetlPakin; +import com.zy.asrs.entity.WrkDetl; +import com.zy.asrs.entity.WrkMast; + +import java.util.List; + +public interface OrderPakinService extends IService<OrderPakin> { + + OrderPakin selectByNo(String orderNo); + + List<OrderDetlPakin> selectWorkingDetls(Long orderId); + + boolean updateSettle(Long orderId, Long settle, Long userId); + + void checkComplete(String orderNo); + + boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls); + + void remove(Long orderId); + + List<OrderPakin> selectComplete(); + List<OrderPakin> selectComplete8(); + + boolean addToLogTable(OrderPakin order); + + List<OrderPakin> selectorderNoL(String orderNo); + + OrderPakin selectOrderMoveStatus(); + OrderPakin selectOrderMoveStatusInitial(); + +} diff --git a/src/main/java/com/zy/asrs/service/OrderPakoutService.java b/src/main/java/com/zy/asrs/service/OrderPakoutService.java new file mode 100644 index 0000000..09643a1 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/OrderPakoutService.java @@ -0,0 +1,35 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderPakout; +import com.zy.asrs.entity.OrderDetlPakout; +import com.zy.asrs.entity.WrkDetl; +import com.zy.asrs.entity.WrkMast; + +import java.util.List; + +public interface OrderPakoutService extends IService<OrderPakout> { + + OrderPakout selectByNo(String orderNo); + + List<OrderDetlPakout> selectWorkingDetls(Long orderId); + + boolean updateSettle(Long orderId, Long settle, Long userId); + + void checkComplete(String orderNo); + + boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls); + + void remove(Long orderId); + + List<OrderPakout> selectComplete(); + List<OrderPakout> selectComplete8(); + + boolean addToLogTable(OrderPakout order); + + List<OrderPakout> selectorderNoL(String orderNo); + + OrderPakout selectOrderMoveStatus(); + OrderPakout selectOrderMoveStatusInitial(); + +} diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java new file mode 100644 index 0000000..a0b0cf2 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java @@ -0,0 +1,93 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.zy.asrs.entity.OrderDetlPakin; +import com.zy.asrs.mapper.OrderDetlPakinMapper; +import com.zy.asrs.service.OrderDetlPakinService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("orderDetlPakinService") +public class OrderDetlPakinServiceImpl extends ServiceImpl<OrderDetlPakinMapper, OrderDetlPakin> implements OrderDetlPakinService { + + @Override + public List<OrderDetlPakin> selectByOrderId(Long orderId) { + return this.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", orderId)); + } + + @Override + public Page<OrderDetlPakin> getPakoutPage(Page<OrderDetlPakin> page) { + page.setRecords(baseMapper.getPakoutPage(page.getCondition())); + page.setTotal(baseMapper.getPakoutPageCount(page.getCondition())); + return page; + } + + @Override + public OrderDetlPakin selectItem(Long orderId, String matnr, String batch) { + return this.baseMapper.selectItem(orderId, matnr, batch); + } + + @Override + public OrderDetlPakin selectItem(String orderNo, String matnr, String batch) { + return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch); + } + + @Override + public OrderDetlPakin findByLook(List<OrderDetlPakin> orderDetls, Long orderId, String matnr, String batch) { + for (OrderDetlPakin orderDetl : orderDetls) { + if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) { + if (Cools.eq(batch, orderDetl.getBatch())) { + return orderDetl; + } + } + } + return null; + } + + @Override + public boolean increase(Long orderId, String matnr, String batch, Double qty) { + return this.baseMapper.increase(orderId, matnr, batch, qty) > 0; + } + + @Override + public boolean decrease(String orderNo, String matnr, String batch, Double qty) { + int decrease = this.baseMapper.decrease(orderNo, matnr, batch, qty); + if (decrease == 0) { + return this.baseMapper.decrease(orderNo, matnr, null, qty) > 0; + } else { + return true; + } + } + + @Override + public boolean modifyStatus(Long orderId, Integer status) { + return this.baseMapper.modifyStatus(orderId, status) > 0; + } + + @Override + public boolean addToLogTable(OrderDetlPakin orderDetl) { + return this.baseMapper.addToLogTable(orderDetl) > 0; + } + + @Override + public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty) { + return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch, qty) > 0; + } + + /** + * 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲� + * @param orderId + * @param matnr + * @param batch + * @param workQty + * @return + */ + @Override + public boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty) { + return this.baseMapper.increaseWorkQty(orderId, matnr, batch, workQty) > 0; + } +} diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java new file mode 100644 index 0000000..1faf2da --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java @@ -0,0 +1,93 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.zy.asrs.entity.OrderDetlPakout; +import com.zy.asrs.mapper.OrderDetlPakoutMapper; +import com.zy.asrs.service.OrderDetlPakoutService; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("orderDetlPakoutService") +public class OrderDetlPakoutServiceImpl extends ServiceImpl<OrderDetlPakoutMapper, OrderDetlPakout> implements OrderDetlPakoutService { + + @Override + public List<OrderDetlPakout> selectByOrderId(Long orderId) { + return this.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId)); + } + + @Override + public Page<OrderDetlPakout> getPakoutPage(Page<OrderDetlPakout> page) { + page.setRecords(baseMapper.getPakoutPage(page.getCondition())); + page.setTotal(baseMapper.getPakoutPageCount(page.getCondition())); + return page; + } + + @Override + public OrderDetlPakout selectItem(Long orderId, String matnr, String batch) { + return this.baseMapper.selectItem(orderId, matnr, batch); + } + + @Override + public OrderDetlPakout selectItem(String orderNo, String matnr, String batch) { + return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch); + } + + @Override + public OrderDetlPakout findByLook(List<OrderDetlPakout> orderDetls, Long orderId, String matnr, String batch) { + for (OrderDetlPakout orderDetl : orderDetls) { + if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) { + if (Cools.eq(batch, orderDetl.getBatch())) { + return orderDetl; + } + } + } + return null; + } + + @Override + public boolean increase(Long orderId, String matnr, String batch, Double qty) { + return this.baseMapper.increase(orderId, matnr, batch, qty) > 0; + } + + @Override + public boolean decrease(String orderNo, String matnr, String batch, Double qty) { + int decrease = this.baseMapper.decrease(orderNo, matnr, batch, qty); + if (decrease == 0) { + return this.baseMapper.decrease(orderNo, matnr, null, qty) > 0; + } else { + return true; + } + } + + @Override + public boolean modifyStatus(Long orderId, Integer status) { + return this.baseMapper.modifyStatus(orderId, status) > 0; + } + + @Override + public boolean addToLogTable(OrderDetlPakout orderDetl) { + return this.baseMapper.addToLogTable(orderDetl) > 0; + } + + @Override + public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, Double qty) { + return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch, qty) > 0; + } + + /** + * 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲� + * @param orderId + * @param matnr + * @param batch + * @param workQty + * @return + */ + @Override + public boolean increaseWorkQty(Long orderId, String matnr, String batch, Double workQty) { + return this.baseMapper.increaseWorkQty(orderId, matnr, batch, workQty) > 0; + } +} diff --git a/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java new file mode 100644 index 0000000..2b4bc02 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/OrderPakinServiceImpl.java @@ -0,0 +1,192 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.SnowflakeIdWorker; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.OpenOrderPakinParam; +import com.zy.asrs.entity.param.OpenOrderPakoutParam; +import com.zy.asrs.mapper.OrderDetlPakinMapper; +import com.zy.asrs.mapper.OrderPakinMapper; +import com.zy.asrs.service.*; +import com.zy.common.model.DetlDto; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Service("orderPakinService") +public class OrderPakinServiceImpl extends ServiceImpl<OrderPakinMapper, OrderPakin> implements OrderPakinService { + + @Autowired + private OrderDetlPakinMapper orderDetlMapper; + @Autowired + private OpenService openService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private OrderDetlPakinService orderDetlService; + @Autowired + private DocTypeService docTypeService; + @Autowired + private WrkDetlService wrkDetlService; + + @Override + public OrderPakin selectByNo(String orderNo) { + List<OrderPakin> orderList = this.selectList(new EntityWrapper<OrderPakin>().eq("order_no", orderNo)); + if (Cools.isEmpty(orderList)) { + return null; + } + return orderList.get(0); + } + + @Override + public List<OrderDetlPakin> selectWorkingDetls(Long orderId) { + return orderDetlMapper.selectWorkingDetls(orderId); + } + + @Override + public boolean updateSettle(Long orderId, Long settle, Long userId) { + return this.baseMapper.updateSettle(orderId, settle, userId) > 0; + } + + @Override + public void checkComplete(String orderNo) { + OrderPakin order = this.selectByNo(orderNo); + if (Cools.isEmpty(order) || order.getSettle() >= 4L) { + return; + } + List<OrderDetlPakin> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId())); + boolean complete = true; + for (OrderDetlPakin orderDetl : orderDetls) { + if (orderDetl.getAnfme() > orderDetl.getQty()) { + complete = false; + break; + } + } + if (complete) { + // 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏 + DocType docType = docTypeService.selectById(order.getDocType()); + if (null != docType && docType.getPakout() == 1) { + if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", order.getId()))) { + throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�"); + } + List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo); + for (WrkDetl wrkDetl : wrkDetls) { + OrderDetlPakin orderDetl = new OrderDetlPakin(); + orderDetl.sync(wrkDetl); + orderDetl.setQty(orderDetl.getAnfme()); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(orderNo); + orderDetl.setStatus(1); + orderDetl.setCreateTime(order.getCreateTime()); + orderDetl.setCreateBy(order.getCreateBy()); + orderDetl.setUpdateTime(order.getUpdateTime()); + orderDetl.setUpdateBy(order.getUpdateBy()); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�"); + } + } + } + + if (!this.updateSettle(order.getId(), 4L, null)) { + throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�"); + } + } + + } + + @Override + public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) { + try { + List<DetlDto> detlDtos = new ArrayList<>(); + wrkDetls.forEach(wrkDetl -> { + detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())); + }); + String orderNo = "HAND" + snowflakeIdWorker.nextId(); + if (pakin) { + // 鐢熸垚鍏ュ簱鍗曟嵁 + OpenOrderPakinParam openParam = new OpenOrderPakinParam(); + openParam.setOrderNo(orderNo); + openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); + openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�"); + openParam.setOrderDetails(detlDtos); + openService.pakinOrderCreate(openParam); + } else { + // 鐢熸垚鍑哄簱鍗曟嵁 + OpenOrderPakoutParam openParam = new OpenOrderPakoutParam(); + openParam.setOrderNo(orderNo); + openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); + openParam.setOrderType("鎵嬪姩鍑哄簱鍗�"); + openParam.setOrderDetails(detlDtos); + openService.pakoutOrderCreate(openParam); + } + + OrderPakin order = this.selectByNo(orderNo); + if (null == order) { + throw new CoolException("鐢熸垚鍗曟嵁澶辫触"); + } + if (!this.updateSettle(order.getId(), 4L, null)) { + throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�"); + } + for (DetlDto detlDto : detlDtos) { + // 淇敼璁㈠崟鏄庣粏鏁伴噺 + if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触"); + } + // 淇敼璁㈠崟浣滀笟鏁伴噺 + if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); + } + } + } catch (Exception e) { + log.error("saveHandlerOrder===>>", e); + return false; + } + return true; + } + + @Override + public void remove(Long orderId) { + if (!this.deleteById(orderId)) { + throw new CoolException("鍒犻櫎鍗曟嵁澶辫触"); + } + orderDetlService.delete(new EntityWrapper<OrderDetlPakin>().eq("order_id", orderId)); + } + + @Override + public List<OrderPakin> selectComplete() { + return this.baseMapper.selectComplete(); + } + + @Override + public List<OrderPakin> selectComplete8() { + return this.baseMapper.selectComplete8(); + } + + @Override + public boolean addToLogTable(OrderPakin order) { + return this.baseMapper.addToLogTable(order) > 0; + } + + @Override + public List<OrderPakin> selectorderNoL(String orderNo) { + return this.baseMapper.selectorderNoL(orderNo); + } + + @Override + public OrderPakin selectOrderMoveStatus() { + return this.baseMapper.selectOrderMoveStatus(); + } + @Override + public OrderPakin selectOrderMoveStatusInitial() { + return this.baseMapper.selectOrderMoveStatusInitial(); + } + +} diff --git a/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java new file mode 100644 index 0000000..9870088 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/OrderPakoutServiceImpl.java @@ -0,0 +1,192 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.SnowflakeIdWorker; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.OpenOrderPakinParam; +import com.zy.asrs.entity.param.OpenOrderPakoutParam; +import com.zy.asrs.mapper.OrderDetlPakoutMapper; +import com.zy.asrs.mapper.OrderPakoutMapper; +import com.zy.asrs.service.*; +import com.zy.common.model.DetlDto; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@Service("orderPakoutService") +public class OrderPakoutServiceImpl extends ServiceImpl<OrderPakoutMapper, OrderPakout> implements OrderPakoutService { + + @Autowired + private OrderDetlPakoutMapper orderDetlMapper; + @Autowired + private OpenService openService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private OrderDetlPakoutService orderDetlService; + @Autowired + private DocTypeService docTypeService; + @Autowired + private WrkDetlService wrkDetlService; + + @Override + public OrderPakout selectByNo(String orderNo) { + List<OrderPakout> orderList = this.selectList(new EntityWrapper<OrderPakout>().eq("order_no", orderNo)); + if (Cools.isEmpty(orderList)) { + return null; + } + return orderList.get(0); + } + + @Override + public List<OrderDetlPakout> selectWorkingDetls(Long orderId) { + return orderDetlMapper.selectWorkingDetls(orderId); + } + + @Override + public boolean updateSettle(Long orderId, Long settle, Long userId) { + return this.baseMapper.updateSettle(orderId, settle, userId) > 0; + } + + @Override + public void checkComplete(String orderNo) { + OrderPakout order = this.selectByNo(orderNo); + if (Cools.isEmpty(order) || order.getSettle() >= 4L) { + return; + } + List<OrderDetlPakout> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId())); + boolean complete = true; + for (OrderDetlPakout orderDetl : orderDetls) { + if (orderDetl.getAnfme() > orderDetl.getQty()) { + complete = false; + break; + } + } + if (complete) { + // 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏 + DocType docType = docTypeService.selectById(order.getDocType()); + if (null != docType && docType.getPakout() == 1) { + if (!orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", order.getId()))) { + throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�"); + } + List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo); + for (WrkDetl wrkDetl : wrkDetls) { + OrderDetlPakout orderDetl = new OrderDetlPakout(); + orderDetl.sync(wrkDetl); + orderDetl.setQty(orderDetl.getAnfme()); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(orderNo); + orderDetl.setStatus(1); + orderDetl.setCreateTime(order.getCreateTime()); + orderDetl.setCreateBy(order.getCreateBy()); + orderDetl.setUpdateTime(order.getUpdateTime()); + orderDetl.setUpdateBy(order.getUpdateBy()); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�"); + } + } + } + + if (!this.updateSettle(order.getId(), 4L, null)) { + throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�"); + } + } + + } + + @Override + public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) { + try { + List<DetlDto> detlDtos = new ArrayList<>(); + wrkDetls.forEach(wrkDetl -> { + detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())); + }); + String orderNo = "HAND" + snowflakeIdWorker.nextId(); + if (pakin) { + // 鐢熸垚鍏ュ簱鍗曟嵁 + OpenOrderPakinParam openParam = new OpenOrderPakinParam(); + openParam.setOrderNo(orderNo); + openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); + openParam.setOrderType("鎵嬪姩鍏ュ簱鍗�"); + openParam.setOrderDetails(detlDtos); + openService.pakinOrderCreate(openParam); + } else { + // 鐢熸垚鍑哄簱鍗曟嵁 + OpenOrderPakoutParam openParam = new OpenOrderPakoutParam(); + openParam.setOrderNo(orderNo); + openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); + openParam.setOrderType("鎵嬪姩鍑哄簱鍗�"); + openParam.setOrderDetails(detlDtos); + openService.pakoutOrderCreate(openParam); + } + + OrderPakout order = this.selectByNo(orderNo); + if (null == order) { + throw new CoolException("鐢熸垚鍗曟嵁澶辫触"); + } + if (!this.updateSettle(order.getId(), 4L, null)) { + throw new CoolException("淇敼鍗曟嵁鐘舵�佸け璐�"); + } + for (DetlDto detlDto : detlDtos) { + // 淇敼璁㈠崟鏄庣粏鏁伴噺 + if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁鏄庣粏鏁伴噺澶辫触"); + } + // 淇敼璁㈠崟浣滀笟鏁伴噺 + if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { + throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); + } + } + } catch (Exception e) { + log.error("saveHandlerOrder===>>", e); + return false; + } + return true; + } + + @Override + public void remove(Long orderId) { + if (!this.deleteById(orderId)) { + throw new CoolException("鍒犻櫎鍗曟嵁澶辫触"); + } + orderDetlService.delete(new EntityWrapper<OrderDetlPakout>().eq("order_id", orderId)); + } + + @Override + public List<OrderPakout> selectComplete() { + return this.baseMapper.selectComplete(); + } + + @Override + public List<OrderPakout> selectComplete8() { + return this.baseMapper.selectComplete8(); + } + + @Override + public boolean addToLogTable(OrderPakout order) { + return this.baseMapper.addToLogTable(order) > 0; + } + + @Override + public List<OrderPakout> selectorderNoL(String orderNo) { + return this.baseMapper.selectorderNoL(orderNo); + } + + @Override + public OrderPakout selectOrderMoveStatus() { + return this.baseMapper.selectOrderMoveStatus(); + } + @Override + public OrderPakout selectOrderMoveStatusInitial() { + return this.baseMapper.selectOrderMoveStatusInitial(); + } + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3b24622..f14b555 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -13,7 +13,7 @@ # url: jdbc:sqlserver://192.168.4.191:1433;databasename=integrationasrs # username: sa # password: sa@123 - url: jdbc:sqlserver://192.168.4.191:50948;databasename=integrationasrs + url: jdbc:sqlserver://192.168.4.191:50948;databasename=source username: sa password: sa@123 mvc: diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic index c42fa89..22364dc 100644 --- a/src/main/resources/license.lic +++ b/src/main/resources/license.lic Binary files differ diff --git a/src/main/resources/mapper/OrderPakoutMapper.xml b/src/main/resources/mapper/OrderPakoutMapper.xml new file mode 100644 index 0000000..b134824 --- /dev/null +++ b/src/main/resources/mapper/OrderPakoutMapper.xml @@ -0,0 +1,103 @@ +<?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.zy.asrs.mapper.OrderPakoutMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.zy.asrs.entity.OrderPakout"> + <id column="id" property="id" /> + <result column="uuid" property="uuid" /> + <result column="order_no" property="orderNo" /> + <result column="order_time" property="orderTime" /> + <result column="doc_type" property="docType" /> + <result column="item_id" property="itemId" /> + <result column="item_name" property="itemName" /> + <result column="allot_item_id" property="allotItemId" /> + <result column="def_number" property="defNumber" /> + <result column="number" property="number" /> + <result column="cstmr" property="cstmr" /> + <result column="cstmr_name" property="cstmrName" /> + <result column="tel" property="tel" /> + <result column="oper_memb" property="operMemb" /> + <result column="total_fee" property="totalFee" /> + <result column="discount" property="discount" /> + <result column="discount_fee" property="discountFee" /> + <result column="other_fee" property="otherFee" /> + <result column="act_fee" property="actFee" /> + <result column="pay_type" property="payType" /> + <result column="salesman" property="salesman" /> + <result column="account_day" property="accountDay" /> + <result column="post_fee_type" property="postFeeType" /> + <result column="post_fee" property="postFee" /> + <result column="pay_time" property="payTime" /> + <result column="send_time" property="sendTime" /> + <result column="ship_name" property="shipName" /> + <result column="ship_code" property="shipCode" /> + <result column="settle" property="settle" /> + <result column="status" property="status" /> + <result column="create_by" property="createBy" /> + <result column="create_time" property="createTime" /> + <result column="update_by" property="updateBy" /> + <result column="update_time" property="updateTime" /> + <result column="memo" property="memo" /> + <result column="move_status" property="moveStatus" /> + + </resultMap> + + <update id="updateSettle"> + update man_order_pakout + set settle = #{settle} + ,update_time = getdate() + <if test="userId != null"> + ,update_by = #{userId} + </if> + where 1=1 + and id = #{orderId} + </update> + + <select id="selectComplete" resultMap="BaseResultMap"> + select top 5 * + from man_order_pakout + where 1=1 + and settle = 4 + and status = 1 + order by create_time asc + </select> + + <select id="selectComplete8" resultMap="BaseResultMap"> + select top 5 * + from man_order_pakout + where 1=1 + and settle = 8 + and status = 1 + order by create_time asc + </select> + + <insert id="addToLogTable"> + INSERT INTO man_order_log SELECT * FROM man_order WHERE id = #{id} + </insert> + + <select id="selectorderNoL" resultMap="BaseResultMap"> + select top 10 * + from man_order_pakout + where 1=1 + <if test="orderNo != null"> + and order_no = #{orderNo} + </if> + </select> + + <select id="selectOrderMoveStatus" resultMap="BaseResultMap"> + select top 1 * + from man_order_pakout + where 1=1 + and move_status = 2 + </select> + + <select id="selectOrderMoveStatusInitial" resultMap="BaseResultMap"> + select top 1 * + from man_order_pakout + where 1=1 + and move_status = 1 + order by update_time + </select> + +</mapper> diff --git a/src/main/webapp/static/image/logo.png b/src/main/webapp/static/image/logo.png index 231c97e..815d824 100644 --- a/src/main/webapp/static/image/logo.png +++ b/src/main/webapp/static/image/logo.png Binary files differ diff --git a/src/main/webapp/static/js/orderPakin/order.js b/src/main/webapp/static/js/orderPakin/order.js new file mode 100644 index 0000000..6b38ea5 --- /dev/null +++ b/src/main/webapp/static/js/orderPakin/order.js @@ -0,0 +1,546 @@ +var insTbCount = 0; +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" +}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () { + var $ = layui.jquery; + var layer = layui.layer; + var form = layui.form; + var table = layui.table; + var util = layui.util; + var admin = layui.admin; + var xmSelect = layui.xmSelect; + var layDate = layui.laydate; + var laytpl = layui.laytpl; + + // 娓叉煋鎼滅储妯℃澘 + $.ajax({ + url: baseUrl+"/docType/list/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + limit: 9999 + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + let template = Handlebars.compile($('#docTypeTpl').html()); + $('#docType-query').html(template(res.data)); + layui.form.render('select'); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + + // 娓叉煋琛ㄦ牸 + var insTb = table.render({ + elem: '#order', + url: baseUrl+'/order/pakin/order/head/page/auth', + headers: {token: localStorage.getItem('token')}, + page: true, + cellMinWidth: 100, + cols: [[ + {type: 'numbers'}, + {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'}, + {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160}, + {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160}, + {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200}, + {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160}, + {field: 'memo', align: 'center',title: '澶囨敞', hide: true}, + {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function (res, curr, count) { + limit(); + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + insTbCount = count; + } + }); + + // 鎼滅储 + form.on('submit(tbSearch)', function (data) { + insTb.reload({where: data.field, page: {curr: 1}}); + }); + + // 娣诲姞 + $("#orderAddBtn").click(function () { + showEditModel(); + }); + + // 宸ュ叿鏉$偣鍑讳簨浠� + table.on('tool(order)', function (obj) { + var data = obj.data; + var layEvent = obj.event; + if (layEvent === 'edit') { + showEditModel(data); + } else if (layEvent === 'wrkTrace') { + showWrkTrace(data.id); + } else if (layEvent === 'del') { + doDel(data.id); + } else if (layEvent === 'complete') { + doModify(data.id, data.orderNo, 4); + } else if (layEvent === 'look') { + var $a = $(obj.tr).find('a[lay-event="look"]'); + var offset = $a.offset(); + var top = offset.top; + var left = offset.left; + layer.open({ + type: 1, + title: false, + area: '820px', + offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], + shade: .01, + shadeClose: true, + fixed: false, + content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>', + success: function (layero) { + table.render({ + elem: '#lookSSXMTable', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/order/pakin/orderDetl/list/auth', + where: { + order_id: data.id + }, + page: true, + cellMinWidth: 100, + cols: [[ + {type: 'numbers'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, + {field: 'batch', title: '鎵瑰彿'}, + {field: 'anfme', title: '鏁伴噺'}, + {field: 'workQty', title: '浣滀笟鏁伴噺'}, + {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'}, + // {field: 'unit', title: '鍗曚綅'}, + // { + // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) { + // return util.toDateString(d.createTime); + // }, width: 180 + // }, + // {field: 'inQty', title: '宸插叆搴撻噺'}, + // {field: 'color', title: '棰滆壊'}, + {field: 'specs', title: '瑙勬牸'} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function () { + $(layero).find('.layui-table-view').css('margin', '0'); + }, + size: '' + }); + } + }); + } + }); + + // 鏄剧ず琛ㄥ崟寮圭獥 + function showEditModel(expTpe) { + admin.open({ + type: 1, + title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁', + content: $('#editDialog').html(), + area: '1300px', + success: function (layero, dIndex) { + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + var isExpAdd = !expTpe; + // 鍥炴樉鏁版嵁 + form.val('editForm', expTpe); + if (expTpe) { + $('#orderNo').attr("disabled", "disabled"); + } + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(orderEditSubmit)', function (data) { + // 缁勮鏁版嵁 + if (xxDataList.length <= 0) { + layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']}); + return false; + } + let nList = admin.util.deepClone(xxDataList); + for (let xi = 0; xi < nList.length; xi++) { + if (nList[xi].anfme <= 0){ + layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2}); + return false; + } + if (nList[xi].anfme < nList[xi].workQty){ + layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2}); + return false; + } + } + layer.load(2); + $.ajax({ + url: baseUrl+"/order/pakin/order/form/" + (isExpAdd?"add":"modify") + "/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + orderId: Number(data.field.id), + docType: Number(data.field.docType), + orderNo: data.field.orderNo, + orderDetlPakinList: nList + }), + contentType:'application/json;charset=UTF-8', + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + layer.close(dIndex); + $(".layui-laypage-btn")[0].click(); + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + return false; + }); + // 鏄庣粏琛ㄦ牸 + var xxDataList = []; + var tbOptions = { + elem: '#formSSXMTable', + headers: {token: localStorage.getItem('token')}, + data: xxDataList, + page: true, + height: '350px;', + cellMinWidth: 100, + cols: [[ + {type: 'numbers', title: '#'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, + {field: 'batch', title: '鎵瑰彿', edit: true}, + {field: 'specs', title: '瑙勬牸'}, + {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, + {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100}, + // {field: 'unit', title: '鍗曚綅', width: 80}, + {field: 'memo', title: '澶囨敞' , edit: true}, + {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} + ]], + done: function (res) { + $(layero).find('.layui-table-view').css('margin', '0'); + }, + size: '' + }; + if (!isExpAdd) { + $.ajax({ + url: baseUrl+"/order/pakin/order/detl/all/auth?orderId=" + expTpe.id, + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + async: false, + success: function (res) { + if (res.code === 200){ + xxDataList = res.data; + tbOptions.data = xxDataList; + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + var insTbSSXM = table.render(tbOptions); + // 宸ュ叿鏉$偣鍑讳簨浠� + table.on('tool(formSSXMTable)', function (obj) { + var data = obj.data; + var layEvent = obj.event; + if (layEvent === 'edit') { + showEditModel2(data); + } else if (layEvent === 'del') { + if(data.workQty > 0){ + layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2}); + return; + } + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + for (var j = 0; j < xxDataList.length; j++) { + if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) { + xxDataList.splice(j, 1); + break; + } + } + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + }); + } + }); + // 鏄庣粏鏁版嵁淇敼 + table.on('edit(formSSXMTable)', function (obj) { + let index = obj.tr.attr("data-index"); + let data = xxDataList[index]; + if (obj.field === 'anfme'){ + let vle = Number(obj.value); + if (isNaN(vle)) { + layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2}); + return false; + } else { + if (vle <= 0) { + layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2}); + // data[obj.field] = 0; + // insTbSSXM.reload({data: xxDataList}); + return false; + } + if(obj.value < data.workQty){ + layer.msg("杈撳叆鏁伴噺涓嶈兘灏忎簬浣滀笟涓暟閲�", {icon: 2}); + // data[obj.field] = 0; + // insTbSSXM.reload({data: xxDataList}); + return false; + } + } + } + data[obj.field] = obj.value; + insTbSSXM.reload({data: xxDataList}); + }); + + $('#matAddBtnComment').click(function () { + showEditModel2(); + }); + + // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥 + function showEditModel2(exp) { + admin.open({ + type: 1, + offset: '150px', + area: '680px', + title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏', + content: $('#matEditDialog').html(), + success: function (layero, dIndex) { + // 鍥炴樉鏁版嵁 + form.val('matEditForm', exp); + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(matEditSubmit)', function (data) { + let selectList = matXmSelect.getValue(); + for (let i = 0; i<selectList.length; i++) { + let item = selectList[i]; + // 鏌ヨ鐗╂枡璇︽儏 + $.ajax({ + url: baseUrl+"/mat/covert/"+item.value+"/auth", + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + async: false, + success: function (res) { + if (res.code === 200){ + xxDataList.push(res.data); + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + layer.close(dIndex); + return false; + }); + // 娓叉煋鐗╂枡閫夋嫨 + var matXmSelect = xmSelect.render({ + el: '#mat', + style: { + width: '340px', + }, + autoRow: true, + toolbar: { show: true }, + filterable: true, + remoteSearch: true, + remoteMethod: function(val, cb, show){ + $.ajax({ + url: baseUrl+"/mat/all/get/kv", + headers: {'token': localStorage.getItem('token')}, + data: { + condition: val + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + cb(res.data) + } else { + cb([]); + layer.msg(res.msg, {icon: 2}); + } + } + }); + } + }) + // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯 + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + layui.form.render('select'); + } + }); + } + + } + }); + } + + // 鍒犻櫎鍗曟嵁 + function doDel(orderId) { + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + $.ajax({ + url: baseUrl+"/order/pakin/order/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: orderId + }, + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 淇敼璁㈠崟鐘舵�� + function doModify(orderId, orderNo, settle) { + layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撳悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + console.log(orderId); + console.log(settle); + $.ajax({ + url: baseUrl+"/order/pakin/order/update/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + id: orderId, + orderNo: orderNo, + settle: settle + }, + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 浠诲姟杩芥函 + function showWrkTrace(orderId) { + let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false}); + $.ajax({ + url: baseUrl+"/order/pakin/order/wrk/trace/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: orderId + }, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) { + admin.open({ + type: 1, + title: '浠诲姟杩芥函', + area: ['800px', '450px'], + shadeClose: true, + content: html, + success: function (layero, dIndex) { + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + /** 缁熻鍥捐〃 */ + var traceCharts = echarts.init(document.getElementById('wrkTraceCharts')); + var traceOptions = { + title: { + text: '鎬婚噺/浣滀笟/瀹屾垚', x: 'center', y: '38%', + textStyle: {fontSize: 18, color: '#262626', fontWeight: 'normal'}, + subtextStyle: {fontSize: 36, color: '#10B4E8'}, + itemGap: 20 + }, + color: ['#10B4E8', '#E0E0E0', '#FF0000'], + tooltip: {trigger: 'item'}, + series: [{name: '鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}] + }; + traceCharts.setOption(traceOptions); + // 璧嬪�� + traceCharts.setOption({ + title: { + subtext: res.data.totalQty+"/"+res.data.wrkQty+"/"+res.data.endQty + }, + series: [ + { + data: [ + {name: '宸蹭綔涓�', value: res.data.wrkQty}, + {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.lackQty}, + {name: '搴撳瓨涓嶈冻', value: res.data.lackQty}, + ] + } + ] + }); + } + }); + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + } + + layDate.render({ + elem: '.layui-laydate-range' + ,type: 'datetime' + ,range: true + }); +}); diff --git a/src/main/webapp/static/js/orderPakout/order.js b/src/main/webapp/static/js/orderPakout/order.js new file mode 100644 index 0000000..bedb1f0 --- /dev/null +++ b/src/main/webapp/static/js/orderPakout/order.js @@ -0,0 +1,546 @@ +var insTbCount = 0; +layui.config({ + base: baseUrl + "/static/layui/lay/modules/" +}).use(['layer', 'form', 'table', 'util', 'admin', 'xmSelect', 'laydate'], function () { + var $ = layui.jquery; + var layer = layui.layer; + var form = layui.form; + var table = layui.table; + var util = layui.util; + var admin = layui.admin; + var xmSelect = layui.xmSelect; + var layDate = layui.laydate; + var laytpl = layui.laytpl; + + // 娓叉煋鎼滅储妯℃澘 + $.ajax({ + url: baseUrl+"/docType/list/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + limit: 9999 + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + let template = Handlebars.compile($('#docTypeTpl').html()); + $('#docType-query').html(template(res.data)); + layui.form.render('select'); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + + // 娓叉煋琛ㄦ牸 + var insTb = table.render({ + elem: '#order', + url: baseUrl+'/order/pakout/order/head/page/auth', + headers: {token: localStorage.getItem('token')}, + page: true, + cellMinWidth: 100, + cols: [[ + {type: 'numbers'}, + {field: 'orderNo', title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'}, + {field: 'docType$', align: 'center', title: '绫诲瀷', minWidth: 160, width: 160}, + {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160}, + {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200}, + {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160}, + {field: 'memo', align: 'center',title: '澶囨敞', hide: true}, + {align: 'center', title: '鎿嶄綔', toolbar: '#operate', width: 180} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function (res, curr, count) { + limit(); + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + insTbCount = count; + } + }); + + // 鎼滅储 + form.on('submit(tbSearch)', function (data) { + insTb.reload({where: data.field, page: {curr: 1}}); + }); + + // 娣诲姞 + $("#orderAddBtn").click(function () { + showEditModel(); + }); + + // 宸ュ叿鏉$偣鍑讳簨浠� + table.on('tool(order)', function (obj) { + var data = obj.data; + var layEvent = obj.event; + if (layEvent === 'edit') { + showEditModel(data); + } else if (layEvent === 'wrkTrace') { + showWrkTrace(data.id); + } else if (layEvent === 'del') { + doDel(data.id); + } else if (layEvent === 'complete') { + doModify(data.id, data.orderNo, 4); + } else if (layEvent === 'look') { + var $a = $(obj.tr).find('a[lay-event="look"]'); + var offset = $a.offset(); + var top = offset.top; + var left = offset.left; + layer.open({ + type: 1, + title: false, + area: '820px', + offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], + shade: .01, + shadeClose: true, + fixed: false, + content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>', + success: function (layero) { + table.render({ + elem: '#lookSSXMTable', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/order/pakout/orderDetl/list/auth', + where: { + order_id: data.id + }, + page: true, + cellMinWidth: 100, + cols: [[ + {type: 'numbers'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, + {field: 'batch', title: '鎵瑰彿'}, + {field: 'anfme', title: '鏁伴噺'}, + {field: 'workQty', title: '浣滀笟鏁伴噺'}, + {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'}, + // {field: 'unit', title: '鍗曚綅'}, + // { + // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) { + // return util.toDateString(d.createTime); + // }, width: 180 + // }, + // {field: 'inQty', title: '宸插叆搴撻噺'}, + // {field: 'color', title: '棰滆壊'}, + {field: 'specs', title: '瑙勬牸'} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function () { + $(layero).find('.layui-table-view').css('margin', '0'); + }, + size: '' + }); + } + }); + } + }); + + // 鏄剧ず琛ㄥ崟寮圭獥 + function showEditModel(expTpe) { + admin.open({ + type: 1, + title: (expTpe ? '淇敼' : '娣诲姞') + '鍗曟嵁', + content: $('#editDialog').html(), + area: '1300px', + success: function (layero, dIndex) { + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + var isExpAdd = !expTpe; + // 鍥炴樉鏁版嵁 + form.val('editForm', expTpe); + if (expTpe) { + $('#orderNo').attr("disabled", "disabled"); + } + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(orderEditSubmit)', function (data) { + // 缁勮鏁版嵁 + if (xxDataList.length <= 0) { + layer.tips('璇锋坊鍔犲崟鎹槑缁�', '#matAddBtnComment', {tips: [1, '#ff4c4c']}); + return false; + } + let nList = admin.util.deepClone(xxDataList); + for (let xi = 0; xi < nList.length; xi++) { + if (nList[xi].anfme <= 0){ + layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2}); + return false; + } + if (nList[xi].anfme < nList[xi].workQty){ + layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2}); + return false; + } + } + layer.load(2); + $.ajax({ + url: baseUrl+"/order/pakout/order/form/" + (isExpAdd?"add":"modify") + "/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify({ + orderId: Number(data.field.id), + docType: Number(data.field.docType), + orderNo: data.field.orderNo, + orderDetlPakoutList: nList + }), + contentType:'application/json;charset=UTF-8', + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + layer.close(dIndex); + $(".layui-laypage-btn")[0].click(); + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + return false; + }); + // 鏄庣粏琛ㄦ牸 + var xxDataList = []; + var tbOptions = { + elem: '#formSSXMTable', + headers: {token: localStorage.getItem('token')}, + data: xxDataList, + page: true, + height: '350px;', + cellMinWidth: 100, + cols: [[ + {type: 'numbers', title: '#'}, + {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, + {field: 'batch', title: '鎵瑰彿', edit: true}, + {field: 'specs', title: '瑙勬牸'}, + {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, + {field: 'workQty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100}, + // {field: 'unit', title: '鍗曚綅', width: 80}, + {field: 'memo', title: '澶囨敞' , edit: true}, + {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} + ]], + done: function (res) { + $(layero).find('.layui-table-view').css('margin', '0'); + }, + size: '' + }; + if (!isExpAdd) { + $.ajax({ + url: baseUrl+"/order/pakout/order/detl/all/auth?orderId=" + expTpe.id, + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + async: false, + success: function (res) { + if (res.code === 200){ + xxDataList = res.data; + tbOptions.data = xxDataList; + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + var insTbSSXM = table.render(tbOptions); + // 宸ュ叿鏉$偣鍑讳簨浠� + table.on('tool(formSSXMTable)', function (obj) { + var data = obj.data; + var layEvent = obj.event; + if (layEvent === 'edit') { + showEditModel2(data); + } else if (layEvent === 'del') { + if(data.workQty > 0){ + layer.msg("宸插瓨鍦ㄤ綔涓氭暟閲忥紝涓嶈兘鍒犻櫎", {icon: 2}); + return; + } + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + for (var j = 0; j < xxDataList.length; j++) { + if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) { + xxDataList.splice(j, 1); + break; + } + } + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + }); + } + }); + // 鏄庣粏鏁版嵁淇敼 + table.on('edit(formSSXMTable)', function (obj) { + let index = obj.tr.attr("data-index"); + let data = xxDataList[index]; + if (obj.field === 'anfme'){ + let vle = Number(obj.value); + if (isNaN(vle)) { + layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2}); + return false; + } else { + if (vle <= 0) { + layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2}); + // data[obj.field] = 0; + // insTbSSXM.reload({data: xxDataList}); + return false; + } + if(obj.value < data.workQty){ + layer.msg("杈撳叆鏁伴噺涓嶈兘灏忎簬浣滀笟涓暟閲�", {icon: 2}); + // data[obj.field] = 0; + // insTbSSXM.reload({data: xxDataList}); + return false; + } + } + } + data[obj.field] = obj.value; + insTbSSXM.reload({data: xxDataList}); + }); + + $('#matAddBtnComment').click(function () { + showEditModel2(); + }); + + // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥 + function showEditModel2(exp) { + admin.open({ + type: 1, + offset: '150px', + area: '680px', + title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏', + content: $('#matEditDialog').html(), + success: function (layero, dIndex) { + // 鍥炴樉鏁版嵁 + form.val('matEditForm', exp); + // 琛ㄥ崟鎻愪氦浜嬩欢 + form.on('submit(matEditSubmit)', function (data) { + let selectList = matXmSelect.getValue(); + for (let i = 0; i<selectList.length; i++) { + let item = selectList[i]; + // 鏌ヨ鐗╂枡璇︽儏 + $.ajax({ + url: baseUrl+"/mat/covert/"+item.value+"/auth", + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + async: false, + success: function (res) { + if (res.code === 200){ + xxDataList.push(res.data); + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}) + } + } + }) + } + layer.close(dIndex); + return false; + }); + // 娓叉煋鐗╂枡閫夋嫨 + var matXmSelect = xmSelect.render({ + el: '#mat', + style: { + width: '340px', + }, + autoRow: true, + toolbar: { show: true }, + filterable: true, + remoteSearch: true, + remoteMethod: function(val, cb, show){ + $.ajax({ + url: baseUrl+"/mat/all/get/kv", + headers: {'token': localStorage.getItem('token')}, + data: { + condition: val + }, + method: 'POST', + success: function (res) { + if (res.code === 200){ + cb(res.data) + } else { + cb([]); + layer.msg(res.msg, {icon: 2}); + } + } + }); + } + }) + // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯 + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + layui.form.render('select'); + } + }); + } + + } + }); + } + + // 鍒犻櫎鍗曟嵁 + function doDel(orderId) { + layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + $.ajax({ + url: baseUrl+"/order/pakout/order/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: orderId + }, + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 淇敼璁㈠崟鐘舵�� + function doModify(orderId, orderNo, settle) { + layer.confirm('纭畾瑕佹墜鍔ㄥ畬缁撳悧锛�', { + shade: .1, + skin: 'layui-layer-admin' + }, function (i) { + layer.close(i); + layer.load(2); + console.log(orderId); + console.log(settle); + $.ajax({ + url: baseUrl+"/order/pakout/order/update/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + id: orderId, + orderNo: orderNo, + settle: settle + }, + method: 'POST', + success: function (res) { + layer.closeAll('loading'); + if (res.code === 200){ + if (insTbCount === 0) { + insTb.reload({page: {curr: 1}}); + } else { + $(".layui-laypage-btn")[0].click(); + } + layer.msg(res.msg, {icon: 1}); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + }); + } + + // 浠诲姟杩芥函 + function showWrkTrace(orderId) { + let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false}); + $.ajax({ + url: baseUrl+"/order/pakout/order/wrk/trace/auth", + headers: {'token': localStorage.getItem('token')}, + data: { + orderId: orderId + }, + method: 'POST', + success: function (res) { + layer.close(loadIndex); + if (res.code === 200){ + laytpl(wrkTraceDialog.innerHTML).render(res.data, function (html) { + admin.open({ + type: 1, + title: '浠诲姟杩芥函', + area: ['800px', '450px'], + shadeClose: true, + content: html, + success: function (layero, dIndex) { + $(layero).children('.layui-layer-content').css('overflow', 'visible'); + /** 缁熻鍥捐〃 */ + var traceCharts = echarts.init(document.getElementById('wrkTraceCharts')); + var traceOptions = { + title: { + text: '鎬婚噺/浣滀笟/瀹屾垚', x: 'center', y: '38%', + textStyle: {fontSize: 18, color: '#262626', fontWeight: 'normal'}, + subtextStyle: {fontSize: 36, color: '#10B4E8'}, + itemGap: 20 + }, + color: ['#10B4E8', '#E0E0E0', '#FF0000'], + tooltip: {trigger: 'item'}, + series: [{name: '鏁伴噺', type: 'pie', radius: ['75%', '80%'], label: {normal: {show: false}}}] + }; + traceCharts.setOption(traceOptions); + // 璧嬪�� + traceCharts.setOption({ + title: { + subtext: res.data.totalQty+"/"+res.data.wrkQty+"/"+res.data.endQty + }, + series: [ + { + data: [ + {name: '宸蹭綔涓�', value: res.data.wrkQty}, + {name: '鏈綔涓�', value: res.data.totalQty-res.data.wrkQty-res.data.lackQty}, + {name: '搴撳瓨涓嶈冻', value: res.data.lackQty}, + ] + } + ] + }); + } + }); + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg, {icon: 2}); + } + } + }) + } + + layDate.render({ + elem: '.layui-laydate-range' + ,type: 'datetime' + ,range: true + }); +}); diff --git a/src/main/webapp/views/orderDetlPakin/orderDetl.html b/src/main/webapp/views/orderDetlPakin/orderDetl.html new file mode 100644 index 0000000..2f890dd --- /dev/null +++ b/src/main/webapp/views/orderDetlPakin/orderDetl.html @@ -0,0 +1,225 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> +</head> +<body> + +<div class="layui-fluid"> + <div class="layui-card"> + <div class="layui-card-body"> + <div class="layui-form toolbar" id="search-box"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">缂栧彿:</label> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off"> + </div> + </div> + <div class="layui-inline">  + <button class="layui-btn icon-btn" lay-filter="search" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> + <i class="layui-icon"></i>閲嶇疆 + </button> + </div> + </div> + </div> + <table class="layui-hide" id="orderDetl" lay-filter="orderDetl"></table> + </div> + </div> +</div> + +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> + <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button> + </div> +</script> + +<script type="text/html" id="operate"> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> +</script> + +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/orderDetl/orderDetl.js" charset="utf-8"></script> +</body> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> + <input name="id" type="hidden"> + <div class="layui-row"> + <div class="layui-col-md12"> + <div class="layui-form-item"> + <label class="layui-form-label">璁㈠崟鍐呯爜: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="orderId" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" style="display: none"> + <input id="orderId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="orderQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏁伴噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="anfme" placeholder="璇疯緭鍏ユ暟閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧缂栫爜: </label> + <div class="layui-input-block"> + <input class="layui-input" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鐮�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧鍚嶇О: </label> + <div class="layui-input-block"> + <input class="layui-input" name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍚嶇О: </label> + <div class="layui-input-block"> + <input class="layui-input" name="name" placeholder="璇疯緭鍏ュ悕绉�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">瑙勬牸: </label> + <div class="layui-input-block"> + <input class="layui-input" name="specs" placeholder="璇疯緭鍏ヨ鏍�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍨嬪彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="model" placeholder="璇疯緭鍏ュ瀷鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鎵瑰彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="batch" placeholder="璇疯緭鍏ユ壒鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚綅: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unit" placeholder="璇疯緭鍏ュ崟浣�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧鏉$爜: </label> + <div class="layui-input-block"> + <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">渚涘簲鍟�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚环: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unitPrice" placeholder="璇疯緭鍏ュ崟浠�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍝侀」鏁�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="itemNum" placeholder="璇疯緭鍏ュ搧椤规暟"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏁伴噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="count" placeholder="璇疯緭鍏ユ暟閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">閲嶉噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="weight" placeholder="璇疯緭鍏ラ噸閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鐘舵��: </label> + <div class="layui-input-block"> + <select name="status"> + <option value="">璇烽�夋嫨鐘舵��</option> + <option value="1">姝e父</option> + <option value="0">绂佺敤</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">娣诲姞浜哄憳: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none"> + <input id="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">娣诲姞鏃堕棿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">淇敼浜哄憳: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none"> + <input id="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">淇敼鏃堕棿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">澶囨敞: </label> + <div class="layui-input-block"> + <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�"> + </div> + </div> + + </div> + </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + </div> + </form> +</script> +</html> + diff --git a/src/main/webapp/views/orderDetlPakout/orderDetl.html b/src/main/webapp/views/orderDetlPakout/orderDetl.html new file mode 100644 index 0000000..2f890dd --- /dev/null +++ b/src/main/webapp/views/orderDetlPakout/orderDetl.html @@ -0,0 +1,225 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> +</head> +<body> + +<div class="layui-fluid"> + <div class="layui-card"> + <div class="layui-card-body"> + <div class="layui-form toolbar" id="search-box"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label">缂栧彿:</label> + <div class="layui-input-inline"> + <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off"> + </div> + </div> + <div class="layui-inline">  + <button class="layui-btn icon-btn" lay-filter="search" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> + <i class="layui-icon"></i>閲嶇疆 + </button> + </div> + </div> + </div> + <table class="layui-hide" id="orderDetl" lay-filter="orderDetl"></table> + </div> + </div> +</div> + +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> + <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button> + </div> +</script> + +<script type="text/html" id="operate"> + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> +</script> + +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/orderDetl/orderDetl.js" charset="utf-8"></script> +</body> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="detail" lay-filter="detail" class="layui-form admin-form model-form"> + <input name="id" type="hidden"> + <div class="layui-row"> + <div class="layui-col-md12"> + <div class="layui-form-item"> + <label class="layui-form-label">璁㈠崟鍐呯爜: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="orderId" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" style="display: none"> + <input id="orderId$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヨ鍗曞唴鐮�" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="orderQueryByorderId" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="orderQueryByorderIdSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏁伴噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="anfme" placeholder="璇疯緭鍏ユ暟閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧缂栫爜: </label> + <div class="layui-input-block"> + <input class="layui-input" name="matnr" placeholder="璇疯緭鍏ュ晢鍝佺紪鐮�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧鍚嶇О: </label> + <div class="layui-input-block"> + <input class="layui-input" name="maktx" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍚嶇О: </label> + <div class="layui-input-block"> + <input class="layui-input" name="name" placeholder="璇疯緭鍏ュ悕绉�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">瑙勬牸: </label> + <div class="layui-input-block"> + <input class="layui-input" name="specs" placeholder="璇疯緭鍏ヨ鏍�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍨嬪彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="model" placeholder="璇疯緭鍏ュ瀷鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鎵瑰彿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="batch" placeholder="璇疯緭鍏ユ壒鍙�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚綅: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unit" placeholder="璇疯緭鍏ュ崟浣�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍟嗗搧鏉$爜: </label> + <div class="layui-input-block"> + <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ュ晢鍝佹潯鐮�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">渚涘簲鍟�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="supplier" placeholder="璇疯緭鍏ヤ緵搴斿晢"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曚环: </label> + <div class="layui-input-block"> + <input class="layui-input" name="unitPrice" placeholder="璇疯緭鍏ュ崟浠�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍝侀」鏁�: </label> + <div class="layui-input-block"> + <input class="layui-input" name="itemNum" placeholder="璇疯緭鍏ュ搧椤规暟"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏁伴噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="count" placeholder="璇疯緭鍏ユ暟閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">閲嶉噺: </label> + <div class="layui-input-block"> + <input class="layui-input" name="weight" placeholder="璇疯緭鍏ラ噸閲�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鐘舵��: </label> + <div class="layui-input-block"> + <select name="status"> + <option value="">璇烽�夋嫨鐘舵��</option> + <option value="1">姝e父</option> + <option value="0">绂佺敤</option> + </select> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">娣诲姞浜哄憳: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none"> + <input id="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">娣诲姞鏃堕棿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">淇敼浜哄憳: </label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none"> + <input id="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">淇敼鏃堕棿: </label> + <div class="layui-input-block"> + <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">澶囨敞: </label> + <div class="layui-input-block"> + <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�"> + </div> + </div> + + </div> + </div> + <hr class="layui-bg-gray"> + <div class="layui-form-item text-right"> + <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + </div> + </form> +</script> +</html> + diff --git a/src/main/webapp/views/orderPakin/order.html b/src/main/webapp/views/orderPakin/order.html new file mode 100644 index 0000000..5b15330 --- /dev/null +++ b/src/main/webapp/views/orderPakin/order.html @@ -0,0 +1,321 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> + <!-- <link rel="stylesheet" href="../../static/css/common.css" media="all">--> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + <style> + .wrk-trace { + color: green; + cursor: pointer; + margin-left: 6px; + font-size: 18px; + } + + .layui-timeline:first-child .layui-timeline-item { + margin-top: 30px; + } + .btn-add { + display: none; + } + .btn-edit { + display: none; + } + .btn-complete { + display: none; + } + .btn-delete { + display: none; + } + </style> +</head> +<body> + +<!-- 姝f枃寮�濮� --> +<div class="layui-fluid"> + <div class="layui-card"> + <div class="layui-card-body"> + <!-- 琛ㄦ牸椤堕儴宸ュ叿鏍� --> + <div class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="order_no" class="layui-input" type="text" placeholder="杈撳叆鍗曟嵁缂栧彿"/> + </div> + </div> + <div class="layui-inline" style="width: 300px"> + <div class="layui-input-inline"> + <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <select name="doc_type" id="docType-query"> + </select> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <select name="settle"> + <option value="">閫夋嫨鐘舵��</option> + <option value="1">寰呭鐞�</option> + <option value="2">浣滀笟涓�</option> + <option value="4">宸插畬鎴�</option> + <option value="6">涓婃姤瀹屾垚</option> + </select> + </div> + </div> + <div class="layui-inline"> + <button class="layui-btn icon-btn" lay-filter="tbSearch" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button id="orderAddBtn" class="layui-btn icon-btn btn-add"><i class="layui-icon"></i>娣诲姞 + </button> + </div> + </div> + </div> + <table id="order" lay-filter="order"></table> + </div> + </div> + <div class="layui-card"> + <div class="layui-card-body"> + 鍏ュ簱閫氱煡鍗曪細鐢盓RP鎻愪緵鍗曟嵁缂栧彿銆佺被鍨嬨�佸崟鎹椂闂村強鐗╂枡鏄庣粏锛岀敓鎴愬叆搴撲綔涓氬崟锛屼负缁存姢绯荤粺楂樺彲鐢紝鐢ㄦ埛鍙嚜琛屾坊鍔犲叆搴撻�氱煡鍗曟暟鎹紝瀹屾垚鐙珛鐨勫叆搴撲綔涓氥�� + <span class="text-danger">鎵嬪姩娣诲姞鏃讹紝璇锋鏌ュ崟鎹紪鍙锋槸鍚﹀湪ERP绯荤粺涓凡瀛樺湪锛岄伩鍏嶅彂鐢熸暟鎹敊璇棶棰樸��</span> + </div> + </div> +</div> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="operate"> + {{# if (d.settle == 0 || d.settle == 1) { }} + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a> + {{# } }} + {{# if (d.settle == 2) { }} + <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a> + {{# } }} +</script> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="tbLook"> + <span class="layui-text"> + <a href="javascript:;" lay-event="look"> + <i class="layui-icon" style="font-size: 12px;"></i> 鏌ョ湅鍗曟嵁鏄庣粏 + </a> + </span> +</script> +<script type="text/html" id="orderNoTpl"> + {{d.orderNo}} + {{# if(d.settle > 1 && d.settle !== 3){ }} + + {{# } }} + <i class="layui-icon layui-icon-about wrk-trace" lay-tips="鏌ョ湅浠诲姟杩芥函" lay-direction="2" lay-offset="-10px,0px" lay-event="wrkTrace"></i> +</script> + +<!--<script type="text/html" id="settleTpl">--> +<!-- <span name="settle" class="layui-badge layui-badge-gray">{{d.settle$}}</span>--> +<!--</script>--> +<script type="text/html" id="settleTpl"> + <span name="settle" + {{# if( d.settle === 1){ }} + class="layui-badge layui-badge-red" + {{# }else if(d.settle === 2){ }} + class="layui-badge layui-badge-green" + {{# }else if(d.settle === 3){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 4){ }} + class="layui-badge layui-badge-blue" + {{# }else if(d.settle === 5){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 6){ }} + class="layui-badge layui-badge-gray" + {{# } }} + >{{d.settle$}}</span> +</script> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="editForm" lay-filter="editForm" class="layui-form model-form"> + <input name="id" type="hidden"/> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁绫诲瀷锛�</label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="docType" placeholder="璇疯緭鍏ュ崟鎹被鍨�" style="display: none"> + <input id="docType$" name="docType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="docTypeQueryBydocType" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="docTypeQueryBydocTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁缂栧彿锛�</label> + <div class="layui-input-block"> + <input id="orderNo" name="orderNo" placeholder="杈撳叆鍗曟嵁缂栧彿" type="text" class="layui-input" maxlength="20" lay-verType="tips" /> +<!-- lay-verify="required"--> + </div> + </div> + <div class="layui-form-item" style="position: relative;"> + <label class="layui-form-label">鍗曟嵁鏄庣粏锛�</label> + <div class="layui-input-block"> + <table id="formSSXMTable" lay-filter="formSSXMTable"></table> + </div> + <button class="layui-btn layui-btn-sm icon-btn" id="matAddBtnComment" + style="position: absolute; left: 20px;top: 60px;padding: 0 5px;" type="button"> + <i class="layui-icon"></i>娣诲姞鏄庣粏 + </button> + </div> + <div class="layui-form-item text-right"> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn" lay-filter="orderEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="formSSXMTableBar"> + <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">淇敼</a>--> + <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a> +</script> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="matEditDialog"> + <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form"> + <input name="experimentId" type="hidden"/> + <div class="layui-form-item" style="float: left"> + <label class="layui-form-label">鐗╂枡 - 澶氶��</label> + <div class="layui-input-block"> + <div id="mat" name="mat"> + </div> + </div> + </div> + <div class="layui-form-item text-right" style="display: inline-block; margin-left: 35px"> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn" lay-filter="matEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> +<!-- 璁㈠崟浠诲姟杩芥函 --> +<script id="wrkTraceDialog" type="text/html" style="position: relative"> + <div style="position: absolute; top: 0; left: 0;"> + <div class="layui-card" style="overflow: hidden;"> + <div class="layui-card-header" style="text-align: center;width: 80%;font-weight: inherit;font-size: 18px">{{ d.orderNo }}</div> + <div class="layui-card-body"> + <div id="wrkTraceCharts" style="height: 300px;width: 400px;transform: translateX(-10%);"></div> + </div> + </div> + </div> + <div class="layui-row" > + <div class="layui-col-md5"> + <h1 style="opacity: 0;">Hello World</h1> + </div> + <div class="layui-col-md7" style=""> + {{# if(d.list.length > 0){ }} + <ul class="layui-timeline" style="height: 400px; overflow: scroll;"> + {{# layui.each(d.list, function(index, item){ }} + <li class="layui-timeline-item"> + <i class="layui-icon layui-timeline-axis"></i> + <div class="layui-timeline-content layui-text"> + <div class="layui-timeline-title"> + <h3 class="inline-block"> + {{ item.wrkNo }} + + {{# if(item.wrkMast.ioType < 100){ }} + <span class="layui-badge layui-bg-blue" style="line-height: 20px;"> + {{ item.wrkMast.ioType$ }} + </span> + {{# } }} + + {{# if(item.wrkMast.ioType > 100){ }} + <span class="layui-badge layui-bg-orange" style="line-height: 20px;"> + {{ item.wrkMast.ioType$ }} + </span> + {{# } }} + + + {{# if(item.wrkMast.wrkSts < 14){ }} + <span class="layui-badge layui-bg-red" style="line-height: 20px;"> + {{ item.wrkMast.wrkSts$ }} + </span> + {{# } }} + + {{# if(item.wrkMast.wrkSts >= 14){ }} + <span class="layui-badge layui-bg-green" style="line-height: 20px;"> + {{ item.wrkMast.wrkSts$ }} + </span> + {{# } }} + + </h3>  + {{ item.wrkMast.ioTime$ }} + </div> + + <table class="layui-table" lay-skin="nob" style="width: 80%"> + <tbody> + {{# layui.each(item.wrkDetls, function(idx, wrkDetl){ }} + <tr style="background: none"> + <td>No.</td> + <td><span class="layui-badge layui-bg-cyan">{{ idx+1 }}</span></td> + </tr> + <tr style="background: none"> + <td>鍝佸彿锛�</td> + <td>{{ wrkDetl.matnr }}</td> + </tr> + <tr style="background: none"> + <td>鍝佸悕锛�</td> + <td>{{ wrkDetl.maktx }}</td> + </tr> + <tr style="background: none"> + <td>瑙勬牸锛�</td> + <td>{{ wrkDetl.specs }}</td> + </tr> + <tr style="background: none"> + <td>鏁伴噺锛�</td> + <td style="font-weight: bold">{{ wrkDetl.anfme }}</td> + </tr> + <tr style="background: none"> + <td>鏉$爜锛�</td> + <td style="font-weight: bold">{{ wrkDetl.zpallet }}</td> + </tr> + {{# }); }} + </tbody> + </table> + + <hr class="layui-border-cyan" style="width: 90%; opacity: .6;"> + </div> + </li> + {{# }); }} + </ul> + {{# } else { }} + <div style="height: 350px;display: flex;justify-content: center;align-items: center;"> + <h2 style="font-weight: bold;letter-spacing: 2px">鏆傛棤浠诲姟</h2> + </div> + {{# } }} + </div> + </div> + + +</script> +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/orderPakin/order.js" charset="utf-8"></script> + +<script type="text/template" id="docTypeTpl"> + <option value="">閫夋嫨绫诲瀷</option> + {{#each records}} + <option value="{{docId}}">{{docName}}</option> + {{/each}} +</script> +</body> + +</html> + diff --git a/src/main/webapp/views/orderPakout/order.html b/src/main/webapp/views/orderPakout/order.html new file mode 100644 index 0000000..7584f2e --- /dev/null +++ b/src/main/webapp/views/orderPakout/order.html @@ -0,0 +1,321 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> + <!-- <link rel="stylesheet" href="../../static/css/common.css" media="all">--> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + <style> + .wrk-trace { + color: green; + cursor: pointer; + margin-left: 6px; + font-size: 18px; + } + + .layui-timeline:first-child .layui-timeline-item { + margin-top: 30px; + } + .btn-add { + display: none; + } + .btn-edit { + display: none; + } + .btn-complete { + display: none; + } + .btn-delete { + display: none; + } + </style> +</head> +<body> + +<!-- 姝f枃寮�濮� --> +<div class="layui-fluid"> + <div class="layui-card"> + <div class="layui-card-body"> + <!-- 琛ㄦ牸椤堕儴宸ュ叿鏍� --> + <div class="layui-form toolbar"> + <div class="layui-form-item"> + <div class="layui-inline"> + <div class="layui-input-inline mr0"> + <input name="order_no" class="layui-input" type="text" placeholder="杈撳叆鍗曟嵁缂栧彿"/> + </div> + </div> + <div class="layui-inline" style="width: 300px"> + <div class="layui-input-inline"> + <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px"> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <select name="doc_type" id="docType-query"> + </select> + </div> + </div> + <div class="layui-inline"> + <div class="layui-input-inline"> + <select name="settle"> + <option value="">閫夋嫨鐘舵��</option> + <option value="1">寰呭鐞�</option> + <option value="2">浣滀笟涓�</option> + <option value="4">宸插畬鎴�</option> + <option value="6">涓婃姤瀹屾垚</option> + </select> + </div> + </div> + <div class="layui-inline"> + <button class="layui-btn icon-btn" lay-filter="tbSearch" lay-submit> + <i class="layui-icon"></i>鎼滅储 + </button> + <button id="orderAddBtn" class="layui-btn icon-btn btn-add"><i class="layui-icon"></i>娣诲姞 + </button> + </div> + </div> + </div> + <table id="order" lay-filter="order"></table> + </div> + </div> + <div class="layui-card"> + <div class="layui-card-body"> + 鍏ュ簱閫氱煡鍗曪細鐢盓RP鎻愪緵鍗曟嵁缂栧彿銆佺被鍨嬨�佸崟鎹椂闂村強鐗╂枡鏄庣粏锛岀敓鎴愬叆搴撲綔涓氬崟锛屼负缁存姢绯荤粺楂樺彲鐢紝鐢ㄦ埛鍙嚜琛屾坊鍔犲叆搴撻�氱煡鍗曟暟鎹紝瀹屾垚鐙珛鐨勫叆搴撲綔涓氥�� + <span class="text-danger">鎵嬪姩娣诲姞鏃讹紝璇锋鏌ュ崟鎹紪鍙锋槸鍚﹀湪ERP绯荤粺涓凡瀛樺湪锛岄伩鍏嶅彂鐢熸暟鎹敊璇棶棰樸��</span> + </div> + </div> +</div> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="operate"> + {{# if (d.settle == 0 || d.settle == 1) { }} + <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">鍒犻櫎</a> + {{# } }} + {{# if (d.settle == 2) { }} + <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">瀹岀粨</a> + {{# } }} +</script> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="tbLook"> + <span class="layui-text"> + <a href="javascript:;" lay-event="look"> + <i class="layui-icon" style="font-size: 12px;"></i> 鏌ョ湅鍗曟嵁鏄庣粏 + </a> + </span> +</script> +<script type="text/html" id="orderNoTpl"> + {{d.orderNo}} + {{# if(d.settle > 1 && d.settle !== 3){ }} + + {{# } }} + <i class="layui-icon layui-icon-about wrk-trace" lay-tips="鏌ョ湅浠诲姟杩芥函" lay-direction="2" lay-offset="-10px,0px" lay-event="wrkTrace"></i> +</script> + +<!--<script type="text/html" id="settleTpl">--> +<!-- <span name="settle" class="layui-badge layui-badge-gray">{{d.settle$}}</span>--> +<!--</script>--> +<script type="text/html" id="settleTpl"> + <span name="settle" + {{# if( d.settle === 1){ }} + class="layui-badge layui-badge-red" + {{# }else if(d.settle === 2){ }} + class="layui-badge layui-badge-green" + {{# }else if(d.settle === 3){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 4){ }} + class="layui-badge layui-badge-blue" + {{# }else if(d.settle === 5){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 6){ }} + class="layui-badge layui-badge-gray" + {{# } }} + >{{d.settle$}}</span> +</script> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="editDialog"> + <form id="editForm" lay-filter="editForm" class="layui-form model-form"> + <input name="id" type="hidden"/> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁绫诲瀷锛�</label> + <div class="layui-input-block cool-auto-complete"> + <input class="layui-input" name="docType" placeholder="璇疯緭鍏ュ崟鎹被鍨�" style="display: none"> + <input id="docType$" name="docType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ崟鎹被鍨�" onfocus=this.blur() lay-verType="tips" lay-verify="required"> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="docTypeQueryBydocType" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="docTypeQueryBydocTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍗曟嵁缂栧彿锛�</label> + <div class="layui-input-block"> + <input id="orderNo" name="orderNo" placeholder="杈撳叆鍗曟嵁缂栧彿" type="text" class="layui-input" maxlength="20" lay-verType="tips" /> +<!-- lay-verify="required"--> + </div> + </div> + <div class="layui-form-item" style="position: relative;"> + <label class="layui-form-label">鍗曟嵁鏄庣粏锛�</label> + <div class="layui-input-block"> + <table id="formSSXMTable" lay-filter="formSSXMTable"></table> + </div> + <button class="layui-btn layui-btn-sm icon-btn" id="matAddBtnComment" + style="position: absolute; left: 20px;top: 60px;padding: 0 5px;" type="button"> + <i class="layui-icon"></i>娣诲姞鏄庣粏 + </button> + </div> + <div class="layui-form-item text-right"> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn" lay-filter="orderEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> +<!-- 琛ㄦ牸鎿嶄綔鍒� --> +<script type="text/html" id="formSSXMTableBar"> + <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">淇敼</a>--> + <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">鍒犻櫎</a> +</script> +<!-- 琛ㄥ崟寮圭獥 --> +<script type="text/html" id="matEditDialog"> + <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form"> + <input name="experimentId" type="hidden"/> + <div class="layui-form-item" style="float: left"> + <label class="layui-form-label">鐗╂枡 - 澶氶��</label> + <div class="layui-input-block"> + <div id="mat" name="mat"> + </div> + </div> + </div> + <div class="layui-form-item text-right" style="display: inline-block; margin-left: 35px"> + <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button> + <button class="layui-btn" lay-filter="matEditSubmit" lay-submit>淇濆瓨</button> + </div> + </form> +</script> +<!-- 璁㈠崟浠诲姟杩芥函 --> +<script id="wrkTraceDialog" type="text/html" style="position: relative"> + <div style="position: absolute; top: 0; left: 0;"> + <div class="layui-card" style="overflow: hidden;"> + <div class="layui-card-header" style="text-align: center;width: 80%;font-weight: inherit;font-size: 18px">{{ d.orderNo }}</div> + <div class="layui-card-body"> + <div id="wrkTraceCharts" style="height: 300px;width: 400px;transform: translateX(-10%);"></div> + </div> + </div> + </div> + <div class="layui-row" > + <div class="layui-col-md5"> + <h1 style="opacity: 0;">Hello World</h1> + </div> + <div class="layui-col-md7" style=""> + {{# if(d.list.length > 0){ }} + <ul class="layui-timeline" style="height: 400px; overflow: scroll;"> + {{# layui.each(d.list, function(index, item){ }} + <li class="layui-timeline-item"> + <i class="layui-icon layui-timeline-axis"></i> + <div class="layui-timeline-content layui-text"> + <div class="layui-timeline-title"> + <h3 class="inline-block"> + {{ item.wrkNo }} + + {{# if(item.wrkMast.ioType < 100){ }} + <span class="layui-badge layui-bg-blue" style="line-height: 20px;"> + {{ item.wrkMast.ioType$ }} + </span> + {{# } }} + + {{# if(item.wrkMast.ioType > 100){ }} + <span class="layui-badge layui-bg-orange" style="line-height: 20px;"> + {{ item.wrkMast.ioType$ }} + </span> + {{# } }} + + + {{# if(item.wrkMast.wrkSts < 14){ }} + <span class="layui-badge layui-bg-red" style="line-height: 20px;"> + {{ item.wrkMast.wrkSts$ }} + </span> + {{# } }} + + {{# if(item.wrkMast.wrkSts >= 14){ }} + <span class="layui-badge layui-bg-green" style="line-height: 20px;"> + {{ item.wrkMast.wrkSts$ }} + </span> + {{# } }} + + </h3>  + {{ item.wrkMast.ioTime$ }} + </div> + + <table class="layui-table" lay-skin="nob" style="width: 80%"> + <tbody> + {{# layui.each(item.wrkDetls, function(idx, wrkDetl){ }} + <tr style="background: none"> + <td>No.</td> + <td><span class="layui-badge layui-bg-cyan">{{ idx+1 }}</span></td> + </tr> + <tr style="background: none"> + <td>鍝佸彿锛�</td> + <td>{{ wrkDetl.matnr }}</td> + </tr> + <tr style="background: none"> + <td>鍝佸悕锛�</td> + <td>{{ wrkDetl.maktx }}</td> + </tr> + <tr style="background: none"> + <td>瑙勬牸锛�</td> + <td>{{ wrkDetl.specs }}</td> + </tr> + <tr style="background: none"> + <td>鏁伴噺锛�</td> + <td style="font-weight: bold">{{ wrkDetl.anfme }}</td> + </tr> + <tr style="background: none"> + <td>鏉$爜锛�</td> + <td style="font-weight: bold">{{ wrkDetl.zpallet }}</td> + </tr> + {{# }); }} + </tbody> + </table> + + <hr class="layui-border-cyan" style="width: 90%; opacity: .6;"> + </div> + </li> + {{# }); }} + </ul> + {{# } else { }} + <div style="height: 350px;display: flex;justify-content: center;align-items: center;"> + <h2 style="font-weight: bold;letter-spacing: 2px">鏆傛棤浠诲姟</h2> + </div> + {{# } }} + </div> + </div> + + +</script> +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/echarts/echarts.min.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/orderPakout/order.js" charset="utf-8"></script> + +<script type="text/template" id="docTypeTpl"> + <option value="">閫夋嫨绫诲瀷</option> + {{#each records}} + <option value="{{docId}}">{{docName}}</option> + {{/each}} +</script> +</body> + +</html> + -- Gitblit v1.9.1