Commit a40ff95f by 胡懿

修改物资领用、盘盈、盘亏代码逻辑

parent 163c5cb9
......@@ -40,8 +40,7 @@ public class Ledger extends DataEntity<Ledger> {
super(id);
}
public Ledger(String name, MaterialType type) {
this.name = name;
public Ledger(MaterialType type) {
this.type = type;
}
......
......@@ -42,7 +42,6 @@ public class LedgerInfo extends DataEntity<LedgerInfo> {
private List<Shelves> shelvesList;
private List<Warehouse> warehouseList;
private Shelves shelves;
public LedgerInfo() {
......@@ -177,12 +176,4 @@ public class LedgerInfo extends DataEntity<LedgerInfo> {
this.warehouseList = warehouseList;
}
public Shelves getShelves() {
return shelves;
}
public void setShelves(Shelves shelves) {
this.shelves = shelves;
}
}
\ No newline at end of file
......@@ -22,4 +22,7 @@ public interface LedgerInfoMapper extends BaseMapper<LedgerInfo> {
void deleteByLedgerInfo(@Param("id") String id);
public List<LedgerInfo> findListByQrIdAndCode(LedgerInfo ledgerInfo);
void updateByLedgerInfo(@Param("id") String id);
// 领用后更改台账明细数量
public int updateNum(LedgerInfo ledgerInfo);
}
\ No newline at end of file
......@@ -19,6 +19,6 @@ import java.util.List;
public interface LedgerMapper extends BaseMapper<Ledger> {
public Ledger findByType(Ledger ledger);
//zlt 查询台账主表的货架集合
public List<String> findShelvesListByLedgerId(@Param("id") String id);
}
\ No newline at end of file
......@@ -191,6 +191,12 @@
remarks = #{remarks}
WHERE id = #{id}
</update>
<update id="updateNum">
UPDATE t_wh_ledger_info SET
num = #{num}
WHERE id = #{id}
</update>
<!--物理删除-->
......
......@@ -165,12 +165,4 @@
AND a.type_id = #{type.id}
</where>
</select>
<select id="findShelvesListByLedgerId" resultType="java.lang.String" parameterType="java.lang.String">
select
shelves_id
from
t_wh_ledger_info li
where li.ledger_id = #{id}
and li.del_flag = '0'
</select>
</mapper>
......@@ -96,7 +96,14 @@ public class LedgerService extends CrudService<LedgerMapper, Ledger> {
public Page<LedgerInfo> findInfoPage(Page<LedgerInfo> page, LedgerInfo ledgerInfo) {
dataRuleFilter(ledgerInfo);
ledgerInfo.setPage(page);
page.setList(ledgerInfoMapper.findList(ledgerInfo));
List<LedgerInfo> ledgerInfoList = ledgerInfoMapper.findList(ledgerInfo);
for (LedgerInfo li : ledgerInfoList) {
List<Shelves> shelvesList = ShelvesUtil.getShelvesListByIds(li.getShelvesIds());
li.setShelvesList(shelvesList);
List<Warehouse> warehouseList = ShelvesUtil.getWarehouseListByIds(li.getWarehouseIds());
li.setWarehouseList(warehouseList);
}
page.setList(ledgerInfoList);
return page;
}
......
......@@ -104,7 +104,9 @@ public class MaterialLossService extends CrudService<MaterialLossMapper, Materia
materialLossInfoMapper.insert(materialLossInfo);
String ledgerInfoId = materialLossInfo.getLedgerInfo().getId();
LedgerInfo ledgerInfo = ledgerInfoMapper.get(ledgerInfoId);
ledgerInfoMapper.deleteByLedgerInfo(ledgerInfoId);
// ledgerInfoMapper.deleteByLedgerInfo(ledgerInfoId);
ledgerInfo.setNum(ledgerInfo.getNum() - 1);
ledgerInfoMapper.updateNum(ledgerInfo);
if(ledgerInfo.getQr() != null){
QrCode qrCode = qrCodeService.get(ledgerInfo.getQr().getId());
if(qrCode!=null){
......@@ -134,8 +136,9 @@ public class MaterialLossService extends CrudService<MaterialLossMapper, Materia
materialLossInfoMapper.delete(materialLossInfo);
String ledgerInfoId = materialLossInfo.getLedgerInfo().getId();
LedgerInfo ledgerInfo = ledgerInfoMapper.get(ledgerInfoId);
ledgerInfoMapper.updateByLedgerInfo(ledgerInfoId);
// ledgerInfoMapper.updateByLedgerInfo(ledgerInfoId);
ledgerInfo.setNum(ledgerInfo.getNum() + 1);
ledgerInfoMapper.updateNum(ledgerInfo);
if(ledgerInfo.getQr() != null){
QrCode qrCode = qrCodeService.get(ledgerInfo.getQr().getId());
if(qrCode!=null){
......@@ -196,7 +199,6 @@ public class MaterialLossService extends CrudService<MaterialLossMapper, Materia
OutboundInfo outboundInfo = new OutboundInfo();
String ledgerInfoId = one.getLedgerInfo().getId();
LedgerInfo ledgerInfo = ledgerInfoMapper.get(ledgerInfoId);
ledgerInfoMapper.deleteByLedgerInfo(ledgerInfoId);
if(ledgerInfo.getQr() != null){
QrCode qrCode = qrCodeService.get(ledgerInfo.getQr().getId());
if(qrCode!=null){
......@@ -215,6 +217,8 @@ public class MaterialLossService extends CrudService<MaterialLossMapper, Materia
}
ledgerService.lowerLedger(ledger);
}
ledgerInfo.setNum(ledgerInfo.getNum() - 1);
ledgerInfoMapper.updateNum(ledgerInfo);
}
outboundInfo.setId("");
outboundInfo.setOutbound(outbound);
......
......@@ -12,8 +12,6 @@ import com.jeeplus.modules.warehouse.ledger.entity.Ledger;
import com.jeeplus.modules.warehouse.ledger.entity.LedgerInfo;
import com.jeeplus.modules.warehouse.ledger.mapper.LedgerInfoMapper;
import com.jeeplus.modules.warehouse.ledger.mapper.LedgerMapper;
import com.jeeplus.modules.warehouse.ledger.service.LedgerService;
import com.jeeplus.modules.warehouse.materialrequisition.entity.MaterialRequisitionInfo;
import com.jeeplus.modules.warehouse.qrcode.entity.QrCode;
import com.jeeplus.modules.warehouse.qrcode.service.QrCodeService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -42,7 +40,7 @@ public class OutboundService extends CrudService<OutboundMapper, Outbound> {
@Autowired
private LedgerInfoMapper ledgerInfoMapper;
@Autowired
private LedgerService ledgerService;
private LedgerMapper ledgerMapper;
@Autowired
private QrCodeService qrCodeService;
......@@ -127,8 +125,8 @@ public class OutboundService extends CrudService<OutboundMapper, Outbound> {
qrCode.setState("3");
qrCodeService.save(qrCode);
}
Ledger ledger = ledgerService.get(ledgerInfo.getLedger().getId());
ledgerInfoMapper.deleteByLedgerInfo(ledgerInfoId);
Ledger ledger = ledgerMapper.get(ledgerInfo.getLedger().getId());
// ledgerInfoMapper.deleteByLedgerInfo(ledgerInfoId);
if(ledger != null){
ledger.setNum(ledger.getNum() - 1);
try {
......@@ -136,7 +134,9 @@ public class OutboundService extends CrudService<OutboundMapper, Outbound> {
}catch (Exception e){
System.out.println(e.getMessage());
}
ledgerService.lowerLedger(ledger);
ledgerMapper.update(ledger);
ledgerInfo.setNum(ledgerInfo.getNum() - 1);
ledgerInfoMapper.updateNum(ledgerInfo);
}
}
......
......@@ -27,11 +27,13 @@ public class ProfitWarehousingInfo extends DataEntity<ProfitWarehousingInfo> {
private String name; // 名称
private MaterialType type; // 类型
private String marking; // 型号
private Shelves shelves; // 货架ID
// private Shelves shelves; // 货架ID
private Warehouse warehouse; // 仓库外键
private BigDecimal amount; // 单价
private QrCode qrCode; // 前端保存入库单时使用的临时二维码对象
private int num; // 数量
private String shelvesIds; // 货架ids
private String warehouseIds; // 仓库ids
public ProfitWarehousingInfo(String id, ProfitWarehousing profitWarehousing) {
super(id);
......@@ -84,15 +86,6 @@ public class ProfitWarehousingInfo extends DataEntity<ProfitWarehousingInfo> {
public void setMarking(String marking) {
this.marking = marking;
}
@ExcelField(title="货架ID", align=2, sort=5)
public Shelves getShelves() {
return shelves;
}
public void setShelves(Shelves shelves) {
this.shelves = shelves;
}
public Warehouse getWarehouse() {
return warehouse;
......@@ -117,4 +110,28 @@ public class ProfitWarehousingInfo extends DataEntity<ProfitWarehousingInfo> {
public void setQrCode(QrCode qrCode) {
this.qrCode = qrCode;
}
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;
}
}
\ No newline at end of file
......@@ -10,11 +10,11 @@
a.type AS "type.id",
type.name AS "type.name",
type.code AS "type.code",
type.amount AS "type.amount",
type.unit AS "type.unit",
a.marking AS "marking",
a.shelves_id AS "shelves.id",
shelves.name AS "shelves.name",
a.warehouse_id AS "warehouse.id",
warehouse.name AS "warehouse.name",
a.shelves_ids AS "shelvesIds",
a.warehouse_ids AS "warehouseIds",
a.qr_id AS "qrCode.id",
qrCode.url AS "qrCode.url",
qrCode.state AS "qrCode.state",
......@@ -30,8 +30,6 @@
<sql id="profitWarehousingInfoJoins">
LEFT JOIN t_wh_material_type type ON type.id = a.type
LEFT JOIN t_wh_warehouse warehouse ON warehouse.id = a.warehouse_id
LEFT JOIN t_wh_shelves shelves ON shelves.id = a.shelves_id
LEFT JOIN t_wh_qr qrCode ON qrCode.id = a.qr_id
LEFT JOIN t_wh_profit_warehousing profitWarehousing ON profitWarehousing.id = a.profit_warehousing_id
</sql>
......@@ -93,8 +91,8 @@
name,
type,
marking,
shelves_id,
warehouse_id,
shelves_ids,
warehouse_ids,
qr_id,
amount,
create_by,
......@@ -109,8 +107,8 @@
#{name},
#{type.id},
#{marking},
#{shelves.id},
#{warehouse.id},
#{shelvesIds},
#{warehouseIds},
#{qrCode.id},
#{amount},
#{createBy.id},
......@@ -128,9 +126,9 @@
name = #{name},
type = #{type.id},
marking = #{marking},
shelves_id = #{shelves.id},
shelves_ids = #{shelvesIds},
qr_id = #{qrCode.id},
warehouse_id = #{warehouse.id},
warehouse_ids = #{warehouseIds},
amount = #{amount},
update_by = #{updateBy.id},
update_date = #{updateDate},
......
......@@ -189,50 +189,42 @@ public class ProfitWarehousingService extends CrudService<ProfitWarehousingMappe
@Transactional(readOnly = false)
public void inLedgerInfo(ProfitWarehousingInfo profitWarehousingInfo) {
QrCode qrCode = qrCodeService.get(profitWarehousingInfo.getQrCode().getId());
Ledger ledger = new Ledger(profitWarehousingInfo.getName(),profitWarehousingInfo.getType());
Ledger ledger = new Ledger(profitWarehousingInfo.getType());
Ledger oldLeger = ledgerMapper.findByType(ledger);
LedgerInfo ledgerInfo = new LedgerInfo();
//名称
ledgerInfo.setName(ledger.getName());
//类型
ledgerInfo.setType(ledger.getType());
//型号
//ledgerInfo.setModel(ledger.getModel());
ledgerInfo.setModel(profitWarehousingInfo.getMarking());
//物资编码
ledgerInfo.setCode(qrCode.getCode());
//二维码id
ledgerInfo.setQr(qrCode);
//货架id
ledgerInfo.setShelves(profitWarehousingInfo.getShelves());
ledgerInfo.setShelvesIds(profitWarehousingInfo.getShelvesIds());
//盘盈入库单编码
ledgerInfo.setBatchNum(profitWarehousingInfo.getProfitWarehousing().getNumber());
//单价
ledgerInfo.setAmount(profitWarehousingInfo.getAmount());
ledgerInfo.setNum(profitWarehousingInfo.getNum());
//查询 台账中是否有 该类型的物资
if(oldLeger != null){
//有台账 直接在该物资下加入一条明细,并更新台账
//台账主表id
ledgerInfo.setLedger(oldLeger);
BigDecimal sum = oldLeger.getSum();
sum = sum.add(profitWarehousingInfo.getAmount());
sum = sum.add(profitWarehousingInfo.getAmount().multiply(new BigDecimal(ledgerInfo.getNum())));
oldLeger.setSum(sum);
oldLeger.setNum(oldLeger.getNum()+1);
List<String> shelvesList = ledgerMapper.findShelvesListByLedgerId(oldLeger.getId());
if(!shelvesList.contains(ledgerInfo.getShelves().getId())){
shelvesList.add(ledgerInfo.getShelves().getId());
}
String shelvesIds = String.join(",", shelvesList);
oldLeger.setShelvesIds(shelvesIds);
oldLeger.setNum(oldLeger.getNum() + ledgerInfo.getNum());
oldLeger.preUpdate();
ledgerMapper.update(oldLeger);
ledgerInfo.preInsert();
ledgerInfoMapper.insert(ledgerInfo);
}else {
ledger.setShelvesIds(ledgerInfo.getShelves().getId());
ledger.setNum(1);
ledger.setSum(ledgerInfo.getAmount());
ledger.setShelvesIds(ledgerInfo.getShelvesIds());
ledger.setNum(ledgerInfo.getNum());
ledger.setSum(ledgerInfo.getAmount().multiply(new BigDecimal(ledgerInfo.getNum())));
ledger.preInsert();
ledgerMapper.insert(ledger);
......
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