Commit 714ae25c by 胡懿

货品代码修改、品名代码模块修改

parent d84ac9c2
...@@ -29,7 +29,7 @@ public class GoodsInfo extends DataEntity<GoodsInfo> { ...@@ -29,7 +29,7 @@ public class GoodsInfo extends DataEntity<GoodsInfo> {
private String qrInterval; // 物资编码区间 private String qrInterval; // 物资编码区间
private BigDecimal amount; // 单价 private BigDecimal amount; // 单价
private List<QrCode> qrCodeList; // 二维码集合(xml中无关联查询) private QrCode qrCode; // 二维码(xml中无关联查询)
private List<String> modelList; // 查询时使用的属性 private List<String> modelList; // 查询时使用的属性
public GoodsInfo() { public GoodsInfo() {
...@@ -104,12 +104,12 @@ public class GoodsInfo extends DataEntity<GoodsInfo> { ...@@ -104,12 +104,12 @@ public class GoodsInfo extends DataEntity<GoodsInfo> {
this.qrInterval = qrInterval; this.qrInterval = qrInterval;
} }
public List<QrCode> getQrCodeList() { public QrCode getQrCode() {
return qrCodeList; return qrCode;
} }
public void setQrCodeList(List<QrCode> qrCodeList) { public void setQrCode(QrCode qrCode) {
this.qrCodeList = qrCodeList; this.qrCode = qrCode;
} }
public List<String> getModelList() { public List<String> getModelList() {
......
...@@ -22,6 +22,8 @@ import com.jeeplus.modules.warehouse.qrcode.service.QrCodeService; ...@@ -22,6 +22,8 @@ import com.jeeplus.modules.warehouse.qrcode.service.QrCodeService;
import com.jeeplus.modules.warehouse.qrcode.util.BuildQcUtil; import com.jeeplus.modules.warehouse.qrcode.util.BuildQcUtil;
import com.jeeplus.modules.warehouse.qrcode.util.DrawQrcodeUtil; import com.jeeplus.modules.warehouse.qrcode.util.DrawQrcodeUtil;
import com.jeeplus.modules.warehouse.qrcode.util.TwoDimensionCode; import com.jeeplus.modules.warehouse.qrcode.util.TwoDimensionCode;
import com.jeeplus.modules.warehouse.storage.entity.StorageInfo;
import com.jeeplus.modules.warehouse.storage.service.StorageService;
import com.jeeplus.modules.warehouse.wzcode.entity.Wzcode; import com.jeeplus.modules.warehouse.wzcode.entity.Wzcode;
import com.jeeplus.modules.warehouse.wzcode.service.WzcodeService; import com.jeeplus.modules.warehouse.wzcode.service.WzcodeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -51,6 +53,8 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> { ...@@ -51,6 +53,8 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> {
private QrCodeMapper qrCodeMapper; private QrCodeMapper qrCodeMapper;
@Autowired @Autowired
private WzcodeService wzcodeService; private WzcodeService wzcodeService;
@Autowired
private StorageService storageService;
public Goods get(String id) { public Goods get(String id) {
Goods goods = super.get(id); Goods goods = super.get(id);
...@@ -113,54 +117,39 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> { ...@@ -113,54 +117,39 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> {
temQr.setGoodsInfo(temGi); temQr.setGoodsInfo(temGi);
temQr.setState("0"); temQr.setState("0");
List<QrCode> qrCodeListAll = qrCodeMapper.findByGoodsInfoId(temQr); QrCode qc = qrCodeMapper.findByGoodsInfoId(temQr);
if (null != qrCodeListAll && qrCodeListAll.size() > 0 && goodsInfo.getNum() == qrCodeListAll.size()) { // 二维码已经生成过 if (null != qc && StringUtils.isNotBlank(qc.getId())) { // 二维码已经生成过
goodsInfo.setQrCodeList(qrCodeListAll); goodsInfo.setQrCode(qc);
return goodsInfo; return goodsInfo;
} else { } else {
int haveSize = 0;
List<QrCode> qrCodeList = new ArrayList<>();
if (null != qrCodeListAll) {
haveSize = qrCodeListAll.size();
}
// 查询物资编码 // 查询物资编码
Wzcode wzcode = wzcodeService.findByCode(goodsInfo.getType().getCode()); Wzcode wzcode = wzcodeService.findByCode(goodsInfo.getType().getCode());
int wzNum = wzcode.getIntNum(); int wzNum = wzcode.getIntNum();
wzNum ++;
wzcode.setIntNum(wzNum);
QrCode qrCode = new QrCode();
qrCode.setCode(wzcode.getCodeAndNum());
qrCode.setGoodsInfo(goodsInfo);
qrCode.setState("0");
qrCode.setComeFlag("0");
qrCode.preInsert();
try {
BuildQcUtil.buildQr(qrCode, qrImgPath + "/" + wzcode.getCodeAndNum() + "_tem_" + ".png", qrImgPath + "/" + wzcode.getCodeAndNum() + ".png"); // 生成图片
} catch (IOException e) {
e.printStackTrace();
}
qrCode.setUrl(Global.getAttachmentUrl() + "image/" + wzcode.getCodeAndNum() + ".png");
int num = goodsInfo.getNum() - haveSize; qrCodeMapper.insert(qrCode);
String beginNumSeq = ""; qrCode = qrCodeMapper.get(qrCode.getId());
for (int i = 0; i < num; i++) {
wzNum ++;
wzcode.setIntNum(wzNum);
if (0 == i) {
beginNumSeq = wzcode.getCodeAndNum();
}
QrCode qrCode = new QrCode();
qrCode.setCode(wzcode.getCodeAndNum());
qrCode.setGoodsInfo(goodsInfo);
qrCode.setState("0");
qrCode.setComeFlag("0");
qrCode.preInsert();
try {
BuildQcUtil.buildQr(qrCode, qrImgPath + "/" + wzcode.getCodeAndNum() + ".png", qrImgPath + "/" + wzcode.getCodeAndNum() + "_" + i + ".png"); // 生成图片
} catch (IOException e) {
e.printStackTrace();
}
qrCode.setUrl(Global.getAttachmentUrl() + "image/" + wzcode.getCodeAndNum() + "_" + i + ".png");
qrCodeMapper.insert(qrCode);
qrCode = qrCodeMapper.get(qrCode.getId());
qrCodeList.add(qrCode);
}
String qrInterval = beginNumSeq + "_" + wzcode.getNum(); goodsInfo.setQrInterval(wzcode.getNum()); // 设置编码区间
goodsInfo.setQrInterval(qrInterval); // 设置编码区间
// goodsInfo.preUpdate(); // goodsInfo.preUpdate();
goodsInfoMapper.update(goodsInfo); goodsInfoMapper.update(goodsInfo);
qrCodeListAll.addAll(qrCodeList); goodsInfo.setQrCode(qrCode);
goodsInfo.setQrCodeList(qrCodeListAll);
// 更新物资编码表 // 更新物资编码表
wzcodeService.save(wzcode); wzcodeService.save(wzcode);
...@@ -180,30 +169,26 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> { ...@@ -180,30 +169,26 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> {
temGi.setId(infoId); temGi.setId(infoId);
temQr.setGoodsInfo(temGi); temQr.setGoodsInfo(temGi);
temQr.setState("0"); temQr.setState("0");
List<QrCode> qrCodeList = qrCodeMapper.findByGoodsInfoId(temQr); QrCode qrCode = qrCodeMapper.findByGoodsInfoId(temQr);
if (null != qrCodeList && qrCodeList.size() > 0) { if (null != qrCode && StringUtils.isNotBlank(qrCode.getId())) {
for (QrCode qrCode : qrCodeList) { try {
if (StringUtils.isNotBlank(qrCode.getUrl())) { String url = qrCode.getUrl();
try { if (null != url && url.contains("image")) {
String url = qrCode.getUrl(); String photo = url.split("image/")[1];
if (null != url && url.contains("image")) { File file = new File(Global.getAttachmentDir() + "image/" + photo);
String photo = url.split("image/")[1]; if (file.exists()) {
File file = new File(Global.getAttachmentDir() + "image/" + photo); FileUtil.deleteFile(new File(Global.getAttachmentDir() + "image/" + photo));
if (file.exists()) { } else {
FileUtil.deleteFile(new File(Global.getAttachmentDir() + "image/" + photo)); logger.info("二维码路径不存在,执行删除");
} else { }
logger.info("二维码路径不存在,执行删除"); }
} } catch (IOException e) {
} e.printStackTrace();
} catch (IOException e) { }
e.printStackTrace(); qrCodeMapper.deleteByGoodInfoId(infoId, "0"); // 删除未入库的二维码
} goodsInfo.setQrInterval("");
} goodsInfo.preUpdate();
} goodsInfoMapper.update(goodsInfo);
qrCodeMapper.deleteByGoodInfoId(infoId, "0"); // 删除未入库的二维码
goodsInfo.setQrInterval("");
goodsInfo.preUpdate();
goodsInfoMapper.update(goodsInfo);
} }
} }
...@@ -225,6 +210,10 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> { ...@@ -225,6 +210,10 @@ public class GoodsService extends CrudService<GoodsMapper, Goods> {
public QrCode getGIAndQCByTwoId(String goodsInfoId, String qrCodeId) { public QrCode getGIAndQCByTwoId(String goodsInfoId, String qrCodeId) {
GoodsInfo goodsInfo = goodsInfoMapper.get(new GoodsInfo(goodsInfoId)); GoodsInfo goodsInfo = goodsInfoMapper.get(new GoodsInfo(goodsInfoId));
List<StorageInfo> list = storageService.findInfoByGoodsInfoId(goodsInfo);
if (null != list && list.size() > 0) {
return null;
}
QrCode qrCode = qrCodeMapper.get(new QrCode(qrCodeId)); QrCode qrCode = qrCodeMapper.get(new QrCode(qrCodeId));
if (null != qrCode) { if (null != qrCode) {
qrCode.setGoodsInfo(goodsInfo); qrCode.setGoodsInfo(goodsInfo);
......
...@@ -253,6 +253,7 @@ public class LedgerController extends BaseController { ...@@ -253,6 +253,7 @@ public class LedgerController extends BaseController {
* 根据二维码id或者物资编码返货台账明细信息 * 根据二维码id或者物资编码返货台账明细信息
* @param qrId * @param qrId
* @param code * @param code
* 7A002868781771A006265/A0053515
* @return * @return
*/ */
@ResponseBody @ResponseBody
......
...@@ -4,12 +4,15 @@ ...@@ -4,12 +4,15 @@
package com.jeeplus.modules.warehouse.materialloss.entity; package com.jeeplus.modules.warehouse.materialloss.entity;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.jeeplus.core.persistence.DataEntity; import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField; import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.sys.entity.User; import com.jeeplus.modules.sys.entity.User;
import javax.validation.constraints.NotNull;
import java.util.Date; import java.util.Date;
/** /**
...@@ -52,7 +55,9 @@ public class MaterialLoss extends DataEntity<MaterialLoss> { ...@@ -52,7 +55,9 @@ public class MaterialLoss extends DataEntity<MaterialLoss> {
public void setOperator(User operator) { public void setOperator(User operator) {
this.operator = operator; this.operator = operator;
} }
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@NotNull(message="时间不能为空")
@ExcelField(title="盘亏时间", align=2, sort=3) @ExcelField(title="盘亏时间", align=2, sort=3)
public Date getTime() { public Date getTime() {
return time; return time;
......
...@@ -8,6 +8,8 @@ import javax.validation.constraints.NotNull; ...@@ -8,6 +8,8 @@ import javax.validation.constraints.NotNull;
import com.jeeplus.core.persistence.TreeEntity; import com.jeeplus.core.persistence.TreeEntity;
import java.math.BigDecimal;
/** /**
* 物资类型Entity * 物资类型Entity
* @author zhnaglt * @author zhnaglt
...@@ -17,6 +19,8 @@ public class MaterialType extends TreeEntity<MaterialType> { ...@@ -17,6 +19,8 @@ public class MaterialType extends TreeEntity<MaterialType> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String code; // 物资类型编码 private String code; // 物资类型编码
private BigDecimal amount; // 单价
private String unit; // 单位
private int last; private int last;
...@@ -57,4 +61,20 @@ public class MaterialType extends TreeEntity<MaterialType> { ...@@ -57,4 +61,20 @@ public class MaterialType extends TreeEntity<MaterialType> {
public void setLast(int last) { public void setLast(int last) {
this.last = last; this.last = last;
} }
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
} }
\ No newline at end of file
...@@ -24,7 +24,9 @@ ...@@ -24,7 +24,9 @@
a.name AS "name", a.name AS "name",
a.sort AS "sort", a.sort AS "sort",
a.code AS "code", a.code AS "code",
a.last AS "last" a.last AS "last",
a.amount AS "amount",
a.unit AS "unit"
</sql> </sql>
......
...@@ -160,6 +160,7 @@ public class MaterialTypeController extends BaseController { ...@@ -160,6 +160,7 @@ public class MaterialTypeController extends BaseController {
Map<String, Object> map = Maps.newHashMap(); Map<String, Object> map = Maps.newHashMap();
map.put("id", e.getId()); map.put("id", e.getId());
map.put("text", e.getName()); map.put("text", e.getName());
map.put("code", e.getCode());
if(StringUtils.isBlank(e.getParentId()) || "0".equals(e.getParentId())){ if(StringUtils.isBlank(e.getParentId()) || "0".equals(e.getParentId())){
map.put("parent", "#"); map.put("parent", "#");
Map<String, Object> state = Maps.newHashMap(); Map<String, Object> state = Maps.newHashMap();
......
...@@ -29,7 +29,7 @@ public interface QrCodeMapper extends BaseMapper<QrCode> { ...@@ -29,7 +29,7 @@ public interface QrCodeMapper extends BaseMapper<QrCode> {
* @param qrCode * @param qrCode
* @return * @return
*/ */
public List<QrCode> findByGoodsInfoId(QrCode qrCode); public QrCode findByGoodsInfoId(QrCode qrCode);
/** /**
* 根据货品批次号,货品明细类型,货品明细型号,查询二维码信息 * 根据货品批次号,货品明细类型,货品明细型号,查询二维码信息
......
...@@ -226,6 +226,7 @@ ...@@ -226,6 +226,7 @@
gi.NAME AS "goodsInfo.name", gi.NAME AS "goodsInfo.name",
gi.model AS "goodsInfo.model", gi.model AS "goodsInfo.model",
gi.amount AS "goodsInfo.amount", gi.amount AS "goodsInfo.amount",
gi.num AS "goodsInfo.num",
gi.goods_id AS "goodsInfo.goods.id" gi.goods_id AS "goodsInfo.goods.id"
FROM t_wh_qr a FROM t_wh_qr a
LEFT JOIN t_wh_goods_info gi ON a.goods_info_id = gi.id LEFT JOIN t_wh_goods_info gi ON a.goods_info_id = gi.id
......
...@@ -239,8 +239,9 @@ public class DrawQrcodeUtil { ...@@ -239,8 +239,9 @@ public class DrawQrcodeUtil {
public static BufferedImage createAssetImageNew(File qrcodeFile,QrCode qrCode) throws IOException { public static BufferedImage createAssetImageNew(File qrcodeFile,QrCode qrCode) throws IOException {
GoodsInfo goodsInfo = qrCode.getGoodsInfo(); GoodsInfo goodsInfo = qrCode.getGoodsInfo();
QRcodeSize qRcodeSize = null; QRcodeSize qRcodeSize = null;
qRcodeSize = new QRcodeSize(8,200,1400,78,200,200,1200,1200,new Color(34,25,21)); qRcodeSize = new QRcodeSize(8,800,1800,78,800,200,1600,1600,new Color(34,25,21));
BufferedImage bgImage = new BufferedImage(1600, 2400, BufferedImage.TYPE_4BYTE_ABGR); // BufferedImage bgImage = new BufferedImage(1600, 2400, BufferedImage.TYPE_4BYTE_ABGR);
BufferedImage bgImage = new BufferedImage(3200, 2400, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2 = bgImage.createGraphics(); Graphics2D g2 = bgImage.createGraphics();
BufferedImage qrcodeImage = ImageIO.read(qrcodeFile); BufferedImage qrcodeImage = ImageIO.read(qrcodeFile);
...@@ -252,7 +253,7 @@ public class DrawQrcodeUtil { ...@@ -252,7 +253,7 @@ public class DrawQrcodeUtil {
, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); , RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g2.setRenderingHints(rh); g2.setRenderingHints(rh);
Font font = new Font("黑体",Font.BOLD,11 * qRcodeSize.getInitfontSize()); Font font = new Font("黑体",Font.BOLD,14 * qRcodeSize.getInitfontSize());
g2.setFont(font); //设置字体:字体、字号、大小 g2.setFont(font); //设置字体:字体、字号、大小
g2.setColor(qRcodeSize.color);//设置背景颜色 g2.setColor(qRcodeSize.color);//设置背景颜色
// g2.setBackground(c); // g2.setBackground(c);
...@@ -271,18 +272,18 @@ public class DrawQrcodeUtil { ...@@ -271,18 +272,18 @@ public class DrawQrcodeUtil {
as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, name.length()); as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, name.length());
g2.drawString(as.getIterator(),contentX+contentTitle1Width,contentY); g2.drawString(as.getIterator(),contentX+contentTitle1Width,contentY);
//写入货品类型 //写入货品类型
String contentTitle2 = "货品类型:"; /* String contentTitle2 = "货品类型:";
int contentTitle2Width = g2.getFontMetrics().stringWidth(contentTitle2); int contentTitle2Width = g2.getFontMetrics().stringWidth(contentTitle2);
g2.drawString(contentTitle2,contentX,contentY+150); g2.drawString(contentTitle2,contentX,contentY+150);
String typeName = goodsInfo.getType().getName(); String typeName = goodsInfo.getType().getName();
if (typeName.length() > 15) { if (typeName.length() > 8) {
String str1 = typeName.substring(0, 9); String str1 = typeName.substring(0, 8);
str1 = formatContent(str1,9); str1 = formatContent(str1,9);
as = new AttributedString(str1); as = new AttributedString(str1);
as.addAttribute(TextAttribute.FONT, font); as.addAttribute(TextAttribute.FONT, font);
as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, str1.length()); as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, str1.length());
g2.drawString(as.getIterator(),contentX+contentTitle2Width,contentY+150); g2.drawString(as.getIterator(),contentX+contentTitle2Width,contentY+150);
String str2 = typeName.substring(9, typeName.length()); String str2 = typeName.substring(8, typeName.length());
str2 = formatContent(str2,9); str2 = formatContent(str2,9);
as = new AttributedString(str2); as = new AttributedString(str2);
as.addAttribute(TextAttribute.FONT, font); as.addAttribute(TextAttribute.FONT, font);
...@@ -296,7 +297,7 @@ public class DrawQrcodeUtil { ...@@ -296,7 +297,7 @@ public class DrawQrcodeUtil {
as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, typeName.length()); as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, typeName.length());
g2.drawString(as.getIterator(),contentX+contentTitle2Width,contentY+150); g2.drawString(as.getIterator(),contentX+contentTitle2Width,contentY+150);
} }*/
...@@ -304,22 +305,12 @@ public class DrawQrcodeUtil { ...@@ -304,22 +305,12 @@ public class DrawQrcodeUtil {
//写入物资编码 //写入物资编码
String contentTitle4 = "物资编码:"; String contentTitle4 = "物资编码:";
int contentTitle4Width = g2.getFontMetrics().stringWidth(contentTitle4); int contentTitle4Width = g2.getFontMetrics().stringWidth(contentTitle4);
g2.drawString(contentTitle4,contentX,contentY+450); g2.drawString(contentTitle4,contentX,contentY+150);
String code = qrCode.getCode(); String code = qrCode.getCode();
if (code.length() > 15) { as = new AttributedString(code);
String str1 = code.substring(0, 14); as.addAttribute(TextAttribute.FONT, font);
str1 = formatContent(str1,15); as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, code.length());
as = new AttributedString(str1); g2.drawString(as.getIterator(),contentX+contentTitle4Width,contentY+150);
as.addAttribute(TextAttribute.FONT, font);
as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, str1.length());
g2.drawString(as.getIterator(),contentX+contentTitle4Width,contentY+450);
String str2 = code.substring(14, code.length());
str2 = formatContent(str2,15);
as = new AttributedString(str2);
as.addAttribute(TextAttribute.FONT, font);
as.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_LOW_DASHED, 0, str2.length());
g2.drawString(as.getIterator(),contentX+contentTitle4Width,contentY+600);
}
return bgImage; return bgImage;
......
package com.jeeplus.modules.warehouse.shelves.utils; package com.jeeplus.modules.warehouse.shelves.utils;
import com.jeeplus.common.utils.CacheUtils;
import com.jeeplus.common.utils.SpringContextHolder;
import com.jeeplus.common.utils.StringUtils;
import com.jeeplus.modules.warehouse.shelves.entity.Shelves; import com.jeeplus.modules.warehouse.shelves.entity.Shelves;
import com.jeeplus.modules.warehouse.shelves.mapper.ShelvesMapper;
import com.jeeplus.modules.warehouse.warehouse.entity.Warehouse; import com.jeeplus.modules.warehouse.warehouse.entity.Warehouse;
import com.jeeplus.modules.warehouse.warehouse.mapper.WarehouseMapper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -9,6 +14,14 @@ import java.util.Set; ...@@ -9,6 +14,14 @@ import java.util.Set;
public class ShelvesUtil { public class ShelvesUtil {
private static ShelvesMapper shelvesMapper = SpringContextHolder.getBean(ShelvesMapper.class);
private static WarehouseMapper warehouseMapper = SpringContextHolder.getBean(WarehouseMapper.class);
public static final String SHELCES_CACHE = "shelvesCache";
public static final String SHELCES_ID = "shelvesId_";
public static final String WAREHOUSE_CACHE = "warehouseCache";
public static final String WAREHOUSE_ID = "warehouseId_";
public static String mergeShevlesName(Set<Shelves> set) { public static String mergeShevlesName(Set<Shelves> set) {
return ""; return "";
...@@ -38,4 +51,64 @@ public class ShelvesUtil { ...@@ -38,4 +51,64 @@ public class ShelvesUtil {
} }
return sb.toString(); return sb.toString();
} }
/**
* 从缓存中获取货架信息
* @param ids
* @return
*/
public static List<Shelves> getShelvesListByIds(String ids) {
List<Shelves> resultList = new ArrayList<>();
if (StringUtils.isNotBlank(ids)) {
String [] idsArr = ids.split(",");
for (String id : idsArr) {
if (StringUtils.isNotBlank(id)) {
Shelves shelves = (Shelves) CacheUtils.get(SHELCES_CACHE, SHELCES_ID + id);
if (null == shelves || StringUtils.isBlank(shelves.getId())) {
Shelves tem = new Shelves();
tem.setDelFlag("0");
List<Shelves> list = shelvesMapper.findList(tem);
for (Shelves s : list) {
CacheUtils.put(SHELCES_CACHE, SHELCES_ID + s.getId());
}
shelves = (Shelves) CacheUtils.get(SHELCES_CACHE, SHELCES_ID + id);
resultList.add(shelves);
} else {
resultList.add(shelves);
}
}
}
}
return resultList;
}
/**
* 从缓冲中获取仓库id
* @param ids
* @return
*/
public static List<Warehouse> getWarehouseListByIds(String ids) {
List<Warehouse> resultList = new ArrayList<>();
if (StringUtils.isNotBlank(ids)) {
String [] idsArr = ids.split(",");
for (String id : idsArr) {
if (StringUtils.isNotBlank(id)) {
Warehouse warehouse = (Warehouse) CacheUtils.get(WAREHOUSE_CACHE, WAREHOUSE_ID + id);
if (null == warehouse || StringUtils.isBlank(warehouse.getId())) {
Warehouse tem = new Warehouse();
tem.setDelFlag("0");
List<Warehouse> list = warehouseMapper.findList(tem);
for (Warehouse w : list) {
CacheUtils.put(WAREHOUSE_CACHE, WAREHOUSE_ID + w.getId());
}
warehouse = (Warehouse) CacheUtils.get(WAREHOUSE_CACHE, WAREHOUSE_ID + id);
resultList.add(warehouse);
} else {
resultList.add(warehouse);
}
}
}
}
return resultList;
}
} }
...@@ -13,6 +13,7 @@ import com.jeeplus.common.utils.excel.annotation.ExcelField; ...@@ -13,6 +13,7 @@ import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.modules.warehouse.warehouse.entity.Warehouse; import com.jeeplus.modules.warehouse.warehouse.entity.Warehouse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* 入库明细Entity * 入库明细Entity
...@@ -27,9 +28,13 @@ public class StorageInfo extends DataEntity<StorageInfo> { ...@@ -27,9 +28,13 @@ public class StorageInfo extends DataEntity<StorageInfo> {
private MaterialType type; // 类型 private MaterialType type; // 类型
private String model; // 型号 private String model; // 型号
private GoodsInfo goodsInfo; // 货品明细id private GoodsInfo goodsInfo; // 货品明细id
private Shelves shelves; // 货架id private String shelvesIds; // 货架id集合
private Warehouse warehouse; // 仓库外键 private String warehouseIds; // 仓库id集合
private BigDecimal amount; // 单价 private BigDecimal amount; // 单价
private int num; // 数量
private List<Shelves> shelvesList; // 货架id
private List<Warehouse> warehouseList; // 仓库外键
private QrCode qrCode; // 前端保存入库单时使用的临时二维码对象 private QrCode qrCode; // 前端保存入库单时使用的临时二维码对象
public StorageInfo() { public StorageInfo() {
...@@ -88,13 +93,6 @@ public class StorageInfo extends DataEntity<StorageInfo> { ...@@ -88,13 +93,6 @@ public class StorageInfo extends DataEntity<StorageInfo> {
this.goodsInfo = goodsInfo; this.goodsInfo = goodsInfo;
} }
public Shelves getShelves() {
return shelves;
}
public void setShelves(Shelves shelves) {
this.shelves = shelves;
}
public QrCode getQrCode() { public QrCode getQrCode() {
return qrCode; return qrCode;
...@@ -104,13 +102,6 @@ public class StorageInfo extends DataEntity<StorageInfo> { ...@@ -104,13 +102,6 @@ public class StorageInfo extends DataEntity<StorageInfo> {
this.qrCode = qrCode; this.qrCode = qrCode;
} }
public Warehouse getWarehouse() {
return warehouse;
}
public void setWarehouse(Warehouse warehouse) {
this.warehouse = warehouse;
}
public BigDecimal getAmount() { public BigDecimal getAmount() {
return amount; return amount;
...@@ -119,4 +110,44 @@ public class StorageInfo extends DataEntity<StorageInfo> { ...@@ -119,4 +110,44 @@ public class StorageInfo extends DataEntity<StorageInfo> {
public void setAmount(BigDecimal amount) { public void setAmount(BigDecimal amount) {
this.amount = amount; this.amount = amount;
} }
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getShelvesIds() {
return shelvesIds;
}
public void setShelvesIds(String shelvesIds) {
this.shelvesIds = shelvesIds;
}
public String getWarehouseIds() {
return warehouseIds;
}
public void setWarehouseIds(String warehouseIds) {
this.warehouseIds = warehouseIds;
}
public List<Shelves> getShelvesList() {
return shelvesList;
}
public void setShelvesList(List<Shelves> shelvesList) {
this.shelvesList = shelvesList;
}
public List<Warehouse> getWarehouseList() {
return warehouseList;
}
public void setWarehouseList(List<Warehouse> warehouseList) {
this.warehouseList = warehouseList;
}
} }
\ No newline at end of file
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
a.type_id AS "type.id", a.type_id AS "type.id",
a.model AS "model", a.model AS "model",
a.goods_info_id AS "goodsInfo.id", a.goods_info_id AS "goodsInfo.id",
a.shelves_id AS "shelves.id", a.shelves_id AS "shelvesIds",
a.warehouse_id AS "warehouse.id", a.warehouse_id AS "warehouseIds",
a.qr_id AS "qrCode.id", a.qr_id AS "qrCode.id",
a.remarks AS "remarks", a.remarks AS "remarks",
a.create_by AS "createBy.id", a.create_by AS "createBy.id",
...@@ -19,12 +19,10 @@ ...@@ -19,12 +19,10 @@
a.update_date AS "updateDate", a.update_date AS "updateDate",
a.del_flag AS "delFlag", a.del_flag AS "delFlag",
a.amount AS "amount", a.amount AS "amount",
a.num AS "num",
type.name AS "type.name", type.name AS "type.name",
type.code AS "type.code", type.code AS "type.code",
s.name AS "shelves.name",
warehouse.name AS "warehouse.name",
qr.code AS "qrCode.code", qr.code AS "qrCode.code",
qr.state AS "qrCode.state" qr.state AS "qrCode.state"
...@@ -32,8 +30,6 @@ ...@@ -32,8 +30,6 @@
<sql id="storageInfoJoins"> <sql id="storageInfoJoins">
LEFT JOIN t_wh_material_type type ON type.id = a.type_id LEFT JOIN t_wh_material_type type ON type.id = a.type_id
LEFT JOIN t_wh_warehouse warehouse ON warehouse.id = a.warehouse_id
LEFT JOIN t_wh_shelves s on s.id = a.shelves_id
LEFT JOIN t_wh_qr qr on qr.id = a.qr_id LEFT JOIN t_wh_qr qr on qr.id = a.qr_id
</sql> </sql>
...@@ -136,8 +132,8 @@ ...@@ -136,8 +132,8 @@
#{type.id}, #{type.id},
#{model}, #{model},
#{goodsInfo.id}, #{goodsInfo.id},
#{shelves.id}, #{shelvesIds},
#{warehouse.id}, #{warehouseIds},
#{qrCode.id}, #{qrCode.id},
#{amount}, #{amount},
#{remarks}, #{remarks},
...@@ -156,8 +152,8 @@ ...@@ -156,8 +152,8 @@
type_id = #{type.id}, type_id = #{type.id},
model = #{model}, model = #{model},
goods_info_id = #{goodsInfo.id}, goods_info_id = #{goodsInfo.id},
shelves_id = #{shelves.id}, shelves_id = #{shelvesIds},
warehouse_id = #{warehouse.id}, warehouse_id = #{warehouseIds},
amount = #{amount}, amount = #{amount},
remarks = #{remarks}, remarks = #{remarks},
update_by = #{updateBy.id}, update_by = #{updateBy.id},
......
...@@ -6,6 +6,8 @@ package com.jeeplus.modules.warehouse.storage.service; ...@@ -6,6 +6,8 @@ package com.jeeplus.modules.warehouse.storage.service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import com.jeeplus.common.utils.CacheUtils;
import com.jeeplus.modules.sys.utils.UserUtils;
import com.jeeplus.modules.warehouse.goods.entity.Goods; import com.jeeplus.modules.warehouse.goods.entity.Goods;
import com.jeeplus.modules.warehouse.goods.entity.GoodsInfo; import com.jeeplus.modules.warehouse.goods.entity.GoodsInfo;
import com.jeeplus.modules.warehouse.goods.mapper.GoodsInfoMapper; import com.jeeplus.modules.warehouse.goods.mapper.GoodsInfoMapper;
...@@ -18,6 +20,7 @@ import com.jeeplus.modules.warehouse.shelves.entity.Shelves; ...@@ -18,6 +20,7 @@ import com.jeeplus.modules.warehouse.shelves.entity.Shelves;
import com.jeeplus.modules.warehouse.shelves.mapper.ShelvesMapper; import com.jeeplus.modules.warehouse.shelves.mapper.ShelvesMapper;
import com.jeeplus.modules.warehouse.shelves.utils.ShelvesUtil; import com.jeeplus.modules.warehouse.shelves.utils.ShelvesUtil;
import com.jeeplus.modules.warehouse.storage.dto.CountStorageInfo; import com.jeeplus.modules.warehouse.storage.dto.CountStorageInfo;
import com.jeeplus.modules.warehouse.warehouse.entity.Warehouse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -55,80 +58,15 @@ public class StorageService extends CrudService<StorageMapper, Storage> { ...@@ -55,80 +58,15 @@ public class StorageService extends CrudService<StorageMapper, Storage> {
Storage storage = super.get(id); Storage storage = super.get(id);
List<StorageInfo> storageInfoList = storageInfoMapper.findList(new StorageInfo(storage)); List<StorageInfo> storageInfoList = storageInfoMapper.findList(new StorageInfo(storage));
storage.setStorageInfoList(storageInfoList); storage.setStorageInfoList(storageInfoList);
return storage; for (StorageInfo si : storageInfoList) {
} List<Shelves> shelvesList = ShelvesUtil.getShelvesListByIds(si.getShelvesIds());
si.setShelvesList(shelvesList);
public Storage countStorage(String id) { List<Warehouse> warehouseList = ShelvesUtil.getWarehouseListByIds(si.getWarehouseIds());
Storage storage = super.get(id); si.setWarehouseList(warehouseList);
List<CountStorageInfo> countStorageInfoList = storageInfoMapper.findCsiList(new StorageInfo(storage));
Map<String, List<CountStorageInfo>> map = new HashMap<>();
for (CountStorageInfo countStorageInfo : countStorageInfoList) {
String goodsInfoId = countStorageInfo.getGoodsInfo().getId();
List<CountStorageInfo> list = map.get(goodsInfoId);
if (null == list) {
list = new ArrayList<>();
list.add(countStorageInfo);
map.put(countStorageInfo.getGoodsInfo().getId(), list);
} else {
list.add(countStorageInfo);
}
}
List<CountStorageInfo> csiList = new ArrayList<>();
for (Map.Entry<String, List<CountStorageInfo>> entry : map.entrySet()) {
List<CountStorageInfo> list = entry.getValue();
CountStorageInfo csi = new CountStorageInfo();
Set<String> wNameSet = new HashSet<>();
Set<String> sNameSet = new HashSet<>();
String shelvesNames = "";
int num = 0;
BigDecimal sum = new BigDecimal(0);
for (int i = 0; i < list.size(); i ++) {
CountStorageInfo c = list.get(i);
if (i == 0) {
csi.setGoodsInfo(c.getGoodsInfo());
csi.setModel(c.getModel());
csi.setName(c.getName());
csi.setType(c.getType());
csi.setState(c.getState());
csi.setAmount(c.getAmount());
}
sNameSet.add(c.getShelves().getName());
/*if (i != list.size() - 1) {
shelvesNames = shelvesNames + c.getShelves().getName() + ",";
} else {
shelvesNames = shelvesNames + c.getShelves().getName();
}*/
wNameSet.add(c.getWarehouse().getName());
num += c.getNum();
sum = sum.add(c.getSum());
}
String wNames = ShelvesUtil.mergerWarehouseName(wNameSet);
String sNames = ShelvesUtil.mergerWarehouseName(sNameSet);
csi.setShelvesNames(sNames);
csi.setWarehouseNames(wNames);
csi.setNum(num);
csi.setSum(sum);
csiList.add(csi);
} }
storage.setCountStorageInfoList(csiList);
return storage; return storage;
} }
/**
* 根据统计信息查询入库明细
* @param countStorageInfo
* @return
*/
public List<StorageInfo> findInfoBycountStorage(CountStorageInfo countStorageInfo) {
StorageInfo storageInfo = new StorageInfo();
storageInfo.setStorage(countStorageInfo.getStorage());
storageInfo.setShelves(countStorageInfo.getShelves());
storageInfo.setGoodsInfo(countStorageInfo.getGoodsInfo());
storageInfo.setPage(countStorageInfo.getPage());
return storageInfoMapper.findList(storageInfo);
}
public List<Storage> findList(Storage storage) { public List<Storage> findList(Storage storage) {
return super.findList(storage); return super.findList(storage);
...@@ -217,10 +155,46 @@ public class StorageService extends CrudService<StorageMapper, Storage> { ...@@ -217,10 +155,46 @@ public class StorageService extends CrudService<StorageMapper, Storage> {
@Transactional(readOnly = false) @Transactional(readOnly = false)
public void delete(Storage storage) { public void delete(Storage storage) {
super.delete(storage); StorageInfo tem = new StorageInfo();
storageInfoMapper.delete(new StorageInfo(storage)); tem.setStorage(storage);
List<StorageInfo> list = storageInfoMapper.findList(tem);
boolean b = false;
for (StorageInfo si : list) {
QrCode qrCode = si.getQrCode();
if ("2".equals(qrCode.getState())) {
b = true;
}
}
if (!b) {
for (StorageInfo si : list) {
QrCode qrCode = si.getQrCode();
QrCode qr = qrCodeMapper.get(qrCode.getId());
qr.setState("0");
qrCodeMapper.update(qr);
}
super.delete(storage);
storageInfoMapper.delete(new StorageInfo(storage));
}
}
@Transactional(readOnly = false)
public boolean deleteInfo(StorageInfo storageInfo) {
StorageInfo si = storageInfoMapper.get(storageInfo.getId());
QrCode qrCode = si.getQrCode();
if ("2".equals(qrCode.getState())) {
return false;
} else {
QrCode qr = qrCodeMapper.get(qrCode.getId());
qr.setState("0");
qrCodeMapper.update(qr);
storageInfoMapper.delete(storageInfo);
return true;
}
} }
/** /**
* 根据批次号,货品类型,货品型号查询二维码 * 根据批次号,货品类型,货品型号查询二维码
* @param si * @param si
...@@ -253,6 +227,7 @@ public class StorageService extends CrudService<StorageMapper, Storage> { ...@@ -253,6 +227,7 @@ public class StorageService extends CrudService<StorageMapper, Storage> {
storageInfo.setName(gi.getName()); storageInfo.setName(gi.getName());
storageInfo.setType(gi.getType()); storageInfo.setType(gi.getType());
storageInfo.setModel(gi.getModel()); storageInfo.setModel(gi.getModel());
storageInfo.setNum(gi.getNum());
storageInfo.setGoodsInfo(gi); storageInfo.setGoodsInfo(gi);
storageInfo.setAmount(gi.getAmount()); storageInfo.setAmount(gi.getAmount());
storageInfo.setQrCode(qrCode); storageInfo.setQrCode(qrCode);
...@@ -268,4 +243,12 @@ public class StorageService extends CrudService<StorageMapper, Storage> { ...@@ -268,4 +243,12 @@ public class StorageService extends CrudService<StorageMapper, Storage> {
storageInfoPage.setFuncParam(page.getFuncParam()); storageInfoPage.setFuncParam(page.getFuncParam());
return storageInfoPage; return storageInfoPage;
} }
@Transactional(readOnly = false)
public List<StorageInfo> findInfoByGoodsInfoId(GoodsInfo goodsInfo) {
StorageInfo tem = new StorageInfo();
tem.setGoodsInfo(goodsInfo);
List<StorageInfo> storageInfoList = storageInfoMapper.findList(tem);
return storageInfoList;
}
} }
\ No newline at end of file
...@@ -145,7 +145,17 @@ public class StorageController extends BaseController { ...@@ -145,7 +145,17 @@ public class StorageController extends BaseController {
j.setMsg("删除入库信息成功"); j.setMsg("删除入库信息成功");
return j; return j;
} }
@ResponseBody
@RequestMapping(value = "deleteInfo")
public AjaxJson deleteInfo(StorageInfo storageInfo) {
AjaxJson j = new AjaxJson();
storageService.deleteInfo(storageInfo);
j.setMsg("删除入库信息成功");
return j;
}
/** /**
* 批量删除入库信息 * 批量删除入库信息
*/ */
...@@ -190,22 +200,6 @@ public class StorageController extends BaseController { ...@@ -190,22 +200,6 @@ public class StorageController extends BaseController {
return storageService.get(id); return storageService.get(id);
} }
@ResponseBody
@RequestMapping(value = "countStorage")
public Storage countStorage(String id) {
return storageService.countStorage(id);
}
@ResponseBody
@RequestMapping(value = "findInfoBycountStorage")
public AjaxJson findInfoBycountStorage(CountStorageInfo countStorageInfo) {
AjaxJson j = new AjaxJson();
List<StorageInfo> storageInfoList = storageService.findInfoBycountStorage(countStorageInfo);
j.put("storageInfoList", storageInfoList);
j.setSuccess(true);
j.setMsg("查询成功");
return j;
}
/** /**
* 导入Excel数据 * 导入Excel数据
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment