提交冲突, 解决冲突

This commit is contained in:
3038696639@qq.com 2019-10-14 21:23:30 +08:00
commit 7379e4aa77
45 changed files with 3345 additions and 64 deletions

View file

@ -114,4 +114,17 @@ public class CustomerController {
public void queryCustomerByIdAndInfo(InputObject inputObject, OutputObject outputObject) throws Exception{
customerService.queryCustomerByIdAndInfo(inputObject, outputObject);
}
/**
* 获取客户列表信息展示为下拉框
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/CustomerController/queryCustomerListToSelect")
@ResponseBody
public void queryCustomerListToSelect(InputObject inputObject, OutputObject outputObject) throws Exception{
customerService.queryCustomerListToSelect(inputObject, outputObject);
}
}

View file

@ -0,0 +1,107 @@
package com.skyeye.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.service.PurchaseOrderService;
/**
* 采购管理
* @author Lenovo
*
*/
@Controller
public class PurchaseOrderController {
@Autowired
private PurchaseOrderService purchaseOrderService;
/**
* 获取采购单列表信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/queryPurchaseOrderToList")
@ResponseBody
public void queryPurchaseOrderToList(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.queryPurchaseOrderToList(inputObject, outputObject);
}
/**
* 新增采购单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/insertPurchaseOrderMation")
@ResponseBody
public void insertPurchaseOrderMation(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.insertPurchaseOrderMation(inputObject, outputObject);
}
/**
* 删除采购单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/deletePurchaseOrderMationById")
@ResponseBody
public void deletePurchaseOrderMationById(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.deletePurchaseOrderMationById(inputObject, outputObject);
}
/**
* 采购单信息编辑回显
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/queryPurchaseOrderToEditById")
@ResponseBody
public void queryPurchaseOrderToEditById(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.queryPurchaseOrderToEditById(inputObject, outputObject);
}
/**
* 编辑采购单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/editPurchaseOrderMationById")
@ResponseBody
public void editPurchaseOrderMationById(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.editPurchaseOrderMationById(inputObject, outputObject);
}
/**
* 采购单信息提交审核
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/editPurchaseOrderStateToSubExamineById")
@ResponseBody
public void editPurchaseOrderStateToSubExamineById(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.editPurchaseOrderStateToSubExamineById(inputObject, outputObject);
}
/**
* 采购单信息审核
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/PurchaseOrderController/editPurchaseOrderStateToExamineById")
@ResponseBody
public void editPurchaseOrderStateToExamineById(InputObject inputObject, OutputObject outputObject) throws Exception{
purchaseOrderService.editPurchaseOrderStateToExamineById(inputObject, outputObject);
}
}

View file

@ -0,0 +1,42 @@
package com.skyeye.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.service.StatisticsService;
@Controller
public class StatisticsController {
@Autowired
private StatisticsService statisticsService;
/**
* 入库明细
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/StatisticsController/queryWarehousingDetails")
@ResponseBody
public void queryWarehousingDetails(InputObject inputObject, OutputObject outputObject) throws Exception{
statisticsService.queryWarehousingDetails(inputObject, outputObject);
}
/**
* 出库明细
* @param inputObject
* @param outputObject
* @throws Exception
*/
@RequestMapping("/post/StatisticsController/queryOutgoingDetails")
@ResponseBody
public void queryOutgoingDetails(InputObject inputObject, OutputObject outputObject) throws Exception{
statisticsService.queryOutgoingDetails(inputObject, outputObject);
}
}

View file

@ -33,4 +33,6 @@ public interface CustomerDao {
public Map<String, Object> queryCustomerByEnabled(Map<String, Object> params) throws Exception;
public Map<String, Object> queryCustomerByIdAndInfo(Map<String, Object> params) throws Exception;
public List<Map<String, Object>> queryCustomerListToSelect(Map<String, Object> params) throws Exception;
}

View file

@ -9,4 +9,6 @@ public interface ErpCommonDao {
public List<Map<String, Object>> queryDepotItemDetailsMationById(Map<String, Object> bean) throws Exception;
public Map<String, Object> queryOddNumberBySubType(Map<String, Object> bean) throws Exception;
}

View file

@ -15,6 +15,4 @@ public interface OtherWareHousDao {
public int insertOtherWareHousChildMation(List<Map<String, Object>> entitys) throws Exception;
public Map<String, Object> queryOddNumberBySubType(Map<String, Object> bean) throws Exception;
}

View file

@ -0,0 +1,34 @@
package com.skyeye.dao;
import java.util.List;
import java.util.Map;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
public interface PurchaseOrderDao {
public List<Map<String, Object>> queryPurchaseOrderToList(Map<String, Object> params, PageBounds pageBounds) throws Exception;
public Map<String, Object> queryMaterialsById(Map<String, Object> bean) throws Exception;
public int insertPurchaseOrderMation(Map<String, Object> map) throws Exception;
public int insertPurchaseOrderChildMation(List<Map<String, Object>> entitys) throws Exception;
public Map<String, Object> queryPurchaseOrderStateById(Map<String, Object> map) throws Exception;
public int deletePurchaseOrderMationById(Map<String, Object> map) throws Exception;
public int deletePurchaseOrderNormsMationById(Map<String, Object> map) throws Exception;
public Map<String, Object> queryPurchaseOrderToEditById(Map<String, Object> map) throws Exception;
public List<Map<String, Object>> queryPurchaseOrderNormsToEditById(Map<String, Object> map) throws Exception;
public int editPurchaseOrderMationById(Map<String, Object> depothead) throws Exception;
public int editPurchaseOrderStateToSubExamineById(Map<String, Object> map) throws Exception;
public int editPurchaseOrderStateToExamineById(Map<String, Object> map) throws Exception;
}

View file

@ -0,0 +1,14 @@
package com.skyeye.dao;
import java.util.List;
import java.util.Map;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
public interface StatisticsDao {
public List<Map<String, Object>> queryWarehousingDetails(Map<String, Object> params, PageBounds pageBounds) throws Exception;
public List<Map<String, Object>> queryOutgoingDetails(Map<String, Object> params, PageBounds pageBounds) throws Exception;
}

View file

@ -26,7 +26,9 @@ public class ErpConstants {
OUT_IS_PURCHASE_RETURNS("采购退货", "CGTH", "6"),
OUT_IS_ALLOCATION("调拨", "DBCK", "7"),
OUT_IS_RETAIL("零售", "LSCK", "8"),
OUT_IS_OTHERS("其他出库", "QTCK", "9");
OUT_IS_OTHERS("其他出库", "QTCK", "9"),
//采购单
PURCHASE_ORDER("采购订单", "CGDD", "10");
private String nameCode;
private String code;

View file

@ -0,0 +1,50 @@
package com.skyeye.erp.util;
import java.util.HashMap;
import java.util.Map;
import com.skyeye.common.util.SpringUtils;
import com.skyeye.common.util.ToolUtil;
import com.skyeye.dao.ErpCommonDao;
import com.skyeye.jedis.JedisClientService;
/**
* 获取订单编号
* @author 卫志强
*
*/
public class ErpOrderNum {
/**
* 根据类型获取订单编号
* @param subType
* @return
* @throws Exception
*/
public String getOrderNumBySubType(String userId, String subType) throws Exception{
//获取在redis中的key
String key = ErpConstants.getSysDepotHeadRedisKeyById(userId, subType);
JedisClientService jedisClient = SpringUtils.getBean(JedisClientService.class);
if(ToolUtil.isBlank(jedisClient.get(key))){//若缓存中无值
Map<String, Object> bean = new HashMap<>();
bean.put("subType", subType);
bean.put("userId", userId);
ErpCommonDao erpCommonDao = SpringUtils.getBean(ErpCommonDao.class);
bean = erpCommonDao.queryOddNumberBySubType(bean); //从数据库中查询
if(bean == null || bean.isEmpty()){
jedisClient.set(key, "1");//将从数据库中查来的内容存到缓存中
}else{
jedisClient.set(key, bean.get("num").toString());//将从数据库中查来的内容存到缓存中
}
}
//获取当前最大的值
String num = jedisClient.get(key);
//1为int类型0代表前面要补的字符 10代表字符串长度,d表示参数为整数类型
//类型 + 年月日 + num
String orderNum = ErpConstants.DepoTheadSubType.getClockInName(subType) + Tool.getTimeISDayStr() + String.format("%010d", Integer.parseInt(num));
//redis缓存+1
jedisClient.set(key, NumAdd.BigNumAdd(jedisClient.get(key), "1"));
return orderNum;
}
}

View file

@ -24,4 +24,6 @@ public interface CustomerService {
public void editCustomerByNotEnabled(InputObject inputObject, OutputObject outputObject) throws Exception;
public void queryCustomerByIdAndInfo(InputObject inputObject, OutputObject outputObject) throws Exception;
public void queryCustomerListToSelect(InputObject inputObject, OutputObject outputObject) throws Exception;
}

View file

@ -0,0 +1,22 @@
package com.skyeye.service;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
public interface PurchaseOrderService {
public void queryPurchaseOrderToList(InputObject inputObject, OutputObject outputObject) throws Exception;
public void insertPurchaseOrderMation(InputObject inputObject, OutputObject outputObject) throws Exception;
public void deletePurchaseOrderMationById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void queryPurchaseOrderToEditById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void editPurchaseOrderMationById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void editPurchaseOrderStateToSubExamineById(InputObject inputObject, OutputObject outputObject) throws Exception;
public void editPurchaseOrderStateToExamineById(InputObject inputObject, OutputObject outputObject) throws Exception;
}

View file

@ -0,0 +1,12 @@
package com.skyeye.service;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
public interface StatisticsService {
public void queryWarehousingDetails(InputObject inputObject, OutputObject outputObject) throws Exception;
public void queryOutgoingDetails(InputObject inputObject, OutputObject outputObject) throws Exception;
}

View file

@ -180,4 +180,19 @@ public class CustomerServiceImpl implements CustomerService {
outputObject.setBean(bean);
outputObject.settotal(1);
}
/**
* 获取客户列表信息展示为下拉框
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryCustomerListToSelect(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
List<Map<String, Object>> beans = customerDao.queryCustomerListToSelect(params);
outputObject.setBeans(beans);
outputObject.settotal(beans.size());
}
}

View file

@ -16,7 +16,7 @@ public class ErpCommonServiceImpl implements ErpCommonService{
@Autowired
private ErpCommonDao erpCommonDao;
/**
* 获取单据详情信息
* @param inputObject

View file

@ -17,9 +17,7 @@ import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.ToolUtil;
import com.skyeye.dao.OtherWareHousDao;
import com.skyeye.erp.util.ErpConstants;
import com.skyeye.erp.util.NumAdd;
import com.skyeye.erp.util.Tool;
import com.skyeye.jedis.JedisClientService;
import com.skyeye.erp.util.ErpOrderNum;
import com.skyeye.service.OtherWareHousService;
import net.sf.json.JSONArray;
@ -30,9 +28,6 @@ public class OtherWareHousServiceImpl implements OtherWareHousService{
@Autowired
private OtherWareHousDao otherWareHousDao;
@Autowired
private JedisClientService jedisClient;
/**
* 获取其他入库列表信息
* @param inputObject
@ -104,7 +99,8 @@ public class OtherWareHousServiceImpl implements OtherWareHousService{
depothead.put("id", useId);
depothead.put("type", 2);//类型(1.出库/2.入库)
depothead.put("subType", ErpConstants.DepoTheadSubType.PUT_IS_OTHERS.getNum());//其他入库
String orderNum = getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_OTHERS.getNum());
ErpOrderNum erpOrderNum = new ErpOrderNum();
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PUT_IS_OTHERS.getNum());
depothead.put("defaultNumber", orderNum);//初始票据号
depothead.put("number", orderNum);//票据号
depothead.put("operPersonId", userId);//操作员id
@ -116,7 +112,7 @@ public class OtherWareHousServiceImpl implements OtherWareHousService{
depothead.put("remark", map.get("remark"));//备注
depothead.put("payType", map.get("payType"));//付款类型
depothead.put("totalPrice", allPrice);//合计金额
depothead.put("status", "1");//状态0未审核1已审核2已转采购|销售
depothead.put("status", "2");//状态0未审核1.审核中2.审核通过3.审核拒绝4.已转采购|销售
depothead.put("userId", userId);
depothead.put("deleteFlag", 0);//删除标记0未删除1删除
otherWareHousDao.insertOtherWareHousMation(depothead);
@ -126,34 +122,4 @@ public class OtherWareHousServiceImpl implements OtherWareHousService{
}
}
/**
* 根据类型获取订单编号
* @param subType
* @return
* @throws Exception
*/
public String getOrderNumBySubType(String userId, String subType) throws Exception{
//获取在redis中的key
String key = ErpConstants.getSysDepotHeadRedisKeyById(userId, subType);
if(ToolUtil.isBlank(jedisClient.get(key))){//若缓存中无值
Map<String, Object> bean = new HashMap<>();
bean.put("subType", subType);
bean.put("userId", userId);
bean = otherWareHousDao.queryOddNumberBySubType(bean); //从数据库中查询
if(bean == null || bean.isEmpty()){
jedisClient.set(key, "1");//将从数据库中查来的内容存到缓存中
}else{
jedisClient.set(key, bean.get("num").toString());//将从数据库中查来的内容存到缓存中
}
}
//获取当前最大的值
String num = jedisClient.get(key);
//1为int类型0代表前面要补的字符 10代表字符串长度,d表示参数为整数类型
//类型 + 年月日 + num
String orderNum = ErpConstants.DepoTheadSubType.getClockInName(subType) + Tool.getTimeISDayStr() + String.format("%010d", Integer.parseInt(num));
//redis缓存+1
jedisClient.set(key, NumAdd.BigNumAdd(jedisClient.get(key), "1"));
return orderNum;
}
}

View file

@ -0,0 +1,290 @@
package com.skyeye.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.ToolUtil;
import com.skyeye.dao.PurchaseOrderDao;
import com.skyeye.erp.util.ErpConstants;
import com.skyeye.erp.util.ErpOrderNum;
import com.skyeye.service.PurchaseOrderService;
import net.sf.json.JSONArray;
@Service
public class PurchaseOrderServiceImpl implements PurchaseOrderService{
@Autowired
private PurchaseOrderDao purchaseOrderDao;
/**
* 获取采购单列表信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryPurchaseOrderToList(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
List<Map<String, Object>> beans = purchaseOrderDao.queryPurchaseOrderToList(params,
new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString())));
PageList<Map<String, Object>> beansPageList = (PageList<Map<String, Object>>)beans;
int total = beansPageList.getPaginator().getTotalCount();
outputObject.setBeans(beans);
outputObject.settotal(total);
}
/**
* 新增采购单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@SuppressWarnings("unchecked")
@Override
@Transactional(value="transactionManager")
public void insertPurchaseOrderMation(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
String depotheadStr = map.get("depotheadStr").toString();
if(ToolUtil.isJson(depotheadStr)){
String useId = ToolUtil.getSurFaceId();//单据主表id
String userId = inputObject.getLogParams().get("id").toString();
//处理数据
JSONArray jArray = JSONArray.fromObject(depotheadStr);
//产品中间转换对象单据子表存储对象
Map<String, Object> bean, entity;
List<Map<String, Object>> entitys = new ArrayList<>();//单据子表实体集合信息
BigDecimal allPrice = new BigDecimal("0");//主单总价
BigDecimal itemAllPrice = null;//子单对象
for(int i = 0; i < jArray.size(); i++){
bean = jArray.getJSONObject(i);
entity = purchaseOrderDao.queryMaterialsById(bean);
if(entity != null && !entity.isEmpty()){
//获取单价
itemAllPrice = new BigDecimal(entity.get("estimatePurchasePrice").toString());
entity.put("id", ToolUtil.getSurFaceId());
entity.put("headerId", useId);//单据主表id
entity.put("operNumber", bean.get("rkNum"));//数量
//计算子单总价单价*数量
itemAllPrice = itemAllPrice.multiply(new BigDecimal(bean.get("rkNum").toString()));
entity.put("allPrice", itemAllPrice);//单据子表总价
entity.put("remark", bean.get("remark"));//备注
entity.put("depotId", bean.get("depotId"));//仓库
entity.put("mType", 0);//商品类型 0.普通 1.组合件 2.普通子件
entity.put("userId", userId);
entity.put("deleteFlag", 0);//删除标记0未删除1删除
entitys.add(entity);
//计算主单总价
allPrice = allPrice.add(itemAllPrice);
}
}
if(entitys.size() == 0){
outputObject.setreturnMessage("请选择产品");
return;
}
//单据主表对象
Map<String, Object> depothead = new HashMap<>();
depothead.put("id", useId);
depothead.put("type", 2);//类型(1.出库/2.入库)
depothead.put("subType", ErpConstants.DepoTheadSubType.PURCHASE_ORDER.getNum());//采购单
ErpOrderNum erpOrderNum = new ErpOrderNum();
String orderNum = erpOrderNum.getOrderNumBySubType(userId, ErpConstants.DepoTheadSubType.PURCHASE_ORDER.getNum());
depothead.put("defaultNumber", orderNum);//初始票据号
depothead.put("number", orderNum);//票据号
depothead.put("operPersonId", userId);//操作员id
depothead.put("operPersonName", inputObject.getLogParams().get("userName"));//操作员名字
depothead.put("createTime", ToolUtil.getTimeAndToString());//创建时间
depothead.put("operTime", map.get("operTime"));//出入库时间即单据日期
depothead.put("organId", map.get("supplierId"));//供应商Id
depothead.put("accountId", map.get("accountId"));//账户Id
depothead.put("remark", map.get("remark"));//备注
depothead.put("payType", map.get("payType"));//付款类型
depothead.put("totalPrice", allPrice);//合计金额
depothead.put("status", "0");//状态0未审核1.审核中2.审核通过3.审核拒绝4.已转采购|销售
depothead.put("userId", userId);
depothead.put("deleteFlag", 0);//删除标记0未删除1删除
purchaseOrderDao.insertPurchaseOrderMation(depothead);
purchaseOrderDao.insertPurchaseOrderChildMation(entitys);
}else{
outputObject.setreturnMessage("数据格式错误");
}
}
/**
* 删除采购单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void deletePurchaseOrderMationById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
map.put("userId", inputObject.getLogParams().get("id"));
//获取采购单状态
Map<String, Object> bean = purchaseOrderDao.queryPurchaseOrderStateById(map);
if(bean != null && !bean.isEmpty()){
if("0".equals(bean.get("status").toString()) || "3".equals(bean.get("status").toString())){//未提交审核或者审核拒绝的可以删除
//删除采购单
purchaseOrderDao.deletePurchaseOrderMationById(map);
//删除采购单关联产品
purchaseOrderDao.deletePurchaseOrderNormsMationById(map);
}
}else{
outputObject.setreturnMessage("该采购单状态已经改变或数据不存在.");
}
}
/**
* 采购单信息编辑回显
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryPurchaseOrderToEditById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
map.put("userId", inputObject.getLogParams().get("id"));
//获取采购单主单信息
Map<String, Object> bean = purchaseOrderDao.queryPurchaseOrderToEditById(map);
if(bean != null && !bean.isEmpty()){
List<Map<String, Object>> norms = purchaseOrderDao.queryPurchaseOrderNormsToEditById(map);
bean.put("norms", norms);
outputObject.setBean(bean);
outputObject.settotal(1);
}else{
outputObject.setreturnMessage("该数据不存在");
}
}
/**
* 编辑采购单信息
* @param inputObject
* @param outputObject
* @throws Exception
*/
@SuppressWarnings("unchecked")
@Override
public void editPurchaseOrderMationById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
String depotheadStr = map.get("depotheadStr").toString();
if(ToolUtil.isJson(depotheadStr)){
String useId = map.get("id").toString();//单据主表id
String userId = inputObject.getLogParams().get("id").toString();
//处理数据
JSONArray jArray = JSONArray.fromObject(depotheadStr);
//产品中间转换对象单据子表存储对象
Map<String, Object> bean, entity;
List<Map<String, Object>> entitys = new ArrayList<>();//单据子表实体集合信息
BigDecimal allPrice = new BigDecimal("0");//主单总价
BigDecimal itemAllPrice = null;//子单对象
for(int i = 0; i < jArray.size(); i++){
bean = jArray.getJSONObject(i);
entity = purchaseOrderDao.queryMaterialsById(bean);
if(entity != null && !entity.isEmpty()){
//获取单价
itemAllPrice = new BigDecimal(entity.get("estimatePurchasePrice").toString());
entity.put("id", ToolUtil.getSurFaceId());
entity.put("headerId", useId);//单据主表id
entity.put("operNumber", bean.get("rkNum"));//数量
//计算子单总价单价*数量
itemAllPrice = itemAllPrice.multiply(new BigDecimal(bean.get("rkNum").toString()));
entity.put("allPrice", itemAllPrice);//单据子表总价
entity.put("remark", bean.get("remark"));//备注
entity.put("depotId", bean.get("depotId"));//仓库
entity.put("mType", 0);//商品类型 0.普通 1.组合件 2.普通子件
entity.put("userId", userId);
entity.put("deleteFlag", 0);//删除标记0未删除1删除
entitys.add(entity);
//计算主单总价
allPrice = allPrice.add(itemAllPrice);
}
}
if(entitys.size() == 0){
outputObject.setreturnMessage("请选择产品");
return;
}
//单据主表对象
Map<String, Object> depothead = new HashMap<>();
depothead.put("id", useId);
depothead.put("operTime", map.get("operTime"));//出入库时间即单据日期
depothead.put("organId", map.get("supplierId"));//供应商Id
depothead.put("accountId", map.get("accountId"));//账户Id
depothead.put("remark", map.get("remark"));//备注
depothead.put("payType", map.get("payType"));//付款类型
depothead.put("totalPrice", allPrice);//合计金额
depothead.put("userId", userId);
//编辑采购单
purchaseOrderDao.editPurchaseOrderMationById(depothead);
//删除采购单关联产品
purchaseOrderDao.deletePurchaseOrderNormsMationById(map);
//新增新的关联产品
purchaseOrderDao.insertPurchaseOrderChildMation(entitys);
}else{
outputObject.setreturnMessage("数据格式错误");
}
}
/**
* 采购单信息提交审核
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void editPurchaseOrderStateToSubExamineById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
map.put("userId", inputObject.getLogParams().get("id"));
//获取采购单状态
Map<String, Object> bean = purchaseOrderDao.queryPurchaseOrderStateById(map);
if(bean != null && !bean.isEmpty()){
if("0".equals(bean.get("status").toString()) || "3".equals(bean.get("status").toString())){//未提交审核或者审核拒绝的可以提交
purchaseOrderDao.editPurchaseOrderStateToSubExamineById(map);
}
}else{
outputObject.setreturnMessage("该采购单状态已经改变或数据不存在.");
}
}
/**
* 采购单信息审核
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void editPurchaseOrderStateToExamineById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> map = inputObject.getParams();
map.put("userId", inputObject.getLogParams().get("id"));
//获取采购单状态
Map<String, Object> bean = purchaseOrderDao.queryPurchaseOrderStateById(map);
if(bean != null && !bean.isEmpty()){
if("1".equals(bean.get("status").toString())){//审核中的可以进行审核
String upStatus = map.get("status").toString();
if("1".equals(upStatus)){//审核通过
map.put("status", 2);
}else if("0".equals(upStatus)){//审核不通过
map.put("status", 3);
}else{
outputObject.setreturnMessage("参数错误");
return;
}
purchaseOrderDao.editPurchaseOrderStateToExamineById(map);
}
}else{
outputObject.setreturnMessage("该采购单状态已经改变或数据不存在.");
}
}
}

View file

@ -0,0 +1,58 @@
package com.skyeye.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.dao.StatisticsDao;
import com.skyeye.service.StatisticsService;
@Service
public class StatisticsServiceImpl implements StatisticsService{
@Autowired
private StatisticsDao statisticsDao;
/**
* 入库明细
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryWarehousingDetails(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
List<Map<String, Object>> beans = statisticsDao.queryWarehousingDetails(params,
new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString())));
PageList<Map<String, Object>> beansPageList = (PageList<Map<String, Object>>)beans;
int total = beansPageList.getPaginator().getTotalCount();
outputObject.setBeans(beans);
outputObject.settotal(total);
}
/**
* 出库明细
* @param inputObject
* @param outputObject
* @throws Exception
*/
@Override
public void queryOutgoingDetails(InputObject inputObject, OutputObject outputObject) throws Exception {
Map<String, Object> params = inputObject.getParams();
params.put("userId", inputObject.getLogParams().get("id"));
List<Map<String, Object>> beans = statisticsDao.queryOutgoingDetails(params,
new PageBounds(Integer.parseInt(params.get("page").toString()), Integer.parseInt(params.get("limit").toString())));
PageList<Map<String, Object>> beansPageList = (PageList<Map<String, Object>>)beans;
int total = beansPageList.getPaginator().getTotalCount();
outputObject.setBeans(beans);
outputObject.settotal(total);
}
}

