From 7af1ffdd5af44733dc86a3d03e1f8543e87462d8 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期一, 04 八月 2025 14:43:37 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/importexcle/ImportReviewDto.java | 27 ++ src/main/java/com/zy/asrs/controller/ReviewController.java | 6 src/main/java/com/zy/asrs/entity/ReviewDetl.java | 144 +++++++++-------- src/main/webapp/views/review/review.html | 5 src/main/java/com/zy/asrs/controller/MobileController.java | 174 ++++++++++++++------- src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java | 101 +++++++----- src/main/webapp/static/js/review/review.js | 11 7 files changed, 289 insertions(+), 179 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 9e07434..c33a054 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -16,12 +16,15 @@ import com.zy.asrs.service.*; import com.zy.common.model.WrkDto; import com.zy.common.web.BaseController; +import com.zy.system.entity.User; +import com.zy.system.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.*; +import java.util.stream.Collectors; /** * 绉诲姩绔帴鍙f帶鍒跺櫒 @@ -29,7 +32,7 @@ */ @RestController @RequestMapping("mobile") -public class MobileController extends BaseController { +public class MobileController extends BaseController { @Autowired private MobileService mobileService; @@ -64,33 +67,41 @@ @Resource private OrderDetlMapper orderDetlMapper; + @Resource + private ReviewService reviewService; + + @Resource + private ReviewDetlService reviewDetlService; + + @Resource + private UserService userService; // 鍟嗗搧涓婃灦 @RequestMapping("/mat/onSale/auth") @ManagerAuth - public R matOnSale(@RequestBody CombParam combParam){ + public R matOnSale(@RequestBody CombParam combParam) { mobileService.onSale(combParam); return R.ok("涓婃灦鎴愬姛"); } + // 鍟嗗搧涓嬫灦 @RequestMapping("/mat/offSale/auth") //@ManagerAuth - public R matOffSale(@RequestBody OffSaleParam offSaleParam){ + public R matOffSale(@RequestBody OffSaleParam offSaleParam) { mobileService.offSale(offSaleParam); return R.ok("涓嬫灦鎴愬姛"); } @RequestMapping("/search/sign/auth/v2") @ManagerAuth(memo = "鎷嗗彔鐩樻ā寮忓垏鎹�") - public R orderSearchByBarcodeV2(@RequestParam boolean sign){ - RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign")); - if (sign){ - rgvOneSign.setRgvOneSign(1-rgvOneSign.getRgvOneSign()); + public R orderSearchByBarcodeV2(@RequestParam boolean sign) { + RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type", "oneSign")); + if (sign) { + rgvOneSign.setRgvOneSign(1 - rgvOneSign.getRgvOneSign()); rgvOneSignService.updateById(rgvOneSign); } return R.ok(rgvOneSign.getRgvOneSign()); } - // 缁勬墭 ---------------------------------------------------------------------------------------------------- @@ -121,18 +132,18 @@ // } @RequestMapping("/order/search/orderNo/auth") @ManagerAuth - public R orderSearchByBarcode(@RequestParam String orderNo){ - if (Cools.isEmpty(orderNo)){ - orderNo=null; + public R orderSearchByBarcode(@RequestParam String orderNo) { + if (Cools.isEmpty(orderNo)) { + orderNo = null; } List<Order> orders = orderService.selectorderNoL(orderNo); - if (Cools.isEmpty(orders)){ + if (Cools.isEmpty(orders)) { return R.ok(); } LinkedList<CombParam> combParams = new LinkedList<>(); - if (!Cools.isEmpty(orders)){ - for (Order order:orders){ - CombParam combParam=new CombParam(); + if (!Cools.isEmpty(orders)) { + for (Order order : orders) { + CombParam combParam = new CombParam(); if (order == null) { continue; } @@ -146,11 +157,11 @@ List<OrderDetl> orderDetls = orderService.selectWorkingDetls(order.getId()); if (!Cools.isEmpty(orderDetls)) { LinkedList<CombParam.CombMat> combMats = new LinkedList<>(); - for (OrderDetl orderDetl:orderDetls){ + for (OrderDetl orderDetl : orderDetls) { CombParam.CombMat combMat = new CombParam.CombMat(); combMat.setMatnr(orderDetl.getMatnr()); combMat.setBatch(orderDetl.getBatch()); - combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty()); + combMat.setAnfme(orderDetl.getAnfme() - orderDetl.getWorkQty()); combMat.setMaktx(orderDetl.getMaktx()); combMat.setSpecs(orderDetl.getSpecs()); combMats.add(combMat); @@ -166,18 +177,18 @@ @RequestMapping("/order/search/orderNo/auth/v2") @ManagerAuth(memo = "閫�搴撳崟鑾峰彇") - public R orderSearchByBarcodeV2(@RequestParam String orderNo){ - if (Cools.isEmpty(orderNo)){ - orderNo=null; + public R orderSearchByBarcodeV2(@RequestParam String orderNo) { + if (Cools.isEmpty(orderNo)) { + orderNo = null; } List<Order> orders = orderService.selectorderNoL(orderNo); - if (Cools.isEmpty(orders)){ + if (Cools.isEmpty(orders)) { return R.ok(); } LinkedList<CombParam> combParams = new LinkedList<>(); - if (!Cools.isEmpty(orders)){ - for (Order order:orders){ - CombParam combParam=new CombParam(); + if (!Cools.isEmpty(orders)) { + for (Order order : orders) { + CombParam combParam = new CombParam(); if (order == null) { continue; } @@ -191,20 +202,20 @@ List<OrderDetl> orderDetls = orderService.selectWorkingDetls(order.getId()); if (!Cools.isEmpty(orderDetls)) { LinkedList<CombParam.CombMat> combMats = new LinkedList<>(); - for (OrderDetl orderDetl:orderDetls){ - if (orderDetl.getWorkQty()!=0){ + for (OrderDetl orderDetl : orderDetls) { + if (orderDetl.getWorkQty() != 0) { continue; } CombParam.CombMat combMat = new CombParam.CombMat(); combMat.setMatnr(orderDetl.getMatnr()); combMat.setBatch(orderDetl.getBatch()); - combMat.setAnfme(orderDetl.getAnfme()-orderDetl.getWorkQty()); + combMat.setAnfme(orderDetl.getAnfme() - orderDetl.getWorkQty()); combMat.setMaktx(orderDetl.getMaktx()); combMat.setSpecs(orderDetl.getSpecs()); combMat.setWeight(orderDetl.getWeight()); combMats.add(combMat); } - if (combMats.size()==0){ + if (combMats.size() == 0) { continue; } combParam.setCombMats(combMats); @@ -218,15 +229,15 @@ @RequestMapping("/wrkDetl/search/batch/auth") @ManagerAuth(memo = "鍑哄簱纭鑾峰彇淇℃伅") - public R wrkDetlSearchByBatch(@RequestBody String batch){ - if (Cools.isEmpty(batch)){ + public R wrkDetlSearchByBatch(@RequestBody String batch) { + if (Cools.isEmpty(batch)) { return R.error("鍙傛暟涓虹┖"); } // List<Order> orders = orderService.selectorderNoL(batch); WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("batch", batch)); - if (Cools.isEmpty(wrkDetl)){ + if (Cools.isEmpty(wrkDetl)) { WrkDetlLog wrkDetlLog = wrkDetlLogService.selectOne(new EntityWrapper<WrkDetlLog>().eq("batch", batch)); - if (Cools.isEmpty(wrkDetlLog)){ + if (Cools.isEmpty(wrkDetlLog)) { return R.error("鏈煡鍒版暟鎹�"); } wrkDetl = new WrkDetl(); @@ -235,7 +246,7 @@ wrkDetl.setBarcode(wrkDetlLog.getBarcode()); wrkDetl.setDeadTime(wrkDetlLog.getDeadTime()); } - if (Cools.isEmpty(wrkDetl)){ + if (Cools.isEmpty(wrkDetl)) { return R.error("鏈煡鍒版暟鎹�"); } return R.ok().add(wrkDetl); @@ -243,8 +254,8 @@ @RequestMapping("/order/search/batch/auth") @ManagerAuth(memo = "鍑哄簱纭") - public R orderSearchByBatch(@RequestBody String batch){ - if (Cools.isEmpty(batch)){ + public R orderSearchByBatch(@RequestBody String batch) { + if (Cools.isEmpty(batch)) { return R.error("鍙傛暟涓虹┖"); } String orderNo = ""; @@ -254,16 +265,16 @@ if (Cools.isEmpty(wrkDetlLog)) { return R.error("鏈煡鍒版暟鎹�"); } - orderNo=wrkDetlLog.getOrderNo(); - }else { - orderNo=wrkDetl.getOrderNo(); + orderNo = wrkDetlLog.getOrderNo(); + } else { + orderNo = wrkDetl.getOrderNo(); } // List<Order> orders = orderService.selectorderNoL(batch); - OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("batch", batch).eq("order_no",orderNo)); - if (Cools.isEmpty(orderDetl)){ + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("batch", batch).eq("order_no", orderNo)); + if (Cools.isEmpty(orderDetl)) { return R.error("鏈煡鍒版暟鎹�"); } - if (!orderDetl.getQty$().equals("宸插畬鎴�")){ + if (!orderDetl.getQty$().equals("宸插畬鎴�")) { return R.error("浠诲姟鏈畬鎴�"); } orderDetl.setSource(1); @@ -280,14 +291,14 @@ @RequestMapping("/truss/order/auth") @ManagerAuth(memo = "閫�搴擄紝1妤兼鏋堕��搴擄紝閫�搴撳崟閫�搴�") - public R trussCombOrder(@RequestBody TrussCombParam combParam){ + public R trussCombOrder(@RequestBody TrussCombParam combParam) { mobileService.trussCombOrder(combParam, getUserId()); return R.ok("缁勬墭鎴愬姛"); } @RequestMapping("/truss/comd/auth") // @ManagerAuth(memo = "鎵嬪姩鍏ュ簱锛�2妤兼棤闇�妗佹灦鎵嬪姩鍏ュ簱 wms鍏ュ簱") - public R PalletizingCompleteTwoFloorParam(@RequestBody PalletizingCompleteTwoFloorParam combParam){ + public R PalletizingCompleteTwoFloorParam(@RequestBody PalletizingCompleteTwoFloorParam combParam) { mobileService.PalletizingCompleteTwoFloorParam(combParam); return R.ok("缁勬墭鎴愬姛"); } @@ -315,14 +326,14 @@ @RequestMapping("/comb/auth") @ManagerAuth(memo = "缁勬墭") - public R comb(@RequestBody CombParam combParam){ + public R comb(@RequestBody CombParam combParam) { mobileService.comb(combParam, getUserId()); return R.ok("缁勬墭鎴愬姛"); } @RequestMapping("/pack/get/auth") @ManagerAuth - public R packGet(@RequestParam String barcode){ + public R packGet(@RequestParam String barcode) { Pack pack = packService.selectByBarcode(barcode); if (pack == null) { return R.ok(); @@ -335,7 +346,7 @@ @RequestMapping("/pack/comb/auth") @ManagerAuth(memo = "涓嬬嚎缁勬墭") - public R packComb(@RequestBody CombParam combParam){ + public R packComb(@RequestBody CombParam combParam) { mobileService.packComb(combParam, getUserId()); return R.ok("缁勬墭鎴愬姛"); } @@ -348,7 +359,7 @@ @Deprecated public R pakoutQuery(@RequestParam(required = false) String barcode, @RequestParam(required = false) Integer staNo, - @RequestParam(required = false) String matnr){ + @RequestParam(required = false) String matnr) { if (Cools.isEmpty(barcode) && Cools.isEmpty(matnr)) { return R.ok(); } @@ -372,7 +383,7 @@ */ @RequestMapping("/pakout/confirm/barcode/auth") @ManagerAuth - public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode){ + public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode) { if (Cools.isEmpty(barcode)) { return R.ok(); } @@ -389,7 +400,7 @@ // 鏍规嵁搴撲綅鐮佸拰鍟嗗搧鐮佹悳绱㈠晢鍝� @RequestMapping("/mat/find/auth") public R find(@RequestParam(required = false) String locNo - , @RequestParam(required = false) String matnr){ + , @RequestParam(required = false) String matnr) { //List<ManLocDetl> manLocDetls = manLocDetlMapper.selectItem0(locNo, matnr); ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(locNo, matnr); return R.ok(manLocDetl); @@ -402,7 +413,7 @@ @RequestMapping("/pakout/confirm/pick/auth") @ManagerAuth public R pakoutQueryByBarcode(@RequestParam(required = false) Integer wrkNo - , @RequestParam(required = false) String matnr){ + , @RequestParam(required = false) String matnr) { if (Cools.isEmpty(wrkNo)) { return R.ok(); } @@ -537,7 +548,7 @@ @RequestMapping("/adjust/auth") @ManagerAuth(memo = "鐩樼偣") - public R adjust(@RequestBody MobileAdjustParam combParam){ + public R adjust(@RequestBody MobileAdjustParam combParam) { mobileService.adjust(combParam, getUserId()); return R.ok("鐩樼偣鎴愬姛"); } @@ -545,10 +556,10 @@ @PostMapping("/order/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakoutByOrder(@RequestBody JSONObject param) { - if(!param.containsKey("staNo") || !param.containsKey("orderNo")){ + if (!param.containsKey("staNo") || !param.containsKey("orderNo")) { return R.parse(BaseRes.PARAM); } - mobileService.pakoutByOrder(param,getUserId()); + mobileService.pakoutByOrder(param, getUserId()); return R.ok("鍑哄簱鎴愬姛"); } @@ -556,7 +567,7 @@ @ManagerAuth(memo = "鍑哄簱澶嶆牳纭") public synchronized R pakoutFhqr(@RequestBody PdckqrParam param) { // 鏍规嵁宸ヤ綔鍙风‘璁ゅ鏍� - if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())){ + if (Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())) { return R.parse(BaseRes.PARAM); } return mobileService.pakoutFhqr(param); @@ -566,7 +577,7 @@ @ManagerAuth(memo = "鐩樼偣鍑哄簱纭") public synchronized R pdckqr(@RequestBody PdckqrParam param) { // 鏍规嵁宸ヤ綔鍙风‘璁ゅ鏍� - if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())){ + if (Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())) { return R.parse(BaseRes.PARAM); } return mobileService.pdckqr(param); @@ -583,7 +594,7 @@ public synchronized R pdaWarehousingNow(@RequestBody PdaWarehousingNowParam param) { // 鏍规嵁宸ヤ綔鍙风‘璁ゅ鏍� - if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getSourceStaNo())){ + if (Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getSourceStaNo())) { return R.parse(BaseRes.PARAM); } return mobileService.pdaWarehousingNow(param, getUserId()); @@ -607,7 +618,7 @@ @PostMapping("/pdaGetMemo") // @ManagerAuth(memo = "pda鑾峰彇鏈ㄧ璧勬枡") - public synchronized List<Map<String, Object>> pdaGetMemo() { + public synchronized List<Map<String, Object>> pdaGetMemo() { return mobileService.pdaGetMemo(); } @@ -638,4 +649,53 @@ } + + @GetMapping("/getReviewList/{orderNo}") + public synchronized R getReviewList(@PathVariable("orderNo") String orderNo) { + List<Review> reviewList = reviewService.selectList(new EntityWrapper<Review>().like("order_no", orderNo)); + List<String> collect = reviewList.stream().map(Review::getOrderNo).collect(Collectors.toList()); + return R.ok(collect); + + } + + @GetMapping("/getReviewDetlByOrderNo/{orderNo}") + public synchronized R getReviewDetlByOrderNo(@PathVariable("orderNo") String orderNo) { + List<ReviewDetl> reviewList = reviewDetlService.selectList(new EntityWrapper<ReviewDetl>().eq("order_no", orderNo).ne("inspect", 1)); + return R.ok(reviewList); + + } + + + @PostMapping("/reviewCheck") + @ManagerAuth(memo = "鍗曟嵁澶嶆牳") + public synchronized R reviewCheck(@RequestBody List<ReviewDetl> param) { + System.out.println(JSONObject.toJSONString(param)); + if (Cools.isEmpty(param)) { + return R.parse("鍙傛暟鏈夎锛岃妫�鏌ュ弬鏁�"); + } + for (ReviewDetl reviewDetl : param) { + if (!Cools.isEmpty(reviewDetl.getInspect()) && reviewDetl.getInspect() == 1) { + ReviewDetl reviewDetl1 = reviewDetlService.selectById(reviewDetl.getId()); + reviewDetl1.setInspect(reviewDetl.getInspect()); + reviewDetl1.setMemo(reviewDetl.getMemo()); + reviewDetl1.setThreeCode(reviewDetl.getThreeCode()); + reviewDetl1.setUpdateTime(new Date()); + reviewDetlService.updateById(reviewDetl1); + Review review = reviewService.selectById(reviewDetl1.getOrderId()); + review.setSettle(2L); + reviewService.updateById(review); + } + } + return R.ok(); + } + + @GetMapping("/getCheckUser") + public R getCheckUser() { + Set set = new HashSet<String>(); + List<User> userList = userService.selectList(new EntityWrapper<User>().eq("status", 1).eq("role_id", 18L)); + for (User user : userList) { + set.add(user.getUsername()); + } + return R.ok(set); + } } diff --git a/src/main/java/com/zy/asrs/controller/ReviewController.java b/src/main/java/com/zy/asrs/controller/ReviewController.java index 5d44631..bb93522 100644 --- a/src/main/java/com/zy/asrs/controller/ReviewController.java +++ b/src/main/java/com/zy/asrs/controller/ReviewController.java @@ -19,6 +19,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; +import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -41,6 +42,9 @@ @Autowired private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private PlatformTransactionManager transactionManager; + @Resource private ReviewDetlMapper reviewDetlMapper; @@ -61,7 +65,7 @@ public void importOrder(MultipartFile multipartFile) throws IOException { // 鑰冩牳鏁版嵁鐨勫垽閲嶄娇鐢╫rder_id,check_type鐨勭粍鍚堝敮涓�绱㈠紩瑙e喅 EasyExcel.read(multipartFile.getInputStream(), ImportReviewDto.class, - new ImportReviewListener(snowflakeIdWorker, getUserId())).sheet().doReadSync(); + new ImportReviewListener(transactionManager,reviewService, reviewDetlService, snowflakeIdWorker, getUserId())).sheet().doReadSync(); } diff --git a/src/main/java/com/zy/asrs/entity/ReviewDetl.java b/src/main/java/com/zy/asrs/entity/ReviewDetl.java index 5f667aa..5d3aab7 100644 --- a/src/main/java/com/zy/asrs/entity/ReviewDetl.java +++ b/src/main/java/com/zy/asrs/entity/ReviewDetl.java @@ -8,7 +8,6 @@ import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.asrs.service.BasBoxTypeService; -import com.zy.asrs.service.OrderService; import com.zy.common.utils.Synchro; import com.zy.system.entity.User; import com.zy.system.service.UserService; @@ -29,21 +28,21 @@ /** * ID */ - @ApiModelProperty(value= "ID") + @ApiModelProperty(value = "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 璁㈠崟鍐呯爜 */ - @ApiModelProperty(value= "璁㈠崟鍐呯爜") + @ApiModelProperty(value = "璁㈠崟鍐呯爜") @TableField("order_id") private Long orderId; /** * 鍗曟嵁缂栧彿 */ - @ApiModelProperty(value= "鍗曟嵁缂栧彿") + @ApiModelProperty(value = "鍗曟嵁缂栧彿") @TableField("order_no") private String orderNo; @@ -51,250 +50,250 @@ /** * 鏁伴噺 */ - @ApiModelProperty(value= "鏁伴噺") + @ApiModelProperty(value = "鏁伴噺") private Double anfme; /** * 浣滀笟鏁伴噺 - * - * 鍏ュ簱 : 缁勬墭瀹屾垚锛岀粍鎵樻。銆佸伐浣滄。銆佸叆搴撳畬鎴愭暟閲� - * 鍑哄簱 : 宸ヤ綔妗c�佸嚭搴撳畬鎴愭暟閲� + * <p> + * 鍏ュ簱 : 缁勬墭瀹屾垚锛岀粍鎵樻。銆佸伐浣滄。銆佸叆搴撳畬鎴愭暟閲� + * 鍑哄簱 : 宸ヤ綔妗c�佸嚭搴撳畬鎴愭暟閲� */ - @ApiModelProperty(value= "浣滀笟鏁伴噺") + @ApiModelProperty(value = "浣滀笟鏁伴噺") @TableField("work_qty") private Double workQty; /** * 瀹屾垚鏁伴噺 - * - * 鍏ュ簱 : qty 馃憜 - * 鍑哄簱 : qty 馃憜 + * <p> + * 鍏ュ簱 : qty 馃憜 + * 鍑哄簱 : qty 馃憜 */ - @ApiModelProperty(value= "瀹屾垚鏁伴噺") + @ApiModelProperty(value = "瀹屾垚鏁伴噺") private Double qty; /** * 鍟嗗搧缂栫爜 */ - @ApiModelProperty(value= "鍟嗗搧缂栫爜") + @ApiModelProperty(value = "鍟嗗搧缂栫爜") private String matnr; /** * 鍟嗗搧鍚嶇О */ - @ApiModelProperty(value= "鍟嗗搧鍚嶇О") + @ApiModelProperty(value = "鍟嗗搧鍚嶇О") private String maktx; /** * 鎵瑰彿 */ - @ApiModelProperty(value= "鎵瑰彿") + @ApiModelProperty(value = "鎵瑰彿") private String batch; /** * 瑙勬牸 */ - @ApiModelProperty(value= "瑙勬牸") + @ApiModelProperty(value = "瑙勬牸") private String specs; /** * 鍨嬪彿 */ - @ApiModelProperty(value= "鍨嬪彿") + @ApiModelProperty(value = "鍨嬪彿") private String model; /** * 棰滆壊 */ - @ApiModelProperty(value= "棰滆壊") + @ApiModelProperty(value = "棰滆壊") private String color; /** * 鍝佺墝 */ - @ApiModelProperty(value= "鍝佺墝") + @ApiModelProperty(value = "鍝佺墝") private String brand; /** * 鍗曚綅 */ - @ApiModelProperty(value= "鍗曚綅") + @ApiModelProperty(value = "鍗曚綅") private String unit; /** * 鍗曚环 */ - @ApiModelProperty(value= "鍗曚环") + @ApiModelProperty(value = "鍗曚环") private Double price; /** * sku */ - @ApiModelProperty(value= "sku") + @ApiModelProperty(value = "sku") private String sku; /** * 鍗曚綅閲� */ - @ApiModelProperty(value= "鍗曚綅閲�") + @ApiModelProperty(value = "鍗曚綅閲�") private Double units; /** * 鏉$爜 */ - @ApiModelProperty(value= "鏉$爜") + @ApiModelProperty(value = "鏉$爜") private String barcode; /** * 浜у湴 */ - @ApiModelProperty(value= "浜у湴") + @ApiModelProperty(value = "浜у湴") private String origin; /** * 鍘傚 銆併�佹睙閾滐細鏆傚瓨搴撲綅鍙� */ - @ApiModelProperty(value= "鍘傚") + @ApiModelProperty(value = "鍘傚") private String manu; /** * 鐢熶骇鏃ユ湡 */ - @ApiModelProperty(value= "鐢熶骇鏃ユ湡") + @ApiModelProperty(value = "鐢熶骇鏃ユ湡") @TableField("manu_date") private String manuDate; /** * 鍝侀」鏁� */ - @ApiModelProperty(value= "鍝侀」鏁�") + @ApiModelProperty(value = "鍝侀」鏁�") @TableField("item_num") private String itemNum; /** * 瀹夊叏搴撳瓨閲� */ - @ApiModelProperty(value= "瀹夊叏搴撳瓨閲�") + @ApiModelProperty(value = "瀹夊叏搴撳瓨閲�") @TableField("safe_qty") private Double safeQty; /** * 閲嶉噺 */ - @ApiModelProperty(value= "閲嶉噺") + @ApiModelProperty(value = "閲嶉噺") private Double weight; /** * 闀垮害 */ - @ApiModelProperty(value= "闀垮害") + @ApiModelProperty(value = "闀垮害") private Double length; /** * 浣撶Н */ - @ApiModelProperty(value= "浣撶Н") + @ApiModelProperty(value = "浣撶Н") private Double volume; /** * 涓夋柟缂栫爜 */ - @ApiModelProperty(value= "涓夋柟缂栫爜") + @ApiModelProperty(value = "涓夋柟缂栫爜") @TableField("three_code") private String threeCode; /** * 渚涘簲鍟� */ - @ApiModelProperty(value= "渚涘簲鍟�") + @ApiModelProperty(value = "渚涘簲鍟�") private String supp; /** * 渚涘簲鍟嗙紪鐮� */ - @ApiModelProperty(value= "渚涘簲鍟嗙紪鐮�") + @ApiModelProperty(value = "渚涘簲鍟嗙紪鐮�") @TableField("supp_code") private String suppCode; /** * 鏄惁鎵规 1: 鏄� 0: 鍚� */ - @ApiModelProperty(value= "鏄惁鎵规 1: 鏄� 0: 鍚� ") + @ApiModelProperty(value = "鏄惁鎵规 1: 鏄� 0: 鍚� ") @TableField("be_batch") private Integer beBatch; /** * 淇濊川鏈� */ - @ApiModelProperty(value= "淇濊川鏈�") + @ApiModelProperty(value = "淇濊川鏈�") @TableField("dead_time") private String deadTime; /** * 棰勮澶╂暟 */ - @ApiModelProperty(value= "棰勮澶╂暟") + @ApiModelProperty(value = "棰勮澶╂暟") @TableField("dead_warn") private Integer deadWarn; /** * 鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 銆併�佹睙閾滐細鏄惁纭 1: 纭 2: 鏈‘璁� */ - @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ") + @ApiModelProperty(value = "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ") private Integer source; /** * 瑕佹眰妫�楠� 1: 鏄� 0: 鍚� */ - @ApiModelProperty(value= "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ") + @ApiModelProperty(value = "瑕佹眰妫�楠� 1: 鏄� 0: 鍚� ") private Integer inspect; /** * 鍗遍櫓鍝� 1: 鏄� 0: 鍚� */ - @ApiModelProperty(value= "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") + @ApiModelProperty(value = "鍗遍櫓鍝� 1: 鏄� 0: 鍚� ") private Integer danger; /** * 鐘舵�� 1: 姝e父 0: 绂佺敤 */ - @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ") + @ApiModelProperty(value = "鐘舵�� 1: 姝e父 0: 绂佺敤 ") private Integer status; /** * 娣诲姞浜哄憳 */ - @ApiModelProperty(value= "娣诲姞浜哄憳") + @ApiModelProperty(value = "娣诲姞浜哄憳") @TableField("create_by") private Long createBy; /** * 娣诲姞鏃堕棿 */ - @ApiModelProperty(value= "娣诲姞鏃堕棿") + @ApiModelProperty(value = "娣诲姞鏃堕棿") @TableField("create_time") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 淇敼浜哄憳 */ - @ApiModelProperty(value= "淇敼浜哄憳") + @ApiModelProperty(value = "淇敼浜哄憳") @TableField("update_by") private Long updateBy; /** * 淇敼鏃堕棿 */ - @ApiModelProperty(value= "淇敼鏃堕棿") + @ApiModelProperty(value = "淇敼鏃堕棿") @TableField("update_time") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 澶囨敞 */ - @ApiModelProperty(value= "澶囨敞") + @ApiModelProperty(value = "澶囨敞") private String memo; @ApiModelProperty(value = "閫�搴撴爣璁�") @@ -304,14 +303,16 @@ /** * 鍗蜂俊鎭疘D */ - @ApiModelProperty(value= "鍗蜂俊鎭疘D") + @ApiModelProperty(value = "鍗蜂俊鎭疘D") @TableField("roll_up") private Long rollUp; - public String getStatus$(){ - if (null == this.status){ return null; } - switch (this.status){ + public String getStatus$() { + if (null == this.status) { + return null; + } + switch (this.status) { case 1: return "姝e父"; case 0: @@ -321,43 +322,54 @@ } } - public String getCreateBy$(){ + public String getCreateBy$() { UserService service = SpringUtils.getBean(UserService.class); User user = service.selectById(this.createBy); - if (!Cools.isEmpty(user)){ + if (!Cools.isEmpty(user)) { return String.valueOf(user.getUsername()); } return null; } - public String getCreateTime$(){ - if (Cools.isEmpty(this.createTime)){ + public String getCreateTime$() { + if (Cools.isEmpty(this.createTime)) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } - public String getUpdateBy$(){ + public String getUpdateBy$() { UserService service = SpringUtils.getBean(UserService.class); User user = service.selectById(this.updateBy); - if (!Cools.isEmpty(user)){ + if (!Cools.isEmpty(user)) { return String.valueOf(user.getUsername()); } return null; } - public String getUpdateTime$(){ - if (Cools.isEmpty(this.updateTime)){ + public String getUpdateTime$() { + if (Cools.isEmpty(this.updateTime)) { return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } - public String getQty$(){ - if (getAnfme().equals(getQty())){ + public String getQty$() { + if (getAnfme().equals(getQty())) { return "宸插畬鎴�"; } return "鏈畬鎴�"; + } + + public String getInspect$() { + if (Cools.isEmpty(this.inspect)) { + return "鏈鏍�"; + } + if (this.inspect == 1) { + return "宸插鏍�"; + } else { + return "鏈鏍�"; + } } public Double getEnableQty() { @@ -374,10 +386,10 @@ Synchro.Copy(source, this); } - public String getBrand$(){ + public String getBrand$() { BasBoxTypeService basBoxTypeService = SpringUtils.getBean(BasBoxTypeService.class); BasBoxType basBoxType = basBoxTypeService.selectOne(new EntityWrapper<BasBoxType>().eq("box_type", this.brand)); - if (!Cools.isEmpty(basBoxType)){ + if (!Cools.isEmpty(basBoxType)) { return String.valueOf(basBoxType.getBoxSpecs()); } return this.brand; diff --git a/src/main/java/com/zy/asrs/importexcle/ImportReviewDto.java b/src/main/java/com/zy/asrs/importexcle/ImportReviewDto.java index 61d986e..f37c53a 100644 --- a/src/main/java/com/zy/asrs/importexcle/ImportReviewDto.java +++ b/src/main/java/com/zy/asrs/importexcle/ImportReviewDto.java @@ -11,18 +11,37 @@ @Data public class ImportReviewDto { - @ExcelProperty(value = "鍖呰缁勫彿/婧愬簱浣�",index = 0) + private Long orderId; + + @ExcelProperty(value = "鍗曟嵁缂栧彿", index = 0) private String column1; - @ExcelProperty(value = "鍑哄簱鍗曞彿/鍗曟嵁绫诲瀷/瀹㈡埛鍚嶇О/澶囨敞/鐩爣搴撲綅",index = 1) + @ExcelProperty(value = "鐗╂枡缂栧彿", index = 1) private String column2; - @ExcelProperty(value = "鐩爣宸烽亾/瀹㈡埛鍚嶇О",index = 2) + @ExcelProperty(value = "鐗╂枡鍚嶇О", index = 2) private String column3; - @ExcelProperty(value = "澶囨敞",index = 3) + @ExcelProperty(value = "瑙勬牸", index = 3) private String column4; + @ExcelProperty(value = "鍗曚綅", index = 4) + private String column5; + + @ExcelProperty(value = "鍝佺骇", index = 5) + private String column6; + + @ExcelProperty(value = "鎵规鍙�", index = 6) + private String column7; + + @ExcelProperty(value = "鍗峰彿", index = 7) + private String column8; + + @ExcelProperty(value = "鍑哄簱鏁伴噺", index = 8) + private Double column9; + + @ExcelProperty(value = "鍑哄簱鏃ユ湡", index = 9) + private String column10; } diff --git a/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java b/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java index 43991df..c052675 100644 --- a/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java +++ b/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java @@ -3,13 +3,19 @@ import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; +import com.core.common.DateUtils; import com.core.common.SnowflakeIdWorker; -import com.zy.asrs.entity.OrderDetl; +import com.core.exception.CoolException; +import com.zy.asrs.entity.Review; +import com.zy.asrs.entity.ReviewDetl; import com.zy.asrs.service.ReviewDetlService; import com.zy.asrs.service.ReviewService; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; import java.util.*; @@ -23,29 +29,32 @@ /** * 姣忛殧1000鏉″瓨鍌ㄦ暟鎹簱锛屽疄闄呬娇鐢ㄤ腑鍙互3000鏉★紝鐒跺悗娓呯悊list 锛屾柟渚垮唴瀛樺洖鏀� */ - private static final int BATCH_COUNT = 400; + private static final int BATCH_COUNT = 2000; private int count = 0; - private String orderNo; private long orderId; - private long docTypeId; List<ImportReviewDto> list = new ArrayList<>(); /** * 鍋囪杩欎釜鏄竴涓狣AO锛屽綋鐒舵湁涓氬姟閫昏緫杩欎釜涔熷彲浠ユ槸涓�涓猻ervice銆傚綋鐒跺鏋滀笉鐢ㄥ瓨鍌ㄨ繖涓璞℃病鐢ㄣ�� */ + private final PlatformTransactionManager transactionManager; private ReviewService reviewService; private ReviewDetlService reviewDetlService; private final SnowflakeIdWorker snowflakeIdWorker; private final Long userId; + private TransactionStatus transactionStatus; /** * 濡傛灉浣跨敤浜唖pring,璇蜂娇鐢ㄨ繖涓瀯閫犳柟娉曘�傛瘡娆″垱寤篖istener鐨勬椂鍊欓渶瑕佹妸spring绠$悊鐨勭被浼犺繘鏉� */ - public ImportReviewListener(SnowflakeIdWorker snowflakeIdWorker, Long userId) { + public ImportReviewListener(PlatformTransactionManager transactionManager, ReviewService reviewService, ReviewDetlService reviewDetlService, SnowflakeIdWorker snowflakeIdWorker, Long userId) { + this.transactionManager = transactionManager; + this.reviewService = reviewService; + this.reviewDetlService = reviewDetlService; this.snowflakeIdWorker = snowflakeIdWorker; this.userId = userId; } @@ -57,28 +66,42 @@ public void invoke(ImportReviewDto data, AnalysisContext context) { log.info("瑙f瀽鍒扮 {} 鏉℃暟鎹�:{}", ++count, JSON.toJSONString(data)); - // 鑾峰彇鍖呰缁勫彿锛坈olumn1锛� - String packNo = data.getColumn1(); - if (Cools.isEmpty(packNo)) { - log.warn("鍖呰缁勫彿涓虹┖锛岃烦杩囪琛岋紒"); + if (Cools.isEmpty(data.getColumn2())) { + log.warn("瑙勬牸鍨嬪彿锛岃烦杩囪琛岋紒"); return; } - // 濡傛灉宸茬粡澶勭悊杩囪鍖呰缁勫彿锛屽垯璺宠繃 - if (uniquePackNos.contains(packNo)) { - log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", packNo); + if (Cools.isEmpty(data.getColumn4())) { + log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", data.getColumn5()); return; } - + if (Cools.isEmpty(data.getColumn7())) { + log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", data.getColumn7()); + return; + } // 棣栨鍑虹幇锛岃褰曞苟澶勭悊 - uniquePackNos.add(packNo); - list.add(data); + uniquePackNos.add(data.getColumn1()); - if (context.getCurrentRowNum() == 3) { + String time = DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F); + Review review = reviewService.selectOne(new EntityWrapper<Review>().eq("order_no", data.getColumn1())); + if (review == null) { + review = new Review(); + review.setUuid(String.valueOf(snowflakeIdWorker.nextId())); + review.setOrderNo(data.getColumn1()); + review.setOrderTime(time); + review.setSettle(1L); + review.setStatus(1); + review.setCreateBy(userId); + review.setCreateTime(new Date()); - return; + reviewService.insert(review); + review = reviewService.selectOne(new EntityWrapper<Review>().eq("order_no", data.getColumn1())); + }else { + log.info("宸插瓨鍦ㄨ璁㈠崟锛歿}锛�", data.getColumn1()); + throw new CoolException("璁㈠崟宸插瓨鍦紒"); } - + data.setOrderId(review.getId()); + list.add(data); if (list.size() >= BATCH_COUNT) { saveData(); list.clear(); @@ -106,47 +129,37 @@ */ private void saveData() { log.info("{}鏉℃暟鎹紝寮�濮嬪瓨鍌ㄦ暟鎹簱锛�", list.size()); - log.info("鍗曟嵁鍙凤細{}锛屾暟鎹細{},", orderNo, JSON.toJSONString(list)); + log.info("鏁版嵁锛歿},", JSON.toJSONString(list)); - List<OrderDetl> orderDetlList = new ArrayList<>(); + List<ReviewDetl> orderDetlList = new ArrayList<>(); for (ImportReviewDto importOrderDto : list) { - OrderDetl orderDetl = new OrderDetl(); + ReviewDetl orderDetl = new ReviewDetl(); - if (docTypeId == 24) { - orderDetl.setSpecs(String.format("%07d", Integer.parseInt(importOrderDto.getColumn1()))); // 婧愬簱浣� - if (importOrderDto.getColumn2() != null) { - orderDetl.setModel(String.format("%07d", Integer.parseInt(importOrderDto.getColumn2()))); // 鐩爣搴撲綅 - } - if (importOrderDto.getColumn3() != null) { - orderDetl.setBeBatch(Integer.parseInt(importOrderDto.getColumn3())); // 宸烽亾 - } - } else { - orderDetl.setBrand(importOrderDto.getColumn1()); - orderDetl.setSupp(importOrderDto.getColumn3()); - orderDetl.setMemo(importOrderDto.getColumn4()); - } + orderDetl.setOrderNo(importOrderDto.getColumn1()); + orderDetl.setMatnr(importOrderDto.getColumn2()); + orderDetl.setMaktx(importOrderDto.getColumn3()); + orderDetl.setSpecs(importOrderDto.getColumn4()); + orderDetl.setUnit(importOrderDto.getColumn5()); + //orderDetl.set(importOrderDto.getColumn6()); + orderDetl.setBatch(importOrderDto.getColumn7()); + orderDetl.setModel(importOrderDto.getColumn8()); + orderDetl.setAnfme(importOrderDto.getColumn9()); + orderDetl.setDeadTime(importOrderDto.getColumn10()); - orderDetl.setBatch(""); - orderDetl.setOrderId(orderId); - orderDetl.setOrderNo(orderNo); + orderDetl.setOrderId(importOrderDto.getOrderId()); orderDetl.setCreateBy(9527L); orderDetl.setCreateTime(new Date()); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateTime(new Date()); orderDetl.setStatus(1); - orderDetl.setQty(0.0D); - orderDetl.setAnfme(1.0); orderDetlList.add(orderDetl); } // 鉁� 鍏抽敭鐐癸細鍒嗘壒鎻愪氦 - for (int i = 0; i < orderDetlList.size(); i += MAX_BATCH_SIZE) { - int end = Math.min(i + MAX_BATCH_SIZE, orderDetlList.size()); - List<OrderDetl> batch = orderDetlList.subList(i, end); - //reviewDetlService.batchDetls(batch); + for (ReviewDetl d : orderDetlList) { + reviewDetlService.insert(d); } - log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒"); } diff --git a/src/main/webapp/static/js/review/review.js b/src/main/webapp/static/js/review/review.js index caea5f8..34e90b9 100644 --- a/src/main/webapp/static/js/review/review.js +++ b/src/main/webapp/static/js/review/review.js @@ -32,7 +32,7 @@ {type: 'numbers'}, {field: 'orderNo', title: '鍗曟嵁缂栧彿'}, {field: 'cstmrName', align: 'center',title: '瀹㈡埛鍚嶇О'}, - {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 160, width: 160}, + {align: 'center', title: '鏄庣粏', toolbar: '#tbLook', minWidth: 250, width: 250}, {field: 'createTime$', title: '鍒涘缓鏃堕棿', minWidth: 200, width: 200}, {field: 'settle$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160}, //{field: 'memo', align: 'center',title: '澶囨敞'}, @@ -207,7 +207,7 @@ layer.open({ type: 1, title: false, - area: '1020px', + area: '1220px', offset: [top + 'px', (left - 530 + $a.outerWidth()) + 'px'], shade: .01, shadeClose: true, @@ -229,10 +229,11 @@ {field: 'maktx', title: '浜у搧鍚嶇О'}, {field: 'specs', title: '瑙勬牸鍨嬪彿'}, {field: 'batch', title: '鎵规鍙�'}, - {field: 'color', title: '鍗峰彿'}, - {field: 'qty', title: '鍑哄簱鏁伴噺'}, + {field: 'model', title: '鍗峰彿'}, + {field: 'anfme', title: '鍑哄簱鏁伴噺'}, {field: 'deadTime', title: '鍑哄簱鏃ユ湡'}, - {field: 'source', title: '澶嶆牳鐘舵��'}, + {field: 'inspect$', title: '澶嶆牳鐘舵��'}, + {field: 'threeCode', title: '澶嶆牳浜�'}, {field: 'memo', title: '澶嶆牳澶囨敞'} ]], request: { diff --git a/src/main/webapp/views/review/review.html b/src/main/webapp/views/review/review.html index 4ae1fcd..51dadcc 100644 --- a/src/main/webapp/views/review/review.html +++ b/src/main/webapp/views/review/review.html @@ -114,7 +114,7 @@ var formData = new FormData(); formData.append('file', file); - fetch(baseUrl+'/importOrder', { + fetch(baseUrl+'/importReview', { method: 'POST', headers: {'token': localStorage.getItem('token')}, body: formData @@ -162,7 +162,8 @@ <!-- <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="labelUp">涓婁紶鏍囩</a>--> {{# } }} {{# if (d.settle == 2) { }} -<!-- <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="labelUp">涓婁紶鏍囩</a>--> + <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a> + <!-- <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="labelUp">涓婁紶鏍囩</a>--> <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-edit" lay-event="complete">瀹岀粨</a> {{# } }} {{# if (d.settle == 4 && d.tkType=='1') { }} -- Gitblit v1.9.1