提交 61635481 编写于 作者: L lsh

增加商品管理和部分进货管理controller

上级 47c6c9b9
package com.bytechainx.psi.web.web.controller.goods;
import java.util.Arrays;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.EnumConstant.DataStatusEnum;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.GoodsAttribute;
import com.bytechainx.psi.common.service.goods.GoodsAttributeService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 商品属性
*/
@Path("/goods/goods/attribute")
public class GoodsAttributeController extends BaseController {
@Inject
private GoodsAttributeService attributeService;
/**
* 首页
*/
@Permission(Permissions.goods_goods_attribute)
public void index() {
setAttr("hideStopFlag", true);
}
/**
* 列表
*/
@Permission(Permissions.goods_goods_attribute)
public void list() {
int pageNumber = getInt("pageNumber", 1);
Boolean hideStopFlag = getBoolean("hide_stop_flag", true); // 隐藏停用
Kv condKv = Kv.create();
if(hideStopFlag) {
condKv.set("data_status", DataStatusEnum.enable.getValue());
}
Page<GoodsAttribute> page = attributeService.paginate(condKv, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 查看
*/
@Permission(Permissions.goods_goods_attribute_show)
public void show() {
renderJson(Ret.ok());
}
/**
* 添加
*/
@Permission(Permissions.goods_goods_attribute_create)
public void add() {
}
/**
* 新增
*/
@Permission(Permissions.goods_goods_attribute_create)
@Before(Tx.class)
public void create() {
GoodsAttribute goodsAttribute = getModel(GoodsAttribute.class, "", true);
Ret ret = attributeService.create(goodsAttribute);
renderJson(ret);
}
/**
* 编辑
*/
@Permission(Permissions.goods_goods_attribute_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsAttribute goodsAttribute = GoodsAttribute.dao.findById(id);
if(goodsAttribute == null) {
renderError(404);
return;
}
setAttr("goodsAttribute", goodsAttribute);
}
/**
* 修改
*/
@Permission(Permissions.goods_goods_attribute_update)
@Before(Tx.class)
public void update() {
GoodsAttribute goodsAttribute = getModel(GoodsAttribute.class, "", true);
Ret ret = attributeService.update(goodsAttribute);
renderJson(ret);
}
/**
* 删除
*/
@Permission(Permissions.goods_goods_attribute_delete)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = attributeService.delete(Arrays.asList(id));
renderJson(ret);
}
/**
* 停用
*/
@Permission(Permissions.goods_goods_attribute_disable)
@Before(Tx.class)
public void disable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = attributeService.disable(Arrays.asList(id));
renderJson(ret);
}
/**
* 启用
*/
@Permission(Permissions.goods_goods_attribute_disable)
@Before(Tx.class)
public void enable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = attributeService.enable(Arrays.asList(id));
renderJson(ret);
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.goods;
import java.util.ArrayList;
import java.util.List;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.GoodsCategory;
import com.bytechainx.psi.common.service.goods.GoodsCategoryService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 商品分类
*/
@Path("/goods/goods/category")
public class GoodsCategoryController extends BaseController {
@Inject
private GoodsCategoryService goodsCategoryService;
/**
* 首页
*/
@Permission(Permissions.goods_goods_category)
public void index() {
}
/**
* 列表
*/
@Permission(Permissions.goods_goods_category)
public void list() {
List<GoodsCategory> topList = GoodsCategory.dao.findTop();
setAttr("topList", topList);
}
@Permission({Permissions.goods_goods_category,Permissions.inventory_stock_info} )
public void listByJson() {
List<GoodsCategory> topList = GoodsCategory.dao.findTop();
List<GoodsCategory> categoryList = new ArrayList<>();
for (GoodsCategory top : topList) {
StringBuffer levelSb = new StringBuffer();
top.loopChilds(categoryList, levelSb);
}
renderJson(Ret.ok().set("data", categoryList));
}
@Permission(Permissions.goods_goods_category)
public void optionList() {
Page<GoodsCategory> page = goodsCategoryService.paginate(1, maxPageSize);
setAttr("page", page);
}
/**
* 查看
*/
@Permission(Permissions.goods_goods_category_show)
public void show() {
renderJson(Ret.ok());
}
/**
* 添加
*/
@Permission(Permissions.goods_goods_category_create)
public void add() {
setAttrCommon();
setAttr("parent_id", getInt("parent_id"));
setAttr("sourcePage", get("sourcePage"));
}
/**
* 新增
*/
@Permission(Permissions.goods_goods_category_create)
@Before(Tx.class)
public void create() {
GoodsCategory category = getModel(GoodsCategory.class, "", true);
Ret ret = goodsCategoryService.create(category);
renderJson(ret);
}
/**
* 编辑
*/
@Permission(Permissions.goods_goods_category_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsCategory category = GoodsCategory.dao.findById(id);
if(category == null) {
renderError(404);
return;
}
setAttrCommon();
setAttr("goodsCategory", category);
}
/**
* 修改
*/
@Permission(Permissions.goods_goods_category_update)
@Before(Tx.class)
public void update() {
GoodsCategory category = getModel(GoodsCategory.class, "", true);
Ret ret = goodsCategoryService.update(category);
renderJson(ret);
}
/**
* 删除
*/
@Permission(Permissions.goods_goods_category_delete)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsCategoryService.delete(id);
renderJson(ret);
}
/**
* 设置公共数据
*/
private void setAttrCommon() {
List<GoodsCategory> topList = GoodsCategory.dao.findTop();
setAttr("topList", topList);
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.goods;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import com.bytechainx.psi.common.EnumConstant.DataStatusEnum;
import com.bytechainx.psi.common.EnumConstant.FlagEnum;
import com.bytechainx.psi.common.EnumConstant.GoodsTypeEnum;
import com.bytechainx.psi.common.EnumConstant.OrderUnitTypeEnum;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.kit.DateUtil;
import com.bytechainx.psi.common.model.CustomerPriceLevel;
import com.bytechainx.psi.common.model.GoodsAttribute;
import com.bytechainx.psi.common.model.GoodsAttributeRef;
import com.bytechainx.psi.common.model.GoodsCategory;
import com.bytechainx.psi.common.model.GoodsInfo;
import com.bytechainx.psi.common.model.GoodsPrice;
import com.bytechainx.psi.common.model.GoodsSpec;
import com.bytechainx.psi.common.model.GoodsSpec.GoodsSpecDto;
import com.bytechainx.psi.common.model.GoodsSpecRef;
import com.bytechainx.psi.common.model.GoodsUnit;
import com.bytechainx.psi.common.service.goods.GoodsCategoryService;
import com.bytechainx.psi.common.service.goods.GoodsInfoService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 商品管理
*/
@Path("/goods/goods/info")
public class GoodsInfoController extends BaseController {
@Inject
private GoodsInfoService goodsInfoService;
@Inject
private GoodsCategoryService goodsCategoryService;
/**
* 首页
*/
@Permission(Permissions.goods_goods_info)
public void index() {
List<GoodsCategory> topCategoryList = GoodsCategory.dao.findTop();
setAttr("topCategoryList", topCategoryList);
}
/**
* 列表
*/
@Permission(Permissions.goods_goods_info)
public void list() {
int pageNumber = getInt("pageNumber", 1);
Integer goodsCategoryId = getInt("goods_category_id");
Integer supplierInfoId = getInt("supplier_info_id");
Boolean hideStopFlag = getBoolean("hide_stop_flag"); // 隐藏停用商品
String keyword = get("keyword");
Kv condKv = Kv.create();
condKv.set("goods_category_id", goodsCategoryId);
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("name,remark", keyword); // 多字段模糊查询
if(hideStopFlag) {
condKv.set("data_status", DataStatusEnum.enable.getValue());
}
Page<GoodsInfo> page = goodsInfoService.paginate(condKv, pageNumber, pageSize);
setAttr("page", page);
setAttr("hideStopFlag", hideStopFlag);
}
/**
* 查看
*/
@Permission(Permissions.goods_goods_info_show)
public void show() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(id);
if(info == null) {
renderError(404);
return;
}
List<GoodsAttribute> goodsAttributeList = GoodsAttribute.dao.findAll();
GoodsUnit stockUnit = info.getStockMainUnit();
List<CustomerPriceLevel> priceLevelList = CustomerPriceLevel.dao.findAll();
setAttr("priceLevelList", priceLevelList);
setAttr("stockUnit", stockUnit);
setAttr("goodsAttributeList", goodsAttributeList);
setAttr("goodsInfo", info);
}
/**
* 添加
*/
@Permission(Permissions.goods_goods_info_create)
public void add() {
setAttrCommon();
setAttr("barCode", DateUtil.getSecondNumber(new Date()));
}
/**
* 新增
*/
@Permission(Permissions.goods_goods_info_create)
@Before(Tx.class)
public void create() {
GoodsInfo info = getModel(GoodsInfo.class, "", true);
info.setGoodsImages(getParaValues("thumbs"), getParaValues("originals"));
String specFlag = get("spec_flag");
if(StringUtils.equals(specFlag, "on")) {
info.setSpecFlag(true);
} else {
info.setSpecFlag(false);
}
String saleFlag = get("sale_flag");
if(StringUtils.equals(saleFlag, "on")) {
info.setSaleFlag(true);;
} else {
info.setSaleFlag(false);;
}
String purchaseFlag = get("purchase_flag");
if(StringUtils.equals(purchaseFlag, "on")) {
info.setPurchaseFlag(true);;
} else {
info.setPurchaseFlag(false);;
}
List<GoodsSpecRef> goodsSpecRefList = new ArrayList<>();
Integer[] goodsSpecIds = getParaValuesToInt("goods_spec_ids");
if(info.getSpecFlag() && goodsSpecIds != null && goodsSpecIds.length > 0) {
int position = 1; // 规格要排序,从小到大
for (Integer specId : goodsSpecIds) {
for (GoodsSpecRef ref : goodsSpecRefList) {
if(ref.getGoodsSpecId().intValue() == specId.intValue()) {
renderJson(Ret.fail("所选规格存在重复"));
return;
}
}
String specValueIds = get("spec_value_ids_"+specId);
if(StringUtils.isEmpty(specValueIds)) {
continue;
}
GoodsSpecRef ref = new GoodsSpecRef();
ref.setGoodsSpecId(specId);
ref.setSpecValue(specValueIds);
ref.setPosition(position++);
goodsSpecRefList.add(ref);
}
}
List<GoodsAttributeRef> goodsAttributeRefList = new ArrayList<>();
String[] attributeValues = getParaValues("goods_attribute_values");
Integer[] attributeIds = getParaValuesToInt("goods_attribute_ids");
for (int index = 0; index < attributeIds.length; index++) {
GoodsAttributeRef ref = new GoodsAttributeRef();
ref.setGoodsAttributeId(attributeIds[index]);
ref.setAttrValue(attributeValues[index]);
goodsAttributeRefList.add(ref);
}
Ret ret = goodsInfoService.create(info,goodsSpecRefList,goodsAttributeRefList);
renderJson(ret);
}
/**
* 编辑
*/
@Permission(Permissions.goods_goods_info_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(id);
if(info == null) {
renderError(404);
return;
}
setAttr("goodsInfo", info);
if(StringUtils.isEmpty(info.getBarCode())) {
setAttr("barCode", DateUtil.getSecondNumber(new Date()));
}
setAttrCommon();
}
/**
* 编辑商品子件
*/
@Permission(Permissions.goods_goods_info_update)
public void editAssembly() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(id);
if(info == null || info.getGoodsType() != GoodsTypeEnum.assembly.getValue()) { // 非组合商品
renderError(404);
return;
}
setAttr("goodsInfo", info);
}
/**
* 编辑多规格商品子件
*/
@Permission(Permissions.goods_goods_info_update)
public void editChildGoods() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
String specIds = get("spec_ids"); // 规格ID数值,格式: id1:idvalue1|id2:idvalue2
String specNames = get("spec_names");
GoodsInfo info = GoodsInfo.dao.findById(id);
setAttr("goodsInfo", info);
setAttr("specIds", specIds);
setAttr("specNames", specNames);
}
@Permission(Permissions.goods_goods_info_update)
public void multiSpecList() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(id);
if(info == null || info.getGoodsType() != GoodsTypeEnum.assembly.getValue()) { // 非组合商品
renderError(404);
return;
}
setAttr("goodsInfo", info);
}
/**
* 编辑价格
*/
@Permission(Permissions.goods_goods_info_updatePrice)
public void editPrice() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(id);
if(info == null) {
renderError(404);
return;
}
List<CustomerPriceLevel> priceLevelList = CustomerPriceLevel.dao.findAll();
setAttr("goodsInfo", info);
setAttr("priceLevelList", priceLevelList);
keepPara("sourcePage");
}
/**
* 价格设置
*/
@Permission(Permissions.goods_goods_info_updatePrice)
@Before(Tx.class)
public void updatePrice() {
Integer goodsId = getInt("id");
if(goodsId == null || goodsId <= 0) {
renderError(404);
return;
}
String[] goodsUnionIds = getParaValues("goods_union_ids");
String[] barCodes = getParaValues("bar_codes");
String[] costPrices = getParaValues("cost_prices");
List<CustomerPriceLevel> priceLevelList = CustomerPriceLevel.dao.findAll();
Kv salePriceList = Kv.create();
for (CustomerPriceLevel priceLevel : priceLevelList) {
String[] salePrices = getParaValues("sale_prices_"+priceLevel.getId());
salePriceList.set(""+priceLevel.getId(), salePrices);
}
Ret ret = goodsInfoService.updatePrice(goodsId, goodsUnionIds, barCodes, costPrices, salePriceList);
renderJson(ret);
}
/**
* 批量价格
*/
@Permission(Permissions.goods_goods_info_updatePrice)
public void batchPrice() {
Integer goodsId = getInt("goodsId");
if(goodsId == null || goodsId <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(goodsId);
setAttr("goodsInfo", info);
keepPara("priceName");
}
/**
* 编辑库存预警设置
*/
@Permission(Permissions.goods_goods_info_updateStockConfig)
public void editStockConfig() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(id);
if(info == null) {
renderError(404);
return;
}
GoodsUnit stockUnit = info.getStockMainUnit();
setAttr("goodsInfo", info);
setAttr("stockUnit", stockUnit);
}
/**
* 库存预警设置
*/
@Permission(Permissions.goods_goods_info_updateStockConfig)
@Before(Tx.class)
public void updateStockConfig() {
Integer goodsId = getInt("id");
if(goodsId == null || goodsId <= 0) {
renderError(404);
return;
}
GoodsInfo info = GoodsInfo.dao.findById(goodsId);
if(info == null) {
renderError(404);
return;
}
String stockWarnFlag = get("stock_warn_flag");
if(StringUtils.equals(stockWarnFlag, "on")) {
info.setStockWarnFlag(true);
} else {
info.setStockWarnFlag(false);;
}
Integer stockWarnType = getInt("stock_warn_type");
info.setStockWarnType(stockWarnType);
info.setUpdatedAt(new Date());
info.update();
String[] goodsUnionIds = getParaValues("goods_union_ids");
String[] lowStocks = getParaValues("low_stocks");
String[] safeStocks = getParaValues("safe_stocks");
String[] highStocks = getParaValues("high_stocks");
Ret ret = goodsInfoService.updateStockWarnConfig(goodsId, goodsUnionIds, lowStocks, safeStocks, highStocks);
renderJson(ret);
}
/**
* 批量设置库存预警
*/
@Permission(Permissions.goods_goods_info_updateStockConfig)
public void batchStock() {
keepPara();
}
/**
* 修改
*/
@Permission(Permissions.goods_goods_info_update)
@Before(Tx.class)
public void update() {
GoodsInfo info = getModel(GoodsInfo.class, "", true);
info.setGoodsImages(getParaValues("thumbs"), getParaValues("originals"));
String specFlag = get("spec_flag");
if(StringUtils.equals(specFlag, "on")) {
info.setSpecFlag(true);
} else {
info.setSpecFlag(false);
}
String saleFlag = get("sale_flag");
if(StringUtils.equals(saleFlag, "on")) {
info.setSaleFlag(true);;
} else {
info.setSaleFlag(false);;
}
String purchaseFlag = get("purchase_flag");
if(StringUtils.equals(purchaseFlag, "on")) {
info.setPurchaseFlag(true);;
} else {
info.setPurchaseFlag(false);;
}
List<GoodsSpecRef> goodsSpecRefList = new ArrayList<>();
Integer[] goodsSpecIds = getParaValuesToInt("goods_spec_ids");
if(info.getSpecFlag() && goodsSpecIds != null && goodsSpecIds.length > 0) {
int position = 1; // 规格要排序,从小到大
for (Integer specId : goodsSpecIds) {
for (GoodsSpecRef ref : goodsSpecRefList) {
if(ref.getGoodsSpecId().intValue() == specId.intValue()) {
renderJson(Ret.fail("所选规格存在重复"));
return;
}
}
String specValueIds = get("spec_value_ids_"+specId);
if(StringUtils.isEmpty(specValueIds)) {
continue;
}
GoodsSpecRef ref = new GoodsSpecRef();
ref.setGoodsSpecId(specId);
ref.setSpecValue(specValueIds);
ref.setPosition(position++);
goodsSpecRefList.add(ref);
}
}
List<GoodsAttributeRef> goodsAttributeRefList = new ArrayList<>();
String[] attributeValues = getParaValues("goods_attribute_values");
Integer[] attributeIds = getParaValuesToInt("goods_attribute_ids");
for (int index = 0; index < attributeIds.length; index++) {
GoodsAttributeRef ref = new GoodsAttributeRef();
ref.setGoodsAttributeId(attributeIds[index]);
ref.setAttrValue(attributeValues[index]);
goodsAttributeRefList.add(ref);
}
Ret ret = goodsInfoService.update(info,goodsSpecRefList,goodsAttributeRefList);
renderJson(ret);
}
/**
* 删除
*/
@Permission(Permissions.goods_goods_info_delete)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsInfoService.delete(Arrays.asList(id));
renderJson(ret);
}
/**
* 停用
*/
@Permission(Permissions.goods_goods_info_disable)
@Before(Tx.class)
public void disable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsInfoService.disable(Arrays.asList(id));
renderJson(ret);
}
/**
* 启用
*/
@Permission(Permissions.goods_goods_info_disable)
@Before(Tx.class)
public void enable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsInfoService.enable(Arrays.asList(id));
renderJson(ret);
}
/**
* 设置公共数据
*/
private void setAttrCommon() {
List<GoodsCategory> topCategoryList = GoodsCategory.dao.findTop();
List<GoodsUnit> goodsUnitList = GoodsUnit.dao.findAll();
List<GoodsSpec> goodsSpecList = GoodsSpec.dao.findAll();
List<GoodsAttribute> goodsAttributeList = GoodsAttribute.dao.findAll();
setAttr("topCategoryList", topCategoryList);
setAttr("goodsUnitList", goodsUnitList);
setAttr("goodsSpecList", goodsSpecList);
setAttr("goodsAttributeList", goodsAttributeList);
}
/**
* 导入
*/
@Permission(Permissions.goods_goods_info_createImport)
public void createImport() {
renderJson(Ret.ok());
}
/**
* 加载货品信息
*/
public void listByJson() {
int pageNumber = getInt("pageNumber", 1);
String keyword = get("keyword");
Kv condKv = Kv.create();
condKv.set("name,code,bar_code", keyword); // 多字段模糊查询
condKv.set("data_status", DataStatusEnum.enable.getValue());
Boolean purchaseFlag = getBoolean("purchase_flag");
if(purchaseFlag != null && purchaseFlag) {
condKv.set("purchase_flag", FlagEnum.YES.getValue());
}
Boolean saleFlag = getBoolean("sale_flag");
if(saleFlag != null && saleFlag) {
condKv.set("sale_flag", FlagEnum.YES.getValue());
}
Page<GoodsInfo> page = goodsInfoService.paginate(condKv, pageNumber, pageSize);
renderJson(Ret.ok().set("data", page.getList()));
}
/**
* 查询货品规格
*/
public void listSpecByJson() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("商品不存在"));
return;
}
String keyword = get("keyword");
List<Map<String, String>> goodsSpecList = GoodsInfo.dao.findSpecByKeyword(id, keyword);
renderJson(Ret.ok().set("data", goodsSpecList));
}
/**
* 查询货品单位
*/
public void listUnitByJson() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("商品不存在"));
return;
}
String keyword = get("keyword");
int unitType = getInt("unit_type", OrderUnitTypeEnum.stock.getValue());
GoodsInfo goodsInfo = GoodsInfo.dao.findById(id);
List<GoodsUnit> unitList = goodsInfo.getGoodsUnitList(OrderUnitTypeEnum.getEnum(unitType));
if(StringUtils.isEmpty(keyword)) {
renderJson(Ret.ok().set("data", unitList));
return;
}
List<GoodsUnit> _unitList = new ArrayList<>();
for (GoodsUnit goodsUnit : unitList) {
if(StringUtils.contains(goodsUnit.getName(), keyword)) {
_unitList.add(goodsUnit);
}
}
renderJson(Ret.ok().set("data", _unitList));
}
/**
* 查询商品价格
*/
public void priceByJson() {
Integer customerInfoId = getInt("customer_info_id");
Integer goodsInfoId = getInt("goods_info_id");
Integer unitId = getInt("goods_unit_id");
String specstring = get("goods_spec_ids");
GoodsSpecDto specDto = GoodsSpec.dao.getGoodsSpecDto(specstring);
GoodsPrice goodsPrice = GoodsPrice.dao.findBySpec(goodsInfoId, specDto.getSpec1Id(), specDto.getSpecOption1Id(), specDto.getSpec2Id(), specDto.getSpecOption2Id(), specDto.getSpec3Id(), specDto.getSpecOption3Id(), unitId);
if(goodsPrice == null) {
goodsPrice = new GoodsPrice();
goodsPrice.setCostPrice(BigDecimal.ZERO);
}
if(customerInfoId != null && customerInfoId > 0) { // 查找客户的销售价格
BigDecimal salePrice = goodsPrice.getCustomerSalePrice(customerInfoId);
if(salePrice != null) {
goodsPrice.put("cust_price", salePrice);
}
}
if(goodsPrice.get("cust_price") == null) {
goodsPrice.put("cust_price", BigDecimal.ZERO);
}
renderJson(Ret.ok().set("data", goodsPrice));
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.goods;
import java.util.Arrays;
import java.util.List;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.GoodsPrintTag;
import com.bytechainx.psi.common.model.TenantPrintTemplate;
import com.bytechainx.psi.common.service.goods.GoodsPrintTagService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 打印标签
*/
@Path("/goods/goods/printTag")
public class GoodsPrintTagController extends BaseController {
@Inject
private GoodsPrintTagService printTagService;
/**
* 首页
*/
@Permission(Permissions.goods_goods_printTag)
public void index() {
}
/**
* 列表
*/
@Permission(Permissions.goods_goods_printTag)
public void list() {
int pageNumber = getInt("pageNumber", 1);
Page<GoodsPrintTag> page = printTagService.paginate(null, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 查看
*/
@Permission(Permissions.goods_goods_printTag_show)
public void show() {
renderJson(Ret.ok());
}
/**
* 新增
*/
@Permission(Permissions.goods_goods_printTag_create)
@Before(Tx.class)
public void create() {
GoodsPrintTag goodsPrintTag = getModel(GoodsPrintTag.class, "", true);
Ret ret = printTagService.create(goodsPrintTag);
renderJson(ret);
}
/**
* 删除
*/
@Permission(Permissions.goods_goods_printTag_delete)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = printTagService.delete(Arrays.asList(id));
renderJson(ret);
}
/**
* 显示打印模板
*/
@Permission(Permissions.goods_goods_printTag)
@Before(Tx.class)
public void showPrint() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
GoodsPrintTag printTag = GoodsPrintTag.dao.findById(id);
if(printTag == null) {
renderError(404);
return;
}
List<TenantPrintTemplate> templateList = printTag.getPrintTemplateList();
setAttr("templateList", templateList);
setAttr("printTag", printTag);
}
/**
* 打印或预览
*/
@Permission(Permissions.goods_goods_printTag)
public void print() {
Integer id = getInt("id");
Integer templateId = getInt("template_id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
GoodsPrintTag printTag = GoodsPrintTag.dao.findById(id);
if(printTag == null) {
renderError(404);
return;
}
TenantPrintTemplate printTemplate;
if(templateId == null || templateId <= 0) {
printTemplate = printTag.getPrintDefaultTemplate();
} else {
printTemplate = TenantPrintTemplate.dao.findById(templateId);
}
if(printTemplate == null) {
renderJson(Ret.fail("打印模板不存在,请先设置打印模板"));
return;
}
Ret ret = Ret.ok();
ret.set("tpl_content", printTemplate.getContent());
ret.set("json_data", printTag.getPrintData());
ret.set("order", printTag);
renderJson(ret);
}
/**
* 更新打印次数
*/
@Permission(Permissions.goods_goods_printTag)
@Before(Tx.class)
public void updatePrint() {
renderJson(Ret.ok());
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.goods;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.bytechainx.psi.common.EnumConstant.DataStatusEnum;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.GoodsInfo;
import com.bytechainx.psi.common.model.GoodsSpec;
import com.bytechainx.psi.common.model.GoodsSpecOptions;
import com.bytechainx.psi.common.model.GoodsSpecRef;
import com.bytechainx.psi.common.service.goods.GoodsSpecService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 规格管理
*/
@Path("/goods/goods/spec")
public class GoodsSpecController extends BaseController {
@Inject
private GoodsSpecService goodsSpecService;
/**
* 首页
*/
@Permission(Permissions.goods_goods_spec)
public void index() {
setAttr("hideStopFlag", true);
}
/**
* 列表
*/
@Permission(Permissions.goods_goods_spec)
public void list() {
int pageNumber = getInt("pageNumber", 1);
Boolean hideStopFlag = getBoolean("hide_stop_flag", true); // 隐藏停用客户
Kv condKv = Kv.create();
if(hideStopFlag) {
condKv.set("data_status", DataStatusEnum.enable.getValue());
}
Page<GoodsSpec> page = goodsSpecService.paginate(condKv, pageNumber, pageSize);
setAttr("page", page);
}
@Permission(Permissions.goods_goods)
public void listByJson() {
Integer id = getInt("id");
GoodsInfo goodsInfo = GoodsInfo.dao.findById(id);
if(goodsInfo == null) {
renderJson(Ret.fail());
return;
}
List<GoodsSpecRef> specRef = goodsInfo.getGoodsSpecRefList();
for (GoodsSpecRef ref : specRef) {
ref.put("name", ref.getGoodsSpec().getName());
}
renderJson(Ret.ok().set("data", specRef));
}
/**
* 查看
*/
@Permission(Permissions.goods_goods_spec_show)
public void show() {
renderJson(Ret.ok());
}
/**
* 添加
*/
@Permission(Permissions.goods_goods_spec_create)
public void add() {
}
/**
* 新增
*/
@Permission(Permissions.goods_goods_spec_create)
@Before(Tx.class)
public void create() {
GoodsSpec goodsSpec = getModel(GoodsSpec.class, "", true);
String[] specOptionValues = getParaValues("goods_spec_options_option_value");
List<GoodsSpecOptions> optionList = new ArrayList<>();
for (String v : specOptionValues) {
GoodsSpecOptions option = new GoodsSpecOptions();
option.setOptionValue(v);
option.setDataStatus(DataStatusEnum.enable.getValue());
optionList.add(option);
}
Ret ret = goodsSpecService.create(goodsSpec, optionList);
renderJson(ret);
}
/**
* 编辑
*/
@Permission(Permissions.goods_goods_spec_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsSpec goodsSpec = GoodsSpec.dao.findById(id);
if(goodsSpec == null) {
renderError(404);
return;
}
setAttr("goodsSpec", goodsSpec);
}
/**
* 修改
*/
@Permission(Permissions.goods_goods_spec_update)
@Before(Tx.class)
public void update() {
GoodsSpec goodsSpec = getModel(GoodsSpec.class, "", true);
Integer[] specOptionIds = getParaValuesToInt("goods_spec_options_id");
String[] specOptionValues = getParaValues("goods_spec_options_option_value");
List<GoodsSpecOptions> optionList = new ArrayList<>();
for (int index = 0; index < specOptionIds.length; index++) {
GoodsSpecOptions option = new GoodsSpecOptions();
option.setId(specOptionIds[index]);
option.setOptionValue(specOptionValues[index]);
option.setDataStatus(DataStatusEnum.enable.getValue());
optionList.add(option);
}
Ret ret = goodsSpecService.update(goodsSpec, optionList);
renderJson(ret);
}
/**
* 删除
*/
@Permission(Permissions.goods_goods_spec_delete)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsSpecService.delete(Arrays.asList(id));
renderJson(ret);
}
/**
* 停用
*/
@Permission(Permissions.goods_goods_spec_disable)
@Before(Tx.class)
public void disable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsSpecService.disable(Arrays.asList(id));
renderJson(ret);
}
/**
* 启用
*/
@Permission(Permissions.goods_goods_spec_disable)
@Before(Tx.class)
public void enable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsSpecService.enable(Arrays.asList(id));
renderJson(ret);
}
/**
* 获取规格对应的选项
*/
public void specOptionJson() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
GoodsSpec goodsSpec = GoodsSpec.dao.findFirst("select * from goods_spec where id = ?", id);
if(goodsSpec == null) {
renderJson(Ret.fail("规格不存在"));
return;
}
List<GoodsSpecOptions> list = null;
Integer goodsInfoId = getInt("goods_info_id");
if(goodsInfoId != null && goodsInfoId > 0) {
GoodsSpecRef goodsSpecRef = GoodsSpecRef.dao.findFirst("select * from goods_spec_ref where goods_info_id = ? and goods_spec_id = ?", goodsInfoId, id);
list = goodsSpecRef.getSpecValueList();
} else {
list = goodsSpec.getOptions();
}
for (GoodsSpecOptions option : list) {
option.put("name", option.getOptionValue());
}
renderJson(Ret.ok().set("data", list));
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.goods;
import java.util.Arrays;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.EnumConstant.DataStatusEnum;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.GoodsUnit;
import com.bytechainx.psi.common.service.goods.GoodsUnitService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 单位管理
*/
@Path("/goods/goods/unit")
public class GoodsUnitController extends BaseController {
@Inject
private GoodsUnitService goodsUnitService;
/**
* 首页
*/
@Permission(Permissions.goods_goods_unit)
public void index() {
setAttr("hideStopFlag", true);
}
/**
* 列表
*/
@Permission(Permissions.goods_goods_unit)
public void list() {
int pageNumber = getInt("pageNumber", 1);
Boolean hideStopFlag = getBoolean("hide_stop_flag", true); // 隐藏停用客户
Kv condKv = Kv.create();
if(hideStopFlag) {
condKv.set("data_status", DataStatusEnum.enable.getValue());
}
Page<GoodsUnit> page = goodsUnitService.paginate(condKv, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 查看
*/
@Permission(Permissions.goods_goods_unit_show)
public void show() {
renderJson(Ret.ok());
}
/**
* 添加
*/
@Permission(Permissions.goods_goods_unit_create)
public void add() {
}
/**
* 新增
*/
@Permission(Permissions.goods_goods_unit_create)
@Before(Tx.class)
public void create() {
GoodsUnit goodsUnit = getModel(GoodsUnit.class, "", true);
Ret ret = goodsUnitService.create(goodsUnit);
renderJson(ret);
}
/**
* 编辑
*/
@Permission(Permissions.goods_goods_unit_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
GoodsUnit goodsUnit = GoodsUnit.dao.findById(id);
if(goodsUnit == null) {
renderError(404);
return;
}
setAttr("goodsUnit", goodsUnit);
}
/**
* 修改
*/
@Permission(Permissions.goods_goods_unit_update)
@Before(Tx.class)
public void update() {
GoodsUnit goodsUnit = getModel(GoodsUnit.class, "", true);
Ret ret = goodsUnitService.update(goodsUnit);
renderJson(ret);
}
/**
* 删除
*/
@Permission(Permissions.goods_goods_unit_delete)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsUnitService.delete(Arrays.asList(id));
renderJson(ret);
}
/**
* 停用
*/
@Permission(Permissions.goods_goods_unit_disable)
@Before(Tx.class)
public void disable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsUnitService.disable(Arrays.asList(id));
renderJson(ret);
}
/**
* 启用
*/
@Permission(Permissions.goods_goods_unit_disable)
@Before(Tx.class)
public void enable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = goodsUnitService.enable(Arrays.asList(id));
renderJson(ret);
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.inventory;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.bytechainx.psi.common.EnumConstant.AuditStatusEnum;
import com.bytechainx.psi.common.EnumConstant.OrderPayStatusEnum;
import com.bytechainx.psi.common.EnumConstant.OrderStatusEnum;
import com.bytechainx.psi.common.EnumConstant.TenantConfigEnum;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.api.TraderCenterApi;
import com.bytechainx.psi.common.dto.ConditionFilter;
import com.bytechainx.psi.common.dto.ConditionFilter.Operator;
import com.bytechainx.psi.common.model.PurchaseOrder;
import com.bytechainx.psi.common.model.TenantConfig;
import com.bytechainx.psi.common.model.TenantPrintTemplate;
import com.bytechainx.psi.purchase.service.PurchaseOrderService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 进货单
*/
@Path("/inventory/purchase/order")
public class PurchaseOrderController extends BaseController {
@Inject
private PurchaseOrderService orderService;
/**
* 首页
*/
@Permission(Permissions.inventory_purchase_order)
public void index() {
}
/**
* 列表
*/
@Permission(Permissions.inventory_purchase_order)
public void list() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Kv condKv = conditions();
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrder> page = orderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
setAttr("page", page);
setAttr("hideDisableFlag", getBoolean("hide_disable_flag"));
setAttr("showAuditFlag", getBoolean("show_audit_flag"));
setAttr("hidePayFlag", getBoolean("hide_pay_flag"));
setAttrCommon();
}
/**
* 草稿单
*/
@Permission(Permissions.inventory_purchase_order)
public void draftIndex() {
draftList();
}
/**
* 草稿单列表
*/
@Permission(Permissions.inventory_purchase_order)
public void draftList() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
Kv condKv = Kv.create();
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("make_man_id", getAdminId()); // 只显示当前用户的草稿单
condKv.set("order_status", OrderStatusEnum.draft.getValue());
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrder> page = orderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 草稿单列表,JSON格式
*/
@Permission(Permissions.inventory_purchase_order)
public void draftListByJson() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
Integer tenantStoreId = getInt("tenant_store_id");
Kv condKv = Kv.create();
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("tenant_store_id", tenantStoreId);
condKv.set("make_man_id", getAdminId()); // 只显示当前用户的草稿单
condKv.set("order_status", OrderStatusEnum.draft.getValue());
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrder> page = orderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
renderJson(Ret.ok().set("data", page));
}
/**
* 查看
*/
@Permission(Permissions.inventory_purchase_order_show)
public void show() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(id);
if(purchaseOrder == null) {
renderError(404);
return;
}
setAttrCommon();
setAttr("purchaseOrder", purchaseOrder);
}
/**
* 收入款日志
*/
@Permission(Permissions.inventory_purchase_order_show)
public void showPayLog() {
show();
}
/**
* 单据操作日志
*/
@Permission(Permissions.inventory_purchase_order_show)
public void showOrderLog() {
show();
}
/**
* 添加
*/
@Permission(Permissions.inventory_purchase_order_create)
public void add() {
Kv condKv = Kv.create();
condKv.set("order_status", OrderStatusEnum.draft.getValue());
condKv.set("make_man_id", getAdminId());
Page<PurchaseOrder> page = orderService.paginate(null, null, condKv, 1, 1);
setAttr("draftCount", page.getTotalRow()); // 草稿单数量
setAttrCommon();
}
/**
* 新增
*/
@Permission(Permissions.inventory_purchase_order_create)
public void create() {
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/order/create", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 编辑
*/
@Permission(Permissions.inventory_purchase_order_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(id);
if(purchaseOrder == null) {
renderError(404);
return;
}
setAttr("purchaseOrder", purchaseOrder);
setAttrCommon();
}
/**
* 编辑草稿单
*/
@Permission(Permissions.inventory_purchase_order_update)
public void editDraft() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(id);
if(purchaseOrder == null) {
renderError(404);
return;
}
Kv condKv = Kv.create();
condKv.set("order_status", OrderStatusEnum.draft.getValue());
condKv.set("make_man_id", getAdminId());
Page<PurchaseOrder> page = orderService.paginate(null, null, condKv, 1, 1);
setAttr("draftCount", page.getTotalRow()); // 草稿单数量
setAttr("purchaseOrder", purchaseOrder);
setAttrCommon();
}
/**
* 修改
*/
@Permission(Permissions.inventory_purchase_order_update)
public void update() {
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/order/update", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 停用
*/
@Permission(Permissions.inventory_purchase_order_disable)
public void disable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/order/disable", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 审核
*/
@Permission(Permissions.inventory_purchase_order_audit)
public void audit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
setAttr("id", id);
}
/**
* 审核
*/
@Permission(Permissions.inventory_purchase_order_audit)
public void auditCreate() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/order/audit", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 删除
*/
@Permission(Permissions.inventory_purchase_order_update)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = orderService.delete(id);
renderJson(ret);
}
/**
* 公共数据
*/
private void setAttrCommon() {
TenantConfig receiptFundAllConfig = TenantConfig.dao.findByKeyCache(TenantConfigEnum.purchase_receipt_fund_all);
setAttr("receiptFundAllFlag", Boolean.parseBoolean(receiptFundAllConfig.getAttrValue()));
TenantConfig orderGoodsDiscountConfig = TenantConfig.dao.findByKeyCache(TenantConfigEnum.order_goods_discount);
setAttr("orderGoodsDiscountFlag", Boolean.parseBoolean(orderGoodsDiscountConfig.getAttrValue()));
TenantConfig purchaseEditSalePriceConfig = TenantConfig.dao.findByKeyCache(TenantConfigEnum.purchase_edit_sale_price);
setAttr("purchaseEditSalePriceFlag", Boolean.parseBoolean(purchaseEditSalePriceConfig.getAttrValue()));
JSONObject printConfirmConfig = TenantConfig.dao.findJsonByKeyCahce(TenantConfigEnum.create_order_print_confirm);
setAttr("orderPrintConfig", printConfirmConfig);
setAttr("orderAuditFlag", PurchaseOrder.dao.findAuditConfig()); // 是否审核
setAttr("orderRows", PurchaseOrder.dao.findRowsConfig()); // 默认表格行数,后期要做成配置
setAttr("feeList", PurchaseOrder.dao.findFeeConfig()); // 其他费用配置
setAttr("costList", PurchaseOrder.dao.findCostConfig()); // 成本支出配置
TenantConfig orderFundPaytimeConfig = TenantConfig.dao.findByKeyCache(TenantConfigEnum.order_fund_paytime);
setAttr("orderFundPaytimeFlag", Boolean.parseBoolean(orderFundPaytimeConfig.getAttrValue()));
}
/**
* 显示打印模板
*/
@Permission(Permissions.inventory_purchase_order)
@Before(Tx.class)
public void showPrint() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(id);
if(purchaseOrder == null) {
renderError(404);
return;
}
List<TenantPrintTemplate> templateList = purchaseOrder.getPrintTemplateList();
setAttr("templateList", templateList);
setAttr("purchaseOrder", purchaseOrder);
}
/**
* 打印或预览
*/
@Permission(Permissions.inventory_purchase_order)
@Before(Tx.class)
public void print() {
Integer id = getInt("id");
Integer templateId = getInt("template_id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(id);
if(purchaseOrder == null) {
renderError(404);
return;
}
TenantPrintTemplate printTemplate;
if(templateId == null || templateId <= 0) {
printTemplate = purchaseOrder.getPrintDefaultTemplate();
} else {
printTemplate = TenantPrintTemplate.dao.findById(templateId);
}
if(printTemplate == null) {
renderJson(Ret.fail("打印模板不存在,请先设置打印模板"));
return;
}
Ret ret = Ret.ok();
ret.set("tpl_content", printTemplate.getContent());
ret.set("json_data", purchaseOrder.getPrintData());
ret.set("order", purchaseOrder);
renderJson(ret);
}
/**
* 更新打印次数
*/
@Permission(Permissions.inventory_purchase_order)
@Before(Tx.class)
public void updatePrint() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(id);
if(purchaseOrder == null) {
renderError(404);
return;
}
purchaseOrder.setPrintCount(purchaseOrder.getPrintCount()+1);
purchaseOrder.setUpdatedAt(new Date());
purchaseOrder.update();
renderJson(Ret.ok());
}
/**
* 导出
*/
@Permission(Permissions.inventory_purchase_order_export)
public void export() {
Kv condKv = conditions();
String startTime = get("start_time");
String endTime = get("end_time");
Ret ret = orderService.export(getAdminId(), startTime, endTime, condKv);
renderJson(ret);
}
/**
* 查询条件
* @return
*/
private Kv conditions() {
Integer supplierInfoId = getInt("supplier_info_id");
Integer handlerId = getInt("handler_id");
Boolean hideDisableFlag = getBoolean("hide_disable_flag"); // 隐藏作废单据
Boolean hidePayFlag = getBoolean("hide_pay_flag"); // 隐藏已付清单据
Boolean showAuditFlag = getBoolean("show_audit_flag"); // 只显示待审核单据
String keyword = get("keyword");
Kv condKv = Kv.create();
conditionFilterStore(condKv, Permissions.inventory_purchase); // 添加门店过滤条件
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("handler_id", handlerId);
condKv.set("order_code,remark", keyword); // 多字段模糊查询
if(hideDisableFlag) {
condKv.set("order_status", OrderStatusEnum.normal.getValue());
} else if(getInt("order_status") != null){
condKv.set("order_status", getInt("order_status"));
} else {
ConditionFilter filter = new ConditionFilter();
filter.setOperator(Operator.neq);
filter.setValue(OrderStatusEnum.draft.getValue());
condKv.set("order_status", filter);
}
if(showAuditFlag) {
condKv.set("audit_status", AuditStatusEnum.waiting.getValue());
}
if(hidePayFlag) {
ConditionFilter filter = new ConditionFilter();
filter.setOperator(Operator.neq);
filter.setValue(OrderPayStatusEnum.finish.getValue());
condKv.set("pay_status", filter);
}
return condKv;
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.inventory;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.bytechainx.psi.common.EnumConstant.AuditStatusEnum;
import com.bytechainx.psi.common.EnumConstant.OrderPayStatusEnum;
import com.bytechainx.psi.common.EnumConstant.OrderStatusEnum;
import com.bytechainx.psi.common.EnumConstant.TenantConfigEnum;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.api.TraderCenterApi;
import com.bytechainx.psi.common.dto.ConditionFilter;
import com.bytechainx.psi.common.dto.ConditionFilter.Operator;
import com.bytechainx.psi.common.kit.StrUtil;
import com.bytechainx.psi.common.model.PurchaseOrder;
import com.bytechainx.psi.common.model.PurchaseOrderGoods;
import com.bytechainx.psi.common.model.PurchaseRejectOrder;
import com.bytechainx.psi.common.model.PurchaseRejectOrderGoods;
import com.bytechainx.psi.common.model.TenantConfig;
import com.bytechainx.psi.common.model.TenantPrintTemplate;
import com.bytechainx.psi.purchase.service.PurchaseRejectOrderService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.tx.Tx;
/**
* 进货退货单
*/
@Path("/inventory/purchase/rejectOrder")
public class PurchaseRejectOrderController extends BaseController {
@Inject
private PurchaseRejectOrderService rejectOrderService;
/**
* 首页
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
public void index() {
}
/**
* 列表
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
public void list() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Kv condKv = conditions();
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseRejectOrder> page = rejectOrderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
setAttr("page", page);
setAttr("hideDisableFlag", getBoolean("hide_disable_flag"));
setAttr("showAuditFlag", getBoolean("show_audit_flag"));
setAttr("hidePayFlag", getBoolean("hide_pay_flag"));
setAttrCommon();
}
/**
* 草稿单
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
public void draftIndex() {
draftList();
}
/**
* 草稿单列表
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
public void draftList() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
Kv condKv = Kv.create();
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("make_man_id", getAdminId()); // 只显示当前用户的草稿单
condKv.set("order_status", OrderStatusEnum.draft.getValue());
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseRejectOrder> page = rejectOrderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 草稿单列表,JSON格式
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
public void draftListByJson() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
Integer tenantStoreId = getInt("tenant_store_id");
Kv condKv = Kv.create();
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("tenant_store_id", tenantStoreId);
condKv.set("make_man_id", getAdminId()); // 只显示当前用户的草稿单
condKv.set("order_status", OrderStatusEnum.draft.getValue());
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseRejectOrder> page = rejectOrderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
renderJson(Ret.ok().set("data", page));
}
/**
* 查看
*/
@Permission(Permissions.inventory_purchase_rejectOrder_show)
public void show() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
PurchaseRejectOrder purchaseRejectOrder = PurchaseRejectOrder.dao.findById(id);
if(purchaseRejectOrder == null) {
renderError(404);
return;
}
setAttrCommon();
setAttr("purchaseRejectOrder", purchaseRejectOrder);
}
/**
* 收入款日志
*/
@Permission(Permissions.inventory_purchase_rejectOrder_show)
public void showPayLog() {
show();
}
/**
* 单据操作日志
*/
@Permission(Permissions.inventory_purchase_rejectOrder_show)
public void showOrderLog() {
show();
}
/**
* 添加
*/
@Permission(Permissions.inventory_purchase_rejectOrder_create)
public void add() {
String orderIds = get("order_ids"); // 进货订单,订单转进货单,多个逗号隔开
PurchaseRejectOrder purchaseRejectOrder = transferBookOrder(orderIds);
Kv condKv = Kv.create();
condKv.set("order_status", OrderStatusEnum.draft.getValue());
condKv.set("make_man_id", getAdminId());
Page<PurchaseRejectOrder> page = rejectOrderService.paginate(null, null, condKv, 1, 1);
setAttr("purchaseRejectOrder", purchaseRejectOrder);
setAttr("draftCount", page.getTotalRow()); // 草稿单数量
setAttrCommon();
}
/**
* 新增
*/
@Permission(Permissions.inventory_purchase_rejectOrder_create)
public void create() {
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/rejectOrder/create", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 编辑
*/
@Permission(Permissions.inventory_purchase_rejectOrder_update)
public void edit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
PurchaseRejectOrder purchaseRejectOrder = PurchaseRejectOrder.dao.findById(id);
if(purchaseRejectOrder == null) {
renderError(404);
return;
}
setAttr("purchaseRejectOrder", purchaseRejectOrder);
setAttrCommon();
}
/**
* 编辑草稿单
*/
@Permission(Permissions.inventory_purchase_rejectOrder_update)
public void editDraft() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderError(404);
return;
}
PurchaseRejectOrder purchaseRejectOrder = PurchaseRejectOrder.dao.findById(id);
if(purchaseRejectOrder == null) {
renderError(404);
return;
}
Kv condKv = Kv.create();
condKv.set("order_status", OrderStatusEnum.draft.getValue());
condKv.set("make_man_id", getAdminId());
Page<PurchaseRejectOrder> page = rejectOrderService.paginate(null, null, condKv, 1, 1);
setAttr("draftCount", page.getTotalRow()); // 草稿单数量
setAttr("purchaseRejectOrder", purchaseRejectOrder);
setAttrCommon();
}
/**
* 修改
*/
@Permission(Permissions.inventory_purchase_rejectOrder_update)
public void update() {
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/rejectOrder/update", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 停用
*/
@Permission(Permissions.inventory_purchase_rejectOrder_disable)
public void disable() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/rejectOrder/disable", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 审核
*/
@Permission(Permissions.inventory_purchase_rejectOrder_audit)
public void audit() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
setAttr("id", id);
}
/**
* 审核
*/
@Permission(Permissions.inventory_purchase_rejectOrder_audit)
public void auditCreate() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
String responseJson = TraderCenterApi.requestApi("/inventory/purchase/rejectOrder/audit", getAdminId(), getParaMap());
renderJson(responseJson);
}
/**
* 删除
*/
@Permission(Permissions.inventory_purchase_rejectOrder_update)
@Before(Tx.class)
public void delete() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("ID不能为空"));
return;
}
Ret ret = rejectOrderService.delete(id);
renderJson(ret);
}
/**
* 公共数据
*/
private void setAttrCommon() {
TenantConfig orderGoodsDiscountConfig = TenantConfig.dao.findByKeyCache(TenantConfigEnum.order_goods_discount);
JSONObject printConfirmConfig = TenantConfig.dao.findJsonByKeyCahce(TenantConfigEnum.create_order_print_confirm);
setAttr("orderPrintConfig", printConfirmConfig);
setAttr("orderGoodsDiscountFlag", Boolean.parseBoolean(orderGoodsDiscountConfig.getAttrValue()));
setAttr("orderAuditFlag", PurchaseRejectOrder.dao.findAuditConfig()); // 是否审核
setAttr("orderRows", PurchaseRejectOrder.dao.findRowsConfig()); // 默认表格行数,后期要做成配置
setAttr("feeList", PurchaseRejectOrder.dao.findFeeConfig()); // 其他费用配置
setAttr("costList", PurchaseRejectOrder.dao.findCostConfig()); // 成本支出配置
TenantConfig orderFundPaytimeConfig = TenantConfig.dao.findByKeyCache(TenantConfigEnum.order_fund_paytime);
setAttr("orderFundPaytimeFlag", Boolean.parseBoolean(orderFundPaytimeConfig.getAttrValue()));
}
/**
* 订单转进货单
* @param orderIds
*/
private PurchaseRejectOrder transferBookOrder(String orderIds) {
if(StringUtils.isEmpty(orderIds)) {
return null;
}
String[] orderIdsString = StringUtils.split(orderIds, ",");
PurchaseRejectOrder purchaseRejectOrder = null;
List<PurchaseRejectOrderGoods> rejectOrderGoodsList = new ArrayList<>();
for (String idstring : orderIdsString) {
if(StringUtils.isEmpty(idstring)) {
continue;
}
Integer bookOrderId = Integer.parseInt(idstring);
PurchaseOrder purchaseOrder = PurchaseOrder.dao.findById(bookOrderId);
if(purchaseRejectOrder == null) {
purchaseRejectOrder = new PurchaseRejectOrder();
purchaseRejectOrder._setOrPut(purchaseOrder);
purchaseRejectOrder.remove("id");
} else {
purchaseRejectOrder.setGoodsAmount(purchaseRejectOrder.getGoodsAmount().add(purchaseOrder.getGoodsAmount()));
purchaseRejectOrder.setDiscountAmount(purchaseRejectOrder.getDiscountAmount().add(purchaseOrder.getDiscountAmount()));
purchaseRejectOrder.setAmount(purchaseRejectOrder.getAmount().add(purchaseOrder.getAmount()));
purchaseRejectOrder.setDiscount(purchaseRejectOrder.getDiscountAmount().divide(purchaseRejectOrder.getGoodsAmount(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100).setScale(-2)));
}
for(PurchaseOrderGoods purchaseOrderGoods : purchaseOrder.getOrderGoodsList()) {
if(purchaseOrderGoods.getBuyNumber().compareTo(purchaseOrderGoods.getRejectAmount()) <= 0) { // 全部退了,不能再退了。
continue;
}
PurchaseRejectOrderGoods purchaseRejectOrderGoods = new PurchaseRejectOrderGoods();
purchaseRejectOrderGoods._setOrPut(purchaseOrderGoods);
purchaseRejectOrderGoods.setBuyNumber(purchaseOrderGoods.getBuyNumber().subtract(purchaseOrderGoods.getRejectNumber())); // 只能转剩余未退数量
purchaseRejectOrderGoods.setAmount(purchaseRejectOrderGoods.getBuyNumber().multiply(purchaseRejectOrderGoods.getPrice()));
purchaseRejectOrderGoods.remove("id");
rejectOrderGoodsList.add(purchaseRejectOrderGoods);
}
}
if(purchaseRejectOrder != null) {
purchaseRejectOrder.setOrderGoodsList(rejectOrderGoodsList);
purchaseRejectOrder.setPurchaseOrderId(StrUtil.beforeAfterCleanComma(orderIds));
}
return purchaseRejectOrder;
}
/**
* 显示打印模板
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
@Before(Tx.class)
public void showPrint() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
PurchaseRejectOrder purchaseRejectOrder = PurchaseRejectOrder.dao.findById(id);
if(purchaseRejectOrder == null) {
renderError(404);
return;
}
List<TenantPrintTemplate> templateList = purchaseRejectOrder.getPrintTemplateList();
setAttr("templateList", templateList);
setAttr("purchaseRejectOrder", purchaseRejectOrder);
}
/**
* 打印或预览
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
@Before(Tx.class)
public void print() {
Integer id = getInt("id");
Integer templateId = getInt("template_id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
PurchaseRejectOrder purchaseRejectOrder = PurchaseRejectOrder.dao.findById(id);
if(purchaseRejectOrder == null) {
renderError(404);
return;
}
TenantPrintTemplate printTemplate;
if(templateId == null || templateId <= 0) {
printTemplate = purchaseRejectOrder.getPrintDefaultTemplate();
} else {
printTemplate = TenantPrintTemplate.dao.findById(templateId);
}
if(printTemplate == null) {
renderJson(Ret.fail("打印模板不存在,请先设置打印模板"));
return;
}
Ret ret = Ret.ok();
ret.set("tpl_content", printTemplate.getContent());
ret.set("json_data", purchaseRejectOrder.getPrintData());
ret.set("order", purchaseRejectOrder);
renderJson(ret);
}
/**
* 更新打印次数
*/
@Permission(Permissions.inventory_purchase_rejectOrder)
@Before(Tx.class)
public void updatePrint() {
Integer id = getInt("id");
if(id == null || id <= 0) {
renderJson(Ret.fail("单据ID不能为空"));
return;
}
PurchaseRejectOrder purchaseRejectOrder = PurchaseRejectOrder.dao.findById(id);
if(purchaseRejectOrder == null) {
renderError(404);
return;
}
purchaseRejectOrder.setPrintCount(purchaseRejectOrder.getPrintCount()+1);
purchaseRejectOrder.setUpdatedAt(new Date());
purchaseRejectOrder.update();
renderJson(Ret.ok());
}
/**
* 导出
*/
@Permission(Permissions.inventory_purchase_rejectOrder_export)
public void export() {
Kv condKv = conditions();
String startTime = get("start_time");
String endTime = get("end_time");
Ret ret = rejectOrderService.export(getAdminId(), startTime, endTime, condKv);
renderJson(ret);
}
/**
* 查询条件
* @return
*/
private Kv conditions() {
Integer supplierInfoId = getInt("supplier_info_id");
Integer handlerId = getInt("handler_id");
Boolean hideDisableFlag = getBoolean("hide_disable_flag"); // 隐藏作废单据
Boolean hidePayFlag = getBoolean("hide_pay_flag"); // 隐藏已付清单据
Boolean showAuditFlag = getBoolean("show_audit_flag"); // 只显示待审核单据
String keyword = get("keyword");
Kv condKv = Kv.create();
conditionFilterStore(condKv, Permissions.inventory_purchase); // 添加门店过滤条件
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("handler_id", handlerId);
condKv.set("order_code,remark", keyword); // 多字段模糊查询
if(hideDisableFlag) {
condKv.set("order_status", OrderStatusEnum.normal.getValue());
} else if(getInt("order_status") != null){
condKv.set("order_status", getInt("order_status"));
} else {
ConditionFilter filter = new ConditionFilter();
filter.setOperator(Operator.neq);
filter.setValue(OrderStatusEnum.draft.getValue());
condKv.set("order_status", filter);
}
if(showAuditFlag) {
condKv.set("audit_status", AuditStatusEnum.waiting.getValue());
}
if(hidePayFlag) {
ConditionFilter filter = new ConditionFilter();
filter.setOperator(Operator.neq);
filter.setValue(OrderPayStatusEnum.finish.getValue());
condKv.set("pay_status", filter);
}
return condKv;
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.inventory;
import com.bytechainx.psi.common.EnumConstant.AuditStatusEnum;
import com.bytechainx.psi.common.EnumConstant.OrderStatusEnum;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.PurchaseOrder;
import com.bytechainx.psi.common.model.PurchaseOrderGoods;
import com.bytechainx.psi.common.model.SupplierCategory;
import com.bytechainx.psi.common.model.SupplierInfo;
import com.bytechainx.psi.purchase.service.PurchaseOrderService;
import com.bytechainx.psi.purchase.service.StatPurchaseService;
import com.bytechainx.psi.purchase.service.SupplierCategoryService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.kit.Kv;
import com.jfinal.plugin.activerecord.Page;
/**
* 进货统计
*/
@Path("/inventory/stat/purchase")
public class StatPurchaseController extends BaseController {
@Inject
private StatPurchaseService statPurchaseService;
@Inject
private PurchaseOrderService purchaseOrderService;
@Inject
private SupplierCategoryService supplierCategoryService;
/**
* 首页
*/
@Permission(Permissions.inventory_stat_purchase)
public void index() {
Page<SupplierCategory> supplierCategoryPage = supplierCategoryService.paginate(1, maxPageSize);
setAttr("supplierCategoryPage", supplierCategoryPage);
}
/**
* 按客户列表
*/
@Permission(Permissions.inventory_stat_purchase)
public void list() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
Integer supplierCategoryId = getInt("supplier_category_id");
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrder> page = statPurchaseService.paginateBySupplier(supplierCategoryId, supplierInfoId, startTime, endTime, pageNumber, pageSize);
PurchaseOrder sumOrder = statPurchaseService.sumBySupplier(supplierCategoryId, supplierInfoId, startTime, endTime);
setAttr("page", page);
setAttr("sumOrder", sumOrder);
}
/**
* 查看客户销售单据详情
*/
@Permission(Permissions.inventory_stat_purchase_show)
public void show() {
Integer supplierInfoId = getInt("supplier_info_id");
Integer supplierCategoryId = getInt("supplier_category_id");
if(supplierInfoId == null || supplierInfoId <= 0) {
renderError(404);
return;
}
SupplierInfo supplierInfo = SupplierInfo.dao.findById(supplierInfoId);
if(supplierInfo == null) {
renderError(404);
return;
}
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrder> sumOrder = statPurchaseService.paginateBySupplier(supplierCategoryId, supplierInfoId, startTime, endTime, 1, pageSize);
if(sumOrder.getTotalRow() > 0) {
setAttr("sumOrder", sumOrder.getList().get(0));
}
setAttr("supplierInfo", supplierInfo);
setAttr("startTime", startTime);
setAttr("endTime", endTime);
}
/**
* 查看客户销售单据详情
*/
@Permission(Permissions.inventory_stat_purchase_show)
public void showList() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
Integer tenantStoreId = getInt("tenant_store_id");
Kv condKv = Kv.create();
condKv.set("tenant_store_id", tenantStoreId);
condKv.set("supplier_info_id", supplierInfoId);
condKv.set("order_status", OrderStatusEnum.normal.getValue());
condKv.set("audit_status", AuditStatusEnum.pass.getValue());
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrder> page = purchaseOrderService.paginate(startTime, endTime, condKv, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 查看客户销售商品详情
*/
@Permission(Permissions.inventory_stat_purchase_show)
public void showGoods() {
show();
}
/**
* 查看客户销售商品详情
*/
@Permission(Permissions.inventory_stat_purchase_show)
public void showGoodsList() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer supplierInfoId = getInt("supplier_info_id");
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrderGoods> page = statPurchaseService.paginateBySupplierGoods(supplierInfoId, startTime, endTime, pageNumber, pageSize);
setAttr("page", page);
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.inventory;
import java.util.List;
import com.bytechainx.psi.common.Permissions;
import com.bytechainx.psi.common.annotation.Permission;
import com.bytechainx.psi.common.model.GoodsCategory;
import com.bytechainx.psi.common.model.GoodsInfo;
import com.bytechainx.psi.common.model.PurchaseOrderGoods;
import com.bytechainx.psi.purchase.service.StatPurchaseGoodsService;
import com.bytechainx.psi.purchase.service.StatPurchaseService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.plugin.activerecord.Page;
/**
* 商品统计
*/
@Path("/inventory/stat/purchaseGoods")
public class StatPurchaseGoodsController extends BaseController {
@Inject
private StatPurchaseGoodsService purchaseGoodsService;
@Inject
private StatPurchaseService statPurchaseService;
/**
* 首页
*/
@Permission(Permissions.inventory_stat_purchaseGoods)
public void index() {
List<GoodsCategory> topCategoryList = GoodsCategory.dao.findTop();
setAttr("topCategoryList", topCategoryList);
}
/**
* 按产品列表
*/
@Permission(Permissions.inventory_stat_purchaseGoods)
public void list() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer goodsCategoryId = getInt("goods_category_id");
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrderGoods> page = purchaseGoodsService.paginate(goodsCategoryId, startTime, endTime, pageNumber, pageSize);
PurchaseOrderGoods sumOrder = purchaseGoodsService.sumByCategory(goodsCategoryId, startTime, endTime);
setAttr("page", page);
setAttr("sumOrder", sumOrder);
}
/**
* 查看详情
*/
@Permission(Permissions.inventory_stat_purchaseGoods_show)
public void show() {
Integer goodsInfoId = getInt("goods_info_id");
String startTime = get("start_time");
String endTime = get("end_time");
GoodsInfo goodsInfo = GoodsInfo.dao.findById(goodsInfoId);
PurchaseOrderGoods sumOrder = purchaseGoodsService.sumByGoodsId(goodsInfoId, startTime, endTime);
setAttr("sumOrder", sumOrder);
setAttr("goodsInfo", goodsInfo);
setAttr("startTime", startTime);
setAttr("endTime", endTime);
}
/**
* 查看单据列表
*/
@Permission(Permissions.inventory_stat_purchaseGoods_show)
public void showList() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer goodsInfoId = getInt("goods_info_id");
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrderGoods> page = purchaseGoodsService.paginateByGoods(goodsInfoId, startTime, endTime, pageNumber, pageSize);
setAttr("page", page);
}
/**
* 查看详情
*/
@Permission(Permissions.inventory_stat_purchaseGoods_show)
public void showSupplier() {
show();
}
/**
* 查看单据列表
*/
@Permission(Permissions.inventory_stat_purchaseGoods_show)
public void showSupplierList() {
int pageNumber = getInt("pageNumber", 1);
pageSize = getPageSize();
Integer goodsInfoId = getInt("goods_info_id");
String startTime = get("start_time");
String endTime = get("end_time");
Page<PurchaseOrderGoods> page = purchaseGoodsService.paginateBySupplier(goodsInfoId, startTime, endTime, pageNumber, pageSize);
setAttr("page", page);
}
}
\ No newline at end of file
package com.bytechainx.psi.web.web.controller.inventory;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.core.Path;
import com.jfinal.kit.Ret;
/**
* 库存统计
*/
@Path("/inventory/stat/stock")
public class StatStockController extends BaseController {
/**
* 首页
*/
// @Permission(Permissions.inventory_stat_stock)
public void index() {
list();
}
/**
* 列表
*/
// @Permission(Permissions.inventory_stat_stock)
public void list() {
}
/**
* 查看
*/
// @Permission(Permissions.inventory_stat_stock_show)
public void show() {
renderJson(Ret.ok());
}
}
\ No newline at end of file
/**
*
*/
package com.bytechainx.psi.web.web.controller.msg;
import java.util.Date;
import com.bytechainx.psi.common.EnumConstant.FlagEnum;
import com.bytechainx.psi.common.model.MsgNoticeSend;
import com.bytechainx.psi.common.service.msg.MsgNoticeService;
import com.bytechainx.psi.web.web.controller.base.BaseController;
import com.jfinal.aop.Inject;
import com.jfinal.core.Path;
import com.jfinal.plugin.activerecord.Page;
/**
* 消息通知
* @author defier
*/
@Path("/msg/notice")
public class MsgNoticeController extends BaseController {
@Inject
private MsgNoticeService msgNoticeService;
public void index() {
}
public void list() {
pageSize = 10;
int pageNumber = getInt("pageNumber", 1);
Boolean readFlag = getBoolean("read_flag");
Page<MsgNoticeSend> page = msgNoticeService.paginate(getAdminId(), readFlag, pageNumber, pageSize);
setAttr("page", page);
}
public void show() {
Integer id = getInt("id");
MsgNoticeSend msg = MsgNoticeSend.dao.findBy(id);
if(msg == null) {
renderError(404);
return;
}
msg.setReadFlag(FlagEnum.YES.getValue());
msg.setReadTime(new Date());
msg.update();
setAttr("msg", msg);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册