View file

@ -271,4 +271,17 @@
AND s.type = 2
ORDER BY s.id DESC LIMIT 0,1
</select>
<select id="queryCustomerListToSelect" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.supplier `name`
FROM
erp_supplier a
WHERE
a.tenant_id = #{userId}
AND a.delete_flag = '0'
AND a.type = '2'
</select>
</mapper>

View file

@ -15,6 +15,7 @@
CASE a.pay_type WHEN '1' THEN '现金' WHEN '2' THEN '记账' WHEN '3' THEN '其他' ELSE '' END payType,
a.remark,
a.status,
a.status_content statusContent,
a.link_number linkNumber
FROM
erp_depothead a
@ -49,4 +50,14 @@
AND a.m_unit_id = d.id
</select>
<select id="queryOddNumberBySubType" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
COUNT(a.id) num
FROM
erp_depothead a
WHERE
a.tenant_id = #{userId}
AND a.sub_type = #{subType}
</select>
</mapper>

View file

@ -206,13 +206,18 @@
FORMAT(a.retail_price, 2) retailPrice,
FORMAT(a.low_price, 2) lowPrice,
FORMAT(a.estimate_purchase_price, 2) estimatePurchasePrice,
FORMAT(a.sale_price, 2) salePrice
FORMAT(a.sale_price, 2) salePrice,
SUM(c.oper_number * (CASE d.type WHEN 2 THEN 1 ELSE -1 END)) currentTock
FROM
erp_material_norms a
LEFT JOIN erp_unit b ON a.unit_id = b.id
LEFT JOIN erp_depotitem c ON a.id = c.m_unit_id
LEFT JOIN erp_depothead d ON c.header_id = d.id
WHERE
a.meterial_id = #{id}
AND a.delete_flag = '0'
AND d.sub_type != '10'
GROUP BY a.id
ORDER BY b.number ASC
</select>
@ -389,6 +394,7 @@
AND a.depot_id = #{depotId}
AND a.m_unit_id = #{mUnitId}
AND a.header_id = b.id
AND b.sub_type != '10'
GROUP BY a.m_unit_id
</select>

