Browse Source

rolls处理:如果明细的rolls全部为空或0,则取box的rolls;合箱时合并居中显示

java8
han\hanst 1 month ago
parent
commit
f8c05e2c64
  1. 3
      src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
  2. 41
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
  3. 4
      src/main/resources/mapper/ecss/CoDelMapper.xml

3
src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java

@ -49,6 +49,9 @@ public interface CoDelMapper {
void changeEcssDelStatus(EcssCoDelNotifyHeaderData data);
void updateEcssDelDetailForModify(EcssCoDelNotifyHeaderData data);
void updateEcssDelDetailSurplusQty(EcssCoDelNotifyHeaderData data);
void updateEcssDelDetailStatus(EcssCoDelNotifyHeaderData data);
void recoverEcssDelDetailStatus(EcssCoDelNotifyHeaderData data);

41
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

@ -3189,6 +3189,23 @@ public class CoDelServiceImpl implements CoDelService {
List<Map> checkList = coDelMapper.selectPalletDetailList(boxData);
// 记录当前箱子对应的exportList起始索引
int boxStartIndex = exportList.size();
// 判断当前箱子所有明细的rolls是否全部为空或0
boolean allDetailRollsEmptyOrZero = true;
for (int j = 0; j < checkList.size(); j++) {
Object rollsObj = checkList.get(j).get("rolls");
if (rollsObj != null) {
BigDecimal rollsValue = (BigDecimal) rollsObj;
if (rollsValue.compareTo(BigDecimal.ZERO) != 0) {
allDetailRollsEmptyOrZero = false;
break;
}
}
}
// 获取box的rolls
BigDecimal boxRolls = list.get(m).get("rolls") != null ?
((BigDecimal) list.get(m).get("rolls")).setScale(0, RoundingMode.HALF_UP) : BigDecimal.ZERO;
for (int i = 0; i < checkList.size(); i++) {
Map eorder = checkList.get(i);
String partNo = (String) eorder.get("part_no");
@ -3201,9 +3218,21 @@ public class CoDelServiceImpl implements CoDelService {
eorder.put("noCartons", isFirstRow ? noCartons.setScale(0, RoundingMode.HALF_UP) : "");
eorder.put("gross_weight", isFirstRow ? ((BigDecimal) list.get(m).get("gross_weight")).setScale(2, RoundingMode.HALF_UP) : "");
eorder.put("net_weight", isFirstRow ? ((BigDecimal) list.get(m).get("net_weight")).setScale(2, RoundingMode.HALF_UP) : "");
BigDecimal cuRolls = eorder.get("rolls") !=null?((BigDecimal)eorder.get("rolls")).setScale(0, RoundingMode.HALF_UP):BigDecimal.valueOf(0.0);
eorder.put("rolls", cuRolls);
rolls = rolls.add(cuRolls);
// rolls处理如果明细的rolls全部为空或0则取box的rolls合箱时合并居中显示
if (allDetailRollsEmptyOrZero) {
// 使用box的rolls合箱时只在第一行显示用于合并单元格居中
eorder.put("rolls", isFirstRow ? boxRolls : "");
if (isFirstRow) {
rolls = rolls.add(boxRolls);
}
} else {
// 使用明细的rolls
BigDecimal cuRolls = eorder.get("rolls") != null ?
((BigDecimal) eorder.get("rolls")).setScale(0, RoundingMode.HALF_UP) : BigDecimal.ZERO;
eorder.put("rolls", cuRolls);
rolls = rolls.add(cuRolls);
}
EcssCoDelNotifyDetailData nodifyData = notifyDetailMap.get(partNo);
// 只有RFID需要
String lossratio="";
@ -3238,6 +3267,10 @@ public class CoDelServiceImpl implements CoDelService {
template.addMergeRegion(boxStartIndex, boxEndIndex, 6);
// 合并毛重列第7列索引7
template.addMergeRegion(boxStartIndex, boxEndIndex, 7);
// 如果明细rolls全为空/0使用box的rolls时需要合并居中显示第5列索引5
if (allDetailRollsEmptyOrZero) {
template.addMergeRegion(boxStartIndex, boxEndIndex, 8);
}
}
totalCartons = totalCartons.add(list.get(m).get("box_qty") !=null? new BigDecimal(list.get(m).get("box_qty").toString()) : BigDecimal.valueOf(0.0));
grossWeight = grossWeight.add(list.get(m).get("gross_weight") !=null?new BigDecimal(list.get(m).get("gross_weight").toString()):BigDecimal.valueOf(0.0));
@ -3894,7 +3927,7 @@ public class CoDelServiceImpl implements CoDelService {
}
//notifyHeader.setModifyFlag(false);
coDelMapper.updateEcssDelHeaderForModify(notifyHeader);
coDelMapper.updateEcssDelDetailForModify(notifyHeader);
coDelMapper.updateEcssDelDetailSurplusQty(notifyHeader);
// 如果状态为已报关发送邮件通知创建人
if (isCustomsCleared) {

4
src/main/resources/mapper/ecss/CoDelMapper.xml

@ -230,6 +230,10 @@
update ecss_CoDelNotifyDetail set modifyFlag=#{modifyFlag},modifyQtyFlag=#{modifyFlag},surplus_qty=0 where site=#{site} and delNo=#{delNo}
</update>
<update id="updateEcssDelDetailSurplusQty" >
update ecss_CoDelNotifyDetail set surplus_qty=0 where site=#{site} and delNo=#{delNo}
</update>
<update id="changeEcssDelStatus">
update ecss_CoDelNotifyHeader set notify_status=#{notifyStatus},walMartOrderFlag=#{walMartOrderFlag} where site=#{site} and delNo=#{delNo}
</update>

Loading…
Cancel
Save