From e66095ce55dcc9450b953f77dd753c698c53fd55 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 27 十月 2025 08:12:27 +0800
Subject: [PATCH] 更新erp对接 1.销售订单按子单自动上报 2.其他订单按主单上报 3.客户可以选择物料进行出库
---
src/main/java/com/zy/asrs/service/OrderDetl1Service.java | 49
src/main/webapp/views/pakStore/locDetlQuery.html | 1
src/main/webapp/static/js/orderDetl/orderDetl1.js | 382 +++++
src/main/webapp/views/order/OrderDetlStockOut.html | 175 ++
src/main/java/com/zy/third/task/OrderScheduler.java | 1
src/main/webapp/static/js/order/out.js | 1
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 75
src/main/java/com/zy/asrs/entity/WrkDetl.java | 4
src/main/java/com/zy/third/entity/ExdvYanbu.java | 5
src/main/resources/mapper/asrs/Order1Mapper.xml | 69
src/main/java/com/zy/asrs/controller/OutController.java | 25
src/main/java/com/zy/asrs/entity/OrderDetl1.java | 475 ++++++
src/main/java/com/zy/asrs/service/impl/OrderDetl1ServiceImpl.java | 132 +
src/main/java/com/zy/third/entity/ExdOutstockTarget.java | 5
src/main/resources/mapper/asrs/OrderDetl1Mapper.xml | 232 +++
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 141 +
src/main/webapp/views/order/outLocDetlQuery1.html | 647 ++++++++
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | 50
src/main/java/com/zy/asrs/controller/OrderDetl1Controller.java | 144 +
src/main/java/com/zy/asrs/entity/Order.java | 14
src/main/java/com/zy/asrs/service/Order1Service.java | 25
src/main/java/com/zy/asrs/service/impl/Order1ServiceImpl.java | 176 ++
src/main/webapp/views/orderDetl/orderDetl1.html | 290 +++
src/main/java/com/zy/asrs/entity/Order1.java | 444 ++++++
src/main/webapp/static/js/order/OrderDetlStockOut.js | 445 ++++++
src/main/webapp/static/js/order/outAll.js | 28
src/main/webapp/views/order/outAll.html | 2
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | 64
src/main/java/com/zy/asrs/mapper/Order1Mapper.java | 21
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java | 231 ++
src/main/java/com/zy/asrs/mapper/OrderDetl1Mapper.java | 46
31 files changed, 4,280 insertions(+), 119 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OrderDetl1Controller.java b/src/main/java/com/zy/asrs/controller/OrderDetl1Controller.java
new file mode 100644
index 0000000..cd0fb55
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/OrderDetl1Controller.java
@@ -0,0 +1,144 @@
+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.OrderDetl1;
+import com.zy.asrs.service.OrderDetl1Service;
+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
+public class OrderDetl1Controller extends BaseController {
+
+ @Autowired
+ private OrderDetl1Service orderDetlService;
+
+ @RequestMapping(value = "/orderDetl1/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(orderDetlService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/orderDetl1/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<OrderDetl1> wrapper = new EntityWrapper<>();
+ if(!Cools.isEmpty(param.get("abnormal"))&¶m.get("abnormal").equals("1")){
+ wrapper.addFilter("anfme < qty");
+ }else{
+ param.remove("abnormal");
+ 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<OrderDetl1> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
+ return R.ok(orderDetlPage);
+ }
+
+ @RequestMapping(value = "/orderDetl1/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, OrderDetl1.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 = "/orderDetl1/add/auth")
+ @ManagerAuth
+ public R add(OrderDetl1 orderDetl) {
+ orderDetlService.insert(orderDetl);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/orderDetl1/update/auth")
+ @ManagerAuth
+ public R update(OrderDetl1 orderDetl){
+ if (Cools.isEmpty(orderDetl) || null==orderDetl.getId()){
+ return R.error();
+ }
+ orderDetlService.updateById(orderDetl);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/orderDetl1/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ orderDetlService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/orderDetl1/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<OrderDetl1> 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<OrderDetl1> list = orderDetlService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/orderDetl1Query/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<OrderDetl1> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<OrderDetl1> page = orderDetlService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (OrderDetl1 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 = "/orderDetl1/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<OrderDetl1> wrapper = new EntityWrapper<OrderDetl1>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != orderDetlService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(OrderDetl1.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 58e0ab5..330c001 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -1,16 +1,20 @@
package com.zy.asrs.controller;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.entity.param.OutlocDetlParam;
import com.zy.asrs.service.*;
import com.zy.common.model.LocDto;
import com.zy.common.model.TaskDto;
import com.zy.common.web.BaseController;
+import lombok.Synchronized;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -159,13 +163,15 @@
locDtos.add(locDto);
exist.add(locDetl.getLocNo());
}
+ orderDetl.setUpdateBy(getUserId());
}
return R.ok().add(locDtos);
}
+ @Synchronized
@PostMapping("/out/pakout2/auth")
@ManagerAuth(memo = "璁㈠崟鍑哄簱")
- public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException {
+ public R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException {
if (Cools.isEmpty(locDtos)) {
return R.parse(BaseRes.PARAM);
}
@@ -197,11 +203,24 @@
} else {
taskDtos.add(taskDto);
}
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDto.getLocNo()));
+ if(!locMast.getLocSts().equals("F")) {
+ return R.error("搴撲綅="+locMast.getLocNo()+"涓嶆槸鍦ㄥ簱鐘舵�侊紝璇峰埛鏂伴〉闈㈤噸鏂版彁鍙栫墿鏂�");
+ }
}
// -----------------------------------------------------------------------------------------------
for (TaskDto taskDto : taskDtos) {
workService.stockOutCheckAnfme(null, taskDto, getUser(), taskDto.getStaNo());
}
+ //瀵瑰嚭搴撹鍗曟祦姘村彿杩涜鏇存柊
+ Order order = orderService.selectByNo(locDtos.get(0).getOrderNo());
+ if(order.getDocType()==81){
+ order.setAccountDay(Cools.isEmpty(order.getAccountDay()) ? 1 : order.getAccountDay()+1);
+ order.setUpdateTime(new Date());
+ orderService.updateById(order);
+ }
+
+
return R.ok();
}
@@ -221,7 +240,6 @@
double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
for (LocDetl locDetl : map.getList()) {
- if (issued > 0) {
LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
locDetl.getAnfme());
List<String> staNos = new ArrayList<>();
@@ -233,9 +251,6 @@
exist.add(locDetl.getLocNo());
// 鍓╀綑寰呭嚭鏁伴噺閫掑噺
issued = issued - locDetl.getAnfme();
- } else {
- break;
- }
}
if (issued > 0) {
LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
diff --git a/src/main/java/com/zy/asrs/entity/Order.java b/src/main/java/com/zy/asrs/entity/Order.java
index 99abc64..4d8615a 100644
--- a/src/main/java/com/zy/asrs/entity/Order.java
+++ b/src/main/java/com/zy/asrs/entity/Order.java
@@ -45,6 +45,13 @@
private String orderNo;
/**
+ * 涓婃姤娆℃暟
+ */
+ @ApiModelProperty(value= "涓婃姤娆℃暟")
+ @TableField("account_day")
+ private Integer accountDay;
+
+ /**
* 鍗曟嵁鏃ユ湡
*/
@ApiModelProperty(value= "鍗曟嵁鏃ユ湡")
@@ -162,12 +169,7 @@
@ApiModelProperty(value= "涓氬姟鍛�")
private String salesman;
- /**
- * 缁撶畻澶╂暟
- */
- @ApiModelProperty(value= "缁撶畻澶╂暟")
- @TableField("account_day")
- private Integer accountDay;
+
/**
* 閭垂鏀粯绫诲瀷 1: 鍦ㄧ嚎鏀粯 2: 璐у埌浠樻
diff --git a/src/main/java/com/zy/asrs/entity/Order1.java b/src/main/java/com/zy/asrs/entity/Order1.java
new file mode 100644
index 0000000..13bd58b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/Order1.java
@@ -0,0 +1,444 @@
+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.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_order1")
+public class Order1 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;
+
+ public Order1() {}
+
+ public Order1(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 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 void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl1.java b/src/main/java/com/zy/asrs/entity/OrderDetl1.java
new file mode 100644
index 0000000..98dc215
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/OrderDetl1.java
@@ -0,0 +1,475 @@
+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.Order1Service;
+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;
+import java.util.Objects;
+
+@Data
+@TableName("man_order_detl1")
+public class OrderDetl1 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 Double units=0.0;
+
+ /**
+ * 鍟嗗搧缂栫爜
+ */
+ @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 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;
+
+ /**
+ * 绾㈣摑瀛�
+ */
+ @ApiModelProperty(value= "绾㈣摑瀛�")
+ @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: 澶栧崗
+ */
+ @ApiModelProperty(value= "鍒惰喘 1: 鍒堕�� 2: 閲囪喘 3: 澶栧崗 ")
+ private Integer source;
+
+ /**
+ * 涓婃姤娆℃暟
+ */
+ @ApiModelProperty(value= "涓婃姤娆℃暟")
+ 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 OrderDetl1() {}
+
+ public OrderDetl1(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 getAnfme$(){
+ if(Objects.equals(this.qty, this.anfme)){
+ return "宸插畬鎴�";
+ }else if(this.workQty==0){
+ return "寰呭鐞�";
+ }else if(this.anfme>this.qty){
+ return "浣滀笟涓�";
+ }else if(this.anfme<this.qty){
+ return "寮傚父";
+ }
+ return "";
+ }
+
+ public String getDanger$(){
+ DocTypeService service = SpringUtils.getBean(DocTypeService.class);
+ Order1Service orderServicer=SpringUtils.getBean(Order1Service.class);
+ Order1 order = orderServicer.selectByNo(this.orderNo);
+ DocType docType = service.selectById(order.getDocType());
+ if (!Cools.isEmpty(docType)){
+ return String.valueOf(docType.getDocName());
+ }
+ 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 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 void sync(Object source) {
+ Synchro.Copy(source, this);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/WrkDetl.java b/src/main/java/com/zy/asrs/entity/WrkDetl.java
index 349a127..19a8944 100644
--- a/src/main/java/com/zy/asrs/entity/WrkDetl.java
+++ b/src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -84,9 +84,9 @@
private String model;
/**
- * 棰滆壊
+ * 鎿嶄綔鍛�
*/
- @ApiModelProperty(value= "棰滆壊")
+ @ApiModelProperty(value= "鎿嶄綔鍛�")
private String color;
/**
diff --git a/src/main/java/com/zy/asrs/mapper/Order1Mapper.java b/src/main/java/com/zy/asrs/mapper/Order1Mapper.java
new file mode 100644
index 0000000..098ee3a
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/Order1Mapper.java
@@ -0,0 +1,21 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.Order1;
+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 Order1Mapper extends BaseMapper<Order1> {
+
+ int updateSettle(@Param("orderId")Long orderId, @Param("settle")Long settle, @Param("userId")Long userId);
+
+ List<Order1> selectComplete();
+
+ int addToLogTable(Order1 order);
+}
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetl1Mapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetl1Mapper.java
new file mode 100644
index 0000000..c22a7cc
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetl1Mapper.java
@@ -0,0 +1,46 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.OrderDetl1;
+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 OrderDetl1Mapper extends BaseMapper<OrderDetl1> {
+
+ OrderDetl1 selectItem(@Param("orderId") Long orderId, @Param("matnr") String matnr, @Param("batch") String batch);
+
+ OrderDetl1 selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch);
+
+ List<OrderDetl1> selectWorkingDetls(Long orderId);
+
+ List<OrderDetl1> 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(OrderDetl1 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);
+
+
+ int increaseWorkQty2(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("workQty")Double workQty, @Param("color")String color);
+
+
+ int increaseWorkQtytest(@Param("orderNo")String orderNo, @Param("matnr")String matnr, @Param("batch")String batch, @Param("anfme")Double anfme);
+
+ List<OrderDetl1> reportERPOrderDetl ();
+}
diff --git a/src/main/java/com/zy/asrs/service/Order1Service.java b/src/main/java/com/zy/asrs/service/Order1Service.java
new file mode 100644
index 0000000..6394de5
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/Order1Service.java
@@ -0,0 +1,25 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.*;
+
+import java.util.List;
+
+public interface Order1Service extends IService<Order1> {
+
+ Order1 selectByNo(String orderNo);
+
+ List<OrderDetl1> 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<Order1> selectComplete();
+
+ boolean addToLogTable(Order1 order);
+}
diff --git a/src/main/java/com/zy/asrs/service/OrderDetl1Service.java b/src/main/java/com/zy/asrs/service/OrderDetl1Service.java
new file mode 100644
index 0000000..d5f73ef
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/OrderDetl1Service.java
@@ -0,0 +1,49 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.OrderDetl;
+import com.zy.asrs.entity.OrderDetl1;
+
+import java.util.List;
+
+public interface OrderDetl1Service extends IService<OrderDetl1> {
+
+ List<OrderDetl1> selectByOrderId(Long orderId);
+
+ Page<OrderDetl1> getPakoutPage(Page<OrderDetl1> page);
+
+ OrderDetl1 selectItem(Long orderId, String matnr, String batch);
+
+ OrderDetl1 selectItem(String orderNo, String matnr, String batch);
+
+ OrderDetl1 findByLook(List<OrderDetl1> 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(OrderDetl1 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);
+
+
+ boolean increaseWorkQty2(Long orderId, String matnr, String batch, Double workQty, String color);
+
+
+ boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme);
+
+ List<OrderDetl1> reportERPOrderDetl1();
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/Order1ServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/Order1ServiceImpl.java
new file mode 100644
index 0000000..70c6e6d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/Order1ServiceImpl.java
@@ -0,0 +1,176 @@
+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.Order1Mapper;
+import com.zy.asrs.mapper.OrderDetl1Mapper;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.mapper.OrderMapper;
+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("order1Service")
+public class Order1ServiceImpl extends ServiceImpl<Order1Mapper, Order1> implements Order1Service {
+
+ @Autowired
+ private OrderDetl1Mapper orderDetlMapper;
+ @Autowired
+ private OpenService openService;
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+ @Autowired
+ private OrderDetl1Service orderDetlService;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+
+ @Override
+ public Order1 selectByNo(String orderNo) {
+ List<Order1> orderList = this.selectList(new EntityWrapper<Order1>().eq("order_no", orderNo));
+ if (Cools.isEmpty(orderList)) {
+ return null;
+ }
+ return orderList.get(0);
+ }
+
+ @Override
+ public List<OrderDetl1> 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) {
+ Order1 order = this.selectByNo(orderNo);
+ if (Cools.isEmpty(order) || order.getSettle() >= 4L) {
+ return;
+ }
+ List<OrderDetl1> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl1>().eq("order_id", order.getId()));
+ boolean complete = true;
+ for (OrderDetl1 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<OrderDetl1>().eq("order_id", order.getId()))) {
+ throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
+ }
+ List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
+ for (WrkDetl wrkDetl : wrkDetls) {
+ OrderDetl1 orderDetl = new OrderDetl1();
+ 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);
+ }
+
+ Order1 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<OrderDetl1>().eq("order_id", orderId));
+ }
+
+ @Override
+ public List<Order1> selectComplete() {
+ return this.baseMapper.selectComplete();
+ }
+
+
+ @Override
+ public boolean addToLogTable(Order1 order) {
+ return this.baseMapper.addToLogTable(order) > 0;
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetl1ServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetl1ServiceImpl.java
new file mode 100644
index 0000000..35d8548
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetl1ServiceImpl.java
@@ -0,0 +1,132 @@
+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.OrderDetl;
+import com.zy.asrs.entity.OrderDetl1;
+import com.zy.asrs.mapper.OrderDetl1Mapper;
+import com.zy.asrs.mapper.OrderDetlMapper;
+import com.zy.asrs.service.OrderDetl1Service;
+import com.zy.asrs.service.OrderDetlService;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+
+@Service("orderDetl1Service")
+public class OrderDetl1ServiceImpl extends ServiceImpl<OrderDetl1Mapper, OrderDetl1> implements OrderDetl1Service {
+
+ @Override
+ public List<OrderDetl1> selectByOrderId(Long orderId) {
+ return this.selectList(new EntityWrapper<OrderDetl1>().eq("order_id", orderId));
+ }
+
+ @Override
+ public Page<OrderDetl1> getPakoutPage(Page<OrderDetl1> page) {
+ page.setRecords(baseMapper.getPakoutPage(page.getCondition()));
+ page.setTotal(baseMapper.getPakoutPageCount(page.getCondition()));
+ return page;
+ }
+
+ @Override
+ public OrderDetl1 selectItem(Long orderId, String matnr, String batch) {
+ return this.baseMapper.selectItem(orderId, matnr, batch);
+ }
+
+ @Override
+ public OrderDetl1 selectItem(String orderNo, String matnr, String batch) {
+ return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch);
+ }
+
+ @Override
+ public OrderDetl1 findByLook(List<OrderDetl1> orderDetls, Long orderId, String matnr, String batch) {
+ for (OrderDetl1 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(OrderDetl1 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;
+ }
+
+ /**
+ * 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲�
+ *
+ * @param orderId
+ * @param matnr
+ * @param batch
+ * @param workQty
+ * @return
+ */
+ @Override
+ public boolean increaseWorkQty2(Long orderId, String matnr, String batch, Double workQty, String color) {
+ return this.baseMapper.increaseWorkQty2(orderId, matnr, batch, workQty, color) > 0;
+ }
+
+ /**
+ * 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲�
+ *
+ * @param orderNo
+ * @param matnr
+ * @param batch
+ * @param anfme
+ * @return
+ */
+ @Override
+ public boolean increaseWorkQtytest(String orderNo, String matnr, String batch, Double anfme) {
+ return this.baseMapper.increaseWorkQtytest(orderNo, matnr, batch, anfme) > 0;
+ }
+
+
+ @Override
+ public List<OrderDetl1> reportERPOrderDetl1() {
+ return this.baseMapper.reportERPOrderDetl();
+ }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
index 31ac504..0d57944 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -36,6 +36,8 @@
private DocTypeService docTypeService;
@Autowired
private WrkDetlService wrkDetlService;
+ @Autowired
+ private Order1ServiceImpl order1Service;
@Override
public Order selectByNo(String orderNo) {
@@ -58,11 +60,39 @@
@Override
public void checkComplete(String orderNo) {
- Order order = this.selectByNo(orderNo);
- if (Cools.isEmpty(order) || order.getSettle() >= 4L) {
+ String orderNo1= orderNo.split("-")[0];
+ //涓昏〃
+ Order order1 = this.selectByNo(orderNo1);
+
+ //瀛愯〃鏇存柊鐘舵��
+ DocType docType = docTypeService.selectById(order1.getDocType());
+ if (!Cools.isEmpty(docType)&&docType.getPakout()==1) {
+ Order1 order11 = order1Service.selectByNo(orderNo);
+ if (Cools.isEmpty(order11)||order11.getSettle()>4) {
+ return;
+ }
+
+ List<OrderDetl> orderDetls1 = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_id", order1.getId()));
+ boolean complete1 = true;
+ for (OrderDetl orderDetl : orderDetls1) {
+ if (orderDetl.getAnfme() > orderDetl.getQty()) {
+ complete1 = false;
+ break;
+ }
+ }
+ if (complete1) {
+
+ if (!order1Service.updateSettle(order11.getId(), 4L, null)) {
+ throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order1.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
+ }
+ }
+ }
+
+ //涓昏〃鏇存柊鐘舵��
+ if (Cools.isEmpty(order1) || order1.getSettle() >= 4L) {
return;
}
- List<OrderDetl> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()));
+ List<OrderDetl> orderDetls = orderDetlMapper.selectList(new EntityWrapper<OrderDetl>().eq("order_id", order1.getId()));
boolean complete = true;
for (OrderDetl orderDetl : orderDetls) {
if (orderDetl.getAnfme() > orderDetl.getQty()) {
@@ -71,35 +101,13 @@
}
}
if (complete) {
- // 鍑哄簱璁㈠崟閲嶆柊鏁寸悊鏄庣粏
- DocType docType = docTypeService.selectById(order.getDocType());
- if (null != docType && docType.getPakout() == 1) {
- if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
- throw new CoolException("閲嶆暣鍑哄簱璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戞槑缁嗗け璐�");
- }
- List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
- for (WrkDetl wrkDetl : wrkDetls) {
- OrderDetl orderDetl = new OrderDetl();
- 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() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
+ if (!this.updateSettle(order1.getId(), 4L, null)) {
+ throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order1.getOrderNo() + "銆戠姸鎬佷负宸插畬鎴愬け璐�");
}
}
+
}
@Override
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 5d07400..a47d507 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -78,6 +78,10 @@
private SlaveProperties slaveProperties;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private OrderDetl1ServiceImpl orderDetl1Service;
+ @Autowired
+ private Order1ServiceImpl order1Service;
@Override
@Transactional
@@ -404,7 +408,15 @@
}
// 鑾峰彇搴撲綅
LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+ String orderNo = "";
+ int i = 0;
for (LocDto locDto : taskDto.getLocDtos()) {
+ if (i++ == 0) {
+ orderNo = locDto.getOrderNo();
+ } else if (!orderNo.equals(locDto.getOrderNo())) {
+ throw new CoolException("鍑哄簱璁㈠崟涓嶄竴鑷存棤娉曞嚭搴�");
+ }
+
if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
continue;
}
@@ -412,9 +424,9 @@
if (orderDetl == null) {
orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
}
- if (orderDetl.getAnfme() - orderDetl.getWorkQty() == 0) {
- return;
- }
+// if (orderDetl.getAnfme() - orderDetl.getWorkQty() == 0) {
+// return;
+// }
}
@@ -457,8 +469,28 @@
if (!wrkMastService.insert(wrkMast)) {
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
}
+ Order order = orderService.selectByNo(orderNo);
+ if (Cools.isEmpty(order.getAccountDay())) {
+ order.setAccountDay(1);
+ } else {
+ order.setAccountDay(order.getAccountDay() + 1);
+ }
+ orderNo = order.getOrderNo() + "-" + order.getAccountDay();
+ Order1 order2 = order1Service.selectByNo(orderNo);
+ if (Cools.isEmpty(order2)) {
+ //鍒涘缓瀛愯〃琛ㄥご
+ Order1 order1 = new Order1();
+ order1.sync(order);
+ order1.setOrderNo(orderNo);
+ order1.setCreateBy(user.getId());
+ order1.setCreateTime(now);
+ order1.setUpdateTime(new Date());
+ order1.setSettle(2L);
+ order1Service.insert(order1);
+ }
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDto locDto : taskDto.getLocDtos()) {
+
if (locDto.getAnfme() == null || locDto.getAnfme() <= 0.0D) {
continue;
}
@@ -473,9 +505,9 @@
wrkDetl.setIoTime(now);
wrkDetl.setWrkNo(workNo);
wrkDetl.setBatch(locDto.getBatch());
- wrkDetl.setOrderNo(locDto.getOrderNo());
+ wrkDetl.setOrderNo(orderNo);
wrkDetl.setModel(mat.getModel());
- wrkDetl.setAnfme(locDto.getAnfme() > (orderDetl.getAnfme() - orderDetl.getWorkQty()) ? (orderDetl.getAnfme() - orderDetl.getWorkQty()) : locDto.getAnfme()); // 鏁伴噺
+ wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
wrkDetl.setAppeTime(now);
wrkDetl.setAppeUser(user.getId());
wrkDetl.setModiTime(now);
@@ -487,6 +519,18 @@
if (!orderDetlService.increaseWorkQty2(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), wrkDetl.getAnfme(), user.getEmail())) {
throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
}
+
+ //鐢熸垚鍑鸿揣鍗�
+ OrderDetl1 orderDetl1 = new OrderDetl1();
+ orderDetl1.sync(wrkDetl);
+ orderDetl1.setOrderId(order2.getId());
+ orderDetl1.setWorkQty(wrkDetl.getAnfme());
+ orderDetl1.setStatus(1);
+ orderDetl1.setCreateBy(user.getId());
+ orderDetl1.setUpdateBy(user.getId());
+ orderDetl1.setCreateTime(new Date());
+ orderDetl1.setUpdateTime(new Date());
+ orderDetl1Service.insert(orderDetl1);
orderService.updateSettle(orderDetl.getOrderId(), 2L, user.getId());
}
// 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
@@ -954,30 +998,43 @@
List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
for (WrkDetl wrkDetl : wrkDetls) {
//瀛楃涓蹭笉涓虹┖
+ String orderNo = wrkDetl.getOrderNo().split("-")[0];
if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
- if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+ if (!orderDetlService.decrease(orderNo, wrkDetl.getMatnr(), null, wrkDetl.getAnfme())) {
throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
}
//淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
boolean flag = true;
- List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", wrkDetl.getOrderNo()));
+ List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
for (OrderDetl orderDetl : orderDetls) {
if (orderDetl.getWorkQty() > 0) {
flag = false;
}
}
if (flag) {
- Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()));
+ Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", orderNo));
if (!Cools.isEmpty(order) && order.getSettle() == 2) {
order.setSettle(1L);
order.setUpdateBy(userId);
order.setUpdateTime(now);
}
- if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", wrkDetl.getOrderNo()))) {
+ if (!orderService.update(order, new EntityWrapper<Order>().eq("order_no", orderNo))) {
throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
}
}
+
+ //瀵瑰瓙琛ㄨ繘琛屽垹鍑�
+ if (Cools.isEmpty(wrkDetl.getBatch())) {
+ orderDetl1Service.delete(new EntityWrapper<OrderDetl1>().eq("order_no", wrkDetl.getOrderNo()).eq("matnr", wrkDetl.getMatnr()));
+ } else {
+ orderDetl1Service.delete(new EntityWrapper<OrderDetl1>().eq("order_no", wrkDetl.getOrderNo()).eq("matnr", wrkDetl.getMatnr()).eq("batch", wrkDetl.getBatch()));
+ }
+ int orderNo1 = orderDetl1Service.selectCount(new EntityWrapper<OrderDetl1>().eq("order_no", wrkDetl.getOrderNo()));
+ if (orderNo1 == 0) {
+ order1Service.delete(new EntityWrapper<Order1>().eq("order_no", wrkDetl.getOrderNo()));
+ }
+
}
}
diff --git a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
index bf46a96..abb6d4e 100644
--- a/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -1,9 +1,12 @@
package com.zy.asrs.task;
import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.Order;
+import com.zy.asrs.entity.Order1;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.Order1Service;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.core.ReturnT;
@@ -32,6 +35,8 @@
private ApiLogService apiLogService;
@Autowired
private OrderDetlService orderDetlService;
+ @Autowired
+ private Order1Service order1Service;
@Scheduled(cron = "0 0 1 * * ? ")
public void clearApiLog(){
@@ -73,23 +78,54 @@
*/
@Scheduled(cron = "0/5 * * * * ? ")
@Async("orderThreadPool")
- public void completeAndReport1(){
+ public synchronized void completeAndReport1(){
String erpReport = Parameter.get().getErpReport();
if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
- List<OrderDetl> orderDetls = orderDetlService.reportERPOrderDetl();
- for (OrderDetl orderDetl : orderDetls) {
- Order order = orderService.selectByNo(orderDetl.getOrderNo());
+ List<Order1> orders = order1Service.selectComplete();
+ for (Order1 order : orders) {
+ if(order.getDocType()!= 81){
+ continue;
+ }
try {
- ReturnT<String> result = orderSyncHandler.start1(order, orderDetl);
+ ReturnT<String> result = orderSyncHandler.start1(order);
if (!result.isSuccess()) {
- log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp澶辫触", order.getOrderNo());
+ }else {
+ //鏇存柊瀛愯〃鐘舵��4--銆�6
+ if (!order1Service.updateSettle(order.getId(), 6L, null)) {
+ throw new CoolException("淇敼璁㈠崟銆恛rderNo = " + order.getOrderNo() + "銆戠姸鎬佷负涓婃姤澶辫触");
+ }
}
}catch (Exception e){
e.printStackTrace();
- log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+ log.error("鍗曟嵁[orderNo={}]涓婃姤erp鎶ラ敊", order.getOrderNo());
}
}
}
}
+// /**
+// * 閿�鍞嚭搴撹鍗曟槑缁嗗畬鎴愪笂鎶�
+// */
+// @Scheduled(cron = "0/5 * * * * ? ")
+// @Async("orderThreadPool")
+// public void completeAndReport1(){
+// String erpReport = Parameter.get().getErpReport();
+// if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
+// List<OrderDetl> orderDetls = orderDetlService.reportERPOrderDetl();
+// for (OrderDetl orderDetl : orderDetls) {
+// Order order = orderService.selectByNo(orderDetl.getOrderNo());
+// try {
+// ReturnT<String> result = orderSyncHandler.start1(order, orderDetl);
+// if (!result.isSuccess()) {
+// log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+// }
+// }catch (Exception e){
+// e.printStackTrace();
+// log.error("鍗曟嵁鏄庣粏[orderNo={}],[matnr={}],[batch={}]涓婃姤erp澶辫触", orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch());
+// }
+// }
+// }
+// }
+
}
diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 9903c31..fdf3095 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -3,17 +3,15 @@
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
-import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.DocTypeService;
-import com.zy.asrs.service.OrderDetlService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.OrderDetl1ServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.third.entity.ExdInstockTarget;
import com.zy.third.entity.ExdOutstockTarget;
+import com.zy.third.entity.ExdvYanbu;
+import com.zy.third.mapper.ExdMaterialMapper;
import com.zy.third.service.ExdInstockTargetService;
import com.zy.third.service.ExdOutstockTargetService;
import lombok.extern.slf4j.Slf4j;
@@ -21,6 +19,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -46,6 +45,14 @@
@Autowired
private ExdOutstockTargetService exdOutstockTargetService;
+ @Autowired
+ private MatService matService;
+ @Autowired
+ private OrderDetl1ServiceImpl orderDetl1Service;
+ @Autowired
+ private ExdMaterialMapper exdMaterialMapper;
+ @Autowired
+ private Order1Service order1Service;
@Transactional
public ReturnT<String> start(Order order) {
@@ -105,39 +112,84 @@
}
@Transactional
- public ReturnT<String> start1(Order order, OrderDetl orderDetl) {
+ public ReturnT<String> start1(Order1 order) {
DocType docType = docTypeService.selectById(order.getDocType());
if (null == docType) {
- return SUCCESS;
+ return FAIL;
}
- List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+ List<OrderDetl1> orderDetls = orderDetl1Service.selectByOrderId(order.getId());
if (orderDetls.isEmpty()) {
- return SUCCESS;
+ return FAIL;
}
- double count = orderDetl.getQty() - (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits());
- if (docType.getPakout() == 1) {
+
+ for (OrderDetl1 orderDetl : orderDetls) {
+
+ ExdvYanbu bacode = exdMaterialMapper.getBacode(orderDetl.getThreeCode());
+ //鑾峰彇涓昏〃鏄庣粏
+ OrderDetl orderDetl1 = orderDetlService.selectItem(orderDetl.getOrderNo(), orderDetl.getMatnr(), null);
+ //涓婃姤鏁伴噺
+ BigDecimal anfme = new BigDecimal(orderDetl1.getAnfme());
+ BigDecimal Units = new BigDecimal((Cools.isEmpty(orderDetl1.getUnits()) ? 0.0 : orderDetl1.getUnits()));
+ BigDecimal result = anfme.subtract(Units);
+ double count = result.doubleValue();
+
+// //鍓╀綑鏁伴噺
+// BigDecimal Anfme = new BigDecimal(orderDetl.getAnfme());
+// BigDecimal subtract = Anfme.subtract(Qty);
+
+
// 鍑哄簱瀹屾垚涓婃姤
ExdOutstockTarget exdOutstockTarget = null;
exdOutstockTarget = new ExdOutstockTarget();
//璁㈠崟鍐呯爜
exdOutstockTarget.setFinterid(orderDetl.getDeadWarn());
//鍗曞彿 = erp璁㈠崟鍙�+鐗╂枡缂栧彿+涓婃姤娆℃暟
- exdOutstockTarget.setFbillno(orderDetl.getOrderNo() + "--" + orderDetl.getMatnr() + "--" + orderDetl.getInspect());
+ exdOutstockTarget.setFbillno(order.getOrderNo());
//閮ㄩ棬ID
- exdOutstockTarget.setFdeptid(0);
+ exdOutstockTarget.setFdeptid(7502);
//渚涘簲鍟�/瀹㈡埛ID
exdOutstockTarget.setFsupplyid(0);
//鍒跺崟鐢ㄦ埛ID
- exdOutstockTarget.setFbillerid(0);
+ exdOutstockTarget.setFbillerid(Math.toIntExact(orderDetl.getUpdateBy()));
//缁嗚〃ID
- exdOutstockTarget.setFentryid(0);
+ Integer c = Integer.valueOf(order.getOrderNo().split("-")[1]);
+ exdOutstockTarget.setFentryid(c);
//鐗╂枡ID
- exdOutstockTarget.setFitemid(0);
+ Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+ exdOutstockTarget.setFitemid(Integer.valueOf(mat.getUuid()));
//婧愬崟鏁伴噺
- exdOutstockTarget.setFqtymust(0.0);
+ exdOutstockTarget.setFqtymust(count);
//鍑哄簱鏁伴噺
+ exdOutstockTarget.setFqty(orderDetl.getQty());
+ //鍗曚环
+ exdOutstockTarget.setFprice(0.0);
+ //鎵瑰彿 鏆傚畾
+ exdOutstockTarget.setFbatchno(orderDetl.getBatch());
+ //鍗曚綅ID
+ exdOutstockTarget.setFunitid(0);
+ //婧愬崟鍙�
+ exdOutstockTarget.setFsourcebillno(orderDetl.getOrderNo());
+ //婧愬崟缁嗚〃ID 鏆傚畾
+ exdOutstockTarget.setFsourceentryid(0);
+ //婧愬崟鍐呯爜 鏆傚畾
+ exdOutstockTarget.setFsourceinterid(0);
+ //婧愬崟鍗曟嵁绫诲瀷
+ exdOutstockTarget.setFsourcetrantype(0);
+ //搴撲綅ID
+ exdOutstockTarget.setFdcspid(0);
+ //浠撳簱ID 鏆傚畾
+ exdOutstockTarget.setFdcstockid(0);
+ //閿�鍞鍗曞崟鍙� 鏆傚畾
+ exdOutstockTarget.setForderbillno(orderDetl.getOrderNo());
+ //閿�鍞鍗曠粏琛↖D 鏆傚畾
+ exdOutstockTarget.setForderentryid(0);
+ //閿�鍞鍗曞唴鐮� 鏆傚畾
+ exdOutstockTarget.setForderinterid(0);
+ //璁″垝妯″紡
+ exdOutstockTarget.setFplanmode(0);
+
//鍗曟嵁绫诲瀷
exdOutstockTarget.setFtrantype(21);
@@ -147,6 +199,19 @@
exdOutstockTarget.setFrob(orderDetl.getBeBatch());
//鎿嶄綔鐢ㄦ埛
exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor()));
+
+ exdOutstockTarget.setBarcode(orderDetl.getBatch());
+ exdOutstockTarget.setGross(BigDecimal.valueOf(bacode.getGross()));
+ exdOutstockTarget.setWidth(BigDecimal.valueOf(bacode.getWidth()));
+ exdOutstockTarget.setDefects(BigDecimal.valueOf(bacode.getDefects()));
+ exdOutstockTarget.setBackcode(bacode.getBackcode());
+ exdOutstockTarget.setWritetime(new Date());
+ exdOutstockTarget.setWritor("WMS");
+ exdOutstockTarget.setStatus(0);
+//
+// //浠撳簱
+ exdOutstockTarget.setProdinkind(bacode.getProdinkind());
+
//鍐欏叆鏃堕棿
exdOutstockTarget.setWritetime(new Date());
//鍐欏叆鑰�
@@ -154,12 +219,132 @@
//鐘舵��
exdOutstockTarget.setStatus(0);
if (exdOutstockTargetService.insert(exdOutstockTarget)) {
- orderDetl.setInspect((Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
- orderDetl.setUnits(count + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
- orderDetlService.updateById(orderDetl);
+
+
+
}
+ }
+ for (OrderDetl1 orderDetl : orderDetls) {
+ OrderDetl orderDetl1 = orderDetlService.selectItem(orderDetl.getOrderNo(), orderDetl.getMatnr(), null);
+ orderDetl1.setUnits(orderDetl.getAnfme() + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
+ orderDetl1.setUpdateTime(new Date());
+ orderDetl1Service.updateById(orderDetl);
}
return SUCCESS;
}
-
}
+
+
+// @Transactional
+// public ReturnT<String> start1(Order order, OrderDetl orderDetl) {
+// DocType docType = docTypeService.selectById(order.getDocType());
+// if (null == docType) {
+// return SUCCESS;
+// }
+// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+// if (orderDetls.isEmpty()) {
+// return SUCCESS;
+// }
+//
+//// ExdvYanbu bacode = exdMaterialMapper.getBacode(wrkDetl.getThreeCode());
+//
+// //涓婃姤鏁伴噺
+// BigDecimal Qty = new BigDecimal(orderDetl.getQty());
+// BigDecimal Units = new BigDecimal((Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
+// BigDecimal result = Qty.subtract(Units);
+// double count = result.doubleValue();
+//
+// //鍓╀綑鏁伴噺
+// BigDecimal Anfme = new BigDecimal(orderDetl.getAnfme());
+// BigDecimal subtract = Anfme.subtract(Qty);
+//
+//
+// // 鍑哄簱瀹屾垚涓婃姤
+// ExdOutstockTarget exdOutstockTarget = null;
+// exdOutstockTarget = new ExdOutstockTarget();
+// //璁㈠崟鍐呯爜
+// exdOutstockTarget.setFinterid(orderDetl.getDeadWarn());
+// //鍗曞彿 = erp璁㈠崟鍙�+鐗╂枡缂栧彿+涓婃姤娆℃暟
+// exdOutstockTarget.setFbillno(orderDetl.getOrderNo() + "--" + orderDetl.getMatnr() + "--" + (Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
+//
+// //閮ㄩ棬ID
+// exdOutstockTarget.setFdeptid(7502);
+// //渚涘簲鍟�/瀹㈡埛ID
+// exdOutstockTarget.setFsupplyid(0);
+// //鍒跺崟鐢ㄦ埛ID
+// exdOutstockTarget.setFbillerid(Math.toIntExact(orderDetl.getUpdateBy()));
+// //缁嗚〃ID
+// exdOutstockTarget.setFentryid((Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
+// //鐗╂枡ID
+// Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+// exdOutstockTarget.setFitemid(Integer.valueOf(mat.getUuid()));
+// //婧愬崟鏁伴噺
+// exdOutstockTarget.setFqtymust(subtract.doubleValue());
+// //鍑哄簱鏁伴噺
+// exdOutstockTarget.setFqty(count);
+// //鍗曚环
+// exdOutstockTarget.setFprice(0.0);
+// //鎵瑰彿 鏆傚畾
+// exdOutstockTarget.setFbatchno(orderDetl.getBatch());
+// //鍗曚綅ID
+// exdOutstockTarget.setFunitid(0);
+// //婧愬崟鍙�
+// exdOutstockTarget.setFsourcebillno(orderDetl.getOrderNo());
+// //婧愬崟缁嗚〃ID 鏆傚畾
+// exdOutstockTarget.setFsourceentryid(0);
+// //婧愬崟鍐呯爜 鏆傚畾
+// exdOutstockTarget.setFsourceinterid(0);
+// //婧愬崟鍗曟嵁绫诲瀷
+// exdOutstockTarget.setFsourcetrantype(0);
+// //搴撲綅ID
+// exdOutstockTarget.setFdcspid(0);
+// //浠撳簱ID 鏆傚畾
+// exdOutstockTarget.setFdcstockid(0);
+// //閿�鍞鍗曞崟鍙� 鏆傚畾
+// exdOutstockTarget.setForderbillno(orderDetl.getOrderNo());
+// //閿�鍞鍗曠粏琛↖D 鏆傚畾
+// exdOutstockTarget.setForderentryid(0);
+// //閿�鍞鍗曞唴鐮� 鏆傚畾
+// exdOutstockTarget.setForderinterid(0);
+// //璁″垝妯″紡
+// exdOutstockTarget.setFplanmode(0);
+//
+// //鍗曟嵁绫诲瀷
+// exdOutstockTarget.setFtrantype(21);
+//
+// //鍗曟嵁鏃ユ湡
+// exdOutstockTarget.setFdate(DateUtils.convert(order.getOrderTime()));
+// //绾㈣摑瀛�
+// exdOutstockTarget.setFrob(orderDetl.getBeBatch());
+// //鎿嶄綔鐢ㄦ埛
+// exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor()));
+//
+//// exdOutstockTarget.setBarcode(wrkDetl.getBatch());
+//// exdOutstockTarget.setGross(bacode.getGross());
+//// exdOutstockTarget.setWidth(bacode.getWidth());
+//// exdOutstockTarget.setDefects(bacode.getDefects());
+//// exdOutstockTarget.setBackcode(bacode.getBackcode());
+//// exdOutstockTarget.setWritetime(new Date());
+//// exdOutstockTarget.setWritor("WMS");
+//// exdOutstockTarget.setStatus(0);
+////
+//// //浠撳簱
+//// exdOutstockTarget.setProdinkind(bacode.getProdinkind());
+//
+// //鍐欏叆鏃堕棿
+// exdOutstockTarget.setWritetime(new Date());
+// //鍐欏叆鑰�
+// exdOutstockTarget.setWritor("WMS");
+// //鐘舵��
+// exdOutstockTarget.setStatus(0);
+// if (exdOutstockTargetService.insert(exdOutstockTarget)) {
+// orderDetl.setInspect((Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
+// orderDetl.setUnits(count + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
+// orderDetlService.updateById(orderDetl);
+// }
+//
+// return SUCCESS;
+// }
+
+
+
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index a8c9330..d0c7df7 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -4,12 +4,16 @@
import com.core.common.Cools;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.MatServiceImpl;
+import com.zy.asrs.service.impl.OrderDetl1ServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.third.entity.ExdInstockTarget;
+import com.zy.third.entity.ExdStock;
import com.zy.third.entity.ExdvYanbu;
import com.zy.third.mapper.ExdMaterialMapper;
import com.zy.third.service.ExdInstockTargetService;
+import com.zy.third.service.ExdStockService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -45,6 +49,12 @@
@Autowired
private ExdMaterialMapper exdMaterialMapper;
+ @Autowired
+ private ExdStockService exdStockService;
+ @Autowired
+ private MatServiceImpl matServiceImpl;
+ @Autowired
+ private OrderDetl1ServiceImpl orderDetl1Service;
@Transactional
public ReturnT<String> start(WrkMast wrkMast) {
@@ -179,23 +189,63 @@
}
}
- // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
- }
- try {
- if (!Cools.isEmpty(orderDetl)) {
- if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- orderDetl.getBatch(), wrkDetl.getAnfme())) {
-// exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-// wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
- }
+ if(!Cools.isEmpty(wrkDetl.getOrderNo())){
+ String orderNo = wrkDetl.getOrderNo().split("-")[0];
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null);
}
- } catch (Exception ignore) {
+ try {
+ if (!Cools.isEmpty(orderDetl)) {
+ if (!orderDetlService.increaseQtyByOrderNo(orderNo, wrkDetl.getMatnr(),
+ orderDetl.getBatch(), wrkDetl.getAnfme())) {
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore) {
+ }
+
+ //瀛愯〃鏁版嵁瀹屾垚
+ String batch = null;
+ if(!Cools.isEmpty(wrkDetl.getBatch())){
+ batch = wrkDetl.getBatch();
+ }
+ OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), batch);
+ try {
+ if (!Cools.isEmpty(orderDetl1)) {
+ if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl.getBatch(), wrkDetl.getAnfme())) {
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore) {
+ }
}
+
+// // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+// OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+// if (orderDetl == null) {
+// orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
+// }
+// try {
+// if (!Cools.isEmpty(orderDetl)) {
+// if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+// orderDetl.getBatch(), wrkDetl.getAnfme())) {
+//// exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+//// wrkMast.getWrkNo(), wrkMast.getLocNo());
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// return FAIL.setMsg("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
+// }
+// }
+// } catch (Exception ignore) {
+// }
}
// 淇敼搴撲綅鐘舵�� Q ====>> F
@@ -363,23 +413,46 @@
return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
}
for (WrkDetl wrkDetl : wrkDetls101) {
- // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
- OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
- if (orderDetl == null) {
- orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), null);
- }
- try {
- if (!Cools.isEmpty(orderDetl)) {
- if (!orderDetlService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- orderDetl.getBatch(), wrkDetl.getAnfme())) {
+ if(!Cools.isEmpty(wrkDetl.getOrderNo())){
+ String orderNo = wrkDetl.getOrderNo().split("-")[0];
+ // 鏇存柊璁㈠崟瀹屾垚鏁伴噺
+ OrderDetl orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch());
+ if (orderDetl == null) {
+ orderDetl = orderDetlService.selectItem(orderNo, wrkDetl.getMatnr(), null);
+ }
+ try {
+ if (!Cools.isEmpty(orderDetl)) {
+ if (!orderDetlService.increaseQtyByOrderNo(orderNo, wrkDetl.getMatnr(),
+ orderDetl.getBatch(), wrkDetl.getAnfme())) {
// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
}
+ } catch (Exception ignore) {
}
- } catch (Exception ignore) {
+
+ //瀛愯〃鏁版嵁瀹屾垚
+ String batch = null;
+ if(!Cools.isEmpty(wrkDetl.getBatch())){
+ batch = wrkDetl.getBatch();
+ }
+ OrderDetl1 orderDetl1 = orderDetl1Service.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), batch);
+ try {
+ if (!Cools.isEmpty(orderDetl1)) {
+ if (!orderDetl1Service.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
+ orderDetl1.getBatch(), wrkDetl.getAnfme())) {
+// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+// wrkMast.getWrkNo(), wrkMast.getLocNo());
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
+ }
+ }
+ } catch (Exception ignore) {
+ }
}
+
}
// 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁�
if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
@@ -456,11 +529,16 @@
exdInstockTarge.setFdate(new Date());
exdInstockTarge.setFrob(1);
exdInstockTarge.setFdeptid(7502);
+ //渚涘簲鍟�/瀹㈡埛ID
+ exdInstockTarge.setFsupplyid(0);
+ //wms鎿嶄綔鍛�
exdInstockTarge.setFbillerid(Integer.valueOf(wrkDetl.getColor()));
exdInstockTarge.setFfmanagerid(Integer.valueOf(wrkDetl.getColor()));
exdInstockTarge.setFsmanagerid(Integer.valueOf(wrkDetl.getColor()));
exdInstockTarge.setFentryid(i);
- exdInstockTarge.setFitemid(Integer.parseInt(wrkDetl.getSku()));
+ //鐗╂枡ID
+ Mat mat = matServiceImpl.selectByMatnr(wrkDetl.getMatnr());
+ exdInstockTarge.setFitemid(Integer.valueOf(mat.getUuid()));
exdInstockTarge.setFqty(wrkDetl.getAnfme());
//鍗曚环
exdInstockTarge.setFprice(0.0);
@@ -476,8 +554,8 @@
//搴撲綅ID
exdInstockTarge.setFdcspid(0);
//浠撳簱ID
-
- exdInstockTarge.setFdcstockid(wrkDetl.getBrand());
+ ExdStock fname = exdStockService.selectOne(new EntityWrapper<ExdStock>().eq("Fname", wrkDetl.getBrand()));
+ exdInstockTarge.setFdcstockid(Integer.valueOf(fname.getId()));
//exdInstockTarge.setFdcspid(wrkMast.getLocNo());
@@ -490,7 +568,8 @@
exdInstockTarge.setWritetime(new Date());
exdInstockTarge.setWritor("WMS");
exdInstockTarge.setStatus(0);
- exdInstockTarge.setProdinkind("鎴愬搧搴�");
+ //浠撳簱
+ exdInstockTarge.setProdinkind(bacode.getProdinkind());
//exdInstockTarge.setProdInKind("鐗归噰搴�");
exdInstockTargetService.insert(exdInstockTarge);
i++;
diff --git a/src/main/java/com/zy/third/entity/ExdOutstockTarget.java b/src/main/java/com/zy/third/entity/ExdOutstockTarget.java
index a9c0b47..24adbc0 100644
--- a/src/main/java/com/zy/third/entity/ExdOutstockTarget.java
+++ b/src/main/java/com/zy/third/entity/ExdOutstockTarget.java
@@ -223,6 +223,11 @@
*/
private String readormsg;
+ /**
+ * 浠撳簱ID
+ */
+ private String prodinkind;
+
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/src/main/java/com/zy/third/entity/ExdvYanbu.java b/src/main/java/com/zy/third/entity/ExdvYanbu.java
index 1e5a2db..475fc6b 100644
--- a/src/main/java/com/zy/third/entity/ExdvYanbu.java
+++ b/src/main/java/com/zy/third/entity/ExdvYanbu.java
@@ -196,6 +196,11 @@
*/
private String qcempname3;
+ /**
+ * 浠撳簱
+ */
+ private String prodinkind;
+
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
diff --git a/src/main/java/com/zy/third/task/OrderScheduler.java b/src/main/java/com/zy/third/task/OrderScheduler.java
index 33ce1cd..c357a4c 100644
--- a/src/main/java/com/zy/third/task/OrderScheduler.java
+++ b/src/main/java/com/zy/third/task/OrderScheduler.java
@@ -84,7 +84,6 @@
exdOutstockSource.setStatus(2);
exdOutstockSourceMapper.updateById(exdOutstockSource);
}
-
}
} catch (Exception e) {
log.error("璇诲彇鍑哄簱鍗曟嵁淇℃伅澶辫触锛歿},{}", exdOutstockSources, e.getMessage());
diff --git a/src/main/resources/mapper/asrs/Order1Mapper.xml b/src/main/resources/mapper/asrs/Order1Mapper.xml
new file mode 100644
index 0000000..b34e578
--- /dev/null
+++ b/src/main/resources/mapper/asrs/Order1Mapper.xml
@@ -0,0 +1,69 @@
+<?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.Order1Mapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.Order1">
+ <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" />
+
+ </resultMap>
+
+ <update id="updateSettle">
+ update man_order1
+ 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_order1
+ where 1=1
+ and settle = 4
+ and status = 1
+ order by create_time asc
+ </select>
+
+ <insert id="addToLogTable">
+ INSERT INTO man_order1_log SELECT * FROM man_order1 WHERE id = #{id}
+ </insert>
+
+</mapper>
diff --git a/src/main/resources/mapper/asrs/OrderDetl1Mapper.xml b/src/main/resources/mapper/asrs/OrderDetl1Mapper.xml
new file mode 100644
index 0000000..6303bad
--- /dev/null
+++ b/src/main/resources/mapper/asrs/OrderDetl1Mapper.xml
@@ -0,0 +1,232 @@
+<?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.OrderDetl1Mapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.OrderDetl1">
+ <id column="id" property="id" />
+ <result column="order_id" property="orderId" />
+ <result column="order_no" property="orderNo" />
+ <result column="anfme" property="anfme" />
+ <result column="work_qty" property="workQty" />
+ <result column="qty" property="qty" />
+ <result column="matnr" property="matnr" />
+ <result column="maktx" property="maktx" />
+ <result column="batch" property="batch" />
+ <result column="specs" property="specs" />
+ <result column="model" property="model" />
+ <result column="color" property="color" />
+ <result column="brand" property="brand" />
+ <result column="unit" property="unit" />
+ <result column="price" property="price" />
+ <result column="sku" property="sku" />
+ <result column="units" property="units" />
+ <result column="barcode" property="barcode" />
+ <result column="origin" property="origin" />
+ <result column="manu" property="manu" />
+ <result column="manu_date" property="manuDate" />
+ <result column="item_num" property="itemNum" />
+ <result column="safe_qty" property="safeQty" />
+ <result column="weight" property="weight" />
+ <result column="length" property="length" />
+ <result column="volume" property="volume" />
+ <result column="three_code" property="threeCode" />
+ <result column="supp" property="supp" />
+ <result column="supp_code" property="suppCode" />
+ <result column="be_batch" property="beBatch" />
+ <result column="dead_time" property="deadTime" />
+ <result column="dead_warn" property="deadWarn" />
+ <result column="source" property="source" />
+ <result column="inspect" property="inspect" />
+ <result column="danger" property="danger" />
+ <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" />
+
+ </resultMap>
+
+ <select id="selectItem" resultMap="BaseResultMap">
+ select * from man_order_detl1
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </select>
+
+ <select id="selectItemByOrderNo" resultMap="BaseResultMap">
+ select * from man_order_detl1
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <if test="batch!=null and batch!='' ">
+ and batch = #{batch}
+ </if>
+ </select>
+
+ <select id="selectWorkingDetls" resultMap="BaseResultMap">
+ select * from man_order_detl1
+ where 1=1
+ and order_id = #{orderId}
+ and qty < anfme
+ </select>
+
+ <sql id="pakOutPageCondition">
+ <if test="order_id!=null and order_id!='' ">
+ and mod.order_id like '%' + #{order_id} + '%'
+ </if>
+ <if test="matnr!=null and matnr!='' ">
+ and mod.matnr like '%' + #{matnr} + '%'
+ </if>
+ <if test="maktx!=null and maktx!='' ">
+ and mod.maktx like '%' + #{maktx} + '%'
+ </if>
+ <if test="batch!=null and batch!='' ">
+ and mod.batch like '%' + #{batch} + '%'
+ </if>
+ </sql>
+
+ <select id="getPakoutPage" resultMap="BaseResultMap">
+ select * from
+ (
+ select
+ ROW_NUMBER() over (order by mo.create_time desc) as row,
+ mod.*
+ from man_order_detl1 mod
+ inner join man_order1 mo on mod.order_id = mo.id
+ inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
+ where 1=1
+ and mo.settle <= 2
+ and mo.status = 1
+ and mdt.pakout = 1
+ <include refid="pakOutPageCondition"></include>
+ ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
+ </select>
+
+ <select id="reportERPOrderDetl" resultMap="BaseResultMap">
+ select d.* from man_order_detl1 d
+ LEFT JOIN man_order1 o on o.order_no = d.order_no
+ where 1=1
+ and o.doc_type = 81
+ and d.work_qty = d.qty
+ and d.qty = d.anfme
+ and d.qty > d.units
+ </select>
+
+ <select id="getPakoutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer">
+ select
+ count(1)
+ from man_order_detl1 mod
+ inner join man_order1 mo on mod.order_id = mo.id
+ inner join man_doc_type mdt on mo.doc_type = mdt.doc_id
+ where 1=1
+ and mo.settle <= 2
+ and mo.status = 1
+ and mdt.pakout = 1
+ <include refid="pakOutPageCondition"></include>
+ </select>
+
+ <update id="increase">
+ update man_order_detl1
+ set qty = qty + #{qty}
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
+ <update id="decrease">
+ update man_order_detl1
+ set work_qty = work_qty - #{qty}
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
+ <update id="modifyStatus">
+ update man_order_detl1
+ set status = #{status}
+ where 1=1
+ and order_id = #{orderId}
+ </update>
+
+ <insert id="addToLogTable">
+ INSERT INTO man_order_detl1_log SELECT * FROM man_order_detl1 WHERE id = #{id}
+ </insert>
+
+ <update id="increaseQtyByOrderNo">
+ update man_order_detl1
+ set qty = qty + #{qty}
+ where 1=1
+ and order_no = #{orderNo}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
+ <update id="increaseWorkQty">
+ update man_order_detl1
+ set work_qty = work_qty + #{workQty}
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
+ <update id="increaseWorkQty2">
+ update man_order_detl1
+ set work_qty = work_qty + #{workQty}
+ <if test="color!=null and color!='' ">
+ , color = #{color}
+ </if>
+ where 1=1
+ and order_id = #{orderId}
+ and matnr = #{matnr}
+ <choose>
+ <when test="batch != null and batch != ''">
+ and batch = #{batch}
+ </when>
+ <otherwise>
+ and (batch IS NULL OR batch = '')
+ </otherwise>
+ </choose>
+ </update>
+
+</mapper>
diff --git a/src/main/webapp/static/js/order/OrderDetlStockOut.js b/src/main/webapp/static/js/order/OrderDetlStockOut.js
new file mode 100644
index 0000000..9e18e47
--- /dev/null
+++ b/src/main/webapp/static/js/order/OrderDetlStockOut.js
@@ -0,0 +1,445 @@
+var locDetlLayerIdx;
+var locDetlData = [];
+
+
+
+function getCol() {
+ var cols = [
+ {field: 'count', align: 'center',title: '鍑哄簱鏁伴噺', edit:'text', width: 130, style:'color: blue;font-weight: bold'}
+ ,{field: 'anfme', align: 'center',title: '搴撳瓨鏁伴噺'}
+ ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+ ];
+ arrRemove(detlCols, 'field', 'anfme');
+ cols.push.apply(cols, detlCols);
+ cols.push({fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80})
+ return cols;
+}
+
+function getColbiao() {
+ var colsbiao = [
+ {type: 'checkbox'}
+ ,{type: 'numbers', title: '#'}
+ ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160}
+ ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160}
+ ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200}
+ ,{field: 'batch', align: 'center',title: '鎵瑰彿'}
+ ,{field: 'specs', align: 'center',title: '瑙勬牸'}
+ // ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'qty', align: 'center',title: '浣滀笟鏁伴噺', style: 'font-weight: bold'}
+ ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
+ // ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ // ,{field: 'model', align: 'center',title: '鍨嬪彿'}
+ ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+ ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
+ // ,{field: 'supplier', align: 'center',title: '渚涘簲鍟�'}
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate1', width: 200}
+ ];
+ return colsbiao;
+}
+
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).extend({
+ notice: 'notice/notice',
+}).use(['table','laydate', 'form', 'tableMerge', 'admin' , 'notice'], function() {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var form = layui.form;
+ var admin = layui.admin;
+ var tableMerge = layui.tableMerge;
+ var notice = layui.notice;
+ tableIns = table.render({
+ elem: '#chooseData',
+ headers: {token: localStorage.getItem('token')},
+ data: [],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ limit: 500,
+ cols: [getCol()],
+ done: function(res, curr, count) {
+ limit();
+ getOutBound();
+ }
+ });
+ tableInss = table.render({
+ elem: '#chooseDatas',
+ headers: {token: localStorage.getItem('token')},
+ data: [],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ limit: 500,
+ cols: [getColbiao()],
+ done: function(res, curr, count) {
+ limit();
+ getOutBound();
+ }
+ });
+ tableInss.reload({data:parent.da})
+ // 椤甸潰淇敼
+ table.on('edit(chooseData)', function (obj) {
+ let index = obj.tr.attr("data-index");
+ let data = locDetlData[index];
+ let modify = true;
+ if (obj.field === 'count'){
+ let vle = Number(obj.value);
+ if (isNaN(vle)) {
+ layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2});
+ modify = false;
+ } else {
+ if (vle <= 0) {
+ layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2});
+ modify = false;
+ }
+ if (vle > Number(data.anfme)) {
+ layer.msg("鍑哄簱鏁伴噺涓嶅緱澶т簬搴撳瓨鏁伴噺", {icon: 2});
+ modify = false;
+ }
+ }
+ }
+ if (modify) {
+ data[obj.field] = obj.value;
+ }
+ tableIns.reload({data: locDetlData});
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(chooseData)', function (obj) {
+
+ switch (obj.event) {
+ case 'outbound1':
+ if (locDetlData.length === 0) {
+ layer.msg("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+ console.log(locDetlData);
+ pakoutPreview(parent.da[0].id, locDetlData);
+ break;
+ }
+ });
+
+ function pakoutPreview(id, data) {
+ console.log("id=" + id)
+ let loadIndex = layer.load(2);
+ var da = {
+ "id": JSON.stringify(id),
+ "list": data
+ }
+ $.ajax({
+ url: baseUrl + "/out/pakout/preview/auth1",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(da),
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ var tableCache;
+ if (res.code === 200) {
+ layer.open({
+ type: 1
+ , title: false
+ , closeBtn: false
+ , offset: '50px'
+ , area: ['1200px', '700px']
+ , shade: 0.5
+ , shadeClose: false
+ , btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+ , btnAlign: 'c'
+ , moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ , content: $('#pakoutPreviewBox').html()
+ , success: function (layero, index) {
+ res.data.forEach((item, index) => {
+ console.log(`椤� ${index + 1}:`, item);
+ });
+ stoPreTabIdx = table.render({
+ elem: '#stoPreTab2',
+ data: res.data,
+ height: 520,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ // {type: 'checkbox', merge: ['orderNo']},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
+ {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+ {field: 'batch', title: '鎵瑰彿', align: 'center'},
+ {
+ field: 'anfme',
+ title: '鏁伴噺',
+ align: 'center',
+ width: 90,
+ style: 'font-weight: bold'
+ },
+ {
+ field: 'locNo',
+ title: '璐т綅',
+ align: 'center',
+ width: 100,
+ templet: '#locNoTpl'
+ },
+ {
+ field: 'staNos',
+ align: 'center',
+ title: '鍑哄簱绔�',
+ merge: ['locNo'],
+ templet: '#tbBasicTbStaNos'
+ },
+ {type: 'checkbox', merge: ['locNo']},
+ ]],
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ tableCache = tableData = table.cache.stoPreTab2;
+ }
+ });
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = tableCache[index];
+ for (let i = 0; i < tableCache.length; i++) {
+ if (tableCache[i].locNo === data.locNo) {
+ tableCache[i]['staNo'] = Number(obj.elem.value);
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ let stoPreTabData = layui.table.checkStatus('stoPreTab1').data;
+ if (stoPreTabData.length < 1) {
+ layer.msg("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {icon: 7});
+ return false;
+ }
+ modifySta(stoPreTabData);
+ });
+
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta(stoPreTabData) {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for (let i = 0; i < stoPreTabData.length; i++) {
+ let staNos = stoPreTabData[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val => {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: '璇烽�夋嫨绔欑偣',
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ let batchSta = Number(obj.field.batchSta);
+ let arr = [];
+ for (let j = 0; j < stoPreTabData.length; j++) {
+ for (let i = 0; i < tableCache.length; i++) {
+ if (tableCache[i].orderNo === stoPreTabData[j].orderNo
+ && tableCache[i].matnr === stoPreTabData[j].matnr
+ && tableCache[i].locNo === stoPreTabData[j].locNo) {
+ tableCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ }
+ }
+ stoPreTabIdx.reload({data: tableCache});
+ console.info("stoPreTabData"+stoPreTabData)
+ console.info("tableCache"+tableCache)
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab1] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab1] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx);
+ layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
+
+ }
+ , yes: function (index, layero) {
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(tableCache, index);
+ }
+ , btn2: function (index, layero) {
+ //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+
+ function pakout(tableCache, layerIndex) {
+ // let loadIndex = layer.load(2);
+ notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
+ console.info(tableCache);
+ $.ajax({
+ url: baseUrl + "/out/pakout2/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(tableCache),
+ method: 'POST',
+ success: function (res) {
+ notice.destroy();
+ if (res.code === 200) {
+ layer.close(layerIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableIns.reload({where: null});
+ tableInss.reload({where: null, page: {curr: 1}});
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ }
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(chooseData)', function(obj){
+ switch (obj.event) {
+ case 'remove':
+ let index = obj.tr.attr("data-index");
+ locDetlData.splice(index, 1);
+ tableIns.reload({data: locDetlData});
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(chooseDatas)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'tq':
+ outLocDetlQuery([data.matnr],[data.id],[data.enableQty])
+ break;
+ }
+ });
+
+ // 鎻愬彇搴撳瓨
+ function outLocDetlQuery(matnr,id,enableQty) {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ matnR=matnr;
+ ID=id;
+ anfme=enableQty;
+ locDetlLayerIdx = layer.open({
+ type: 2,
+ title: false,
+ closeBtn: false,
+ maxmin: false,
+ area: ['90%', '85%'],
+ shadeClose: true,
+ content: 'outLocDetlQuery1.html',
+ success: function(layero, index){
+ layer.close(loadIndex);
+ }
+ });
+ }
+
+ // 鑾峰彇鍑哄簱鍙�
+ function getOutBound(){
+ $.ajax({
+ url: baseUrl+"/available/take/site",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ var tpl = $("#takeSiteSelectTemplate").html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ $('#staNoSelect').append(html);
+ form.render('select');
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+
+
+ $(document).on('click','#mat-query', function () {
+ let loadIndex = layer.msg('璇锋眰涓�...', {icon: 16, shade: 0.01, time: false});
+ locDetlLayerIdx = layer.open({
+ type: 2,
+ title: false,
+ closeBtn: false,
+ maxmin: false,
+ area: ['90%', '85%'],
+ shadeClose: true,
+ content: 'outLocDetlQuery1.html',
+ success: function(layero, index){
+ layer.close(loadIndex);
+ }
+ });
+ })
+
+})
+
+// 娣诲姞琛ㄦ牸鏁版嵁
+function addTableData(data) {
+ console.log("data"+data)
+ for (var i=0;i<data.length;i++){
+ let pass = false;
+ for (var j=0;j<locDetlData.length;j++){
+ if (data[i].matnr === locDetlData[j].matnr && data[i].batch === locDetlData[j].batch && data[i].locNo$ === locDetlData[j].locNo$) {
+ pass = true;
+ break;
+ }
+ }
+ if (pass) {
+ data.splice(i--, 1);
+ } else {
+ data[i]["count"] = data[i]["anfme"];
+ }
+ }
+ locDetlData.push.apply(locDetlData, data);
+ tableIns.reload({data: locDetlData});
+ layer.close(locDetlLayerIdx);
+}
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index f1dab16..7051669 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -125,7 +125,6 @@
function pakoutPreview(ids) {
let loadIndex = layer.load(2);
- console.log("1111")
$.ajax({
url: baseUrl + "/out/pakout/preview/auth",
headers: {'token': localStorage.getItem('token')},
diff --git a/src/main/webapp/static/js/order/outAll.js b/src/main/webapp/static/js/order/outAll.js
index a8f5953..2f2f8b0 100644
--- a/src/main/webapp/static/js/order/outAll.js
+++ b/src/main/webapp/static/js/order/outAll.js
@@ -3,6 +3,7 @@
var matnR;
var id;
var anfme;
+var da
layui.config({
base: baseUrl + "/static/layui/lay/modules/"
}).extend({
@@ -93,13 +94,13 @@
table.on('toolbar(orderDetlTable)', function (obj) {
var checkStatus = table.checkStatus(obj.config.id).data;
- if (obj.event === 'pakoutPreview') { // 娣诲姞
+ if (obj.event === 'orderDetlPakoutPreview') { // 娣诲姞
if (checkStatus.length === 0) {
layer.msg('璇烽�夋嫨鑷冲皯涓�鏉″嚭搴撴槑缁�', {icon: 2});
return;
}
- pakoutPreview(checkStatus.map(function (d) {
- return d.id;
+ orderDetlPakoutPreview(checkStatus.map(function (d) {
+ return d;
}));
} else if (obj.event === 'del') { // 鍒犻櫎
var checkRows = table.checkStatus('sensorTable');
@@ -116,8 +117,8 @@
/* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
table.on('tool(orderDetlTable)', function (obj) {
- console.log(obj);
var data = obj.data;
+
switch (obj.event) {
// 鍑哄簱
case 'pakoutPreview':
@@ -149,8 +150,27 @@
});
}
+ function orderDetlPakoutPreview(ids) {
+ let loadIndex = layer.load(2);
+ // 鏋勫缓浼犻�掔殑鏁版嵁
+ da = ids
+ locDetlLayerIdx = layer.open({
+ type: 2,
+ title: false,
+ closeBtn: false,
+ maxmin: false,
+ area: ['90%', '85%'],
+ shadeClose: true,
+ content: 'OrderDetlStockOut.html',
+ success: function(layero, index){
+ layer.close(loadIndex);
+ }
+ });
+ }
+
function pakoutPreview(ids) {
let loadIndex = layer.load(2);
+ console.log("JSON.stringify(ids)"+JSON.stringify(ids))
$.ajax({
url: baseUrl + "/out/pakout2/preview/auth",
headers: {'token': localStorage.getItem('token')},
diff --git a/src/main/webapp/static/js/orderDetl/orderDetl1.js b/src/main/webapp/static/js/orderDetl/orderDetl1.js
new file mode 100644
index 0000000..fbd1d9c
--- /dev/null
+++ b/src/main/webapp/static/js/orderDetl/orderDetl1.js
@@ -0,0 +1,382 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 娓叉煋鎼滅储妯℃澘
+ $.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})
+ }
+ }
+ })
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#orderDetl',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/orderDetl1/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'checkbox'}
+ // ,{field: 'id', align: 'center',title: 'ID'}
+ ,{field: 'orderNo', align: 'center',title: '璁㈠崟缂栫爜',sort:true}
+ ,{field: 'danger$', align: 'center',title: '璁㈠崟绫诲瀷', hide: false}
+ ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜',sort:true}
+ ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О',sort:true}
+ ,{field: 'anfme', align: 'center',title: '鏁伴噺',sort:true}
+ ,{field: 'workQty', align: 'center',title: '宸ヤ綔鏁伴噺',sort:true}
+ ,{field: 'qty', align: 'center',title: '瀹屾垚鏁伴噺',sort:true}
+ // ,{field: 'model', align: 'center',title: '鍨嬪彿'}
+ ,{field: 'batch', align: 'center',title: '鎵瑰彿',sort:true, hide: false}
+ ,{field: 'brand', align: 'center',title: '浜х嚎',sort:true, hide: true}
+ ,{field: 'sku', align: 'center',title: '绛夌骇',sort:true, hide: true}
+ ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
+
+
+ ,{field: 'anfme$', align: 'center', title: '鐘舵��', templet: '#settleTpl', minWidth: 160, width: 160},
+ // ,{field: 'unitPrice', align: 'center',title: '鍗曚环'}
+ // ,{field: 'itemNum', align: 'center',title: '鍝侀」鏁�'}
+ // ,{field: 'count', align: 'center',title: '鏁伴噺'}
+ // ,{field: 'weight', align: 'center',title: '閲嶉噺'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ {field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{field: 'inspect', align: 'center',title: '涓婃姤娆℃暟', width: 100}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ 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) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(orderDetl)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(orderDetl)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'orderDetl': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/orderDetl1/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(orderDetl)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.id]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/orderDetl1/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#ymd\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#wrkDate\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#ioTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#crnStrTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#crnEndTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#plcStrTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#crnPosTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#refIotime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#errorTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#logErrTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/orderDetl1/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+ // 寮傚父
+ form.on('submit(abnormal)', function (data) {
+ pageCurr = 1;
+ tableReload(true);
+ // console.log("abnormal");
+ // $.ajax({
+ // url: baseUrl+"/orderDetl/abnormal",
+ // headers: {'token': localStorage.getItem('token')},
+ // method: 'GET',
+ // success: function (res) {
+ // layer.close(loadIndex);
+ // if (res.code === 200){
+ // layer.msg(res.msg, {icon: 1});
+ // tableReload();
+ // } else if (res.code === 403){
+ // top.location.href = baseUrl+"/";
+ // } else {
+ // layer.msg(res.msg, {icon: 2});
+ // }
+ // }
+ // })
+
+ });
+
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['createTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ if(child){
+ searchData["abnormal"] = 1;
+ }else {
+ searchData["abnormal"] = 0;
+ }
+
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/views/order/OrderDetlStockOut.html b/src/main/webapp/views/order/OrderDetlStockOut.html
new file mode 100644
index 0000000..0e1c5b5
--- /dev/null
+++ b/src/main/webapp/views/order/OrderDetlStockOut.html
@@ -0,0 +1,175 @@
+<!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">
+ <style>
+ html {
+ height: 100%;
+ padding: 10px;
+ background-color: #f1f1f1;
+ box-sizing: border-box;
+ }
+ body {
+ background-color: #fff;
+ border-radius: 5px;
+ box-shadow: 0 0 3px rgba(0,0,0,.3);
+ padding-bottom: 20px;
+ }
+
+ #staNoSpan {
+ text-align: center;
+ display: inline-block;
+ width: 100px;
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-form-select {
+ display: inline-block;
+ width: 150px;
+ height: 30px;
+ }
+ .layui-btn-container .layui-form-select.layui-form-selected {
+ display: inline-block;
+ width: 150px;
+ }
+ .layui-btn-container .layui-select-title input {
+ font-size: 13px;
+ }
+ .layui-btn-container .layui-anim.layui-anim-upbit dd {
+ font-size: 13px;
+ }
+
+ #btn-outbound {
+ margin-left: 60px;
+ display: none;
+ }
+
+ /*----------------------------------*/
+ .function-area {
+ padding: 20px 50px;
+ }
+ .function-btn {
+ font-size: 16px;
+ padding: 1px 2px;
+ width: 100px;
+ height: 50px;
+ border-color: #2b425b;
+ border-radius: 4px;
+ border-width: 2px;
+ background: none;
+ border-style: solid;
+ transition: 0.4s;
+ cursor: pointer;
+ letter-spacing: 1.5px;
+ }
+ .function-btn:hover {
+ background-color: #2b425b;
+ color: #fff;
+ }
+
+ #mat-query {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+
+<!-- 鍔熻兘鍖� -->
+<div class="function-area">
+ <table class="layui-table" id="chooseDatas" lay-filter="chooseDatas"></table>
+
+<!-- <button id="mat-query" class="function-btn">鎻愬彇搴撳瓨</button>-->
+</div>
+
+<hr>
+
+<!-- 琛ㄦ牸 -->
+<div style="padding-bottom: 5px; margin-bottom: 45px">
+
+ <!-- 澶撮儴 -->
+ <script type="text/html" id="toolbar">
+ <div class="layui-form">
+ <button class="layui-btn layui-btn-lg" id="btn-outbound1" lay-event="outbound1">鍚姩鍑哄簱</button>
+<!-- <div class="layui-btn-container">-->
+<!-- <!– 1.閫夋嫨鍑哄簱鍙� –>-->
+<!-- <span id="staNoSpan">鍑哄簱鍙o細</span>-->
+<!-- <select id="staNoSelect" lay-verify="required">-->
+<!-- <option value="">璇烽�夋嫨绔欑偣</option>-->
+<!-- </select>-->
+<!-- <!– 2.鍚姩鍑哄簱 –>-->
+<!-- -->
+<!-- </div>-->
+ </div>
+ </script>
+
+ <!-- 琛� -->
+ <script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">绉婚櫎</a>
+ </script>
+
+ <!-- 琛� -->
+ <script type="text/html" id="operate1">
+ {{#if (d.enableQty > 0){ }}
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="tq">鎻愬彇</a>
+ {{# } }}
+ </script>
+
+ <table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
+</div>
+<!-- 鍑哄簱棰勮 -->
+<script type="text/html" id="pakoutPreviewBox" style="display: none">
+ <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
+ <span style="font-size: large; font-weight: bold">鍑哄簱棰勮</span>
+ </div>
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px">
+ <table id="stoPreTab2" lay-filter="stoPreTab"></table>
+ </div>
+ <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="batchModifySta" lay-submit style="display: block;float: right;margin-right: 1rem">
+ 鎵归噺淇敼
+ </button>
+ </div>
+</script>
+
+<script type="text/html" id="staBatchSelectDialog">
+ <form class="layui-form" style="padding: 25px 50px 30px 50px;text-align: center">
+ <select id="batchSelectStaBox" name="batchSta" lay-vertype="tips" lay-verify="required" required="">
+ </select>
+ <button style="margin-top: 30px" class="layui-btn" lay-filter="staBatchSelectConfirm" lay-submit="">纭畾</button>
+ </form>
+</script>
+
+<script type="text/html" id="tbBasicTbStaNos">
+ <div class="ew-select-fixed">
+ <select class="order-sta-select" lay-filter="tbBasicTbStaNos">
+ {{#if (d.staNos!=null) {}}
+ {{# for(let i=0; i<d.staNos.length; i++) { }}
+ <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option>
+ {{# } }}
+ {{# } }}
+ </select>
+ </div>
+</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/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/order/OrderDetlStockOut.js" charset="utf-8"></script>
+
+<script type="text/template" id="takeSiteSelectTemplate">
+ {{#each data}}
+ <option value="{{siteId}}">{{desc}}</option>
+ {{/each}}
+</script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/order/outAll.html b/src/main/webapp/views/order/outAll.html
index 453d1d7..3d07eb0 100644
--- a/src/main/webapp/views/order/outAll.html
+++ b/src/main/webapp/views/order/outAll.html
@@ -146,7 +146,7 @@
<!-- </select>-->
<!-- </div>-->
<!-- </div>-->
- <button class="layui-btn layui-btn-sm layui-btn-danger btn-pakoutPreview" id="btn-pakoutPreview" lay-event="pakoutPreview">鎵归噺鍑哄簱</button>
+ <button class="layui-btn layui-btn-sm layui-btn-danger btn-pakoutPreview" id="btn-pakoutPreview" lay-event="orderDetlPakoutPreview">鎵归噺鍑哄簱</button>
</script>
diff --git a/src/main/webapp/views/order/outLocDetlQuery1.html b/src/main/webapp/views/order/outLocDetlQuery1.html
new file mode 100644
index 0000000..4fc00cf
--- /dev/null
+++ b/src/main/webapp/views/order/outLocDetlQuery1.html
@@ -0,0 +1,647 @@
+<!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">
+ <style>
+ body {
+ }
+
+ .layui-table-box {
+ border-right: 1px solid #9F9F9F;
+ border-left: 1px solid #9F9F9F;
+ }
+
+ #search-box {
+ padding: 30px 0 20px 0;
+ }
+
+ #search-box .layui-inline:first-child {
+ margin-left: 30px;
+ }
+
+ #search-box .layui-inline {
+ margin-right: 5px;
+ }
+
+ #data-search-btn {
+ margin-left: 10px;
+ display: inline-block;
+ }
+
+ #data-search-btn.layui-btn-container .layui-btn {
+ margin-right: 20px;
+ }
+ .fixed-header {
+ position: sticky;
+ top: 0;
+ z-index: 999;
+ padding: 25px;
+ line-height: 22px;
+ background-color: #393D49;
+ color: #fff;
+ font-weight: 300;
+ }
+ .total-count {
+ display: inline-block;
+ margin-left: 20px;
+ padding: 5px 15px;
+ background: #1E9FFF;
+ border-radius: 4px;
+ font-weight: bold;
+ color: #fff;
+ }
+
+ /* 涓鸿鍗曟暟閲忓崟鐙缃牱寮� */
+ #orderTotal {
+ color: #5FB878; /* 缁胯壊琛ㄧず璁㈠崟鏁伴噺 */
+ font-weight: bold;
+ }
+
+ /* 宸查�夋暟閲忔甯告牱寮� */
+ #selectedTotal {
+ color: #fff;
+ font-weight: bold;
+ }
+
+ /* 宸查�夋暟閲忚秴杩囪鍗曟暟閲忔椂鐨勮鍛婃牱寮� */
+ .over-limit #selectedTotal {
+ color: #FF5722 !important; /* 绾㈣壊璀﹀憡 */
+ }
+ </style>
+</head>
+<body>
+<div class="fixed-header">
+ <span style="font-size: large; font-weight: bold">鎻愬彇搴撳瓨鍟嗗搧</span>
+ <!-- 淇敼锛氳鍗曟暟閲忎娇鐢ㄧ浉鍚屾牱寮� -->
+ <span class="total-count">璁㈠崟鏁伴噺: <span id="orderTotal">0</span></span>
+ <span class="total-count">宸查�夋暟閲�: <span id="selectedTotal">0</span></span>
+</div>
+<!-- 鎼滅储鏍� -->
+<fieldset class="layui-elem-field site-demo-button" style="margin: 20px;">
+ <legend>鎼滅储鏍�</legend>
+ <!-- 鎼滅储鏍� -->
+ <div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" id="matnr" type="text" name="matnr" placeholder="鍟嗗搧缂栧彿"
+ autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="璇疯緭鍏�" autocomplete="off"
+ style="display: none">
+ <input id="crnNo$" 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="basCrnpQueryBycrnNo"
+ onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect"
+ onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ </div>
+ </div>
+
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="orderNo" placeholder="璁㈠崟缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="brand" placeholder="鐢熶骇绾�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="sku" placeholder="绛夌骇" autocomplete="off">
+ </div>
+ </div>
+ <!-- 鏃ユ湡鑼冨洿 -->
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="appe_time" type="text"
+ placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">
+ 鎼滅储
+ </button>
+ </div>
+ </div>
+</fieldset>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn" id="btn-confirm" lay-event="confirm" style="">鎻愬彇</button>
+ </div>
+</script>
+
+<div class="layui-form">
+ <table class="layui-hide" id="stockOut" lay-filter="stockOut"></table>
+</div>
+
+<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/handlebars/handlebars-v4.5.3.js"></script>
+
+</body>
+
+<script type="text/html" id="pakoutPreviewBox" style="display: none">
+ <div style="padding: 25px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">
+ <span style="font-size: large; font-weight: bold">鍑哄簱棰勮</span>
+ </div>
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px">
+ <table id="stoPreTab1" lay-filter="stoPreTab1"></table>
+ </div>
+ <button class="layui-btn layui-btn-primary layui-border-black layui-btn-sm" lay-filter="batchModifySta"
+ lay-submit style="display: block;float: right;margin-right: 1rem">
+ 鎵归噺淇敼
+ </button>
+ </div>
+</script>
+
+<script type="text/html" id="tbBasicTbStaNos">
+ <div class="ew-select-fixed">
+ <select class="order-sta-select" lay-filter="tbBasicTbStaNos">
+ {{#if (d.staNos!=null) {}}
+ {{# for(let i=0; i
+ <d.staNos.length
+ ; i++) { }}
+ <option value="{{d.staNos[i]}}">{{d.staNos[i]}}</option>
+ {{# } }}
+ {{# } }}
+ </select>
+ </div>
+</script>
+
+<script>
+ function getCol() {
+ var cols = [
+ {type: 'checkbox', merge: ['locNo']}
+ , {field: 'locNo', align: 'center', title: '搴撲綅鍙�', merge: true, style: 'font-weight: bold'}
+ // ,{field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+ ];
+ cols.push.apply(cols, detlCols);
+ cols.push({field: 'appeUser$', align: 'center', title: '鍒涘缓浜哄憳', hide: true}
+ , {field: 'appeTime$', align: 'center', title: '鍒涘缓鏃堕棿'})
+ return cols;
+ }
+
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).extend({
+ notice: 'notice/notice',
+ })
+ .use(['table', 'notice', 'laydate', 'form', 'admin', 'tableMerge'], function () {
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+ var tableMerge = layui.tableMerge;
+ var notice = layui.notice;
+ var dataSource = [];
+
+ $('#matnr').val(parent.matnR);
+ $('#anfme').val(parent.anfme);
+ var id = parent.ID[0];
+
+ // 瀛樺偍褰撳墠閫変腑鐨勬暟閲忓拰璁㈠崟鎬绘暟
+ var selectedTotal = 0;
+ var orderTotal = parseFloat(parent.anfme) || 0;
+
+ // 鏇存柊鏄剧ず閫変腑鐨勬暟閲�
+ function updateSelectedTotal() {
+ $('#selectedTotal').text(selectedTotal);
+ $('#orderTotal').text(orderTotal); // 鏇存柊璁㈠崟鏁伴噺鏄剧ず
+
+ // 濡傛灉閫変腑鐨勬暟閲忚秴杩囪鍗曟暟閲忥紝鏄剧ず璀﹀憡鏍峰紡
+ if (selectedTotal > orderTotal) {
+ $('#selectedTotal').parent().addClass('over-limit');
+ } else {
+ $('#selectedTotal').parent().removeClass('over-limit');
+ }
+
+ // 濡傛灉璁㈠崟鏁伴噺涓�0锛屾樉绀哄畬鎴愮姸鎬�
+ if (orderTotal <= 0) {
+ $('#orderTotal').parent().addClass('order-completed');
+ layer.msg('璁㈠崟宸插畬鎴愶紒', {icon: 1, time: 3000});
+
+ } else {
+ $('#orderTotal').parent().removeClass('order-completed');
+ }
+ }
+
+ // 鏁版嵁娓叉煋
+ locDetlTableIns = table.render({
+ elem: '#stockOut',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl + '/stock/out/list/auth',
+ where: {matnr: parent.matnR[0]},
+ page: true,
+ limits: [16, 30, 50, 100, 200, 500],
+ limit: 16,
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ 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) {
+ tableMerge.render(this);
+ if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ }
+ // 鍒濆鍖栭�変腑鏁伴噺
+ selectedTotal = 0;
+ updateSelectedTotal();
+ }
+ });
+
+ // 鐩戝惉澶嶉�夋閫夋嫨浜嬩欢
+ table.on('checkbox(stockOut)', function(obj){
+ var data = obj.data;
+ var checked = obj.checked;
+ var type = obj.type;
+
+ if (type === 'one') {
+ // 鍗曚釜閫夋嫨
+ if (checked) {
+ selectedTotal += parseFloat(data.anfme || 0);
+ } else {
+ selectedTotal -= parseFloat(data.anfme || 0);
+ }
+ } else if (type === 'all') {
+ // 鍏ㄩ��
+ var checkStatus = table.checkStatus('stockOut');
+ if (checked) {
+ // 璁$畻褰撳墠椤垫墍鏈夋暟鎹殑鏁伴噺鎬诲拰
+ checkStatus.data.forEach(function(item){
+ selectedTotal += parseFloat(item.anfme || 0);
+ });
+ } else {
+ // 鍙栨秷鍏ㄩ�夛紝鍑忓幓褰撳墠椤垫墍鏈夋暟鎹殑鏁伴噺鎬诲拰
+ checkStatus.data.forEach(function(item){
+ selectedTotal -= parseFloat(item.anfme || 0);
+ });
+ }
+ }
+
+ updateSelectedTotal();
+
+ // 濡傛灉閫変腑鐨勬暟閲忚秴杩囪鍗曟暟閲忥紝缁欏嚭鎻愮ず
+ if (selectedTotal > orderTotal) {
+ layer.msg('璀﹀憡锛氶�変腑鐨勬暟閲忓凡瓒呰繃璁㈠崟鏁伴噺锛�', {icon: 2, time: 3000});
+ }
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(stockOut)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ var data = checkStatus.data;
+ var dataList = []
+ for (var j = 0; j < data.length; j++) {
+ var locno = data[j].locNo
+ for(var i = 0;i < dataSource.length; i++) {
+ if (dataSource[i].locNo === locno) {
+ dataList.push(dataSource[i])
+ }
+ }
+ }
+ console.log("dataList"+dataList)
+ switch(obj.event) {
+ case 'confirm':
+ if (data.length === 0){
+ layer.msg("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+ parent.addTableData(data);
+ break;
+ }
+ // var checkStatus = table.checkStatus(obj.config.id);
+ // var data = checkStatus.data;
+ // switch (obj.event) {
+ // case 'confirm':
+ // if (data.length === 0) {
+ // layer.msg("璇烽�夋嫨鏁版嵁");
+ // return;
+ // }
+ // // 妫�鏌ラ�変腑鐨勬暟閲忔槸鍚﹁秴杩囪鍗曟暟閲�
+ // if (selectedTotal > orderTotal) {
+ // layer.confirm('閫変腑鐨勬暟閲忓凡瓒呰繃璁㈠崟鏁伴噺锛屾槸鍚︾户缁紵', {
+ // icon: 3,
+ // title: '璀﹀憡'
+ // }, function(index){
+ // layer.close(index);
+ // pakoutPreview(id, data);
+ // });
+ // } else {
+ // pakoutPreview(id, data);
+ // }
+ // break;
+ // }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ tableReload();
+ });
+
+ layDate.render({
+ elem: '.layui-laydate-range'
+ , type: 'datetime'
+ , range: true
+ });
+
+ function tableReload() {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function () {
+ searchData[this.name] = this.value;
+ });
+ locDetlTableIns.reload({
+ where: searchData,
+ });
+ // 閲嶇疆閫変腑鏁伴噺
+ selectedTotal = 0;
+ updateSelectedTotal();
+ }
+
+ function pakoutPreview(id, data) {
+ console.log("id=" + id)
+ let loadIndex = layer.load(2);
+ var da = {
+ "id": JSON.stringify(id),
+ "list": data
+ }
+ $.ajax({
+ url: baseUrl + "/out/pakout/preview/auth1",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(da),
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ var tableCache;
+ if (res.code === 200) {
+ layer.open({
+ type: 1
+ , title: false
+ , closeBtn: false
+ , offset: '50px'
+ , area: ['1200px', '700px']
+ , shade: 0.5
+ , shadeClose: false
+ , btn: ['绔嬪嵆鍑哄簱', '绋嶅悗澶勭悊']
+ , btnAlign: 'c'
+ , moveType: 1 //鎷栨嫿妯″紡锛�0鎴栬��1
+ , content: $('#pakoutPreviewBox').html()
+ , success: function (layero, index) {
+ res.data.forEach((item, index) => {
+ console.log(`椤� ${index + 1}:`, item);
+ });
+ stoPreTabIdx = table.render({
+ elem: '#stoPreTab1',
+ data: res.data,
+ height: 520,
+ page: false,
+ limit: Number.MAX_VALUE,
+ cellMinWidth: 100,
+ cols: [[
+ // {type: 'checkbox', merge: ['orderNo']},
+ {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'},
+ {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350},
+ {field: 'batch', title: '鎵瑰彿', align: 'center'},
+ {
+ field: 'anfme',
+ title: '鏁伴噺',
+ align: 'center',
+ width: 90,
+ style: 'font-weight: bold'
+ },
+ {
+ field: 'locNo',
+ title: '璐т綅',
+ align: 'center',
+ width: 100,
+ templet: '#locNoTpl'
+ },
+ {
+ field: 'staNos',
+ align: 'center',
+ title: '鍑哄簱绔�',
+ merge: ['locNo'],
+ templet: '#tbBasicTbStaNos'
+ },
+ {type: 'checkbox', merge: ['locNo']},
+ ]],
+ done: function (res) {
+ tableMerge.render(this);
+ $('.layui-table-body.layui-table-main').css("overflow", "auto");
+ tableCache = tableData = table.cache.stoPreTab1;
+ }
+ });
+ // 淇敼鍑哄簱绔�
+ form.on('select(tbBasicTbStaNos)', function (obj) {
+ let index = obj.othis.parents('tr').attr("data-index");
+ let data = tableCache[index];
+ for (let i = 0; i < tableCache.length; i++) {
+ if (tableCache[i].locNo === data.locNo) {
+ tableCache[i]['staNo'] = Number(obj.elem.value);
+ }
+ }
+ obj.othis.children().find("input").css("color", "blue");
+ return false;
+ });
+ // 鎵归噺淇敼鍑哄簱绔�
+ form.on('submit(batchModifySta)', function () {
+ let stoPreTabData = layui.table.checkStatus('stoPreTab1').data;
+ if (stoPreTabData.length < 1) {
+ layer.msg("璇疯嚦灏戦�夋嫨涓�鏉′互涓婂悎骞舵暟鎹�", {icon: 7});
+ return false;
+ }
+ modifySta(stoPreTabData);
+ });
+
+ // 鎵归噺淇敼鍑哄簱绔� - 绔欑偣閫夋嫨
+ function modifySta(stoPreTabData) {
+ // 鍑哄簱绔欏彇浜ら泦
+ let staBatchSelectVal = [];
+ for (let i = 0; i < stoPreTabData.length; i++) {
+ let staNos = stoPreTabData[i].staNos;
+ if (staNos !== null) {
+ if (staBatchSelectVal.length === 0) {
+ staBatchSelectVal = staNos;
+ } else {
+ staBatchSelectVal = staBatchSelectVal.filter(val => {
+ return new Set(staNos).has(val)
+ }
+ )
+ }
+ }
+ }
+ if (staBatchSelectVal.length === 0) {
+ layer.msg("鍑哄簱绔欐病鏈変氦闆嗭紝鏃犳硶鎵归噺淇敼", {icon: 2});
+ return;
+ }
+ admin.open({
+ type: 1,
+ area: '300px',
+ offset: 'auto',
+ title: '璇烽�夋嫨绔欑偣',
+ content: $('#staBatchSelectDialog').html(),
+ success: function (layero, ddIndex) {
+ // 娓叉煋涓嬫媺妗�
+ let template = Handlebars.compile($('#batchStaSelectTpl').html());
+ $('#batchSelectStaBox').html(template({list: staBatchSelectVal}));
+ // 纭
+ form.on('submit(staBatchSelectConfirm)', function (obj) {
+ let loadIdx = layer.load(2);
+ let batchSta = Number(obj.field.batchSta);
+ let arr = [];
+ for (let j = 0; j < stoPreTabData.length; j++) {
+ for (let i = 0; i < tableCache.length; i++) {
+ if (tableCache[i].orderNo === stoPreTabData[j].orderNo
+ && tableCache[i].matnr === stoPreTabData[j].matnr
+ && tableCache[i].locNo === stoPreTabData[j].locNo) {
+ tableCache[i]['staNo'] = batchSta;
+ arr.push(i);
+ }
+ }
+ }
+ stoPreTabIdx.reload({data: tableCache});
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab1] tr[data-index="' + item + '"] .order-sta-select').val(batchSta);
+ });
+ layui.form.render('select');
+ arr.forEach(item => {
+ $('div[lay-id=stoPreTab1] tr[data-index="' + item + '"] .layui-select-title').find("input").css("color", "blue");
+ });
+ layer.close(loadIdx);
+ layer.close(ddIndex);
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ },
+ })
+ }
+
+ }
+ , yes: function (index, layero) {
+ //鎸夐挳銆愮珛鍗冲嚭搴撱�戠殑鍥炶皟
+ pakout(tableCache, index);
+ }
+ , btn2: function (index, layero) {
+ //鎸夐挳銆愮◢鍚庡鐞嗐�戠殑鍥炶皟
+ layer.close(index)
+ //return false 寮�鍚浠g爜鍙姝㈢偣鍑昏鎸夐挳鍏抽棴
+ }
+ });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ }
+
+ function pakout(tableCache, layerIndex) {
+ // let loadIndex = layer.load(2);
+ notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
+ $.ajax({
+ url: baseUrl + "/out/pakout/auth",
+ headers: {'token': localStorage.getItem('token')},
+ contentType: 'application/json;charset=UTF-8',
+ data: JSON.stringify(tableCache),
+ method: 'POST',
+ success: function (res) {
+ notice.destroy();
+ if (res.code === 200) {
+ layer.close(layerIndex);
+
+ console.log("orderTotal="+orderTotal);
+ // 鎵e噺璁㈠崟鏁伴噺
+ orderTotal = Math.max(0, orderTotal - selectedTotal);
+ console.log("selectedTotal="+selectedTotal);
+ console.log("orderTotal-selectedTotal="+orderTotal);
+
+ layer.msg('鍑哄簱鎴愬姛锛佹墸鍑� ' + selectedTotal + ' 鏁伴噺', {icon: 1, time: 1000}, function(){
+ // 鍒锋柊褰撳墠椤甸潰琛ㄦ牸
+ locDetlTableIns.reload({
+ where: {matnr: parent.matnR[0]},
+ page: {curr: 1}
+ });
+
+ // 鏇存柊鏄剧ず
+ updateSelectedTotal();
+
+ // 濡傛灉鏈夌埗椤甸潰琛ㄦ牸涔熼渶瑕佸埛鏂�
+ try {
+ if (parent.insTb) {
+ parent.insTb.close();
+ }
+ if (parent.insTb2) {
+ parent.insTb2.reload({page: {curr: 1}});
+ }
+ // 鏇存柊鐖堕〉闈㈢殑璁㈠崟鏁伴噺锛堝鏋滈渶瑕侊級
+ if (parent.updateOrderTotal) {
+ parent.updateOrderTotal(orderTotal);
+ }
+ } catch (e) {
+ console.log('鐖堕〉闈㈣〃鏍煎埛鏂板け璐�:', e);
+ }
+ });
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ }
+
+ window.pakoutPreview = pakoutPreview;
+ })
+</script>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/orderDetl/orderDetl1.html b/src/main/webapp/views/orderDetl/orderDetl1.html
new file mode 100644
index 0000000..ce9f588
--- /dev/null
+++ b/src/main/webapp/views/orderDetl/orderDetl1.html
@@ -0,0 +1,290 @@
+<!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">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="order_no" placeholder="璁㈠崟缂栧彿"
+ autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="matnr" placeholder="鐗╂枡缂栫爜"
+ autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="batch" placeholder="鎵瑰彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <select name="be_batch" id="docType-query">
+ </select>
+ </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"> 
+ <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>
+ <button class="layui-btn icon-btn" lay-filter="abnormal" 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="settleTpl">
+ <span name="anfme"
+ {{# if( d.qty=== d.anfme){ }}
+ class="layui-badge layui-badge-green"
+ {{# }else if(d.workQty=== 0){ }}
+ class="layui-badge layui-badge-yellow"
+ {{# }else if(d.anfme> d.qty){ }}
+ class="layui-badge layui-badge-blue"
+ {{# }else if(d.anfme < d.qty){ }}
+ class="layui-badge layui-badge-red"
+ {{# }else if(d.workQty> 0){ }}
+ class="layui-badge layui-badge-blue"
+ {{# }else if(d.source === 6){ }}
+ class="layui-badge layui-badge-gray"
+ {{# } }}
+ >{{d.anfme$}}</span>
+</script>
+
+<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/handlebars/handlebars-v4.5.3.js"></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/orderDetl1.js" charset="utf-8"></script>
+
+<script type="text/template" id="docTypeTpl">
+ <option value="">閫夋嫨绫诲瀷</option>
+ {{#each records}}
+ <option value="{{docId}}">{{docName}}</option>
+ {{/each}}
+</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="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="workQty" placeholder="璇疯緭鍏ヨ鏍�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瀹屾垚鏁伴噺: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="qty" 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/pakStore/locDetlQuery.html b/src/main/webapp/views/pakStore/locDetlQuery.html
index 1f2f9af..bfa10dd 100644
--- a/src/main/webapp/views/pakStore/locDetlQuery.html
+++ b/src/main/webapp/views/pakStore/locDetlQuery.html
@@ -188,7 +188,6 @@
}
}
}
- console.log(dataList)
switch(obj.event) {
case 'confirm':
--
Gitblit v1.9.1