View file

@ -73,14 +73,4 @@
</foreach>
</insert>
<select id="queryOddNumberBySubType" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
COUNT(a.id) num
FROM
erp_depothead a
WHERE
a.tenant_id = #{userId}
AND a.sub_type = #{subType}
</select>
</mapper>

View file

@ -0,0 +1,196 @@
<?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.skyeye.dao.PurchaseOrderDao">
<select id="queryPurchaseOrderToList" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.default_number defaultNumber,
CONVERT (a.oper_time, char) operTime,
a.oper_person_name operPersonName,
b.supplier supplierName,
FORMAT(a.total_price, 2) totalPrice,
a.status,
GROUP_CONCAT(DISTINCT CONCAT(c.material_name, c.material_model) SEPARATOR ',') materialNames
FROM
erp_depothead a
LEFT JOIN erp_supplier b ON a.organ_id = b.id
LEFT JOIN erp_depotitem c ON c.header_id = a.id
WHERE
a.sub_type = '10'
AND a.tenant_id = #{userId}
AND a.delete_flag = '0'
<if test="material != '' and material != null">
AND c.material_name LIKE '%${material}%'
</if>
<if test="defaultNumber != '' and defaultNumber != null">
AND a.default_number LIKE '%${defaultNumber}%'
</if>
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND a.oper_time >= #{startTime} AND #{endTime} >= a.oper_time
</if>
GROUP BY a.id
ORDER BY a.create_time DESC
</select>
<select id="queryMaterialsById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id materialId,
a.`name` materialName,
a.model materialModel,
b.id mUnitId,
b.estimate_purchase_price estimatePurchasePrice,
IFNULL(c.`name`, a.unit_name) unitName,
IFNULL(c.number, '1') baseNumber,
#{depotId} depotId
FROM
erp_material a,
erp_material_norms b
LEFT JOIN erp_unit c ON b.unit_id = c.id
WHERE
a.id = b.meterial_id
AND b.id = #{mUnitId}
AND a.id = b.meterial_id
AND a.delete_flag = '0'
AND b.delete_flag = '0'
</select>
<insert id="insertPurchaseOrderMation" parameterType="java.util.Map">
INSERT into erp_depothead
(id, `type`, sub_type, default_number, number, oper_person_id, oper_person_name, create_time, oper_time, organ_id, account_id, total_price,
pay_type, remark, status, tenant_id, delete_flag)
VALUES(#{id}, #{type}, #{subType}, #{defaultNumber}, #{number}, #{operPersonId}, #{operPersonName}, #{createTime}, #{operTime}, #{organId}, #{accountId}, #{totalPrice},
#{payType}, #{remark}, #{status}, #{userId}, #{deleteFlag})
</insert>
<insert id="insertPurchaseOrderChildMation" parameterType="java.util.Map">
INSERT INTO erp_depotitem
(id, header_id, material_id, material_name, material_model, m_unit_id, oper_number, basic_number, unit_price, all_price, remark, depot_id,
m_type, tenant_id, delete_flag)
values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.id}, #{item.headerId}, #{item.materialId}, #{item.materialName}, #{item.materialModel}, #{item.mUnitId}, #{item.operNumber}, #{item.baseNumber}, #{item.estimatePurchasePrice}, #{item.allPrice}, #{item.remark}, #{item.depotId},
#{item.mType}, #{item.userId}, #{item.deleteFlag})
</foreach>
</insert>
<select id="queryPurchaseOrderStateById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.`status`
FROM
erp_depothead a
WHERE
a.id = #{id}
AND a.tenant_id = #{userId}
AND a.delete_flag = '0'
AND a.sub_type = '10' <!-- 限制采购单 -->
</select>
<delete id="deletePurchaseOrderMationById" parameterType="java.util.Map">
DELETE
FROM
erp_depothead
WHERE
id = #{id}
AND (status = '0' OR status = '3')
</delete>
<delete id="deletePurchaseOrderNormsMationById" parameterType="java.util.Map">
DELETE
FROM
erp_depotitem
WHERE
header_id = #{id}
</delete>
<select id="queryPurchaseOrderToEditById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.organ_id supplierId,
CONVERT (a.oper_time, char) operTime,
a.account_id accountId,
CONVERT(a.total_price, decimal) totalPrice,
a.pay_type payType,
a.remark
FROM
erp_depothead a
WHERE
a.id = #{id}
AND (a.`status` = '0' OR a.`status` = '3')
AND a.delete_flag = '0'
AND a.tenant_id = #{userId}
AND a.sub_type = '10'
</select>
<select id="queryPurchaseOrderNormsToEditById" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.depot_id depotId,
a.material_id materialId,
a.m_unit_id mUnitId,
SUM(b.oper_number * (CASE c.type WHEN 2 THEN 1 ELSE -1 END)) AS currentTock,
a.oper_number operNum,
a.unit_price unitPrice,
a.all_price allPrice,
a.remark
FROM
erp_depotitem a
LEFT JOIN erp_depotitem b ON b.depot_id = a.depot_id AND b.m_unit_id = a.m_unit_id
LEFT JOIN erp_depothead c ON c.id = b.header_id
WHERE
a.header_id = #{id}
AND b.header_id != a.header_id
AND a.delete_flag = '0'
GROUP BY a.id
</select>
<update id="editPurchaseOrderMationById" parameterType="java.util.Map">
UPDATE erp_depothead
<set>
<if test="operTime != '' and operTime != null">
oper_time = #{operTime},
</if>
<if test="organId != '' and organId != null">
organ_id = #{organId},
</if>
<if test="accountId != '' and accountId != null">
account_id = #{accountId},
</if>
<if test="remark != '' and remark != null">
remark = #{remark},
</if>
<if test="payType != '' and payType != null">
pay_type = #{payType},
</if>
<if test="totalPrice != '' and totalPrice != null">
total_price = #{totalPrice},
</if>
</set>
WHERE id = #{id}
AND tenant_id = #{userId}
AND sub_type = '10'
</update>
<update id="editPurchaseOrderStateToSubExamineById" parameterType="java.util.Map">
UPDATE erp_depothead
<set>
`status` = '1'
</set>
WHERE id = #{id}
AND tenant_id = #{userId}
AND sub_type = '10'
</update>
<update id="editPurchaseOrderStateToExamineById" parameterType="java.util.Map">
UPDATE erp_depothead
<set>
`status` = #{status},
status_content = #{content}
</set>
WHERE id = #{id}
AND tenant_id = #{userId}
AND sub_type = '10'
</update>
</mapper>

View file

@ -0,0 +1,80 @@
<?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.skyeye.dao.StatisticsDao">
<select id="queryWarehousingDetails" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
b.id headerId,
b.default_number defaultNumber,
b.sub_type subType,
CONVERT(b.oper_time, CHAR) operTime,
a.material_name materialName,
a.material_model materialModel,
a.oper_number operNumber,
FORMAT(a.unit_price, 2) unitPrice,
FORMAT(a.all_price, 2) allPrice,
c.supplier supplierName,
d.`name` depotName
FROM
erp_depotitem a
LEFT JOIN erp_depot d ON a.depot_id = d.id,
erp_depothead b
LEFT JOIN erp_supplier c ON b.organ_id = c.id
WHERE a.tenant_id = #{userId}
AND a.delete_flag = '0'
AND a.header_id = b.id
AND b.type = '2'
AND b.sub_type != '10'
<if test="materialName != '' and materialName != null">
AND a.material_name LIKE '%${materialName}%'
</if>
<if test="depotId != '' and depotId != null">
AND a.depot_id = #{depotId}
</if>
<if test="organId != '' and organId != null">
AND b.organ_id = #{organId}
</if>
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND b.oper_time >= #{startTime} AND #{endTime} >= b.oper_time
</if>
ORDER BY b.oper_time DESC
</select>
<select id="queryOutgoingDetails" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
b.id headerId,
b.default_number defaultNumber,
b.sub_type subType,
CONVERT(b.oper_time, CHAR) operTime,
a.material_name materialName,
a.material_model materialModel,
a.oper_number operNumber,
FORMAT(a.unit_price, 2) unitPrice,
FORMAT(a.all_price, 2) allPrice,
c.supplier supplierName,
d.`name` depotName
FROM
erp_depotitem a
LEFT JOIN erp_depot d ON a.depot_id = d.id,
erp_depothead b
LEFT JOIN erp_supplier c ON b.organ_id = c.id
WHERE a.tenant_id = #{userId}
AND a.delete_flag = '0'
AND a.header_id = b.id
AND b.type = '1'
<if test="materialName != '' and materialName != null">
AND a.material_name LIKE '%${materialName}%'
</if>
<if test="depotId != '' and depotId != null">
AND a.depot_id = #{depotId}
</if>
<if test="organId != '' and organId != null">
AND b.organ_id = #{organId}
</if>
<if test="startTime != '' and startTime != null and endTime != '' and endTime != null">
AND b.oper_time >= #{startTime} AND #{endTime} >= b.oper_time
</if>
ORDER BY b.oper_time DESC
</select>
</mapper>

View file

@ -140,13 +140,13 @@
<!-- 产品结束 -->
<!-- 其他入库开始 -->
<url id="otherwarehous001" path="/post/OtherWareHousController/queryOtherWareHousToList" val="获取产品信息" allUse="1">
<url id="otherwarehous001" path="/post/OtherWareHousController/queryOtherWareHousToList" val="获取其他入库列表信息" allUse="1">
<property id="defaultNumber" name="defaultNumber" ref="" var="票据单号" />
<property id="material" name="material" ref="" var="产品信息:名称或者型号" />
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
<property id="startTime" name="startTime" ref="" var="单据开始时间"/>
<property id="endTime" name="endTime" ref="" var="单据结束时间"/>
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
</url>
<url id="otherwarehous002" path="/post/OtherWareHousController/insertOtherWareHousMation" val="新增其他入库信息" allUse="1">
<property id="supplierId" name="supplierId" ref="required" var="供应商" />
@ -158,4 +158,67 @@
</url>
<!-- 其他入库结束 -->
<!-- 采购管理开始 -->
<url id="purchaseorder001" path="/post/PurchaseOrderController/queryPurchaseOrderToList" val="获取采购单列表信息" allUse="2">
<property id="defaultNumber" name="defaultNumber" ref="" var="票据单号" />
<property id="material" name="material" ref="" var="产品信息:名称或者型号" />
<property id="startTime" name="startTime" ref="" var="单据开始时间"/>
<property id="endTime" name="endTime" ref="" var="单据结束时间"/>
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
</url>
<url id="purchaseorder002" path="/post/PurchaseOrderController/insertPurchaseOrderMation" val="新增采购单信息" allUse="2">
<property id="supplierId" name="supplierId" ref="required" var="供应商" />
<property id="operTime" name="operTime" ref="required" var="单据日期" />
<property id="accountId" name="accountId" ref="" var="账户" />
<property id="payType" name="payType" ref="required,num" var="付款类型" />
<property id="remark" name="remark" ref="" var="备注" />
<property id="depotheadStr" name="depotheadStr" ref="required" var="产品列表" />
</url>
<url id="purchaseorder003" path="/post/PurchaseOrderController/deletePurchaseOrderMationById" val="删除采购单信息" allUse="2">
<property id="rowId" name="id" ref="required" var="采购单id" />
</url>
<url id="purchaseorder004" path="/post/PurchaseOrderController/queryPurchaseOrderToEditById" val="采购单信息编辑回显" allUse="2">
<property id="rowId" name="id" ref="required" var="采购单id" />
</url>
<url id="purchaseorder005" path="/post/PurchaseOrderController/editPurchaseOrderMationById" val="编辑采购单信息" allUse="2">
<property id="supplierId" name="supplierId" ref="required" var="供应商" />
<property id="operTime" name="operTime" ref="required" var="单据日期" />
<property id="accountId" name="accountId" ref="" var="账户" />
<property id="payType" name="payType" ref="required,num" var="付款类型" />
<property id="remark" name="remark" ref="" var="备注" />
<property id="depotheadStr" name="depotheadStr" ref="required" var="产品列表" />
<property id="rowId" name="id" ref="required" var="采购单id" />
</url>
<url id="purchaseorder006" path="/post/PurchaseOrderController/editPurchaseOrderStateToSubExamineById" val="采购单信息提交审核" allUse="2">
<property id="rowId" name="id" ref="required" var="采购单id" />
</url>
<url id="purchaseorder007" path="/post/PurchaseOrderController/editPurchaseOrderStateToExamineById" val="采购单信息审核" allUse="2">
<property id="rowId" name="id" ref="required" var="采购单id" />
<property id="status" name="status" ref="required,num" var="审核结果" />
<property id="content" name="content" ref="" var="审核意见" />
</url>
<!-- 采购管理结束 -->
<!-- 统计开始 -->
<url id="statistics001" path="/post/StatisticsController/queryWarehousingDetails" val="入库明细" allUse="1">
<property id="materialName" name="materialName" ref="" var="产品名称" />
<property id="depotId" name="depotId" ref="" var="仓库id" />
<property id="organId" name="organId" ref="" var="供应商id" />
<property id="startTime" name="startTime" ref="" var="单据开始时间"/>
<property id="endTime" name="endTime" ref="" var="单据结束时间"/>
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
</url>
<url id="statistics002" path="/post/StatisticsController/queryOutgoingDetails" val="出库明细" allUse="1">
<property id="materialName" name="materialName" ref="" var="产品名称" />
<property id="depotId" name="depotId" ref="" var="仓库id" />
<property id="organId" name="organId" ref="" var="供应商id" />
<property id="startTime" name="startTime" ref="" var="单据开始时间"/>
<property id="endTime" name="endTime" ref="" var="单据结束时间"/>
<property id="limit" name="limit" ref="required,num" var="分页参数,每页多少条数据" />
<property id="page" name="page" ref="required,num" var="分页参数,第几页"/>
</url>
<!-- 统计结束 -->
</controller>

View file

@ -177,6 +177,8 @@
<url id="customer008" path="/post/CustomerController/queryCustomerByIdAndInfo" val="查看客户详情" allUse="2">
<property id="rowId" name="id" ref="required" var="客户ID"></property>
</url>
<url id="customer009" path="/post/CustomerController/queryCustomerListToSelect" val="获取客户列表信息展示为下拉框" allUse="2">
</url>
<!-- 客户信息管理结束-->
<!-- 会员信息管理开始 -->

View file

@ -0,0 +1,208 @@
var rowId = "";
//单据的开始时间、结束时间
var startTime = "", endTime = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'laydate'], function (exports) {
winui.renderColor();
var $ = layui.$,
form = layui.form,
laydate = layui.laydate,
table = layui.table;
//初始化统计时间
var day = getTodayDay();
endTime = getYesterdayYMDFormatDate();//结束日期为今天的前一天
if(day === "1" || day == 1){//如果当前为本月一号,则查询上个月的
startTime = getTOneYMDFormatDate();//开始日期为上个月一号
}else{
startTime = getOneYMDFormatDate();//开始日期为本月一号
}
//获取今天是本月的几号
function getTodayDay(){
var today = new Date();//获取当前时间(没有格式化)
var todayDay = today.getDate();//获取几号
return todayDay;
}
//获取本月一号的日期
function getOneYMDFormatDate(){
var date = new Date;
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" + month : month);
return year.toString() + "-" + month.toString() + "-" + "01";
};
//获取上个月一号的日期
function getTOneYMDFormatDate(){
var date = new Date;
var year = date.getFullYear();
var month = date.getMonth();
month = (month < 10 ? "0" + month : month);
return year.toString() + "-" + month.toString() + "-" + "01";
};
//获取前一天的时间
function getYesterdayYMDFormatDate(){
var myDate = new Date();
var lw = new Date(myDate - 1000 * 60 * 60 * 24 * 1);
var lastY = lw.getFullYear();
var lastM = lw.getMonth() + 1;
var lastD = lw.getDate();
return lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);
};
laydate.render({
elem: '#operTime', //指定元素
range: '~',
value: startTime + " ~ " + endTime//初始化统计日期
});
var selOption = getFileContent('tpl/template/select-option.tpl');
initSupplierHtml();
//初始化客户
function initSupplierHtml() {
AjaxPostUtil.request({url: reqBasePath + "customer009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载客户数据
$("#organId").html(getDataUseHandlebars(selOption, json));
//初始化仓库
initDepotHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化仓库
function initDepotHtml() {
AjaxPostUtil.request({url: reqBasePath + "storehouse008", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载仓库数据
$("#depotId").html(getDataUseHandlebars(selOption, json));
//初始化表格数据
initTable();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
function initTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
//表格渲染
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: reqBasePath + 'statistics002',
where: {materialName: $("#materialName").val(), depotId: $("#depotId").val(), organId: $("#organId").val(), startTime: startTime, endTime: endTime},
even: true, //隔行变色
page: true,
limits: [8, 16, 24, 32, 40, 48, 56],
limit: 8,
cols: [[
{ title: '序号', type: 'numbers'},
{ field: 'defaultNumber', title: '单据编号', align: 'left', width: 200, templet: function(d){
return '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
}},
{ field: 'materialName', title: '商品名称', align: 'left', width: 150},
{ field: 'materialModel', title: '商品型号', align: 'left', width: 100},
{ field: 'unitPrice', title: '单价', align: 'left', width: 120},
{ field: 'operNumber', title: '出库数量', align: 'left', width: 100},
{ field: 'allPrice', title: '金额', align: 'left', width: 120 },
{ field: 'supplierName', title: '供应商', align: 'left', width: 140 },
{ field: 'depotName', title: '仓库', align: 'left', width: 140 },
{ field: 'operTime', title: '出库日期', align: 'center', width: 140 }
]]
});
table.on('tool(messageTable)', function (obj) { //注tool是工具条事件名test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'details') { //详情
if(data.subType == '4'){//其他出库
details(data);
}
}
});
form.render();
}
//搜索表单
form.on('submit(formSearch)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
loadTable();
}
return false;
});
//其他出库详情
function details(data){
rowId = data.headerId;
_openNewWindows({
url: "",
title: "详情",
pageId: "otherwarehousdetails",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
$("body").on("click", "#reloadTable", function() {
loadTable();
});
$("body").on("click", "#formSearch", function () {
refreshTable();
})
//刷新
function loadTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {where:{materialName: $("#materialName").val(), depotId: $("#depotId").val(), organId: $("#organId").val(), startTime: startTime, endTime: endTime}});
}
//搜索
function refreshTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {page: {curr: 1}, where:{materialName: $("#materialName").val(), depotId: $("#depotId").val(), organId: $("#organId").val(), startTime: startTime, endTime: endTime}})
}
exports('warehousingdetails', {});
});

View file

@ -0,0 +1,208 @@
var rowId = "";
//单据的开始时间、结束时间
var startTime = "", endTime = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'laydate'], function (exports) {
winui.renderColor();
var $ = layui.$,
form = layui.form,
laydate = layui.laydate,
table = layui.table;
//初始化统计时间
var day = getTodayDay();
endTime = getYesterdayYMDFormatDate();//结束日期为今天的前一天
if(day === "1" || day == 1){//如果当前为本月一号,则查询上个月的
startTime = getTOneYMDFormatDate();//开始日期为上个月一号
}else{
startTime = getOneYMDFormatDate();//开始日期为本月一号
}
//获取今天是本月的几号
function getTodayDay(){
var today = new Date();//获取当前时间(没有格式化)
var todayDay = today.getDate();//获取几号
return todayDay;
}
//获取本月一号的日期
function getOneYMDFormatDate(){
var date = new Date;
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = (month < 10 ? "0" + month : month);
return year.toString() + "-" + month.toString() + "-" + "01";
};
//获取上个月一号的日期
function getTOneYMDFormatDate(){
var date = new Date;
var year = date.getFullYear();
var month = date.getMonth();
month = (month < 10 ? "0" + month : month);
return year.toString() + "-" + month.toString() + "-" + "01";
};
//获取前一天的时间
function getYesterdayYMDFormatDate(){
var myDate = new Date();
var lw = new Date(myDate - 1000 * 60 * 60 * 24 * 1);
var lastY = lw.getFullYear();
var lastM = lw.getMonth() + 1;
var lastD = lw.getDate();
return lastY + "-" + (lastM < 10 ? "0" + lastM : lastM) + "-" + (lastD < 10 ? "0" + lastD : lastD);
};
laydate.render({
elem: '#operTime', //指定元素
range: '~',
value: startTime + " ~ " + endTime//初始化统计日期
});
var selOption = getFileContent('tpl/template/select-option.tpl');
initSupplierHtml();
//初始化供应商
function initSupplierHtml() {
AjaxPostUtil.request({url: reqBasePath + "supplier009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载供应商数据
$("#organId").html(getDataUseHandlebars(selOption, json));
//初始化仓库
initDepotHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化仓库
function initDepotHtml() {
AjaxPostUtil.request({url: reqBasePath + "storehouse008", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载仓库数据
$("#depotId").html(getDataUseHandlebars(selOption, json));
//初始化表格数据
initTable();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
function initTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
//表格渲染
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: reqBasePath + 'statistics001',
where: {materialName: $("#materialName").val(), depotId: $("#depotId").val(), organId: $("#organId").val(), startTime: startTime, endTime: endTime},
even: true, //隔行变色
page: true,
limits: [8, 16, 24, 32, 40, 48, 56],
limit: 8,
cols: [[
{ title: '序号', type: 'numbers'},
{ field: 'defaultNumber', title: '单据编号', align: 'left', width: 200, templet: function(d){
return '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
}},
{ field: 'materialName', title: '商品名称', align: 'left', width: 150},
{ field: 'materialModel', title: '商品型号', align: 'left', width: 100},
{ field: 'unitPrice', title: '单价', align: 'left', width: 120},
{ field: 'operNumber', title: '入库数量', align: 'left', width: 100},
{ field: 'allPrice', title: '金额', align: 'left', width: 120 },
{ field: 'supplierName', title: '供应商', align: 'left', width: 140 },
{ field: 'depotName', title: '仓库', align: 'left', width: 140 },
{ field: 'operTime', title: '入库日期', align: 'center', width: 140 }
]]
});
table.on('tool(messageTable)', function (obj) { //注tool是工具条事件名test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'details') { //详情
if(data.subType == '4'){//其他入库
details(data);
}
}
});
form.render();
}
//搜索表单
form.on('submit(formSearch)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
loadTable();
}
return false;
});
//其他入库详情
function details(data){
rowId = data.headerId;
_openNewWindows({
url: "../../tpl/otherwarehous/otherwarehousdetails.html",
title: "详情",
pageId: "otherwarehousdetails",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
$("body").on("click", "#reloadTable", function() {
loadTable();
});
$("body").on("click", "#formSearch", function () {
refreshTable();
})
//刷新
function loadTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {where:{materialName: $("#materialName").val(), depotId: $("#depotId").val(), organId: $("#organId").val(), startTime: startTime, endTime: endTime}});
}
//搜索
function refreshTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {page: {curr: 1}, where:{materialName: $("#materialName").val(), depotId: $("#depotId").val(), organId: $("#organId").val(), startTime: startTime, endTime: endTime}})
}
exports('warehousingdetails', {});
});

View file

@ -36,7 +36,7 @@ layui.config({
cols: [[
{ title: '序号', type: 'numbers'},
{ field: 'defaultNumber', title: '单据编号', align: 'left', width: 200, templet: function(d){
return '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
return '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
}},
{ field: 'supplierName', title: '供应商', align: 'left', width: 150},
{ field: 'materialNames', title: '关联产品', align: 'left', width: 300},

View file

@ -0,0 +1,407 @@
var material = new Array(); //产品集合
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
winui.renderColor();
layui.use(['form'], function(form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$,
laydate = layui.laydate;
var enclosureInfo = ""; //附件id
var rowNum = 1; //表格的序号
var depotHtml = "", materialHtml = "";//仓库
var tockObject = new Array();//根据仓库和规格id查询出来的对应库存信息
var usetableTemplate = $("#usetableTemplate").html();
var selOption = getFileContent('tpl/template/select-option.tpl');
//事故时间
laydate.render({
elem: '#operTime',
type: 'datetime',
trigger: 'click'
});
initAccountHtml();
//初始化账户
function initAccountHtml() {
AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载账户数据
$("#accountId").html(getDataUseHandlebars(selOption, json));
//初始化供应商
initSupplierHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化供应商
function initSupplierHtml() {
AjaxPostUtil.request({url: reqBasePath + "supplier009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载供应商数据
$("#supplierId").html(getDataUseHandlebars(selOption, json));
//初始化仓库
initDepotHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化仓库
function initDepotHtml() {
AjaxPostUtil.request({url: reqBasePath + "storehouse008", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载仓库数据
depotHtml = getDataUseHandlebars(selOption, json);
//初始化产品
initMaterialHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化产品
function initMaterialHtml() {
AjaxPostUtil.request({url: reqBasePath + "material010", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
material = json.rows;
//加载产品数据
materialHtml = getDataUseHandlebars(selOption, json);
//渲染
form.render();
//初始化一行数据
addRow();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//仓库加载变化事件
form.on('select(selectDepotProperty)', function(data) {
var thisRowNum = data.elem.id.replace("depotId", "");//获取当前行
var thisRowValue = data.value;
loadTockByDepotAndMUnit(thisRowNum);
});
//产品加载变化事件
form.on('select(selectMaterialProperty)', function(data) {
var thisRowNum = data.elem.id.replace("materialId", "");//获取当前行
var thisRowValue = data.value;
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
$.each(material, function(i, item) {
if(thisRowValue == item.id){
$("#unitId" + thisRowNum).html(getDataUseHandlebars(selOption, {rows: item.unitList}));
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
//设置默认选中
if(item.unit == 2){//多单位
$.each(item.unitList, function(j, bean) {
if(item.firstInUnit == bean.unitId){
$("#unitId" + thisRowNum).val(bean.id);
$("#unitPrice" + thisRowNum).html(bean.estimatePurchasePrice.toFixed(2));//单价
$("#amountOfMoney" + thisRowNum).html((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
return false;
}
});
}else{//不是多单位
var firstItem = item.unitList[0];
$("#unitId" + thisRowNum).val(firstItem.id);
$("#unitPrice" + thisRowNum).html(firstItem.estimatePurchasePrice.toFixed(2));//单价
$("#amountOfMoney" + thisRowNum).html((rkNum * parseFloat(firstItem.estimatePurchasePrice)).toFixed(2));//金额
}
form.render('select');
return false;
}
});
} else {
$("#unitId" + thisRowNum).html(""); //重置规格为空
form.render('select');
}
//加载库存
loadTockByDepotAndMUnit(thisRowNum);
//计算价格
calculatedTotalPrice();
});
//产品规格加载变化事件
form.on('select(selectUnitProperty)', function(data) {
var thisRowNum = data.elem.id.replace("unitId", "");//获取当前行
var thisRowValue = data.value;
//当前选中的产品id
var chooseMaterialId = $("#materialId" + thisRowNum).val();
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
$.each(material, function(i, item) {
if(chooseMaterialId == item.id){//获取产品
$.each(item.unitList, function(j, bean) {
if(thisRowValue == bean.id){//获取规格
//获取当前行数量
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
$("#unitPrice" + thisRowNum).html(bean.estimatePurchasePrice.toFixed(2));//单价
$("#amountOfMoney" + thisRowNum).html((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
return false;
}
});
return false;
}
});
} else {
$("#unitPrice" + thisRowNum).html("");//重置单价为空
$("#amountOfMoney" + thisRowNum).html("");//重置金额为空
}
//加载库存
loadTockByDepotAndMUnit(thisRowNum);
//计算价格
calculatedTotalPrice();
});
/**
* 根据仓库和规格加载库存
* @param rowNum 表格行坐标
*/
function loadTockByDepotAndMUnit(rowNum){
//获取当前选中的仓库
var chooseDepotId = $("#depotId" + rowNum).val();
//获取当前选中的规格
var chooseUnitId = $("#unitId" + rowNum).val();
//当两个都不为空时
if(!isNull(chooseDepotId) && !isNull(chooseUnitId)){
var inTockObject = -1;
$.each(tockObject, function(i, item){
if(item.depotId == chooseDepotId && item.unitId == chooseUnitId){
inTockObject = i;
$("#currentTock" + rowNum).html(item.currentTock);
return false;
}
});
//如果数组中不包含对应的库存
if(inTockObject < 0){
//获取库存
AjaxPostUtil.request({url: reqBasePath + "material011", params: {depotId: chooseDepotId, mUnitId: chooseUnitId}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
var currentTock = 0;
if(!isNull(json.bean)){
currentTock = json.bean.currentTock;
}
tockObject.push({
depotId: chooseDepotId,
unitId: chooseUnitId,
currentTock: currentTock
});
$("#currentTock" + rowNum).html(currentTock);
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
}else{
//否则重置库存为空
$("#currentTock" + rowNum).html("");
}
}
//数量变化
$("body").on("input", ".rkNum", function() {
calculatedTotalPrice();
});
$("body").on("change", ".rkNum", function() {
calculatedTotalPrice();
});
//计算总价
function calculatedTotalPrice(){
var rowTr = $("#useTable tr");
var allPrice = 0;
$.each(rowTr, function(i, item) {
//获取行坐标
var rowNum = $(item).attr("trcusid").replace("tr", "");
//获取数量
var rkNum = parseInt(isNull($("#rkNum" + rowNum).val()) ? "0" : $("#rkNum" + rowNum).val());
//获取单价
var unitPrice = parseFloat(isNull($("#unitPrice" + rowNum).html()) ? "0" : $("#unitPrice" + rowNum).html());
//输出金额
$("#amountOfMoney" + rowNum).html((rkNum * unitPrice).toFixed(2));
allPrice += rkNum * unitPrice;
});
$("#allPrice").html(allPrice.toFixed(2));
}
form.on('submit(formAddBean)', function(data) {
//表单验证
if(winui.verifyForm(data.elem)) {
//获取已选用品数据
var rowTr = $("#useTable tr");
if(rowTr.length == 0) {
winui.window.msg('请选择产品.', {icon: 2, time: 2000});
return false;
}
var tableData = new Array();
var noError = false; //循环遍历表格数据时,是否有其他错误信息
$.each(rowTr, function(i, item) {
//获取行编号
var rowNum = $(item).attr("trcusid").replace("tr", "");
if(parseInt($("#rkNum" + rowNum).val()) == 0) {
$("#rkNum" + rowNum).addClass("layui-form-danger");
$("#rkNum" + rowNum).focus();
winui.window.msg('数量不能为0', {icon: 2, time: 2000});
noError = true;
return false;
}
if(inTableDataArrayByAssetarId($("#materialId" + rowNum).val(), $("#depotId" + rowNum).val(), $("#unitId" + rowNum).val(), tableData)) {
$("#depotId" + rowNum).addClass("layui-form-danger");
$("#depotId" + rowNum).focus();
winui.window.msg('一张单中不允许出现相同当库的产品信息,且单位不能重复.', {icon: 2, time: 2000});
noError = true;
return false;
}
var row = {
depotId: $("#depotId" + rowNum).val(),
materialId: $("#materialId" + rowNum).val(),
mUnitId: $("#unitId" + rowNum).val(),
rkNum: $("#rkNum" + rowNum).val(),
remark: $("#remark" + rowNum).val()
};
tableData.push(row);
});
if(noError) {
return false;
}
var params = {
supplierId: $("#supplierId").val(),
operTime: $("#operTime").val(),
accountId: $("#accountId").val(),
payType: $("#payType").val(),
remark: $("#remark").val(),
depotheadStr: JSON.stringify(tableData)
};
AjaxPostUtil.request({url: reqBasePath + "purchaseorder002", params: params, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
parent.layer.close(index);
parent.refreshCode = '0';
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
return false;
});
//判断选中的产品是否也在数组中
function inTableDataArrayByAssetarId(materialId, depotId, unitId, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.depotId === depotId && item.mUnitId === unitId && item.materialId === materialId) {
isIn = true;
return false;
}
});
return isIn;
}
//新增行
$("body").on("click", "#addRow", function() {
addRow();
});
//删除行
$("body").on("click", "#deleteRow", function() {
deleteRow();
});
//新增行
function addRow() {
var par = {
id: "row" + rowNum.toString(), //checkbox的id
trId: "tr" + rowNum.toString(), //行的id
depotId: "depotId" + rowNum.toString(), //仓库id
materialId: "materialId" + rowNum.toString(), //产品id
unitId: "unitId" + rowNum.toString(), //规格id
currentTock: "currentTock" + rowNum.toString(), //库存id
rkNum: "rkNum" + rowNum.toString(), //数量id
unitPrice: "unitPrice" + rowNum.toString(), //单价id
amountOfMoney: "amountOfMoney" + rowNum.toString(), //金额id
remark: "remark" + rowNum.toString() //备注id
};
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
//赋值给仓库
$("#" + "depotId" + rowNum.toString()).html(depotHtml);
//赋值给产品
$("#" + "materialId" + rowNum.toString()).html(materialHtml);
form.render('select');
form.render('checkbox');
rowNum++;
}
//删除行
function deleteRow() {
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
if(checkRow.length > 0) {
$.each(checkRow, function(i, item) {
$(item).parent().parent().remove();
});
} else {
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
}
}
//根据仓库和商品重置库存
function resetAssetList(thisRowNum, list) {
var sHtml = getDataUseHandlebars(selOption, {
rows: list
});
$("#assetarId" + thisRowNum).html(sHtml); //重置商品列表下拉框
$("#specificationsName" + thisRowNum).html(""); //重置规格为空
$("#residualNum" + thisRowNum).html(""); //重置库存为空
form.render('select');
}
//判断是否在数组中
function inPointArray(str, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.id === str) {
isIn = true;
return false;
}
});
return isIn;
}
//获取指定key对应的集合
function getListPointArray(str, array) {
var isList = [];
$.each(array, function(i, item) {
if(item.id === str) {
$.extend(true, isList, item.list);
return false;
}
});
return isList;
}
//获取在数组集合中的下标
function getIndexPointArray(str, array) {
var isIndex = -1;
$.each(array, function(i, item) {
if(item.id === str) {
isIndex = i;
return false;
}
});
return isIndex;
}
$("body").on("click", "#cancle", function() {
parent.layer.close(index);
});
});
});

View file

@ -0,0 +1,38 @@
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui'], function (exports) {
winui.renderColor();
layui.use(['form'], function (form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$;
var beanTemplate = $("#beanTemplate").html();
showGrid({
id: "showForm",
url: reqBasePath + "erpcommon001",
params: {rowId: parent.rowId},
pagination: false,
template: beanTemplate,
ajaxSendAfter:function(json){
if(json.bean.status == 0){
$("#statusName").html("<span class='state-down'>未审核</span>");
}else if(json.bean.status == 1){
$("#statusName").html("<span class='state-up'>审核中</span>");
}else if(json.bean.status == 2){
$("#statusName").html("<span class='state-new'>审核通过</span>");
}else if(json.bean.status == 3){
$("#statusName").html("<span class='state-down'>拒绝通过</span>");
}else if(json.bean.status == 4){
$("#statusName").html("<span class='state-new'>已转采购</span>");
}
form.render();
}
});
});
});

View file

@ -0,0 +1,449 @@
var material = new Array(); //产品集合
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'laydate'], function(exports) {
winui.renderColor();
layui.use(['form'], function(form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$,
laydate = layui.laydate;
var enclosureInfo = ""; //附件id
var rowNum = 1; //表格的序号
var depotHtml = "", materialHtml = "";//仓库
var tockObject = new Array();//根据仓库和规格id查询出来的对应库存信息
var usetableTemplate = $("#usetableTemplate").html();
var beanTemplate = $("#beanTemplate").html();
var selOption = getFileContent('tpl/template/select-option.tpl');
//加载单据数据
var orderObject = [];
showGrid({
id: "showForm",
url: reqBasePath + "purchaseorder004",
params: {rowId: parent.rowId},
pagination: false,
template: beanTemplate,
ajaxSendAfter:function(json){
//事故时间
laydate.render({
elem: '#operTime',
type: 'datetime',
trigger: 'click'
});
orderObject = json;
initAccountHtml();
}
});
//初始化账户
function initAccountHtml() {
AjaxPostUtil.request({url: reqBasePath + "account009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载账户数据
$("#accountId").html(getDataUseHandlebars(selOption, json));
//初始化供应商
initSupplierHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化供应商
function initSupplierHtml() {
AjaxPostUtil.request({url: reqBasePath + "supplier009", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载供应商数据
$("#supplierId").html(getDataUseHandlebars(selOption, json));
//初始化仓库
initDepotHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化仓库
function initDepotHtml() {
AjaxPostUtil.request({url: reqBasePath + "storehouse008", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
//加载仓库数据
depotHtml = getDataUseHandlebars(selOption, json);
//初始化产品
initMaterialHtml();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//初始化产品
function initMaterialHtml() {
AjaxPostUtil.request({url: reqBasePath + "material010", params: {}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
material = json.rows;
//加载产品数据
materialHtml = getDataUseHandlebars(selOption, json);
//渲染数据到页面
initDataToShow();
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
//渲染数据到页面
function initDataToShow(){
$("#supplierId").val(orderObject.bean.supplierId);//供应商
$("#accountId").val(orderObject.bean.accountId);//账户
$("#payType").val(orderObject.bean.payType);//付款类型
//渲染列表项
$.each(orderObject.bean.norms, function(i, item){
addRow();
$.each(material, function(j, bean) {
if(item.materialId == bean.id){
$("#unitId" + (rowNum - 1)).html(getDataUseHandlebars(selOption, {rows: bean.unitList}));
$("#unitId" + (rowNum - 1)).val(item.mUnitId);//单位回显
return false;
}
});
$("#depotId" + (rowNum - 1)).val(item.depotId);//仓库回显
$("#materialId" + (rowNum - 1)).val(item.materialId);//产品回显
$("#currentTock" + (rowNum - 1)).html(item.currentTock);//库存回显
$("#rkNum" + (rowNum - 1)).val(item.operNum);//数量回显
$("#unitPrice" + (rowNum - 1)).html(item.unitPrice);//单价回显
$("#amountOfMoney" + (rowNum - 1)).html(item.allPrice);//金额回显
$("#remark" + (rowNum - 1)).val(item.remark);//备注回显
//设置标识
$("tr[trcusid='tr" + (rowNum - 1) + "']").attr("thisid", item.id);
});
//渲染
form.render();
}
//仓库加载变化事件
form.on('select(selectDepotProperty)', function(data) {
var thisRowNum = data.elem.id.replace("depotId", "");//获取当前行
var thisRowValue = data.value;
loadTockByDepotAndMUnit(thisRowNum);
});
//产品加载变化事件
form.on('select(selectMaterialProperty)', function(data) {
var thisRowNum = data.elem.id.replace("materialId", "");//获取当前行
var thisRowValue = data.value;
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
$.each(material, function(i, item) {
if(thisRowValue == item.id){
$("#unitId" + thisRowNum).html(getDataUseHandlebars(selOption, {rows: item.unitList}));
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
//设置默认选中
if(item.unit == 2){//多单位
$.each(item.unitList, function(j, bean) {
if(item.firstInUnit == bean.unitId){
$("#unitId" + thisRowNum).val(bean.id);
$("#unitPrice" + thisRowNum).html(bean.estimatePurchasePrice.toFixed(2));//单价
$("#amountOfMoney" + thisRowNum).html((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
return false;
}
});
}else{//不是多单位
var firstItem = item.unitList[0];
$("#unitId" + thisRowNum).val(firstItem.id);
$("#unitPrice" + thisRowNum).html(firstItem.estimatePurchasePrice.toFixed(2));//单价
$("#amountOfMoney" + thisRowNum).html((rkNum * parseFloat(firstItem.estimatePurchasePrice)).toFixed(2));//金额
}
form.render('select');
return false;
}
});
} else {
$("#unitId" + thisRowNum).html(""); //重置规格为空
form.render('select');
}
//加载库存
loadTockByDepotAndMUnit(thisRowNum);
//计算价格
calculatedTotalPrice();
});
//产品规格加载变化事件
form.on('select(selectUnitProperty)', function(data) {
var thisRowNum = data.elem.id.replace("unitId", "");//获取当前行
var thisRowValue = data.value;
//当前选中的产品id
var chooseMaterialId = $("#materialId" + thisRowNum).val();
if(!isNull(thisRowValue) && thisRowValue != '请选择') {
$.each(material, function(i, item) {
if(chooseMaterialId == item.id){//获取产品
$.each(item.unitList, function(j, bean) {
if(thisRowValue == bean.id){//获取规格
//获取当前行数量
var rkNum = parseInt($("#rkNum" + thisRowNum).val());
$("#unitPrice" + thisRowNum).html(bean.estimatePurchasePrice.toFixed(2));//单价
$("#amountOfMoney" + thisRowNum).html((rkNum * parseFloat(bean.estimatePurchasePrice)).toFixed(2));//金额
return false;
}
});
return false;
}
});
} else {
$("#unitPrice" + thisRowNum).html("");//重置单价为空
$("#amountOfMoney" + thisRowNum).html("");//重置金额为空
}
//加载库存
loadTockByDepotAndMUnit(thisRowNum);
//计算价格
calculatedTotalPrice();
});
/**
* 根据仓库和规格加载库存
* @param rowNum 表格行坐标
*/
function loadTockByDepotAndMUnit(rowNum){
//获取当前选中的仓库
var chooseDepotId = $("#depotId" + rowNum).val();
//获取当前选中的规格
var chooseUnitId = $("#unitId" + rowNum).val();
//当两个都不为空时
if(!isNull(chooseDepotId) && !isNull(chooseUnitId)){
var inTockObject = -1;
$.each(tockObject, function(i, item){
if(item.depotId == chooseDepotId && item.unitId == chooseUnitId){
inTockObject = i;
$("#currentTock" + rowNum).html(item.currentTock);
return false;
}
});
//如果数组中不包含对应的库存
if(inTockObject < 0){
//获取库存
AjaxPostUtil.request({url: reqBasePath + "material011", params: {depotId: chooseDepotId, mUnitId: chooseUnitId}, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
var currentTock = 0;
if(!isNull(json.bean)){
currentTock = json.bean.currentTock;
}
tockObject.push({
depotId: chooseDepotId,
unitId: chooseUnitId,
currentTock: currentTock
});
$("#currentTock" + rowNum).html(currentTock);
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
}else{
//否则重置库存为空
$("#currentTock" + rowNum).html("");
}
}
//数量变化
$("body").on("input", ".rkNum", function() {
calculatedTotalPrice();
});
$("body").on("change", ".rkNum", function() {
calculatedTotalPrice();
});
//计算总价
function calculatedTotalPrice(){
var rowTr = $("#useTable tr");
var allPrice = 0;
$.each(rowTr, function(i, item) {
//获取行坐标
var rowNum = $(item).attr("trcusid").replace("tr", "");
//获取数量
var rkNum = parseInt(isNull($("#rkNum" + rowNum).val()) ? "0" : $("#rkNum" + rowNum).val());
//获取单价
var unitPrice = parseFloat(isNull($("#unitPrice" + rowNum).html()) ? "0" : $("#unitPrice" + rowNum).html());
//输出金额
$("#amountOfMoney" + rowNum).html((rkNum * unitPrice).toFixed(2));
allPrice += rkNum * unitPrice;
});
$("#allPrice").html(allPrice.toFixed(2));
}
form.on('submit(formEditBean)', function(data) {
//表单验证
if(winui.verifyForm(data.elem)) {
//获取已选用品数据
var rowTr = $("#useTable tr");
if(rowTr.length == 0) {
winui.window.msg('请选择产品.', {icon: 2, time: 2000});
return false;
}
var tableData = new Array();
var noError = false; //循环遍历表格数据时,是否有其他错误信息
$.each(rowTr, function(i, item) {
//获取行编号
var rowNum = $(item).attr("trcusid").replace("tr", "");
if(parseInt($("#rkNum" + rowNum).val()) == 0) {
$("#rkNum" + rowNum).addClass("layui-form-danger");
$("#rkNum" + rowNum).focus();
winui.window.msg('数量不能为0', {icon: 2, time: 2000});
noError = true;
return false;
}
if(inTableDataArrayByAssetarId($("#materialId" + rowNum).val(), $("#depotId" + rowNum).val(), $("#unitId" + rowNum).val(), tableData)) {
$("#depotId" + rowNum).addClass("layui-form-danger");
$("#depotId" + rowNum).focus();
winui.window.msg('一张单中不允许出现相同当库的产品信息,且单位不能重复.', {icon: 2, time: 2000});
noError = true;
return false;
}
var row = {
depotId: $("#depotId" + rowNum).val(),
materialId: $("#materialId" + rowNum).val(),
mUnitId: $("#unitId" + rowNum).val(),
rkNum: $("#rkNum" + rowNum).val(),
thisId: isNull($(item).attr("thisid")) ? "" : $(item).attr("thisid"),
remark: $("#remark" + rowNum).val()
};
tableData.push(row);
});
if(noError) {
return false;
}
var params = {
supplierId: $("#supplierId").val(),
operTime: $("#operTime").val(),
accountId: $("#accountId").val(),
payType: $("#payType").val(),
remark: $("#remark").val(),
depotheadStr: JSON.stringify(tableData),
rowId: parent.rowId
};
AjaxPostUtil.request({url: reqBasePath + "purchaseorder005", params: params, type: 'json', callback: function(json) {
if(json.returnCode == 0) {
parent.layer.close(index);
parent.refreshCode = '0';
} else {
winui.window.msg(json.returnMessage, {icon: 2, time: 2000});
}
}});
}
return false;
});
//判断选中的产品是否也在数组中
function inTableDataArrayByAssetarId(materialId, depotId, unitId, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.depotId === depotId && item.mUnitId === unitId && item.materialId === materialId) {
isIn = true;
return false;
}
});
return isIn;
}
//新增行
$("body").on("click", "#addRow", function() {
addRow();
});
//删除行
$("body").on("click", "#deleteRow", function() {
deleteRow();
});
//新增行
function addRow() {
var par = {
id: "row" + rowNum.toString(), //checkbox的id
trId: "tr" + rowNum.toString(), //行的id
depotId: "depotId" + rowNum.toString(), //仓库id
materialId: "materialId" + rowNum.toString(), //产品id
unitId: "unitId" + rowNum.toString(), //规格id
currentTock: "currentTock" + rowNum.toString(), //库存id
rkNum: "rkNum" + rowNum.toString(), //数量id
unitPrice: "unitPrice" + rowNum.toString(), //单价id
amountOfMoney: "amountOfMoney" + rowNum.toString(), //金额id
remark: "remark" + rowNum.toString() //备注id
};
$("#useTable").append(getDataUseHandlebars(usetableTemplate, par));
//赋值给仓库
$("#" + "depotId" + rowNum.toString()).html(depotHtml);
//赋值给产品
$("#" + "materialId" + rowNum.toString()).html(materialHtml);
form.render('select');
form.render('checkbox');
rowNum++;
}
//删除行
function deleteRow() {
var checkRow = $("#useTable input[type='checkbox'][name='tableCheckRow']:checked");
if(checkRow.length > 0) {
$.each(checkRow, function(i, item) {
$(item).parent().parent().remove();
});
} else {
winui.window.msg('请选择要删除的行', {icon: 2, time: 2000});
}
}
//根据仓库和商品重置库存
function resetAssetList(thisRowNum, list) {
var sHtml = getDataUseHandlebars(selOption, {
rows: list
});
$("#assetarId" + thisRowNum).html(sHtml); //重置商品列表下拉框
$("#specificationsName" + thisRowNum).html(""); //重置规格为空
$("#residualNum" + thisRowNum).html(""); //重置库存为空
form.render('select');
}
//判断是否在数组中
function inPointArray(str, array) {
var isIn = false;
$.each(array, function(i, item) {
if(item.id === str) {
isIn = true;
return false;
}
});
return isIn;
}
//获取指定key对应的集合
function getListPointArray(str, array) {
var isList = [];
$.each(array, function(i, item) {
if(item.id === str) {
$.extend(true, isList, item.list);
return false;
}
});
return isList;
}
//获取在数组集合中的下标
function getIndexPointArray(str, array) {
var isIndex = -1;
$.each(array, function(i, item) {
if(item.id === str) {
isIndex = i;
return false;
}
});
return isIndex;
}
$("body").on("click", "#cancle", function() {
parent.layer.close(index);
});
});
});

View file

@ -0,0 +1,66 @@
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui'], function (exports) {
winui.renderColor();
layui.use(['form'], function (form) {
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
var $ = layui.$;
var beanTemplate = $("#beanTemplate").html();
showGrid({
id: "showForm",
url: reqBasePath + "erpcommon001",
params: {rowId: parent.rowId},
pagination: false,
template: beanTemplate,
ajaxSendAfter:function(json){
if(json.bean.status == 0){
$("#statusName").html("<span class='state-down'>未审核</span>");
}else if(json.bean.status == 1){
$("#statusName").html("<span class='state-up'>审核中</span>");
}else if(json.bean.status == 2){
$("#statusName").html("<span class='state-new'>审核通过</span>");
}else if(json.bean.status == 3){
$("#statusName").html("<span class='state-down'>拒绝通过</span>");
}else if(json.bean.status == 4){
$("#statusName").html("<span class='state-new'>已转采购</span>");
}
form.render();
form.on('submit(formAddBean)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
var msg = '确认提交吗?';
layer.confirm(msg, { icon: 3, title: '提交审批' }, function (i) {
layer.close(i);
var jStr = {
content: $("#opinion").val(),
status: $("input[name='flag']:checked").val(),
rowId: parent.rowId
};
AjaxPostUtil.request({url:reqBasePath + "purchaseorder007", params: jStr, type:'json', callback:function(json){
if(json.returnCode == 0){
parent.layer.close(index);
parent.refreshCode = '0';
}else{
winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
}
}});
});
}
return false;
});
}
});
//取消
$("body").on("click", "#cancle", function(){
parent.layer.close(index);
});
});
});

View file

@ -0,0 +1,239 @@
var rowId = "";
//单据的开始时间、结束时间
var startTime = "", endTime = "";
layui.config({
base: basePath,
version: skyeyeVersion
}).extend({ //指定js别名
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'laydate'], function (exports) {
winui.renderColor();
authBtn('1570958309701');
var $ = layui.$,
form = layui.form,
laydate = layui.laydate,
table = layui.table;
laydate.render({
elem: '#operTime', //指定元素
range: '~'
});
//表格渲染
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: reqBasePath + 'purchaseorder001',
where: {defaultNumber: $("#defaultNumber").val(), material: $("#material").val(), startTime: startTime, endTime: endTime},
even: true, //隔行变色
page: true,
limits: [8, 16, 24, 32, 40, 48, 56],
limit: 8,
cols: [[
{ title: '序号', type: 'numbers'},
{ field: 'defaultNumber', title: '单据编号', align: 'left', width: 200, templet: function(d){
return '<a lay-event="details" class="notice-title-click">' + d.defaultNumber + '</a>';
}},
{ field: 'supplierName', title: '供应商', align: 'left', width: 150},
{ field: 'materialNames', title: '关联产品', align: 'left', width: 300},
{ field: 'status', title: '状态', align: 'left', width: 80, templet: function(d){
if(d.status == '0'){
return "<span class='state-down'>未审核</span>";
}else if(d.status == '1'){
return "<span class='state-up'>审核中</span>";
}else if(d.status == '2'){
return "<span class='state-new'>审核通过</span>";
}else if(d.status == '3'){
return "<span class='state-down'>拒绝通过</span>";
}else if(d.status == '4'){
return "<span class='state-new'>已转采购</span>";
}else{
return "参数错误";
}
}},
{ field: 'totalPrice', title: '合计金额', align: 'left', width: 120},
{ field: 'operPersonName', title: '操作人', align: 'left', width: 100},
{ field: 'operTime', title: '单据日期', align: 'center', width: 140 },
{ title: '操作', fixed: 'right', align: 'center', width: 200, toolbar: '#tableBar'}
]]
});
table.on('tool(messageTable)', function (obj) { //注tool是工具条事件名test是table原始容器的属性 lay-filter="对应的值"
var data = obj.data; //获得当前行数据
var layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'delete') { //删除
deletemember(data);
}else if (layEvent === 'details') { //详情
details(data);
}else if (layEvent === 'edit') { //编辑
edit(data);
}else if (layEvent === 'subExamine') { //提交审核
subExamine(data);
}else if (layEvent === 'examine') { //审核
examine(data);
}else if (layEvent === 'turnPurchase') { //转采购单
turnPurchase(data);
}
});
//搜索表单
form.render();
form.on('submit(formSearch)', function (data) {
//表单验证
if (winui.verifyForm(data.elem)) {
loadTable();
}
return false;
});
//编辑
function edit(data){
rowId = data.id;
_openNewWindows({
url: "../../tpl/purchaseorder/purchaseorderedit.html",
title: "编辑",
pageId: "purchaseorderedit",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
//删除
function deletemember(data){
layer.confirm('确认要删除信息吗?', { icon: 3, title: '删除操作' }, function (index) {
AjaxPostUtil.request({url:reqBasePath + "purchaseorder003", params: {rowId: data.id}, type:'json', callback:function(json){
if(json.returnCode == 0){
winui.window.msg("删除成功。", {icon: 1,time: 2000});
loadTable();
}else{
winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
}
}});
});
}
//详情
function details(data){
rowId = data.id;
_openNewWindows({
url: "../../tpl/purchaseorder/purchaseorderdetails.html",
title: "详情",
pageId: "purchaseorderdetails",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
//提交审批
function subExamine(data){
layer.confirm('确认要提交审核吗?', { icon: 3, title: '提交审核操作' }, function (index) {
AjaxPostUtil.request({url:reqBasePath + "purchaseorder006", params: {rowId: data.id}, type:'json', callback:function(json){
if(json.returnCode == 0){
winui.window.msg("提交成功。", {icon: 1,time: 2000});
loadTable();
}else{
winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
}
}});
});
}
//审核
function examine(data){
rowId = data.id;
_openNewWindows({
url: "../../tpl/purchaseorder/purchaseorderexamine.html",
title: "审核",
pageId: "purchaseorderdetails",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
}
//转采购单
function turnPurchase(data){
// layer.confirm('确认要转采购入库吗?', { icon: 3, title: '采购入库操作' }, function (index) {
// AjaxPostUtil.request({url:reqBasePath + "purchaseorder003", params: {rowId: data.id}, type:'json', callback:function(json){
// if(json.returnCode == 0){
// winui.window.msg("转单成功。", {icon: 1,time: 2000});
// loadTable();
// }else{
// winui.window.msg(json.returnMessage, {icon: 2,time: 2000});
// }
// }});
// });
}
//添加
$("body").on("click", "#addBean", function(){
_openNewWindows({
url: "../../tpl/purchaseorder/purchaseorderadd.html",
title: "新增",
pageId: "purchaseorderadd",
area: ['90vw', '90vh'],
callBack: function(refreshCode){
if (refreshCode == '0') {
winui.window.msg("操作成功", {icon: 1,time: 2000});
loadTable();
} else if (refreshCode == '-9999') {
winui.window.msg("操作失败", {icon: 2,time: 2000});
}
}});
});
$("body").on("click", "#reloadTable", function() {
loadTable();
});
$("body").on("click", "#formSearch", function () {
refreshTable();
})
//刷新
function loadTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {where:{defaultNumber: $("#defaultNumber").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}});
}
//搜索
function refreshTable(){
if(isNull($("#operTime").val())){//一定要记得当createTime为空时
startTime = "";
endTime = "";
}else {
startTime = $("#operTime").val().split('~')[0].trim() + ' 00:00:00';
endTime = $("#operTime").val().split('~')[1].trim() + ' 23:59:59';
}
table.reload("messageTable", {page: {curr: 1}, where:{defaultNumber: $("#defaultNumber").val(), material: $("#material").val(), startTime: startTime, endTime: endTime}})
}
exports('otherwarehouslist', {});
});

View file

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div class="txtcenter" style="margin:0 auto;padding-top:10px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">商品名称</label>
<div class="layui-input-inline">
<input type="text" id="materialName" name="materialName" placeholder="请输入名称" class="layui-input" />
</div>
<label class="layui-form-label">客户</label>
<div class="layui-input-inline">
<select id="organId" lay-search></select>
</div>
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<select id="depotId" lay-search></select>
</div>
<label class="layui-form-label">单据日期</label>
<div class="layui-input-inline">
<input type="text" id="operTime" name="operTime" placeholder="请选择单据日期" class="layui-input" />
</div>
<button type="reset" class="layui-btn layui-btn-primary list-form-search">重置</button>
<button class="layui-btn list-form-search" lay-submit lay-filter="formSearch">搜索</button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
</div>
</div>
<div style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/erpstatistics/'}).use('outgoingdetails');
</script>
</body>
</html>

View file

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div class="txtcenter" style="margin:0 auto;padding-top:10px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">商品名称</label>
<div class="layui-input-inline">
<input type="text" id="materialName" name="materialName" placeholder="请输入名称" class="layui-input" />
</div>
<label class="layui-form-label">供应商</label>
<div class="layui-input-inline">
<select id="organId" lay-search></select>
</div>
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<select id="depotId" lay-search></select>
</div>
<label class="layui-form-label">单据日期</label>
<div class="layui-input-inline">
<input type="text" id="operTime" name="operTime" placeholder="请选择单据日期" class="layui-input" />
</div>
<button type="reset" class="layui-btn layui-btn-primary list-form-search">重置</button>
<button class="layui-btn list-form-search" lay-submit lay-filter="formSearch">搜索</button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
</div>
</div>
<div style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/erpstatistics/'}).use('warehousingdetails');
</script>
</body>
</html>

View file

@ -14,6 +14,12 @@
</form>
<script type="text/x-handlebars-template" id="simpleTemplate">
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">当前存量:</label>
<div class="layui-input-block ver-center">
<a class="notice-title-click">{{currentTock}}</a>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">安全存量:</label>
<div class="layui-input-block ver-center">
@ -80,6 +86,7 @@
<th style="width: 60px;">单位类型</th>
<th style="width: 60px;">计量单位</th>
<th>安全存量</th>
<th>当前存量</th>
<th>零售价</th>
<th>最低售价</th>
<th>预计采购价</th>
@ -92,6 +99,7 @@
<td>{{baseUnit}}</td>
<td>{{unitName}}</td>
<td>{{safetyTock}}</td>
<td><a class="notice-title-click">{{currentTock}}</a></td>
<td>{{retailPrice}}</td>
<td>{{lowPrice}}</td>
<td>{{estimatePurchasePrice}}</td>

View file

@ -26,6 +26,24 @@
<div class="layui-input-block ver-center">
{{operTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">单据编号:</label>
<div class="layui-input-block ver-center">
{{defaultNumber}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">操作人:</label>
<div class="layui-input-block ver-center">
{{operPersonName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">操作日期:</label>
<div class="layui-input-block ver-center">
{{createTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项:</label>

View file

@ -0,0 +1,111 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="margin: 0 auto; padding: 20px;">
<form class="layui-form" action="" id="showForm">
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">供应商<i class="red">*</i></label>
<div class="layui-input-block">
<select id="supplierId" lay-search win-verify="required"></select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项<i class="red">*</i></label>
<div class="layui-input-block">
<div class="winui-toolbar">
<div class="winui-tool" style="text-align: left;">
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
</div>
</div>
<table class="layui-table">
<thead>
<tr>
<th style="width: 30px;"></th>
<th style="width: 120px;">仓库</th>
<th style="width: 120px;">产品(型号)</th>
<th style="width: 70px;">单位</th>
<th style="width: 80px;">库存</th>
<th style="width: 80px;">数量</th>
<th style="width: 80px;">单价</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">支付账户</label>
<div class="layui-input-block">
<select id="accountId" lay-search></select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">共计金额</label>
<div class="layui-input-block ver-center" id="allPrice">
0.00
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款类型</label>
<div class="layui-input-block">
<select id="payType" lay-search>
<option value="1">现金</option>
<option value="2">记账</option>
<option value="3">其他</option>
</select>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea id="remark" name="remark" placeholder="请输入备注" class="layui-textarea" style="height: 100px;" maxlength="200"></textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" id="cancle">取消</button>
<button class="winui-btn" lay-submit lay-filter="formAddBean">保存</button>
</div>
</div>
</form>
</div>
<!-- usetableTemplate -->
<script type="text/x-handlebars-template" id="usetableTemplate">
<tr trcusid="{{trId}}">
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
<td><select id="{{depotId}}" lay-filter="selectDepotProperty" lay-search win-verify="required"></select></td>
<td><select id="{{materialId}}" lay-filter="selectMaterialProperty" lay-search win-verify="required"></select></td>
<td><select id="{{unitId}}" lay-filter="selectUnitProperty" lay-search win-verify="required"></select></td>
<td id="{{currentTock}}"></td>
<td><input type="text" class="layui-input rkNum" value="1" id="{{rkNum}}" win-verify="required|number"/></td>
<td id="{{unitPrice}}"></td>
<td id="{{amountOfMoney}}"></td>
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
</tr>
</script>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/purchaseorder/'}).use('purchaseorderadd');
</script>
</body>
</html>

View file

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="padding:20px; margin:0 auto;">
<form class="layui-form" action="" id="showForm">
</form>
<script type="text/x-handlebars-template" id="beanTemplate">
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">供应商:</label>
<div class="layui-input-block ver-center">
{{supplierName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期:</label>
<div class="layui-input-block ver-center">
{{operTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">单据编号:</label>
<div class="layui-input-block ver-center">
{{defaultNumber}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">操作人:</label>
<div class="layui-input-block ver-center">
{{operPersonName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">操作日期:</label>
<div class="layui-input-block ver-center">
{{createTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项:</label>
<div class="layui-input-block ver-center">
<table class="layui-table">
<thead>
<tr>
<th style="width: 120px;">仓库</th>
<th style="width: 150px;">产品(型号)</th>
<th style="width: 70px;">单位</th>
<th style="width: 80px;">数量</th>
<th style="width: 80px;">单价</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
{{#each items}}
<tr>
<td>{{deportName}}</td>
<td>{{materialNames}}</td>
<td>{{unitName}}</td>
<td>{{operNumber}}</td>
<td>{{unitPrice}}</td>
<td>{{allPrice}}</td>
<td>{{remark}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">支付账户:</label>
<div class="layui-input-block ver-center">
{{accountName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">共计金额:</label>
<div class="layui-input-block ver-center">
{{totalPrice}}元
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款类型:</label>
<div class="layui-input-block ver-center">
{{payType}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block ver-center">
{{remark}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">状态:</label>
<div class="layui-input-block ver-center" id="statusName">
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">审批意见:</label>
<div class="layui-input-block ver-center">
{{statusContent}}
</div>
</div>
{{/bean}}
</script>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/purchaseorder/'}).use('purchaseorderdetails');
</script>
</body>
</html>

View file

@ -0,0 +1,118 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="margin: 0 auto; padding: 20px;">
<form class="layui-form" action="" id="showForm">
</form>
</div>
<!-- usetableTemplate -->
<script type="text/x-handlebars-template" id="usetableTemplate">
<tr trcusid="{{trId}}">
<td><input type="checkbox" rowId="{{id}}" lay-filter="checkboxProperty" name="tableCheckRow"/></td>
<td><select id="{{depotId}}" lay-filter="selectDepotProperty" lay-search win-verify="required"></select></td>
<td><select id="{{materialId}}" lay-filter="selectMaterialProperty" lay-search win-verify="required"></select></td>
<td><select id="{{unitId}}" lay-filter="selectUnitProperty" lay-search win-verify="required"></select></td>
<td id="{{currentTock}}"></td>
<td><input type="text" class="layui-input rkNum" value="1" id="{{rkNum}}" win-verify="required|number"/></td>
<td id="{{unitPrice}}"></td>
<td id="{{amountOfMoney}}"></td>
<td><input type="text" class="layui-input" id="{{remark}}"/></td>
</tr>
</script>
<!-- beanTemplate -->
<script type="text/x-handlebars-template" id="beanTemplate">
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">供应商<i class="red">*</i></label>
<div class="layui-input-block">
<select id="supplierId" lay-search win-verify="required"></select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期<i class="red">*</i></label>
<div class="layui-input-block">
<input type="text" id="operTime" name="operTime" win-verify="required" placeholder="请选择单据日期" class="layui-input" value="{{operTime}}"/>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项<i class="red">*</i></label>
<div class="layui-input-block">
<div class="winui-toolbar">
<div class="winui-tool" style="text-align: left;">
<button id="addRow" class="winui-toolbtn" type="button"><i class="fa fa-plus" aria-hidden="true"></i>新增行</button>
<button id="deleteRow" class="winui-toolbtn" type="button"><i class="fa fa-trash-o" aria-hidden="true"></i>删除行</button>
</div>
</div>
<table class="layui-table">
<thead>
<tr>
<th style="width: 30px;"></th>
<th style="width: 120px;">仓库</th>
<th style="width: 120px;">产品(型号)</th>
<th style="width: 70px;">单位</th>
<th style="width: 80px;">库存</th>
<th style="width: 80px;">数量</th>
<th style="width: 80px;">单价</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">支付账户</label>
<div class="layui-input-block">
<select id="accountId" lay-search></select>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">共计金额</label>
<div class="layui-input-block ver-center" id="allPrice">
{{totalPrice}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款类型</label>
<div class="layui-input-block">
<select id="payType" lay-search>
<option value="1">现金</option>
<option value="2">记账</option>
<option value="3">其他</option>
</select>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea id="remark" name="remark" placeholder="请输入备注" class="layui-textarea" style="height: 100px;" maxlength="200">{{remark}}</textarea>
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<div class="layui-input-block">
<button class="winui-btn" id="cancle">取消</button>
<button class="winui-btn" lay-submit lay-filter="formEditBean">保存</button>
</div>
</div>
{{/bean}}
</script>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/purchaseorder/'}).use('purchaseorderedit');
</script>
</body>
</html>

View file

@ -0,0 +1,135 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div style="padding:20px; margin:0 auto;">
<form class="layui-form" action="" id="showForm">
</form>
<script type="text/x-handlebars-template" id="beanTemplate">
{{#bean}}
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">供应商:</label>
<div class="layui-input-block ver-center">
{{supplierName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">单据日期:</label>
<div class="layui-input-block ver-center">
{{operTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">单据编号:</label>
<div class="layui-input-block ver-center">
{{defaultNumber}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">操作人:</label>
<div class="layui-input-block ver-center">
{{operPersonName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">操作日期:</label>
<div class="layui-input-block ver-center">
{{createTime}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">列表项:</label>
<div class="layui-input-block ver-center">
<table class="layui-table">
<thead>
<tr>
<th style="width: 120px;">仓库</th>
<th style="width: 150px;">产品(型号)</th>
<th style="width: 70px;">单位</th>
<th style="width: 80px;">数量</th>
<th style="width: 80px;">单价</th>
<th style="width: 80px;">金额</th>
<th style="min-width: 100px;">备注</th>
</tr>
</thead>
<tbody id="useTable" class="insurance-table">
{{#each items}}
<tr>
<td>{{deportName}}</td>
<td>{{materialNames}}</td>
<td>{{unitName}}</td>
<td>{{operNumber}}</td>
<td>{{unitPrice}}</td>
<td>{{allPrice}}</td>
<td>{{remark}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">支付账户:</label>
<div class="layui-input-block ver-center">
{{accountName}}
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">共计金额:</label>
<div class="layui-input-block ver-center">
{{totalPrice}}元
</div>
</div>
<div class="layui-form-item layui-col-xs6">
<label class="layui-form-label">付款类型:</label>
<div class="layui-input-block ver-center">
{{payType}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block ver-center">
{{remark}}
</div>
</div>
<div class="layui-form-item layui-col-xs12">
<span class="hr-title">审批</span><hr>
</div>
<form class="layui-form" action="">
<div class="layui-form-item">
<label class="layui-form-label">审批结果<i class="red">*</i></label>
<div class="layui-input-block winui-radio">
<input type="radio" name="flag" value="1" title="同意" checked="checked"/>
<input type="radio" name="flag" value="0" title="拒绝" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">审批意见</label>
<div class="layui-input-block">
<textarea id="opinion" placeholder="请输入审批意见" maxlength="200" class="layui-textarea" style="height: 100px;"></textarea>
</div>
</div>
<div class="layui-input-block">
<button class="winui-btn" id="cancle">取消</button>
<button class="winui-btn" lay-submit lay-filter="formAddBean">提交</button>
</div>
</form>
{{/bean}}
</script>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/purchaseorder/'}).use('purchaseorderexamine');
</script>
</body>
</html>

View file

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/font-awesome-4.7.0/css/font-awesome.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
</head>
<body>
<div class="txtcenter" style="margin:0 auto;padding-top:10px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">单据编号</label>
<div class="layui-input-inline">
<input type="text" id="defaultNumber" name="defaultNumber" placeholder="请输入单据编号" class="layui-input" />
</div>
<label class="layui-form-label">商品信息</label>
<div class="layui-input-inline">
<input type="text" id="material" name="material" placeholder="请输入名称或者型号" class="layui-input" />
</div>
<label class="layui-form-label">单据日期</label>
<div class="layui-input-inline">
<input type="text" id="operTime" name="operTime" placeholder="请选择单据日期" class="layui-input" />
</div>
<button type="reset" class="layui-btn layui-btn-primary list-form-search">重置</button>
<button class="layui-btn list-form-search" lay-submit lay-filter="formSearch">搜索</button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar">
<div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i>刷新数据</button>
<button id="addBean" class="winui-toolbtn" auth="1570958309701"><i class="fa fa-plus" aria-hidden="true"></i>新增</button>
</div>
</div>
<div style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
<script type="text/html" id="tableBar">
{{# if(d.status == 0 || d.status == 3){ }}
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-xs" lay-event="subExamine">提交审核</a>
{{# } else if(d.status == 1) { }}
<a class="layui-btn layui-btn-xs" lay-event="examine">审核</a>
{{# } else if(d.status == 2) { }}
<a class="layui-btn layui-btn-xs" lay-event="turnPurchase">转采购单</a>
{{# } }}
</script>
</div>
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/purchaseorder/'}).use('purchaseorderlist');
</script>
</body>
</html>

View file

@ -32,22 +32,22 @@ spring.servlet.multipart.max-file-size=10Mb
spring.http.multipart.max-request-size=100Mb
#redis 1连接信息
redis.ip1=192.168.1.140
redis.ip1=192.168.0.140
redis.host1=9000
#redis 2连接信息
redis.ip2=192.168.1.140
redis.ip2=192.168.0.140
redis.host2=9001
#redis 3连接信息
redis.ip3=192.168.1.140
redis.ip3=192.168.0.140
redis.host3=9002
#redis 4连接信息
redis.ip4=192.168.1.140
redis.ip4=192.168.0.140
redis.host4=9003
#redis 5连接信息
redis.ip5=192.168.1.140
redis.ip5=192.168.0.140
redis.host5=9004
#redis 6连接信息
redis.ip6=192.168.1.140
redis.ip6=192.168.0.140
redis.host6=9005
redis.commandTimeout=1000

View file

@ -123,7 +123,7 @@ var layer = {
content: content,
btn: ready.btn,
yes: yes,
btn2: cancel
btn2: cancel ? cancel: function(){$("body").find(".mask-req-str").remove();}
}, type ? {} : options));
},